zeroing out the corresponding row and column. Depends on the matrix that is used.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
character(len=5), | private, | parameter | :: | LEFT | = | "left" | |
character(len=6), | private, | parameter | :: | RIGHT | = | "right" | |
character(len=4), | private, | parameter | :: | EVEN | = | "even" | |
character(len=3), | private, | parameter | :: | ODD | = | "odd" |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(sv_component_t), | intent(in) | :: | sv_components(:) | array containing state vector components for which to retrieve indices |
||
type(settings_t), | intent(in) | :: | settings | settings object |
||
character(len=*), | intent(in) | :: | edge | edge for which to retrieve indices |
||
character(len=*), | intent(in), | optional | :: | force_parity | parity is based on the basis functions unless forced through this argument |
array containing the corresponding block indices
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(sv_component_t), | intent(in) | :: | component | |||
type(settings_t), | intent(in) | :: | settings | |||
character(len=*), | intent(in) | :: | edge | |||
character(len=*), | intent(in), | optional | :: | force_parity |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(matrix_t), | intent(in) | :: | matrix |
This relies on the behaviour of the basis functions. If a variable needs to be
zero, then this is done by forcing the basis functions on that edge to zero.
For both left and right edges the quadratic basis functions have a non-zero entry
in their even rows/columns, whereas the cubic basis functions have a non-zero entry
in their odd rows/columns.
Concrete:
- cubic, left: C2 is non-zero, zero out elements with spline(2)
- cubic, right: C1 is non-zero, zero out elements with spline(1)
- quad, left: Q4 is non-zero, zero out elements with spline(4)
- quad, right: Q3 is non-zero, zero out elements with spline(3)
See also ordening of a quadblock in mod_build_quadblock
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | name |
Checks if we need regularity conditions on temperature, this is the case if we have perpendicular thermal conduction.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(settings_t), | intent(in) | :: | settings |
Check if we need a no-slip condition on the left-hand side (i.e. viscosity). Does not apply on-axis for cylindrical unless two coaxial wall are present.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(settings_t), | intent(in) | :: | settings |
Check if we need a no-slip condition on the right-hand side (i.e. viscosity).
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(settings_t), | intent(in) | :: | settings |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(matrix_t), | intent(inout) | :: | matrix | |||
type(settings_t), | intent(in) | :: | settings |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(matrix_t), | intent(inout) | :: | matrix | |||
type(settings_t), | intent(in) | :: | settings |
Zeroes out the row and column corresponding to the given indices.
Afterwards diagonal_factor
is introduced in that row/column on the main diagonal.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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) |