ThunderEgg  1.0.0
ThunderEgg::Schur::PatchSolverWrapper< D > Class Template Reference

Creates a Schur compliment matrix operator for an InterfaceDomain by using a PatchSolver. More...

#include <PatchSolverWrapper.h>

Inheritance diagram for ThunderEgg::Schur::PatchSolverWrapper< D >:
Collaboration diagram for ThunderEgg::Schur::PatchSolverWrapper< D >:

Public Member Functions

 PatchSolverWrapper (const InterfaceDomain< D > &iface_domain, const PatchSolver< D > &solver)
 Construct a new PatchSolverWrapper object. More...
 
PatchSolverWrapper< D > * clone () const override
 Get a clone of this PatchSolverWrapper. More...
 
void apply (const Vector< D - 1 > &x, Vector< D - 1 > &b) const override
 Apply Schur matrix. More...
 
void getSchurRHSFromDomainRHS (const Vector< D > &domain_b, Vector< D - 1 > &schur_b) const
 Get the RHS for the Schur system from a given RHS for the domain system. More...
 
- Public Member Functions inherited from ThunderEgg::Operator< D - 1 >
virtual ~Operator ()
 Destroy the Operator object.
 
virtual Operator< D > * clone () const=0
 Clone this operator. More...
 
virtual void apply (const Vector< D > &x, Vector< D > &b) const=0
 Virtual function that base classes have to implement. More...
 

Detailed Description

template<int D>
class ThunderEgg::Schur::PatchSolverWrapper< D >

Creates a Schur compliment matrix operator for an InterfaceDomain by using a PatchSolver.

Template Parameters
Dthe number of Cartesian dimensions

Constructor & Destructor Documentation

◆ PatchSolverWrapper()

template<int D>
ThunderEgg::Schur::PatchSolverWrapper< D >::PatchSolverWrapper ( const InterfaceDomain< D > &  iface_domain,
const PatchSolver< D > &  solver 
)
inline

Construct a new PatchSolverWrapper object.

Parameters
iface_domainthe InterfaceDomain for the Schur compliment system
solverthe PatchSolver to wrap

Member Function Documentation

◆ apply()

template<int D>
void ThunderEgg::Schur::PatchSolverWrapper< D >::apply ( const Vector< D - 1 > &  x,
Vector< D - 1 > &  b 
) const
inlineoverride

Apply Schur matrix.

Parameters
xthe input vector.
bthe output vector.

◆ clone()

template<int D>
PatchSolverWrapper<D>* ThunderEgg::Schur::PatchSolverWrapper< D >::clone ( ) const
inlineoverride

Get a clone of this PatchSolverWrapper.

Returns
PatchSolverWrapper<D>* a newly allocated copy of this PatchSolverWrapper

◆ getSchurRHSFromDomainRHS()

template<int D>
void ThunderEgg::Schur::PatchSolverWrapper< D >::getSchurRHSFromDomainRHS ( const Vector< D > &  domain_b,
Vector< D - 1 > &  schur_b 
) const
inline

Get the RHS for the Schur system from a given RHS for the domain system.

Parameters
domain_bthe domain rhs
schur_bthe Schur rhs

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