Neko
0.8.1
A portable framework for high-order spectral element flow simulations
|
Pipelined preconditioned conjugate gradient method. More...
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... | |
Pipelined preconditioned conjugate gradient method.
Definition at line 54 of file pipecg_device.F90.
procedure, pass(this) pipecg_device::pipecg_device_t::free |
Definition at line 81 of file pipecg_device.F90.
procedure, pass(this) pipecg_device::pipecg_device_t::init |
Definition at line 80 of file pipecg_device.F90.
|
inherited |
Base type destructor.
Definition at line 75 of file krylov.f90.
|
inherited |
Base type constructor.
Definition at line 73 of file krylov.f90.
|
inherited |
Set preconditioner.
Definition at line 77 of file krylov.f90.
procedure, pass(this) pipecg_device::pipecg_device_t::solve |
Definition at line 82 of file pipecg_device.F90.
|
inherited |
Absolute tolerance.
Definition at line 68 of file krylov.f90.
real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::alpha |
Definition at line 64 of file pipecg_device.F90.
type(c_ptr) pipecg_device::pipecg_device_t::alpha_d = C_NULL_PTR |
Definition at line 75 of file pipecg_device.F90.
real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::beta |
Definition at line 65 of file pipecg_device.F90.
type(c_ptr) pipecg_device::pipecg_device_t::beta_d = C_NULL_PTR |
Definition at line 76 of file pipecg_device.F90.
type(c_ptr) pipecg_device::pipecg_device_t::gs_event = C_NULL_PTR |
Definition at line 78 of file pipecg_device.F90.
|
inherited |
Preconditioner.
Definition at line 66 of file krylov.f90.
|
inherited |
Internal preconditioner (Identity)
Definition at line 70 of file krylov.f90.
|
inherited |
Maximum number of iterations.
Definition at line 69 of file krylov.f90.
real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::mi |
Definition at line 62 of file pipecg_device.F90.
type(c_ptr) pipecg_device::pipecg_device_t::mi_d = C_NULL_PTR |
Definition at line 73 of file pipecg_device.F90.
real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::ni |
Definition at line 63 of file pipecg_device.F90.
type(c_ptr) pipecg_device::pipecg_device_t::ni_d = C_NULL_PTR |
Definition at line 74 of file pipecg_device.F90.
real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::p |
Definition at line 55 of file pipecg_device.F90.
type(c_ptr) pipecg_device::pipecg_device_t::p_d = C_NULL_PTR |
Definition at line 66 of file pipecg_device.F90.
real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::q |
Definition at line 56 of file pipecg_device.F90.
type(c_ptr) pipecg_device::pipecg_device_t::q_d = C_NULL_PTR |
Definition at line 67 of file pipecg_device.F90.
real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::r |
Definition at line 57 of file pipecg_device.F90.
type(c_ptr) pipecg_device::pipecg_device_t::r_d = C_NULL_PTR |
Definition at line 68 of file pipecg_device.F90.
|
inherited |
Relative tolerance.
Definition at line 67 of file krylov.f90.
real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::s |
Definition at line 58 of file pipecg_device.F90.
type(c_ptr) pipecg_device::pipecg_device_t::s_d = C_NULL_PTR |
Definition at line 69 of file pipecg_device.F90.
real(kind=rp), dimension(:,:), allocatable pipecg_device::pipecg_device_t::u |
Definition at line 59 of file pipecg_device.F90.
type(c_ptr), dimension(:), allocatable pipecg_device::pipecg_device_t::u_d |
Definition at line 77 of file pipecg_device.F90.
type(c_ptr) pipecg_device::pipecg_device_t::u_d_d = C_NULL_PTR |
Definition at line 70 of file pipecg_device.F90.
real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::w |
Definition at line 60 of file pipecg_device.F90.
type(c_ptr) pipecg_device::pipecg_device_t::w_d = C_NULL_PTR |
Definition at line 71 of file pipecg_device.F90.
real(kind=rp), dimension(:), allocatable pipecg_device::pipecg_device_t::z |
Definition at line 61 of file pipecg_device.F90.
type(c_ptr) pipecg_device::pipecg_device_t::z_d = C_NULL_PTR |
Definition at line 72 of file pipecg_device.F90.