Nalu
Nalu: a generalized unstructured massively parallel low Mach flow code designed to support a variety of energy applications of interest (most notably Wind ECP) built on the Sierra Toolkit and Trilinos solver Tpetra/Epetra stack. The open source BSD, clause 3 license model has been chosen for the code base. See LICENSE for more information. http://NaluCFD.org
Public Member Functions | Private Member Functions | Private Attributes | List of all members
sierra::nalu::InterfaceBalancer Class Reference

#include <InterfaceBalancer.h>

Public Member Functions

 InterfaceBalancer (const stk::mesh::MetaData &meta, stk::mesh::BulkData &bulk)
 
void balance_node_entities (const double targetLoadBalance, const int maxIterations)
 

Private Member Functions

void getInterfaceDescription (std::set< int > &neighborProcessors, std::map< stk::mesh::Entity, std::vector< int > > &interfaceNodesAndProcessors)
 
void getGlobalLoadImbalance (double &loadFactor, int &numLocallyOwnedNodes)
 
void exchangeLocalSizes (const std::set< int > &neighborProcessors, int &numLocallyOwnedNodes, std::map< int, int > &numLocallyOwnedByRank)
 
void changeOwnersOfNodes (const std::map< stk::mesh::Entity, std::vector< int > > &interfaceNodesAndProcessors, std::map< int, int > &numLocallyOwnedByRank, int numLocallyOwnedNodes)
 

Private Attributes

const stk::mesh::MetaData & metaData_
 
stk::mesh::BulkData & bulkData_
 
const double tolerance_
 

Constructor & Destructor Documentation

sierra::nalu::InterfaceBalancer::InterfaceBalancer ( const stk::mesh::MetaData &  meta,
stk::mesh::BulkData &  bulk 
)

Member Function Documentation

void sierra::nalu::InterfaceBalancer::balance_node_entities ( const double  targetLoadBalance,
const int  maxIterations 
)
void sierra::nalu::InterfaceBalancer::changeOwnersOfNodes ( const std::map< stk::mesh::Entity, std::vector< int > > &  interfaceNodesAndProcessors,
std::map< int, int > &  numLocallyOwnedByRank,
int  numLocallyOwnedNodes 
)
private

References bulkData_.

Referenced by balance_node_entities().

void sierra::nalu::InterfaceBalancer::exchangeLocalSizes ( const std::set< int > &  neighborProcessors,
int &  numLocallyOwnedNodes,
std::map< int, int > &  numLocallyOwnedByRank 
)
private
void sierra::nalu::InterfaceBalancer::getGlobalLoadImbalance ( double &  loadFactor,
int &  numLocallyOwnedNodes 
)
private
void sierra::nalu::InterfaceBalancer::getInterfaceDescription ( std::set< int > &  neighborProcessors,
std::map< stk::mesh::Entity, std::vector< int > > &  interfaceNodesAndProcessors 
)
private

References bulkData_, and metaData_.

Referenced by balance_node_entities().

Member Data Documentation

stk::mesh::BulkData& sierra::nalu::InterfaceBalancer::bulkData_
private
const stk::mesh::MetaData& sierra::nalu::InterfaceBalancer::metaData_
private
const double sierra::nalu::InterfaceBalancer::tolerance_
private

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