The Open FUSION Toolkit 1.0.0-8905cc5
Modeling tools for plasma and fusion research and engineering
|
Abstract solver interfaces and select native implementations.
Abstract interface definitions
Native solver implementations
Preconditioner implementations
Data Types | |
type | oft_bjprecond |
Block-Jacobi preconditioner. More... | |
type | oft_diag_cscale |
Diagonal preconditioner. More... | |
type | oft_diag_scale |
Diagonal preconditioner. More... | |
type | oft_identity_inv |
Identity matrix inversion. More... | |
type | oft_jblock_precond |
Symmetric Jacobi smoother. More... | |
type | oft_ml_precond |
Multi-level preconditioner level. More... | |
type | oft_ml_trans |
Multi-level transfer level. More... | |
type | oft_native_cg_eigsolver |
CG eigensolver class. More... | |
type | oft_native_cg_solver |
CG solver class. More... | |
type | oft_native_gmres_csolver |
GMRES solver class (complex) More... | |
type | oft_native_gmres_solver |
GMRES solver class. More... | |
type | oft_nksolver |
Native Newton solver. More... | |
interface | oft_update_jacobian |
Needs docs. More... | |
Functions/Subroutines | |
recursive subroutine | bjprecond_apply (self, u, g) |
Precondition a linear system using a Block-Jacobi method. | |
subroutine | bjprecond_delete (self) |
Destroy Block-Jacobi preconditioner and deallocate all internal storage. | |
subroutine | bjprecond_setup_xml (self, solver_node, level) |
Setup block-Jacobi smoother from XML definition. | |
recursive subroutine | bjprecond_update (self, new_pattern) |
Update solver after changing settings/operators. | |
subroutine | cdiag_scale_apply (self, u, g) |
Solve the linear system for a diagonal matrix (complex) | |
subroutine | cdiag_scale_delete (self) |
Destroy diagonal preconditioner and deallocate all internal storage. | |
subroutine | cg_delete (self) |
Destroy diagonal preconditioner and deallocate all internal storage. | |
subroutine | cg_eig_delete (self) |
Destroy diagonal preconditioner and deallocate all internal storage. | |
subroutine | cg_eigsolver_apply (self, u, alam) |
Solve a general eigenvalue system using the Conjugate-Gradient method. | |
subroutine | cg_setup_xml (self, solver_node, level) |
Setup CG solver from XML definition. | |
recursive subroutine | cg_solver_apply (self, u, g) |
Solve a linear system using the Conjugate-Gradient method. | |
subroutine | cgmres_delete (self) |
Destroy diagonal preconditioner and deallocate all internal storage. | |
subroutine | cgmres_setup_xml (self, solver_node, level) |
Setup GMRES solver from XML definition. | |
recursive subroutine | cgmres_solver_apply (self, u, g) |
Solve a linear system using the flexible GMRES method (complex) | |
subroutine | diag_scale_apply (self, u, g) |
Solve the linear system for a diagonal matrix. | |
logical function, public | diag_scale_cast (self, source) |
Cast a solver object to a oft_diag_scale. | |
subroutine | diag_scale_delete (self) |
Destroy diagonal preconditioner and deallocate all internal storage. | |
subroutine | gmres_delete (self) |
Destroy diagonal preconditioner and deallocate all internal storage. | |
subroutine | gmres_setup_xml (self, solver_node, level) |
Setup GMRES solver from XML definition. | |
recursive subroutine | gmres_solver_apply (self, u, g) |
Solve a linear system using the flexible GMRES method. | |
subroutine | identity_inv_apply (self, u, g) |
Solve the trivial linear system for the identity matrix. | |
subroutine | identity_inv_delete (self) |
Destroy diagonal preconditioner and deallocate all internal storage. | |
subroutine | jblock_precond_apply (self, u, g) |
Apply 1-step of a symmetric Jacobi smoother with native CRS matrices. | |
logical function, public | jblock_precond_cast (self, source) |
Cast a solver object to a jblock_precond_cast. | |
subroutine | jblock_precond_delete (self) |
Destroy symmetric Jacobi preconditioner and deallocate all internal storage. | |
subroutine | jblock_setup_xml (self, solver_node, level) |
Setup symmetric Jacobi smoother from XML definition. | |
recursive subroutine | ml_precond_apply (self, u, g) |
Apply 1-step of a multi-level preconditioner. | |
logical function, public | ml_precond_cast (self, source) |
Cast a solver object to a oft_ml_precond. | |
recursive subroutine | ml_precond_delete (self) |
Destroy Multi-Level preconditioner and deallocate all internal storage. | |
recursive subroutine | ml_precond_update (self, new_pattern) |
Update solver after changing settings/operators. | |
recursive subroutine | ml_precond_view (self) |
Print solver configuration. | |
recursive subroutine | ml_trans_apply (self, u, g) |
Transfer solution between distributed and shared levels as part of a ML preconditioner. | |
logical function, public | ml_trans_cast (self, source) |
Cast a solver object to a oft_ml_trans. | |
subroutine | ml_trans_delete (self) |
Destroy Multi-Level preconditioner and deallocate all internal storage. | |
logical function | native_cg_eigsolver_cast (self, source) |
Cast an eigensolver object to a oft_native_cg_eigsolver. | |
logical function, public | native_cg_solver_cast (self, source) |
Cast a solver object to a oft_native_cg_solver. | |
logical function, public | native_gmres_solver_cast (self, source) |
Cast a solver object to a oft_native_gmres_solver. | |
subroutine | nksolver_apply (self, u, g) |
Solve a nonlinear system Newton's method. | |
subroutine | nksolver_delete (self) |
Destroy Newton solver and deallocate all internal storage. | |
|
private |
Precondition a linear system using a Block-Jacobi method.
[in,out] | self | Solver object |
[in,out] | u | Guess (input), Solution (output) |
[in,out] | g | RHS (input), Residual (output) |
|
private |
Destroy Block-Jacobi preconditioner and deallocate all internal storage.
[in,out] | self | Solver object |
|
private |
Setup block-Jacobi smoother from XML definition.
[in,out] | self | Solver object |
[in] | solver_node | XML element containing solver definition |
[in] | level | Level in MG hierarchy (optional) |
|
private |
Update solver after changing settings/operators.
[in,out] | self | Solver object |
[in] | new_pattern | Update matrix non-zero pattern (optional) |
|
private |
Solve the linear system for a diagonal matrix (complex)
[in,out] | self | Solver object |
[in,out] | u | Guess (input), Solution (output) |
[in,out] | g | RHS (input), Residual (output) |
|
private |
Destroy diagonal preconditioner and deallocate all internal storage.
[in,out] | self | Solver object |
|
private |
Destroy diagonal preconditioner and deallocate all internal storage.
[in,out] | self | Solver object |
|
private |
Destroy diagonal preconditioner and deallocate all internal storage.
[in,out] | self | Solver object |
|
private |
Solve a general eigenvalue system using the Conjugate-Gradient method.
This solver uses a Non-Linear Conjugate-Gradient method to minimize the Rayleigh Quotient ( \( R = \frac{x*A*x}{x*M*x} \)).
[in,out] | self | Solver object |
[in,out] | u | Guess (input), Solution (output) |
[in,out] | alam | Eigenvalue |
|
private |
Setup CG solver from XML definition.
[in,out] | self | Solver object |
[in] | solver_node | XML element containing solver definition |
[in] | level | Level in MG hierarchy (optional) |
|
private |
Solve a linear system using the Conjugate-Gradient method.
[in,out] | self | Solver object |
[in,out] | u | Guess (input), Solution (output) |
[in,out] | g | RHS (input), Residual (output) |
|
private |
Destroy diagonal preconditioner and deallocate all internal storage.
[in,out] | self | Solver object |
|
private |
Setup GMRES solver from XML definition.
[in,out] | self | Solver object |
[in] | solver_node | XML element containing solver definition |
[in] | level | Level in MG hierarchy (optional) |
|
private |
Solve a linear system using the flexible GMRES method (complex)
[in,out] | self | Solver object |
[in,out] | u | Guess (input), Solution (output) |
[in,out] | g | RHS (input), Residual (output) |
|
private |
Solve the linear system for a diagonal matrix.
[in,out] | self | Solver object |
[in,out] | u | Guess (input), Solution (output) |
[in,out] | g | RHS (input), Residual (output) |
logical function, public diag_scale_cast | ( | type(oft_diag_scale), intent(out), pointer | self, |
class(oft_solver), intent(in), target | source | ||
) |
Cast a solver object to a oft_diag_scale.
The source matrix must be oft_diag_scale or a child class, otherwise pointer will be returned as null
and success == .FALSE.
[out] | self | Reference to source object with desired class |
[in] | source | Source solver to cast |
|
private |
Destroy diagonal preconditioner and deallocate all internal storage.
[in,out] | self | Solver object |
|
private |
Destroy diagonal preconditioner and deallocate all internal storage.
[in,out] | self | Solver object |
|
private |
Setup GMRES solver from XML definition.
[in,out] | self | Solver object |
[in] | solver_node | XML element containing solver definition |
[in] | level | Level in MG hierarchy (optional) |
|
private |
Solve a linear system using the flexible GMRES method.
[in,out] | self | Solver object |
[in,out] | u | Guess (input), Solution (output) |
[in,out] | g | RHS (input), Residual (output) |
|
private |
Solve the trivial linear system for the identity matrix.
[in,out] | self | Solver object |
[in,out] | u | Guess (input), Solution (output) |
[in,out] | g | RHS (input), Residual (output) |
|
private |
Destroy diagonal preconditioner and deallocate all internal storage.
[in,out] | self | Solver object |
|
private |
Apply 1-step of a symmetric Jacobi smoother with native CRS matrices.
[in,out] | self | Solver object |
[in,out] | u | Guess (input), Solution (output) |
[in,out] | g | RHS (input), Residual (output) |
logical function, public jblock_precond_cast | ( | type(oft_jblock_precond), intent(out), pointer | self, |
class(oft_solver), intent(in), target | source | ||
) |
Cast a solver object to a jblock_precond_cast.
The source matrix must be jblock_precond_cast or a child class, otherwise pointer will be returned as null
and success == .FALSE.
[out] | self | Reference to source object with desired class |
[in] | source | Source solver to cast |
|
private |
Destroy symmetric Jacobi preconditioner and deallocate all internal storage.
[in,out] | self | Solver object |
|
private |
Setup symmetric Jacobi smoother from XML definition.
[in,out] | self | Solver object |
[in] | solver_node | XML element containing solver definition |
[in] | level | Level in MG hierarchy (optional) |
|
private |
Apply 1-step of a multi-level preconditioner.
[in,out] | self | Solver object |
[in,out] | u | Guess (input), Solution (output) |
[in,out] | g | RHS (input), Residual (output) |
logical function, public ml_precond_cast | ( | class(oft_ml_precond), intent(out), pointer | self, |
class(oft_solver), intent(in), target | source | ||
) |
Cast a solver object to a oft_ml_precond.
The source matrix must be oft_ml_precond or a child class, otherwise pointer will be returned as null
and success == .FALSE.
[out] | self | Reference to source object with desired class |
[in] | source | Source solver to cast |
|
private |
Destroy Multi-Level preconditioner and deallocate all internal storage.
[in,out] | self | Solver object |
|
private |
Update solver after changing settings/operators.
[in,out] | self | Solver object |
|
private |
Print solver configuration.
[in,out] | self | Solver object |
|
private |
Transfer solution between distributed and shared levels as part of a ML preconditioner.
[in,out] | self | Solver object |
[in,out] | u | Guess (input), Solution (output) |
[in,out] | g | RHS (input), Residual (output) |
logical function, public ml_trans_cast | ( | class(oft_ml_trans), intent(out), pointer | self, |
class(oft_solver), intent(in), target | source | ||
) |
Cast a solver object to a oft_ml_trans.
The source matrix must be oft_ml_trans or a child class, otherwise pointer will be returned as null
and success == .FALSE.
[out] | self | Reference to source object with desired class |
[in] | source | Source solver to cast |
|
private |
Destroy Multi-Level preconditioner and deallocate all internal storage.
[in,out] | self | Solver object |
|
private |
Cast an eigensolver object to a oft_native_cg_eigsolver.
The source matrix must be oft_native_cg_eigsolver or a child class, otherwise pointer will be returned as null
and success == .FALSE.
[out] | self | Reference to source object with desired class |
[in] | source | Source solver to cast |
logical function, public native_cg_solver_cast | ( | type(oft_native_cg_solver), intent(out), pointer | self, |
class(oft_solver), intent(in), target | source | ||
) |
Cast a solver object to a oft_native_cg_solver.
The source matrix must be oft_native_cg_solver or a child class, otherwise pointer will be returned as null
and success == .FALSE.
[out] | self | Reference to source object with desired class |
[in] | source | Source solver to cast |
logical function, public native_gmres_solver_cast | ( | type(oft_native_gmres_solver), intent(out), pointer | self, |
class(oft_solver), intent(in), target | source | ||
) |
Cast a solver object to a oft_native_gmres_solver.
The source matrix must be oft_native_gmres_solver or a child class, otherwise pointer will be returned as null
and success == .FALSE.
[out] | self | Reference to source object with desired class |
[in] | source | Source solver to cast |
|
private |
Solve a nonlinear system Newton's method.
[in,out] | self | Solver object |
[in,out] | u | Guess (input), Solution (output) |
[in,out] | g | RHS (input), Residual (output) |
|
private |
Destroy Newton solver and deallocate all internal storage.
[in,out] | self | Solver object |