atl_time_integration_module Module

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.


Uses

Used by

  • module~~atl_time_integration_module~~UsedByGraph module~atl_time_integration_module atl_time_integration_module module~atl_physcheck_module atl_physCheck_module module~atl_physcheck_module->module~atl_time_integration_module module~atl_predcor_cerk4_module atl_predcor_cerk4_module module~atl_predcor_cerk4_module->module~atl_time_integration_module module~atl_calc_time_module atl_calc_time_module module~atl_calc_time_module->module~atl_time_integration_module module~atl_ssprk2_module atl_ssprk2_module module~atl_ssprk2_module->module~atl_time_integration_module module~atl_rktaylor_module atl_rktaylor_module module~atl_rktaylor_module->module~atl_time_integration_module module~atl_imexrk_module atl_imexrk_module module~atl_imexrk_module->module~atl_time_integration_module module~atl_container_module atl_container_module module~atl_container_module->module~atl_time_integration_module module~atl_container_module->module~atl_physcheck_module module~atl_global_time_integration_module atl_global_time_integration_module module~atl_container_module->module~atl_global_time_integration_module module~atl_fwdeuler_module atl_fwdEuler_module module~atl_fwdeuler_module->module~atl_time_integration_module module~atl_global_time_integration_module->module~atl_time_integration_module module~atl_global_time_integration_module->module~atl_predcor_cerk4_module module~atl_global_time_integration_module->module~atl_ssprk2_module module~atl_global_time_integration_module->module~atl_rktaylor_module module~atl_global_time_integration_module->module~atl_imexrk_module module~atl_global_time_integration_module->module~atl_fwdeuler_module module~atl_rk4_module atl_rk4_module module~atl_global_time_integration_module->module~atl_rk4_module module~atl_rk4_module->module~atl_time_integration_module module~atl_program_module atl_program_module module~atl_program_module->module~atl_physcheck_module module~atl_program_module->module~atl_calc_time_module module~atl_program_module->module~atl_container_module module~atl_program_module->module~atl_global_time_integration_module module~atl_initialize_module atl_initialize_module module~atl_program_module->module~atl_initialize_module program~ateles ateles program~ateles->module~atl_container_module program~ateles->module~atl_program_module program~atl_harvesting atl_harvesting program~atl_harvesting->module~atl_container_module program~atl_harvesting->module~atl_program_module program~atl_harvesting->module~atl_initialize_module module~atl_initialize_module->module~atl_container_module

Contents


Variables

TypeVisibilityAttributesNameInitial
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.


Abstract Interfaces

abstract interface

Interface definition for meshwise timestepping routine.

Read more…
  • private subroutine mesh_timestep(minLevel, maxLevel, currentLevel, cubes, tree, timestep_list, nSteps, equation, general, commStateTimer, poly_proj_list)

    Arguments

    TypeIntentOptionalAttributesName
    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


Derived Types

type, public :: atl_timestep_control_type

Datatype to represent the control of timesteps.

Components

TypeVisibilityAttributesNameInitial
real(kind=rk), private :: cfl

The cfl number that has to be satisfied by the timestep (for the convective part of the equation).

real(kind=rk), private :: cfl_visc

The cfl number that has to be satisfied by the timestep (for the viscous part of the equation).

logical, private :: use_modal_estimate =.false.

Flag to indicate whether to use modal min/max estimations in computation of timestep limitation.

real(kind=rk), private :: fixed_dt

Fixed timestep length

Read more…

type, public :: atl_global_timestep_type

Components

TypeVisibilityAttributesNameInitial
integer, private :: timestepType =0

The type of the timestepping. See the parameters above:

Read more…
integer, private :: nSteps =0

The number of steps in the time-stepping scheme

type(atl_timestep_control_type), private :: control

The data controlling the timestep sizes.

procedure(mesh_timestep), private, pointer, nopass:: meshStep=> null()

The final timestep stage.

real(kind=rk), private, 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), private, allocatable:: elementSteps(:)

Datatypes for elementwise timestepping. One for each level.