This module keeps the generic routines and datatypes for the timestepping methods.
It provides the methods to perform both, single step time integration and multistep in a single framework.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public, | parameter | :: | explicitEuler | = | 1 |
Explicit euler in time. |
integer, | public, | parameter | :: | explicitRungeKutta | = | 2 |
Explicit Runge Kutta in time. |
integer, | public, | parameter | :: | explicitSSPRungeKutta | = | 3 |
Explicit Strong-Stability-Preserving Runge Kutta in time. |
integer, | public, | parameter | :: | explicitLocalPredictorGlobalCorrector | = | 4 |
Explicit Local-Predictor Global-Corrector Approach in time |
integer, | public, | parameter | :: | explicitRungeKuttaTaylor | = | 5 |
Explicit Runge-Kutta-Taylor in time. |
integer, | public, | parameter | :: | imexRungeKutta | = | 6 |
IMEX Runge-Kutta in time. |
Interface definition for meshwise timestepping routine.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | minLevel |
The minimum refinement level of the mesh. |
||
integer, | intent(in) | :: | maxLevel |
The maximum refinement level of the mesh. |
||
integer, | intent(in) | :: | currentLevel |
The level the timestep has to be performed for. |
||
type(atl_cube_container_type), | intent(inout) | :: | cubes |
Container for the cubical elements. |
||
type(treelmesh_type), | intent(in) | :: | tree |
treelm mesh |
||
type(atl_timestep_type), | intent(inout) | :: | timestep_list(:) |
List of levelwise timestepping algorihtms |
||
integer, | intent(in) | :: | nSteps |
The number of steps of the time stepping scheme |
||
type(atl_Equations_type), | intent(inout) | :: | equation |
The equation you are operating with. |
||
type(tem_general_type), | intent(inout) | :: | general |
General treelm settings |
||
integer, | intent(inout) | :: | commStateTimer |
Timer for measuring the communication time inside this routine. |
||
type(ply_poly_project_type), | intent(inout) | :: | poly_proj_list(:) |
unique list for projection methods |
Datatype to represent the control of timesteps.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=rk), | public | :: | cfl |
The cfl number that has to be satisfied by the timestep (for the convective part of the equation). |
|||
real(kind=rk), | public | :: | cfl_visc |
The cfl number that has to be satisfied by the timestep (for the viscous part of the equation). |
|||
logical, | public | :: | use_modal_estimate | = | .false. |
Flag to indicate whether to use modal min/max estimations in computation of timestep limitation. |
|
real(kind=rk), | public | :: | fixed_dt |
Fixed timestep length |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | timestepType | = | 0 |
The type of the timestepping. See the parameters above: |
|
integer, | public | :: | nSteps | = | 0 |
The number of steps in the time-stepping scheme |
|
type(atl_timestep_control_type), | public | :: | control |
The data controlling the timestep sizes. |
|||
procedure(mesh_timestep), | public, | pointer, nopass | :: | meshStep | => | null() |
The final timestep stage. |
real(kind=rk), | public, | allocatable | :: | timestepCoeff(:) |
Additional storage for multisptep/multistage timestepping schemes where additional coefficients are required. The usage and the dimensions of this array is left to the solver and is therefore varying for different timestepping schemes. |
||
type(atl_timestep_type), | public, | allocatable | :: | elementSteps(:) |
Datatypes for elementwise timestepping. One for each level. |