GEOSX
Public Types | Public Member Functions | List of all members
geos::SuperLUDist< LAI > Class Template Referencefinal

Wrapper for SuperLU_Dist parallel direct solver. More...

#include <SuperLUDist.hpp>

Inheritance diagram for geos::SuperLUDist< LAI >:
Inheritance graph
[legend]

Public Types

using Base = LinearSolverBase< LAI >
 Alias for base type.
 
using Vector = typename Base::Vector
 Alias for vector type.
 
using Matrix = typename Base::Matrix
 Alias for matrix type.
 
- Public Types inherited from geos::LinearSolverBase< LAI >
using Base = PreconditionerBase< LAI >
 Alias for base type.
 
using Vector = typename Base::Vector
 Alias for vector type.
 
using Matrix = typename Base::Matrix
 Alias for matrix type.
 
- Public Types inherited from geos::PreconditionerBase< LAI >
using Base = LinearOperator< typename LAI::ParallelVector >
 Alias for base type.
 
using Vector = typename Base::Vector
 Alias for vector type.
 
using Matrix = typename LAI::ParallelMatrix
 Alias for matrix type.
 
- Public Types inherited from geos::LinearOperator< LAI::ParallelVector >
using Vector = LAI::ParallelVector
 Alias for template parameter.
 

Public Member Functions

 SuperLUDist (LinearSolverParameters params)
 Constructor with parameters. More...
 
virtual ~SuperLUDist () override
 Destructor.
 
virtual void setup (Matrix const &mat) override
 Compute the preconditioner from a matrix. More...
 
virtual void apply (Vector const &src, Vector &dst) const override
 Apply operator to a vector, dst = this(src). More...
 
virtual void clear () override
 Clean up the preconditioner setup.
 
virtual void solve (Vector const &rhs, Vector &sol) const override
 Solve the system with a particular rhs. More...
 
bool ready () const
 Chech if preconditioner is ready to use. More...
 
const Matrixmatrix () const
 Access the matrix the preconditioner was computed from. More...
 
- Public Member Functions inherited from geos::LinearSolverBase< LAI >
 LinearSolverBase (LinearSolverParameters params)
 Constructor. More...
 
const LinearSolverParametersparameters () const
 
const LinearSolverResultresult () const
 
- Public Member Functions inherited from geos::PreconditionerBase< LAI >
virtual void setup (Matrix const &mat)
 Compute the preconditioner from a matrix. More...
 
virtual globalIndex numGlobalRows () const override
 Get the number of global rows. More...
 
virtual globalIndex numGlobalCols () const override
 Get the number of global columns. More...
 
virtual localIndex numLocalRows () const override
 Get the number of local rows. More...
 
virtual localIndex numLocalCols () const override
 Get the number of local columns. More...
 
virtual MPI_Comm comm () const override
 Get the MPI communicator the matrix was created with. More...
 
bool ready () const
 Chech if preconditioner is ready to use. More...
 
const Matrixmatrix () const
 Access the matrix the preconditioner was computed from. More...
 
virtual bool hasPreconditionerMatrix () const
 Check whether the preconditioner is available in matrix (explicit) form. More...
 
virtual const MatrixpreconditionerMatrix () const
 Access the preconditioner in matrix form (whenever available). It must be overridden by the specific preconditioner. More...
 
- Public Member Functions inherited from geos::LinearOperator< LAI::ParallelVector >
 LinearOperator ()=default
 Constructor.
 
virtual ~LinearOperator ()=default
 Destructor.
 
virtual void apply (Vector const &src, Vector &dst) const=0
 Apply operator to a vector, dst = this(src). More...
 
virtual void residual (Vector const &x, Vector const &b, Vector &r) const
 Compute residual r = b - this(x). More...
 
virtual globalIndex numGlobalRows () const=0
 Get the number of global rows. More...
 
virtual globalIndex numGlobalCols () const=0
 Get the number of global columns. More...
 
virtual localIndex numLocalRows () const=0
 Get the number of local rows. More...
 
virtual localIndex numLocalCols () const=0
 Get the number of local columns. More...
 
virtual MPI_Comm comm () const=0
 Get the MPI communicator the matrix was created with. More...
 

Additional Inherited Members

- Protected Attributes inherited from geos::LinearSolverBase< LAI >
LinearSolverParameters m_params
 Parameters for the solver.
 
LinearSolverResult m_result
 Result of most recent solve (status, timings)
 

Detailed Description

template<typename LAI>
class geos::SuperLUDist< LAI >

Wrapper for SuperLU_Dist parallel direct solver.

Template Parameters
LAItype of linear algebra interface

Definition at line 41 of file SuperLUDist.hpp.

Constructor & Destructor Documentation

◆ SuperLUDist()

template<typename LAI >
geos::SuperLUDist< LAI >::SuperLUDist ( LinearSolverParameters  params)
explicit

Constructor with parameters.

Parameters
[in]paramsthe linear solver parameters

Member Function Documentation

◆ apply()

template<typename LAI >
virtual void geos::SuperLUDist< LAI >::apply ( Vector const &  src,
Vector dst 
) const
overridevirtual

Apply operator to a vector, dst = this(src).

Parameters
srcinput vector (x)
dstoutput vector (b)
Warning
src and dst cannot alias the same vector.

◆ matrix()

template<typename LAI >
const Matrix& geos::PreconditionerBase< LAI >::matrix
inline

Access the matrix the preconditioner was computed from.

Returns
reference to the matrix (user's repsonsibility to ensure it's still valid)

Definition at line 136 of file PreconditionerBase.hpp.

◆ ready()

template<typename LAI >
bool geos::PreconditionerBase< LAI >::ready
inline

Chech if preconditioner is ready to use.

Returns
true if compute() has been called but not clear().

Definition at line 127 of file PreconditionerBase.hpp.

◆ setup()

template<typename LAI >
virtual void geos::SuperLUDist< LAI >::setup ( Matrix const &  mat)
overridevirtual

Compute the preconditioner from a matrix.

Parameters
matthe matrix to precondition.

◆ solve()

template<typename LAI >
virtual void geos::SuperLUDist< LAI >::solve ( Vector const &  rhs,
Vector sol 
) const
overridevirtual

Solve the system with a particular rhs.

Parameters
[in]rhssystem right hand side
[out]solsystem solution

Implements geos::LinearSolverBase< LAI >.


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