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_petsc_asprecond Type Referenceabstract

Detailed Description

PETSc Additive-Schwarz preconditioner.

Inheritance diagram for oft_petsc_asprecond:
Inheritance graph
[legend]

Public Member Functions

procedure apply (self, u, g)
 Solve system.
 
procedure(solver_apply), deferred apply (self, u, g)
 Solve system.
 
procedure check_thread (self)
 Check thread safety.
 
procedure delete (self)
 Destory wrapper solver.
 
procedure(solver_delete), deferred delete (self)
 Clean-up internal storage.
 
procedure setup (self, pc, dist)
 Setup preconditioner.
 
procedure setup (self, pc, dist)
 Setup preconditioner.
 
procedure setup_from_xml (self, solver_node, level)
 Setup solver from XML node.
 
procedure setup_from_xml (self, solver_node, level)
 Setup solver from XML node.
 
procedure update (self, new_pattern)
 Update preconditioner with new settings/operators.
 
procedure update (self, new_pattern)
 Update solver with new settings/operators.
 
procedure view (self)
 Print solver information.
 

Public Attributes

class(oft_matrix), pointer a => NULL()
 Matrix to be inverted.
 
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.
 
logical full_residual = .TRUE.
 Output true residual on exit.
 
logical initialized = .FALSE.
 Solver has been constructed.
 
integer(i4itplot =10
 Output frequency for iterative solvers when pm=.TRUE.
 
integer(i4its = -1
 Maximum iteration count.
 
integer(i4n_local = 0
 Use local field partitioning?
 
integer(i4overlap = 1
 Size of domain overlap.
 
logical pm = .FALSE.
 Performance monitor override.
 
class(oft_solver), pointer pre => NULL()
 Preconditioner.
 
type(tpc) pre_obj
 PETSc preconditioner object.
 
real(r8rtol = 1.d-14
 Relative convergence tolerance \( |res|/|res_0| < rtol \).
 
type(tksp) solver
 PETSc solver object.
 
type(oft_petsc_factordefsub_factor
 PETSc factor definition.
 

Member Function/Subroutine Documentation

◆ apply() [1/2]

procedure apply ( class(oft_petsc_precond), intent(inout)  self,
class(oft_vector), intent(inout)  u,
class(oft_vector), intent(inout)  g 
)
inherited

Solve system.

Parameters
[in,out]selfSolver object
[in,out]uGuess (input), Solution (output)
[in,out]gRHS (input), Residual (output)

◆ apply() [2/2]

procedure(solver_apply), deferred apply ( class(oft_solver), intent(inout)  self,
class(oft_vector), intent(inout)  u,
class(oft_vector), intent(inout)  g 
)
pure virtualinherited

Solve system.

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

◆ check_thread()

procedure check_thread ( class(oft_solver), intent(inout)  self)
inherited

Check thread safety.

Parameters
[in,out]selfSolver object

◆ delete() [1/2]

procedure delete ( class(oft_petsc_precond), intent(inout)  self)
inherited

Destory wrapper solver.

Parameters
[in,out]selfSolver object

◆ delete() [2/2]

procedure(solver_delete), deferred delete ( class(oft_solver), intent(inout)  self)
pure virtualinherited

Clean-up internal storage.

Parameters
[in,out]selfSolver object

◆ setup() [1/2]

procedure setup ( class(oft_petsc_precond), intent(inout)  self,
type(tpc), intent(inout)  pc,
logical, intent(in)  dist 
)
inherited

Setup preconditioner.

Parameters
[in,out]selfSolver object
[in,out]pcPETSc PC object
[in]distFlag for local vs distributed solve?

◆ setup() [2/2]

procedure setup ( class(oft_petsc_asprecond), intent(inout)  self,
type(tpc), intent(inout)  pc,
logical, intent(in)  dist 
)

Setup preconditioner.

Parameters
[in,out]selfSolver object
[in,out]pcPETSc PC object
[in]distFlag for local vs distributed solve?

◆ setup_from_xml() [1/2]

procedure setup_from_xml ( class(oft_petsc_asprecond), intent(inout)  self,
type(xml_node), intent(in), pointer  solver_node,
integer(i4), intent(in), optional  level 
)

Setup solver from XML node.

Parameters
[in,out]selfSolver object
[in]solver_nodeXML element containing solver definition
[in]levelLevel in MG hierarchy (optional)

◆ setup_from_xml() [2/2]

procedure setup_from_xml ( class(oft_solver), intent(inout)  self,
type(xml_node), intent(in), pointer  solver_node,
integer(i4), intent(in), optional  level 
)
inherited

Setup solver from XML node.

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)

◆ update() [1/2]

procedure update ( class(oft_petsc_precond), intent(inout)  self,
logical, intent(in), optional  new_pattern 
)
inherited

Update preconditioner with new settings/operators.

Parameters
[in,out]selfSolver object
[in]new_patternUpdate matrix pattern (optional)

◆ update() [2/2]

procedure update ( class(oft_solver), intent(inout)  self,
logical, intent(in), optional  new_pattern 
)
inherited

Update solver with new 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)

◆ view()

procedure view ( class(oft_solver), intent(inout)  self)
inherited

Print solver information.

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

Member Data Documentation

◆ a

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

Matrix to be inverted.

◆ atol

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

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

◆ bc

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

Boundary condition.

◆ cits

integer(i4) cits = 0
inherited

Number of iteractions to convergence.

◆ full_residual

logical full_residual = .TRUE.
inherited

Output true residual on exit.

◆ 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.

◆ n_local

integer(i4) n_local = 0

Use local field partitioning?

◆ overlap

integer(i4) overlap = 1

Size of domain overlap.

◆ pm

logical pm = .FALSE.
inherited

Performance monitor override.

◆ pre

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

Preconditioner.

◆ pre_obj

type(tpc) pre_obj
inherited

PETSc preconditioner object.

◆ rtol

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

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

◆ solver

type(tksp) solver
inherited

PETSc solver object.

◆ sub_factor

type(oft_petsc_factordef) sub_factor

PETSc factor definition.


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