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 Types | Private Member Functions | Private Attributes | List of all members
sierra::nalu::PeriodicManager Class Reference

#include <PeriodicManager.h>

Public Member Functions

 PeriodicManager (Realm &realm)
 
 ~PeriodicManager ()
 
void initialize_error_count ()
 
void add_periodic_pair (stk::mesh::Part *meshPartsMaster, stk::mesh::Part *meshPartsSlave, const double &userSearchTolerance, const std::string &searchMethodName)
 
void build_constraints ()
 
void apply_constraints (stk::mesh::FieldBase *, const unsigned &sizeOfField, const bool &bypassFieldCheck, const bool &addSlaves=true, const bool &setSlaves=true)
 
void apply_max_field (stk::mesh::FieldBase *, const unsigned &sizeOfField)
 
void manage_ghosting_object ()
 
stk::mesh::Ghosting * get_ghosting_object ()
 
const stk::mesh::PartVectorget_slave_part_vector ()
 
double get_search_time ()
 

Private Types

typedef std::pair< stk::mesh::Entity, stk::mesh::Entity > EntityPair
 
typedef std::pair< stk::mesh::Selector, stk::mesh::Selector > SelectorPair
 
typedef std::vector< std::pair< theEntityKey, theEntityKey > > SearchKeyVector
 

Private Member Functions

void augment_periodic_selector_pairs ()
 
void initialize_translation_vector ()
 
void determine_translation (stk::mesh::Selector masterSelector, stk::mesh::Selector slaveSelector, std::vector< double > &translationVector, std::vector< double > &rotationVector)
 
void remove_redundant_slave_nodes ()
 
void finalize_search ()
 
void populate_search_key_vec (stk::mesh::Selector masterSelector, stk::mesh::Selector slaveSelector, std::vector< double > &translationVector, const stk::search::SearchMethod searchMethod)
 
void error_check ()
 
void update_global_id_field ()
 
void periodic_parallel_communicate_field (stk::mesh::FieldBase *theField)
 
void parallel_communicate_field (stk::mesh::FieldBase *theField)
 
void add_slave_to_master (stk::mesh::FieldBase *theField, const unsigned &sizeOfField, const bool &bypassFieldCheck)
 
void set_slave_to_master (stk::mesh::FieldBase *theField, const unsigned &sizeOfField, const bool &bypassFieldCheck)
 

Private Attributes

Realmrealm_
 
double searchTolerance_
 
stk::mesh::Ghosting * periodicGhosting_
 
const std::string ghostingName_
 
double timerSearch_
 
int errorCount_
 
int maxErrorCount_
 
const double amplificationFactor_
 
std::vector< SelectorPairperiodicSelectorPairs_
 
stk::mesh::PartVector slavePartVector_
 
std::vector< stk::search::SearchMethod > searchMethodVec_
 
std::vector< std::vector< double > > translationVector_
 
std::vector< std::vector< double > > rotationVector_
 
std::vector< EntityPairmasterSlaveCommunicator_
 
SearchKeyVector searchKeyVector_
 

Member Typedef Documentation

typedef std::pair<stk::mesh::Entity, stk::mesh::Entity> sierra::nalu::PeriodicManager::EntityPair
private
typedef std::pair<stk::mesh::Selector, stk::mesh::Selector> sierra::nalu::PeriodicManager::SelectorPair
private

Constructor & Destructor Documentation

sierra::nalu::PeriodicManager::PeriodicManager ( Realm realm)
sierra::nalu::PeriodicManager::~PeriodicManager ( )

Member Function Documentation

void sierra::nalu::PeriodicManager::add_periodic_pair ( stk::mesh::Part *  meshPartsMaster,
stk::mesh::Part *  meshPartsSlave,
const double &  userSearchTolerance,
const std::string &  searchMethodName 
)
void sierra::nalu::PeriodicManager::add_slave_to_master ( stk::mesh::FieldBase *  theField,
const unsigned &  sizeOfField,
const bool &  bypassFieldCheck 
)
private
void sierra::nalu::PeriodicManager::apply_constraints ( stk::mesh::FieldBase *  theField,
const unsigned &  sizeOfField,
const bool &  bypassFieldCheck,
const bool &  addSlaves = true,
const bool &  setSlaves = true 
)
void sierra::nalu::PeriodicManager::apply_max_field ( stk::mesh::FieldBase *  theField,
const unsigned &  sizeOfField 
)
void sierra::nalu::PeriodicManager::augment_periodic_selector_pairs ( )
private
void sierra::nalu::PeriodicManager::build_constraints ( )
void sierra::nalu::PeriodicManager::determine_translation ( stk::mesh::Selector  masterSelector,
stk::mesh::Selector  slaveSelector,
std::vector< double > &  translationVector,
std::vector< double > &  rotationVector 
)
private
void sierra::nalu::PeriodicManager::error_check ( )
private
void sierra::nalu::PeriodicManager::finalize_search ( )
private
stk::mesh::Ghosting * sierra::nalu::PeriodicManager::get_ghosting_object ( )

References periodicGhosting_.

double sierra::nalu::PeriodicManager::get_search_time ( )
const stk::mesh::PartVector & sierra::nalu::PeriodicManager::get_slave_part_vector ( )
void sierra::nalu::PeriodicManager::initialize_error_count ( )

References errorCount_.

void sierra::nalu::PeriodicManager::initialize_translation_vector ( )
private
void sierra::nalu::PeriodicManager::manage_ghosting_object ( )
void sierra::nalu::PeriodicManager::parallel_communicate_field ( stk::mesh::FieldBase *  theField)
private
void sierra::nalu::PeriodicManager::periodic_parallel_communicate_field ( stk::mesh::FieldBase *  theField)
private
void sierra::nalu::PeriodicManager::populate_search_key_vec ( stk::mesh::Selector  masterSelector,
stk::mesh::Selector  slaveSelector,
std::vector< double > &  translationVector,
const stk::search::SearchMethod  searchMethod 
)
private
void sierra::nalu::PeriodicManager::remove_redundant_slave_nodes ( )
private
void sierra::nalu::PeriodicManager::set_slave_to_master ( stk::mesh::FieldBase *  theField,
const unsigned &  sizeOfField,
const bool &  bypassFieldCheck 
)
private
void sierra::nalu::PeriodicManager::update_global_id_field ( )
private

Member Data Documentation

const double sierra::nalu::PeriodicManager::amplificationFactor_
private

Referenced by error_check().

int sierra::nalu::PeriodicManager::errorCount_
private
const std::string sierra::nalu::PeriodicManager::ghostingName_
private

Referenced by manage_ghosting_object().

std::vector<EntityPair> sierra::nalu::PeriodicManager::masterSlaveCommunicator_
private
int sierra::nalu::PeriodicManager::maxErrorCount_
private

Referenced by error_check().

stk::mesh::Ghosting* sierra::nalu::PeriodicManager::periodicGhosting_
private
std::vector<SelectorPair> sierra::nalu::PeriodicManager::periodicSelectorPairs_
private
Realm& sierra::nalu::PeriodicManager::realm_
private
std::vector<std::vector<double> > sierra::nalu::PeriodicManager::rotationVector_
private
SearchKeyVector sierra::nalu::PeriodicManager::searchKeyVector_
private
std::vector<stk::search::SearchMethod> sierra::nalu::PeriodicManager::searchMethodVec_
private
double sierra::nalu::PeriodicManager::searchTolerance_
private
stk::mesh::PartVector sierra::nalu::PeriodicManager::slavePartVector_
private
double sierra::nalu::PeriodicManager::timerSearch_
private
std::vector<std::vector<double> > sierra::nalu::PeriodicManager::translationVector_
private

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