class_bc_math Module


Uses

  • module~~class_bc_math~~UsesGraph module~class_bc_math class_bc_math module~class_psblas class_psblas module~class_bc_math->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_stopwatch->module~tools_psblas psb_base_mod psb_base_mod module~class_stopwatch->psb_base_mod psb_prec_mod psb_prec_mod module~tools_psblas->psb_prec_mod module~tools_psblas->psb_base_mod psb_krylov_mod psb_krylov_mod module~tools_psblas->psb_krylov_mod

Used by

  • module~~class_bc_math~~UsedByGraph module~class_bc_math class_bc_math module~class_bc class_bc module~class_bc->module~class_bc_math module~class_bc_wall class_bc_wall module~class_bc->module~class_bc_wall proc~set_bc_wall_map_v set_bc_wall_map_v proc~set_bc_wall_map_v->module~class_bc_math proc~rd_inp_bc_wall rd_inp_bc_wall proc~rd_inp_bc_wall->module~class_bc_math module~class_bc_math_procedures class_bc_math_procedures module~class_bc_math_procedures->module~class_bc_math module~class_bc_wall->module~class_bc_math module~class_bc_wall_procedures class_bc_wall_procedures module~class_bc_wall_procedures->module~class_bc_math module~class_bc_wall_procedures->module~class_bc_wall proc~set_bc_wall_map_s set_bc_wall_map_s proc~set_bc_wall_map_s->module~class_bc_math module~tools_nemo tools_nemo module~tools_nemo->module~class_bc module~class_vector_field class_vector_field module~tools_nemo->module~class_vector_field module~tools_mesh_optimize tools_mesh_optimize module~tools_nemo->module~tools_mesh_optimize module~class_scalar_field class_scalar_field module~tools_nemo->module~class_scalar_field module~op_grad op_grad module~tools_nemo->module~op_grad module~class_output class_output module~tools_nemo->module~class_output module~op_field op_field module~tools_nemo->module~op_field module~op_ddt op_ddt module~tools_nemo->module~op_ddt module~tools_mesh_check tools_mesh_check module~tools_nemo->module~tools_mesh_check module~op_d2dt2 op_d2dt2 module~tools_nemo->module~op_d2dt2 module~class_scalar_pde class_scalar_pde module~tools_nemo->module~class_scalar_pde module~op_div op_div module~tools_nemo->module~op_div module~op_laplacian op_laplacian module~tools_nemo->module~op_laplacian module~tools_output tools_output module~tools_nemo->module~tools_output module~op_source op_source module~tools_nemo->module~op_source module~class_vector_pde class_vector_pde module~tools_nemo->module~class_vector_pde module~class_field class_field module~class_field->module~class_bc module~class_bc_procedures class_bc_procedures module~class_bc_procedures->module~class_bc proc~update_scalar_field update_scalar_field proc~update_scalar_field->module~class_bc module~class_vector_field->module~class_bc module~class_vector_field->module~class_field proc~create_vector_field create_vector_field proc~create_vector_field->module~class_bc proc~vector_pde_laplacian vector_pde_laplacian proc~vector_pde_laplacian->module~class_bc proc~vector_pde_laplacian->module~class_vector_field proc~vector_pde_laplacian->module~class_scalar_field proc~vector_pde_laplacian->module~op_grad proc~vector_pde_laplacian->module~class_vector_pde proc~scalar_pde_laplacian scalar_pde_laplacian proc~scalar_pde_laplacian->module~class_bc proc~scalar_pde_laplacian->module~op_grad module~tools_mesh_optimize->module~class_bc module~class_scalar_field->module~class_bc module~class_scalar_field->module~class_field proc~scalar_pde_div scalar_pde_div proc~scalar_pde_div->module~class_bc proc~create_scalar_field create_scalar_field proc~create_scalar_field->module~class_bc proc~smooth_mesh smooth_mesh proc~smooth_mesh->module~class_bc proc~smooth_mesh->module~tools_mesh_optimize proc~smooth_mesh->module~tools_mesh_check proc~vector_pde_div vector_pde_div proc~vector_pde_div->module~class_bc proc~vector_pde_div->module~class_vector_pde proc~update_vector_field update_vector_field proc~update_vector_field->module~class_bc proc~rhie_chow rhie_chow proc~rhie_chow->module~class_field proc~rhie_chow->module~class_vector_field proc~rhie_chow->module~class_scalar_field module~smooth_surf_vtx_implementation smooth_surf_vtx_implementation module~smooth_surf_vtx_implementation->module~tools_mesh_optimize proc~vector_pde_d2dt2 vector_pde_d2dt2 proc~vector_pde_d2dt2->module~class_vector_field proc~vector_pde_d2dt2->module~class_scalar_field proc~vector_pde_d2dt2->module~class_vector_pde proc~vector_pde_grad vector_pde_grad proc~vector_pde_grad->module~class_scalar_field proc~vector_pde_grad->module~class_vector_pde proc~tet_valid tet_valid proc~tet_valid->module~tools_mesh_optimize proc~vector_field_grad vector_field_grad proc~vector_field_grad->module~class_vector_field module~smooth_mesh_implementation smooth_mesh_implementation module~smooth_mesh_implementation->module~tools_mesh_optimize module~op_grad->module~class_vector_field module~op_grad->module~class_scalar_field module~op_grad->module~class_vector_pde module~class_output->module~class_vector_field module~class_output->module~class_scalar_field proc~vector_pde_ddt vector_pde_ddt proc~vector_pde_ddt->module~class_vector_field proc~vector_pde_ddt->module~class_scalar_field proc~vector_pde_ddt->module~class_vector_pde module~op_field->module~class_vector_field module~op_field->module~class_scalar_field proc~vector_pde_source vector_pde_source proc~vector_pde_source->module~class_vector_field proc~vector_pde_source->module~class_scalar_pde proc~vector_pde_source->module~class_vector_pde proc~get_scalar_field get_scalar_field proc~get_scalar_field->module~class_scalar_field proc~get_scalar_field->module~class_output module~class_vtk_output class_vtk_output module~class_vtk_output->module~class_vector_field module~class_vtk_output->module~class_scalar_field module~class_vtk_output->module~class_output module~op_ddt->module~class_vector_field module~op_ddt->module~class_scalar_field module~op_ddt->module~class_scalar_pde module~op_ddt->module~class_vector_pde module~tools_mesh_check->module~class_scalar_field module~laplacian_smooth_implementation laplacian_smooth_implementation module~laplacian_smooth_implementation->module~tools_mesh_optimize module~op_d2dt2->module~class_vector_field module~op_d2dt2->module~class_scalar_field module~op_d2dt2->module~class_scalar_pde module~op_d2dt2->module~class_vector_pde module~class_scalar_pde->module~class_scalar_field module~class_field_procedures class_field_procedures module~class_field_procedures->module~class_field proc~check_right_handed check_right_handed proc~check_right_handed->module~tools_mesh_optimize proc~check_right_handed->module~tools_mesh_check module~class_vector_field_procedures class_vector_field_procedures module~class_vector_field_procedures->module~class_field module~class_vector_field_procedures->module~class_vector_field proc~smooth_surf_vtx smooth_surf_vtx proc~smooth_surf_vtx->module~tools_mesh_optimize proc~smooth_surf_vtx->module~tools_mesh_check proc~write_vector_field write_vector_field proc~write_vector_field->module~class_vector_field proc~write_vector_field->module~class_output module~op_div->module~class_vector_field module~op_div->module~class_scalar_field module~op_div->module~class_scalar_pde module~op_div->module~class_vector_pde proc~vector_field_flux vector_field_flux proc~vector_field_flux->module~class_field proc~vector_field_flux->module~class_vector_field proc~vector_field_flux->module~class_scalar_field module~op_laplacian->module~class_vector_field module~op_laplacian->module~class_scalar_field module~op_laplacian->module~class_scalar_pde module~op_laplacian->module~class_vector_pde module~tools_output->module~class_vector_field module~tools_output->module~class_scalar_field module~tools_output->module~class_output module~check_right_handed_implementation check_right_handed_implementation module~check_right_handed_implementation->module~tools_mesh_optimize module~op_source->module~class_scalar_field module~op_source->module~class_scalar_pde proc~solve_vector_pde solve_vector_pde proc~solve_vector_pde->module~class_vector_field proc~check_mesh_quality check_mesh_quality proc~check_mesh_quality->module~class_scalar_field proc~check_mesh_quality->module~tools_mesh_check module~class_exodus_procedures class_exodus_procedures module~class_exodus_procedures->module~class_vector_field module~class_exodus_procedures->module~class_scalar_field module~class_exodus_procedures->module~class_output module~class_exodus class_exodus module~class_exodus_procedures->module~class_exodus proc~scalar_vector_fld_mul scalar_vector_fld_mul proc~scalar_vector_fld_mul->module~class_field proc~scalar_vector_fld_mul->module~class_vector_field proc~scalar_vector_fld_mul->module~class_scalar_field module~mobile_verts_implementation mobile_verts_implementation module~mobile_verts_implementation->module~tools_mesh_optimize proc~scalar_fld_vector_mul scalar_fld_vector_mul proc~scalar_fld_vector_mul->module~class_field proc~scalar_fld_vector_mul->module~class_vector_field proc~scalar_fld_vector_mul->module~class_scalar_field module~class_vector_pde->module~class_vector_field proc~smooth_interior_vtx smooth_interior_vtx proc~smooth_interior_vtx->module~tools_mesh_optimize proc~smooth_interior_vtx->module~tools_mesh_check proc~scalar_field_grad scalar_field_grad proc~scalar_field_grad->module~class_scalar_field proc~get_vector_field get_vector_field proc~get_vector_field->module~class_vector_field proc~get_vector_field->module~class_scalar_field proc~get_vector_field->module~class_output module~class_exodus->module~class_vector_field module~class_exodus->module~class_scalar_field module~class_exodus->module~class_output proc~solve_scalar_pde solve_scalar_pde proc~solve_scalar_pde->module~class_scalar_field module~class_scalar_field_procedures class_scalar_field_procedures module~class_scalar_field_procedures->module~class_field module~class_scalar_field_procedures->module~class_scalar_field module~smooth_interior_vtx_implementation smooth_interior_vtx_implementation module~smooth_interior_vtx_implementation->module~tools_mesh_optimize proc~write_vtk_mesh write_vtk_mesh proc~write_vtk_mesh->module~class_output module~vector_pde_laplacian_implementation vector_pde_laplacian_implementation module~vector_pde_laplacian_implementation->module~op_laplacian module~tools_mesh_check_tet tools_mesh_check_tet module~tools_mesh_check_tet->module~tools_mesh_check module~class_output_procedures class_output_procedures module~class_output_procedures->module~class_output module~scalar_pde_d2dt2_implementation scalar_pde_d2dt2_implementation module~scalar_pde_d2dt2_implementation->module~op_d2dt2 module~write_mesh_implementation write_mesh_implementation module~write_mesh_implementation->module~tools_output module~vector_pde_ddt_implementation vector_pde_ddt_implementation module~vector_pde_ddt_implementation->module~op_ddt module~flux_pde_div_implementation flux_pde_div_implementation module~flux_pde_div_implementation->module~op_div proc~create_output create_output proc~create_output->module~class_vtk_output module~class_vtk_output_procedures class_vtk_output_procedures module~class_vtk_output_procedures->module~class_vtk_output 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_vector_fld_mul_implementation scalar_vector_fld_mul_implementation module~scalar_vector_fld_mul_implementation->module~op_field module~scalar_pde_laplacian_implementation scalar_pde_laplacian_implementation module~scalar_pde_laplacian_implementation->module~op_laplacian module~rhie_chow_implementation rhie_chow_implementation module~rhie_chow_implementation->module~op_field module~write_vector_field_implementation write_vector_field_implementation module~write_vector_field_implementation->module~tools_output 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 module~op_laplacian_procedures op_laplacian_procedures module~op_laplacian_procedures->module~op_laplacian module~tools_mesh_check_vertex tools_mesh_check_vertex module~tools_mesh_check_vertex->module~tools_mesh_check module~write_scalar_field_implementation write_scalar_field_implementation module~write_scalar_field_implementation->module~tools_output proc~write_mesh write_mesh proc~write_mesh->module~class_output module~class_vector_pde_procedures class_vector_pde_procedures module~class_vector_pde_procedures->module~class_vector_pde module~scalar_pde_div_implementation scalar_pde_div_implementation module~scalar_pde_div_implementation->module~op_div module~vector_field_flux_implementation vector_field_flux_implementation module~vector_field_flux_implementation->module~op_field module~check_mesh_quality_implementation check_mesh_quality_implementation module~check_mesh_quality_implementation->module~tools_mesh_check 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~class_scalar_pde_procedures class_scalar_pde_procedures module~class_scalar_pde_procedures->module~class_scalar_pde module~scalar_pde_ddt_implementation scalar_pde_ddt_implementation module~scalar_pde_ddt_implementation->module~op_ddt module~scalar_fld_vector_mul_implementation scalar_fld_vector_mul_implementation module~scalar_fld_vector_mul_implementation->module~op_field module~vector_pde_grad_implementation vector_pde_grad_implementation module~vector_pde_grad_implementation->module~op_grad

Contents


Interfaces

public interface apply_abc_to_boundary

  • public subroutine apply_abc_to_boundary_s(id, a, b, c, ib, msh, x, bx)

    WARNING! - Use intent(inout) for BX(:) - Do loop on the faces subset corresponding to IB bc. - Only this section of BX(:) is going to be modified. - BX(:) indexing starts from 1: when BX(:) is referenced an offset equal to the # of boundary faces with flag > 0 and < IB must be added to the I counter.

    Arguments

    Type IntentOptional AttributesName
    integer, intent(in) :: id
    real(kind=psb_dpk_), intent(in) :: a(:)
    real(kind=psb_dpk_), intent(in) :: b(:)
    real(kind=psb_dpk_), intent(in) :: c(:)
    integer, intent(in) :: ib
    type(mesh), intent(in) :: msh
    real(kind=psb_dpk_), intent(in) :: x(:)
    real(kind=psb_dpk_), intent(inout) :: bx(:)
  • public subroutine apply_abc_to_boundary_v(id, a, b, c, ib, msh, x, bx)

    Arguments

    Type IntentOptional AttributesName
    integer, intent(in) :: id
    real(kind=psb_dpk_), intent(in) :: a(:)
    real(kind=psb_dpk_), intent(in) :: b(:)
    type(vector), intent(in) :: c(:)
    integer, intent(in) :: ib
    type(mesh), intent(in) :: msh
    type(vector), intent(in) :: x(:)
    type(vector), intent(inout) :: bx(:)

interface

  • public module subroutine create_bc_math(bc, input_file, sec, nbf)

    Arguments

    Type IntentOptional AttributesName
    type(bc_math), pointer:: bc
    character(len=*), intent(in) :: input_file
    character(len=*), intent(in) :: sec
    integer, intent(in) :: nbf

interface

  • public module subroutine free_bc_math(bc)

    To be invoked when BC_MATH is used as high-level BC.

    Arguments

    Type IntentOptional AttributesName
    type(bc_math), pointer:: bc

public interface get_abc_math

  • public subroutine get_abc_math_s(bc, id, a, b, c)

    Arguments

    Type IntentOptional AttributesName
    type(bc_math), intent(in) :: bc
    integer, intent(out) :: id
    real(kind=psb_dpk_), intent(inout) :: a(:)
    real(kind=psb_dpk_), intent(inout) :: b(:)
    real(kind=psb_dpk_), intent(inout) :: c(:)
  • public subroutine get_abc_math_v(bc, id, a, b, c)

    Arguments

    Type IntentOptional AttributesName
    type(bc_math), intent(in) :: bc(:)
    integer, intent(out) :: id
    real(kind=psb_dpk_), intent(inout) :: a(:)
    real(kind=psb_dpk_), intent(inout) :: b(:)
    type(vector), intent(inout) :: c(:)

interface

  • public module subroutine update_boundary_math(ib, bc, msh, x, bx)

    WARNING! Use intent(inout) for BX(:)

    Arguments

    Type IntentOptional AttributesName
    integer, intent(in) :: ib
    type(bc_math), intent(in) :: bc
    type(mesh), intent(in) :: msh
    real(kind=psb_dpk_), intent(in) :: x(:)
    real(kind=psb_dpk_), intent(inout) :: bx(:)

interface

  • private module subroutine alloc_bc_math(bc, id, nbf, a, b, c)

    Arguments

    Type IntentOptional AttributesName
    class(bc_math), intent(inout) :: bc
    integer, intent(in) :: id
    integer, intent(in) :: nbf
    real(kind=psb_dpk_), intent(in) :: a(:)
    real(kind=psb_dpk_), intent(in) :: b(:)
    real(kind=psb_dpk_), intent(in) :: c(:)

interface

  • private module subroutine dealloc_bc_math(bc)

    To be invoked when BC_MATH is a member of another BC class.

    Arguments

    Type IntentOptional AttributesName
    class(bc_math) :: bc

interface

  • private module subroutine debug_bc_math(bc)

    Arguments

    Type IntentOptional AttributesName
    class(bc_math), intent(in) :: bc

interface

  • private elemental module function is_allocated(bc)

    Arguments

    Type IntentOptional AttributesName
    class(bc_math), intent(in) :: bc

    Return Value logical

interface

  • private elemental module function nemo_bc_math_sizeof(bc)

    Arguments

    Type IntentOptional AttributesName
    class(bc_math), intent(in) :: bc

    Return Value integer(kind=nemo_int_long_)

interface

  • private module subroutine set_bc_math_map(bc, i, a, b, c)

    Arguments

    Type IntentOptional AttributesName
    class(bc_math), intent(inout) :: bc
    integer, intent(in) :: i
    real(kind=psb_dpk_), intent(in) :: a
    real(kind=psb_dpk_), intent(in) :: b
    real(kind=psb_dpk_), intent(in) :: c

Derived Types

type, public :: bc_math

Components

TypeVisibility AttributesNameInitial
real(kind=psb_dpk_), private, allocatable:: a(:)
real(kind=psb_dpk_), private, allocatable:: b(:)
real(kind=psb_dpk_), private, allocatable:: c(:)
integer, private :: id
integer, private :: nbf

Type-Bound Procedures

procedure, public :: alloc_bc_math
procedure, public :: dealloc_bc_math
procedure, public :: debug_bc_math
procedure, public :: is_allocated
generic, public :: nemo_sizeof => nemo_bc_math_sizeof
procedure, public :: set_bc_math_map
procedure, private :: nemo_bc_math_sizeof