MFEM v4.7.0
Finite element discretization library
Loading...
Searching...
No Matches
mfem::SBM2DirichletLFIntegrator Class Reference

#include <sbm_solver.hpp>

Inheritance diagram for mfem::SBM2DirichletLFIntegrator:
[legend]
Collaboration diagram for mfem::SBM2DirichletLFIntegrator:
[legend]

Public Member Functions

 SBM2DirichletLFIntegrator (const ParMesh *pmesh, ShiftedFunctionCoefficient &u, const real_t alpha_, VectorCoefficient &vD_, Array< int > &elem_marker_, bool include_cut_cell_=false, int nterms_=0, int ls_cut_marker_=ShiftedFaceMarker::SBElementType::CUT)
 
virtual void AssembleRHSElementVect (const FiniteElement &el, ElementTransformation &Tr, Vector &elvect)
 
virtual void AssembleRHSElementVect (const FiniteElement &el, FaceElementTransformations &Tr, Vector &elvect)
 
virtual void AssembleRHSElementVect (const FiniteElement &el1, const FiniteElement &el2, FaceElementTransformations &Tr, Vector &elvect)
 
- Public Member Functions inherited from mfem::LinearFormIntegrator
virtual bool SupportsDevice () const
 Method probing for assembly on device.
 
virtual void AssembleDevice (const FiniteElementSpace &fes, const Array< int > &markers, Vector &b)
 Method defining assembly on device.
 
virtual void SetIntRule (const IntegrationRule *ir)
 
const IntegrationRuleGetIntRule ()
 
virtual ~LinearFormIntegrator ()
 

Protected Attributes

ShiftedFunctionCoefficientuD
 
real_t alpha
 
VectorCoefficientvD
 
Array< int > * elem_marker
 
bool include_cut_cell
 
int nterms
 
int NEproc
 
int par_shared_face_count
 
int ls_cut_marker
 
Vector shape
 
Vector dshape_dd
 
Vector dshape_dn
 
Vector nor
 
Vector nh
 
Vector ni
 
DenseMatrix dshape
 
DenseMatrix adjJ
 
- Protected Attributes inherited from mfem::LinearFormIntegrator
const IntegrationRuleIntRule
 

Additional Inherited Members

- Protected Member Functions inherited from mfem::LinearFormIntegrator
 LinearFormIntegrator (const IntegrationRule *ir=NULL)
 

Detailed Description

LinearFormIntegrator for the high-order extension of shifted boundary method.

\[ (u, w) = -\langle u_D, \nabla w \cdot n \rangle +\langle \alpha h^{-1} u_D, w + \nabla w \cdot d + h.o.t \rangle \]

where \(h.o.t\) include higher-order derivatives ( \(\nabla^k u\)) due to Taylor expansion. Since this interior face integrator is applied to the surrogate boundary (see marking.hpp for notes on how the surrogate faces are determined and elements are marked), this integrator adds contribution to only the element that is adjacent to that face (Trans.Elem1 or Trans.Elem2) and is part of the surrogate domain. Note that \(u_D\) is evaluated at the true boundary using the distance function and ShiftedFunctionCoefficient, i.e. \(u_D(x_{true}) = u_D(x_{surrogate} + D)\), where \(x_{surrogate}\) is the location of the integration point on the surrogate boundary and \(D\) is the distance vector from the surrogate boundary to the true boundary.

Definition at line 152 of file sbm_solver.hpp.

Constructor & Destructor Documentation

◆ SBM2DirichletLFIntegrator()

mfem::SBM2DirichletLFIntegrator::SBM2DirichletLFIntegrator ( const ParMesh * pmesh,
ShiftedFunctionCoefficient & u,
const real_t alpha_,
VectorCoefficient & vD_,
Array< int > & elem_marker_,
bool include_cut_cell_ = false,
int nterms_ = 0,
int ls_cut_marker_ = ShiftedFaceMarker::SBElementType::CUT )
inline

Definition at line 173 of file sbm_solver.hpp.

Member Function Documentation

◆ AssembleRHSElementVect() [1/3]

void mfem::SBM2DirichletLFIntegrator::AssembleRHSElementVect ( const FiniteElement & el,
ElementTransformation & Tr,
Vector & elvect )
virtual

Given a particular Finite Element and a transformation (Tr) computes the element vector, elvect.

Implements mfem::LinearFormIntegrator.

Definition at line 338 of file sbm_solver.cpp.

◆ AssembleRHSElementVect() [2/3]

void mfem::SBM2DirichletLFIntegrator::AssembleRHSElementVect ( const FiniteElement & el,
FaceElementTransformations & Tr,
Vector & elvect )
virtual

Reimplemented from mfem::LinearFormIntegrator.

Definition at line 344 of file sbm_solver.cpp.

◆ AssembleRHSElementVect() [3/3]

void mfem::SBM2DirichletLFIntegrator::AssembleRHSElementVect ( const FiniteElement & el1,
const FiniteElement & el2,
FaceElementTransformations & Tr,
Vector & elvect )
virtual

Reimplemented from mfem::LinearFormIntegrator.

Definition at line 350 of file sbm_solver.cpp.

Member Data Documentation

◆ adjJ

DenseMatrix mfem::SBM2DirichletLFIntegrator::adjJ
protected

Definition at line 170 of file sbm_solver.hpp.

◆ alpha

real_t mfem::SBM2DirichletLFIntegrator::alpha
protected

Definition at line 156 of file sbm_solver.hpp.

◆ dshape

DenseMatrix mfem::SBM2DirichletLFIntegrator::dshape
protected

Definition at line 170 of file sbm_solver.hpp.

◆ dshape_dd

Vector mfem::SBM2DirichletLFIntegrator::dshape_dd
protected

Definition at line 169 of file sbm_solver.hpp.

◆ dshape_dn

Vector mfem::SBM2DirichletLFIntegrator::dshape_dn
protected

Definition at line 169 of file sbm_solver.hpp.

◆ elem_marker

Array<int>* mfem::SBM2DirichletLFIntegrator::elem_marker
protected

Definition at line 158 of file sbm_solver.hpp.

◆ include_cut_cell

bool mfem::SBM2DirichletLFIntegrator::include_cut_cell
protected

Definition at line 160 of file sbm_solver.hpp.

◆ ls_cut_marker

int mfem::SBM2DirichletLFIntegrator::ls_cut_marker
protected

Definition at line 165 of file sbm_solver.hpp.

◆ NEproc

int mfem::SBM2DirichletLFIntegrator::NEproc
protected

Definition at line 163 of file sbm_solver.hpp.

◆ nh

Vector mfem::SBM2DirichletLFIntegrator::nh
protected

Definition at line 169 of file sbm_solver.hpp.

◆ ni

Vector mfem::SBM2DirichletLFIntegrator::ni
protected

Definition at line 169 of file sbm_solver.hpp.

◆ nor

Vector mfem::SBM2DirichletLFIntegrator::nor
protected

Definition at line 169 of file sbm_solver.hpp.

◆ nterms

int mfem::SBM2DirichletLFIntegrator::nterms
protected

Definition at line 161 of file sbm_solver.hpp.

◆ par_shared_face_count

int mfem::SBM2DirichletLFIntegrator::par_shared_face_count
protected

Definition at line 164 of file sbm_solver.hpp.

◆ shape

Vector mfem::SBM2DirichletLFIntegrator::shape
protected

Definition at line 169 of file sbm_solver.hpp.

◆ uD

ShiftedFunctionCoefficient* mfem::SBM2DirichletLFIntegrator::uD
protected

Definition at line 155 of file sbm_solver.hpp.

◆ vD

VectorCoefficient* mfem::SBM2DirichletLFIntegrator::vD
protected

Definition at line 157 of file sbm_solver.hpp.


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