Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Panzer_LocalMeshInfo.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Panzer: A partial differential equation assembly
4 // engine for strongly coupled complex multiphysics systems
5 //
6 // Copyright 2011 NTESS and the Panzer contributors.
7 // SPDX-License-Identifier: BSD-3-Clause
8 // *****************************************************************************
9 // @HEADER
10 
11 #ifndef PANZER_LOCAL_MESH_INFO_HPP
12 #define PANZER_LOCAL_MESH_INFO_HPP
13 
14 #include "PanzerCore_config.hpp"
15 #include "Phalanx_KokkosDeviceTypes.hpp"
16 #include "Shards_CellTopology.hpp"
17 #include "Teuchos_RCP.hpp"
18 #include <string>
19 
20 namespace panzer
21 {
22 
25  {
26  panzer::LocalOrdinal num_owned_cells;
27  panzer::LocalOrdinal num_ghstd_cells;
28  panzer::LocalOrdinal num_virtual_cells;
29 
30  // For side support
33 
34  // Global cell indexes -> [owned] then [ghosted] then [virtual]
35  PHX::View<panzer::GlobalOrdinal*> global_cells;
36 
37  // These are the cell indexes in the LocalMeshInfo class
38  PHX::View<panzer::LocalOrdinal*> local_cells;
39 
40  // Nodes
41  PHX::View<double***> cell_nodes;
42 
43  // Face to neighbors
45  PHX::View<panzer::LocalOrdinal*[2]> face_to_cells;
46  PHX::View<panzer::LocalOrdinal*[2]> face_to_lidx;
47  PHX::View<panzer::LocalOrdinal**> cell_to_faces;
48  };
49 
52  {
53  std::string element_block_name;
55 
56  // In case this is a sideset
57  std::string sideset_name;
58  };
59 
66  {
67  std::string sideset_name;
68 
69  std::string element_block_name;
70 
71  // Cell topology associated with element_block_name
73  };
74 
81  {
82  std::string element_block_name;
83 
85  };
86 
89  {
90  // Element block -> block info
91  std::map<std::string, LocalMeshBlockInfo> element_blocks;
92 
93  // Element block, sideset -> sideset info
94  std::map<std::string, std::map<std::string,LocalMeshSidesetInfo>> sidesets;
95  };
96 
97 }
98 
99 #endif
std::map< std::string, std::map< std::string, LocalMeshSidesetInfo > > sidesets
Teuchos::RCP< const shards::CellTopology > cell_topology
Teuchos::RCP< const shards::CellTopology > cell_topology
PHX::View< panzer::LocalOrdinal * > local_cells
PHX::View< panzer::LocalOrdinal *[2]> face_to_cells
panzer::LocalOrdinal num_owned_cells
panzer::LocalOrdinal num_virtual_cells
Teuchos::RCP< const shards::CellTopology > cell_topology
PHX::View< panzer::LocalOrdinal *[2]> face_to_lidx
panzer::LocalOrdinal num_ghstd_cells
std::map< std::string, LocalMeshBlockInfo > element_blocks
PHX::View< double *** > cell_nodes
PHX::View< panzer::GlobalOrdinal * > global_cells
PHX::View< panzer::LocalOrdinal ** > cell_to_faces