template<class FES, class ValueDerived>
Rodin::Variational::DirichletBC<TrialFunction<FES>, FunctionBase<ValueDerived>> class final

Represents a Dirichlet boundary condition on a ShapeFunction object.

Template parameters
FES Type of finite element space
ValueDerived Type of value

When utilized in a Problem construction, it will impose the Dirichlet condition

\[ u = g \quad \text{ on } \quad \Gamma_D \]

on the subset of the boundary $ \Gamma_D \subset \mathcal{B}_h $ .

Base classes

template<class Scalar>
class DirichletBCBase<FormLanguage::Traits<FES>::ScalarType>
Abstract base class for a Dirichlet boundary condition.

Public types

using OperandType = TrialFunction<FESType>
Operand type.
using ScalarType = typename FormLanguage::Traits<FESType>::ScalarType
Scalar type.
using ValueType = FunctionBase<ValueDerived>
Value type.
using Parent = DirichletBCBase<ScalarType>
Parent class.

Constructors, destructors, conversion operators

DirichletBC(const OperandType& u, const ValueType& v)
Constructs the object given the Operand and Value.
DirichletBC(const DirichletBC& other)
Copy constructor.
DirichletBC(DirichletBC&& other)
Move constructor.

Public functions

auto on(Geometry::Attribute bdrAtr) -> DirichletBC& constexpr
Specifies the region of the boundary over which the condition will be imposed.
auto on(const FlatSet<Geometry::Attribute>& bdrAttrs) -> DirichletBC& constexpr
Specifies the regions of the boundary over which the condition will be imposed.
auto getAttributes() const -> const FlatSet<Geometry::Attribute>& constexpr
void assemble() override
Computes the indices of the degrees of freedoms associated to the boundary region.
auto getOperand() const -> const OperandType& override
Gets the associated operand.
auto getValue() const -> const ValueType& override
Gets the associated value.
auto getDOFs() const -> const DOFs& override
Gets the global degree of freedom map.
auto copy() const -> DirichletBC* override noexcept
Copies the object and returns a non-owning pointer to the copied object.

Function documentation

template<class FES, class ValueDerived>
Rodin::Variational::DirichletBC<TrialFunction<FES>, FunctionBase<ValueDerived>><FES, ValueDerived>::DirichletBC(const OperandType& u, const ValueType& v)

Constructs the object given the Operand and Value.

Parameters
in ShapeFunction object
in Value object

template<class FES, class ValueDerived>
DirichletBC& Rodin::Variational::DirichletBC<TrialFunction<FES>, FunctionBase<ValueDerived>><FES, ValueDerived>::on(const FlatSet<Geometry::Attribute>& bdrAttrs) constexpr

Specifies the regions of the boundary over which the condition will be imposed.

Parameters
bdrAttrs in Attributes associated to the boundary regions

template<class FES, class ValueDerived>
const FlatSet<Geometry::Attribute>& Rodin::Variational::DirichletBC<TrialFunction<FES>, FunctionBase<ValueDerived>><FES, ValueDerived>::getAttributes() const constexpr

Returns Attributes over which the boundary condition is imposed.

template<class FES, class ValueDerived>
void Rodin::Variational::DirichletBC<TrialFunction<FES>, FunctionBase<ValueDerived>><FES, ValueDerived>::assemble() override

Computes the indices of the degrees of freedoms associated to the boundary region.

This will compute the degrees of freedom over the incidence set

\[ D - 1 \longrightarrow 0 ~. \]

If the set of specified attributes is empty, this will compute the degrees of freedom over the boundary, in which case the incidence set

\[ D - 1 \longrightarrow D \]

is also required.

template<class FES, class ValueDerived>
DirichletBC* Rodin::Variational::DirichletBC<TrialFunction<FES>, FunctionBase<ValueDerived>><FES, ValueDerived>::copy() const override noexcept

Copies the object and returns a non-owning pointer to the copied object.

Returns Non-owning pointer to the copied object.