1#ifndef CHITECH_MESHGENERATOR_H
2#define CHITECH_MESHGENERATOR_H
44 virtual std::unique_ptr<UnpartitionedMesh>
70 std::shared_ptr<MeshContinuum>
71 SetupMesh(std::unique_ptr<UnpartitionedMesh> input_umesh_ptr,
72 const std::vector<int64_t>& cell_pids);
79 MPI_Comm communicator);
84 uint64_t cell_global_id,
85 const std::vector<std::set<uint64_t>>& vertex_subscriptions,
86 const std::vector<int64_t>& cell_partition_ids)
const;
89 static std::unique_ptr<chi_mesh::Cell>
92 uint64_t partition_id,
97 std::array<size_t, 3> ortho_cells_per_dimension);
bool CellHasLocalScope(int location_id, 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) const
std::shared_ptr< MeshContinuum > SetupMesh(std::unique_ptr< UnpartitionedMesh > input_umesh_ptr, const std::vector< int64_t > &cell_pids)
chi::GraphPartitioner * partitioner_
MeshGenerator(const chi::InputParameters ¶ms)
static void ComputeAndPrintStats(const chi_mesh::MeshContinuum &grid)
static void BroadcastPIDs(std::vector< int64_t > &cell_pids, int root, MPI_Comm communicator)
static void SetGridAttributes(chi_mesh::MeshContinuum &grid, MeshAttributes new_attribs, std::array< size_t, 3 > ortho_cells_per_dimension)
std::vector< MeshGenerator * > inputs_
static std::unique_ptr< chi_mesh::Cell > SetupCell(const UnpartitionedMesh::LightWeightCell &raw_cell, uint64_t global_id, uint64_t partition_id, const VertexListHelper &vertices)
std::vector< int64_t > PartitionMesh(const UnpartitionedMesh &input_umesh, int num_partitions)
virtual std::unique_ptr< UnpartitionedMesh > GenerateUnpartitionedMesh(std::unique_ptr< UnpartitionedMesh > input_umesh)
static chi::InputParameters GetInputParameters()
const chi_mesh::Vertex & at(uint64_t vid) const override
STLVertexListHelper(const T &list)
virtual const chi_mesh::Vertex & at(uint64_t vid) const =0