CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Programming & Development (https://www.cfd-online.com/Forums/openfoam-programming-development/)
-   -   Sub-iterations for transport equation in drift-flux (https://www.cfd-online.com/Forums/openfoam-programming-development/120361-sub-iterations-transport-equation-drift-flux.html)

Siemen July 5, 2013 03:11

Sub-iterations for transport equation in drift-flux
 
Hi all,

I am currently working on a drift-flux (or algebraic-slip) model to simulate the sedimentation of sand in water.
After solving the transport equation for sand, I use the packingLimiter.H like in twoPhaseEulerFoam in order to maintain the maximum packing concentration of sand (say 0.6).

If I take the time-step dt too large, a certain computational cell can be filled with an amount of sand such that the packingLimiter cannot reduce the sand to the maximum packing concentration. If the packing concentration exceeds a value of 1.0, the solving process is aborted by the solver.

I am wondering if I could decrease the timestep dt only for solving the transport equation. Say, 10 sub-iterations on the transport equation are chosen with for each sub-iteration the timestep 0.1*dt. Each time the packingLimiter is applied after a sub-iteration.

Does anybody know how I can call the magnitude of the timestep in the source code, such that I can modify it?

Thanks in advance!

KlasJ July 5, 2013 04:03

Hi Siemen,

For the twoPhaseEulerFoam solver the time step is set from the include of:

Code:

#include "setDeltaT.H"
The code included (found in $FOAM_SRC/finiteVolume/cfdTools/general/include/setDeltaT.H) will set a new deltaT based on the Courant number. So, for your second question, this is where you could start if you want to modify the time step and the choice of deltaT.

For subiterations, perhaps you would find some interest in: http://www.cfd-online.com/Forums/ope...ime-loops.html.

I guess you would like to use subCycles to achieve subiterations for some part of the code. Have a look at e.g the alphaEqn.H in twoPhaseEulerFoam. There a subCycle is used to solve the dispersed phase continuity equation. Inside the loop the deltaT is split according to how many sub-iterations you have specified. The code, subCycle.H and subCycleTime.H, will help you with the time step splitting.

Best regards,

Klas

Siemen July 5, 2013 06:06

Thanks Klas!
I will have a look at it.
I think that is indeed what I searched for.

Regards,
Siemen


All times are GMT -4. The time now is 04:08.