Type declaration associated to the numerical grid mapping of a cell linear system. More...
Data Types | |
type | t_ijk_triplet |
Triplet of integers. More... | |
type | t_ls_map |
Cell-based, scalar field grid mapping for linear systems. More... | |
Functions/Subroutines | |
subroutine, public | initialize_ls_map (ls_map, stencil, has_ghost_boundary_cells) |
Initialize the linear system mapping. | |
pure subroutine, public | ls_map_ghost_bound_correction (ls_map, stencil_extent) |
Correct the bounds of the linear system mapping when ghost boundary cells are used. | |
pure subroutine, public | initialize_boundary_node_list (ls_map, stencil_extent) |
Initialize the list of nodes where the stencil spreads beyond the boundary of the local numerical domain. | |
Variables | |
integer, parameter, public | unused_index = 0 |
Default value for ls_mapl and ls_mapglobal_index. | |
A cell array, associated to the solution or the right-hand side of a scalar equation defined on the cell numerical grid, whose dimension is (nx:ny:nz), needs to be mapped to a vector before the resolution of the linear system.
This mapping depends of the equation solved (energy, pressure, etc.) and the stencil size of the numerical scheme.
The type is composed of the indices associated to the part of the numerical grid that is used to solve a scalar equation (typically is=isb or is=isb2, depending of the stencil, periodicity, or usage of ghost cells), and an array l of dimension (nx,ny,nz) which gives the mapping between (i,j,k) and the corresponding vector index.
If the direct solver MUMPS is used, two extra arrays are required:
ls_map::global_index
.ls_map::boundary_node_list
. pure subroutine, public type_ls_map::initialize_boundary_node_list | ( | class(t_ls_map), intent(inout) | ls_map, |
integer, intent(in) | stencil_extent ) |
[in,out] | ls_map | linear system mapping. |
[in] | stencil_extent | extent of the discretization stencil. |
subroutine, public type_ls_map::initialize_ls_map | ( | type(t_ls_map), intent(inout) | ls_map, |
type(t_cell_stencil), intent(in) | stencil, | ||
logical, intent(in) | has_ghost_boundary_cells ) |
[in,out] | ls_map | linear system mapping. |
[in] | stencil | discretization stencil. |
[in] | has_ghost_boundary_cells | use ghost boundary cells in the discretization? |
pure subroutine, public type_ls_map::ls_map_ghost_bound_correction | ( | class(t_ls_map), intent(inout) | ls_map, |
integer, intent(in) | stencil_extent ) |
[in,out] | ls_map | linear system mapping. |
[in] | stencil_extent | extent of the stencil. |