Neko 1.99.1
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
phmg Module Reference

Hybrid ph-multigrid preconditioner.

Data Types

type  phmg_hrchy_t
 
type  phmg_lvl_t
 
type  phmg_t
 

Functions/Subroutines

subroutine phmg_init (this, coef, bclst, phmg_params)
 
subroutine phmg_init_from_components (this, coef, bclst, smoother_itrs, cheby_acc, crs_tamg_lvls, crs_tamg_itrs, crs_tamg_cheby_degree)
 
subroutine phmg_free (this)
 
subroutine phmg_solve (this, z, r, n)
 
subroutine phmg_update (this)
 
recursive subroutine phmg_mg_cycle (z, r, w, lvl, clvl, mg, intrp, msh, ax, amg_solver)
 
subroutine phmg_jacobi_smoother (z, r, w, mg, msh, ax, n, lvl)
 Wraps jacobi solve as a residual update relaxation method.
 
subroutine phmg_resid_monitor (z, r, w, mg, msh, ax, lvl, typ)
 
subroutine print_phmg_info (nlvls, smoo_type, phmg)
 

Function/Subroutine Documentation

◆ phmg_free()

subroutine phmg::phmg_free ( class(phmg_t), intent(inout this)
private

Definition at line 298 of file phmg.f90.

◆ phmg_init()

subroutine phmg::phmg_init ( class(phmg_t), intent(inout), target  this,
type(coef_t), intent(in), target  coef,
type(bc_list_t), intent(inout), target  bclst,
type(json_file), intent(inout phmg_params 
)

Definition at line 112 of file phmg.f90.

◆ phmg_init_from_components()

subroutine phmg::phmg_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 
)
private

Initialize Smoothers

Definition at line 142 of file phmg.f90.

Here is the call graph for this function:

◆ phmg_jacobi_smoother()

subroutine phmg::phmg_jacobi_smoother ( type(field_t), intent(inout z,
type(field_t), intent(inout r,
type(field_t), intent(inout w,
type(phmg_lvl_t mg,
type(mesh_t), intent(inout msh,
class(ax_t), intent(inout ax,
integer, intent(in n,
integer, intent(in lvl 
)
private
Parameters
zsolution vector (inout)
rrhs vector
wscratch work space vector
mgphmg level from hierarchy
mshmesh
Axmatrix vector class object
nvector length
lvlnot used

Definition at line 501 of file phmg.f90.

Here is the caller graph for this function:

◆ phmg_mg_cycle()

recursive subroutine phmg::phmg_mg_cycle ( type(field_t z,
type(field_t r,
type(field_t w,
integer  lvl,
integer  clvl,
type(phmg_lvl_t), dimension(0:clvl mg,
type(interpolator_t), dimension(1:clvl intrp,
type(mesh_t), intent(inout msh,
class(ax_t), intent(inout ax,
type(tamg_solver_t), intent(inout amg_solver 
)
private

-------—<! SMOOTH <! -------—<!

-------—<! Residual <! -------—<!

-------—<! Restrict <! -------—<!

-------—<! SOLVE <! -------—<!

-------—<! Project <! -------—<!

-------—<! Correct <! -------—<!

-------—<! SMOOTH <! -------—<!

Definition at line 348 of file phmg.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ phmg_resid_monitor()

subroutine phmg::phmg_resid_monitor ( type(field_t z,
type(field_t r,
type(field_t w,
type(phmg_lvl_t mg,
type(mesh_t), intent(inout msh,
class(ax_t), intent(inout ax,
integer  lvl,
integer  typ 
)
private

Definition at line 537 of file phmg.f90.

◆ phmg_solve()

subroutine phmg::phmg_solve ( class(phmg_t), intent(inout this,
real(kind=rp), dimension(n), intent(inout z,
real(kind=rp), dimension(n), intent(inout r,
integer, intent(in n 
)
private

Definition at line 302 of file phmg.f90.

Here is the call graph for this function:

◆ phmg_update()

subroutine phmg::phmg_update ( class(phmg_t), intent(inout this)
private

Definition at line 343 of file phmg.f90.

◆ print_phmg_info()

subroutine phmg::print_phmg_info ( integer, intent(in nlvls,
integer, intent(in smoo_type,
type(phmg_hrchy_t phmg 
)
private

Definition at line 568 of file phmg.f90.

Here is the caller graph for this function: