Panzer
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
disc-fe
src
Panzer_LocalMeshInfo.hpp
Go to the documentation of this file.
1
// @HEADER
2
// ***********************************************************************
3
//
4
// Panzer: A partial differential equation assembly
5
// engine for strongly coupled complex multiphysics systems
6
// Copyright (2011) Sandia Corporation
7
//
8
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9
// the U.S. Government retains certain rights in this software.
10
//
11
// Redistribution and use in source and binary forms, with or without
12
// modification, are permitted provided that the following conditions are
13
// met:
14
//
15
// 1. Redistributions of source code must retain the above copyright
16
// notice, this list of conditions and the following disclaimer.
17
//
18
// 2. Redistributions in binary form must reproduce the above copyright
19
// notice, this list of conditions and the following disclaimer in the
20
// documentation and/or other materials provided with the distribution.
21
//
22
// 3. Neither the name of the Corporation nor the names of the
23
// contributors may be used to endorse or promote products derived from
24
// this software without specific prior written permission.
25
//
26
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
//
38
// Questions? Contact Roger P. Pawlowski (rppawlo@sandia.gov) and
39
// Eric C. Cyr (eccyr@sandia.gov)
40
// ***********************************************************************
41
// @HEADER
42
43
#ifndef PANZER_LOCAL_MESH_INFO_HPP
44
#define PANZER_LOCAL_MESH_INFO_HPP
45
46
#include "PanzerCore_config.hpp"
47
#include "Phalanx_KokkosDeviceTypes.hpp"
48
#include "Shards_CellTopology.hpp"
49
#include "Teuchos_RCP.hpp"
50
#include <string>
51
52
namespace
panzer
53
{
54
56
struct
LocalMeshInfoBase
57
{
58
panzer::LocalOrdinal
num_owned_cells
;
59
panzer::LocalOrdinal
num_ghstd_cells
;
60
panzer::LocalOrdinal
num_virtual_cells
;
61
62
// For side support
63
int
subcell_index
;
64
int
subcell_dimension
;
65
66
// Global cell indexes -> [owned] then [ghosted] then [virtual]
67
PHX::View<panzer::GlobalOrdinal*>
global_cells
;
68
69
// These are the cell indexes in the LocalMeshInfo class
70
PHX::View<panzer::LocalOrdinal*>
local_cells
;
71
72
// Vertices
73
PHX::View<double***>
cell_vertices
;
74
75
// Face to neighbors
76
bool
has_connectivity
;
77
PHX::View<panzer::LocalOrdinal*[2]>
face_to_cells
;
78
PHX::View<panzer::LocalOrdinal*[2]>
face_to_lidx
;
79
PHX::View<panzer::LocalOrdinal**>
cell_to_faces
;
80
};
81
83
struct
LocalMeshPartition
:
public
LocalMeshInfoBase
84
{
85
std::string
element_block_name
;
86
Teuchos::RCP<const shards::CellTopology>
cell_topology
;
87
88
// In case this is a sideset
89
std::string
sideset_name
;
90
};
91
97
struct
LocalMeshSidesetInfo
:
public
LocalMeshInfoBase
98
{
99
std::string
sideset_name
;
100
101
std::string
element_block_name
;
102
103
// Cell topology associated with element_block_name
104
Teuchos::RCP<const shards::CellTopology>
cell_topology
;
105
};
106
112
struct
LocalMeshBlockInfo
:
public
LocalMeshInfoBase
113
{
114
std::string
element_block_name
;
115
116
Teuchos::RCP<const shards::CellTopology>
cell_topology
;
117
};
118
120
struct
LocalMeshInfo
:
public
LocalMeshInfoBase
121
{
122
// Element block -> block info
123
std::map<std::string, LocalMeshBlockInfo>
element_blocks
;
124
125
// Element block, sideset -> sideset info
126
std::map<std::string, std::map<std::string,LocalMeshSidesetInfo>>
sidesets
;
127
};
128
129
}
130
131
#endif
panzer
Computes .
Definition
Panzer_BasisValues_Evaluator_decl.hpp:54
panzer::LocalMeshBlockInfo
Definition
Panzer_LocalMeshInfo.hpp:113
panzer::LocalMeshBlockInfo::element_block_name
std::string element_block_name
Definition
Panzer_LocalMeshInfo.hpp:114
panzer::LocalMeshBlockInfo::cell_topology
Teuchos::RCP< const shards::CellTopology > cell_topology
Definition
Panzer_LocalMeshInfo.hpp:116
panzer::LocalMeshInfoBase
Definition
Panzer_LocalMeshInfo.hpp:57
panzer::LocalMeshInfoBase::num_owned_cells
panzer::LocalOrdinal num_owned_cells
Definition
Panzer_LocalMeshInfo.hpp:58
panzer::LocalMeshInfoBase::face_to_lidx
PHX::View< panzer::LocalOrdinal *[2]> face_to_lidx
Definition
Panzer_LocalMeshInfo.hpp:78
panzer::LocalMeshInfoBase::subcell_index
int subcell_index
Definition
Panzer_LocalMeshInfo.hpp:63
panzer::LocalMeshInfoBase::global_cells
PHX::View< panzer::GlobalOrdinal * > global_cells
Definition
Panzer_LocalMeshInfo.hpp:67
panzer::LocalMeshInfoBase::num_ghstd_cells
panzer::LocalOrdinal num_ghstd_cells
Definition
Panzer_LocalMeshInfo.hpp:59
panzer::LocalMeshInfoBase::cell_vertices
PHX::View< double *** > cell_vertices
Definition
Panzer_LocalMeshInfo.hpp:73
panzer::LocalMeshInfoBase::subcell_dimension
int subcell_dimension
Definition
Panzer_LocalMeshInfo.hpp:64
panzer::LocalMeshInfoBase::num_virtual_cells
panzer::LocalOrdinal num_virtual_cells
Definition
Panzer_LocalMeshInfo.hpp:60
panzer::LocalMeshInfoBase::face_to_cells
PHX::View< panzer::LocalOrdinal *[2]> face_to_cells
Definition
Panzer_LocalMeshInfo.hpp:77
panzer::LocalMeshInfoBase::cell_to_faces
PHX::View< panzer::LocalOrdinal ** > cell_to_faces
Definition
Panzer_LocalMeshInfo.hpp:79
panzer::LocalMeshInfoBase::local_cells
PHX::View< panzer::LocalOrdinal * > local_cells
Definition
Panzer_LocalMeshInfo.hpp:70
panzer::LocalMeshInfoBase::has_connectivity
bool has_connectivity
Definition
Panzer_LocalMeshInfo.hpp:76
panzer::LocalMeshInfo
Definition
Panzer_LocalMeshInfo.hpp:121
panzer::LocalMeshInfo::sidesets
std::map< std::string, std::map< std::string, LocalMeshSidesetInfo > > sidesets
Definition
Panzer_LocalMeshInfo.hpp:126
panzer::LocalMeshInfo::element_blocks
std::map< std::string, LocalMeshBlockInfo > element_blocks
Definition
Panzer_LocalMeshInfo.hpp:123
panzer::LocalMeshPartition
Definition
Panzer_LocalMeshInfo.hpp:84
panzer::LocalMeshPartition::cell_topology
Teuchos::RCP< const shards::CellTopology > cell_topology
Definition
Panzer_LocalMeshInfo.hpp:86
panzer::LocalMeshPartition::sideset_name
std::string sideset_name
Definition
Panzer_LocalMeshInfo.hpp:89
panzer::LocalMeshPartition::element_block_name
std::string element_block_name
Definition
Panzer_LocalMeshInfo.hpp:85
panzer::LocalMeshSidesetInfo
Definition
Panzer_LocalMeshInfo.hpp:98
panzer::LocalMeshSidesetInfo::cell_topology
Teuchos::RCP< const shards::CellTopology > cell_topology
Definition
Panzer_LocalMeshInfo.hpp:104
panzer::LocalMeshSidesetInfo::element_block_name
std::string element_block_name
Definition
Panzer_LocalMeshInfo.hpp:101
panzer::LocalMeshSidesetInfo::sideset_name
std::string sideset_name
Definition
Panzer_LocalMeshInfo.hpp:99
Generated by
1.17.0