|
| | DGDiffusionBR2Integrator (class FiniteElementSpace &fes, real_t e=1.0) |
| |
| | DGDiffusionBR2Integrator (class FiniteElementSpace &fes, Coefficient &Q_, real_t e=1.0) |
| |
| MFEM_DEPRECATED | DGDiffusionBR2Integrator (class FiniteElementSpace *fes, real_t e=1.0) |
| |
| void | AssembleFaceMatrix (const FiniteElement &el1, const FiniteElement &el2, FaceElementTransformations &Trans, DenseMatrix &elmat) override |
| |
| virtual void | AssembleFaceMatrix (const FiniteElement &trial_fe1, const FiniteElement &test_fe1, const FiniteElement &trial_fe2, const FiniteElement &test_fe2, FaceElementTransformations &Trans, DenseMatrix &elmat) |
| |
| virtual void | AssembleFaceMatrix (const FiniteElement &trial_face_fe, const FiniteElement &test_fe1, const FiniteElement &test_fe2, FaceElementTransformations &Trans, DenseMatrix &elmat) |
| |
| void | AssemblePA (const FiniteElementSpace &fes) override |
| | Method defining partial assembly.
|
| |
| void | AssemblePA (const FiniteElementSpace &trial_fes, const FiniteElementSpace &test_fes) override |
| |
| virtual void | AssembleNURBSPA (const FiniteElementSpace &fes) |
| | Method defining partial assembly on NURBS patches.
|
| |
| virtual void | AssemblePABoundary (const FiniteElementSpace &fes) |
| |
| virtual void | AssemblePAInteriorFaces (const FiniteElementSpace &fes) |
| |
| virtual void | AssemblePABoundaryFaces (const FiniteElementSpace &fes) |
| |
| virtual void | AssembleDiagonalPA (Vector &diag) |
| | Assemble diagonal and add it to Vector diag.
|
| |
| virtual void | AssembleDiagonalPA_ADAt (const Vector &D, Vector &diag) |
| | Assemble diagonal of \(A D A^T\) ( \(A\) is this integrator) and add it to diag.
|
| |
| void | AddMultPA (const Vector &x, Vector &y) const override |
| | Method for partially assembled action.
|
| |
| virtual void | AddMultNURBSPA (const Vector &x, Vector &y) const |
| | Method for partially assembled action on NURBS patches.
|
| |
| virtual void | AddMultTransposePA (const Vector &x, Vector &y) const |
| | Method for partially assembled transposed action.
|
| |
| virtual void | AssembleEA (const FiniteElementSpace &fes, Vector &emat, const bool add=true) |
| | Method defining element assembly.
|
| |
| void | AssembleMF (const FiniteElementSpace &fes) override |
| | Method defining matrix-free assembly.
|
| |
| void | AddMultMF (const Vector &x, Vector &y) const override |
| |
| virtual void | AddMultTransposeMF (const Vector &x, Vector &y) const |
| |
| virtual void | AssembleDiagonalMF (Vector &diag) |
| | Assemble diagonal and add it to Vector diag.
|
| |
| virtual void | AssembleEABoundary (const FiniteElementSpace &fes, Vector &ea_data_bdr, const bool add=true) |
| |
| virtual void | AssembleEAInteriorFaces (const FiniteElementSpace &fes, Vector &ea_data_int, Vector &ea_data_ext, const bool add=true) |
| |
| virtual void | AssembleEAInteriorFaces (const FiniteElementSpace &trial_fes, const FiniteElementSpace &test_fes, Vector &emat, const bool add=true) |
| | Method defining element assembly for mixed trace integrators.
|
| |
| virtual void | AssembleEABoundaryFaces (const FiniteElementSpace &fes, Vector &ea_data_bdr, const bool add=true) |
| |
| virtual void | AssembleElementMatrix (const FiniteElement &el, ElementTransformation &Trans, DenseMatrix &elmat) |
| | Given a particular Finite Element computes the element matrix elmat.
|
| |
| virtual void | AssembleElementMatrix2 (const FiniteElement &trial_fe, const FiniteElement &test_fe, ElementTransformation &Trans, DenseMatrix &elmat) |
| |
| virtual void | AssemblePatchMatrix (const int patch, const FiniteElementSpace &fes, SparseMatrix *&smat) |
| |
| virtual void | AssembleTraceFaceMatrix (int elem, const FiniteElement &trial_face_fe, const FiniteElement &test_fe, FaceElementTransformations &Trans, DenseMatrix &elmat) |
| |
| void | AssembleElementVector (const FiniteElement &el, ElementTransformation &Tr, const Vector &elfun, Vector &elvect) override |
| | Perform the local action of the BilinearFormIntegrator. Note that the default implementation in the base class is general but not efficient.
|
| |
| void | AssembleFaceVector (const FiniteElement &el1, const FiniteElement &el2, FaceElementTransformations &Tr, const Vector &elfun, Vector &elvect) override |
| | Perform the local action of the BilinearFormIntegrator resulting from a face integral term. Note that the default implementation in the base class is general but not efficient.
|
| |
| void | AssembleElementGrad (const FiniteElement &el, ElementTransformation &Tr, const Vector &elfun, DenseMatrix &elmat) override |
| | Assemble the local gradient matrix.
|
| |
| void | AssembleFaceGrad (const FiniteElement &el1, const FiniteElement &el2, FaceElementTransformations &Tr, const Vector &elfun, DenseMatrix &elmat) override |
| | Assemble the local action of the gradient of the NonlinearFormIntegrator resulting from a face integral term.
|
| |
| virtual void | ComputeElementFlux (const FiniteElement &el, ElementTransformation &Trans, Vector &u, const FiniteElement &fluxelem, Vector &flux, bool with_coef=true, const IntegrationRule *ir=NULL) |
| | Virtual method required for Zienkiewicz-Zhu type error estimators.
|
| |
| virtual real_t | ComputeFluxEnergy (const FiniteElement &fluxelem, ElementTransformation &Trans, Vector &flux, Vector *d_energy=NULL) |
| | Virtual method required for Zienkiewicz-Zhu type error estimators.
|
| |
| virtual bool | RequiresFaceNormalDerivatives () const |
| | For bilinear forms on element faces, specifies if the normal derivatives are needed on the faces or just the face restriction.
|
| |
| virtual void | AddMultPAFaceNormalDerivatives (const Vector &x, const Vector &dxdn, Vector &y, Vector &dydn) const |
| | Method for partially assembled action.
|
| |
| virtual | ~BilinearFormIntegrator () |
| |
| void | SetIntegrationMode (Mode m) |
| |
| bool | Patchwise () const |
| |
| void | SetPAMemoryType (MemoryType mt) |
| |
| virtual real_t | GetElementEnergy (const FiniteElement &el, ElementTransformation &Tr, const Vector &elfun) |
| | Compute the local energy.
|
| |
| 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 | 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.
|
| |
| ceed::Operator & | GetCeedOp () |
| |
| virtual | ~NonlinearFormIntegrator () |
| |
| | 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 IntegrationRule * | GetIntRule () const |
| | Directly return the IntRule pointer (possibly null) without checking for NURBS patch rules or falling back on a default.
|
| |
| const IntegrationRule * | GetIntegrationRule () const |
| | Equivalent to GetIntRule, but retained for backward compatibility with applications.
|
| |
Integrator for the "BR2" diffusion stabilization term
\[
\sum_e \eta (r_e([u]), r_e([v]))
\]
where \(r_e\) is the lifting operator defined on each edge \(e\) (potentially weighted by a coefficient \(Q\)). The parameter eta can be chosen to be one to obtain a stable discretization. The constructor for this integrator requires the finite element space because the lifting operator depends on the element-wise inverse mass matrix.
BR2 stands for the second method of Bassi and Rebay:
- F. Bassi and S. Rebay. A high order discontinuous Galerkin method for compressible turbulent flows. In B. Cockburn, G. E. Karniadakis, and C.-W. Shu, editors, Discontinuous Galerkin Methods, pages 77-88. Springer Berlin Heidelberg, 2000.
- D. N. Arnold, F. Brezzi, B. Cockburn, and L. D. Marini. Unified analysis of discontinuous Galerkin methods for elliptic problems. SIAM Journal on Numerical Analysis, 39(5):1749-1779, 2002.
Definition at line 3468 of file bilininteg.hpp.