MFEM v4.8.0
Finite element discretization library
Loading...
Searching...
No Matches
mfem::DGElasticityDirichletLFIntegrator Class Reference

#include <lininteg.hpp>

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

Public Member Functions

 DGElasticityDirichletLFIntegrator (VectorCoefficient &uD_, Coefficient &lambda_, Coefficient &mu_, real_t alpha_, real_t kappa_)
 
void AssembleRHSElementVect (const FiniteElement &el, ElementTransformation &Tr, Vector &elvect) override
 
void AssembleRHSElementVect (const FiniteElement &el, FaceElementTransformations &Tr, Vector &elvect) override
 
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 ~LinearFormIntegrator ()
 
- Public Member Functions inherited from mfem::Integrator
 Integrator (const IntegrationRule *ir=NULL)
 Create a new Integrator, optionally providing a prescribed quadrature rule to use in assembly.
 
virtual void SetIntRule (const IntegrationRule *ir)
 Prescribe a fixed IntegrationRule to use, or set to null to let the integrator choose an appropriate rule.
 
void SetIntegrationRule (const IntegrationRule &ir)
 Prescribe a fixed IntegrationRule to use. Sets the NURBS patch integration rule to null.
 
void SetNURBSPatchIntRule (NURBSMeshRules *pr)
 Sets an integration rule for use on NURBS patches.
 
bool HasNURBSPatchIntRule () const
 Check if a NURBS patch integration rule has been set.
 
const IntegrationRuleGetIntRule () const
 Directly return the IntRule pointer (possibly null) without checking for NURBS patch rules or falling back on a default.
 
const IntegrationRuleGetIntegrationRule () const
 Equivalent to GetIntRule, but retained for backward compatibility with applications.
 

Protected Attributes

VectorCoefficientuD
 
Coefficientlambda
 
Coefficientmu
 
real_t alpha
 
real_t kappa
 
Vector shape
 
DenseMatrix dshape
 
DenseMatrix adjJ
 
DenseMatrix dshape_ps
 
Vector nor
 
Vector dshape_dn
 
Vector dshape_du
 
Vector u_dir
 
- Protected Attributes inherited from mfem::Integrator
const IntegrationRuleIntRule
 
NURBSMeshRulespatchRules = nullptr
 

Additional Inherited Members

- Protected Member Functions inherited from mfem::LinearFormIntegrator
 LinearFormIntegrator (const IntegrationRule *ir=NULL)
 
- Protected Member Functions inherited from mfem::Integrator
const IntegrationRuleGetIntegrationRule (const FiniteElement &trial_fe, const FiniteElement &test_fe, const ElementTransformation &trans) const
 Returns an integration rule based on the arguments and internal state of the Integrator object.
 
const IntegrationRuleGetIntegrationRule (const FiniteElement &el, const ElementTransformation &trans) const
 Returns an integration rule based on the arguments and internal state. (Version for identical trial_fe and test_fe)
 
virtual const IntegrationRuleGetDefaultIntegrationRule (const FiniteElement &trial_fe, const FiniteElement &test_fe, const ElementTransformation &trans) const
 Subclasses should override to choose a default integration rule.
 

Detailed Description

Boundary linear form integrator for imposing non-zero Dirichlet boundary conditions, in a DG elasticity formulation. Specifically, the linear form is given by

\[ \alpha \langle u_D, (\lambda \mathrm{div}(v) I + \mu (\nabla v + \nabla v^{\mathrm{T}})) \cdot n \rangle + + \kappa \langle h^{-1} (\lambda + 2 \mu) u_D, v \rangle, \]

where u_D is the given Dirichlet data. The parameters \(\alpha\), \(\kappa\), \(\lambda\) and \(\mu\), should match the parameters with the same names used in the bilinear form integrator, DGElasticityIntegrator.

Definition at line 594 of file lininteg.hpp.

Constructor & Destructor Documentation

◆ DGElasticityDirichletLFIntegrator()

mfem::DGElasticityDirichletLFIntegrator::DGElasticityDirichletLFIntegrator ( VectorCoefficient & uD_,
Coefficient & lambda_,
Coefficient & mu_,
real_t alpha_,
real_t kappa_ )
inline

Definition at line 613 of file lininteg.hpp.

Member Function Documentation

◆ AssembleRHSElementVect() [1/3]

void mfem::DGElasticityDirichletLFIntegrator::AssembleRHSElementVect ( const FiniteElement & el,
ElementTransformation & Tr,
Vector & elvect )
overridevirtual

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

Implements mfem::LinearFormIntegrator.

Definition at line 901 of file lininteg.cpp.

◆ AssembleRHSElementVect() [2/3]

void mfem::DGElasticityDirichletLFIntegrator::AssembleRHSElementVect ( const FiniteElement & el,
FaceElementTransformations & Tr,
Vector & elvect )
overridevirtual

Reimplemented from mfem::LinearFormIntegrator.

Definition at line 907 of file lininteg.cpp.

◆ AssembleRHSElementVect() [3/3]

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

Reimplemented from mfem::LinearFormIntegrator.

Definition at line 49 of file lininteg.cpp.

Member Data Documentation

◆ adjJ

DenseMatrix mfem::DGElasticityDirichletLFIntegrator::adjJ
protected

Definition at line 604 of file lininteg.hpp.

◆ alpha

real_t mfem::DGElasticityDirichletLFIntegrator::alpha
protected

Definition at line 599 of file lininteg.hpp.

◆ dshape

DenseMatrix mfem::DGElasticityDirichletLFIntegrator::dshape
protected

Definition at line 603 of file lininteg.hpp.

◆ dshape_dn

Vector mfem::DGElasticityDirichletLFIntegrator::dshape_dn
protected

Definition at line 607 of file lininteg.hpp.

◆ dshape_du

Vector mfem::DGElasticityDirichletLFIntegrator::dshape_du
protected

Definition at line 608 of file lininteg.hpp.

◆ dshape_ps

DenseMatrix mfem::DGElasticityDirichletLFIntegrator::dshape_ps
protected

Definition at line 605 of file lininteg.hpp.

◆ kappa

real_t mfem::DGElasticityDirichletLFIntegrator::kappa
protected

Definition at line 599 of file lininteg.hpp.

◆ lambda

Coefficient* mfem::DGElasticityDirichletLFIntegrator::lambda
protected

Definition at line 598 of file lininteg.hpp.

◆ mu

Coefficient * mfem::DGElasticityDirichletLFIntegrator::mu
protected

Definition at line 598 of file lininteg.hpp.

◆ nor

Vector mfem::DGElasticityDirichletLFIntegrator::nor
protected

Definition at line 606 of file lininteg.hpp.

◆ shape

Vector mfem::DGElasticityDirichletLFIntegrator::shape
protected

Definition at line 602 of file lininteg.hpp.

◆ u_dir

Vector mfem::DGElasticityDirichletLFIntegrator::u_dir
protected

Definition at line 609 of file lininteg.hpp.

◆ uD

VectorCoefficient& mfem::DGElasticityDirichletLFIntegrator::uD
protected

Definition at line 597 of file lininteg.hpp.


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