Neko  0.8.1
A portable framework for high-order spectral element flow simulations
pipecg_device::pipecg_device_t Type Reference

Pipelined preconditioned conjugate gradient method. More...

Inheritance diagram for pipecg_device::pipecg_device_t:
Collaboration diagram for pipecg_device::pipecg_device_t:

Public Member Functions

procedure, pass(this) init => pipecg_device_init
 
procedure, pass(this) free => pipecg_device_free
 
procedure, pass(this) solve => pipecg_device_solve
 
procedure, pass(this) ksp_init => krylov_init
 Base type constructor. More...
 
procedure, pass(this) ksp_free => krylov_free
 Base type destructor. More...
 
procedure, pass(this) set_pc => krylov_set_pc
 Set preconditioner. More...
 

Public Attributes

real(kind=rp), dimension(:), allocatable p
 
real(kind=rp), dimension(:), allocatable q
 
real(kind=rp), dimension(:), allocatable r
 
real(kind=rp), dimension(:), allocatable s
 
real(kind=rp), dimension(:,:), allocatable u
 
real(kind=rp), dimension(:), allocatable w
 
real(kind=rp), dimension(:), allocatable z
 
real(kind=rp), dimension(:), allocatable mi
 
real(kind=rp), dimension(:), allocatable ni
 
real(kind=rp), dimension(:), allocatable alpha
 
real(kind=rp), dimension(:), allocatable beta
 
type(c_ptr) p_d = C_NULL_PTR
 
type(c_ptr) q_d = C_NULL_PTR
 
type(c_ptr) r_d = C_NULL_PTR
 
type(c_ptr) s_d = C_NULL_PTR
 
type(c_ptr) u_d_d = C_NULL_PTR
 
type(c_ptr) w_d = C_NULL_PTR
 
type(c_ptr) z_d = C_NULL_PTR
 
type(c_ptr) mi_d = C_NULL_PTR
 
type(c_ptr) ni_d = C_NULL_PTR
 
type(c_ptr) alpha_d = C_NULL_PTR
 
type(c_ptr) beta_d = C_NULL_PTR
 
type(c_ptr), dimension(:), allocatable u_d
 
type(c_ptr) gs_event = C_NULL_PTR
 
class(pc_t), pointer m => null()
 Preconditioner. More...
 
real(kind=rp) rel_tol
 Relative tolerance. More...
 
real(kind=rp) abs_tol
 Absolute tolerance. More...
 
integer max_iter
 Maximum number of iterations. More...
 
class(pc_t), allocatable m_ident
 Internal preconditioner (Identity) More...
 

Detailed Description

Pipelined preconditioned conjugate gradient method.

Definition at line 54 of file pipecg_device.F90.

Member Function/Subroutine Documentation

◆ free()

procedure, pass(this) pipecg_device::pipecg_device_t::free

Definition at line 81 of file pipecg_device.F90.

◆ init()

procedure, pass(this) pipecg_device::pipecg_device_t::init

Definition at line 80 of file pipecg_device.F90.

◆ ksp_free()

procedure, pass(this) krylov::ksp_t::ksp_free
inherited

Base type destructor.

Definition at line 75 of file krylov.f90.

◆ ksp_init()

procedure, pass(this) krylov::ksp_t::ksp_init
inherited

Base type constructor.

Definition at line 73 of file krylov.f90.

◆ set_pc()

procedure, pass(this) krylov::ksp_t::set_pc
inherited

Set preconditioner.

Definition at line 77 of file krylov.f90.

◆ solve()

procedure, pass(this) pipecg_device::pipecg_device_t::solve

Definition at line 82 of file pipecg_device.F90.

Member Data Documentation

◆ abs_tol

real(kind=rp) krylov::ksp_t::abs_tol
inherited

Absolute tolerance.

Definition at line 68 of file krylov.f90.

◆ alpha

real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::alpha

Definition at line 64 of file pipecg_device.F90.

◆ alpha_d

type(c_ptr) pipecg_device::pipecg_device_t::alpha_d = C_NULL_PTR

Definition at line 75 of file pipecg_device.F90.

◆ beta

real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::beta

Definition at line 65 of file pipecg_device.F90.

◆ beta_d

type(c_ptr) pipecg_device::pipecg_device_t::beta_d = C_NULL_PTR

Definition at line 76 of file pipecg_device.F90.

◆ gs_event

type(c_ptr) pipecg_device::pipecg_device_t::gs_event = C_NULL_PTR

Definition at line 78 of file pipecg_device.F90.

◆ m

class(pc_t), pointer krylov::ksp_t::m => null()
inherited

Preconditioner.

Definition at line 66 of file krylov.f90.

◆ m_ident

class(pc_t), allocatable krylov::ksp_t::m_ident
inherited

Internal preconditioner (Identity)

Definition at line 70 of file krylov.f90.

◆ max_iter

integer krylov::ksp_t::max_iter
inherited

Maximum number of iterations.

Definition at line 69 of file krylov.f90.

◆ mi

real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::mi

Definition at line 62 of file pipecg_device.F90.

◆ mi_d

type(c_ptr) pipecg_device::pipecg_device_t::mi_d = C_NULL_PTR

Definition at line 73 of file pipecg_device.F90.

◆ ni

real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::ni

Definition at line 63 of file pipecg_device.F90.

◆ ni_d

type(c_ptr) pipecg_device::pipecg_device_t::ni_d = C_NULL_PTR

Definition at line 74 of file pipecg_device.F90.

◆ p

real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::p

Definition at line 55 of file pipecg_device.F90.

◆ p_d

type(c_ptr) pipecg_device::pipecg_device_t::p_d = C_NULL_PTR

Definition at line 66 of file pipecg_device.F90.

◆ q

real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::q

Definition at line 56 of file pipecg_device.F90.

◆ q_d

type(c_ptr) pipecg_device::pipecg_device_t::q_d = C_NULL_PTR

Definition at line 67 of file pipecg_device.F90.

◆ r

real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::r

Definition at line 57 of file pipecg_device.F90.

◆ r_d

type(c_ptr) pipecg_device::pipecg_device_t::r_d = C_NULL_PTR

Definition at line 68 of file pipecg_device.F90.

◆ rel_tol

real(kind=rp) krylov::ksp_t::rel_tol
inherited

Relative tolerance.

Definition at line 67 of file krylov.f90.

◆ s

real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::s

Definition at line 58 of file pipecg_device.F90.

◆ s_d

type(c_ptr) pipecg_device::pipecg_device_t::s_d = C_NULL_PTR

Definition at line 69 of file pipecg_device.F90.

◆ u

real(kind=rp), dimension(:,:), allocatable pipecg_device::pipecg_device_t::u

Definition at line 59 of file pipecg_device.F90.

◆ u_d

type(c_ptr), dimension(:), allocatable pipecg_device::pipecg_device_t::u_d

Definition at line 77 of file pipecg_device.F90.

◆ u_d_d

type(c_ptr) pipecg_device::pipecg_device_t::u_d_d = C_NULL_PTR

Definition at line 70 of file pipecg_device.F90.

◆ w

real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::w

Definition at line 60 of file pipecg_device.F90.

◆ w_d

type(c_ptr) pipecg_device::pipecg_device_t::w_d = C_NULL_PTR

Definition at line 71 of file pipecg_device.F90.

◆ z

real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::z

Definition at line 61 of file pipecg_device.F90.

◆ z_d

type(c_ptr) pipecg_device::pipecg_device_t::z_d = C_NULL_PTR

Definition at line 72 of file pipecg_device.F90.


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