InterfaceIntegral.h file
Interface integral classes for interior element faces.
This file defines the InterfaceIntegral classes which represent integrals over interior mesh faces (interfaces between elements) in discontinuous Galerkin formulations. Interface integrals specifically exclude boundary faces, focusing on element-to-element coupling.
Mathematical Foundation
Interface integrals compute:
where is the set of interior faces (excluding the domain boundary ).
Discontinuous Galerkin Context
Interface integrals are fundamental to DG methods, enabling:
- Element coupling: Connect discontinuous solutions across elements
- Flux consistency: Ensure conservative numerical fluxes
- Stability: Add necessary stabilization terms
Interior Penalty Method
A typical IP-DG formulation includes:
Usage Example
// Interior penalty terms (only on interior faces) auto penalty = InterfaceIntegral(sigma / h * Jump(u), Jump(v)); auto consistency = InterfaceIntegral(Average(Grad(u)), Jump(v)); auto symmetry = InterfaceIntegral(Jump(u), Average(Grad(v)));
Namespaces
- namespace Rodin
- The Rodin library for Shape and Topology Optimization.
- namespace Rodin::Variational
- Module which provides the necessary tools for constructing variational problems.
Classes
-
template<class LHSDerived, class TrialFES, class RHSDerived, class TestFES>class Rodin::Variational::InterfaceIntegral<Dot<ShapeFunctionBase<LHSDerived, TrialFES, TrialSpace>, ShapeFunctionBase<RHSDerived, TestFES, TestSpace>>>
- Integration of the dot product of a trial and test operators.
-
template<class NestedDerived, class FES>class Rodin::Variational::InterfaceIntegral<ShapeFunctionBase<NestedDerived, FES, TestSpace>>
- Integration of a test operator.