0.6.0
Loading...
Searching...
No Matches
Face linear system preparation

Face linear system preparation of a vectorial equation defined on faces. More...

Namespaces

module  type_face_ls_map
 Type decalaration associated to the mapping of a face vector linear system on the numerical grid.
 

Functions

subroutine mod_add_diagonal_face_matrix::add_diagonal_face_matrix (matrix, navier_stencil_size, work_array, navier_ls_map)
 Add a term to the diagonal of a matrix for an equation defined on faces.
 
subroutine mod_add_rhs_face::add_rhs_face (rhs, work_array, navier_ls_map)
 Add arrays to Right-Hand-Side corresponding to an equation discretized on faces.
 
subroutine mod_finalize_face_linear_system::finalize_face_linear_system (matrix, rhs, stencil_size, equation_face_ls_map)
 Detect unset rows and set them ready to pass ls solvers.
 
pure subroutine mod_initialize_face_linear_system::initialize_face_linear_system (matrix, rhs, ls_map)
 Allocate matrix and right-hand side of a face linear system.
 
subroutine mod_time_advance_explicitly_face::time_advance_explicitly_face (matrix, rhs, work_array)
 Determine \( \mathbf{u}^{n+1} \) for an equation discretized on faces and with a fully explicit implementation.
 

Detailed Description

Face linear system preparation of a vectorial equation defined on faces.

Function Documentation

◆ add_rhs_face()

subroutine mod_add_rhs_face::add_rhs_face ( double precision, dimension(:), intent(inout) rhs,
type(t_face_field), intent(in) work_array,
type(t_face_ls_map), intent(in) navier_ls_map )

Add arrays to Right-Hand-Side corresponding to an equation discretized on faces.

!!

Note
  • The add_rhs_face routine takes cell field elements and adds them to the right-hand side of a linear system.

◆ finalize_face_linear_system()

subroutine mod_finalize_face_linear_system::finalize_face_linear_system ( double precision, dimension(:), intent(inout) matrix,
double precision, dimension(:), intent(inout) rhs,
integer, intent(in) stencil_size,
type(t_face_ls_map), intent(in) equation_face_ls_map )

Detect unset rows and set them ready to pass ls solvers.

Unset rows are detected by checking diagonal element values of that equals to 0d0. Then set the row to identity and the right-hand side to 0.

Todo
improve unused nodes values (extrapolation)

◆ time_advance_explicitly_face()

subroutine mod_time_advance_explicitly_face::time_advance_explicitly_face ( double precision, dimension(:), intent(in) matrix,
double precision, dimension(:), intent(in) rhs,
type(t_face_field), intent(inout) work_array )

Determine \( \mathbf{u}^{n+1} \) for an equation discretized on faces and with a fully explicit implementation.

!!

Note
  • The time_advance_explicitly_face routine solves \( \alpha_{i,j,k} \u^{n+1} = RHS_{i,j,k} \) and applies the appropriate boundary conditions.