Page 1 of 1
Re: Cannot use mesh element
Posted: Wed Sep 21, 2011 1:30 am
by Yvan Fournier
Hello,
Do you have "error*" or "listing" files in the execution directory ? They should contain more details on the cause of the crash
(you only posted the EnSight case index file, not the mesh or data, so there is very little information, except that the code went at least that far).
Best regards,
Yvan
Re: Cannot use mesh element
Posted: Thu Sep 29, 2011 7:17 pm
by Christophe Rehmet
Hello Yvan and thank you for your answer ,
In fact I managed to find my mistake. It came from the boundary conditions at one of my four injections. However I have another small problem to change the existing code. I try to modifying the code in uslrc.f90 in arc electric module. I defined a cut plane in my geometry and I'd like to use it to measure the current. So I changed the following lines by trying the code given below. I could'nt find the error. Would you have any solution? Thank you.
do ifac = 1, nfac
if( cdgfac(2,ifac).lt. 5d-5 &
.and. cdgfac(2,ifac) .gt. -5d-5 &
.and. surfac(1,ifac) .lt. 1d-8 &
.and. surfac(1,ifac) .gt. -1d-8 &
.and. surfac(3,ifac) .lt. 1d-8 &
.and. surfac(3,ifac) .gt. -1d-8 ) then
iel = ifacel(1,ifac)
elcou = elcou + propce(iel,ipcdc2) * surfac(2,ifac)
endif
enddo
Modified by
call getfac('Plan_courant_3', nlelt, lstelt)
do ilelt = 1, nlelt
ifac = lstelt(ilelt)
do ifac = 1, nfac
iel = ifacel(1,ifac)
elcou = elcou + propce(iel,ipcdc2) * surfac(2,ifac)
enddo
enddo
Re: Cannot use mesh element
Posted: Mon Oct 03, 2011 11:25 am
by Yvan Fournier
Hello,
You seem to have an extra a loop on ifac :
Code: Select all
call getfac('Plan_courant_3', nlelt, lstelt)
do ilelt = 1, nlelt
ifac = lstelt(ilelt)
do ifac = 1, nfac
iel = ifacel(1,ifac)
elcou = elcou + propce(iel,ipcdc2) * surfac(2,ifac)
enddo
enddo
Should be replaced by :
Code: Select all
call getfac('Plan_courant_3', nlelt, lstelt)
do ilelt = 1, nlelt
ifac = lstelt(ilelt)
iel = ifacel(1,ifac)
elcou = elcou + propce(iel,ipcdc2) * surfac(2,ifac)
enddo
Best regards,
Yvan
Re: Cannot use mesh element
Posted: Thu Oct 06, 2011 12:04 pm
by Christophe Rehmet
Hello Yvan thank you for your answer but in the sub- routine uslerc.f90 when I introduce (defining and using) lstelt, calculation cannot run. So I try another approach without using lstelt
call getfac('Plan_courant_3', nfac, lndfac)
do ifac = 1, nfac
iel = ifacel(1,ifac)
elcou = elcou + propce(iel,ipcdc2) * surfac(2,ifac)
enddo
With this solution I can measure a current but it blocks on the calculation of POT_VEC1.
Re: Cannot use mesh element
Posted: Thu Oct 06, 2011 1:49 pm
by Yvan Fournier
Hello,
You should use another variable than nfac (for example nlfac), otherwise, calling getfac will change the global nfac value, which probably explains why the calculation blocks.
Also, for correctness, you should replace:
iel = ifacel(1,ifac)
with:
iel = ifacel(1, lndfac(ifac))
and:
surfac(2,ifac)
with:
surfac(2, lndfac(ifac))
Best regards,
Yvan
Re: Cannot use mesh element
Posted: Thu Oct 13, 2011 4:09 pm
by Christophe Rehmet
Hello Yvan.
I find another solution less problematic than defining a plan. So I used the following code lines to find my plan to -120° relative to the benchmark:
do ifac = 1, nfac
if( - surfac(1,ifac)*1.d0/2.d0 - surfac(2,ifac)*(sqrt(3.d0)/2.d0) .lt. 1d-8 &
. and. - surfac(1,ifac)*1.d0/2.d0 - surfac(2,ifac)*(sqrt(3.d0)/2.d0) .gt. -1d-8 .and. &
cdgfac(1,ifac)*(sqrt(3.d0)/2.d0) - cdgfac(2,ifac)*1.d0/2.d0 .lt. 5d-5 .and. &
cdgfac(1,ifac)*(sqrt(3.d0)/2.d0) - cdgfac(2,ifac)*1.d0/2.d0 .gt. -5d-5 .and. &
surfac(3,ifac) .lt. 1.d-8 &
.and. surfac(3,ifac) .gt. -1.d-8 ) then iel = ifacel(1,ifac)
elcou = elcou + propce(iel,ipcdc1) * surfac(1,ifac) &
+propce(iel,ipcdc2) * surfac(2,ifac)