Neko 0.9.99
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
hsmg::hsmg_t Type Referenceabstract
Inheritance diagram for hsmg::hsmg_t:
Collaboration diagram for hsmg::hsmg_t:

Public Member Functions

procedure, pass(thisinit (this, msh, xh, coef, dof, gs_h, bclst, crs_pctype)
 
procedure, pass(thisfree (this)
 
procedure, pass(thissolve (this, z, r, n)
 The h1mg preconditioner from Nek5000.
 
procedure, pass(thisupdate (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_tgs_crs
 
type(gs_tgs_mg
 gather scatter for lower levels
 
type(space_txh_crs
 
type(space_txh_mg
 spaces for lower levels
 
type(dofmap_tdm_crs
 
type(dofmap_tdm_mg
 
type(coef_tc_crs
 
type(coef_tc_mg
 
type(dirichlet_tbc_crs
 
type(dirichlet_tbc_mg
 
type(dirichlet_tbc_reg
 
type(bc_list_tbclst_crs
 
type(bc_list_tbclst_mg
 
type(bc_list_tbclst_reg
 
type(schwarz_tschwarz
 
type(schwarz_tschwarz_mg
 
type(schwarz_tschwarz_crs
 Schwarz decompostions.
 
type(field_te
 
type(field_te_mg
 
type(field_te_crs
 Solve fields.
 
type(field_twf
 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_tinterp_fine_mid
 
type(interpolator_tinterp_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
 

Detailed Description

Definition at line 103 of file pc_hsmg.f90.

Member Function/Subroutine Documentation

◆ free()

procedure, pass(this) hsmg::hsmg_t::free ( class(hsmg_t), intent(inout this)

Definition at line 131 of file pc_hsmg.f90.

◆ init()

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 
)
Note
I do not think we actually use the same grids as they do in the original!

Definition at line 130 of file pc_hsmg.f90.

◆ solve() [1/2]

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.

◆ solve() [2/2]

procedure(pc_solve), deferred, pass precon::pc_t::solve ( class(pc_t), intent(inout this,
real(kind=rp), dimension(n), intent(inout z,
real(kind=rp), dimension(n), intent(inout r,
integer, intent(in n 
)
pure virtualinherited

Definition at line 42 of file precon.f90.

◆ update() [1/2]

procedure, pass(this) hsmg::hsmg_t::update ( class(hsmg_t), intent(inout this)

Definition at line 133 of file pc_hsmg.f90.

◆ update() [2/2]

procedure(pc_update), deferred, pass precon::pc_t::update ( class(pc_t), intent(inout this)
pure virtualinherited

Definition at line 43 of file precon.f90.

Member Data Documentation

◆ amg_solver

type(tamg_solver_t), allocatable hsmg::hsmg_t::amg_solver

Definition at line 117 of file pc_hsmg.f90.

◆ ax

class(ax_t), allocatable hsmg::hsmg_t::ax

Definition at line 120 of file pc_hsmg.f90.

◆ bc_crs

type(dirichlet_t) hsmg::hsmg_t::bc_crs

Definition at line 111 of file pc_hsmg.f90.

◆ bc_mg

type(dirichlet_t) hsmg::hsmg_t::bc_mg

Definition at line 111 of file pc_hsmg.f90.

◆ bc_reg

type(dirichlet_t) hsmg::hsmg_t::bc_reg

Definition at line 111 of file pc_hsmg.f90.

◆ bclst_crs

type(bc_list_t) hsmg::hsmg_t::bclst_crs

Definition at line 112 of file pc_hsmg.f90.

◆ bclst_mg

type(bc_list_t) hsmg::hsmg_t::bclst_mg

Definition at line 112 of file pc_hsmg.f90.

◆ bclst_reg

type(bc_list_t) hsmg::hsmg_t::bclst_reg

Definition at line 112 of file pc_hsmg.f90.

◆ c_crs

type(coef_t) hsmg::hsmg_t::c_crs

Definition at line 110 of file pc_hsmg.f90.

◆ c_mg

type(coef_t) hsmg::hsmg_t::c_mg

Definition at line 110 of file pc_hsmg.f90.

◆ crs_solver

class(ksp_t), allocatable hsmg::hsmg_t::crs_solver

Definition at line 116 of file pc_hsmg.f90.

◆ dm_crs

type(dofmap_t) hsmg::hsmg_t::dm_crs

Definition at line 109 of file pc_hsmg.f90.

◆ dm_mg

type(dofmap_t) hsmg::hsmg_t::dm_mg

Definition at line 109 of file pc_hsmg.f90.

◆ e

type(field_t) hsmg::hsmg_t::e

Definition at line 114 of file pc_hsmg.f90.

◆ e_crs

type(field_t) hsmg::hsmg_t::e_crs

Definition at line 114 of file pc_hsmg.f90.

◆ e_mg

type(field_t) hsmg::hsmg_t::e_mg

Definition at line 114 of file pc_hsmg.f90.

◆ grids

type(multigrid_t), dimension(:), allocatable hsmg::hsmg_t::grids

Definition at line 106 of file pc_hsmg.f90.

◆ gs_crs

type(gs_t) hsmg::hsmg_t::gs_crs

Definition at line 107 of file pc_hsmg.f90.

◆ gs_event

type(c_ptr) hsmg::hsmg_t::gs_event

Definition at line 128 of file pc_hsmg.f90.

◆ gs_mg

type(gs_t) hsmg::hsmg_t::gs_mg

Definition at line 107 of file pc_hsmg.f90.

◆ hsmg_event

type(c_ptr) hsmg::hsmg_t::hsmg_event

Definition at line 127 of file pc_hsmg.f90.

◆ interp_fine_mid

type(interpolator_t) hsmg::hsmg_t::interp_fine_mid

Definition at line 122 of file pc_hsmg.f90.

◆ interp_mid_crs

type(interpolator_t) hsmg::hsmg_t::interp_mid_crs

Definition at line 123 of file pc_hsmg.f90.

◆ msh

type(mesh_t), pointer hsmg::hsmg_t::msh

Definition at line 104 of file pc_hsmg.f90.

◆ niter

integer hsmg::hsmg_t::niter = 10

Definition at line 118 of file pc_hsmg.f90.

◆ nlvls

integer hsmg::hsmg_t::nlvls

Definition at line 105 of file pc_hsmg.f90.

◆ pc_crs

class(pc_t), allocatable hsmg::hsmg_t::pc_crs

Definition at line 119 of file pc_hsmg.f90.

◆ r

real(kind=rp), dimension(:), allocatable hsmg::hsmg_t::r

Definition at line 121 of file pc_hsmg.f90.

◆ r_d

type(c_ptr) hsmg::hsmg_t::r_d = C_NULL_PTR

Definition at line 126 of file pc_hsmg.f90.

◆ schwarz

type(schwarz_t) hsmg::hsmg_t::schwarz

Definition at line 113 of file pc_hsmg.f90.

◆ schwarz_crs

type(schwarz_t) hsmg::hsmg_t::schwarz_crs

Definition at line 113 of file pc_hsmg.f90.

◆ schwarz_mg

type(schwarz_t) hsmg::hsmg_t::schwarz_mg

Definition at line 113 of file pc_hsmg.f90.

◆ w

real(kind=rp), dimension(:), allocatable hsmg::hsmg_t::w

Definition at line 124 of file pc_hsmg.f90.

◆ w_d

type(c_ptr) hsmg::hsmg_t::w_d = C_NULL_PTR

Definition at line 125 of file pc_hsmg.f90.

◆ wf

type(field_t) hsmg::hsmg_t::wf

Definition at line 115 of file pc_hsmg.f90.

◆ xh_crs

type(space_t) hsmg::hsmg_t::xh_crs

Definition at line 108 of file pc_hsmg.f90.

◆ xh_mg

type(space_t) hsmg::hsmg_t::xh_mg

Definition at line 108 of file pc_hsmg.f90.


The documentation for this type was generated from the following file: