pf_mod_rkstepper Module

Module to do Runge-Kutta stepping


Uses

  • module~~pf_mod_rkstepper~~UsesGraph module~pf_mod_rkstepper pf_mod_rkstepper module~pf_mod_utils pf_mod_utils module~pf_mod_rkstepper->module~pf_mod_utils module~pf_mod_dtype pf_mod_dtype module~pf_mod_rkstepper->module~pf_mod_dtype module~pf_mod_utils->module~pf_mod_dtype module~pf_mod_timer pf_mod_timer module~pf_mod_utils->module~pf_mod_timer iso_c_binding iso_c_binding module~pf_mod_dtype->iso_c_binding module~pf_mod_timer->module~pf_mod_dtype

Contents


Interfaces

interface

  • public subroutine pf_f_eval_p(this, y, t, level_index, f, piece)

    Arguments

    Type IntentOptional AttributesName
    class(pf_ark_t), intent(inout) :: this
    class(pf_encap_t), intent(in) :: y
    real(kind=pfdp), intent(in) :: t
    integer, intent(in) :: level_index
    class(pf_encap_t), intent(inout) :: f
    integer, intent(in) :: piece

interface

  • public subroutine pf_f_comp_p(this, y, t, dtq, rhs, level_index, f, piece)

    Arguments

    Type IntentOptional AttributesName
    class(pf_ark_t), intent(inout) :: this
    class(pf_encap_t), intent(inout) :: y
    real(kind=pfdp), intent(in) :: t
    real(kind=pfdp), intent(in) :: dtq
    class(pf_encap_t), intent(in) :: rhs
    integer, intent(in) :: level_index
    class(pf_encap_t), intent(inout) :: f
    integer, intent(in) :: piece

Derived Types

type, public, abstract, extends(pf_stepper_t) :: pf_ark_t

IMEX or additive or semi-implicit Runge-Kutta stepper type

Components

TypeVisibility AttributesNameInitial
integer, public :: npieces
integer, public :: order
real(kind=pfdp), public, allocatable:: AmatI(:,:)
real(kind=pfdp), public, allocatable:: AmatE(:,:)
real(kind=pfdp), public, allocatable:: cvec(:)
real(kind=pfdp), public, allocatable:: bvecI(:)
real(kind=pfdp), public, allocatable:: bvecE(:)
real(kind=pfdp), public, allocatable:: QtilI(:,:)
logical, public :: explicit =.true.
logical, public :: implicit =.true.
integer, public :: nstages

Type-Bound Procedures

procedure(pf_f_eval_p), public :: f_eval
procedure(pf_f_comp_p), public :: f_comp
procedure, public :: do_n_steps => ark_do_n_steps
procedure, public :: initialize => ark_initialize
procedure, public :: destroy => ark_destroy

Subroutines

public subroutine ark_do_n_steps(this, pf, level_index, t0, big_dt, nsteps_rk)

Perform N steps of ark on level level_index and set qend appropriately. Assign pointer to appropriate level

Arguments

Type IntentOptional AttributesName
class(pf_ark_t), intent(inout) :: this
type(pf_pfasst_t), intent(inout), target:: pf
integer, intent(in) :: level_index

Level of the index to step on

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

Time at start of time interval

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

Size of time interval to integrato on

integer, intent(in) :: nsteps_rk

Number of steps to use

public subroutine ark_initialize(this, lev)

Arguments

Type IntentOptional AttributesName
class(pf_ark_t), intent(inout) :: this
class(pf_level_t), intent(inout) :: lev

public subroutine ark_destroy(this, lev)

Arguments

Type IntentOptional AttributesName
class(pf_ark_t), intent(inout) :: this
class(pf_level_t), intent(inout) :: lev