18 #include <stk_mesh/base/GetEntities.hpp> 26 std::vector< Entity*> & entities )
33 const std::vector<Bucket*>::const_iterator ie = ks.end();
34 std::vector<Bucket*>::const_iterator ik = ks.begin();
36 for ( ; ik != ie ; ++ik ) { count += (*ik)->size(); }
38 entities.reserve(count);
42 for ( ; ik != ie ; ++ik ) {
45 for(
size_t i = 0; i < n; ++i) {
46 entities.push_back(&k[i]);
50 std::sort(entities.begin(), entities.end(),
EntityLess());
53 BucketVectorEntityIteratorRange get_entities( EntityRank
entity_rank,
const BulkData& mesh )
55 const std::vector<Bucket*>& buckets = mesh.buckets(
entity_rank);
56 return get_entity_range(buckets);
61 const std::vector< Bucket * > & input_buckets )
65 const std::vector<Bucket*>::const_iterator ie = input_buckets.end();
66 std::vector<Bucket*>::const_iterator ik = input_buckets.begin();
68 for ( ; ik != ie ; ++ik ) {
70 if ( selector( k ) ) { count += k.
size(); }
78 const std::vector< Bucket * > & input_buckets ,
79 std::vector< Entity * > & entities )
83 entities.resize(count);
85 const std::vector<Bucket*>::const_iterator ie = input_buckets.end();
86 std::vector<Bucket*>::const_iterator ik = input_buckets.begin();
88 for (
size_t j = 0 ; ik != ie ; ++ik ) {
90 if ( selector( k ) ) {
91 const size_t n = k.
size();
92 for (
size_t i = 0; i < n; ++i, ++j ) {
98 std::sort(entities.begin(), entities.end(),
EntityLess());
105 const AllBucketsRange& bucket_range )
107 return get_selected_bucket_entity_range(bucket_range, selector);
116 std::vector< EntityRank > & count )
118 const size_t nranks = MetaData::get(mesh).entity_rank_count();
120 count.resize( nranks );
122 for (
size_t i = 0 ; i < nranks ; ++i ) {
125 const std::vector<Bucket*> & ks = mesh.
buckets( i );
127 std::vector<Bucket*>::const_iterator ik ;
129 for ( ik = ks.begin() ; ik != ks.end() ; ++ik ) {
130 if ( selector(**ik) ) {
131 count[i] += (*ik)->size();
Comparison operator for entities compares the entities' keys.
unsigned count_selected_entities(const Selector &selector, const std::vector< Bucket * > &input_buckets)
Count entities in selected buckets (selected by the given selector instance), and sorted by ID...
This is a class for selecting buckets based on a set of meshparts and set logic.
const std::vector< Bucket * > & buckets(EntityRank rank) const
Query all buckets of a given entity rank.
void get_selected_entities(const Selector &selector, const std::vector< Bucket * > &input_buckets, std::vector< Entity * > &entities)
Get entities in selected buckets (selected by the given selector instance), and sorted by ID...
size_t size() const
Number of entities associated with this bucket.
void get_entities(const BulkData &mesh, EntityRank entity_rank, std::vector< Entity *> &entities)
Get all entities of the specified type, sorted by ID.
Manager for an integrated collection of entities, entity relations, and buckets of field data...
void count_entities(const Selector &selector, const BulkData &mesh, std::vector< EntityRank > &count)
Local count selected entities of each type.
A container for the field data of a homogeneous collection of entities.
EntityRank entity_rank(const EntityKey &key)
Given an entity key, return an entity type (rank).