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

Defines a communication avoiding Conjugate Gradient method.

Data Types

type  cacg_t
 S-step communication avoiding preconditioned conjugate gradient method. More...
 

Functions/Subroutines

subroutine cacg_init (this, n, max_iter, m, s, rel_tol, abs_tol, monitor)
 Initialise a s-step CA PCG solver.
 
subroutine cacg_free (this)
 Deallocate a s-step CA PCG solver.
 
type(ksp_monitor_t) function cacg_solve (this, ax, x, f, n, coef, blst, gs_h, niter)
 S-step CA PCG solve.
 
subroutine construct_basis_matrix (tt, s)
 Monomial matrix constuction, not sparse.
 
type(ksp_monitor_t) function, dimension(3) cacg_solve_coupled (this, ax, x, y, z, fx, fy, fz, n, coef, blstx, blsty, blstz, gs_h, niter)
 S-step CA PCG coupled solve.
 

Function/Subroutine Documentation

◆ cacg_free()

subroutine cacg::cacg_free ( class(cacg_t), intent(inout this)
private

Definition at line 115 of file cacg.f90.

◆ cacg_init()

subroutine cacg::cacg_init ( class(cacg_t), intent(inout this,
integer, intent(in n,
integer, intent(in max_iter,
class(pc_t), intent(in), optional, target  m,
integer, intent(in), optional  s,
real(kind=rp), intent(in), optional  rel_tol,
real(kind=rp), intent(in), optional  abs_tol,
logical, intent(in), optional  monitor 
)

Definition at line 66 of file cacg.f90.

Here is the call graph for this function:

◆ cacg_solve()

type(ksp_monitor_t) function cacg::cacg_solve ( class(cacg_t), intent(inout this,
class(ax_t), intent(in ax,
type(field_t), intent(inout x,
real(kind=rp), dimension(n), intent(in f,
integer, intent(in n,
type(coef_t), intent(inout coef,
type(bc_list_t), intent(inout blst,
type(gs_t), intent(inout gs_h,
integer, intent(in), optional  niter 
)
private

Definition at line 138 of file cacg.f90.

Here is the call graph for this function:

◆ cacg_solve_coupled()

type(ksp_monitor_t) function, dimension(3) cacg::cacg_solve_coupled ( class(cacg_t), intent(inout this,
class(ax_t), intent(in ax,
type(field_t), intent(inout x,
type(field_t), intent(inout y,
type(field_t), intent(inout z,
real(kind=rp), dimension(n), intent(in fx,
real(kind=rp), dimension(n), intent(in fy,
real(kind=rp), dimension(n), intent(in fz,
integer, intent(in n,
type(coef_t), intent(inout coef,
type(bc_list_t), intent(inout blstx,
type(bc_list_t), intent(inout blsty,
type(bc_list_t), intent(inout blstz,
type(gs_t), intent(inout gs_h,
integer, intent(in), optional  niter 
)
private

Definition at line 353 of file cacg.f90.

◆ construct_basis_matrix()

subroutine cacg::construct_basis_matrix ( real(kind=rp), dimension(4*s+1,4*s+1), intent(inout tt,
integer, intent(in s 
)
private

Definition at line 338 of file cacg.f90.

Here is the caller graph for this function: