12 #ifndef stk_rebalance_Partition_hpp 13 #define stk_rebalance_Partition_hpp 48 #include <stk_mesh/base/Entity.hpp> 49 #include <stk_mesh/base/Field.hpp> 50 #include <stk_mesh/base/Types.hpp> 51 #include <stk_mesh/fem/CoordinateSystems.hpp> 52 #include <stk_mesh/fem/TopologyDimensions.hpp> 57 typedef mesh::Field<double, mesh::Cartesian>
VectorField ;
103 virtual void set_mesh_info (
const std::vector<mesh::Entity *> &mesh_entities,
144 virtual int get_new_partition(stk_classic::mesh::EntityProcVec &new_partition) = 0;
bool rebalance(mesh::BulkData &bulk_data, const mesh::Selector &selector, const VectorField *coord_ref, const ScalarField *elem_weight_ref, Partition &partition, const stk_classic::mesh::EntityRank rank=stk_classic::mesh::InvalidEntityRank)
Rebalance with a Partition object.
virtual int get_new_partition(stk_classic::mesh::EntityProcVec &new_partition)=0
Perform communication to create new partition.
Partition(stk_classic::ParallelMachine comm)
Constructors.
ParallelMachine parallel() const
Return the parallel communicator for this partition entity.
Field with defined data type and multi-dimensions (if any)
virtual bool partition_dependents_needed() const =0
Query whether element dependents need to be rebalanced outside this Partition.
Initialized with a list of mesh entities unique to each processor.
virtual void set_mesh_info(const std::vector< mesh::Entity *> &mesh_entities, const VectorField *nodal_coord_ref, const ScalarField *elem_weight_ref=NULL)=0
Define mesh entities to balance.
virtual unsigned num_elems() const =0
Return the total number of mesh entities in all lists.
virtual ~Partition()
Destructor.
virtual void determine_new_partition(bool &RebalancingNeeded)=0
determine New Partition.