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


Calls

proc~~build_helmholtz_csr~~CallsGraph proc~build_helmholtz_csr build_helmholtz_csr interface~get_index_neighbor mesh_cart_t%get_index_neighbor proc~build_helmholtz_csr->interface~get_index_neighbor interface~get_n_points mesh_cart_t%get_n_points proc~build_helmholtz_csr->interface~get_n_points interface~get_n_points_boundary mesh_cart_t%get_n_points_boundary proc~build_helmholtz_csr->interface~get_n_points_boundary interface~get_n_points_ghost mesh_cart_t%get_n_points_ghost proc~build_helmholtz_csr->interface~get_n_points_ghost interface~get_n_points_inner mesh_cart_t%get_n_points_inner proc~build_helmholtz_csr->interface~get_n_points_inner interface~get_spacing_c mesh_cart_t%get_spacing_c proc~build_helmholtz_csr->interface~get_spacing_c interface~rank_list rank_list proc~build_helmholtz_csr->interface~rank_list proc~compute_bndnmn_matrix_row compute_bndnmn_matrix_row proc~build_helmholtz_csr->proc~compute_bndnmn_matrix_row proc~handle_error handle_error proc~build_helmholtz_csr->proc~handle_error proc~compute_bndnmn_matrix_row->interface~get_index_neighbor proc~compute_bndnmn_matrix_row->interface~get_spacing_c interface~normal_to_boundary mesh_cart_t%normal_to_boundary proc~compute_bndnmn_matrix_row->interface~normal_to_boundary proc~get_stderr get_stderr proc~compute_bndnmn_matrix_row->proc~get_stderr none~handle_error error_handler_t%handle_error proc~handle_error->none~handle_error

Called by

proc~~build_helmholtz_csr~~CalledByGraph proc~build_helmholtz_csr build_helmholtz_csr proc~write_netcdf_helmholtz write_netcdf_helmholtz proc~write_netcdf_helmholtz->proc~build_helmholtz_csr program~benchmark_helmholtz_solvers benchmark_helmholtz_solvers program~benchmark_helmholtz_solvers->proc~write_netcdf_helmholtz