Rodin/Variational/BoundaryIntegral.h file

Boundary integral classes for variational formulations.

This file defines the BoundaryIntegral classes which represent integrals over the domain boundary in finite element formulations. Boundary integrals are essential for imposing natural (Neumann) boundary conditions and boundary terms in weak formulations.

Mathematical Foundation

Boundary integrals compute:

\[ \int_{\partial\Omega} f(x) \, ds \]

where $ \partial\Omega $ is the domain boundary and $ ds $ is the surface measure.

Applications

  • Neumann boundary conditions: $ \int_{\Gamma_N} g \cdot v \, ds $
  • Robin boundary conditions: $ \int_{\Gamma_R} (\alpha u - \beta) v \, ds $
  • Weak boundary terms: Integration by parts produces boundary integrals
  • Flux calculations: Computing normal fluxes across boundaries

Usage Example

// Neumann BC: ∫_Γ g·v ds
auto neumann = BoundaryIntegral(g, v).on(2);  // On boundary attribute 2

// Robin BC: ∫_Γ (αu - β)v ds
auto robin = BoundaryIntegral(alpha * u - beta, v).on(3);

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::BoundaryIntegral<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::BoundaryIntegral<ShapeFunctionBase<NestedDerived, FES, TestSpace>>
Integration of a test operator.