The Open FUSION Toolkit 1.0.0-beta6
Modeling tools for plasma and fusion research and engineering
Loading...
Searching...
No Matches
oft_solver_base Module Reference

Detailed Description

Abstract solver interfaces and select native implementations.

Abstract interface definitions

  • Abstract solver class
  • Abstract eigensolver class
  • Abstract orthogonalization class
  • Field creation prototype
  • Boundary condition prototype

Native solver implementations

  • Newton iteration

Preconditioner implementations

  • Diagonal scaling
  • Symmetric Point-Jacobi (Richardson iteration with diagonal scaling)
  • Block-Jacobi
  • Multi-Grid
See also
oft_native_solvers, oft_petsc_solvers
Authors
Chris Hansen
Date
August 2011

Data Types

interface  csolver_apply
 Apply linear solver to compute \( A u = g\). More...
interface  csolver_delete
 Destroy linear solver and deallocate all internal storage. More...
interface  eigsolver_apply
 Apply eigensystem solver to compute eigenvalues/eigenvectors of the system \( A u_i = \lambda_i u_i \). More...
interface  eigsolver_delete
 Destroy eigensystem solver and deallocate all internal storage. More...
interface  oft_bc_delete
 Destroy boundary condition structure and deallocate all internal storage. More...
interface  oft_bc_proto
 Abstract boundary condition prototype. More...
interface  oft_cbc_delete
 Destroy boundary condition structure and deallocate all internal storage. More...
interface  oft_cbc_proto
 Abstract boundary condition prototype. More...
type  oft_csolver
 Base class for OFT solvers. More...
type  oft_csolver_bc
 Base class for OFT solver boundary condition. More...
type  oft_csolver_ptr
 Solver container. More...
type  oft_eigsolver
 Base class for OFT eigenvalue solvers. More...
type  oft_solver
 Base class for OFT solvers. More...
type  oft_solver_bc
 Base class for OFT solver boundary condition. More...
type  oft_solver_ptr
 Solver container. More...
interface  solver_apply
 Apply linear solver to compute \( A u = g\). More...
interface  solver_delete
 Destroy linear solver and deallocate all internal storage. More...

Functions/Subroutines

recursive logical function csolver_check_thread (self)
 Check thread safety.
subroutine, public csolver_setup (self)
 Update solver after changing settings/operators.
subroutine csolver_setup_xml (self, solver_node, level)
 Setup solver from XML definition.
recursive subroutine csolver_update (self, new_pattern)
 Update solver after changing settings/operators.
subroutine csolver_view (self)
 Print solver configuration.
subroutine, public eigsolver_setup (self)
 Update solver after changing settings/operators.
recursive logical function solver_check_thread (self)
 Check thread safety.
subroutine, public solver_setup (self)
 Update solver after changing settings/operators.
subroutine solver_setup_xml (self, solver_node, level)
 Setup solver from XML definition.
recursive subroutine solver_update (self, new_pattern)
 Update solver after changing settings/operators.
subroutine solver_view (self)
 Print solver configuration.

Function/Subroutine Documentation

◆ csolver_check_thread()

recursive logical function csolver_check_thread ( class(oft_csolver), intent(inout) self)
private

Check thread safety.

Parameters
[in,out]selfSolver object

◆ csolver_setup()

subroutine, public csolver_setup ( class(oft_csolver), intent(inout) self)

Update solver after changing settings/operators.

Parameters
[in,out]selfSolver object

◆ csolver_setup_xml()

subroutine csolver_setup_xml ( class(oft_csolver), intent(inout) self,
type(xml_node), intent(in), pointer solver_node,
integer(i4), intent(in), optional level )
private

Setup solver from XML definition.

Note
This subroutine is a dummy routine used to specify the interface of the member function and catch errors in uninitialized solvers
Parameters
[in,out]selfSolver object
[in]solver_nodeXML element containing solver definition
[in]levelLevel in MG hierarchy (optional)

◆ csolver_update()

recursive subroutine csolver_update ( class(oft_csolver), intent(inout) self,
logical, intent(in), optional new_pattern )
private

Update solver after changing settings/operators.

Note
This subroutine is a dummy routine used to specify the interface of the member function and catch errors in uninitialized solvers
Parameters
[in,out]selfSolver object
[in]new_patternUpdate matrix non-zero pattern? (optional)

◆ csolver_view()

subroutine csolver_view ( class(oft_csolver), intent(inout) self)
private

Print solver configuration.

Note
This subroutine is a dummy routine used to specify the interface of the member function and catch errors in uninitialized solvers
Parameters
[in,out]selfSolver object

◆ eigsolver_setup()

subroutine, public eigsolver_setup ( class(oft_eigsolver), intent(inout) self)

Update solver after changing settings/operators.

Parameters
[in,out]selfSolver object

◆ solver_check_thread()

recursive logical function solver_check_thread ( class(oft_solver), intent(inout) self)
private

Check thread safety.

Parameters
[in,out]selfSolver object

◆ solver_setup()

subroutine, public solver_setup ( class(oft_solver), intent(inout) self)

Update solver after changing settings/operators.

Parameters
[in,out]selfSolver object

◆ solver_setup_xml()

subroutine solver_setup_xml ( class(oft_solver), intent(inout) self,
type(xml_node), intent(in), pointer solver_node,
integer(i4), intent(in), optional level )
private

Setup solver from XML definition.

Note
This subroutine is a dummy routine used to specify the interface of the member function and catch errors in uninitialized solvers
Parameters
[in,out]selfSolver object
[in]solver_nodeXML element containing solver definition
[in]levelLevel in MG hierarchy (optional)

◆ solver_update()

recursive subroutine solver_update ( class(oft_solver), intent(inout) self,
logical, intent(in), optional new_pattern )
private

Update solver after changing settings/operators.

Note
This subroutine is a dummy routine used to specify the interface of the member function and catch errors in uninitialized solvers
Parameters
[in,out]selfSolver object
[in]new_patternUpdate matrix non-zero pattern? (optional)

◆ solver_view()

subroutine solver_view ( class(oft_solver), intent(inout) self)
private

Print solver configuration.

Note
This subroutine is a dummy routine used to specify the interface of the member function and catch errors in uninitialized solvers
Parameters
[in,out]selfSolver object