Chi-Tech
volmesher_predefunpart.h
Go to the documentation of this file.
1#ifndef VOLMESHER_PREDEFUNPART_H
2#define VOLMESHER_PREDEFUNPART_H
3
4#include "../chi_volumemesher.h"
6
7//###################################################################
8/**This volume mesher merely applies a partitioning of an
9 * unpartitioned mesh.*/
12{
13private:
14 std::shared_ptr<const chi_mesh::UnpartitionedMesh> umesh_ptr_ = nullptr;
15public:
16 explicit
18 std::shared_ptr<const chi_mesh::UnpartitionedMesh> in_umesh) :
20 umesh_ptr_(std::move(in_umesh)) {}
21
22 void Execute() override;
23
24 static
27 uint64_t cell_global_id,
28 const std::vector<std::set<uint64_t>>& vertex_subscriptions,
29 const std::vector<int64_t>& cell_partition_ids);
30
31 static
32 std::vector<int64_t> KBA(const chi_mesh::UnpartitionedMesh& umesh);
33
34 static
35 std::vector<int64_t> PARMETIS(const UnpartitionedMesh &umesh);
36
37 static std::unique_ptr<chi_mesh::Cell>
40 uint64_t global_id,
41 uint64_t partition_id,
42 const std::vector<chi_mesh::Vector3>& vertices);
43};
44#endif //VOLMESHER_PREDEFUNPART_H
VolumeMesherPredefinedUnpartitioned(std::shared_ptr< const chi_mesh::UnpartitionedMesh > in_umesh)
std::shared_ptr< const chi_mesh::UnpartitionedMesh > umesh_ptr_
static std::unique_ptr< chi_mesh::Cell > MakeCell(const chi_mesh::UnpartitionedMesh::LightWeightCell &raw_cell, uint64_t global_id, uint64_t partition_id, const std::vector< chi_mesh::Vector3 > &vertices)
static bool CellHasLocalScope(const chi_mesh::UnpartitionedMesh::LightWeightCell &lwcell, uint64_t cell_global_id, const std::vector< std::set< uint64_t > > &vertex_subscriptions, const std::vector< int64_t > &cell_partition_ids)
static std::vector< int64_t > KBA(const chi_mesh::UnpartitionedMesh &umesh)