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;
88 std::vector<Teuchos::RCP<const PeriodicBC_MatcherBase> > & periodicBC,
97 void enableRebalance(
bool enable,
const Teuchos::RCP<const Teuchos::ParameterList> & rebalanceList=Teuchos::null)
105 for(Teuchos::ParameterList::ConstIterator itr=
rebalanceList_->begin();
108 const Teuchos::ParameterEntry & entry =
rebalanceList_->entry(itr);
109 TEUCHOS_TEST_FOR_EXCEPTION(!entry.isList(),std::runtime_error,
110 "Rebalance list is incorrect:\n" << entry <<
"\nA Zoltan list formated with strings is expected.");
113 mesh.
rebalance(Teuchos::getValue<Teuchos::ParameterList>(entry));
121 Teuchos::ParameterList emptyList;
129 double getMeshCoord(
const int nx,
const double deltaX,
const double x0)
const {
130 double x =
static_cast<double>(nx)*deltaX;
131 double modX = std::abs(x);
132 double modX0 = std::abs(x0);
134 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)