shards  Version of the Day
 All Classes Functions Variables Typedefs Enumerations Enumerator Groups
Shards_CellTopologyManagedData.hpp
1 // @HEADER
2 // *****************************************************************************
3 // Shards : Shared Discretization Tools
4 //
5 // Copyright 2008-2011 NTESS and the Shards contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 //#define HAVE_SHARDS_DEBUG
11 
12 #include <stdexcept>
13 #include <sstream>
14 #include <Shards_CellTopology.hpp>
15 #include <Shards_BasicTopologies.hpp>
16 #include <iostream>
17 
18 namespace shards {
19 
20 typedef CellTopologyData_Subcell Subcell ;
21 
22 class CellTopologyManagedData : public CellTopologyData
23 {
24 public:
26  CellTopologyManagedData( const std::string & name );
27 
29  CellTopologyManagedData( const std::string & name , const unsigned nodeCount );
30 
32  CellTopologyManagedData(
33  const std::string & name,
34  const unsigned vertexCount,
35  const unsigned nodeCount,
36  const std::vector< const CellTopologyData * > & edges ,
37  const std::vector< unsigned > & edge_node_map ,
38  const CellTopologyData * base );
39 
41  CellTopologyManagedData(
42  const std::string & name,
43  const unsigned vertexCount,
44  const unsigned nodeCount,
45  const std::vector< const CellTopologyData * > & edges ,
46  const std::vector< unsigned > & edge_node_map ,
47  const std::vector< const CellTopologyData * > & faces ,
48  const std::vector< unsigned > & face_node_map ,
49  const CellTopologyData * base );
50 
51 private:
52  CellTopologyManagedData();
53  CellTopologyManagedData( const CellTopologyManagedData & );
54  CellTopologyManagedData & operator = ( const CellTopologyManagedData & );
55 
56 private:
57  const std::string m_name ;
58  std::vector< Subcell > m_subcell ;
59  std::vector< unsigned > m_node_map ;
60 };
61 
62 CellTopologyManagedData *
63 createCellTopology(
64  const std::string & name );
65 
66 CellTopologyManagedData *
67 createCellTopology(
68  const std::string & name,
69  const unsigned node_count );
70 
71 CellTopologyManagedData *
72 createCellTopology(
73  const std::string & name,
74  const unsigned vertex_count ,
75  const unsigned node_count,
76  const std::vector< const CellTopologyData * > & edges ,
77  const std::vector< unsigned > & edge_node_map ,
78  const CellTopologyData * base );
79 
80 CellTopologyManagedData *
81 createCellTopology( const std::string & name,
82  const unsigned vertex_count,
83  const unsigned node_count,
84  const std::vector< const CellTopologyData * > & edges ,
85  const std::vector< unsigned > & edge_node_map ,
86  const std::vector< const CellTopologyData * > & faces ,
87  const std::vector< unsigned > & face_node_map ,
88  const CellTopologyData * base);
89 
90 
91 } // namespace shards
A simple &#39;C&#39; struct of cell topology attributes.