An approach has been developed to run simulations involving complex physics to steady-state, quickly and reliably. The method is local-time stepping (LTS), in which the time step is manipulated for each individual cell in the mesh, making it as high as possible to enable the simulation to reach steady-state quickly. This clearly violates the physics, described by the underlying equations of conservation of mass, momentum, etc., in the same way that other methods, such as under-relaxation, do. However, whereas under-relaxation lacks the control needed to limit the violations of conservation that can cause solution instability, LTS can include features to maintain stability.
The method has been implemented within a few solvers in OpenFOAM, notably, interFoam, the volume of fluid (VoF), interface-tracking solver. This LTS version of the solver, known as LTSInterFoam, solver in OpenFOAM first maximises the time-step according to the local Courant number. It then processes the time-step field by smoothing the variation in time step across the domain to prevent instability due to large conservation errors caused by sudden changes in time step; spreading the most restrictive time step within the interface region across the entire region to further reduce conservation errors.
Initial results show excellent convergence to steady-state. The example below shows flow around a ship hull with the interface displayed at steady-state. Note: the flow rate is increased from the tutorial example (below) to make it easier to visualise the waves.
- Source code
- LTSInterFoam solver - $FOAM_SOLVERS/multiphase/interFoam/LTSInterFoam
localEuler discretisation scheme - $FOAM_SRC/finiteVolume/finiteVolume/ddtSchemes/localEulerDdtScheme
fvcSmooth smoother functions - $FOAM_SRC/finiteVolume/finiteVolume/fvc/fvcSmooth
- Flow round a ship full, $FOAM_TUTORIALS/multiphase/LTSInterFoam/wigleyHull