12 #include <stk_mesh/base/Bucket.hpp>
13 #include <stk_mesh/base/BulkData.hpp>
14 #include <stk_algsup/AlgorithmRunner.hpp>
20 AlgorithmInterface::~AlgorithmInterface(){}
24 void AlgorithmInterface::apply_one(
32 const bool run_it = selector( bucket );
33 get_involved_parts( union_part_vector, bucket, parts );
36 if ( 0 < m_maximum_entity_count ) {
37 for ( mesh::Bucket::iterator j = bucket.
begin(); j != bucket.
end() ; ) {
38 mesh::Bucket::iterator e = j ;
39 if ( static_cast<ptrdiff_t>( bucket.
end() - e ) < static_cast<ptrdiff_t>(m_maximum_entity_count) ) {
43 e += m_maximum_entity_count ;
45 apply( j , e , parts , reduce );
50 apply( bucket.
begin() , bucket.
end() , parts , reduce );
68 class AlgorithmRunnerNonThread :
public AlgorithmRunnerInterface {
73 const std::vector< mesh::Bucket * > & buckets,
75 void * reduce )
const ;
77 AlgorithmRunnerNonThread() {}
78 ~AlgorithmRunnerNonThread() {}
81 void AlgorithmRunnerNonThread::run_alg(
84 const std::vector< mesh::Bucket * > & buckets ,
88 for ( std::vector< mesh::Bucket * >::const_iterator
89 i = buckets.begin() ; i != buckets.end() ; ++i ) {
90 algorithm.apply_one( selector , union_parts, **i , reduce );
100 static AlgorithmRunnerNonThread runner ;