MGIS
Loading...
Searching...
No Matches
SpaceConcept.hxx File Reference
#include <concepts>
#include <type_traits>
#include "MGIS/Config.hxx"

Classes

struct  mgis::function::SpaceTraits< SpaceType >
 a quadrature traits class defining the main properties of a space More...
 
struct  mgis::function::internals::UndefinedTypeSelector
 a metafunction returning an undefined type More...
 
struct  mgis::function::internals::ElementIndexTypeSelector< hasElementIndexType, Space >
 a meta function used to return SpaceType::element_index_type if it is defined, UndefinedTypeSelector::Undefined otherwise More...
 
struct  mgis::function::internals::ElementIndexTypeSelector< true, Space >
 
struct  mgis::function::internals::ElementWorkspaceSelector< hasElementWorkspace, Space >
 a meta function used to return SpaceType::ElementWorkspace if it is defined, UndefinedTypeSelector::Undefined otherwise More...
 
struct  mgis::function::internals::ElementWorkspaceSelector< true, Space >
 
struct  mgis::function::internals::CellIndexTypeSelector< hasCellIndexType, Space >
 a meta function used to return SpaceType::cell_index_type if it is defined, UndefinedTypeSelector::Undefined otherwise More...
 
struct  mgis::function::internals::CellIndexTypeSelector< true, Space >
 
struct  mgis::function::internals::QuadraturePointIndexTypeSelector< hasQuadraturePointIndexType, Space >
 a meta function used to return SpaceType::quadrature_point_index_type if it is defined, UndefinedTypeSelector::Undefined otherwise More...
 
struct  mgis::function::internals::QuadraturePointIndexTypeSelector< true, Space >
 
struct  mgis::function::internals::CellWorkspaceSelector< hasCellWorkspace, Space >
 a meta function used to return SpaceType::CellWorkspace if it is defined, UndefinedTypeSelector::Undefined otherwise More...
 
struct  mgis::function::internals::CellWorkspaceSelector< true, Space >
 

Namespaces

namespace  mgis
 the namespace mgis encloses all the MGIS project.
 

Concepts

concept  mgis::function::internals::same_decay_type
 concept satisfied if the given types are the same once std::decay_t is applied
 
concept  mgis::function::SpaceConcept
 a concept describing a space
 
concept  mgis::function::ElementSpaceConcept
 
concept  mgis::function::LinearElementSpaceConcept
 a concept describing a space where all the elements are stored for 0 to getSpaceSize(s) - 1
 
concept  mgis::function::QuadratureSpaceConcept
 a concept describing a quadrature space where values can be addressed by given the element index and the value of the integration points
 
concept  mgis::function::LinearQuadratureSpaceConcept
 
concept  mgis::function::FunctionalSpaceConcept
 
concept  mgis::function::LinearFunctionalSpaceConcept
 

Typedefs

template<SpaceConcept SpaceType>
using mgis::function::element_index = typename internals::ElementIndexTypeSelector< ElementSpaceConcept< SpaceType >, SpaceType >::type
 a simple alias
 
template<SpaceConcept SpaceType>
using mgis::function::element_workspace = typename internals::ElementWorkspaceSelector< hasElementWorkspace< SpaceType >, SpaceType >::type
 a simple alias
 
template<SpaceConcept SpaceType>
using mgis::function::cell_index = typename internals::CellIndexTypeSelector< QuadratureSpaceConcept< SpaceType >, SpaceType >::type
 a simple alias
 
template<SpaceConcept SpaceType>
using mgis::function::quadrature_point_index = typename internals::QuadraturePointIndexTypeSelector< QuadratureSpaceConcept< SpaceType >, SpaceType >::type
 a simple alias
 
template<SpaceConcept SpaceType>
using mgis::function::cell_workspace = typename internals::CellWorkspaceSelector< hasCellWorkspace< SpaceType >, SpaceType >::type
 a simple alias
 

Variables

template<ElementSpaceConcept SpaceType>
constexpr bool mgis::function::hasElementWorkspace
 a simple meta function stating if SpaceType does not expose an ElementWorkspace structure
 
template<SpaceConcept SpaceType>
constexpr bool mgis::function::hasCellWorkspace
 a simple meta function stating if SpaceType does not expose an CellWorkspace structure
 

Detailed Description

Author
Thomas Helfer
Date
01/05/2025

Typedef Documentation

◆ cell_workspace

template<SpaceConcept SpaceType>
using mgis::function::cell_workspace = typedef typename internals::CellWorkspaceSelector<hasCellWorkspace<SpaceType>, SpaceType>::type

a simple alias

Note
this alias leads to an undefined type if SpaceType does not expose an CellWorkspace structure

◆ element_workspace

template<SpaceConcept SpaceType>
using mgis::function::element_workspace = typedef typename internals:: ElementWorkspaceSelector<hasElementWorkspace<SpaceType>, SpaceType>::type

a simple alias

Note
this alias leads to an undefined type if SpaceType does not expose an ElementWorkspace structure

Variable Documentation

◆ hasCellWorkspace

template<SpaceConcept SpaceType>
constexpr bool mgis::function::hasCellWorkspace
inlineconstexpr
Initial value:
= requires {
typename SpaceTraits<SpaceType>::CellWorkspace;
}

a simple meta function stating if SpaceType does not expose an CellWorkspace structure

◆ hasElementWorkspace

template<ElementSpaceConcept SpaceType>
constexpr bool mgis::function::hasElementWorkspace
inlineconstexpr
Initial value:
= requires {
typename SpaceTraits<SpaceType>::ElementWorkspace;
}

a simple meta function stating if SpaceType does not expose an ElementWorkspace structure