Neko 0.9.99
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
krylov::ksp_t Type Referenceabstract

Base abstract type for a canonical Krylov method, solving \( Ax = f \). More...

Inheritance diagram for krylov::ksp_t:

Public Member Functions

procedure, pass(thisksp_init (this, max_iter, rel_tol, abs_tol, m, monitor)
 Base type constructor.
 
procedure, pass(thisksp_free (this)
 Base type destructor.
 
procedure, pass(thisset_pc (this, m)
 Set preconditioner.
 
procedure(ksp_method), deferred, pass solve (this, ax, x, f, n, coef, blst, gs_h, niter)
 Solve the system.
 
procedure(ksp_method_coupled), deferred, pass solve_coupled (this, ax, x, y, z, fx, fy, fz, n, coef, blstx, blsty, blstz, gs_h, niter)
 Solve the system (coupled version).
 
procedure, pass(thismonitor_start (this, name)
 Monitor start.
 
procedure, pass(thismonitor_stop (this)
 Monitor stop.
 
procedure, pass(thismonitor_iter (this, iter, rnorm)
 Monitor iteration.
 
procedure, pass(thisis_converged (this, iter, residual)
 Check for convergence.
 
procedure(ksp_t_free), deferred, pass free (this)
 Destructor.
 

Public Attributes

class(pc_t), pointer m => null()
 Preconditioner.
 
real(kind=rp) rel_tol
 Relative tolerance.
 
real(kind=rp) abs_tol
 Absolute tolerance.
 
integer max_iter
 Maximum number of iterations.
 
class(pc_t), allocatable m_ident
 Internal preconditioner (Identity)
 
logical monitor
 Turn on/off monitoring.
 

Detailed Description

Definition at line 68 of file krylov.f90.

Member Function/Subroutine Documentation

◆ free()

procedure(ksp_t_free), deferred, pass krylov::ksp_t::free ( class(ksp_t), intent(inout this)
pure virtual

Definition at line 95 of file krylov.f90.

◆ is_converged()

procedure, pass(this) krylov::ksp_t::is_converged ( class(ksp_t), intent(in this,
integer, intent(in iter,
real(kind=rp), intent(in residual 
)

This function checks if the Krylov solver has converged. The solver is considered converged if the residual is less than the absolute tolerance.

Parameters
residualResidual
iterIteration number

Definition at line 93 of file krylov.f90.

◆ ksp_free()

procedure, pass(this) krylov::ksp_t::ksp_free ( class(ksp_t), intent(inout this)

Definition at line 79 of file krylov.f90.

◆ ksp_init()

procedure, pass(this) krylov::ksp_t::ksp_init ( class(ksp_t), intent(inout), target  this,
integer, intent(in max_iter,
real(kind=rp), intent(in), optional  rel_tol,
real(kind=rp), intent(in), optional  abs_tol,
class(pc_t), intent(in), optional, target  m,
logical, intent(in), optional  monitor 
)
Parameters
objectThe object to be allocated.
nSize of the vectors the solver operates on.
type_nameThe name of the solver type.
max_iterThe maximum number of iterations
abstolThe absolute tolerance, optional.
MThe preconditioner, optional.
monitorEnable/disable monitoring, optional. Destroy an iterative Krylov type_name Constructor for the base type.
max_iterMaximum number of iterations.
rel_tolRelative tolarance for converence.
rel_tolAbsolute tolarance for converence.
MThe preconditioner.

Definition at line 77 of file krylov.f90.

◆ monitor_iter()

procedure, pass(this) krylov::ksp_t::monitor_iter ( class(ksp_t), intent(in this,
integer, intent(in iter,
real(kind=rp), intent(in rnorm 
)

Definition at line 91 of file krylov.f90.

◆ monitor_start()

procedure, pass(this) krylov::ksp_t::monitor_start ( class(ksp_t), intent(in this,
character(len=*)  name 
)

Definition at line 87 of file krylov.f90.

◆ monitor_stop()

procedure, pass(this) krylov::ksp_t::monitor_stop ( class(ksp_t), intent(in this)

Definition at line 89 of file krylov.f90.

◆ set_pc()

procedure, pass(this) krylov::ksp_t::set_pc ( class(ksp_t), intent(inout this,
class(pc_t), intent(in), target  m 
)
Parameters
MThe preconditioner.

Definition at line 81 of file krylov.f90.

◆ solve()

procedure(ksp_method), deferred, pass krylov::ksp_t::solve ( class(ksp_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 
)
pure virtual

Definition at line 83 of file krylov.f90.

◆ solve_coupled()

procedure(ksp_method_coupled), deferred, pass krylov::ksp_t::solve_coupled ( class(ksp_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 
)
pure virtual

Definition at line 85 of file krylov.f90.

Member Data Documentation

◆ abs_tol

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

Definition at line 71 of file krylov.f90.

◆ m

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

Definition at line 69 of file krylov.f90.

◆ m_ident

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

Definition at line 73 of file krylov.f90.

◆ max_iter

integer krylov::ksp_t::max_iter

Definition at line 72 of file krylov.f90.

◆ monitor

logical krylov::ksp_t::monitor

Definition at line 74 of file krylov.f90.

◆ rel_tol

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

Definition at line 70 of file krylov.f90.


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