10 #ifndef stk_mesh_baseImpl_FieldRestriction_hpp 11 #define stk_mesh_baseImpl_FieldRestriction_hpp 14 #include <Shards_Array.hpp> 15 #include <stk_mesh/base/Types.hpp> 16 #include <stk_mesh/base/EntityKey.hpp> 17 #include <stk_mesh/base/Selector.hpp> 19 #include <stk_util/util/SimpleArrayOps.hpp> 34 typedef shards::array_traits::int_t size_type ;
37 : m_entityrank_partordinal(InvalidEntityRank,InvalidPartOrdinal),
44 : m_entityrank_partordinal( rhs.m_entityrank_partordinal ),
45 m_selector( rhs.m_selector )
52 m_entityrank_partordinal = rhs.m_entityrank_partordinal ;
53 m_selector = rhs.m_selector;
59 : m_entityrank_partordinal( input_rank, input_ordinal ),
66 : m_entityrank_partordinal( input_rank, InvalidPartOrdinal ),
67 m_selector(input_selector)
71 void set_entity_rank(EntityRank ent_rank) { m_entityrank_partordinal.first = ent_rank; }
73 EntityRank entity_rank()
const 75 return m_entityrank_partordinal.first;
78 void set_part_ordinal(PartOrdinal ord) { m_entityrank_partordinal.second = ord; }
80 PartOrdinal part_ordinal()
const 82 return m_entityrank_partordinal.second;
90 size_type & stride( Ordinal index ) {
return m_stride[index]; }
91 const size_type & stride( Ordinal index )
const {
return m_stride[index]; }
93 size_type dimension()
const {
return m_stride[0]; }
97 return this->m_entityrank_partordinal < rhs.m_entityrank_partordinal;
101 return this->m_entityrank_partordinal == rhs.m_entityrank_partordinal &&
102 this->m_selector == rhs.m_selector;
106 return this->m_entityrank_partordinal != rhs.m_entityrank_partordinal ||
107 this->m_selector != rhs.m_selector;
112 return Compare< MaximumFieldDimension >::not_equal( this->m_stride , rhs.m_stride );
117 const EntityRank & entity_rank,
119 FieldArrayRank field_rank
123 std::pair<EntityRank,PartOrdinal> m_entityrank_partordinal;
125 size_type m_stride[ MaximumFieldDimension ];
128 typedef std::vector<FieldRestriction> FieldRestrictionVector;
130 std::string print_restriction(
134 FieldArrayRank field_rank
140 #endif // stk_mesh_baseImpl_FieldRestriction_hpp
This is a class for selecting buckets based on a set of meshparts and set logic.
An application-defined subset of a problem domain.
EntityRank entity_rank(const EntityKey &key)
Given an entity key, return an entity type (rank).