Module for interfacing with PAccX.
It's unclear whether this should remain here, or whether a Fortran
interface should be provided by the PAccX package itself.
TODO: If the module stays here, then the two parameters should be moved
to the helmholtz_solver_m module, and the interfaces should be moved to
the helmholtz_solver_gmgmres_cxx_s submodule.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(cxx_solver_objects), | intent(out) | :: | so | |||
| integer(kind=c_int32_t), | intent(in), | value | :: | backend | ||
| type(solver_numerical_parameters), | intent(in), | value | :: | snp | ||
| type(multigrid_data_t), | intent(in) | :: | mgrid_data | |||
| type(helmholtz_matrix_data), | intent(in) | :: | hmd |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(cxx_solver_objects), | intent(inout) | :: | so | |||
| type(helmholtz_matrix_data), | intent(in) | :: | rhd |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(cxx_solver_objects), | intent(in) | :: | so | |||
| type(helmholtz_vector_data) | :: | hvd | ||||
| integer(kind=c_int32_t), | intent(out) | :: | Arnoldi_iterations | |||
| integer(kind=c_int32_t), | intent(out) | :: | nrestarts | |||
| real(kind=c_double), | intent(out) | :: | residuum |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(cxx_solver_objects), | intent(inout) | :: | so |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(cxx_solver_objects), | intent(in) | :: | so |
Holds solver numerical parameter information
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=c_int32_t), | public | :: | cycle_type |
Type of multigrid cycle to use. Possible values are 0, 1, 2, 3, 4; these correspond to: V cycle non recursive, V cycle recursive, V cycle0, W cycle1 and F cycle. Please see PAccX/src/csr_solver/multigrid_solver/paccx_multigrid_cycle_type.hxx for further information |
|||
| integer(kind=c_int32_t), | public | :: | presmooth |
Number of presmooth GSRB passes |
|||
| integer(kind=c_int32_t), | public | :: | postsmooth |
Number of postsmooth GSRB passes |
|||
| integer(kind=c_int32_t), | public | :: | Krylov_dimension |
Krylov dimension |
|||
| integer(kind=c_int32_t), | public | :: | max_restart |
Maximum number of FGMRES restarts |
|||
| real(kind=FP), | public | :: | tolerance |
Maximum accepted residuum |
Holds information needed to build Helmholtz matrices for 2D problem.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=c_int32_t), | public | :: | bnd_type_core | ||||
| integer(kind=c_int32_t), | public | :: | bnd_type_wall | ||||
| integer(kind=c_int32_t), | public | :: | bnd_type_dome | ||||
| integer(kind=c_int32_t), | public | :: | bnd_type_out | ||||
| integer(kind=c_int32_t), | public | :: | backend | ||||
| type(c_ptr), | public | :: | co | ||||
| type(c_ptr), | public | :: | xi | ||||
| type(c_ptr), | public | :: | lambda |
Holds right-hand-side of Helmholtz equation and initial guess for FGMRES algorithm
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=c_int32_t), | public | :: | backend | ||||
| type(c_ptr), | public | :: | rhs | ||||
| type(c_ptr), | public | :: | sol |