11#ifndef Panzer_STK_MeshFactory_hpp__
12#define Panzer_STK_MeshFactory_hpp__
14#include <Teuchos_RCP.hpp>
15#include <Teuchos_ParameterListAcceptorDefaultBase.hpp>
17#include <stk_util/parallel/Parallel.hpp>
40 virtual Teuchos::RCP<STK_Interface>
buildMesh(stk::ParallelMachine parallelMach)
const = 0;
56 std::vector<Teuchos::RCP<const PeriodicBC_MatcherBase> > & periodicBC,
65 void enableRebalance(
bool enable,
const Teuchos::RCP<const Teuchos::ParameterList> & rebalanceList=Teuchos::null)
73 for(Teuchos::ParameterList::ConstIterator itr=
rebalanceList_->begin();
76 const Teuchos::ParameterEntry & entry =
rebalanceList_->entry(itr);
77 TEUCHOS_TEST_FOR_EXCEPTION(!entry.isList(),std::runtime_error,
78 "Rebalance list is incorrect:\n" << entry <<
"\nA Zoltan list formated with strings is expected.");
81 mesh.
rebalance(Teuchos::getValue<Teuchos::ParameterList>(entry));
89 Teuchos::ParameterList emptyList;
97 double getMeshCoord(
const int nx,
const double deltaX,
const double x0)
const {
98 double x =
static_cast<double>(nx)*deltaX;
99 double modX = std::abs(x);
100 double modX0 = std::abs(x0);
102 if ((x0*x < 0.0) && (std::abs(modX-modX0) < std::numeric_limits<double>::epsilon()*modX0)) val=0.0;
const std::vector< Teuchos::RCP< const PeriodicBC_MatcherBase > > & getMatchers() const
const bool & useBoundingBoxSearch() const
void setParameterList(const Teuchos::RCP< Teuchos::ParameterList > &pl)
void rebalance(const Teuchos::ParameterList ¶ms)
void buildLocalElementIDs()
virtual Teuchos::RCP< STK_Interface > buildMesh(stk::ParallelMachine parallelMach) const =0
virtual void completeMeshConstruction(STK_Interface &mesh, stk::ParallelMachine parallelMach) const =0
void rebalance(STK_Interface &mesh) const
static void parsePeriodicBCList(const Teuchos::RCP< Teuchos::ParameterList > &pl, std::vector< Teuchos::RCP< const PeriodicBC_MatcherBase > > &periodicBC, bool &useBBoxSearch)
double getMeshCoord(const int nx, const double deltaX, const double x0) const
virtual Teuchos::RCP< STK_Interface > buildUncommitedMesh(stk::ParallelMachine parallelMach) const =0
Teuchos::RCP< const Teuchos::ParameterList > rebalanceList_
std::vector< Teuchos::RCP< const PeriodicBC_MatcherBase > > periodicBCVec_
void enableRebalance(bool enable, const Teuchos::RCP< const Teuchos::ParameterList > &rebalanceList=Teuchos::null)