|
Neko 1.99.7
A portable framework for high-order spectral element flow simulations
|


Public Member Functions | |
| procedure, pass(this) | init (this, coef, bclst, phmg_params) |
| procedure, pass(this) | init_from_components (this, coef, bclst, smoother_itrs, cheby_acc, crs_tamg_lvls, crs_tamg_itrs, crs_tamg_cheby_degree, pcrs_sched, update_enabled) |
| procedure, pass(this) | free (this) |
| procedure, pass(this) | solve (this, z, r, n) |
| procedure, pass(this) | update (this) |
| Bring the preconditioner back in sync after the mesh has changed. | |
| procedure(pc_solve), deferred, pass | solve (this, z, r, n) |
| procedure(pc_update), deferred, pass | update (this) |
Public Attributes | |
| type(tamg_solver_t) | amg_solver |
| integer | nlvls |
| type(phmg_hrchy_t) | phmg_hrchy |
| class(ax_t), allocatable | ax |
| type(interpolator_t), dimension(:), allocatable | intrp |
| type(interpolator_t), dimension(:), allocatable | crd_intrp |
| Coordinate interpolators. | |
| type(mesh_t), pointer | msh |
| integer | last_metrics_version = -1 |
| Fine-level metrics_version at the last refresh, to detect a change. | |
| logical | update_enabled = .false. |
| When .false., update() does nothing and coarse levels stay frozen at their initial geometry. When .true., update() interpolates the fine-level geometry to the coarse levels. | |
| logical | refresh_eigs = .true. |
| Whether a refresh also re-estimates the Chebyshev eigenvalues. | |
| integer | refresh_eigs_frequency = 20 |
| Re-estimate eigenvalues only every N-th refresh. | |
| logical | eigs_warm_start = .true. |
| Restart eigenvalue estimation from the previous eigenvector. | |
| integer | power_its_refresh = 20 |
| Power iterations used for warm-started re-estimations. | |
| integer | n_refresh = 0 |
| Refreshes done so far, for refresh_eigs_frequency. | |
| character(len=:), allocatable | cheby_acc |
| Which accelerator the Chebyshev smoother uses. | |
Private Member Functions | |
| procedure, pass(this), private | mg_cycle (this) |
| procedure, pass(this) phmg::phmg_t::init_from_components | ( | class(phmg_t), intent(inout), target | this, |
| type(coef_t), intent(in), target | coef, | ||
| type(bc_list_t), intent(inout), target | bclst, | ||
| integer, intent(in) | smoother_itrs, | ||
| character(len=:), allocatable | cheby_acc, | ||
| integer, intent(in) | crs_tamg_lvls, | ||
| integer, intent(in) | crs_tamg_itrs, | ||
| integer, intent(in) | crs_tamg_cheby_degree, | ||
| integer, dimension(:), intent(in), allocatable | pcrs_sched, | ||
| logical, intent(in), optional | update_enabled | ||
| ) |
|
pure virtualinherited |
Definition at line 42 of file precon.f90.
|
pure virtualinherited |
Definition at line 43 of file precon.f90.
| type(tamg_solver_t) phmg::phmg_t::amg_solver |
| class(ax_t), allocatable phmg::phmg_t::ax |
| character(len=:), allocatable phmg::phmg_t::cheby_acc |
| type(interpolator_t), dimension(:), allocatable phmg::phmg_t::crd_intrp |
| type(interpolator_t), dimension(:), allocatable phmg::phmg_t::intrp |
| type(phmg_hrchy_t) phmg::phmg_t::phmg_hrchy |