Neko 0.9.99
A portable framework for high-order spectral element flow simulations
|
Public Member Functions | |
procedure, pass(this) | init (this, msh, xh, coef, dof, gs_h, bclst, crs_pctype) |
procedure, pass(this) | free (this) |
procedure, pass(this) | solve (this, z, r, n) |
The h1mg preconditioner from Nek5000. | |
procedure, pass(this) | update (this) |
procedure(pc_solve), deferred, pass | solve (this, z, r, n) |
procedure(pc_update), deferred, pass | update (this) |
Public Attributes | |
type(mesh_t), pointer | msh |
integer | nlvls |
Number of levels in the multigrid. | |
type(multigrid_t), dimension(:), allocatable | grids |
array for multigrids | |
type(gs_t) | gs_crs |
type(gs_t) | gs_mg |
gather scatter for lower levels | |
type(space_t) | xh_crs |
type(space_t) | xh_mg |
spaces for lower levels | |
type(dofmap_t) | dm_crs |
type(dofmap_t) | dm_mg |
type(coef_t) | c_crs |
type(coef_t) | c_mg |
type(dirichlet_t) | bc_crs |
type(dirichlet_t) | bc_mg |
type(dirichlet_t) | bc_reg |
type(bc_list_t) | bclst_crs |
type(bc_list_t) | bclst_mg |
type(bc_list_t) | bclst_reg |
type(schwarz_t) | schwarz |
type(schwarz_t) | schwarz_mg |
type(schwarz_t) | schwarz_crs |
Schwarz decompostions. | |
type(field_t) | e |
type(field_t) | e_mg |
type(field_t) | e_crs |
Solve fields. | |
type(field_t) | wf |
Work fields. | |
class(ksp_t), allocatable | crs_solver |
Solver for course problem. | |
type(tamg_solver_t), allocatable | amg_solver |
integer | niter = 10 |
Number of iter of crs sovlve. | |
class(pc_t), allocatable | pc_crs |
Some basic precon for crs. | |
class(ax_t), allocatable | ax |
Matrix for crs solve. | |
real(kind=rp), dimension(:), allocatable | r |
Residual work array. | |
type(interpolator_t) | interp_fine_mid |
type(interpolator_t) | interp_mid_crs |
real(kind=rp), dimension(:), allocatable | w |
work array | |
type(c_ptr) | w_d = C_NULL_PTR |
type(c_ptr) | r_d = C_NULL_PTR |
type(c_ptr) | hsmg_event |
type(c_ptr) | gs_event |
Definition at line 103 of file pc_hsmg.f90.
Definition at line 131 of file pc_hsmg.f90.
procedure, pass(this) hsmg::hsmg_t::init | ( | class(hsmg_t), intent(inout), target | this, |
type(mesh_t), intent(inout), target | msh, | ||
type(space_t), intent(inout), target | xh, | ||
type(coef_t), intent(in), target | coef, | ||
type(dofmap_t), intent(in), target | dof, | ||
type(gs_t), intent(inout), target | gs_h, | ||
type(bc_list_t), intent(inout), target | bclst, | ||
character(len=*), optional | crs_pctype | ||
) |
Definition at line 130 of file pc_hsmg.f90.
procedure, pass(this) hsmg::hsmg_t::solve | ( | class(hsmg_t), intent(inout) | this, |
real(kind=rp), dimension(n), intent(inout) | z, | ||
real(kind=rp), dimension(n), intent(inout) | r, | ||
integer, intent(in) | n | ||
) |
Definition at line 132 of file pc_hsmg.f90.
|
pure virtualinherited |
Definition at line 42 of file precon.f90.
Definition at line 133 of file pc_hsmg.f90.
|
pure virtualinherited |
Definition at line 43 of file precon.f90.
type(tamg_solver_t), allocatable hsmg::hsmg_t::amg_solver |
Definition at line 117 of file pc_hsmg.f90.
class(ax_t), allocatable hsmg::hsmg_t::ax |
Definition at line 120 of file pc_hsmg.f90.
type(dirichlet_t) hsmg::hsmg_t::bc_crs |
Definition at line 111 of file pc_hsmg.f90.
type(dirichlet_t) hsmg::hsmg_t::bc_mg |
Definition at line 111 of file pc_hsmg.f90.
type(dirichlet_t) hsmg::hsmg_t::bc_reg |
Definition at line 111 of file pc_hsmg.f90.
type(bc_list_t) hsmg::hsmg_t::bclst_crs |
Definition at line 112 of file pc_hsmg.f90.
type(bc_list_t) hsmg::hsmg_t::bclst_mg |
Definition at line 112 of file pc_hsmg.f90.
type(bc_list_t) hsmg::hsmg_t::bclst_reg |
Definition at line 112 of file pc_hsmg.f90.
type(coef_t) hsmg::hsmg_t::c_crs |
Definition at line 110 of file pc_hsmg.f90.
type(coef_t) hsmg::hsmg_t::c_mg |
Definition at line 110 of file pc_hsmg.f90.
class(ksp_t), allocatable hsmg::hsmg_t::crs_solver |
Definition at line 116 of file pc_hsmg.f90.
type(dofmap_t) hsmg::hsmg_t::dm_crs |
Definition at line 109 of file pc_hsmg.f90.
type(dofmap_t) hsmg::hsmg_t::dm_mg |
Definition at line 109 of file pc_hsmg.f90.
type(field_t) hsmg::hsmg_t::e |
Definition at line 114 of file pc_hsmg.f90.
type(field_t) hsmg::hsmg_t::e_crs |
Definition at line 114 of file pc_hsmg.f90.
type(field_t) hsmg::hsmg_t::e_mg |
Definition at line 114 of file pc_hsmg.f90.
type(multigrid_t), dimension(:), allocatable hsmg::hsmg_t::grids |
Definition at line 106 of file pc_hsmg.f90.
type(gs_t) hsmg::hsmg_t::gs_crs |
Definition at line 107 of file pc_hsmg.f90.
type(c_ptr) hsmg::hsmg_t::gs_event |
Definition at line 128 of file pc_hsmg.f90.
type(gs_t) hsmg::hsmg_t::gs_mg |
Definition at line 107 of file pc_hsmg.f90.
type(c_ptr) hsmg::hsmg_t::hsmg_event |
Definition at line 127 of file pc_hsmg.f90.
type(interpolator_t) hsmg::hsmg_t::interp_fine_mid |
Definition at line 122 of file pc_hsmg.f90.
type(interpolator_t) hsmg::hsmg_t::interp_mid_crs |
Definition at line 123 of file pc_hsmg.f90.
Definition at line 104 of file pc_hsmg.f90.
integer hsmg::hsmg_t::niter = 10 |
Definition at line 118 of file pc_hsmg.f90.
integer hsmg::hsmg_t::nlvls |
Definition at line 105 of file pc_hsmg.f90.
class(pc_t), allocatable hsmg::hsmg_t::pc_crs |
Definition at line 119 of file pc_hsmg.f90.
real(kind=rp), dimension(:), allocatable hsmg::hsmg_t::r |
Definition at line 121 of file pc_hsmg.f90.
type(c_ptr) hsmg::hsmg_t::r_d = C_NULL_PTR |
Definition at line 126 of file pc_hsmg.f90.
type(schwarz_t) hsmg::hsmg_t::schwarz |
Definition at line 113 of file pc_hsmg.f90.
type(schwarz_t) hsmg::hsmg_t::schwarz_crs |
Definition at line 113 of file pc_hsmg.f90.
type(schwarz_t) hsmg::hsmg_t::schwarz_mg |
Definition at line 113 of file pc_hsmg.f90.
real(kind=rp), dimension(:), allocatable hsmg::hsmg_t::w |
Definition at line 124 of file pc_hsmg.f90.
type(c_ptr) hsmg::hsmg_t::w_d = C_NULL_PTR |
Definition at line 125 of file pc_hsmg.f90.
type(field_t) hsmg::hsmg_t::wf |
Definition at line 115 of file pc_hsmg.f90.
type(space_t) hsmg::hsmg_t::xh_crs |
Definition at line 108 of file pc_hsmg.f90.
type(space_t) hsmg::hsmg_t::xh_mg |
Definition at line 108 of file pc_hsmg.f90.