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, pcrs_sched)
 
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 301 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,
integer, dimension(:), intent(in), allocatable  pcrs_sched 
)
private

Initialize Smoothers

Definition at line 152 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 502 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 349 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 538 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 305 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 344 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 569 of file phmg.f90.

Here is the caller graph for this function: