Rodin::Hilbert namespace

Module which provides models and tools for the Hilbertian extension-regularization procedure.

The Hilbert module implements $ H^1 $ -based extension-regularization operators used in shape and topology optimization. The primary class H1a solves the regularized extension problem:

\[ \alpha^2 \int_\Omega \nabla u : \nabla v \, dx + \int_\Omega u \cdot v \, dx = \ell(v) \]

where $ \alpha $ is a regularization length-scale parameter that controls the smoothness of the extended field (larger $ \alpha $ = smoother).

This is used, for example, to extend and regularize a shape derivative (defined only on the boundary) to a smooth descent direction in the full computational domain.

API

MethodDescription
H1a(fes)Constructor: creates the extension operator on a finite element space
setAlpha(alpha)Sets $ \alpha $ (typically proportional to mesh size $ h $ )
operator()(lf)Applies extension to a linear form (differential)
operator+=(DirichletBC)Adds boundary conditions to the extension problem
getProblem()Access the underlying Problem object
getTrialFunction() / getTestFunction()Access trial/test functions

For vector-valued problems, H1a uses Jacobian() instead of Grad(). The internal solver is Solver::CG.

Classes

template<class Solution, class FES>
class H1a
Hilbertian $ H^1 $ extension-regularization procedure with a regularization length-scale parameter.