The Open FUSION Toolkit 1.0.0-8905cc5
Modeling tools for plasma and fusion research and engineering
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
oft_irlm_eigsolver Type Referenceabstract

Detailed Description

Implicity Restarted Lanczos Method.

Inheritance diagram for oft_irlm_eigsolver:
Inheritance graph
[legend]

Public Member Functions

procedure apply (self, u, alam)
 Solve system.
 
procedure(eigsolver_apply), deferred apply (self, u, alam)
 Solve Eigen-system.
 
procedure delete (self)
 Clean-up internal storage.
 
procedure(eigsolver_delete), deferred delete (self)
 Clean-up internal storage.
 
procedure max (self, u, alam)
 Solve system.
 

Public Attributes

class(oft_matrix), pointer a => NULL()
 LHS matrix.
 
real(r8atol = 1.d-14
 Absolute convergence tolerance \( |res| < atol \).
 
class(oft_solver_bc), pointer bc => NULL()
 Boundary condition.
 
integer(i4cits = 0
 Number of iteractions to convergence.
 
real(r8), dimension(:,:), pointer eig_val => NULL()
 Eigenvalues.
 
real(r8), dimension(:,:), pointer eig_vec => NULL()
 Eigenvectors.
 
integer(i4info = 0
 Solver status/return code.
 
logical initialized = .FALSE.
 Solver has been constructed.
 
integer(i4itplot =10
 Output frequency for iterative solvers when pm=.TRUE.
 
integer(i4its = -1
 Maximum iteration count.
 
class(oft_matrix), pointer m => NULL()
 RHS matrix.
 
class(oft_solver), pointer minv => NULL()
 RHS inversion operator.
 
integer(i4mode = 1
 Operational mode.
 
integer(i4ncv = 0
 Size of Ritz space (determined in call to apply)
 
integer(i4nev = 1
 Number of eigenvalues to compute.
 
class(oft_solver_bc), pointer orthog => NULL()
 Orthogonalization.
 
logical pm = .FALSE.
 Performance monitor override.
 
class(oft_solver), pointer pre => NULL()
 Preconditioner.
 
real(r8rtol = 1.d-14
 Relative convergence tolerance \( |res|/|res_0| < rtol \).
 
real(r8tol = 1.E-10_r8
 Solver tolerance.
 
character(len=2) which = 'LM'
 Spectrum search flag.
 

Member Function/Subroutine Documentation

◆ apply() [1/2]

procedure apply ( class(oft_irlm_eigsolver), intent(inout)  self,
class(oft_vector), intent(inout)  u,
real(r8), intent(inout)  alam 
)

Solve system.

Solver employs the ARPACK symmetric driver routine dsaupd. The location of the eigenvalue is set in the calling class.

Parameters
[in,out]uGuess field/Eigenvector
[in,out]alamEigenvalue

◆ apply() [2/2]

procedure(eigsolver_apply), deferred apply ( class(oft_eigsolver), intent(inout)  self,
class(oft_vector), intent(inout)  u,
real(r8), intent(inout)  alam 
)
pure virtualinherited

Solve Eigen-system.

Parameters
[in,out]selfSolver object
[in,out]uGuess/Solution field
[in,out]alamEigenvalue

◆ delete() [1/2]

procedure delete ( class(oft_irlm_eigsolver), intent(inout)  self)

Clean-up internal storage.

◆ delete() [2/2]

procedure(eigsolver_delete), deferred delete ( class(oft_eigsolver), intent(inout)  self)
pure virtualinherited

Clean-up internal storage.

Parameters
[in,out]selfSolver object

◆ max()

procedure max ( class(oft_irlm_eigsolver), intent(inout)  self,
class(oft_vector), intent(inout)  u,
real(r8), intent(inout)  alam 
)

Solve system.

Solver employs the ARPACK symmetric driver routine. Currently the guess field is only used to create work vectors and a random initialization is used for the solver.

Parameters
[in,out]uGuess field/Eigenvector
[in,out]alamEigenvalue

Member Data Documentation

◆ a

class(oft_matrix), pointer a => NULL()
inherited

LHS matrix.

◆ atol

real(r8) atol = 1.d-14
inherited

Absolute convergence tolerance \( |res| < atol \).

◆ bc

class(oft_solver_bc), pointer bc => NULL()

Boundary condition.

◆ cits

integer(i4) cits = 0
inherited

Number of iteractions to convergence.

◆ eig_val

real(r8), dimension(:,:), pointer eig_val => NULL()

Eigenvalues.

◆ eig_vec

real(r8), dimension(:,:), pointer eig_vec => NULL()

Eigenvectors.

◆ info

integer(i4) info = 0

Solver status/return code.

◆ initialized

logical initialized = .FALSE.
inherited

Solver has been constructed.

◆ itplot

integer(i4) itplot =10
inherited

Output frequency for iterative solvers when pm=.TRUE.

◆ its

integer(i4) its = -1
inherited

Maximum iteration count.

◆ m

class(oft_matrix), pointer m => NULL()
inherited

RHS matrix.

◆ minv

class(oft_solver), pointer minv => NULL()

RHS inversion operator.

◆ mode

integer(i4) mode = 1

Operational mode.

◆ ncv

integer(i4) ncv = 0

Size of Ritz space (determined in call to apply)

◆ nev

integer(i4) nev = 1

Number of eigenvalues to compute.

◆ orthog

class(oft_solver_bc), pointer orthog => NULL()

Orthogonalization.

◆ pm

logical pm = .FALSE.
inherited

Performance monitor override.

◆ pre

class(oft_solver), pointer pre => NULL()
inherited

Preconditioner.

◆ rtol

real(r8) rtol = 1.d-14
inherited

Relative convergence tolerance \( |res|/|res_0| < rtol \).

◆ tol

real(r8) tol = 1.E-10_r8

Solver tolerance.

◆ which

character(len=2) which = 'LM'

Spectrum search flag.


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