imk_sweep Subroutine

public subroutine imk_sweep(this, pf, level_index, t0, dt, nsweeps, flags)

Uses

  • proc~~imk_sweep~~UsesGraph proc~imk_sweep imk_sweep module~pf_mod_hooks pf_mod_hooks proc~imk_sweep->module~pf_mod_hooks module~pf_mod_timer pf_mod_timer proc~imk_sweep->module~pf_mod_timer module~pf_mod_dtype pf_mod_dtype module~pf_mod_hooks->module~pf_mod_dtype module~pf_mod_timer->module~pf_mod_dtype iso_c_binding iso_c_binding module~pf_mod_dtype->iso_c_binding

Perform nsweep sweeps on level and set qend appropriately.

Arguments

Type IntentOptional AttributesName
class(pf_imk_t), intent(inout) :: this

Inputs

type(pf_pfasst_t), intent(inout), target:: pf

PFASST structure

integer, intent(in) :: level_index

which level to sweep on

real(kind=pfdp), intent(in) :: t0

Time at beginning of time step

real(kind=pfdp), intent(in) :: dt

time step size

integer, intent(in) :: nsweeps

number of sweeps to do

integer, intent(in), optional :: flags

Calls

proc~~imk_sweep~~CallsGraph proc~imk_sweep imk_sweep proc~rk_step rk_step proc~imk_sweep->proc~rk_step proc~mkrk_step mkrk_step proc~imk_sweep->proc~mkrk_step proc~imk_actually_sweep imk_actually_sweep proc~imk_sweep->proc~imk_actually_sweep proc~call_hooks call_hooks proc~rk_step->proc~call_hooks proc~pf_residual pf_residual proc~rk_step->proc~pf_residual proc~mkrk_step->proc~call_hooks proc~mkrk_step->proc~pf_residual proc~imk_actually_sweep->proc~pf_residual proc~start_timer start_timer proc~imk_actually_sweep->proc~start_timer proc~end_timer end_timer proc~imk_actually_sweep->proc~end_timer proc~call_hooks->proc~start_timer proc~call_hooks->proc~end_timer proc~pf_residual->proc~start_timer proc~pf_residual->proc~end_timer

Contents

Source Code


Source Code

  subroutine imk_sweep(this, pf, level_index, t0, dt, nsweeps, flags)
    use pf_mod_timer
    use pf_mod_hooks

    !>  Inputs
    class(pf_imk_t), intent(inout) :: this
    type(pf_pfasst_t), intent(inout),target :: pf      !!  PFASST structure
    integer,             intent(in)    :: level_index  !!  which level to sweep on
    real(pfdp),        intent(in   ) :: t0             !!  Time at beginning of time step
    real(pfdp),        intent(in   ) :: dt             !!  time step size
    integer,             intent(in)    :: nsweeps      !!  number of sweeps to do
    integer, optional,   intent(in)    :: flags

    !>  Local variables
    class(pf_level_t), pointer :: lev    !!  points to current level

    this%t0 = t0
    this%dt = dt
    if (this%rk) then
       call rk_step(this, pf, t0, dt)
    else if (this%mkrk) then
       call mkrk_step(this, pf, t0, dt)
    else
       call imk_actually_sweep(this, pf, level_index, t0, dt, nsweeps)
    end if
  end subroutine imk_sweep