template<class Solution, class FES>
Rodin::Hilbert::H1a class

Hilbertian $ H^1 $ extension-regularization procedure with a regularization length-scale parameter.

Template parameters
Solution Solution type
FES Finite element space type

This class implements a Hilbert space extension operator that solves regularized problems of the form:

\[ a(u, v) := \alpha^2 \int_{\mathbb{R}^d} \nabla u : \nabla v \, dx + \int_{\mathbb{R}^d} u \cdot v \, dx \]

where $ \alpha $ is the regularization parameter controlling the length scale of the extension.

Constructors, destructors, conversion operators

H1a(const FES& fes)
Constructs an H1a extension operator.

Public functions

auto setAlpha(Real alpha) -> H1a&
Sets the regularization parameter $ \alpha $ .
template<class Differential>
auto operator()(const Differential& lf) const -> auto
Applies the extension operator to a differential form.
auto operator+=(const Variational::DirichletBCBase<ScalarType>& dbc) -> H1a&
Adds a Dirichlet boundary condition to the problem.
auto getProblem() -> auto&
Gets the underlying variational problem.
auto getProblem() const -> const auto&
Gets the underlying variational problem.
auto getTrialFunction() const -> const auto&
Gets the trial function used in the formulation.
auto getTestFunction() const -> const auto&
Gets the test function used in the formulation.
auto getFiniteElementSpace() const -> const FES&
Gets the finite element space.

Function documentation

template<class Solution, class FES>
Rodin::Hilbert::H1a<Solution, FES>::H1a(const FES& fes)

Constructs an H1a extension operator.

Parameters
fes Finite element space for the problem

template<class Solution, class FES>
H1a& Rodin::Hilbert::H1a<Solution, FES>::setAlpha(Real alpha)

Sets the regularization parameter $ \alpha $ .

Parameters
alpha Regularization length-scale parameter
Returns Reference to this object for method chaining

template<class Solution, class FES> template<class Differential>
auto Rodin::Hilbert::H1a<Solution, FES>::operator()(const Differential& lf) const

Applies the extension operator to a differential form.

Template parameters
Differential Type of the differential form
Parameters
lf Linear functional to extend
Returns Solution of the regularized extension problem

template<class Solution, class FES>
H1a& Rodin::Hilbert::H1a<Solution, FES>::operator+=(const Variational::DirichletBCBase<ScalarType>& dbc)

Adds a Dirichlet boundary condition to the problem.

Parameters
dbc Dirichlet boundary condition to add
Returns Reference to this object for method chaining

template<class Solution, class FES>
auto& Rodin::Hilbert::H1a<Solution, FES>::getProblem()

Gets the underlying variational problem.

Returns Reference to the variational problem

template<class Solution, class FES>
const auto& Rodin::Hilbert::H1a<Solution, FES>::getProblem() const

Gets the underlying variational problem.

Returns Const reference to the variational problem

template<class Solution, class FES>
const auto& Rodin::Hilbert::H1a<Solution, FES>::getTrialFunction() const

Gets the trial function used in the formulation.

Returns Const reference to the trial function

template<class Solution, class FES>
const auto& Rodin::Hilbert::H1a<Solution, FES>::getTestFunction() const

Gets the test function used in the formulation.

Returns Const reference to the test function

template<class Solution, class FES>
const FES& Rodin::Hilbert::H1a<Solution, FES>::getFiniteElementSpace() const

Gets the finite element space.

Returns Const reference to the finite element space