Rodin/Variational/Integral.h file

Domain integral classes for variational formulations.

This file defines the Integral classes which represent domain integrals in finite element formulations. These integrals form the basis for defining bilinear and linear forms in the weak formulation.

Mathematical Foundation

Domain integrals compute:

\[ \int_\Omega f(x) \, dx \]

where $ \Omega $ is the computational domain and $ f $ is the integrand.

Bilinear Form Integrals

For bilinear forms $ a(u,v) $ :

\[ a(u,v) = \int_\Omega A(u) : B(v) \, dx \]

where $ A $ and $ B $ are operators on trial and test functions.

Linear Form Integrals

For linear forms $ l(v) $ :

\[ l(v) = \int_\Omega f \cdot v \, dx \]

Usage Examples

// Stiffness matrix: ∫ ∇u·∇v dx
auto stiffness = Integral(Grad(u), Grad(v));

// Mass matrix: ∫ u·v dx
auto mass = Integral(u, v);

// Load vector: ∫ f·v dx
auto load = Integral(f, 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::Integral<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::Integral<ShapeFunctionBase<NestedDerived, FES, TestSpace>>
Integration of a test operator.
template<class FES, class Data>
class Rodin::Variational::Integral<GridFunction<FES, Data>>
Integration of a GridFunction object.