Feel++ 0.111.0-preview.14
Finite Element Embedded Library in C++
Traits

Traits provided by the library. More...

+ Collaboration diagram for Traits:
template<typename MeshType >
using Feel::is_mesh = typename std::is_base_of< MeshBase<>, decay_type< MeshType > >::type
 if T has base class MeshBase<> (hense if it is a function space) then provides the member constant value equal to true, false otherwise
 
template<typename MeshType >
using Feel::mesh_t = decay_type< MeshType >
 provides the mesh type if MeshType is a shared_ptr of a Mesh then provides the mesh type More...
 
template<typename T >
using Feel::is_scalar_field = typename std::is_base_of< ScalarBase, T >::type
 if T has base class ScalarBase then More...
 
template<typename T >
using Feel::is_vector_field = typename std::is_base_of< VectorialBase, T >::type
 if T has base class VectorialBase then More...
 
template<typename T >
using Feel::is_tensor2_field = typename std::is_base_of< Tensor2Base, T >::type
 if T has base class Tensor2Base then More...
 
template<typename T >
using Feel::is_tensor2symm_field = typename std::is_base_of< Tensor2SymmBase, T >::type
 if T has base class Tensor2SymmBase then More...
 
using Feel::tensor2symm_true = std::integral_constant< bool, true >
 
using Feel::tensor2symm_false = std::integral_constant< bool, false >
 
template<typename FuncSpaceType >
using Feel::is_functionspace = typename std::is_base_of< FunctionSpaceBase, decay_type< FuncSpaceType > >::type
 if T has base class FunctionSpaceBase (hense if it is a function space) then provides the member constant value equal to true, false otherwise
 
template<typename FESpace >
using Feel::functionspace_type = typename mpl::if_< is_functionspace< decay_type< FESpace > >, mpl::identity< decay_type< FESpace > >, mpl::identity< void > >::type::type
 provides the function space type if FESpace is a shared_ptr of a function space then provides the function space type More...
 
template<typename ElementType >
using Feel::is_functionspace_element = typename std::is_base_of< FunctionSpaceBase::ElementBase, ElementType >::type
 if T has base class ElementBase (hense if it is an element of a function space) then provides the member constant value equal to true, false otherwise
 
template<typename ElementT >
using Feel::functionspace_element_type = typename mpl::if_< is_functionspace_element< decay_type< ElementT > >, mpl::identity< decay_type< ElementT > >, mpl::identity< void > >::type::type
 provides the function space type if FESpace is a shared_ptr of a function space then provides the function space type More...
 
template<typename MeshType , int TheTag = 0>
using Feel::elements_mesh_t = typename elements_mesh< MeshType, TheTag >::type
 get the type of the mesh of topological dimension 2 More...
 
template<typename MeshType , int TheTag = 0>
using Feel::elements_mesh_ptr_t = typename elements_mesh< MeshType, TheTag >::ptrtype
 get the shared_ptr type of the mesh of topological dimension 2 More...
 
template<typename MeshType , int TheTag = 0>
using Feel::elements_mesh_cptr_t = typename elements_mesh< MeshType, TheTag >::const_ptrtype
 get the shared_ptr type of the mesh of topological dimension 2 More...
 
template<typename MeshType , int TheTag = 0>
using Feel::faces_mesh_t = typename faces_mesh< MeshType, TheTag >::type
 get the type of the mesh of topological dimension 2 More...
 
template<typename MeshType , int TheTag = 0>
using Feel::faces_mesh_ptr_t = typename faces_mesh< MeshType, TheTag >::ptrtype
 get the shared_ptr type of the mesh of topological dimension 2 More...
 
template<typename MeshType , int TheTag = 0>
using Feel::faces_mesh_cptr_t = typename faces_mesh< MeshType, TheTag >::const_ptrtype
 get the shared_ptr type of the mesh of topological dimension 2 More...
 
template<typename MeshType , int TheTag = 0>
using Feel::facets_mesh_t = typename facets_mesh< MeshType, TheTag >::type
 get the type of the mesh of topological dimension 2 More...
 
template<typename MeshType , int TheTag = 0>
using Feel::facets_mesh_ptr_t = typename facets_mesh< MeshType, TheTag >::ptrtype
 get the shared_ptr type of the mesh of topological dimension 2 More...
 
template<typename MeshType , int TheTag = 0>
using Feel::facets_mesh_cptr_t = typename facets_mesh< MeshType, TheTag >::const_ptrtype
 get the shared_ptr type of the mesh of topological dimension 2 More...
 
template<typename MeshType , int TheTag = 0>
using Feel::edges_mesh_t = typename edges_mesh< MeshType, TheTag >::type
 get the type of the mesh of topological dimension 2 More...
 
template<typename MeshType , int TheTag = 0>
using Feel::edges_mesh_ptr_t = typename edges_mesh< MeshType, TheTag >::ptrtype
 get the shared_ptr type of the mesh of topological dimension 2 More...
 
template<typename MeshType , int TheTag = 0>
using Feel::edges_mesh_cptr_t = typename edges_mesh< MeshType, TheTag >::const_ptrtype
 get the shared_ptr type of the mesh of topological dimension 2 More...
 
template<typename MeshType , int TheTag = 0>
using Feel::parent_mesh_t = typename parent_mesh< MeshType, TheTag >::type
 get the type of the mesh of topological dimension d+1 if the real dimension of the mesh is d+1 More...
 
template<typename MeshType , int TheTag = 0>
using Feel::parent_mesh_ptr_t = typename parent_mesh< MeshType, TheTag >::ptrtype
 get the shared_ptr type of the mesh of topological dimension d+1 if the real dimension of the mesh is d+1 More...
 
template<typename MeshType , int TheTag = 0>
using Feel::parent_mesh_cptr_t = typename parent_mesh< MeshType, TheTag >::const_ptrtype
 get the shared_ptr type of the mesh of topological dimension d+1 if the real dimension of the mesh is d+1 More...
 
template<typename MeshType , int TheTag = 0>
using Feel::trace_mesh_t = typename trace_mesh< MeshType, TheTag >::type
 get type of the trace of a mesh More...
 
template<typename MeshType , int TheTag = 0>
using Feel::trace_mesh_ptr_t = typename trace_mesh< MeshType, TheTag >::ptrtype
 get the shared_ptr type of the trace of a mesh More...
 
template<typename MeshType , int TheTag = 0>
using Feel::trace_mesh_cptr_t = typename trace_mesh< MeshType, TheTag >::const_ptrtype
 get the shared_ptr type of the trace of a const mesh More...
 
template<typename MeshType , int TheTag = 0>
using Feel::trace_trace_mesh_t = typename trace_trace_mesh< MeshType, TheTag >::type
 get type of the trace of the trace of a mesh More...
 
template<typename MeshType , int TheTag = 0>
using Feel::trace_trace_mesh_ptr_t = typename trace_trace_mesh< MeshType, TheTag >::ptrtype
 get the shared_ptr type of the trace of the trace of a mesh More...
 
template<typename MeshType , int TheTag = 0>
using Feel::trace_trace_mesh_cptr_t = typename trace_trace_mesh< MeshType, TheTag >::const_ptrtype
 get the shared_ptr type of the trace of the trace of a const mesh More...
 
template<typename MeshType >
constexpr bool Feel::is_mesh_v = is_mesh<MeshType>::value
 helper variable template for is_mesh
 
template<typename MeshType >
constexpr bool Feel::is_simplex_mesh_v = is_simplex_v<typename MeshType::shape_type>
 
template<typename T >
constexpr bool Feel::is_scalar_field_v = is_scalar_field<T>::value
 helper variable template for is_scalar_field
 
template<typename T >
constexpr bool Feel::is_vector_field_v = is_vector_field<T>::value
 helper variable template for is_vector_field
 
template<typename T >
constexpr bool Feel::is_tensor2_field_v = is_tensor2_field<T>::value
 helper variable template for is_tensor2_field
 
template<typename T >
constexpr bool Feel::is_tensor2symm_field_v = is_tensor2symm_field<T>::value
 helper variable template for is_tensor2symm_field
 
template<typename T >
constexpr bool Feel::is_matrix_field_v = is_tensor2_field_v<T> || is_tensor2symm_field_v<T>
 helper variable template, More...
 
template<typename FuncSpaceType >
constexpr bool Feel::is_functionspace_v = is_functionspace<FuncSpaceType>::value
 helper variable template for is_functionspace
 
template<typename ElementType >
constexpr bool Feel::is_functionspace_element_v = is_functionspace_element<ElementType>::value
 helper variable template for is_functionspace_element
 
template<typename MeshType >
requires is_mesh_v<MeshType>
constexpr int Feel::topodim (std::shared_ptr< MeshType > const &m)
 
template<typename MeshType >
requires is_mesh_v<MeshType>
constexpr int Feel::realdim (std::shared_ptr< MeshType > const &m)
 

Detailed Description

Traits provided by the library.

Typedef Documentation

◆ edges_mesh_cptr_t

template<typename MeshType , int TheTag = 0>
using Feel::edges_mesh_cptr_t = typedef typename edges_mesh<MeshType,TheTag>::const_ptrtype

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get the shared_ptr type of the mesh of topological dimension 2

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ edges_mesh_ptr_t

template<typename MeshType , int TheTag = 0>
using Feel::edges_mesh_ptr_t = typedef typename edges_mesh<MeshType,TheTag>::ptrtype

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get the shared_ptr type of the mesh of topological dimension 2

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ edges_mesh_t

template<typename MeshType , int TheTag = 0>
using Feel::edges_mesh_t = typedef typename edges_mesh<MeshType,TheTag>::type

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get the type of the mesh of topological dimension 2

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ elements_mesh_cptr_t

template<typename MeshType , int TheTag = 0>
using Feel::elements_mesh_cptr_t = typedef typename elements_mesh<MeshType,TheTag>::const_ptrtype

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get the shared_ptr type of the mesh of topological dimension 2

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ elements_mesh_ptr_t

template<typename MeshType , int TheTag = 0>
using Feel::elements_mesh_ptr_t = typedef typename elements_mesh<MeshType,TheTag>::ptrtype

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get the shared_ptr type of the mesh of topological dimension 2

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ elements_mesh_t

template<typename MeshType , int TheTag = 0>
using Feel::elements_mesh_t = typedef typename elements_mesh<MeshType,TheTag>::type

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get the type of the mesh of topological dimension 2

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ faces_mesh_cptr_t

template<typename MeshType , int TheTag = 0>
using Feel::faces_mesh_cptr_t = typedef typename faces_mesh<MeshType,TheTag>::const_ptrtype

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get the shared_ptr type of the mesh of topological dimension 2

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ faces_mesh_ptr_t

template<typename MeshType , int TheTag = 0>
using Feel::faces_mesh_ptr_t = typedef typename faces_mesh<MeshType,TheTag>::ptrtype

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get the shared_ptr type of the mesh of topological dimension 2

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ faces_mesh_t

template<typename MeshType , int TheTag = 0>
using Feel::faces_mesh_t = typedef typename faces_mesh<MeshType,TheTag>::type

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get the type of the mesh of topological dimension 2

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ facets_mesh_cptr_t

template<typename MeshType , int TheTag = 0>
using Feel::facets_mesh_cptr_t = typedef typename facets_mesh<MeshType,TheTag>::const_ptrtype

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get the shared_ptr type of the mesh of topological dimension 2

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ facets_mesh_ptr_t

template<typename MeshType , int TheTag = 0>
using Feel::facets_mesh_ptr_t = typedef typename facets_mesh<MeshType,TheTag>::ptrtype

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get the shared_ptr type of the mesh of topological dimension 2

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ facets_mesh_t

template<typename MeshType , int TheTag = 0>
using Feel::facets_mesh_t = typedef typename facets_mesh<MeshType,TheTag>::type

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get the type of the mesh of topological dimension 2

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ functionspace_element_type

template<typename ElementT >
using Feel::functionspace_element_type = typedef typename mpl::if_<is_functionspace_element<decay_type<ElementT> >, mpl::identity<decay_type<ElementT> >, mpl::identity<void> >::type::type

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

provides the function space type if FESpace is a shared_ptr of a function space then provides the function space type

Note
it checks that FESpace is indeed a functionspace type and return void if it is not the case.

◆ functionspace_type

template<typename FESpace >
using Feel::functionspace_type = typedef typename mpl::if_<is_functionspace<decay_type<FESpace> >, mpl::identity<decay_type<FESpace> >, mpl::identity<void> >::type::type

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

provides the function space type if FESpace is a shared_ptr of a function space then provides the function space type

Note
it checks that FESpace is indeed a functionspace type and return void if it is not the case.
Examples
/data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/concepts.hpp.

◆ is_scalar_field

template<typename T >
using Feel::is_scalar_field = typedef typename std::is_base_of<ScalarBase, T>::type

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

if T has base class ScalarBase then

Returns
the member constant value equal to true, false otherwise

◆ is_tensor2_field

template<typename T >
using Feel::is_tensor2_field = typedef typename std::is_base_of<Tensor2Base, T>::type

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

if T has base class Tensor2Base then

Returns
the member constant value equal to true, false otherwise

◆ is_tensor2symm_field

template<typename T >
using Feel::is_tensor2symm_field = typedef typename std::is_base_of<Tensor2SymmBase, T>::type

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

if T has base class Tensor2SymmBase then

Returns
the member constant value equal to true, false otherwise

◆ is_vector_field

template<typename T >
using Feel::is_vector_field = typedef typename std::is_base_of<VectorialBase, T>::type

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

if T has base class VectorialBase then

Returns
the member constant value equal to true, false otherwise

◆ mesh_t

template<typename MeshType >
using Feel::mesh_t = typedef decay_type<MeshType>

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

provides the mesh type if MeshType is a shared_ptr of a Mesh then provides the mesh type

Note
it checks that the Mesh is indeed a mesh type and return void if it is not the case.

◆ parent_mesh_cptr_t

template<typename MeshType , int TheTag = 0>
using Feel::parent_mesh_cptr_t = typedef typename parent_mesh<MeshType,TheTag>::const_ptrtype

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get the shared_ptr type of the mesh of topological dimension d+1 if the real dimension of the mesh is d+1

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ parent_mesh_ptr_t

template<typename MeshType , int TheTag = 0>
using Feel::parent_mesh_ptr_t = typedef typename parent_mesh<MeshType,TheTag>::ptrtype

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get the shared_ptr type of the mesh of topological dimension d+1 if the real dimension of the mesh is d+1

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ parent_mesh_t

template<typename MeshType , int TheTag = 0>
using Feel::parent_mesh_t = typedef typename parent_mesh<MeshType,TheTag>::type

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get the type of the mesh of topological dimension d+1 if the real dimension of the mesh is d+1

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ trace_mesh_cptr_t

template<typename MeshType , int TheTag = 0>
using Feel::trace_mesh_cptr_t = typedef typename trace_mesh<MeshType, TheTag>::const_ptrtype

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get the shared_ptr type of the trace of a const mesh

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ trace_mesh_ptr_t

template<typename MeshType , int TheTag = 0>
using Feel::trace_mesh_ptr_t = typedef typename trace_mesh<MeshType, TheTag>::ptrtype

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get the shared_ptr type of the trace of a mesh

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ trace_mesh_t

template<typename MeshType , int TheTag = 0>
using Feel::trace_mesh_t = typedef typename trace_mesh<MeshType,TheTag>::type

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get type of the trace of a mesh

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ trace_trace_mesh_cptr_t

template<typename MeshType , int TheTag = 0>
using Feel::trace_trace_mesh_cptr_t = typedef typename trace_trace_mesh<MeshType, TheTag>::const_ptrtype

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get the shared_ptr type of the trace of the trace of a const mesh

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ trace_trace_mesh_ptr_t

template<typename MeshType , int TheTag = 0>
using Feel::trace_trace_mesh_ptr_t = typedef typename trace_trace_mesh<MeshType, TheTag>::ptrtype

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get the shared_ptr type of the trace of the trace of a mesh

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

◆ trace_trace_mesh_t

template<typename MeshType , int TheTag = 0>
using Feel::trace_trace_mesh_t = typedef typename trace_trace_mesh<MeshType,TheTag>::type

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

get type of the trace of the trace of a mesh

Template Parameters
MeshTypetype of the mesh
TheTagtag of the mesh

Function Documentation

◆ realdim()

template<typename MeshType >
requires is_mesh_v<MeshType>
constexpr int Feel::realdim ( std::shared_ptr< MeshType > const &  m)
constexpr

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

Returns
the real dimension in which the mesh is defined

◆ topodim()

template<typename MeshType >
requires is_mesh_v<MeshType>
constexpr int Feel::topodim ( std::shared_ptr< MeshType > const &  m)
constexpr

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

Returns
the topogical dimension of the mesh m

Variable Documentation

◆ is_matrix_field_v

template<typename T >
constexpr bool Feel::is_matrix_field_v = is_tensor2_field_v<T> || is_tensor2symm_field_v<T>
constexpr

#include </data/cemosis/github-actions-runner/actions-runner-feelpp-1/_work/feelpp/feelpp/feelpp/feel/feeldiscr/traits.hpp>

helper variable template,

Returns
true of field is a matrix field field, false otherwise