pf_sweeper_t Derived Type

type, public, abstract :: pf_sweeper_t

The abstract SDC sweeper type (must be extended)


Inherited by

type~~pf_sweeper_t~~InheritedByGraph type~pf_sweeper_t pf_sweeper_t type~pf_verlet_t pf_verlet_t type~pf_verlet_t->type~pf_sweeper_t type~pf_misdcq_oc_t pf_misdcQ_oc_t type~pf_misdcq_oc_t->type~pf_sweeper_t type~pf_imk_t pf_imk_t type~pf_imk_t->type~pf_sweeper_t type~pf_imexq_t pf_imexQ_t type~pf_imexq_t->type~pf_sweeper_t type~pf_misdcq_t pf_misdcQ_t type~pf_misdcq_t->type~pf_sweeper_t type~pf_user_level_t pf_user_level_t type~pf_user_level_t->type~pf_sweeper_t sweeper type~pf_imexq_oc_t pf_imexQ_oc_t type~pf_imexq_oc_t->type~pf_sweeper_t type~pf_misdc_t pf_misdc_t type~pf_misdc_t->type~pf_sweeper_t type~pf_imex_t pf_imex_t type~pf_imex_t->type~pf_sweeper_t type~pf_amisdc_t pf_amisdc_t type~pf_amisdc_t->type~pf_sweeper_t type~pf_magpicard_t pf_magpicard_t type~pf_magpicard_t->type~pf_sweeper_t type~pf_amisdcq_t pf_amisdcQ_t type~pf_amisdcq_t->type~pf_amisdc_t type~pf_level_t pf_level_t type~pf_level_t->type~pf_user_level_t ulevel type~pf_pfasst_t pf_pfasst_t type~pf_pfasst_t->type~pf_level_t levels

Contents

Source Code


Components

TypeVisibility AttributesNameInitial
integer, public :: npieces
logical, public :: use_LUq

Type-Bound Procedures

procedure(pf_sweep_p), public, deferred :: sweep

  • subroutine pf_sweep_p(this, pf, level_index, t0, dt, nsweeps, flags) Prototype

    SDC sweeper subroutines

    Arguments

    Type IntentOptional AttributesName
    class(pf_sweeper_t), intent(inout) :: this
    type(pf_pfasst_t), intent(inout), target:: pf
    integer, intent(in) :: level_index
    real(kind=pfdp), intent(in) :: t0
    real(kind=pfdp), intent(in) :: dt
    integer, intent(in) :: nsweeps
    integer, intent(in), optional :: flags

procedure(pf_initialize_p), public, deferred :: initialize

  • subroutine pf_initialize_p(this, lev) Prototype

    Arguments

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

procedure(pf_evaluate_p), public, deferred :: evaluate

  • subroutine pf_evaluate_p(this, lev, t, m, 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) :: t
    integer, intent(in) :: m
    integer, intent(in), optional :: flags
    integer, intent(in), optional :: step

procedure(pf_integrate_p), public, deferred :: integrate

  • subroutine pf_integrate_p(this, lev, qSDC, fSDC, dt, fintSDC, flags) Prototype

    Arguments

    Type IntentOptional AttributesName
    class(pf_sweeper_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

    Time step size

    class(pf_encap_t), intent(inout) :: fintSDC(:)
    integer, intent(in), optional :: flags

procedure(pf_evaluate_all_p), public, deferred :: evaluate_all

  • subroutine pf_evaluate_all_p(this, lev, t, 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) :: t(:)
    integer, intent(in), optional :: flags
    integer, intent(in), optional :: step

procedure(pf_residual_p), public, deferred :: residual

  • subroutine pf_residual_p(this, Lev, dt, flags) Prototype

    Arguments

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

    Time step size

    integer, intent(in), optional :: flags

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_destroy_p), public, deferred :: destroy

  • subroutine pf_destroy_p(this, Lev) Prototype

    Arguments

    Type IntentOptional AttributesName
    class(pf_sweeper_t), intent(inout) :: this
    class(pf_level_t), intent(inout) :: Lev

Source Code

  type, abstract :: pf_sweeper_t
     integer     :: npieces
     logical     :: use_LUq
   contains
     procedure(pf_sweep_p),        deferred :: sweep
     procedure(pf_initialize_p),   deferred :: initialize
     procedure(pf_evaluate_p),     deferred :: evaluate
     procedure(pf_integrate_p),    deferred :: integrate
     procedure(pf_evaluate_all_p), deferred :: evaluate_all
     procedure(pf_residual_p),     deferred :: residual
     procedure(pf_spreadq0_p),     deferred :: spreadq0 
     procedure(pf_destroy_p),      deferred :: destroy
  end type pf_sweeper_t