pf_amisdcQ_t Derived Type

type, public, abstract, extends(pf_amisdc_t) :: pf_amisdcQ_t

Asynchronous multi-implicit sweeper type


Inherits

type~~pf_amisdcq_t~~InheritsGraph type~pf_amisdcq_t pf_amisdcQ_t type~pf_amisdc_t pf_amisdc_t type~pf_amisdcq_t->type~pf_amisdc_t type~pf_sweeper_t pf_sweeper_t type~pf_amisdc_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(:,:)
real(kind=pfdp), public, allocatable:: QdiffE(:,:)
real(kind=pfdp), public, allocatable:: QdiffI(:,:)
real(kind=pfdp), public, allocatable:: QtilE(:,:)
real(kind=pfdp), public, allocatable:: QtilI(:,:)
logical, public :: use_LUq_ =.true.

Type-Bound Procedures

procedure(pf_spreadq0_p), public, deferred :: spreadq0

  • subroutine pf_spreadq0_p(this, Lev, t0, flags, step) Prototype

    Arguments

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

    Time at beginning of step; if flags == 2, time at end of step

    integer, intent(in), optional :: flags
    integer, intent(in), optional :: step

procedure(pf_f1eval_p), public, deferred :: f1eval

  • subroutine pf_f1eval_p(this, y, t, level, f1) Prototype

    Arguments

    Type IntentOptional AttributesName
    class(pf_amisdc_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) :: f1

procedure(pf_f2eval_p), public, deferred :: f2eval

  • subroutine pf_f2eval_p(this, y, t, level, f2) Prototype

    Arguments

    Type IntentOptional AttributesName
    class(pf_amisdc_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) :: f2

procedure(pf_f2comp_p), public, deferred :: f2comp

  • subroutine pf_f2comp_p(this, y, t, dt, rhs, level, f2) Prototype

    Arguments

    Type IntentOptional AttributesName
    class(pf_amisdc_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) :: f2

procedure(pf_f3eval_p), public, deferred :: f3eval

  • subroutine pf_f3eval_p(this, y, t, level, f3) Prototype

    Arguments

    Type IntentOptional AttributesName
    class(pf_amisdc_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) :: f3

procedure(pf_f3comp_p), public, deferred :: f3comp

  • subroutine pf_f3comp_p(this, y, t, dt, rhs, level, f3) Prototype

    Arguments

    Type IntentOptional AttributesName
    class(pf_amisdc_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) :: f3

procedure, public :: evaluate => amisdc_evaluate

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

    Arguments

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

procedure, public :: residual => amisdc_residual

  • public subroutine amisdc_residual(this, lev, dt)

    Arguments

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

procedure, public :: evaluate_all => amisdc_evaluate_all

  • public subroutine amisdc_evaluate_all(this, lev, t)

    Arguments

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

procedure, public :: amisdc_destroy

procedure, public :: sweep => amisdcQ_sweep

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

    Arguments

    Type IntentOptional AttributesName
    class(pf_amisdcQ_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 => amisdcQ_initialize

  • public subroutine amisdcQ_initialize(this, lev)

    Arguments

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

procedure, public :: integrate => amisdcQ_integrate

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

    Arguments

    Type IntentOptional AttributesName
    class(pf_amisdcQ_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 :: destroy => amisdcQ_destroy

  • public subroutine amisdcQ_destroy(this, lev)

    Arguments

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

procedure, public :: sweep_coupled_implicit_terms

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

    Arguments

    Type IntentOptional AttributesName
    class(pf_amisdcQ_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 :: sweep_decoupled_implicit_terms

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

    Arguments

    Type IntentOptional AttributesName
    class(pf_amisdcQ_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 :: amisdcQ_destroy

  • public subroutine amisdcQ_destroy(this, lev)

    Arguments

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

Source Code

  type, extends(pf_amisdc_t), abstract :: pf_amisdcQ_t
     real(pfdp), allocatable :: QdiffE(:,:)
     real(pfdp), allocatable :: QdiffI(:,:)
     real(pfdp), allocatable :: QtilE(:,:)
     real(pfdp), allocatable :: QtilI(:,:)
     logical                 :: use_LUq_ = .true.
   contains 
     procedure :: sweep        => amisdcQ_sweep
     procedure :: initialize   => amisdcQ_initialize
     procedure :: integrate    => amisdcQ_integrate
     procedure :: destroy      => amisdcQ_destroy
     procedure :: sweep_coupled_implicit_terms
     procedure :: sweep_decoupled_implicit_terms
     procedure :: amisdcQ_destroy
  end type pf_amisdcQ_t