GEOS
Public Types | Public Member Functions | List of all members
geos::InverseNormalOperator< LAI, SOLVER > Class Template Reference

Wraps a matrix A and represents A^{-1} * A^{-T} as a linear operator. More...

#include <InverseNormalOperator.hpp>

Inheritance diagram for geos::InverseNormalOperator< LAI, SOLVER >:
Inheritance graph
[legend]

Public Types

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

Public Member Functions

 InverseNormalOperator (Matrix const &mat, Solver const &solver)
 Constructor. More...
 
virtual ~InverseNormalOperator () override=default
 Destructor.
 
void apply (Vector const &src, Vector &dst) const override
 Apply operator to a vector. More...
 
globalIndex numGlobalRows () const override
 
globalIndex numGlobalCols () const override
 
localIndex numLocalRows () const override
 
localIndex numLocalCols () const override
 
MPI_Comm comm () const override
 
- 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...
 

Detailed Description

template<typename LAI, template< typename > class SOLVER>
class geos::InverseNormalOperator< LAI, SOLVER >

Wraps a matrix A and represents A^{-1} * A^{-T} as a linear operator.

Template Parameters
LAIthe linear algebra interface
SOLVERtype of solver used to apply inverse of the matrix

Definition at line 93 of file InverseNormalOperator.hpp.

Constructor & Destructor Documentation

◆ InverseNormalOperator()

template<typename LAI , template< typename > class SOLVER>
geos::InverseNormalOperator< LAI, SOLVER >::InverseNormalOperator ( Matrix const &  mat,
Solver const &  solver 
)
inlineexplicit

Constructor.

Parameters
matthe underlying matrix (must outlive this operator)
solverthe solver used to apply inverse of the matrix (must be already setup)

Definition at line 114 of file InverseNormalOperator.hpp.

Member Function Documentation

◆ apply()

template<typename LAI , template< typename > class SOLVER>
void geos::InverseNormalOperator< LAI, SOLVER >::apply ( Vector const &  src,
Vector dst 
) const
inlineoverride

Apply operator to a vector.

Parameters
srcinput vector (x)
dstoutput vector (b)
Warning
src and dst cannot alias the same vector (some implementations may allow this).

Definition at line 133 of file InverseNormalOperator.hpp.

◆ comm()

template<typename LAI , template< typename > class SOLVER>
MPI_Comm geos::InverseNormalOperator< LAI, SOLVER >::comm ( ) const
inlineoverridevirtual
Returns
the communicator

Implements geos::LinearOperator< LAI::ParallelVector >.

Definition at line 174 of file InverseNormalOperator.hpp.

◆ numGlobalCols()

template<typename LAI , template< typename > class SOLVER>
globalIndex geos::InverseNormalOperator< LAI, SOLVER >::numGlobalCols ( ) const
inlineoverridevirtual
Returns
the global number of columns

Implements geos::LinearOperator< LAI::ParallelVector >.

Definition at line 150 of file InverseNormalOperator.hpp.

◆ numGlobalRows()

template<typename LAI , template< typename > class SOLVER>
globalIndex geos::InverseNormalOperator< LAI, SOLVER >::numGlobalRows ( ) const
inlineoverridevirtual
Returns
the global number of rows

Implements geos::LinearOperator< LAI::ParallelVector >.

Definition at line 142 of file InverseNormalOperator.hpp.

◆ numLocalCols()

template<typename LAI , template< typename > class SOLVER>
localIndex geos::InverseNormalOperator< LAI, SOLVER >::numLocalCols ( ) const
inlineoverridevirtual
Returns
the local number of columns

Implements geos::LinearOperator< LAI::ParallelVector >.

Definition at line 166 of file InverseNormalOperator.hpp.

◆ numLocalRows()

template<typename LAI , template< typename > class SOLVER>
localIndex geos::InverseNormalOperator< LAI, SOLVER >::numLocalRows ( ) const
inlineoverridevirtual
Returns
the local number of rows

Implements geos::LinearOperator< LAI::ParallelVector >.

Definition at line 158 of file InverseNormalOperator.hpp.


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