NiHu  2.0
function_space.hpp File Reference

declaration of class function_space More...

#include "../util/casted_iterator.hpp"
#include "../util/crtp_base.hpp"
#include "../util/type2tag.hpp"
#include "field.hpp"
#include "field_dimension.hpp"
#include "mesh.hpp"
Include dependency graph for function_space.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  NiHu::function_space_traits< Derived >
 traits class of function spaces More...
 
class  NiHu::function_space_base< Derived >
 CRTP base class of function spaces. More...
 
class  NiHu::function_space_impl< Derived >
 implementation class of function spaces More...
 
class  NiHu::function_space_view< Mesh, FieldOption, Dimension >
 A mesh extended with a Field generating option. More...
 
struct  NiHu::function_space_traits< function_space_view< Mesh, FieldOption, Dimension > >
 traits class of a function space view More...
 
struct  NiHu::function_space_traits< function_space_view< Mesh, FieldOption, Dimension > >::iterator< field_t >
 the iterator class traversing a field subvector More...
 
struct  NiHu::function_space_impl_internal::get_num_dofs< Mesh, FieldOption, Dimension >
 
struct  NiHu::function_space_impl_internal::get_num_dofs< Mesh, field_option::constant, Dimension >
 
struct  NiHu::function_space_impl_internal::get_num_dofs< Mesh, field_option::isoparametric, Dimension >
 
class  NiHu::function_space_impl< function_space_view< Mesh, FieldOption, Dimension > >
 implementation class of NiHu::function_space_view More...
 
class  NiHu::function_space_view< Mesh, FieldOption, Dimension >
 A mesh extended with a Field generating option. More...
 
class  NiHu::dirac_space< FuncSpace >
 Dirac-like extension of a function space. More...
 
struct  NiHu::function_space_traits< dirac_space< FuncSpace > >
 traits class of a NiHu::dirac_space More...
 
struct  NiHu::function_space_traits< dirac_space< FuncSpace > >::iterator< dirac_field_t >
 the iterator class traversing a field subvector More...
 
class  NiHu::dirac_space< FuncSpace >
 Dirac-like extension of a function space. More...
 
class  NiHu::function_space< FieldTypeVector >
 class describing a function space More...
 
struct  NiHu::field_2_elem_type_vector< FieldTypeVector >
 metafunction to return the element type vector of a field type vector More...
 
struct  NiHu::field_2_elem_type_vector< FieldTypeVector >::elemize< field_t >
 helper metafunction to extract the element type of a field More...
 
struct  NiHu::function_space_traits< function_space< FieldTypeVector > >
 Traits class of a function space. More...
 
struct  NiHu::function_space_traits< function_space< FieldTypeVector > >::iterator< field_t >
 the iterator type of a field type subvector More...
 
class  NiHu::function_space_impl< function_space< FieldTypeVector > >
 class describing a function space More...
 
struct  NiHu::function_space_impl< function_space< FieldTypeVector > >::field_adder< field_t >
 subclass called by call_each to add a field to the function space More...
 
struct  NiHu::function_space_impl< function_space< FieldTypeVector > >::field_adder< field_t >::type
 
class  NiHu::function_space< FieldTypeVector >
 class describing a function space More...
 
class  NiHu::directional_derivative_field_iterator< DerivedField, OriginalIterator >
 iterator class for iterating over a directional derivative function space More...
 
class  NiHu::directional_derivative_field_iterator< directional_derivative_field< Field >, OriginalIterator >
 implementation of the iterator class More...
 
class  NiHu::directional_derivative_function_space< FunctionSpace >
 directional derivative of a function space More...
 
struct  NiHu::function_space_traits< directional_derivative_function_space< FunctionSpace > >
 traits of the directional derivative function space More...
 
struct  NiHu::function_space_traits< directional_derivative_function_space< FunctionSpace > >::iterator< field_t >
 
struct  NiHu::function_space_traits< directional_derivative_function_space< FunctionSpace > >::iterator< directional_derivative_field< original_field_t > >
 
class  NiHu::directional_derivative_function_space< FunctionSpace >
 directional derivative of a function space More...
 
struct  NiHu::is_function_space< FuncSpace >
 metafunction determining if argument is function space expression More...
 

Functions

template<class Mesh , class Option , class Dimension = field_dimension::_1d>
const function_space_view< Mesh, Option, Dimension > & NiHu::create_function_space_view (mesh_base< Mesh > const &msh, Option, Dimension dim=Dimension())
 factory function to transform a mesh into a function space More...
 
template<class Mesh , class Dimension = field_dimension::_1d>
const function_space_view< Mesh, field_option::isoparametric, Dimension > & NiHu::isoparametric_view (mesh_base< Mesh > const &msh, Dimension dim=Dimension())
 factory function to transform a mesh into an isoparametric function space More...
 
template<class Mesh , class Dimension = field_dimension::_1d>
const function_space_view< Mesh, field_option::constant, Dimension > & NiHu::constant_view (mesh_base< Mesh > const &msh, Dimension dim=Dimension())
 factory function to transform a mesh into a constant function space More...
 
template<class FuncSpace >
const dirac_space< FuncSpace > & NiHu::dirac (function_space_base< FuncSpace > const &space)
 factory function to convert a function space into a dirac space More...
 
template<class nodes_t , class elements_t , class... fields_t>
function_space< tmp::vector< typename tag2type< fields_t >::type... > > NiHu::create_function_space (nodes_t const &nodes, elements_t const &elements, fields_t const &...fields)
 factory function to create a function space from fields More...
 
template<class FunctionSpace , class Direction >
directional_derivative_function_space< FunctionSpace > NiHu::directional_derivative (function_space_base< FunctionSpace > const &fs, Eigen::MatrixBase< Direction > const &direction)
 

Detailed Description

declaration of class function_space

Definition in file function_space.hpp.

Function Documentation

◆ constant_view()

template<class Mesh , class Dimension = field_dimension::_1d>
const function_space_view<Mesh, field_option::constant, Dimension>& NiHu::constant_view ( mesh_base< Mesh > const &  msh,
Dimension  dim = Dimension() 
)

factory function to transform a mesh into a constant function space

Template Parameters
Meshthe mesh type
Parameters
[in]mshmesh reference
[in]dimthe function space's dimension
Returns
constant function space view of the mesh

Definition at line 304 of file function_space.hpp.

◆ create_function_space()

template<class nodes_t , class elements_t , class... fields_t>
function_space<tmp::vector<typename tag2type<fields_t>::type...> > NiHu::create_function_space ( nodes_t const &  nodes,
elements_t const &  elements,
fields_t const &...  fields 
)

factory function to create a function space from fields

Template Parameters
nodes_tthe nodes matrix type
elements_tthe elements matrix type
fields_tthe field matrix type
Parameters
[in]nodesthe nodes matrix
[in]elementsthe field description matrix
[in]fieldsthe field tag instances

Definition at line 664 of file function_space.hpp.

◆ create_function_space_view()

template<class Mesh , class Option , class Dimension = field_dimension::_1d>
const function_space_view<Mesh, Option, Dimension>& NiHu::create_function_space_view ( mesh_base< Mesh > const &  msh,
Option  ,
Dimension  dim = Dimension() 
)

factory function to transform a mesh into a function space

Template Parameters
Meshthe mesh type
Optionthe field generation option
Parameters
[in]mshmesh reference
[in]dimthe function space's dimension
Returns
function space view of the mesh

Definition at line 278 of file function_space.hpp.

◆ dirac()

template<class FuncSpace >
const dirac_space<FuncSpace>& NiHu::dirac ( function_space_base< FuncSpace > const &  space)

factory function to convert a function space into a dirac space

Template Parameters
FuncSpacethe function space to convert
Parameters
[in]spacethe function space reference to convert
Returns
the converted dirac space reference

Definition at line 400 of file function_space.hpp.

◆ isoparametric_view()

template<class Mesh , class Dimension = field_dimension::_1d>
const function_space_view<Mesh, field_option::isoparametric, Dimension>& NiHu::isoparametric_view ( mesh_base< Mesh > const &  msh,
Dimension  dim = Dimension() 
)

factory function to transform a mesh into an isoparametric function space

Template Parameters
Meshthe mesh type
Parameters
[in]mshmesh reference
[in]dimthe function space's dimension
Returns
isoparametric function space view of the mesh

Definition at line 291 of file function_space.hpp.