2#ifndef DISCRETE_SPACE_DESCRIPTOR_HPP 
    3#define DISCRETE_SPACE_DESCRIPTOR_HPP 
   10#include <boost/fusion/include/sequence.hpp> 
   11#include <boost/fusion/include/map.hpp> 
   39    typedef boost::fusion::vector<PolyCellType, PolyEdgeType, PolynCellType, PolynxnCellType, PolynEdgeType, RolyCellType, RolyComplCellType, GolyCellType, GolyComplCellType, RealVertexType, RealnVertexType, RealnxnVertexType, SymPolynxnCellType> 
LocalPolynomialSpaces;
 
   65                              const std::string & 
name,
 
   67                              std::ostream & 
output = std::cout
 
   70      inline const std::string & 
name()
 const {
 
 
  138        return m_n_cell_dofs;
 
 
  143        return m_cell_dofs.at(dof_name);
 
 
  148        return m_n_edge_dofs;
 
 
  153        return m_edge_dofs.at(dof_name);
 
 
  158        return m_n_vertex_dofs;
 
 
  163        return m_vertex_dofs.at(dof_name);
 
 
  169        return boost::fusion::at_key<T>(m_dofs);
 
 
  172      const std::map<std::string, size_t> & 
cellDofs()
 const {
 
 
  176      const std::map<std::string, size_t> & 
edgeDofs()
 const {
 
 
  181        return m_vertex_dofs;
 
 
  187      std::ostream & m_output;
 
  189      std::map<std::string, size_t> m_cell_dofs;
 
  190      std::map<std::string, size_t> m_edge_dofs;
 
  191      std::map<std::string, size_t> m_vertex_dofs;
 
  194      size_t m_n_cell_dofs;
 
  195      size_t m_n_edge_dofs;
 
  196      size_t m_n_vertex_dofs;
 
  199                         boost::fusion::pair<PolyCellType, std::list<LocalPolynomialSpaceDescriptor> >,
 
  200                         boost::fusion::pair<PolyEdgeType, std::list<LocalPolynomialSpaceDescriptor> >,
 
  201                         boost::fusion::pair<PolynCellType, std::list<LocalPolynomialSpaceDescriptor> >,
 
  202                         boost::fusion::pair<PolynxnCellType, std::list<LocalPolynomialSpaceDescriptor> >,
 
  203                         boost::fusion::pair<PolynEdgeType, std::list<LocalPolynomialSpaceDescriptor> >,
 
  204                         boost::fusion::pair<RolyCellType, std::list<LocalPolynomialSpaceDescriptor> >,
 
  205                         boost::fusion::pair<RolyComplCellType, std::list<LocalPolynomialSpaceDescriptor> >,
 
  206                         boost::fusion::pair<GolyCellType, std::list<LocalPolynomialSpaceDescriptor> >,
 
  207                         boost::fusion::pair<GolyComplCellType, std::list<LocalPolynomialSpaceDescriptor> >,
 
  208                         boost::fusion::pair<RealVertexType, std::list<LocalPolynomialSpaceDescriptor> >,
 
  209                         boost::fusion::pair<RealnVertexType, std::list<LocalPolynomialSpaceDescriptor> >,
 
  210                         boost::fusion::pair<RealnxnVertexType, std::list<LocalPolynomialSpaceDescriptor> >,
 
  211                         boost::fusion::pair<SymPolynxnCellType, std::list<LocalPolynomialSpaceDescriptor> >
 
 
  215    DiscreteSpaceDescriptor::LocalPolynomialSpaceDescriptor 
make_dof(
const std::string name, 
size_t degree);
 
Definition discrete-space-descriptor.hpp:43
 
std::ostream & output()
Definition discrete-space-descriptor.hpp:78
 
size_t numberOfLocalEdgeDofs() const
Definition discrete-space-descriptor.hpp:146
 
DiscreteSpaceDescriptor & addPolynEdge(const LocalPolynomialSpaceDescriptor &descriptor)
Definition discrete-space-descriptor.cpp:92
 
DiscreteSpaceDescriptor & addPolyEdge(const LocalPolynomialSpaceDescriptor &descriptor)
Definition discrete-space-descriptor.cpp:41
 
const std::map< std::string, size_t > & vertexDofs() const
Definition discrete-space-descriptor.hpp:180
 
DiscreteSpaceDescriptor & addRolyCell(const LocalPolynomialSpaceDescriptor &descriptor)
Definition discrete-space-descriptor.cpp:109
 
DiscreteSpaceDescriptor & addPolynxnCell(const LocalPolynomialSpaceDescriptor &descriptor)
Definition discrete-space-descriptor.cpp:75
 
DiscreteSpaceDescriptor & addRealnVertex(const LocalPolynomialSpaceDescriptor &descriptor)
Definition discrete-space-descriptor.cpp:194
 
const std::map< std::string, size_t > & edgeDofs() const
Definition discrete-space-descriptor.hpp:176
 
DiscreteSpaceDescriptor & addGolyComplCell(const LocalPolynomialSpaceDescriptor &descriptor)
Definition discrete-space-descriptor.cpp:160
 
DiscreteSpaceDescriptor & addPolynCell(const LocalPolynomialSpaceDescriptor &descriptor)
Definition discrete-space-descriptor.cpp:58
 
size_t numberOfLocalVertexDofs(const std::string &dof_name) const
Definition discrete-space-descriptor.hpp:161
 
DiscreteSpaceDescriptor & addGolyCell(const LocalPolynomialSpaceDescriptor &descriptor)
Definition discrete-space-descriptor.cpp:143
 
size_t numberOfLocalCellDofs(const std::string &dof_name) const
Definition discrete-space-descriptor.hpp:141
 
DiscreteSpaceDescriptor & addPolyCell(const LocalPolynomialSpaceDescriptor &descriptor)
Definition discrete-space-descriptor.cpp:24
 
size_t numberOfLocalCellDofs() const
Definition discrete-space-descriptor.hpp:136
 
size_t numberOfLocalEdgeDofs(const std::string &dof_name) const
Definition discrete-space-descriptor.hpp:151
 
const Mesh & mesh() const
Definition discrete-space-descriptor.hpp:74
 
const std::map< std::string, size_t > & cellDofs() const
Definition discrete-space-descriptor.hpp:172
 
DiscreteSpaceDescriptor & addRealVertex(const LocalPolynomialSpaceDescriptor &descriptor)
Definition discrete-space-descriptor.cpp:177
 
const std::string & name() const
Definition discrete-space-descriptor.hpp:70
 
size_t numberOfLocalVertexDofs() const
Definition discrete-space-descriptor.hpp:156
 
DiscreteSpaceDescriptor & addSymPolynxnCell(const LocalPolynomialSpaceDescriptor &descriptor)
Definition discrete-space-descriptor.cpp:228
 
DiscreteSpaceDescriptor & addRealnxnVertex(const LocalPolynomialSpaceDescriptor &descriptor)
Definition discrete-space-descriptor.cpp:211
 
DiscreteSpaceDescriptor & addRolyComplCell(const LocalPolynomialSpaceDescriptor &descriptor)
Definition discrete-space-descriptor.cpp:126
 
const std::list< LocalPolynomialSpaceDescriptor > & getDescriptor() const
Definition discrete-space-descriptor.hpp:167
 
Matrix family obtained from a scalar family.
Definition basis.hpp:750
 
Vector family obtained by tensorization of a scalar family.
Definition basis.hpp:564
 
Eigen::Vector2d VectorRd
Definition basis.hpp:55
 
Eigen::Matrix2d MatrixRd
Definition basis.hpp:54
 
constexpr int dimspace
Dimension, and generic types for vector in correct dimension (makes it easier to translate a code bet...
Definition basis.hpp:53
 
boost::fusion::vector< PolyCellType, PolyEdgeType, PolynCellType, PolynxnCellType, PolynEdgeType, RolyCellType, RolyComplCellType, GolyCellType, GolyComplCellType, RealVertexType, RealnVertexType, RealnxnVertexType, SymPolynxnCellType > LocalPolynomialSpaces
Definition discrete-space-descriptor.hpp:39
 
TensorizedVectorFamily< PolyCellType, static_cast< size_t >(dimspace+1)> SymPolynxnCellType
Definition discrete-space-descriptor.hpp:37
 
Family< GradientBasis< ShiftedBasis< MonomialScalarBasisCell > > > GolyCellType
Definition discrete-space-descriptor.hpp:19
 
TensorizedVectorFamily< PolyCellType, dimspace > PolynCellType
Definition discrete-space-descriptor.hpp:23
 
VectorRd RealnVertexType
Definition discrete-space-descriptor.hpp:26
 
MatrixRd RealnxnVertexType
Definition discrete-space-descriptor.hpp:27
 
Family< GolyComplBasisCell > GolyComplCellType
Definition discrete-space-descriptor.hpp:20
 
double RealVertexType
Definition discrete-space-descriptor.hpp:28
 
TensorizedVectorFamily< Family< MonomialScalarBasisEdge >, dimspace > PolynEdgeType
Definition discrete-space-descriptor.hpp:24
 
Family< RolyComplBasisCell > RolyComplCellType
Definition discrete-space-descriptor.hpp:30
 
Family< CurlBasis< ShiftedBasis< MonomialScalarBasisCell > > > RolyCellType
Definition discrete-space-descriptor.hpp:29
 
Family< MonomialScalarBasisCell > PolyCellType
Definition discrete-space-descriptor.hpp:21
 
MatrixFamily< PolyCellType, dimspace > PolynxnCellType
Definition discrete-space-descriptor.hpp:25
 
DiscreteSpaceDescriptor::LocalPolynomialSpaceDescriptor make_dof(const std::string name, size_t degree)
Definition discrete-space-descriptor.cpp:249
 
Family< MonomialScalarBasisEdge > PolyEdgeType
Definition discrete-space-descriptor.hpp:22
 
Definition ddr-klplate.hpp:27
 
Definition discrete-space-descriptor.hpp:46
 
bool is_dof
Definition discrete-space-descriptor.hpp:61
 
std::string name
Definition discrete-space-descriptor.hpp:59
 
LocalPolynomialSpaceDescriptor(std::string _name, size_t _degree, bool _is_dof)
Definition discrete-space-descriptor.hpp:47
 
size_t degree
Definition discrete-space-descriptor.hpp:60