MFEM  v4.3.0
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | List of all members
mfem::Eliminator Class Reference

Perform elimination of a single constraint. More...

#include <constraints.hpp>

Public Member Functions

 Eliminator (const SparseMatrix &B, const Array< int > &lagrange_dofs, const Array< int > &primary_tdofs, const Array< int > &secondary_tdofs)
 
const Array< int > & LagrangeDofs () const
 
const Array< int > & PrimaryDofs () const
 
const Array< int > & SecondaryDofs () const
 
void Eliminate (const Vector &in, Vector &out) const
 
void EliminateTranspose (const Vector &in, Vector &out) const
 Transpose of Eliminate(), applies \( -B_p^T B_s^{-T} \). More...
 
void LagrangeSecondary (const Vector &in, Vector &out) const
 Maps Lagrange multipliers to secondary dofs, applies \( B_s^{-1} \). More...
 
void LagrangeSecondaryTranspose (const Vector &in, Vector &out) const
 Transpose of LagrangeSecondary() More...
 
void ExplicitAssembly (DenseMatrix &mat) const
 Return \( -B_s^{-1} B_p \) explicitly assembled in mat. More...
 

Detailed Description

Perform elimination of a single constraint.

See EliminationProjection, EliminationCGSolver

This keeps track of primary / secondary tdofs and does small dense block solves to eliminate constraints from a global system.

\( B_s^{-1} \) maps the lagrange space into secondary dofs, while \( -B_s^{-1} B_p \) maps primary dofs to secondary dofs.

Definition at line 119 of file constraints.hpp.

Constructor & Destructor Documentation

mfem::Eliminator::Eliminator ( const SparseMatrix B,
const Array< int > &  lagrange_dofs,
const Array< int > &  primary_tdofs,
const Array< int > &  secondary_tdofs 
)

Definition at line 22 of file constraints.cpp.

Member Function Documentation

void mfem::Eliminator::Eliminate ( const Vector in,
Vector out 
) const

Given primary dofs in in, return secondary dofs in out This applies \( -B_s^{-1} B_p \).

Definition at line 51 of file constraints.cpp.

void mfem::Eliminator::EliminateTranspose ( const Vector in,
Vector out 
) const

Transpose of Eliminate(), applies \( -B_p^T B_s^{-T} \).

Definition at line 58 of file constraints.cpp.

void mfem::Eliminator::ExplicitAssembly ( DenseMatrix mat) const

Return \( -B_s^{-1} B_p \) explicitly assembled in mat.

Definition at line 78 of file constraints.cpp.

const Array<int>& mfem::Eliminator::LagrangeDofs ( ) const
inline

Definition at line 126 of file constraints.hpp.

void mfem::Eliminator::LagrangeSecondary ( const Vector in,
Vector out 
) const

Maps Lagrange multipliers to secondary dofs, applies \( B_s^{-1} \).

Definition at line 66 of file constraints.cpp.

void mfem::Eliminator::LagrangeSecondaryTranspose ( const Vector in,
Vector out 
) const

Transpose of LagrangeSecondary()

Definition at line 72 of file constraints.cpp.

const Array<int>& mfem::Eliminator::PrimaryDofs ( ) const
inline

Definition at line 127 of file constraints.hpp.

const Array<int>& mfem::Eliminator::SecondaryDofs ( ) const
inline

Definition at line 128 of file constraints.hpp.


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