H1a
Hilbertian extension-regularization procedure with a regularization length-scale parameter.
Defined in Rodin/Hilbert/H1a.h
template < class Solution, class FES> class H1a;
| 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:
where is the regularization parameter controlling the length scale of the extension.
Constructors, destructors, conversion operators
Public functions
- auto setAlpha(Real alpha) -> H1a&
- Sets the regularization parameter .
-
template<class Differential>auto operator()(const Differential& lf) -> 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
H1a(const FES& fes)
Constructs an H1a extension operator.
| Parameters | |
|---|---|
| fes | Finite element space for the problem |
H1a(const H1a& other)
Copies parameters, boundary conditions and the owned solution.
| Parameters | |
|---|---|
| other | Extension to copy. |
The working problem is bound to this object's trial and test functions. Its formulation and linear system are rebuilt on the next application.
H1a(H1a&& other)
Moves an extension while binding its working problem to its new owner.
| Parameters | |
|---|---|
| other | Extension to move. |
Boundary conditions are retained; the formulation and linear system are rebuilt on the next application, as in copy construction.
template<class Solution, class FES>
template<class Differential>
auto operator()(const Differential& lf)
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 |
Replaces the retained formulation and solves into the owned trial function. This operation updates the extension's working state.
H1a& 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 |
auto& getProblem()
Gets the underlying variational problem.
| Returns | Reference to the variational problem |
|---|
const auto& getProblem() const
Gets the underlying variational problem.
| Returns | Const reference to the variational problem |
|---|
const auto& getTrialFunction() const
Gets the trial function used in the formulation.
| Returns | Const reference to the trial function |
|---|
const auto& getTestFunction() const
Gets the test function used in the formulation.
| Returns | Const reference to the test function |
|---|
const FES& getFiniteElementSpace() const
Gets the finite element space.
| Returns | Const reference to the finite element space |
|---|