calculate_cfl_timestep Subroutine

private subroutine calculate_cfl_timestep(length, cfl, cfl_visc, equation, dt, timestep, scheme, material, localtime)

Calculate the timestep for a whole part of a cubic mesh by a CFL condition.

This routine takes the primitive variables of the equation system and calculates the next timestep. The calculation is based on the cfl condition and the next restart timepoints.

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(in) :: length

The length of the cubes you are calculating the cfl condition for.

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

The CFL factor to apply (for the convective part of the equation).

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

The CFL factor to apply (for the viscous part of the equation).

type(atl_Equations_type), intent(inout) :: equation

The equation system to be used in the simulation.

real(kind=rk), intent(out) :: dt

Resulting timestep.

type(atl_timestep_type), intent(in) :: timestep

Timestep information

type(atl_scheme_type), intent(in) :: scheme

Info about the scheme.

type(atl_material_type), intent(in) :: material

Material information for all elements on the current level

type(tem_time_type), intent(in) :: localtime

Local time, required for update of temporal background in linear Euler


Calls

proc~~calculate_cfl_timestep~~CallsGraph proc~calculate_cfl_timestep calculate_cfl_timestep proc~calc_timestep_lineareuler_2d_cube calc_timestep_linearEuler_2d_cube proc~calculate_cfl_timestep->proc~calc_timestep_lineareuler_2d_cube proc~calc_timestep_adv_cube calc_timestep_adv_cube proc~calculate_cfl_timestep->proc~calc_timestep_adv_cube proc~calc_timestep_heat_cube_1d calc_timestep_heat_cube_1d proc~calculate_cfl_timestep->proc~calc_timestep_heat_cube_1d proc~calc_timestep_viscflow_cube calc_timestep_viscflow_cube proc~calculate_cfl_timestep->proc~calc_timestep_viscflow_cube proc~tem_abort tem_abort proc~calculate_cfl_timestep->proc~tem_abort proc~calc_timestep_flow_cube_2d calc_timestep_flow_cube_2d proc~calculate_cfl_timestep->proc~calc_timestep_flow_cube_2d proc~calc_timestep_flow_cube calc_timestep_flow_cube proc~calculate_cfl_timestep->proc~calc_timestep_flow_cube proc~calc_timestep_ed_cube calc_timestep_ed_cube proc~calculate_cfl_timestep->proc~calc_timestep_ed_cube proc~calc_timestep_nerplanck_cube calc_timestep_nerplanck_cube proc~calculate_cfl_timestep->proc~calc_timestep_nerplanck_cube proc~calc_timestep_flow_cube_mod calc_timestep_flow_cube_mod proc~calculate_cfl_timestep->proc~calc_timestep_flow_cube_mod proc~calc_timestep_acoustic_2d_cube calc_timestep_acoustic_2d_cube proc~calculate_cfl_timestep->proc~calc_timestep_acoustic_2d_cube proc~atl_eqn_update_background atl_eqn_update_background proc~calculate_cfl_timestep->proc~atl_eqn_update_background proc~calc_timestep_viscflow_cube_2d calc_timestep_viscflow_cube_2d proc~calculate_cfl_timestep->proc~calc_timestep_viscflow_cube_2d proc~calc_timestep_flow_cube_1d calc_timestep_flow_cube_1d proc~calculate_cfl_timestep->proc~calc_timestep_flow_cube_1d proc~calc_timestep_acoustic_cube calc_timestep_acoustic_cube proc~calculate_cfl_timestep->proc~calc_timestep_acoustic_cube proc~calc_timestep_lineareuler_cube calc_timestep_linearEuler_cube proc~calculate_cfl_timestep->proc~calc_timestep_lineareuler_cube proc~tem_temporal_for tem_temporal_for proc~atl_eqn_update_background->proc~tem_temporal_for

Called by

proc~~calculate_cfl_timestep~~CalledByGraph proc~calculate_cfl_timestep calculate_cfl_timestep proc~atl_get_timestep atl_get_timestep proc~atl_get_timestep->proc~calculate_cfl_timestep proc~atl_solve_program atl_solve_program proc~atl_solve_program->proc~atl_get_timestep proc~atl_initialize_program atl_initialize_program proc~atl_initialize_program->proc~atl_get_timestep program~ateles ateles program~ateles->proc~atl_solve_program program~ateles->proc~atl_initialize_program

Contents


Variables

TypeVisibilityAttributesNameInitial
real(kind=rk), private :: speedOfLight
integer, private :: nPoly