MFC: Simulation
High-fidelity multiphase flow simulation
Loading...
Searching...
No Matches
m_time_steppers Module Reference

The following module features a variety of time-stepping schemes. Currently, it includes the following Runge-Kutta (RK) algorithms: 1) 1st Order TVD RK 2) 2nd Order TVD RK 3) 3rd Order TVD RK where TVD designates a total-variation-diminishing time-stepper. More...

Functions/Subroutines

impure subroutine s_initialize_time_steppers_module
 The computation of parameters, the allocation of memory, the association of pointers and/or the execution of any other procedures that are necessary to setup the module.
 
impure subroutine s_tvd_rk (t_step, time_avg, nstage)
 
impure subroutine s_adaptive_dt_bubble (stage)
 Bubble source part in Strang operator splitting scheme.
 
impure subroutine s_compute_dt ()
 
subroutine s_apply_bodyforces (q_cons_vf, q_prim_vf_in, rhs_vf_in, ldt)
 This subroutine applies the body forces source term at each Runge-Kutta stage.
 
subroutine s_time_step_cycling (t_step)
 This subroutine saves the temporary q_prim_vf vector into the q_prim_ts vector that is then used in p_main.
 
impure subroutine s_finalize_time_steppers_module
 Module deallocation and/or disassociation procedures.
 

Variables

type(vector_field), dimension(:), allocatable q_cons_ts
 Cell-average conservative variables at each time-stage (TS)
 
type(scalar_field), dimension(:), allocatable q_prim_vf
 Cell-average primitive variables at the current time-stage.
 
type(scalar_field), dimension(:), allocatable rhs_vf
 Cell-average RHS variables at the current time-stage.
 
type(integer_field), dimension(:, :), allocatable bc_type
 Boundary condition identifiers.
 
type(vector_field), dimension(:), allocatable q_prim_ts1
 
type(vector_field), dimension(:), allocatable q_prim_ts2
 Cell-average primitive variables at consecutive TIMESTEPS.
 
real(wp), dimension(:, :, :, :, :), allocatable rhs_pb
 
type(scalar_fieldq_t_sf
 Cell-average temperature variables at the current time-stage.
 
real(wp), dimension(:, :, :, :, :), allocatable rhs_mv
 
real(wp), dimension(:, :, :), allocatable max_dt
 
integer, private num_ts
 Number of time stages in the time-stepping scheme.
 
integer stor
 storage index
 
real(wp), dimension(:, :), allocatable rk_coef
 
integer, private num_probe_ts
 
real(stp), dimension(:, :, :, :), allocatable pinned
 
real(stp), dimension(:, :, :, :), allocatable target
 
real(stp), dimension(:, :, :, :), allocatable, pointer, contiguous q_cons_ts_pool_host
 
real(stp), dimension(:, :, :, :), pointer, contiguous q_cons_ts_pool_device
 
integer(kind=8), dimension(4) pool_dims
 
integer(kind=8), dimension(4) pool_starts
 
integer(kind=8) pool_size
 
type(c_ptr) cptr_host
 
type(c_ptr) cptr_device
 

Detailed Description

The following module features a variety of time-stepping schemes. Currently, it includes the following Runge-Kutta (RK) algorithms: 1) 1st Order TVD RK 2) 2nd Order TVD RK 3) 3rd Order TVD RK where TVD designates a total-variation-diminishing time-stepper.

Function/Subroutine Documentation

◆ s_adaptive_dt_bubble()

impure subroutine m_time_steppers::s_adaptive_dt_bubble ( integer, intent(in) stage)

Bubble source part in Strang operator splitting scheme.

Parameters
t_stepCurrent time-step
Here is the caller graph for this function:

◆ s_apply_bodyforces()

subroutine m_time_steppers::s_apply_bodyforces ( type(scalar_field), dimension(1:sys_size), intent(inout) q_cons_vf,
type(scalar_field), dimension(1:sys_size), intent(in) q_prim_vf_in,
type(scalar_field), dimension(1:sys_size), intent(inout) rhs_vf_in,
real(wp), intent(in) ldt )

This subroutine applies the body forces source term at each Runge-Kutta stage.

Parameters
[in]ldtlocal dt
Here is the caller graph for this function:

◆ s_compute_dt()

impure subroutine m_time_steppers::s_compute_dt
Here is the caller graph for this function:

◆ s_finalize_time_steppers_module()

impure subroutine m_time_steppers::s_finalize_time_steppers_module

Module deallocation and/or disassociation procedures.

Here is the caller graph for this function:

◆ s_initialize_time_steppers_module()

impure subroutine m_time_steppers::s_initialize_time_steppers_module

The computation of parameters, the allocation of memory, the association of pointers and/or the execution of any other procedures that are necessary to setup the module.

Here is the caller graph for this function:

◆ s_time_step_cycling()

subroutine m_time_steppers::s_time_step_cycling ( integer, intent(in) t_step)

This subroutine saves the temporary q_prim_vf vector into the q_prim_ts vector that is then used in p_main.

Parameters
t_stepcurrent time-step
Here is the caller graph for this function:

◆ s_tvd_rk()

impure subroutine m_time_steppers::s_tvd_rk ( integer, intent(in) t_step,
real(wp), intent(inout) time_avg,
integer, intent(in) nstage )
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ bc_type

type(integer_field), dimension(:, :), allocatable m_time_steppers::bc_type

Boundary condition identifiers.

◆ cptr_device

type(c_ptr) m_time_steppers::cptr_device

◆ cptr_host

type(c_ptr) m_time_steppers::cptr_host

◆ max_dt

real(wp), dimension(:, :, :), allocatable m_time_steppers::max_dt

◆ num_probe_ts

integer, private m_time_steppers::num_probe_ts
private

◆ num_ts

integer, private m_time_steppers::num_ts
private

Number of time stages in the time-stepping scheme.

◆ pinned

real(stp), dimension(:, :, :, :), allocatable m_time_steppers::pinned

◆ pool_dims

integer(kind=8), dimension(4) m_time_steppers::pool_dims

◆ pool_size

integer(kind=8) m_time_steppers::pool_size

◆ pool_starts

integer(kind=8), dimension(4) m_time_steppers::pool_starts

◆ q_cons_ts

type(vector_field), dimension(:), allocatable m_time_steppers::q_cons_ts

Cell-average conservative variables at each time-stage (TS)

◆ q_cons_ts_pool_device

real(stp), dimension(:, :, :, :), pointer, contiguous m_time_steppers::q_cons_ts_pool_device

◆ q_cons_ts_pool_host

real(stp), dimension(:, :, :, :), allocatable, pointer, contiguous m_time_steppers::q_cons_ts_pool_host

◆ q_prim_ts1

type(vector_field), dimension(:), allocatable m_time_steppers::q_prim_ts1

◆ q_prim_ts2

type(vector_field), dimension(:), allocatable m_time_steppers::q_prim_ts2

Cell-average primitive variables at consecutive TIMESTEPS.

◆ q_prim_vf

type(scalar_field), dimension(:), allocatable m_time_steppers::q_prim_vf

Cell-average primitive variables at the current time-stage.

◆ q_t_sf

type(scalar_field) m_time_steppers::q_t_sf

Cell-average temperature variables at the current time-stage.

◆ rhs_mv

real(wp), dimension(:, :, :, :, :), allocatable m_time_steppers::rhs_mv

◆ rhs_pb

real(wp), dimension(:, :, :, :, :), allocatable m_time_steppers::rhs_pb

◆ rhs_vf

type(scalar_field), dimension(:), allocatable m_time_steppers::rhs_vf

Cell-average RHS variables at the current time-stage.

◆ rk_coef

real(wp), dimension(:, :), allocatable m_time_steppers::rk_coef

◆ stor

integer m_time_steppers::stor

storage index

◆ target

real(stp), dimension(:, :, :, :), allocatable m_time_steppers::target