MFEM v4.7.0 Finite element discretization library
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.

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.

## ◆ 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.

## ◆ 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: