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

Abstract hyperbolic form integrator, (F(u, x), ∇v) and (F̂(u±, x, n)) More...

#include <hyperbolic.hpp>

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

Public Member Functions

 HyperbolicFormIntegrator (const RiemannSolver &rsolver, const int IntOrderOffset=0)
 Construct a new Hyperbolic Form Integrator object.
 
void ResetMaxCharSpeed ()
 Reset the Max Char Speed 0.
 
real_t GetMaxCharSpeed ()
 
const FluxFunctionGetFluxFunction ()
 
void AssembleElementVector (const FiniteElement &el, ElementTransformation &Tr, const Vector &elfun, Vector &elvect) override
 implement (F(u), grad v) with abstract F computed by ComputeFlux
 
void AssembleFaceVector (const FiniteElement &el1, const FiniteElement &el2, FaceElementTransformations &Tr, const Vector &elfun, Vector &elvect) override
 implement <-hat(F)(u,x) n, [[v]]> with abstract hat(F) computed by ComputeFluxDotN and numerical flux object
 
- Public Member Functions inherited from mfem::NonlinearFormIntegrator
virtual void SetIntRule (const IntegrationRule *ir)
 Prescribe a fixed IntegrationRule to use (when ir != NULL) or let the integrator choose (when ir == NULL).
 
void SetIntegrationMode (Mode m)
 
void SetNURBSPatchIntRule (NURBSMeshRules *pr)
 For patchwise integration, SetNURBSPatchIntRule must be called.
 
bool HasNURBSPatchIntRule () const
 
bool Patchwise () const
 
void SetIntegrationRule (const IntegrationRule &ir)
 Prescribe a fixed IntegrationRule to use.
 
void SetPAMemoryType (MemoryType mt)
 
const IntegrationRuleGetIntegrationRule () const
 Get the integration rule of the integrator (possibly NULL).
 
virtual void AssembleElementGrad (const FiniteElement &el, ElementTransformation &Tr, const Vector &elfun, DenseMatrix &elmat)
 Assemble the local gradient matrix.
 
virtual void AssembleFaceGrad (const FiniteElement &el1, const FiniteElement &el2, FaceElementTransformations &Tr, const Vector &elfun, DenseMatrix &elmat)
 Assemble the local action of the gradient of the NonlinearFormIntegrator resulting from a face integral term.
 
virtual real_t GetElementEnergy (const FiniteElement &el, ElementTransformation &Tr, const Vector &elfun)
 Compute the local energy.
 
virtual void AssemblePA (const FiniteElementSpace &fes)
 Method defining partial assembly.
 
virtual void AssemblePA (const FiniteElementSpace &trial_fes, const FiniteElementSpace &test_fes)
 
virtual void AssembleGradPA (const Vector &x, const FiniteElementSpace &fes)
 Prepare the integrator for partial assembly (PA) gradient evaluations on the given FE space fes at the state x.
 
virtual real_t GetLocalStateEnergyPA (const Vector &x) const
 Compute the local (to the MPI rank) energy with partial assembly.
 
virtual void AddMultPA (const Vector &x, Vector &y) const
 Method for partially assembled action.
 
virtual void AddMultGradPA (const Vector &x, Vector &y) const
 Method for partially assembled gradient action.
 
virtual void AssembleGradDiagonalPA (Vector &diag) const
 Method for computing the diagonal of the gradient with partial assembly.
 
virtual bool SupportsCeed () const
 Indicates whether this integrator can use a Ceed backend.
 
virtual void AssembleMF (const FiniteElementSpace &fes)
 Method defining fully unassembled operator.
 
virtual void AddMultMF (const Vector &x, Vector &y) const
 
ceed::OperatorGetCeedOp ()
 
virtual ~NonlinearFormIntegrator ()
 

Public Attributes

const int num_equations
 

Additional Inherited Members

- Public Types inherited from mfem::NonlinearFormIntegrator
enum  Mode { ELEMENTWISE = 0 , PATCHWISE = 1 , PATCHWISE_REDUCED = 2 }
 
- Protected Member Functions inherited from mfem::NonlinearFormIntegrator
 NonlinearFormIntegrator (const IntegrationRule *ir=NULL)
 
- Protected Attributes inherited from mfem::NonlinearFormIntegrator
const IntegrationRuleIntRule
 
Mode integrationMode = Mode::ELEMENTWISE
 
NURBSMeshRulespatchRules = nullptr
 
ceed::OperatorceedOp
 
MemoryType pa_mt = MemoryType::DEFAULT
 

Detailed Description

Abstract hyperbolic form integrator, (F(u, x), ∇v) and (F̂(u±, x, n))

Definition at line 161 of file hyperbolic.hpp.

Constructor & Destructor Documentation

◆ HyperbolicFormIntegrator()

mfem::HyperbolicFormIntegrator::HyperbolicFormIntegrator ( const RiemannSolver & rsolver,
const int IntOrderOffset = 0 )

Construct a new Hyperbolic Form Integrator object.

Parameters
[in]rsolvernumerical flux
[in]IntOrderOffsetintegration order offset

Definition at line 171 of file hyperbolic.cpp.

Member Function Documentation

◆ AssembleElementVector()

void mfem::HyperbolicFormIntegrator::AssembleElementVector ( const FiniteElement & el,
ElementTransformation & Tr,
const Vector & elfun,
Vector & elvect )
overridevirtual

implement (F(u), grad v) with abstract F computed by ComputeFlux

Parameters
[in]ellocal finite element
[in]Trelement transformation
[in]elfunlocal coefficient of basis
[out]elvectevaluated dual vector

Reimplemented from mfem::NonlinearFormIntegrator.

Definition at line 21 of file hyperbolic.cpp.

◆ AssembleFaceVector()

void mfem::HyperbolicFormIntegrator::AssembleFaceVector ( const FiniteElement & el1,
const FiniteElement & el2,
FaceElementTransformations & Tr,
const Vector & elfun,
Vector & elvect )
overridevirtual

implement <-hat(F)(u,x) n, [[v]]> with abstract hat(F) computed by ComputeFluxDotN and numerical flux object

Parameters
[in]el1finite element of the first element
[in]el2finite element of the second element
[in]Trface element transformations
[in]elfunlocal coefficient of basis from both elements
[out]elvectevaluated dual vector <-hat(F)(u,x) n, [[v]]>

Reimplemented from mfem::NonlinearFormIntegrator.

Definition at line 84 of file hyperbolic.cpp.

◆ GetFluxFunction()

const FluxFunction & mfem::HyperbolicFormIntegrator::GetFluxFunction ( )
inline

Definition at line 210 of file hyperbolic.hpp.

◆ GetMaxCharSpeed()

real_t mfem::HyperbolicFormIntegrator::GetMaxCharSpeed ( )
inline

Definition at line 205 of file hyperbolic.hpp.

◆ ResetMaxCharSpeed()

void mfem::HyperbolicFormIntegrator::ResetMaxCharSpeed ( )
inline

Reset the Max Char Speed 0.

Definition at line 200 of file hyperbolic.hpp.

Member Data Documentation

◆ num_equations

const int mfem::HyperbolicFormIntegrator::num_equations

Definition at line 185 of file hyperbolic.hpp.


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