atl_fwdEuler_module Module

Routines, functions and datatypes for Forward Euler (i.e. explicit Euler) timestepping.



Subroutines

public subroutine atl_init_explicitEuler(me, minLevel, maxLevel)

Initialize explicit euler scheme for timestepping.

Arguments

Type IntentOptional Attributes Name
type(atl_global_timestep_type), intent(inout) :: me

The datatype to initialize.

integer, intent(in) :: minLevel

The minimal level in the mesh.

integer, intent(in) :: maxLevel

The maximal level in the mesh.

private subroutine update_timestep_euler(me, timestepInfo)

Interface definition for levelwise updating of timestepping routine.

Arguments

Type IntentOptional Attributes Name
class(atl_timestep_type), intent(inout) :: me

The type of your timestepping.

type(atl_local_timestep_type), intent(in) :: timestepInfo

Local timestepping information for that part of the mesh

private subroutine elemental_timestep_euler(me, state, cell, dof, sideFlux)

Interface definition for elementwise timestepping routine.

Arguments

Type IntentOptional Attributes Name
class(atl_timestep_type), intent(inout) :: me

Description of the timestep integration method.

real(kind=rk), intent(inout) :: state(:,:,:)

The state of all cells on this level. This field will be updated ad the cell position. See kerneldata type for more explanations.

integer, intent(in) :: cell

Position of the cell to update in the state vector.

integer, intent(in) :: dof

The degree of freedom to update

real(kind=rk), intent(in) :: sideFlux(:)

The flux for one of the sides of this cell. The length of this array is the number of conservative variables of your equation.

private subroutine elemental_timestep_vec_euler(me, state, kerneldata)

Interface definition for elementwise timestepping routine.

Arguments

Type IntentOptional Attributes Name
class(atl_timestep_type), intent(inout) :: me

Description of the timestep integration method.

real(kind=rk), intent(inout) :: state(:,:,:)

The state of all cells on this level. This field will be updated ad the cell position. See kerneldata type for more explanations.

type(atl_kerneldata_type), intent(in) :: kerneldata

Complete kerneldata to get the flux from with additional information.

private recursive subroutine mesh_timestep_euler(minLevel, maxLevel, currentLevel, cubes, tree, timestep_list, nSteps, equation, general, commStateTimer, poly_proj_list)

subroutine for timestepping with explicit euler.

Read more…

Arguments

Type IntentOptional 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(minLevel:)

List of levelwise timestepping algorihtms

integer, intent(in) :: nSteps

The number of steps of the time stepping scheme (assumed to be 1)

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