mesh_timestep_rk4 Subroutine

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

Subroutine for timestepping with explicit runge kutta of order 4. It contains four Euler forwarding substeps: 0.1 temp = u0 1.1 u1 = rk4_substep(temp) = rhs(temp) 1.2 temp = u0 + dt/2 * u1 2.1 u2 = rk4_substep(temp) = rhs(temp) 2.2 temp = u0 + dt/2 * u2 3.1 u3 = rk4_substep(temp) = rhs(temp) 3.2 temp = u0 + dt * u3 4.1 u4 = rk4_substep(temp) = rhs(temp) 4.2 u0 = u0 + dt/6 * ( u1 + 2*(u2+u3) + u4 ) After each substep, the results are stabilized

VK call tem_startTimer( timerHandle = atl_timerHandles%preciceWrite ) VK call tem_stopTimer( timerHandle = atl_timerHandles%preciceWrite )

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 4)

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


Calls

proc~~mesh_timestep_rk4~~CallsGraph proc~mesh_timestep_rk4 mesh_timestep_rk4 nelems nelems proc~mesh_timestep_rk4->nelems proc~atl_stabilize atl_stabilize proc~mesh_timestep_rk4->proc~atl_stabilize proc~atl_write_precice atl_write_precice proc~mesh_timestep_rk4->proc~atl_write_precice proc~rk4_substep rk4_substep proc~mesh_timestep_rk4->proc~rk4_substep