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

Defines a pipelined Conjugate Gradient methods.

Data Types

interface  cuda_cg_update_xp
 
interface  cuda_pipecg_vecops
 
type  pipecg_device_t
 Pipelined preconditioned conjugate gradient method. More...
 

Functions/Subroutines

subroutine device_pipecg_vecops (p_d, q_d, r_d, s_d, u_d1, u_d2, w_d, z_d, ni_d, mi_d, alpha, beta, mult_d, reduction, n)
 
subroutine device_cg_update_xp (x_d, p_d, u_d_d, alpha, beta, p_cur, p_space, n)
 
subroutine pipecg_device_init (this, n, max_iter, m, rel_tol, abs_tol, monitor)
 Initialise a pipelined PCG solver.
 
subroutine pipecg_device_free (this)
 Deallocate a pipelined PCG solver.
 
type(ksp_monitor_t) function pipecg_device_solve (this, ax, x, f, n, coef, blst, gs_h, niter)
 Pipelined PCG solve.
 
type(ksp_monitor_t) function, dimension(3) pipecg_device_solve_coupled (this, ax, x, y, z, fx, fy, fz, n, coef, blstx, blsty, blstz, gs_h, niter)
 Pipelined PCG coupled solve.
 

Variables

integer, parameter device_pipecg_p_space = 10
 

Function/Subroutine Documentation

◆ device_cg_update_xp()

subroutine pipecg_device::device_cg_update_xp ( type(c_ptr), value  x_d,
type(c_ptr), value  p_d,
type(c_ptr), value  u_d_d,
type(c_ptr), value  alpha,
type(c_ptr), value  beta,
integer(c_int p_cur,
integer(c_int p_space,
integer(c_int n 
)
private

Definition at line 157 of file pipecg_device.F90.

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

◆ device_pipecg_vecops()

subroutine pipecg_device::device_pipecg_vecops ( type(c_ptr), value  p_d,
type(c_ptr), value  q_d,
type(c_ptr), value  r_d,
type(c_ptr), value  s_d,
type(c_ptr), value  u_d1,
type(c_ptr), value  u_d2,
type(c_ptr), value  w_d,
type(c_ptr), value  z_d,
type(c_ptr), value  ni_d,
type(c_ptr), value  mi_d,
real(c_rp)  alpha,
real(c_rp)  beta,
type(c_ptr), value  mult_d,
real(c_rp), dimension(3)  reduction,
integer(c_int n 
)
private

Definition at line 140 of file pipecg_device.F90.

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

◆ pipecg_device_free()

subroutine pipecg_device::pipecg_device_free ( class(pipecg_device_t), intent(inout this)
private

Definition at line 246 of file pipecg_device.F90.

Here is the call graph for this function:

◆ pipecg_device_init()

subroutine pipecg_device::pipecg_device_init ( class(pipecg_device_t), intent(inout), target  this,
integer, intent(in n,
integer, intent(in max_iter,
class(pc_t), intent(in), optional, target  m,
real(kind=rp), intent(in), optional  rel_tol,
real(kind=rp), intent(in), optional  abs_tol,
logical, intent(in), optional  monitor 
)
private

Definition at line 171 of file pipecg_device.F90.

Here is the call graph for this function:

◆ pipecg_device_solve()

type(ksp_monitor_t) function pipecg_device::pipecg_device_solve ( class(pipecg_device_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 337 of file pipecg_device.F90.

Here is the call graph for this function:

◆ pipecg_device_solve_coupled()

type(ksp_monitor_t) function, dimension(3) pipecg_device::pipecg_device_solve_coupled ( class(pipecg_device_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 477 of file pipecg_device.F90.

Variable Documentation

◆ device_pipecg_p_space

integer, parameter pipecg_device::device_pipecg_p_space = 10
private

Definition at line 51 of file pipecg_device.F90.