pf_mod_amisdcQ Module

Asynchronous multi-implicit sweeper


Uses

  • module~~pf_mod_amisdcq~~UsesGraph module~pf_mod_amisdcq pf_mod_amisdcQ module~pf_mod_amisdc pf_mod_amisdc module~pf_mod_amisdcq->module~pf_mod_amisdc module~pf_mod_utils pf_mod_utils module~pf_mod_amisdc->module~pf_mod_utils module~pf_mod_dtype pf_mod_dtype module~pf_mod_amisdc->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


Derived Types

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

Asynchronous multi-implicit sweeper type

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 :: spreadq0
procedure(pf_f1eval_p), public :: f1eval
procedure(pf_f2eval_p), public :: f2eval
procedure(pf_f2comp_p), public :: f2comp
procedure(pf_f3eval_p), public :: f3eval
procedure(pf_f3comp_p), public :: f3comp
procedure, public :: evaluate => amisdc_evaluate
procedure, public :: residual => amisdc_residual
procedure, public :: evaluate_all => amisdc_evaluate_all
procedure, public :: amisdc_destroy
procedure, public :: sweep => amisdcQ_sweep
procedure, public :: initialize => amisdcQ_initialize
procedure, public :: integrate => amisdcQ_integrate
procedure, public :: destroy => amisdcQ_destroy
procedure, public :: sweep_coupled_implicit_terms
procedure, public :: sweep_decoupled_implicit_terms
procedure, public :: amisdcQ_destroy

Subroutines

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

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

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

public subroutine amisdcQ_initialize(this, lev)

Arguments

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

public subroutine amisdcQ_destroy(this, lev)

Arguments

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

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(:)