build_helmholtz_csr Subroutine

public subroutine build_helmholtz_csr(mesh, hcsr, hdiag_inv, co, xi, lambda, bnd_descrs)

Builds Helmholtz matrix

Arguments

Type IntentOptional 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