ExplicitMethods Module



Variables

Type Visibility Attributes Name Initial
integer, protected :: eBDF_order = 3
logical, public :: CTD_AFTER_STEPS = .false.
logical, public :: LIMITED = .false.
real(kind=RP), public :: LIMITER_MIN = 1e-13_RP
character(len=*), public, parameter :: EULER_NAME = "euler"
character(len=*), public, parameter :: RK3_NAME = "rk3"
character(len=*), public, parameter :: RK5_NAME = "rk5"
character(len=*), public, parameter :: OPTRK_NAME = "optimal rk"
character(len=*), public, parameter :: SSPRK33_NAME = "ssprk33"
character(len=*), public, parameter :: SSPRK43_NAME = "ssprk43"
character(len=*), public, parameter :: EULER_RK3_NAME = "euler rk3"
integer, public, parameter :: EULER_KEY = 1
integer, public, parameter :: RK3_KEY = 2
integer, public, parameter :: RK5_KEY = 3
integer, public, parameter :: OPTRK_KEY = 4
integer, public, parameter :: SSPRK33_KEY = 5
integer, public, parameter :: SSPRK43_KEY = 6
integer, public, parameter :: EULER_RK3_KEY = 7

Subroutines

public subroutine TakeEulerRK3Step(mesh, particles, t, deltaT, ComputeTimeDerivative, dt_vec, dts, global_dt, iter)

Arguments

Type IntentOptional Attributes Name
type(HexMesh) :: mesh
type(Particles_t) :: particles
real(kind=RP) :: t
real(kind=RP) :: deltaT
procedure(ComputeTimeDerivative_f) :: ComputeTimeDerivative
real(kind=RP), intent(in), optional, allocatable, dimension(:) :: dt_vec
logical, intent(in), optional :: dts
real(kind=RP), intent(in), optional :: global_dt
integer, intent(in), optional :: iter

public subroutine TakeRK3Step(mesh, particles, t, deltaT, ComputeTimeDerivative, dt_vec, dts, global_dt, iter)

Arguments

Type IntentOptional Attributes Name
type(HexMesh) :: mesh
type(Particles_t) :: particles
real(kind=RP) :: t
real(kind=RP) :: deltaT
procedure(ComputeTimeDerivative_f) :: ComputeTimeDerivative
real(kind=RP), intent(in), optional, allocatable, dimension(:) :: dt_vec
logical, intent(in), optional :: dts
real(kind=RP), intent(in), optional :: global_dt
integer, intent(in), optional :: iter

public subroutine TakeRK5Step(mesh, particles, t, deltaT, ComputeTimeDerivative, dt_vec, dts, global_dt, iter)

Arguments

Type IntentOptional Attributes Name
type(HexMesh) :: mesh
type(Particles_t) :: particles
real(kind=RP) :: t
real(kind=RP) :: deltaT
procedure(ComputeTimeDerivative_f) :: ComputeTimeDerivative
real(kind=RP), intent(in), optional, allocatable, dimension(:) :: dt_vec
logical, intent(in), optional :: dts
real(kind=RP), intent(in), optional :: global_dt
integer, intent(in), optional :: iter

public subroutine TakeSSPRK33Step(mesh, particles, t, deltaT, ComputeTimeDerivative, dt_vec, dts, global_dt, iter)

Arguments

Type IntentOptional Attributes Name
type(HexMesh) :: mesh
type(Particles_t) :: particles
real(kind=RP) :: t
real(kind=RP) :: deltaT
procedure(ComputeTimeDerivative_f) :: ComputeTimeDerivative
real(kind=RP), intent(in), optional, allocatable :: dt_vec(:)
logical, intent(in), optional :: dts
real(kind=RP), intent(in), optional :: global_dt
integer, intent(in), optional :: iter

public subroutine TakeSSPRK43Step(mesh, particles, t, deltaT, ComputeTimeDerivative, dt_vec, dts, global_dt, iter)

Arguments

Type IntentOptional Attributes Name
type(HexMesh) :: mesh
type(Particles_t) :: particles
real(kind=RP) :: t
real(kind=RP) :: deltaT
procedure(ComputeTimeDerivative_f) :: ComputeTimeDerivative
real(kind=RP), intent(in), optional, allocatable :: dt_vec(:)
logical, intent(in), optional :: dts
real(kind=RP), intent(in), optional :: global_dt
integer, intent(in), optional :: iter

public subroutine TakeExplicitEulerStep(mesh, particles, t, deltaT, ComputeTimeDerivative, dt_vec, dts, global_dt, iter)

Arguments

Type IntentOptional Attributes Name
type(HexMesh) :: mesh
type(Particles_t) :: particles
real(kind=RP) :: t
real(kind=RP) :: deltaT
procedure(ComputeTimeDerivative_f) :: ComputeTimeDerivative
real(kind=RP), intent(in), optional, allocatable, dimension(:) :: dt_vec
logical, intent(in), optional :: dts
real(kind=RP), intent(in), optional :: global_dt
integer, intent(in), optional :: iter

public subroutine Enable_CTD_AFTER_STEPS()

Arguments

None

public subroutine TakeRKOptStep(mesh, particles, t, deltaT, ComputeTimeDerivative, N_STAGES, dt_vec, dts, global_dt, iter)

Arguments

Type IntentOptional Attributes Name
type(HexMesh) :: mesh
type(Particles_t) :: particles
real(kind=RP) :: t
real(kind=RP) :: deltaT
procedure(ComputeTimeDerivative_f) :: ComputeTimeDerivative
integer, intent(in) :: N_STAGES
real(kind=RP), intent(in), optional, allocatable, dimension(:) :: dt_vec
logical, intent(in), optional :: dts
real(kind=RP), intent(in), optional :: global_dt
integer, intent(in), optional :: iter

public subroutine Enable_limiter(integrator, minimum)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: integrator
real(kind=RP), intent(in), optional :: minimum