shards Version of the Day
Loading...
Searching...
No Matches
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
18namespace shards {
19
20typedef CellTopologyData_Subcell Subcell ;
21
22class CellTopologyManagedData : public CellTopologyData
23{
24public:
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
51private:
52 CellTopologyManagedData();
53 CellTopologyManagedData( const CellTopologyManagedData & );
54 CellTopologyManagedData & operator = ( const CellTopologyManagedData & );
55
56private:
57 const std::string m_name ;
58 std::vector< Subcell > m_subcell ;
59 std::vector< unsigned > m_node_map ;
60};
61
62CellTopologyManagedData *
63createCellTopology(
64 const std::string & name );
65
66CellTopologyManagedData *
67createCellTopology(
68 const std::string & name,
69 const unsigned node_count );
70
71CellTopologyManagedData *
72createCellTopology(
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
80CellTopologyManagedData *
81createCellTopology( 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
struct CellTopologyData CellTopologyData
Self-typedef.
const char * name
Intuitive name for this topology.
const struct CellTopologyData * base
Base, a.k.a. not-extended, version of this topology where vertex_count == node_count.