pf_imex_t Derived Type

type, public, abstract, extends(pf_sweeper_t) :: pf_imex_t

IMEX SDC sweeper type (old style), extends abstract sweeper


Inherits

type~~pf_imex_t~~InheritsGraph type~pf_imex_t pf_imex_t type~pf_sweeper_t pf_sweeper_t type~pf_imex_t->type~pf_sweeper_t

Contents

Source Code


Components

TypeVisibility AttributesNameInitial
integer, public :: npieces
logical, public :: use_LUq
real(kind=pfdp), public, allocatable:: SdiffE(:,:)
real(kind=pfdp), public, allocatable:: SdiffI(:,:)

Type-Bound Procedures

procedure(pf_f_eval_p), public, deferred :: f_eval

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

    Arguments

    Type IntentOptional AttributesName
    class(pf_imex_t), intent(inout) :: this
    class(pf_encap_t), intent(in) :: y
    real(kind=pfdp), intent(in) :: t
    integer, intent(in) :: level
    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, dt, rhs, level, f, piece) Prototype

    Arguments

    Type IntentOptional AttributesName
    class(pf_imex_t), intent(inout) :: this
    class(pf_encap_t), intent(inout) :: y
    real(kind=pfdp), intent(in) :: t
    real(kind=pfdp), intent(in) :: dt
    class(pf_encap_t), intent(in) :: rhs
    integer, intent(in) :: level
    class(pf_encap_t), intent(inout) :: f
    integer, intent(in) :: piece

procedure, public :: sweep => imex_sweep

  • public subroutine imex_sweep(this, pf, lev, t0, dt)

    Arguments

    Type IntentOptional AttributesName
    class(pf_imex_t), intent(inout) :: this
    type(pf_pfasst_t), intent(inout) :: pf
    class(pf_level_t), intent(inout) :: lev
    real(kind=pfdp), intent(in) :: t0
    real(kind=pfdp), intent(in) :: dt

procedure, public :: initialize => imex_initialize

  • public subroutine imex_initialize(this, lev)

    Arguments

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

procedure, public :: evaluate => imex_evaluate

  • public subroutine imex_evaluate(this, lev, t, m)

    Arguments

    Type IntentOptional AttributesName
    class(pf_imex_t), intent(inout) :: this
    class(pf_level_t), intent(inout) :: lev
    real(kind=pfdp), intent(in) :: t
    integer, intent(in) :: m

procedure, public :: integrate => imex_integrate

  • public subroutine imex_integrate(this, lev, qSDC, fSDC, dt, fintSDC)

    Arguments

    Type IntentOptional AttributesName
    class(pf_imex_t), intent(inout) :: this
    class(pf_level_t), intent(in) :: lev
    class(pf_encap_t), intent(in) :: qSDC(:)
    class(pf_encap_t), intent(in) :: fSDC(:,:)
    real(kind=pfdp), intent(in) :: dt
    class(pf_encap_t), intent(inout) :: fintSDC(:)

procedure, public :: residual => imex_residual

  • public subroutine imex_residual(this, lev, dt)

    Arguments

    Type IntentOptional AttributesName
    class(pf_imex_t), intent(inout) :: this
    class(pf_level_t), intent(inout) :: lev
    real(kind=pfdp), intent(in) :: dt

procedure, public :: spreadq0 => imex_spreadq0

  • public subroutine imex_spreadq0(this, lev, t0)

    Arguments

    Type IntentOptional AttributesName
    class(pf_imex_t), intent(inout) :: this
    class(pf_level_t), intent(inout) :: lev
    real(kind=pfdp), intent(in) :: t0

procedure, public :: evaluate_all => imex_evaluate_all

  • public subroutine imex_evaluate_all(this, lev, t)

    Arguments

    Type IntentOptional AttributesName
    class(pf_imex_t), intent(inout) :: this
    class(pf_level_t), intent(inout) :: lev
    real(kind=pfdp), intent(in) :: t(:)

procedure, public :: destroy => imex_destroy

  • public subroutine imex_destroy(this, lev)

    Arguments

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

procedure, public :: imex_destroy

  • public subroutine imex_destroy(this, lev)

    Arguments

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

Source Code

  type, extends(pf_sweeper_t), abstract :: pf_imex_t
     real(pfdp), allocatable :: SdiffE(:,:)
     real(pfdp), allocatable :: SdiffI(:,:)
   contains
     procedure(pf_f_eval_p), deferred :: f_eval
     procedure(pf_f_comp_p), deferred :: f_comp
     procedure :: sweep        => imex_sweep
     procedure :: initialize   => imex_initialize
     procedure :: evaluate     => imex_evaluate
     procedure :: integrate    => imex_integrate
     procedure :: residual     => imex_residual
     procedure :: spreadq0     => imex_spreadq0
     procedure :: evaluate_all => imex_evaluate_all
     procedure :: destroy      => imex_destroy
     procedure :: imex_destroy
  end type pf_imex_t