version 0.6.0

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. More...
 
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. More...
 
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. More...
 
pure subroutine count_nonzeros_in_linear_system (ls_map, stencil)
 Count the number of nonzero coefficients in the local matrix. More...
 
subroutine global_cell_local_lexicographic_indexing (ls_map)
 Global cell indexing that is locally lexicographic. More...
 

Variables

integer, parameter, public unused_index = 0
 Default value for ls_mapl and ls_mapglobal_index.
 

Detailed Description

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:

  • the global index of each node ls_map::global_index.
  • the ghost boundary node list ls_map::boundary_node_list.

Function/Subroutine Documentation

◆ count_nonzeros_in_linear_system()

pure subroutine type_ls_map::count_nonzeros_in_linear_system ( type(t_ls_map), intent(inout)  ls_map,
type(t_cell_stencil), intent(in)  stencil 
)
Parameters
[in,out]ls_maplinear system mapping.
[in]stencildiscretization stencil.

◆ global_cell_local_lexicographic_indexing()

subroutine type_ls_map::global_cell_local_lexicographic_indexing ( type(t_ls_map), intent(inout)  ls_map)

The global index is set to UNUSED_INDEX if a node is not used in the linear system.

Parameters
[in,out]ls_maplinear system mapping.

◆ initialize_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 
)
Parameters
[in,out]ls_maplinear system mapping.
[in]stencil_extentextent of the discretization stencil.

◆ initialize_ls_map()

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 
)
Parameters
[in,out]ls_maplinear system mapping.
[in]stencildiscretization stencil.
[in]has_ghost_boundary_cellsuse ghost boundary cells in the discretization?

◆ ls_map_ghost_bound_correction()

pure subroutine, public type_ls_map::ls_map_ghost_bound_correction ( class(t_ls_map), intent(inout)  ls_map,
integer, intent(in)  stencil_extent 
)
Parameters
[in,out]ls_maplinear system mapping.
[in]stencil_extentextent of the stencil.