Rodin/Variational/Traits.h file

Type traits for variational formulations.

This file defines type traits for extracting result types and range types from variational objects like functions and shape functions. These traits enable compile-time type deduction for form language expressions.

Namespaces

namespace Rodin
The Rodin library for Shape and Topology Optimization.
namespace Rodin::FormLanguage
Module for writing high level abstract expressions.

Classes

template<class Derived>
struct Rodin::FormLanguage::ResultOf<Variational::FunctionBase<Derived>>
Specialization of ResultOf for FunctionBase.
template<class Derived, class FES, Variational::ShapeFunctionSpaceType Space>
struct Rodin::FormLanguage::ResultOf<Variational::ShapeFunctionBase<Derived, FES, Space>>
Specialization of ResultOf for ShapeFunctionBase.
template<>
struct Rodin::FormLanguage::RangeOf<Boolean>
Range type for Boolean values.
template<>
struct Rodin::FormLanguage::RangeOf<Integer>
Range type for Integer values.
template<>
struct Rodin::FormLanguage::RangeOf<Real>
Range type for Real values.
template<>
struct Rodin::FormLanguage::RangeOf<Complex>
Range type for Complex values.
template<class Scalar, int Rows, int Options, int MaxRows, int MaxCols>
struct Rodin::FormLanguage::RangeOf<Eigen::Matrix<Scalar, Rows, 1, Options, MaxRows, MaxCols>>
Range type for Eigen column vectors.
template<class Scalar, int Rows, int Cols, int Options, int MaxRows, int MaxCols>
struct Rodin::FormLanguage::RangeOf<Eigen::Matrix<Scalar, Rows, Cols, Options, MaxRows, MaxCols>>
Range type for Eigen matrices.
template<class MatrixXpr>
struct Rodin::FormLanguage::RangeOf
Type trait to deduce the mathematical range type of an expression.
template<class Derived>
struct Rodin::FormLanguage::RangeOf<Variational::FunctionBase<Derived>>
Range type for FunctionBase.
template<class Derived, class FES, Variational::ShapeFunctionSpaceType Space>
struct Rodin::FormLanguage::RangeOf<Variational::ShapeFunctionBase<Derived, FES, Space>>
Range type for ShapeFunctionBase.