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. | |
Face linear system preparation of a vectorial equation defined on faces.
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.
!!
add_rhs_face
routine takes cell field elements and adds them to the right-hand side of a 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.
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.
!!
time_advance_explicitly_face
routine solves \( \alpha_{i,j,k} \u^{n+1} = RHS_{i,j,k} \) and applies the appropriate boundary conditions.