vector_pde Derived Type

type, public, extends(pde) :: vector_pde


Inherits

type~~vector_pde~~InheritsGraph type~vector_pde vector_pde type~pde pde type~vector_pde->type~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

Contents

Source Code


Components

TypeVisibility AttributesNameInitial
real(kind=psb_dpk_), private, allocatable:: b(:,:)

Type-Bound Procedures

procedure, public :: asb_pde_

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

  • interface

    ----- Constructor -----

    Read more…

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

    Constructor

    Arguments

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

  • interface

    ----- Constructor -----

    Read more…

    private module subroutine free_pde(eqn)

    Destructor

    Arguments

    Type IntentOptional AttributesName
    class(vector_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 :: geins_pde => geins_vector_pde_v, geins_vector_pde_r

procedure, public, pass(pde) :: geins_vector_pde_r

  • interface

    ----- Constructor -----

    Read more…

    private module subroutine geins_vector_pde_r(n, ia, cloud, pde)

    Inserts a ``cloud'' of RHS terms into pde%b

    Arguments

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

procedure, public, pass(pde) :: geins_vector_pde_v

  • interface

    ----- Constructor -----

    Read more…

    private module subroutine geins_vector_pde_v(n, ia, cloud, pde)

    Wrapper for ``clouds'' of VECTOR type

    Arguments

    Type IntentOptional AttributesName
    integer, intent(in) :: n
    integer, intent(in) :: ia(:)
    type(vector), intent(in) :: cloud(:)
    class(vector_pde), intent(inout) :: pde

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(vector_pde), intent(in) :: eqn

    Return Value integer(kind=nemo_int_long_)

procedure, public :: reinit_pde

generic, public :: solve_pde => solve_vector_pde

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, public :: write_vector_pde

  • interface

    ----- Constructor -----

    Read more…

    private module subroutine write_vector_pde(eqn, mat, rhs)

    ----- Output -----

    Arguments

    Type IntentOptional AttributesName
    class(vector_pde), intent(in) :: eqn
    character(len=*), intent(in) :: mat
    character(len=*), intent(in) :: rhs

procedure, private :: solve_vector_pde

  • interface

    ----- Constructor -----

    Read more…

    private module subroutine solve_vector_pde(pde, phi, var)

    Assigns the solution to the vector field

    Arguments

    Type IntentOptional AttributesName
    class(vector_pde), intent(inout) :: pde
    type(vector_field), intent(inout) :: phi
    real(kind=psb_dpk_), intent(out), optional :: var

Source Code

    TYPE, EXTENDS(PDE) :: vector_pde
        PRIVATE
        REAL(psb_dpk_), ALLOCATABLE :: b(:,:)
    CONTAINS
        PROCEDURE, PUBLIC :: create_pde
        PROCEDURE, PUBLIC :: free_pde
        PROCEDURE, PUBLIC :: write_vector_pde
        PROCEDURE, PUBLIC :: reinit_pde
        PROCEDURE, PUBLIC :: nemo_sizeof
        PROCEDURE, PRIVATE :: solve_vector_pde
        GENERIC, PUBLIC :: solve_pde => solve_vector_pde
        PROCEDURE, PUBLIC :: asb_pde_
        PROCEDURE, PUBLIC, PASS(pde) :: geins_vector_pde_v
        PROCEDURE, PUBLIC, PASS(pde) :: geins_vector_pde_r
        GENERIC, PUBLIC :: geins_pde =>  geins_vector_pde_v, geins_vector_pde_r      ! Linear System Solving
    END TYPE vector_pde