pde Derived Type

type, public :: pde


Inherits

type~~pde~~InheritsGraph type~pde pde type~dimensions dimensions type~pde->type~dimensions dim psb_dprec_type psb_dprec_type type~pde->psb_dprec_type prec type~mesh mesh type~pde->type~mesh msh psb_dspmat_type psb_dspmat_type type~pde->psb_dspmat_type a type~face face type~mesh->type~face faces type~vertex vertex type~mesh->type~vertex verts type~least_squares least_squares type~mesh->type~least_squares lsr type~keytable keytable type~mesh->type~keytable ov2c_sup, c2ov_sup, ov2f_sup, f2ov_sup type~connectivity connectivity type~mesh->type~connectivity v2c, v2f, f2c, c2g, v2v, f2f, c2c, v2b, f2b type~vector vector type~mesh->type~vector face_cntr, af, df, cell_cntr type~surface surface type~mesh->type~surface surf type~grid grid type~mesh->type~grid type~cell cell type~mesh->type~cell cells psb_desc_type psb_desc_type type~mesh->psb_desc_type desc_v, desc_f, desc_c type~vertex->type~vector position type~a_row a_row type~keytable->type~a_row row type~plane plane type~surface->type~plane my_plane type~cylinder cylinder type~surface->type~cylinder my_cylinder type~units units type~grid->type~units units_ type~object object type~grid->type~object type~units->type~object type~plane->type~vector normal type~cylinder->type~vector center, axis

Inherited by

type~~pde~~InheritedByGraph type~pde pde type~scalar_pde scalar_pde type~scalar_pde->type~pde type~vector_pde vector_pde type~vector_pde->type~pde

Contents

Source Code

pde

Components

TypeVisibility AttributesNameInitial
type(psb_dspmat_type), private :: a

PSBLAS

character(len=10), private :: cmethod
character(len=10), private :: cprec
real(kind=psb_dpk_), private, allocatable:: diag(:)

A's diag

type(dimensions), private :: dim

Dimensions

real(kind=psb_dpk_), private :: eps_solv
integer, private :: itmax_solv
type(mesh), private, pointer:: msh=> null()

Mesh

logical, private :: mtx_sys
character(len=32), private :: name

Name

integer, private :: nlev
type(psb_dprec_type), private :: prec
integer, private :: status

Type-Bound Procedures

procedure, public :: asb_pde_

  • interface

    Constructor

    Read more…

    private module subroutine asb_pde_(eqn)

    Arguments

    Type IntentOptional AttributesName
    class(pde), intent(inout) :: eqn

procedure, public :: build_pde_prec

  • interface

    Constructor

    Read more…

    private module subroutine build_pde_prec(eqn)

    Arguments

    Type IntentOptional AttributesName
    class(pde), intent(inout) :: eqn

procedure, public :: create_pde

Constructor

  • interface

    Constructor

    Read more…

    private module subroutine create_pde(eqn, input_file, sec, msh, dim)

    Arguments

    Type IntentOptional AttributesName
    class(pde), intent(out) :: eqn
    character(len=*), intent(in) :: input_file
    character(len=*), intent(in) :: sec
    type(mesh), intent(inout), target:: msh
    type(dimensions), intent(in) :: dim

generic, public :: dim_ => get_pde_dim

procedure, public :: free_pde

Destructor

  • interface

    Constructor

    Read more…

    private module subroutine free_pde(eqn)

    Destructor

    Arguments

    Type IntentOptional AttributesName
    class(pde), intent(inout) :: eqn

procedure, public :: free_pde_prec

  • interface

    Constructor

    Read more…

    private module subroutine free_pde_prec(eqn)

    Arguments

    Type IntentOptional AttributesName
    class(pde), intent(inout) :: eqn

generic, public :: get_a => get_pde_a

generic, public :: get_diag => get_pde_diag

generic, public :: get_mesh => get_pde_msh_sub

procedure, public :: is_pde_asb

Status inquirer

  • interface

    Constructor

    Read more…

    private module function is_pde_asb(eqn)

    Arguments

    Type IntentOptional AttributesName
    class(pde), intent(in) :: eqn

    Return Value logical

procedure, public :: is_pde_bld

  • interface

    Constructor

    Read more…

    private module function is_pde_bld(eqn)

    Arguments

    Type IntentOptional AttributesName
    class(pde), intent(in) :: eqn

    Return Value logical

generic, public :: msh_ => get_pde_msh_fun

generic, public :: name_ => get_pde_name

procedure, public :: nemo_sizeof

  • interface

    Constructor

    Read more…

    private module function nemo_sizeof(eqn)

    Arguments

    Type IntentOptional AttributesName
    class(pde), intent(in) :: eqn

    Return Value integer(kind=nemo_int_long_)

procedure, public :: reinit_pde

  • interface

    Constructor

    Read more…

    private module subroutine reinit_pde(eqn)

    Arguments

    Type IntentOptional AttributesName
    class(pde), intent(inout) :: eqn

procedure, public :: solve_pde_sys

  • interface

    Constructor

    Read more…

    private module subroutine solve_pde_sys(eqn, b, x, iter, err)

    Arguments

    Type IntentOptional AttributesName
    class(pde), intent(inout) :: eqn
    real(kind=psb_dpk_), intent(in) :: b(:)
    real(kind=psb_dpk_), intent(out) :: x(:)
    integer, intent(out) :: iter
    real(kind=psb_dpk_), intent(out) :: err

procedure, public, pass(eqn) :: spins_pde

Linear System Solving

  • interface

    Constructor

    Read more…

    private module subroutine spins_pde(n, ia, ja, cloud, eqn)

    Linear System Solving Inserts a ``cloud'' of coefficients into eqn%A

    Arguments

    Type IntentOptional AttributesName
    integer, intent(in) :: n
    integer, intent(in) :: ia(:)
    integer, intent(in) :: ja(:)
    real(kind=psb_dpk_), intent(in) :: cloud(:)
    class(pde), intent(inout) :: eqn

generic, public :: update_diag => update_pde_diag

procedure, public :: write_pde

  • interface

    Constructor

    Read more…

    private module subroutine write_pde(eqn, mat, mtx_rhs)

    Output

    Arguments

    Type IntentOptional AttributesName
    class(pde), intent(in) :: eqn
    character(len=*), intent(in) :: mat
    logical, intent(out) :: mtx_rhs

procedure, private :: get_pde_a

Getter

  • interface

    Constructor

    Read more…

    private module subroutine get_pde_a(eqn, b)

    Arguments

    Type IntentOptional AttributesName
    class(pde), intent(inout) :: eqn
    type(psb_dspmat_type) :: b

procedure, private :: get_pde_diag

  • interface

    Constructor

    Read more…

    private module subroutine get_pde_diag(eqn, d)

    Arguments

    Type IntentOptional AttributesName
    class(pde), intent(inout) :: eqn
    real(kind=psb_dpk_), allocatable:: d(:)

procedure, private :: get_pde_dim

procedure, private :: get_pde_msh_fun

Getter

  • interface

    Constructor

    Read more…

    private module function get_pde_msh_fun(eqn)

    Arguments

    Type IntentOptional AttributesName
    class(pde), intent(in) :: eqn

    Return Value type(mesh), pointer

procedure, private :: get_pde_msh_sub

  • interface

    Constructor

    Read more…

    private module subroutine get_pde_msh_sub(eqn, msh)

    Arguments

    Type IntentOptional AttributesName
    class(pde), intent(in) :: eqn
    type(mesh), pointer:: msh

procedure, private :: get_pde_name

  • interface

    Constructor

    Read more…

    private module function get_pde_name(eqn)

    Arguments

    Type IntentOptional AttributesName
    class(pde), intent(in) :: eqn

    Return Value character(len=32)

procedure, private :: update_pde_diag

Getter & Setter

  • interface

    Constructor

    Read more…

    private module subroutine update_pde_diag(eqn)

    Arguments

    Type IntentOptional AttributesName
    class(pde), intent(inout) :: eqn

Source Code

    TYPE pde
        PRIVATE
        CHARACTER(len=32) :: name               !! Name
        TYPE(dimensions) :: dim                 !! Dimensions
        TYPE(mesh), POINTER :: msh => NULL()    !! Mesh
        TYPE(psb_dspmat_type) :: A              !! PSBLAS
        REAL(psb_dpk_), ALLOCATABLE :: diag(:)  !! A's diag
        ! Linear System
        TYPE(psb_dprec_type) :: prec
        CHARACTER(len=10) :: cmethod
        CHARACTER(len=10) :: cprec
        INTEGER :: nlev
        REAL(psb_dpk_) :: eps_solv
        INTEGER :: itmax_solv
        LOGICAL :: mtx_sys
        ! Status
        INTEGER :: status
    CONTAINS
        PROCEDURE, PUBLIC :: create_pde                     !! Constructor
        PROCEDURE, PUBLIC, PASS(eqn) :: spins_pde           !! Linear System Solving
        PROCEDURE, PUBLIC :: free_pde                       !! Destructor
        PROCEDURE, PUBLIC :: write_pde
        PROCEDURE, PRIVATE :: get_pde_dim, get_pde_msh_fun  !! Getter
        GENERIC, PUBLIC :: dim_ => get_pde_dim
        GENERIC, PUBLIC :: msh_ => get_pde_msh_fun
        PROCEDURE, PRIVATE :: get_pde_diag, update_pde_diag !! Getter & Setter
        GENERIC, PUBLIC :: get_diag => get_pde_diag
        PROCEDURE, PRIVATE :: get_pde_A                     !! Getter
        GENERIC, PUBLIC :: get_A => get_pde_A
        GENERIC, PUBLIC :: update_diag => update_pde_diag
        PROCEDURE :: is_pde_bld, is_pde_asb                 !! Status inquirer
        PROCEDURE :: free_pde_prec, build_pde_prec
        PROCEDURE :: solve_pde_sys, reinit_pde
        PROCEDURE, PRIVATE :: get_pde_name
        GENERIC, PUBLIC :: name_ => get_pde_name
        PROCEDURE, PUBLIC :: nemo_sizeof
        PROCEDURE, PRIVATE :: get_pde_msh_sub
        GENERIC, PUBLIC :: get_mesh => get_pde_msh_sub
        PROCEDURE, PUBLIC :: asb_pde_
    END TYPE pde