helmholtz_netcdfio_m Module

I/O to NETCDF format for a Helmholtz problem, useful for debugging and benchmarks


Uses

  • module~~helmholtz_netcdfio_m~~UsesGraph module~helmholtz_netcdfio_m helmholtz_netcdfio_m module~comm_handling_m comm_handling_m module~helmholtz_netcdfio_m->module~comm_handling_m module~csrmat_m csrmat_m module~helmholtz_netcdfio_m->module~csrmat_m module~descriptors_m descriptors_m module~helmholtz_netcdfio_m->module~descriptors_m module~helmholtz_operator_m helmholtz_operator_m module~helmholtz_netcdfio_m->module~helmholtz_operator_m module~mesh_cart_m mesh_cart_m module~helmholtz_netcdfio_m->module~mesh_cart_m module~precision_m precision_m module~helmholtz_netcdfio_m->module~precision_m module~screen_io_m screen_io_m module~helmholtz_netcdfio_m->module~screen_io_m netcdf netcdf module~helmholtz_netcdfio_m->netcdf mpi mpi module~comm_handling_m->mpi module~csrmat_m->module~precision_m module~csrmat_m->module~screen_io_m module~csrmat_m->netcdf iso_c_binding iso_c_binding module~csrmat_m->iso_c_binding module~error_handling_m error_handling_m module~csrmat_m->module~error_handling_m module~list_operations_m list_operations_m module~csrmat_m->module~list_operations_m module~status_codes_m status_codes_m module~csrmat_m->module~status_codes_m module~descriptors_m->module~screen_io_m module~helmholtz_operator_m->module~csrmat_m module~helmholtz_operator_m->module~descriptors_m module~helmholtz_operator_m->module~mesh_cart_m module~helmholtz_operator_m->module~precision_m module~helmholtz_operator_m->module~screen_io_m module~boundaries_perp_m boundaries_perp_m module~helmholtz_operator_m->module~boundaries_perp_m module~helmholtz_operator_m->module~error_handling_m module~helmholtz_operator_m->module~list_operations_m module~helmholtz_operator_m->module~status_codes_m module~mesh_cart_m->module~comm_handling_m module~mesh_cart_m->module~descriptors_m module~mesh_cart_m->module~precision_m module~mesh_cart_m->netcdf module~mesh_cart_m->iso_c_binding module~equilibrium_m equilibrium_m module~mesh_cart_m->module~equilibrium_m module~mesh_cart_m->module~error_handling_m module~slab_equilibrium_m slab_equilibrium_m module~mesh_cart_m->module~slab_equilibrium_m module~mesh_cart_m->module~status_codes_m module~precision_m->netcdf module~precision_m->iso_c_binding iso_fortran_env iso_fortran_env module~precision_m->iso_fortran_env module~precision_m->mpi module~screen_io_m->module~precision_m module~screen_io_m->netcdf module~screen_io_m->iso_fortran_env module~boundaries_perp_m->module~descriptors_m module~boundaries_perp_m->module~mesh_cart_m module~boundaries_perp_m->module~precision_m module~boundaries_perp_m->module~screen_io_m module~boundaries_perp_m->module~error_handling_m module~boundaries_perp_m->module~status_codes_m module~equilibrium_m->module~precision_m module~error_handling_m->module~comm_handling_m module~error_handling_m->module~precision_m module~error_handling_m->module~screen_io_m module~error_handling_m->netcdf module~error_handling_m->module~status_codes_m module~error_handling_m->mpi module~list_operations_m->module~precision_m module~list_operations_m->module~screen_io_m module~slab_equilibrium_m->module~descriptors_m module~slab_equilibrium_m->module~precision_m module~slab_equilibrium_m->module~screen_io_m module~slab_equilibrium_m->module~equilibrium_m module~params_equi_slab_m params_equi_slab_m module~slab_equilibrium_m->module~params_equi_slab_m module~params_equi_slab_m->module~precision_m module~params_equi_slab_m->module~screen_io_m module~params_equi_slab_m->iso_fortran_env module~params_equi_slab_m->module~error_handling_m module~params_equi_slab_m->module~status_codes_m

Used by

  • module~~helmholtz_netcdfio_m~~UsedByGraph module~helmholtz_netcdfio_m helmholtz_netcdfio_m program~benchmark_helmholtz_solvers benchmark_helmholtz_solvers program~benchmark_helmholtz_solvers->module~helmholtz_netcdfio_m

Subroutines

public subroutine write_netcdf_helmholtz(fgid, mesh, bnd_type_core, bnd_type_wall, bnd_type_dome, bnd_type_out, co, lambda, xi, rhs, guess, sol, hcsr_write_on)

Writes a Helmholtz problem to NETCDF file

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: fgid

NETCDF file or group id

type(mesh_cart_t), intent(in) :: mesh

Mesh

integer, intent(in) :: bnd_type_core

Boundary descriptor for core boundary

integer, intent(in) :: bnd_type_wall

Boundary descriptor for wall boundary

integer, intent(in) :: bnd_type_dome

Boundary descriptor for dome boundary

integer, intent(in) :: bnd_type_out

Boundary descriptor for outer(mask) boundary

real(kind=FP), intent(in), dimension(mesh%get_n_points()) :: co

Coefficient within Helmholtz operator

real(kind=FP), intent(in), dimension(mesh%get_n_points_inner()) :: lambda

Coefficient within Helmholtz operator

real(kind=FP), intent(in), dimension(mesh%get_n_points_inner()) :: xi

Coefficient within Helmholtz operator

real(kind=FP), intent(in), dimension(mesh%get_n_points()) :: rhs

Right hand side

real(kind=FP), intent(in), dimension(mesh%get_n_points()) :: guess

Initial guess

real(kind=FP), intent(in), dimension(mesh%get_n_points()) :: sol

Solution

logical, intent(in) :: hcsr_write_on

Switch to write also Helmoltz matrix in CSR format Useful for debugging, benchmarking wwith external tools

public subroutine read_netcdf_helmholtz(fgid, mesh, bnd_type_core, bnd_type_wall, bnd_type_dome, bnd_type_out, co, lambda, xi, rhs, guess, sol)

Reads a Helmholtz problem to NETCDF file

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: fgid

NETCDF file or group id

type(mesh_cart_t), intent(in) :: mesh

Mesh

integer, intent(out) :: bnd_type_core

Boundary descriptor for core boundary

integer, intent(out) :: bnd_type_wall

Boundary descriptor for wall boundary

integer, intent(out) :: bnd_type_dome

Boundary descriptor for dome boundary

integer, intent(out) :: bnd_type_out

Boundary descriptor for outer(mask) boundary

real(kind=FP), intent(out), dimension(mesh%get_n_points()) :: co

Coefficient within Helmholtz operator

real(kind=FP), intent(out), dimension(mesh%get_n_points_inner()) :: lambda

Coefficient within Helmholtz operator

real(kind=FP), intent(out), dimension(mesh%get_n_points_inner()) :: xi

Coefficient within Helmholtz operator

real(kind=FP), intent(out), dimension(mesh%get_n_points()) :: rhs

Right hand side

real(kind=FP), intent(out), dimension(mesh%get_n_points()) :: guess

Initial guess

real(kind=FP), intent(out), dimension(mesh%get_n_points()) :: sol

Solution