Chi-Tech
chi_mesh::VolumeMesherPredefinedUnpartitioned Class Reference

#include <volmesher_predefunpart.h>

Inheritance diagram for chi_mesh::VolumeMesherPredefinedUnpartitioned:
chi_mesh::VolumeMesher

Public Member Functions

 VolumeMesherPredefinedUnpartitioned (std::shared_ptr< const chi_mesh::UnpartitionedMesh > in_umesh)
 
void Execute () override
 
- Public Member Functions inherited from chi_mesh::VolumeMesher
 VolumeMesher (VolumeMesherType type)
 
virtual ~VolumeMesher ()=default
 
void SetContinuum (MeshContinuumPtr &grid)
 
MeshContinuumPtrGetContinuum ()
 
void SetGridAttributes (MeshAttributes new_attribs, std::array< size_t, 3 > ortho_Nis={0, 0, 0})
 
VolumeMesherType Type () const
 
virtual void Execute ()
 

Static Public Member Functions

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)
 
static std::vector< int64_t > PARMETIS (const UnpartitionedMesh &umesh)
 
static std::unique_ptr< chi_mesh::CellMakeCell (const chi_mesh::UnpartitionedMesh::LightWeightCell &raw_cell, uint64_t global_id, uint64_t partition_id, const std::vector< chi_mesh::Vector3 > &vertices)
 
- Static Public Member Functions inherited from chi_mesh::VolumeMesher
static std::pair< int, int > GetCellXYPartitionID (chi_mesh::Cell *cell)
 
static std::tuple< int, int, int > GetCellXYZPartitionID (chi_mesh::Cell *cell)
 
static void CreatePolygonCells (const chi_mesh::UnpartitionedMesh &umesh, chi_mesh::MeshContinuumPtr &grid)
 
static void SetMatIDFromLogical (const chi_mesh::LogicalVolume &log_vol, bool sense, int mat_id)
 
static void SetBndryIDFromLogical (const chi_mesh::LogicalVolume &log_vol, bool sense, const std::string &bndry_name)
 
static void SetMatIDToAll (int mat_id)
 
static void SetMatIDFromLuaFunction (const std::string &lua_fname)
 
static void SetBndryIDFromLuaFunction (const std::string &lua_fname)
 
static void SetupOrthogonalBoundaries ()
 

Private Attributes

std::shared_ptr< const chi_mesh::UnpartitionedMeshumesh_ptr_ = nullptr
 

Additional Inherited Members

- Public Types inherited from chi_mesh::VolumeMesher
enum  PartitionType { KBA_STYLE_XYZ = 2 , PARMETIS = 3 }
 
- Data Fields inherited from chi_mesh::VolumeMesher
VOLUME_MESHER_OPTIONS options
 

Detailed Description

This volume mesher merely applies a partitioning of an unpartitioned mesh.

Definition at line 10 of file volmesher_predefunpart.h.

Constructor & Destructor Documentation

◆ VolumeMesherPredefinedUnpartitioned()

chi_mesh::VolumeMesherPredefinedUnpartitioned::VolumeMesherPredefinedUnpartitioned ( std::shared_ptr< const chi_mesh::UnpartitionedMesh in_umesh)
inlineexplicit

Definition at line 17 of file volmesher_predefunpart.h.

Member Function Documentation

◆ CellHasLocalScope()

bool chi_mesh::VolumeMesherPredefinedUnpartitioned::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

Determines if a chi_mesh::UnpartitionedMesh::LightWeightCell is a neighbor to the current partition for ParMETIS-style partitioning. This method loops over the faces of the lightweight cell and determines the partition-id of each the neighbors. If the neighbor has a partition id equal to that of the current process then it means this reference cell is a neighbor.

Definition at line 14 of file volmesher_predefunpart_utils.cc.

◆ Execute()

void chi_mesh::VolumeMesherPredefinedUnpartitioned::Execute ( )
overridevirtual

Executes the predefined3D mesher.

Reimplemented from chi_mesh::VolumeMesher.

Definition at line 18 of file volmesher_predefunpart_execute.cc.

◆ KBA()

std::vector< int64_t > chi_mesh::VolumeMesherPredefinedUnpartitioned::KBA ( const chi_mesh::UnpartitionedMesh umesh)
static

Applies KBA-style partitioning to the mesh.

Definition at line 16 of file volmesher_predefunpart_kba.cc.

◆ MakeCell()

std::unique_ptr< chi_mesh::Cell > chi_mesh::VolumeMesherPredefinedUnpartitioned::MakeCell ( const chi_mesh::UnpartitionedMesh::LightWeightCell raw_cell,
uint64_t  global_id,
uint64_t  partition_id,
const std::vector< chi_mesh::Vector3 > &  vertices 
)
static

Adds a cell to the grid from a light-weight cell.

Definition at line 7 of file volmesher_predefunpart_addcells.cc.

◆ PARMETIS()

std::vector< int64_t > chi_mesh::VolumeMesherPredefinedUnpartitioned::PARMETIS ( const UnpartitionedMesh umesh)
static

Applies KBA-style partitioning to the mesh.

Definition at line 15 of file volmesher_predefunpart_parmetis.cc.

Field Documentation

◆ umesh_ptr_

std::shared_ptr<const chi_mesh::UnpartitionedMesh> chi_mesh::VolumeMesherPredefinedUnpartitioned::umesh_ptr_ = nullptr
private

Definition at line 14 of file volmesher_predefunpart.h.


The documentation for this class was generated from the following files: