9 #ifndef ElemDataRequests_h 10 #define ElemDataRequests_h 12 #include <stk_mesh/base/Field.hpp> 13 #include <stk_mesh/base/FieldBase.hpp> 14 #include <stk_mesh/base/MetaData.hpp> 15 #include <stk_mesh/base/BulkData.hpp> 41 "current_coordinates",
46 FieldInfo(
const stk::mesh::FieldBase* fld,
unsigned scalars)
49 FieldInfo(
const stk::mesh::FieldBase* fld,
unsigned tensorDim1,
unsigned tensorDim2)
52 const stk::mesh::FieldBase*
field;
60 return lhs.
field->mesh_meta_data_ordinal() < rhs.
field->mesh_meta_data_ordinal();
64 typedef std::set<FieldInfo,FieldInfoLess>
FieldSet;
72 fields(), meSCS_(NULL), meSCV_(NULL), meFEM_(NULL)
81 auto it = coordsFields_.find(cType);
83 it != coordsFields_.end(),
84 "ElemDataRequests::add_master_element_call: Coordinates field (" +
85 CoordinatesTypeNames[cType] +
86 ") must be registered to ElemDataRequests before registering MasterElement calls");
87 dataEnums[cType].insert(data);
90 void add_gathered_nodal_field(
const stk::mesh::FieldBase&
field,
unsigned scalarsPerNode);
92 void add_gathered_nodal_field(
const stk::mesh::FieldBase& field,
unsigned tensorDim1,
unsigned tensorDim2);
94 void add_element_field(
const stk::mesh::FieldBase& field,
unsigned scalarsPerElement);
96 void add_element_field(
const stk::mesh::FieldBase& field,
unsigned tensorDim1,
unsigned tensorDim2);
98 void add_coordinates_field(
99 const stk::mesh::FieldBase& field,
100 unsigned scalarsPerNode,
120 {
return dataEnums[cType]; }
125 auto it = coordsFields_.find(cType);
127 it != coordsFields_.end(),
128 "ElemDataRequests::get_coordinates_field: Coordinates field (" +
129 CoordinatesTypeNames[cType] +
130 ") must be registered to ElemDataRequests before access");
134 const std::map<COORDS_TYPES, const stk::mesh::FieldBase*>&
136 {
return coordsFields_; }
Definition: ElemDataRequests.h:27
Definition: ElemDataRequests.h:57
Definition: ElemDataRequests.h:28
FieldInfo(const stk::mesh::FieldBase *fld, unsigned tensorDim1, unsigned tensorDim2)
Definition: ElemDataRequests.h:49
Definition: ABLForcingAlgorithm.C:26
Definition: ElemDataRequests.h:25
Definition: MasterElement.h:53
Definition: ElemDataRequests.h:31
MasterElement * get_cvfem_volume_me()
Definition: ElemDataRequests.h:139
const FieldSet & get_fields() const
Definition: ElemDataRequests.h:138
void add_fem_volume_me(MasterElement *meFEM)
Definition: ElemDataRequests.h:113
MasterElement * meSCV_
Definition: ElemDataRequests.h:148
void add_cvfem_volume_me(MasterElement *meSCV)
Definition: ElemDataRequests.h:103
Definition: ElemDataRequests.h:66
Definition: ElemDataRequests.h:36
static const std::string CoordinatesTypeNames[]
Definition: ElemDataRequests.h:40
Definition: ElemDataRequests.h:37
bool operator()(const FieldInfo &lhs, const FieldInfo &rhs) const
Definition: ElemDataRequests.h:58
MasterElement * meFEM_
Definition: ElemDataRequests.h:149
void add_master_element_call(ELEM_DATA_NEEDED data, COORDS_TYPES cType=CURRENT_COORDINATES)
Definition: ElemDataRequests.h:76
Definition: ElemDataRequests.h:29
MasterElement * get_cvfem_surface_me()
Definition: ElemDataRequests.h:140
void add_cvfem_surface_me(MasterElement *meSCS)
Definition: ElemDataRequests.h:108
static constexpr double lhs[8][8]
Definition: UnitTestContinuityAdvElem.C:25
std::array< std::set< ELEM_DATA_NEEDED >, MAX_COORDS_TYPES > dataEnums
Definition: ElemDataRequests.h:144
ElemDataRequests()
Definition: ElemDataRequests.h:69
static constexpr double rhs[8]
Definition: UnitTestContinuityAdvElem.C:18
FieldInfo(const stk::mesh::FieldBase *fld, unsigned scalars)
Definition: ElemDataRequests.h:46
MasterElement * get_fem_volume_me()
Definition: ElemDataRequests.h:141
const std::map< COORDS_TYPES, const stk::mesh::FieldBase * > & get_coordinates_map() const
Definition: ElemDataRequests.h:135
Definition: ElemDataRequests.h:35
ELEM_DATA_NEEDED
Definition: ElemDataRequests.h:24
FieldSet fields
Definition: ElemDataRequests.h:146
unsigned scalarsDim1
Definition: ElemDataRequests.h:53
const stk::mesh::FieldBase * field
Definition: ElemDataRequests.h:52
Definition: UnitTestMasterElements.C:367
unsigned scalarsDim2
Definition: ElemDataRequests.h:54
Definition: ElemDataRequests.h:45
std::set< FieldInfo, FieldInfoLess > FieldSet
Definition: ElemDataRequests.h:64
COORDS_TYPES
Definition: ElemDataRequests.h:34
Definition: ElemDataRequests.h:26
std::map< COORDS_TYPES, const stk::mesh::FieldBase * > coordsFields_
Definition: ElemDataRequests.h:145
MasterElement * meSCS_
Definition: ElemDataRequests.h:147
const stk::mesh::FieldBase * get_coordinates_field(const COORDS_TYPES cType) const
Definition: ElemDataRequests.h:122
Definition: ElemDataRequests.h:30
const std::set< ELEM_DATA_NEEDED > & get_data_enums(const COORDS_TYPES cType) const
Definition: ElemDataRequests.h:118