smod_essential_boundaries Submodule



Contents


Variables

TypeVisibilityAttributesNameInitial
character(len=3), private, allocatable:: cubic_vars_to_zero_out(:)

Functions

function get_diagonal_factor(matrix) result(diagonal_factor)

Returns the value that is introduced on the main block diagonal after zeroing out the corresponding row and column. Depends on the matrix that is used.

Arguments

TypeIntentOptionalAttributesName
type(matrix_t), intent(in) :: matrix

Return Value complex(kind=dp)


Subroutines

subroutine zero_out_row_and_col(matrix, idxs, limits)

Zeroes out the row and column corresponding to the given indices. Afterwards diagonal_factor is introduced in that row/column on the main diagonal.

Arguments

TypeIntentOptionalAttributesName
type(matrix_t), intent(inout) :: matrix

the matrix under consideration

integer, intent(in) :: idxs(:)

indices of the row and column to zero out

integer, intent(in) :: limits(2)

(start, end) limits of quadblock corresponding to (start, start):(end, end)


Module Procedures

module procedure apply_essential_boundaries_left module module subroutine apply_essential_boundaries_left(matrix, settings)

Arguments

TypeIntentOptionalAttributesName
type(matrix_t), intent(inout) :: matrix
type(settings_t), intent(in) :: settings

module procedure apply_essential_boundaries_right module module subroutine apply_essential_boundaries_right(matrix, settings)

Arguments

TypeIntentOptionalAttributesName
type(matrix_t), intent(inout) :: matrix
type(settings_t), intent(in) :: settings