Routines related with Helmholtz operator
Computes helmholtz operator for single inner grid point
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(mesh_cart_t), | intent(in) | :: | mesh |
Mesh |
||
| real(kind=FP), | intent(in), | dimension(mesh%n_points) | :: | u |
Variable |
|
| integer, | intent(in) | :: | ind |
Index where helmholtz operator should be computed MUST be index of an inner grid pointt (not checked for performance reasons) |
||
| real(kind=FP), | intent(in), | optional, | dimension(mesh%n_points) | :: | co |
Coefficient |
| real(kind=FP), | intent(in), | optional | :: | xiv |
Coefficient at mesh point |
|
| real(kind=FP), | intent(in), | optional | :: | lambdav |
Coefficient at mesh point |
result
Computes helmholtz operator for single boundary point
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(mesh_cart_t), | intent(in) | :: | mesh |
Mesh |
||
| real(kind=FP), | intent(in), | dimension(mesh%n_points) | :: | u |
Variable |
|
| integer, | intent(in) | :: | ind |
Index where helmholtz operator should be computed MUST be index of a boundary point (not checked for performance reasons) |
||
| integer, | intent(in) | :: | bnd_descr |
Descriptor for boundary condition |
result
Computes helmholtz operator for single boundary point
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(mesh_cart_t), | intent(in) | :: | mesh |
Mesh |
||
| real(kind=FP), | intent(in), | dimension(mesh%n_points) | :: | u |
Variable |
|
| integer, | intent(in) | :: | ind |
Index where helmholtz operator should be computed MUST be index of a ghost point (not checked for performance reasons) |
result
Builds Helmholtz matrix
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(mesh_cart_t), | intent(in) | :: | mesh |
Mesh |
||
| type(csrmat_t), | intent(inout) | :: | hcsr |
Helmholtz matrix. If hcsr%i is already allocated on input, the matrix is assumed to have the provided non-zero structure with all fields allocated, otherwise structure is allocated and created from scratch. |
||
| real(kind=FP), | intent(out), | optional, | dimension(mesh%get_n_points()) | :: | hdiag_inv |
Inverse of diagonal of Helmholtz matrix |
| real(kind=FP), | intent(in), | optional, | dimension(mesh%get_n_points()) | :: | co |
Coefficient within Helmholtz operator |
| real(kind=FP), | intent(in), | optional, | dimension(mesh%get_n_points_inner()) | :: | xi |
Coefficient within Helmholtz operator |
| real(kind=FP), | intent(in), | optional, | dimension(mesh%get_n_points_inner()) | :: | lambda |
Coefficient within Helmholtz operator |
| integer, | intent(in), | optional, | dimension(mesh%get_n_points_boundary()) | :: | bnd_descrs |
Descriptors_m for type of boundary conditions |