CG eigensolver class.
- Note
- Matrix system must be SPD, otherwise solver will fail.
|
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.
|
|
|
class(oft_matrix), pointer | a => NULL() |
| LHS matrix.
|
|
real(r8) | atol = 1.d-14 |
| Absolute convergence tolerance \( |res| < atol \).
|
|
class(oft_solver_bc), pointer | bc => NULL() |
| Boundary condition.
|
|
integer(i4) | cits = 0 |
| Number of iteractions to convergence.
|
|
logical | initialized = .FALSE. |
| Solver has been constructed.
|
|
integer(i4) | itplot =10 |
| Output frequency for iterative solvers when pm=.TRUE.
|
|
integer(i4) | its = -1 |
| Maximum iteration count.
|
|
class(oft_matrix), pointer | m => NULL() |
| RHS matrix.
|
|
integer(i4) | ninner = -1 |
|
integer(i4) | nrestarts = 2 |
|
class(oft_solver_bc), pointer | orthog => NULL() |
| Orthogonalization.
|
|
logical | pm = .FALSE. |
| Performance monitor override.
|
|
class(oft_solver), pointer | pre => NULL() |
| Preconditioner.
|
|
real(r8) | rtol = 1.d-14 |
| Relative convergence tolerance \( |res|/|res_0| < rtol \).
|
|
◆ apply() [1/2]
Solve system.
This solver uses a Non-Linear Conjugate-Gradient method to minimize the Rayleigh Quotient ( \( R = \frac{x*A*x}{x*M*x} \)).
- Parameters
-
[in,out] | self | Solver object |
[in,out] | u | Guess (input), Solution (output) |
[in,out] | alam | Eigenvalue |
◆ 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] | self | Solver object |
[in,out] | u | Guess/Solution field |
[in,out] | alam | Eigenvalue |
◆ delete() [1/2]
Clean-up internal storage.
- Parameters
-
[in,out] | self | Solver object |
◆ delete() [2/2]
procedure(eigsolver_delete), deferred delete |
( |
class(oft_eigsolver), intent(inout) |
self | ) |
|
|
pure virtualinherited |
Clean-up internal storage.
- Parameters
-
[in,out] | self | Solver object |
◆ atol
Absolute convergence tolerance \( |res| < atol \).
◆ bc
◆ cits
Number of iteractions to convergence.
◆ initialized
logical initialized = .FALSE. |
|
inherited |
Solver has been constructed.
◆ itplot
Output frequency for iterative solvers when pm=.TRUE.
◆ its
◆ ninner
◆ nrestarts
integer(i4) nrestarts = 2 |
◆ orthog
◆ pm
Performance monitor override.
◆ pre
◆ rtol
Relative convergence tolerance \( |res|/|res_0| < rtol \).
The documentation for this type was generated from the following file: