karniadakis_t Derived Type

type, public, extends(multistep_storage_t) :: karniadakis_t

Datatype for karniadakis


Contents


Components

Type Visibility Attributes Name Initial
real(kind=GP), public, allocatable, dimension(:,:,:) :: vstore

Values of storage (ndim, nstorage, nfields)


Finalization Procedures

final :: destructor_karniadakis


Type-Bound Procedures

procedure, public :: init_storage

  • interface

    public module subroutine init_storage(self, ndim, nstorage, nfields, vstore_firsts)

    Initialises a Karniadakis scheme

    Arguments

    Type IntentOptional Attributes Name
    class(multistep_storage_t), intent(inout) :: self

    Instance of the type

    integer, intent(in) :: ndim

    Dimension of storage values

    integer, intent(in) :: nstorage

    Number of storage points

    integer, intent(in) :: nfields

    Number of fields to be stored

    real(kind=GP), intent(in), optional, dimension(ndim, nstorage, nfields) :: vstore_firsts

    Initial values for storage (default = 0)

procedure, public :: get_ndim

  • interface

    public pure module function get_ndim(self)

    Returns ndim

    Arguments

    Type IntentOptional Attributes Name
    class(multistep_storage_t), intent(in) :: self

    Instance of the type

    Return Value integer

procedure, public :: get_nstorage

  • interface

    public pure module function get_nstorage(self)

    Returns nstorage

    Arguments

    Type IntentOptional Attributes Name
    class(multistep_storage_t), intent(in) :: self

    Instance of the type

    Return Value integer

procedure, public :: get_nfields

  • interface

    public pure module function get_nfields(self)

    Returns nfields

    Arguments

    Type IntentOptional Attributes Name
    class(multistep_storage_t), intent(in) :: self

    Instance of the type

    Return Value integer

procedure, public :: shift_storage

  • interface

    public module subroutine shift_storage(self, vals_new)

    Shifts storage and vals_new will be placed at vsore(:,1,:)

    Arguments

    Type IntentOptional Attributes Name
    class(multistep_storage_t), intent(inout) :: self

    Instance of the type

    real(kind=GP), intent(in), dimension(self%ndim, self%nfields) :: vals_new

    New storage value

procedure, public :: init => init_karniadakis

  • interface

    public module subroutine init_karniadakis(self, ndim, order, dtau, y_firsts, dy_firsts)

    Initialises a Karniadakis scheme

    Arguments

    Type IntentOptional Attributes Name
    class(karniadakis_t), intent(inout) :: self

    Instance of the type

    integer, intent(in) :: ndim

    Dimension of problem

    integer, intent(in) :: order

    Order of time-stepping scheme

    real(kind=GP), intent(in) :: dtau

    Time step size

    real(kind=GP), intent(in), optional, dimension(ndim, order-1) :: y_firsts

    Values for initial time steps in descending order

    real(kind=GP), intent(in), optional, dimension(ndim, order-1) :: dy_firsts

    Right hand side for initial time-steps in descending order

procedure, public :: get_ncount

  • interface

    public pure module function get_ncount(self)

    Returns ncount

    Arguments

    Type IntentOptional Attributes Name
    class(karniadakis_t), intent(in) :: self

    Instance of the type

    Return Value integer

procedure, public :: get_order

  • interface

    public pure module function get_order(self)

    Returns order that eventually approached (after initial time-steps)

    Arguments

    Type IntentOptional Attributes Name
    class(karniadakis_t), intent(in) :: self

    Instance of the type

    Return Value integer

procedure, public :: get_current_order

  • interface

    public pure module function get_current_order(self)

    Returns order used for last time-step

    Arguments

    Type IntentOptional Attributes Name
    class(karniadakis_t), intent(in) :: self

    Instance of the type

    Return Value integer

procedure, public :: get_dtau

  • interface

    public module function get_dtau(self)

    Returns dtau

    Arguments

    Type IntentOptional Attributes Name
    class(karniadakis_t), intent(in) :: self

    Instance of the type

    Return Value real(kind=gp)

procedure, public :: get_dtau_bdf

  • interface

    public module function get_dtau_bdf(self)

    Returns dtau_bdf

    Arguments

    Type IntentOptional Attributes Name
    class(karniadakis_t), intent(in) :: self

    Instance of the type

    Return Value real(kind=gp)

procedure, public :: advance

  • interface

    public module subroutine advance(self, dy, y, yn, dbgout)

    Advances variable from t -> t+1

    Arguments

    Type IntentOptional Attributes Name
    class(karniadakis_t), intent(inout) :: self

    Instance of the type

    real(kind=GP), intent(in), dimension(self%ndim) :: dy

    Right hand side of differential equation at time-step t

    real(kind=GP), intent(in), dimension(self%ndim) :: y

    Variable at time point t, on output advanced to t+1

    real(kind=GP), intent(out), dimension(self%ndim) :: yn

    Variable advanced to time point t+1

    integer, intent(in), optional :: dbgout

    debug output level, default: 0

procedure, public :: display => display_karniadakis

  • interface

    public module subroutine display_karniadakis(self)

    Displays basic information of karniadakis

    Arguments

    Type IntentOptional Attributes Name
    class(karniadakis_t), intent(in) :: self

    Instance of the type