MFEM v4.7.0
Finite element discretization library
Loading...
Searching...
No Matches
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} \).
 
void LagrangeSecondary (const Vector &in, Vector &out) const
 Maps Lagrange multipliers to secondary dofs, applies \( B_s^{-1} \).
 
void LagrangeSecondaryTranspose (const Vector &in, Vector &out) const
 Transpose of LagrangeSecondary()
 
void ExplicitAssembly (DenseMatrix &mat) const
 Return \( -B_s^{-1} B_p \) explicitly assembled in mat.
 

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

◆ Eliminator()

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

◆ Eliminate()

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.

◆ EliminateTranspose()

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.

◆ ExplicitAssembly()

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

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

Definition at line 79 of file constraints.cpp.

◆ LagrangeDofs()

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

Definition at line 126 of file constraints.hpp.

◆ LagrangeSecondary()

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.

◆ LagrangeSecondaryTranspose()

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

Transpose of LagrangeSecondary()

Definition at line 72 of file constraints.cpp.

◆ PrimaryDofs()

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

Definition at line 127 of file constraints.hpp.

◆ SecondaryDofs()

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: