time step control
Hi!
Is there any way to make a simulation going on even if convergance occured on the first itteration for 10 time steps in a row ?
2 replies
-
Youhanna,
Try to diagnose why this happens (note that you won't get any change in primary variables if ITER=1, so it does not make sense to continue the simulation).
Your initial or maximum time steps may be too small, or you request too many printout times, or your convergence criterion (RE1) is too loose, or you simply do not have proper initial and boundary conditions or sink/source terms.
If you have access to the source code, it would be very easy to increase the number from 10 to whatever you think is appropriate (but again, it is better to diagnose the problem first). If you have iTOUGH2, set MOP2(1)=2.
Stefan
-
Youhanna,
understanding the reasons for the code behaviour is of course the best choice.
Sometime the problem can be overcome if the code performes always at least one iteration.
You can modify one statement (cold) into subroutine CYCIT to ask the code performing at least one iteration. Of course, with this modification the risk is to continue a 'wrong' simulation without the conventional check to stop it.
....sub CYCIT
C
C-----CHECK FOR CONVERGENCE.
cold IF(RERM.LE.RE1) GOTO51
c
c..... optional if FE(9)>0. : force at least 1 iteration even when
c convergence is achieved at ITER=1
IF( FE(9).le. 0.) then
IF(RERM.LE.RE1) GOTO51
else
IF(RERM.LE.RE1 .and. iter.gt.1) GOTO51
endif
C