43 #ifndef Panzer_STK_MeshFactory_hpp__ 44 #define Panzer_STK_MeshFactory_hpp__ 46 #include <Teuchos_RCP.hpp> 47 #include <Teuchos_ParameterListAcceptorDefaultBase.hpp> 49 #include <stk_util/parallel/Parallel.hpp> 72 virtual Teuchos::RCP<STK_Interface>
buildMesh(stk::ParallelMachine parallelMach)
const = 0;
78 virtual Teuchos::RCP<STK_Interface>
buildUncommitedMesh(stk::ParallelMachine parallelMach)
const = 0;
88 std::vector<Teuchos::RCP<const PeriodicBC_MatcherBase> > & periodicBC)
95 void enableRebalance(
bool enable,
const Teuchos::RCP<const Teuchos::ParameterList> & rebalanceList=Teuchos::null)
103 for(Teuchos::ParameterList::ConstIterator itr=
rebalanceList_->begin();
106 const Teuchos::ParameterEntry & entry =
rebalanceList_->entry(itr);
107 TEUCHOS_TEST_FOR_EXCEPTION(!entry.isList(),std::runtime_error,
108 "Rebalance list is incorrect:\n" << entry <<
"\nA Zoltan list formated with strings is expected.");
111 mesh.
rebalance(Teuchos::getValue<Teuchos::ParameterList>(entry));
119 Teuchos::ParameterList emptyList;
127 double getMeshCoord(
const int nx,
const double deltaX,
const double x0)
const {
128 double x =
static_cast<double>(nx)*deltaX;
129 double modX = std::abs(x);
130 double modX0 = std::abs(x0);
132 if ((x0*x < 0.0) && (std::abs(modX-modX0) < std::numeric_limits<double>::epsilon()*modX0)) val=0.0;
virtual void completeMeshConstruction(STK_Interface &mesh, stk::ParallelMachine parallelMach) const =0
virtual Teuchos::RCP< STK_Interface > buildUncommitedMesh(stk::ParallelMachine parallelMach) const =0
void setParameterList(const Teuchos::RCP< Teuchos::ParameterList > &pl)
virtual Teuchos::RCP< STK_Interface > buildMesh(stk::ParallelMachine parallelMach) const =0
double getMeshCoord(const int nx, const double deltaX, const double x0) const
Teuchos::RCP< const Teuchos::ParameterList > rebalanceList_
void rebalance(const Teuchos::ParameterList ¶ms)
std::vector< Teuchos::RCP< const PeriodicBC_MatcherBase > > periodicBCVec_
void enableRebalance(bool enable, const Teuchos::RCP< const Teuchos::ParameterList > &rebalanceList=Teuchos::null)
void buildLocalElementIDs()
void rebalance(STK_Interface &mesh) const
const std::vector< Teuchos::RCP< const PeriodicBC_MatcherBase > > & getMatchers() const
static void parsePeriodicBCList(const Teuchos::RCP< Teuchos::ParameterList > &pl, std::vector< Teuchos::RCP< const PeriodicBC_MatcherBase > > &periodicBC)