pf_ark_t Derived Type

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

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


Inherits

type~~pf_ark_t~~InheritsGraph type~pf_ark_t pf_ark_t type~pf_stepper_t pf_stepper_t type~pf_ark_t->type~pf_stepper_t

Contents

Source Code


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, deferred :: f_eval

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

    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

procedure(pf_f_comp_p), public, deferred :: f_comp

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

    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

procedure, public :: do_n_steps => ark_do_n_steps

  • 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

procedure, public :: initialize => ark_initialize

  • public subroutine ark_initialize(this, lev)

    Arguments

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

procedure, public :: destroy => ark_destroy

  • public subroutine ark_destroy(this, lev)

    Arguments

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

Source Code

  type, extends(pf_stepper_t), abstract :: pf_ark_t
     real(pfdp), allocatable :: AmatI(:,:)
     real(pfdp), allocatable :: AmatE(:,:)
     real(pfdp), allocatable :: cvec(:)
     real(pfdp), allocatable :: bvecI(:)
     real(pfdp), allocatable :: bvecE(:)
     real(pfdp), allocatable :: QtilI(:,:)
     logical                 :: explicit = .true.
     logical                 :: implicit = .true.
     integer                 :: nstages
   contains
     procedure(pf_f_eval_p), deferred :: f_eval
     procedure(pf_f_comp_p), deferred :: f_comp
     procedure :: do_n_steps  => ark_do_n_steps
     procedure :: initialize  => ark_initialize
     procedure :: destroy     => ark_destroy
  end type pf_ark_t