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) |