Rodin::Variational namespace

Module which provides the necessary tools for constructing variational problems.

The Rodin::Variational module aids in the general construction of variational problems:

\[ \text{Find} \quad u \in U \quad \text{ s.t. } \quad \forall v \in V \quad a(u, v) = b(v) \ , \]

which then can be translated into linear algebra problems of the type:

\[ \mathbf{A} \mathbf{x} = \mathbf{b} \]

where $ \mathbf{A} $ represents the stiffness operator.

Namespaces

namespace F
Contains built-in functions.

Classes

template<class LHSDerived, class RHSDerived>
class AND<BooleanFunctionBase<LHSDerived>, BooleanFunctionBase<RHSDerived>>
Logical AND operator between two instances of BooleanFunctionBase.
template<class Operator>
class BilinearFormBase
Abstract base class for objects of type BilinearForm.
template<class TrialFES, class TestFES, class Operator>
class BilinearForm
Speciallization of BilinearForm for a matrix type.
template<class Number, class Derived>
class BilinearFormIntegratorBase
Abstract base class for bilinear form integrators.
template<class Derived>
class BooleanFunctionBase
Base class for objects representing boolean functions.
template<class LHSDerived, class TrialFES, class RHSDerived, class TestFES>
class BoundaryIntegral<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 BoundaryIntegral<ShapeFunctionBase<NestedDerived, FES, TestSpace>>
Integration of a test operator.
class BoundaryNormal
Outward unit normal.
template<class Derived>
class ComplexFunctionBase
Base class for scalar-valued functions defined on a mesh.
template<>
class ComplexFunction<Complex>
Represents a constant scalar function with type Complex.
template<class F>
class ComplexFunction<F>
Represents a scalar function given by an arbitrary scalar function.
template<class OperandDerived>
class Component<FunctionBase<OperandDerived>, size_t>
Represents the component (or entry) of a vectorial FunctionBase instance.
template<class FES>
class Component<GridFunction<FES>>
Represents the component (or entry) of a vectorial GridFunction.
template<class OperandDerived, class FES, ShapeFunctionSpaceType Space>
class Component<ShapeFunctionBase<OperandDerived, FES, Space>>
Represents the component (or entry) of a vectorial ShapeFunction.
template<class TrialFES, class TestFES>
class DenseProblem<TrialFES, TestFES, Math::Matrix<typename FormLanguage::Mult<typename FormLanguage::Traits<TrialFES>::ScalarType, typename FormLanguage::Traits<TestFES>::ScalarType>::Type>, Math::Vector<typename FormLanguage::Traits<TestFES>::ScalarType>>
General class to assemble linear systems with Math::Matrix and Math::Vector types in a serial context.
template<class Scalar>
class DirichletBCBase
Abstract base class for a Dirichlet boundary condition.
template<class FES, class ValueDerived>
class DirichletBC<TrialFunction<FES>, FunctionBase<ValueDerived>>
Represents a Dirichlet boundary condition on a ShapeFunction object.
template<class Operand, class Derived>
class DivBase
Base class for Div classes.
template<class FES, class Derived>
class DivBase<GridFunction<FES>, Derived>
Divergence of a P1 GridFunction.
template<class LHSDerived, class RHSDerived>
class Division<FunctionBase<LHSDerived>, FunctionBase<RHSDerived>>
Division of a FunctionBase by a FunctionBase.
template<class LHSDerived, class RHSDerived, class FES, ShapeFunctionSpaceType Space>
class Dot<FunctionBase<LHSDerived>, ShapeFunctionBase<RHSDerived, FES, Space>>
Dot product between a FunctionBase and a ShapeFunctionBase.
template<class LHSDerived, class TrialFES, class RHSDerived, class TestFES>
class Dot<ShapeFunctionBase<LHSDerived, TrialFES, TrialSpace>, ShapeFunctionBase<RHSDerived, TestFES, TestSpace>>
Represents the dot product of trial and test operators.
template<class LHSDerived, class RHSDerived>
class EQ<FunctionBase<LHSDerived>, FunctionBase<RHSDerived>>
Logical EQ operator between two instances of FunctionBase.
template<class LHSDerived, class TrialFES, class RHSDerived, class TestFES>
class FaceIntegral<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 FaceIntegral<ShapeFunctionBase<NestedDerived, FES, TestSpace>>
Integration of a test operator.
class FaceNormal
Outward unit normal on a face.
template<class Derived>
class FiniteElementBase
Base class for finite elements.
class FiniteElementSpaceBase
Base class for finite element spaces.
template<class Derived>
class FiniteElementSpace
Represernts a finite element space.
template<class Derived>
class FiniteElementSpaceMappingBase
Base class for mappings taking functions defined on mesh elements to reference elements.
template<class Derived>
class FiniteElementSpaceInverseMappingBase
Base class for inverse mappings taking functions defined on to reference elements.
template<class Derived, class FES = typename FormLanguage::Traits<Derived>::FESType, ShapeFunctionSpaceType SpaceType = FormLanguage::Traits<Derived>::SpaceType>
class ShapeFunctionBase
Base class for shape function objects.
template<class Derived, class FES, ShapeFunctionSpaceType Space>
class ShapeFunction
ShapeFunction.
template<class FESType>
class TrialFunction
Represents a function which belongs to a trial space.
template<class FESType>
class TestFunction
Represents a function which belongs to a test space.
template<class Derived>
class FunctionBase
Base class for function objects which can be evaluated over a mesh.
template<class T>
class BooleanFunction
template<class Derived>
class IntegerFunctionBase
Base class for objects representing integer functions.
template<class T>
class IntegerFunction
template<class Derived>
class RealFunctionBase
Base class for real-valued functions defined on a mesh.
template<class ... Values>
class RealFunction
template<class ... Values>
class ComplexFunction
template<class Scalar, class Derived>
class VectorFunctionBase
Base class for vector-valued functions defined on a mesh.
template<class ... Values>
class VectorFunction
template<class Scalar, class Derived>
class MatrixFunctionBase
Base class for matrix-valued functions defined on a mesh.
template<class T>
class MatrixFunction
template<class FES, class Derived>
class GridFunctionBase
Base class for grid function objects.
template<class FES>
class GridFunction
Represents a grid function belonging to some finite element space.
template<class Vector>
class LinearFormBase
Base class for linear form objects.
template<class FES, class Vector>
class LinearForm
Represents a linear form on some finite element space.
template<class Number>
class LinearFormIntegratorBase
Base class for linear form integrators.
template<class Range, class Context>
class L2
Arbitrary order $ H^1(\mathcal{T}_h)^d \subset L^2 (\Omega) $ broken Sobolev space.
template<class StrictType>
class LazyEvaluator
Represents the lazy evaluation of a mesh function.
template<class Base, class Exponent>
class Pow
Represents the power function.
template<class Operand>
class Transpose
Represents the transpose matrix $ A^T $ of some matrix $ A $ .
template<class Operand>
class Grad
Represents the gradient $ \nabla u $ of a scalar function $ u $ .
template<class Operand>
class Div
Represents the divergence of a vector valued function.
template<class Operand>
class Jacobian
Represents the Jacobian matrix of a type.
template<class Operand>
class UnaryMinus
Represent the negation of an operand.
template<class LHS, class RHS>
class Sum
Represents the sum operation.
template<class LHS, class RHS>
class Mult
Represents the multiplication operation.
template<class LHS, class RHS>
class Division
Represents the division operation.
template<class LHS, class RHS>
class Dot
Represents the dot product between two objects.
template<class Operand>
class Abs
Represents the absolute value of a value.
template<class Operand>
class Frobenius
Represents the Frobenius norm.
template<class Operand>
class Cos
Represents the cosine function.
template<class Operand>
class Tan
Represents the tangent function.
template<class Operand>
class Trace
Represents the trace of a matrix function.
template<class LHS, class RHS>
class Composition
template<class LHS, class RHS>
class LT
template<class LHS, class RHS>
class GT
template<class LHS, class RHS>
class EQ
template<class LHS, class RHS>
class LEQ
template<class LHS, class RHS>
class GEQ
template<class LHS, class RHS>
class NEQ
template<class LHS, class RHS>
class AND
Represents the logical AND expression.
template<class LHS, class RHS>
class OR
template<class Integrand>
class QuadratureRule
template<class Integrand>
class Integral
Represents mathematical expressions of the integral operator on a domain.
template<class Integrand>
class FaceIntegral
Represents expressions of the integral operator on the faces of a mesh.
template<class Integrand>
class BoundaryIntegral
Represents expressions of the integral operator on the boundary of a domain.
template<class Integrand>
class InterfaceIntegral
Represents expressions of the integral operator on the interface of a domain.
template<class Operand, class Value>
class DirichletBC
template<class Scalar>
class ProblemBodyBase
Represents the body of a variational problem.
template<class Operator, class Vector, class Scalar>
class ProblemBase
Base class for variational problem objects.
template<class ... Parameters>
class Problem
Represents a variational problem.
template<class Operand, class Derived>
class GradBase
Base class for Grad classes.
template<class FES, class Derived>
class GradBase<GridFunction<FES>, Derived>
Gradient of a P1 GridFunction.
class IdentityMatrix
Represents the identity matrix function.
template<class LHSDerived, class TrialFES, class RHSDerived, class TestFES>
class 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 Integral<ShapeFunctionBase<NestedDerived, FES, TestSpace>>
Integration of a test operator.
template<class FES>
class Integral<GridFunction<FES>>
Integration of a GridFunction object.
template<class LHSDerived, class TrialFES, class RHSDerived, class TestFES>
class InterfaceIntegral<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 InterfaceIntegral<ShapeFunctionBase<NestedDerived, FES, TestSpace>>
Integration of a test operator.
template<class Operand, class Derived>
class JacobianBase
Base class for Jacobian classes.
template<class FES, class Derived>
class JacobianBase<GridFunction<FES>, Derived>
Jacobian of a P1 GridFunction.
template<class LHSDerived, class RHSDerived>
class Min<FunctionBase<LHSDerived>, FunctionBase<RHSDerived>>
Represents the minimum between two arguments.
template<class LHSDerived, class RHSDerived>
class Mult<FunctionBase<LHSDerived>, FunctionBase<RHSDerived>>
Multiplication of two FunctionBase instances.
template<class LHSDerived, class RHSDerived, class FES, ShapeFunctionSpaceType Space>
class Mult<FunctionBase<LHSDerived>, ShapeFunctionBase<RHSDerived, FES, Space>>
Left Multiplication of a ShapeFunctionBase by a FunctionBase.
template<class LHSDerived, class RHSDerived, class FES, ShapeFunctionSpaceType Space>
class Mult<ShapeFunctionBase<LHSDerived, FES, Space>, FunctionBase<RHSDerived>>
Right multiplication of a ShapeFunctionBase by a FunctionBase.
template<class LHSDerived, class RHSDerived>
class OR<BooleanFunctionBase<LHSDerived>, BooleanFunctionBase<RHSDerived>>
Logical OR operator between two instances of BooleanFunctionBase.
template<class Range>
class P0Element
Degree 0 Lagrange element.
template<class Range, class Mesh>
class P0
Degree 0 Lagrange finite element space.
template<class Range, class Mesh>
class Grad<GridFunction<P0<Range, Mesh>>>
Gradient of a P0 GridFunction.
template<class NestedDerived, class Range, class Mesh, Variational::ShapeFunctionSpaceType SpaceType>
class Grad<ShapeFunction<NestedDerived, P0<Range, Mesh>, SpaceType>>
Gradient of a P0 ShapeFunction.
template<class Number, class Mesh>
class GridFunction<P0<Number, Mesh>>
P0 GridFunction.
template<class Number>
class P0<Number, Geometry::Mesh<Context::Sequential>>
Real valued Lagrange finite element space.
template<>
class P0Element<Real>
Degree 0 scalar Lagrange element.
template<class Scalar, class Mesh>
class Div<GridFunction<P1<Math::Vector<Scalar>, Mesh>>>
Divient of a P1 GridFunction.
template<class Range>
class P1Element
Degree 1 Lagrange element.
template<class Range, class Mesh>
class P1
Degree 1 Lagrange finite element space.
template<class Range, class Mesh>
class Grad<GridFunction<P1<Range, Mesh>>>
Gradient of a P1 GridFunction.
template<class NestedDerived, class Number, class Mesh, ShapeFunctionSpaceType SpaceType>
class Grad<ShapeFunction<NestedDerived, P1<Number, Mesh>, SpaceType>>
Gradient of a P1 ShapeFunction.
template<class Range, class Mesh>
class GridFunction<P1<Range, Mesh>>
P1 GridFunction.
template<class Number, class Mesh>
class Jacobian<GridFunction<P1<Math::Vector<Number>, Mesh>>>
Jacobian of an P1 GridFunction object.
template<class ShapeFunctionDerived, class Number, class Mesh, ShapeFunctionSpaceType Space>
class Jacobian<ShapeFunction<ShapeFunctionDerived, P1<Math::Vector<Number>, Mesh>, Space>>
Jacobian of an P1 ShapeFunction object.
template<>
class P1<Real, Geometry::Mesh<Context::Sequential>>
Real valued Lagrange finite element space.
template<>
class P1<Complex, Geometry::Mesh<Context::Sequential>>
Real valued Lagrange finite element space.
template<>
class P1<Math::Vector<Real>, Geometry::Mesh<Context::Sequential>>
Vector valued Lagrange finite element space.
template<>
class P1Element<Real>
Degree 1 scalar Lagrange element.
template<>
class P1Element<Math::Vector<Real>>
Degree 1 vector Lagrange element.
template<class NestedDerived, class Range, class Mesh>
class QuadratureRule<ShapeFunctionBase<ShapeFunction<NestedDerived, P1<Range, Mesh>, TestSpace>, P1<Range, Mesh>, TestSpace>>
Integration of a P1 ShapeFunction.
template<class LHSDerived, class RHSDerived, class Range, class Mesh>
class QuadratureRule<ShapeFunctionBase<Dot<FunctionBase<LHSDerived>, ShapeFunctionBase<ShapeFunction<RHSDerived, P1<Range, Mesh>, TestSpace>, P1<Range, Mesh>, TestSpace>>, P1<Range, Mesh>, TestSpace>>
Integration of the Dot product of some coefficient function and a P1 ShapeFunction.
template<class CoefficientDerived, class LHSDerived, class RHSDerived, class LHSRange, class RHSRange, class LHSMesh, class RHSMesh>
class QuadratureRule<Dot<ShapeFunctionBase<Mult<FunctionBase<CoefficientDerived>, ShapeFunctionBase<ShapeFunction<LHSDerived, P1<LHSRange, LHSMesh>, TrialSpace>, P1<LHSRange, LHSMesh>, TrialSpace>>, P1<LHSRange, LHSMesh>, TrialSpace>, ShapeFunctionBase<ShapeFunction<RHSDerived, P1<RHSRange, RHSMesh>, TestSpace>, P1<RHSRange, RHSMesh>, TestSpace>>>
Integration of the anisotropic Dot product of two instances of the P1 ShapeFunction.
template<class LHSDerived, class RHSDerived, class LHSRange, class RHSRange, class LHSMesh, class RHSMesh>
class QuadratureRule<Dot<ShapeFunctionBase<Grad<ShapeFunction<LHSDerived, P1<LHSRange, LHSMesh>, TrialSpace>>, P1<LHSRange, LHSMesh>, TrialSpace>, ShapeFunctionBase<Grad<ShapeFunction<RHSDerived, P1<RHSRange, RHSMesh>, TestSpace>>, P1<RHSRange, RHSMesh>, TestSpace>>>
Integration of the isotropic Dot product of two instances of the P1 Grad of ShapeFunction.
template<class CoefficientDerived, class LHSDerived, class RHSDerived, class LHSRange, class RHSRange, class LHSMesh, class RHSMesh>
class QuadratureRule<Dot<ShapeFunctionBase<Mult<FunctionBase<CoefficientDerived>, ShapeFunctionBase<Grad<ShapeFunction<LHSDerived, P1<LHSRange, LHSMesh>, TrialSpace>>, P1<LHSRange, LHSMesh>, TrialSpace>>, P1<LHSRange, LHSMesh>, TrialSpace>, ShapeFunctionBase<Grad<ShapeFunction<RHSDerived, P1<RHSRange, RHSMesh>, TestSpace>>, P1<RHSRange, RHSMesh>, TestSpace>>>
Integration of the anisotropic Dot product of two instances of the P1 Grad of ShapeFunction.
template<class LHSDerived, class RHSDerived, class LHSRange, class RHSRange, class LHSMesh, class RHSMesh>
class QuadratureRule<Dot<ShapeFunctionBase<Jacobian<ShapeFunction<LHSDerived, P1<LHSRange, LHSMesh>, TrialSpace>>, P1<LHSRange, LHSMesh>, TrialSpace>, ShapeFunctionBase<Jacobian<ShapeFunction<RHSDerived, P1<RHSRange, RHSMesh>, TestSpace>>, P1<RHSRange, RHSMesh>, TestSpace>>>
Integration of the isotropic Frobenius inner product two instances of the P1 Jacobian of ShapeFunction.
template<class CoefficientDerived, class LHSDerived, class RHSDerived, class LHSRange, class RHSRange, class LHSMesh, class RHSMesh>
class QuadratureRule<Dot<ShapeFunctionBase<Mult<FunctionBase<CoefficientDerived>, ShapeFunctionBase<Jacobian<ShapeFunction<LHSDerived, P1<LHSRange, LHSMesh>, TrialSpace>>, P1<LHSRange, LHSMesh>, TrialSpace>>, P1<LHSRange, LHSMesh>, TrialSpace>, ShapeFunctionBase<Jacobian<ShapeFunction<RHSDerived, P1<RHSRange, RHSMesh>, TestSpace>>, P1<RHSRange, RHSMesh>, TestSpace>>>
Integration of the anisotropic Frobenius inner product two instances of the P1 Jacobian of ShapeFunction.
template<class Scalar>
class PeriodicBCBase
Abstract base class for a periodic boundary condition.
template<class FES>
class PeriodicBC<TrialFunction<FES>, IndexMap<IndexSet>>
Represents a Peridodic boundary condition on a ShapeFunction object.
template<class LHS, class RHSDerived, class FES, ShapeFunctionSpaceType SpaceType>
class Potential<LHS, ShapeFunctionBase<ShapeFunction<RHSDerived, FES, SpaceType>, FES, SpaceType>>
template<class BaseDerived, class Number>
class Pow<FunctionBase<BaseDerived>, Number>
Represents the power function.
template<class TrialFES, class TestFES>
class Problem<TrialFES, TestFES, Math::SparseMatrix<typename FormLanguage::Mult<typename FormLanguage::Traits<TrialFES>::ScalarType, typename FormLanguage::Traits<TrialFES>::ScalarType> ::Type>, Math::Vector<typename FormLanguage::Traits<TestFES>::ScalarType>>
General class to assemble linear systems with Math::SparseMatrix and Math::Vector types in a sequential context.
template<class FunctionDerived>
class QuadratureRule<FunctionBase<FunctionDerived>>
Quadrature rule on polytope for any function defined on the mesh.
template<class FES>
class QuadratureRule<GridFunction<FES>>
Integration of a GridFunction object.
template<class LHSDerived, class TrialFES, class RHSDerived, class TestFES>
class QuadratureRule<Dot<ShapeFunctionBase<LHSDerived, TrialFES, TrialSpace>, ShapeFunctionBase<RHSDerived, TestFES, TestSpace>>>
Approximation of the integral of the the dot product between a trial shape function and a test shape function.
template<class NestedDerived, class FES>
class QuadratureRule<ShapeFunctionBase<NestedDerived, FES, TestSpace>>
Approximation of the integral of a test shape function.
template<>
class RealFunction<Real>
Represents a constant scalar function with type Real.
template<class F>
class RealFunction<F>
Represents a scalar function given by an arbitrary scalar function.
template<>
class ScalarFunction<Real>
Represents a constant scalar function with type Real.
template<>
class ScalarFunction<Complex>
Represents a constant scalar function with type Complex.
template<class F>
class ScalarFunction<F>
Represents a scalar function given by an arbitrary scalar function.
template<class NestedDerived>
class Trace<FunctionBase<NestedDerived>>
Trace of a FunctionBase instance.
template<>
class TraceOperator<FunctionBase>
Trace operator.
template<class NestedDerived>
class Transpose<FunctionBase<NestedDerived>>
Transpose of a FunctionBase object.
template<class NestedDerived, class FES, ShapeFunctionSpaceType Space>
class Transpose<ShapeFunctionBase<NestedDerived, FES, Space>>
Transpose of a ShapeFunctionBase object.
template<class V, class ... Values>
class VectorFunction<V, Values...>
Represents a vector function which may be constructed from values which can be converted to objects of type RealFunction.

Enums

enum class ShapeFunctionSpaceType { Trial, Test }
Enumeration class to indicate whether a derived instance of ShapeFunctionBase belongs to either a trial or test space.

Typedefs

template<class Scalar>
using EssentialBoundary = FormLanguage::List<DirichletBCBase<Scalar>>
Alias for a list of Dirichlet boundary conditions.
using RealP0Element = P0Element<Real>
Alias for P0Element<Real>
using ComplexP0Element = P0Element<Complex>
Alias for P0Element<Complex>
using VectorP0Element = P0Element<Math::Vector<Real>>
Alias for P0Element<Math::Vector<Real>>
using RealP1Element = P1Element<Real>
Alias for P1Element<Real>
using VectorP1Element = P1Element<Math::Vector<Real>>
Alias for P1Element<Math::Vector<Real>>
template<class Mesh>
using RealP1 = P1<Real, Mesh>
Alias for a scalar valued P1 finite element space.
template<class Mesh>
using VectorP1 = P1<Math::Vector<Real>, Mesh>
Alias for a vector valued P1 finite element space.
template<class Scalar>
using PeriodicBoundary = FormLanguage::List<PeriodicBCBase<Scalar>>
Alias for a list of peridodic boundary conditions.

Functions

ComplexFunction(const Complex&) -> ComplexFunction< Complex >
CTAD for ComplexFunction.
template<class Derived>
ComplexFunction(const FunctionBase<Derived>&) -> ComplexFunction< FunctionBase< Derived >>
CTAD for ComplexFunction.
template<class RealNestedDerived, class ImagNestedDerived>
ComplexFunction(const FunctionBase<RealNestedDerived>&, const FunctionBase<ImagNestedDerived>&) -> ComplexFunction< FunctionBase< RealNestedDerived >, FunctionBase< ImagNestedDerived >>
CTAD for ComplexFunction.
template<class F, typename = std::enable_if_t<std::is_invocable_r_v<Complex, F, const Geometry::Point&>>>
ComplexFunction(const F&) -> ComplexFunction< F >
CTAD for ComplexFunction.
template<class FReal, class FImag, typename = std::enable_if_t< std::is_invocable_v<FReal, const Geometry::Point&>&& std::is_invocable_v<FImag, const Geometry::Point&>>>
ComplexFunction(const FReal&, const FImag&) -> ComplexFunction< FReal, FImag >
CTAD for ComplexFunction.
template<class NestedDerived>
auto cos(const FunctionBase<NestedDerived>& f) -> auto
Helper function to construct objects of type Cos.
template<class FES>
auto Dx(GridFunction<FES>& u) -> auto
Function representing the Derivative of a GridFunction in H1 space.
template<class FES>
auto Dy(GridFunction<FES>& u) -> auto
Utility function for computing $ \partial_y u $
template<class FES>
auto Dz(GridFunction<FES>& u) -> auto
Utility function for computing $ \partial_z u $
template<class FES, class FunctionDerived>
DirichletBC(const TrialFunction<FES>&, const FunctionBase<FunctionDerived>&) -> DirichletBC< TrialFunction< FES >, FunctionBase< FunctionDerived >>
CTAD for DirichletBC.
template<class StrictType>
LazyEvaluator(std::reference_wrapper<const StrictType>) -> LazyEvaluator< StrictType >
CTAD for LazyEvaluator.
template<class ... Ts>
Grad(const GridFunction<P0<Ts...>>&) -> Grad< GridFunction< P0< Ts... >>>
CTAD for Grad of a P0 GridFunction.
template<class ... Ts>
Div(const GridFunction<P1<Ts...>>&) -> Div< GridFunction< P1< Ts... >>>
CTAD for Div of a P1 GridFunction.
template<class Number, class Mesh>
Grad(const GridFunction<P1<Number, Mesh>>&) -> Grad< GridFunction< P1< Number, Mesh >>>
CTAD for Grad of a P1 GridFunction.
template<class Number, class Mesh>
Jacobian(const GridFunction<P1<Math::Vector<Number>, Mesh>>&) -> Jacobian< GridFunction< P1< Math::Vector< Number >, Mesh >>>
CTAD for Jacobian of a P1 GridFunction.
template<class FES>
PeriodicBC(const TrialFunction<FES>&, const IndexMap<IndexSet>&) -> PeriodicBC< TrialFunction< FES >, IndexMap< IndexSet >>
CTAD for PeriodicBC.
template<class LHSType, class RHSDerived>
Potential(const LHSType&, const FunctionBase<RHSDerived>&) -> Potential< LHSType, FunctionBase< RHSDerived >>
CTAD for Potential.
template<class LHSType, class RHSDerived, class FESType, ShapeFunctionSpaceType SpaceType>
Potential(const LHSType&, const ShapeFunctionBase<ShapeFunction<RHSDerived, FESType, SpaceType>, FESType, SpaceType>&) -> Potential< LHSType, ShapeFunctionBase< ShapeFunction< RHSDerived, FESType, SpaceType >, FESType, SpaceType >>
CTAD for Potential.
template<class BaseDerived, class Number>
Pow(const FunctionBase<BaseDerived>&, Number) -> Pow< FunctionBase< BaseDerived >, Number >
CTAD for Pow.
template<class Derived>
RealFunction(const RealFunctionBase<Derived>&) -> RealFunction< FunctionBase< Derived >>
CTAD for RealFunction.
RealFunction(Real) -> RealFunction< Real >
CTAD for RealFunction.
template<class F, typename = std::enable_if_t<std::is_invocable_r_v<Real, F, const Geometry::Point&>>>
RealFunction(F) -> RealFunction< F >
CTAD for RealFunction.
ScalarFunction(const Real&) -> ScalarFunction< Real >
CTAD for ScalarFunction.
ScalarFunction(const Complex&) -> ScalarFunction< Complex >
CTAD for ScalarFunction.
template<class Scalar, class NestedDerived>
ScalarFunction(const ScalarFunctionBase<Scalar, NestedDerived>&) -> ScalarFunction< ScalarFunctionBase< Scalar, NestedDerived >>
CTAD for ScalarFunction.
template<class F, typename = std::enable_if_t<std::is_invocable_v<F, const Geometry::Point&>>>
ScalarFunction(F) -> ScalarFunction< F >
CTAD for ScalarFunction.
template<class NestedDerived>
auto sin(const FunctionBase<NestedDerived>& f) -> auto
Helper function to construct objects of type Sin.
template<class NestedDerived>
auto sqrt(const FunctionBase<NestedDerived>& f) -> auto
Helper function to construct objects of type Sqrt.
Zero() -> Zero< Real >
CTAD for Zero.

Variables

static auto TrialSpace constexpr
Shorthand variable for ShapeFunctionSpaceType::Trial.
static auto TestSpace constexpr
Shorthand variable for ShapeFunctionSpaceType::Test.
template<class LHSDerived, class RHSDerived>
GEQ< FunctionBase< LHSDerived >, FunctionBase< RHSDerived > >
CTAD for GEQ.
template<class LHSDerived, class RHSDerived>
GT< FunctionBase< LHSDerived >, FunctionBase< RHSDerived > >
CTAD for GT.
template<class LHSDerived, class RHSDerived>
LT< FunctionBase< LHSDerived >, FunctionBase< RHSDerived > >
CTAD for LT.

Enum documentation

enum class Rodin::Variational::ShapeFunctionSpaceType

Enumeration class to indicate whether a derived instance of ShapeFunctionBase belongs to either a trial or test space.

Enumerators
Trial

Indicates that the shape function belongs to a trial space.

Test

Indicates that the shape function belongs to a test space.

Function documentation

template<class FES>
auto Rodin::Variational::Dx(GridFunction<FES>& u)

Function representing the Derivative of a GridFunction in H1 space.

Parameters
in GridFunction in H1 space

Given a GridFunction $ u : \mathbb{R}^s \rightarrow \mathbb{R}^d $ , this class represents the derivative in the $ i $ -th direction of the $ j $ -th component:

\[ \dfrac{\partial u_j}{ \partial x_i } , \]

where $ \quad 0 \leq i < s $ and $ \ 0 \leq j < d $ .

Utility function for computing $ \partial_x u $ Given a scalar function $ u : \mathbb{R}^s \rightarrow \mathbb{R} $ , this function constructs the derivative in the $ x $ direction $ \dfrac{\partial u}{\partial x} $

template<class FES>
auto Rodin::Variational::Dy(GridFunction<FES>& u)

Utility function for computing $ \partial_y u $

Parameters
in GridFunction in H1 space

Given a scalar function $ u : \mathbb{R}^s \rightarrow \mathbb{R} $ , this function constructs the derivative in the $ y $ direction $ \dfrac{\partial u}{\partial y} $

template<class FES>
auto Rodin::Variational::Dz(GridFunction<FES>& u)

Utility function for computing $ \partial_z u $

Parameters
in GridFunction in H1 space

Given a scalar function $ u : \mathbb{R}^s \rightarrow \mathbb{R} $ , this function constructs the derivative in the $ y $ direction $ \dfrac{\partial u}{\partial z} $