version 0.4.1
Ikarus::FETraits< BH, FER, useEigenRef, useFlat > Struct Template Reference

Traits for handling finite elements. More...

#include <ikarus/finiteelements/fetraits.hh>

Public Types

using BasisHandler = BH
 Type of the basis of the finite element. More...
 
using FERequirementType = FER
 Type of the requirements for the finite element. More...
 
using FlatBasis = typename BasisHandler::FlatBasis
 Type of the flat basis. More...
 
using UntouchedBasis = typename BasisHandler::UntouchedBasis
 Type of the untouched basis. More...
 
using Basis = std::conditional_t< useFlat, FlatBasis, UntouchedBasis >
 Type of the basis version. More...
 
using LocalView = typename Basis::LocalView
 Type of the local view. More...
 
using GridView = typename Basis::GridView
 Type of the grid view. More...
 
using Element = typename LocalView::Element
 Type of the grid element. More...
 
using Geometry = typename Element::Geometry
 Type of the element geometry. More...
 
using GlobalIndex = typename LocalView::MultiIndex
 Type of the global index. More...
 
using ctype = double
 Type used for coordinates. More...
 
using GlobalCoordinates = Eigen::Matrix< ctype, worlddim, 1 >
 Type of the coordinate. More...
 
using ParameterSpaceType = Eigen::Matrix< ctype, mydim, 1 >
 Type of the ParameterSpace coordinate. More...
 
template<typename ScalarType = ctype>
using VectorType = std::conditional_t< useEigenRef, Eigen::Ref< Eigen::VectorX< ScalarType > >, Eigen::VectorX< ScalarType > & >
 Type of the internal forces. More...
 
template<typename ScalarType = ctype>
using MatrixType = std::conditional_t< useEigenRef, Eigen::Ref< Eigen::MatrixX< ScalarType > >, Eigen::MatrixX< ScalarType > & >
 Type of the stiffness matrix. More...
 

Static Public Attributes

static constexpr bool useFlatBasis = useFlat
 A bool to indicate if the provided basishandler should hand out the flat basis. More...
 
static constexpr int worlddim = Geometry::coorddimension
 Dimension of the world space. More...
 
static constexpr int mydim = Element::mydimension
 Dimension of the geometry. More...
 
static constexpr int dimension = Element::dimension
 Dimension of the grid. More...
 

Detailed Description

template<typename BH, typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
struct Ikarus::FETraits< BH, FER, useEigenRef, useFlat >
Template Parameters
BHThe basis handler type for the finite element.
useFlatA boolean indicating if the type of the underlying basis is of the flat or the untouched version.
FERThe requirements for the finite element.
useRefBoolean indicating whether to use Eigen::Ref for VectorType and MatrixType.

Member Typedef Documentation

◆ Basis

template<typename BH , typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
using Ikarus::FETraits< BH, FER, useEigenRef, useFlat >::Basis = std::conditional_t<useFlat, FlatBasis, UntouchedBasis>

◆ BasisHandler

template<typename BH , typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
using Ikarus::FETraits< BH, FER, useEigenRef, useFlat >::BasisHandler = BH

◆ ctype

template<typename BH , typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
using Ikarus::FETraits< BH, FER, useEigenRef, useFlat >::ctype = double

◆ Element

template<typename BH , typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
using Ikarus::FETraits< BH, FER, useEigenRef, useFlat >::Element = typename LocalView::Element

◆ FERequirementType

template<typename BH , typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
using Ikarus::FETraits< BH, FER, useEigenRef, useFlat >::FERequirementType = FER

◆ FlatBasis

template<typename BH , typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
using Ikarus::FETraits< BH, FER, useEigenRef, useFlat >::FlatBasis = typename BasisHandler::FlatBasis

◆ Geometry

template<typename BH , typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
using Ikarus::FETraits< BH, FER, useEigenRef, useFlat >::Geometry = typename Element::Geometry

◆ GlobalCoordinates

template<typename BH , typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
using Ikarus::FETraits< BH, FER, useEigenRef, useFlat >::GlobalCoordinates = Eigen::Matrix<ctype, worlddim, 1>

◆ GlobalIndex

template<typename BH , typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
using Ikarus::FETraits< BH, FER, useEigenRef, useFlat >::GlobalIndex = typename LocalView::MultiIndex

◆ GridView

template<typename BH , typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
using Ikarus::FETraits< BH, FER, useEigenRef, useFlat >::GridView = typename Basis::GridView

◆ LocalView

template<typename BH , typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
using Ikarus::FETraits< BH, FER, useEigenRef, useFlat >::LocalView = typename Basis::LocalView

◆ MatrixType

template<typename BH , typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
template<typename ScalarType = ctype>
using Ikarus::FETraits< BH, FER, useEigenRef, useFlat >::MatrixType = std::conditional_t<useEigenRef, Eigen::Ref<Eigen::MatrixX<ScalarType> >, Eigen::MatrixX<ScalarType>&>

◆ ParameterSpaceType

template<typename BH , typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
using Ikarus::FETraits< BH, FER, useEigenRef, useFlat >::ParameterSpaceType = Eigen::Matrix<ctype, mydim, 1>

◆ UntouchedBasis

template<typename BH , typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
using Ikarus::FETraits< BH, FER, useEigenRef, useFlat >::UntouchedBasis = typename BasisHandler::UntouchedBasis

◆ VectorType

template<typename BH , typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
template<typename ScalarType = ctype>
using Ikarus::FETraits< BH, FER, useEigenRef, useFlat >::VectorType = std::conditional_t<useEigenRef, Eigen::Ref<Eigen::VectorX<ScalarType> >, Eigen::VectorX<ScalarType>&>

Member Data Documentation

◆ dimension

template<typename BH , typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
constexpr int Ikarus::FETraits< BH, FER, useEigenRef, useFlat >::dimension = Element::dimension
staticconstexpr

◆ mydim

template<typename BH , typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
constexpr int Ikarus::FETraits< BH, FER, useEigenRef, useFlat >::mydim = Element::mydimension
staticconstexpr

◆ useFlatBasis

template<typename BH , typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
constexpr bool Ikarus::FETraits< BH, FER, useEigenRef, useFlat >::useFlatBasis = useFlat
staticconstexpr

◆ worlddim

template<typename BH , typename FER = FERequirements<>, bool useEigenRef = false, bool useFlat = true>
constexpr int Ikarus::FETraits< BH, FER, useEigenRef, useFlat >::worlddim = Geometry::coorddimension
staticconstexpr

The documentation for this struct was generated from the following file: