class_pde Module

Class


Uses

  • module~~class_pde~~UsesGraph module~class_pde class_pde module~class_dimensions class_dimensions module~class_pde->module~class_dimensions module~class_psblas class_psblas module~class_pde->module~class_psblas module~class_mesh class_mesh module~class_pde->module~class_mesh module~class_dimensions->module~class_psblas module~class_stopwatch class_stopwatch module~class_psblas->module~class_stopwatch module~tools_psblas tools_psblas module~class_psblas->module~tools_psblas module~class_mesh->module~class_psblas module~class_cell class_cell module~class_mesh->module~class_cell module~class_keytable class_keytable module~class_mesh->module~class_keytable module~class_vector class_vector module~class_mesh->module~class_vector module~class_surface class_surface module~class_mesh->module~class_surface module~class_connectivity class_connectivity module~class_mesh->module~class_connectivity module~class_least_squares class_least_squares module~class_mesh->module~class_least_squares psb_base_mod psb_base_mod module~class_mesh->psb_base_mod module~class_vertex class_vertex module~class_mesh->module~class_vertex module~grid_interface grid_interface module~class_mesh->module~grid_interface module~class_face class_face module~class_mesh->module~class_face module~class_stopwatch->module~tools_psblas module~class_stopwatch->psb_base_mod module~class_cell->module~class_psblas module~tools_psblas->psb_base_mod psb_krylov_mod psb_krylov_mod module~tools_psblas->psb_krylov_mod psb_prec_mod psb_prec_mod module~tools_psblas->psb_prec_mod module~class_vector->module~class_psblas module~class_surface->module~class_connectivity module~class_cylinder class_cylinder module~class_surface->module~class_cylinder module~class_plane class_plane module~class_surface->module~class_plane module~class_connectivity->module~class_psblas module~class_least_squares->module~class_psblas module~class_least_squares->module~class_connectivity module~class_vertex->module~class_psblas module~class_vertex->module~class_vector module~units_interface units_interface module~grid_interface->module~units_interface module~object_interface object_interface module~grid_interface->module~object_interface module~class_face->module~class_psblas module~class_cylinder->module~class_psblas module~class_cylinder->module~class_vector module~class_cylinder->module~class_vertex module~units_interface->module~object_interface module~class_plane->module~class_psblas module~class_plane->module~class_vector

Used by

  • module~~class_pde~~UsedByGraph module~class_pde class_pde module~class_vector_pde_procedures class_vector_pde_procedures module~class_vector_pde_procedures->module~class_pde module~class_vector_pde class_vector_pde module~class_vector_pde_procedures->module~class_vector_pde module~class_pde_procedures class_pde_procedures module~class_pde_procedures->module~class_pde module~class_scalar_pde class_scalar_pde module~class_scalar_pde->module~class_pde module~class_vector_pde->module~class_pde module~tools_nemo tools_nemo module~tools_nemo->module~class_scalar_pde module~tools_nemo->module~class_vector_pde module~op_ddt op_ddt module~tools_nemo->module~op_ddt module~op_grad op_grad module~tools_nemo->module~op_grad module~op_div op_div module~tools_nemo->module~op_div module~op_d2dt2 op_d2dt2 module~tools_nemo->module~op_d2dt2 module~op_laplacian op_laplacian module~tools_nemo->module~op_laplacian module~op_source op_source module~tools_nemo->module~op_source proc~vector_pde_source vector_pde_source proc~vector_pde_source->module~class_scalar_pde proc~vector_pde_source->module~class_vector_pde proc~vector_pde_d2dt2 vector_pde_d2dt2 proc~vector_pde_d2dt2->module~class_vector_pde module~class_scalar_pde_procedures class_scalar_pde_procedures module~class_scalar_pde_procedures->module~class_scalar_pde proc~vector_pde_grad vector_pde_grad proc~vector_pde_grad->module~class_vector_pde module~op_ddt->module~class_scalar_pde module~op_ddt->module~class_vector_pde module~op_grad->module~class_vector_pde module~op_div->module~class_scalar_pde module~op_div->module~class_vector_pde module~op_d2dt2->module~class_scalar_pde module~op_d2dt2->module~class_vector_pde proc~vector_pde_laplacian vector_pde_laplacian proc~vector_pde_laplacian->module~class_vector_pde proc~vector_pde_laplacian->module~op_grad module~op_laplacian->module~class_scalar_pde module~op_laplacian->module~class_vector_pde module~op_source->module~class_scalar_pde proc~vector_pde_div vector_pde_div proc~vector_pde_div->module~class_vector_pde proc~vector_pde_ddt vector_pde_ddt proc~vector_pde_ddt->module~class_vector_pde module~flux_pde_div_implementation flux_pde_div_implementation module~flux_pde_div_implementation->module~op_div module~scalar_pde_source_implementation scalar_pde_source_implementation module~scalar_pde_source_implementation->module~op_source module~vector_pde_d2dt2_implementation vector_pde_d2dt2_implementation module~vector_pde_d2dt2_implementation->module~op_d2dt2 module~vector_field_grad_implementation vector_field_grad_implementation module~vector_field_grad_implementation->module~op_grad module~vector_pde_div_implementation vector_pde_div_implementation module~vector_pde_div_implementation->module~op_div module~scalar_field_grad_implementation scalar_field_grad_implementation module~scalar_field_grad_implementation->module~op_grad proc~scalar_pde_laplacian scalar_pde_laplacian proc~scalar_pde_laplacian->module~op_grad module~vector_pde_laplacian_implementation vector_pde_laplacian_implementation module~vector_pde_laplacian_implementation->module~op_laplacian module~op_laplacian_procedures op_laplacian_procedures module~op_laplacian_procedures->module~op_laplacian module~op_d2dt2_procedures op_d2dt2_procedures module~op_d2dt2_procedures->module~op_d2dt2 module~op_ddt_procedures op_ddt_procedures module~op_ddt_procedures->module~op_ddt module~scalar_pde_d2dt2_implementation scalar_pde_d2dt2_implementation module~scalar_pde_d2dt2_implementation->module~op_d2dt2 module~scalar_pde_ddt_implementation scalar_pde_ddt_implementation module~scalar_pde_ddt_implementation->module~op_ddt module~vector_pde_ddt_implementation vector_pde_ddt_implementation module~vector_pde_ddt_implementation->module~op_ddt module~scalar_pde_laplacian_implementation scalar_pde_laplacian_implementation module~scalar_pde_laplacian_implementation->module~op_laplacian module~scalar_pde_div_implementation scalar_pde_div_implementation module~scalar_pde_div_implementation->module~op_div module~vector_pde_grad_implementation vector_pde_grad_implementation module~vector_pde_grad_implementation->module~op_grad

Contents


Interfaces

interface

Constructor

Read more…
  • private module subroutine asb_pde_(eqn)

    Arguments

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

interface

Constructor

Read more…
  • private module subroutine build_pde_prec(eqn)

    Arguments

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

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

interface

Constructor

Read more…
  • private module subroutine free_pde(eqn)

    Destructor

    Arguments

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

interface

Constructor

Read more…
  • private module subroutine free_pde_prec(eqn)

    Arguments

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

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

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

interface

Constructor

Read more…
  • private module function get_pde_dim(eqn)

    Arguments

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

    Return Value type(dimensions)

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

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

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)

interface

Constructor

Read more…
  • private module function is_pde_asb(eqn)

    Arguments

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

    Return Value logical

interface

Constructor

Read more…
  • private module function is_pde_bld(eqn)

    Arguments

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

    Return Value logical

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_)

interface

Constructor

Read more…
  • private module subroutine reinit_pde(eqn)

    Arguments

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

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

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

interface

Constructor

Read more…
  • private module subroutine update_pde_diag(eqn)

    Arguments

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

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

Derived Types

type, public :: 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_
procedure, public :: build_pde_prec
procedure, public :: create_pde

Constructor

generic, public :: dim_ => get_pde_dim
procedure, public :: free_pde

Destructor

procedure, public :: free_pde_prec
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

procedure, public :: is_pde_bld
generic, public :: msh_ => get_pde_msh_fun
generic, public :: name_ => get_pde_name
procedure, public :: nemo_sizeof
procedure, public :: reinit_pde
procedure, public :: solve_pde_sys
procedure, public, pass(eqn) :: spins_pde

Linear System Solving

generic, public :: update_diag => update_pde_diag
procedure, public :: write_pde
procedure, private :: get_pde_a

Getter

procedure, private :: get_pde_diag
procedure, private :: get_pde_dim
procedure, private :: get_pde_msh_fun

Getter

procedure, private :: get_pde_msh_sub
procedure, private :: get_pde_name
procedure, private :: update_pde_diag

Getter & Setter