本文整理汇总了C++中STK_Interface::isInitialized方法的典型用法代码示例。如果您正苦于以下问题:C++ STK_Interface::isInitialized方法的具体用法?C++ STK_Interface::isInitialized怎么用?C++ STK_Interface::isInitialized使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类STK_Interface
的用法示例。
在下文中一共展示了STK_Interface::isInitialized方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: buildElements
void
CustomMeshFactory::completeMeshConstruction(STK_Interface &mesh,
stk_classic::ParallelMachine parallelMach) const
{
PANZER_FUNC_TIME_MONITOR("panzer::CustomMeshFactory::completeMeshConstruction()");
if (not mesh.isInitialized())
mesh.initialize(parallelMach);
// add node and element information
buildElements(mesh);
// build edges and faces; fyi: addSides(mesh) builds only edges
mesh.buildSubcells();
mesh.buildLocalElementIDs();
// now that edges are built, side and node sets can be added
addSideSets(mesh);
// set solution fields
fillSolutionFieldData(mesh);
// calls Stk_MeshFactory::rebalance
//this->rebalance(mesh);
}
示例2: completeMeshConstruction
void STK_ExodusReaderFactory::completeMeshConstruction(STK_Interface & mesh,stk::ParallelMachine parallelMach) const
{
PANZER_FUNC_TIME_MONITOR("panzer::STK_ExodusReaderFactory::completeMeshConstruction()");
using Teuchos::RCP;
using Teuchos::rcp;
if(not mesh.isInitialized())
mesh.initialize(parallelMach);
// grab mesh data pointer to build the bulk data
stk::mesh::MetaData & metaData = stk::mesh::fem::FEMMetaData::get_meta_data(*mesh.getMetaData());
stk::io::MeshData * meshData =
const_cast<stk::io::MeshData *>(metaData.get_attribute<stk::io::MeshData>());
// if const_cast is wrong ... why does it feel so right?
// I believe this is safe since we are basically hiding this object under the covers
// until the mesh construction can be completed...below I cleanup the object myself.
TEUCHOS_ASSERT(metaData.remove_attribute(meshData));
// remove the MeshData attribute
RCP<stk::mesh::BulkData> bulkData = mesh.getBulkData();
// build mesh bulk data
mesh.beginModification();
stk::io::populate_bulk_data(*bulkData, *meshData);
mesh.endModification();
// put in a negative index and (like python) the restart will be from the back
// (-1 is the last time step)
int restartIndex = restartIndex_;
if(restartIndex<0) {
std::pair<int,double> lastTimeStep = meshData->m_input_region->get_max_time();
restartIndex = 1+restartIndex+lastTimeStep.first;
}
// populate mesh fields with specific index
stk::io::process_input_request(*meshData,*bulkData,restartIndex);
mesh.buildSubcells();
mesh.buildLocalElementIDs();
if(restartIndex>0) // process_input_request is a no-op if restartIndex<=0 ... thus there would be no inital time
mesh.setInitialStateTime(meshData->m_input_region->get_state_time(restartIndex));
else
mesh.setInitialStateTime(0.0); // no initial time to speak, might as well use 0.0
// clean up mesh data object
delete meshData;
// calls Stk_MeshFactory::rebalance
this->rebalance(mesh);
}
示例3: completeMeshConstruction
void SculptMeshFactory::completeMeshConstruction(STK_Interface & mesh,stk_classic::ParallelMachine parallelMach) const
{
PANZER_FUNC_TIME_MONITOR("panzer::SculptMeshFactory::completeMeshConstruction()");
if(not mesh.isInitialized())
mesh.initialize(parallelMach);
buildElements(parallelMach,mesh);
mesh.buildSubcells();
mesh.buildLocalElementIDs();
addSideSets(mesh);
addNodeSets(mesh);
this->rebalance(mesh);
}
示例4: completeMeshConstruction
void MultiBlockMeshFactory::completeMeshConstruction(STK_Interface & mesh,stk::ParallelMachine parallelMach) const
{
if(not mesh.isInitialized())
mesh.initialize(parallelMach);
// add node and element information
buildElements(parallelMach,mesh);
// finish up the edges
mesh.buildSubcells();
mesh.buildLocalElementIDs();
// now that edges are built, sidets can be added
addSideSets(mesh);
// calls Stk_MeshFactory::rebalance
this->rebalance(mesh);
}
示例5: completeMeshConstruction
void CubeTetMeshFactory::completeMeshConstruction(STK_Interface & mesh,stk_classic::ParallelMachine parallelMach) const
{
PANZER_FUNC_TIME_MONITOR("panzer::CubeTetMeshFactory::completeMeshConstruction()");
if(not mesh.isInitialized())
mesh.initialize(parallelMach);
// add node and element information
buildElements(parallelMach,mesh);
// finish up the edges and faces
mesh.buildSubcells();
mesh.buildLocalElementIDs();
// now that edges are built, sidets can be added
addSideSets(mesh);
// calls Stk_MeshFactory::rebalance
this->rebalance(mesh);
}
示例6: completeMeshConstruction
void STK_ExodusReaderFactory::completeMeshConstruction(STK_Interface & mesh,stk_classic::ParallelMachine parallelMach) const
{
PANZER_FUNC_TIME_MONITOR("panzer::STK_ExodusReaderFactory::completeMeshConstruction()");
using Teuchos::RCP;
using Teuchos::rcp;
if(not mesh.isInitialized())
mesh.initialize(parallelMach);
// grab mesh data pointer to build the bulk data
stk_classic::mesh::MetaData & metaData = stk_classic::mesh::fem::FEMMetaData::get_meta_data(*mesh.getMetaData());
stk_classic::io::MeshData * meshData =
const_cast<stk_classic::io::MeshData *>(metaData.get_attribute<stk_classic::io::MeshData>());
// if const_cast is wrong ... why does it feel so right?
// I believe this is safe since we are basically hiding this object under the covers
// until the mesh construction can be completed...below I cleanup the object myself.
TEUCHOS_ASSERT(metaData.remove_attribute(meshData));
// remove the MeshData attribute
RCP<stk_classic::mesh::BulkData> bulkData = mesh.getBulkData();
// build mesh bulk data
mesh.beginModification();
stk_classic::io::populate_bulk_data(*bulkData, *meshData);
// The following section of code is applicable if mesh scaling is
// turned on from the input file.
if (userMeshScaling_)
{
stk_classic::mesh::Field<double,stk_classic::mesh::Cartesian>* coord_field =
metaData.get_field<stk_classic::mesh::Field<double, stk_classic::mesh::Cartesian> >("coordinates");
std::vector<stk_classic::mesh::Bucket*> const all_node_buckets =
bulkData->buckets(stk_classic::mesh::fem::FEMMetaData::NODE_RANK);
stk_classic::mesh::Selector select_all_local = metaData.locally_owned_part() | metaData.globally_shared_part();
std::vector<stk_classic::mesh::Bucket*> my_node_buckets;
stk_classic::mesh::get_buckets(select_all_local, all_node_buckets, my_node_buckets);
int mesh_dim = mesh.getDimension();
// Scale the mesh
for (size_t i=0; i < my_node_buckets.size(); ++i)
{
stk_classic::mesh::Bucket& b = *(my_node_buckets[i]);
stk_classic::mesh::BucketArray<stk_classic::mesh::Field<double,stk_classic::mesh::Cartesian> >
coordinate_data(*coord_field, b);
for (size_t j=0; j < b.size(); ++j) {
int index = j;
double inv_msf = 1.0/meshScaleFactor_;
for (int k=0; k < mesh_dim; ++k)
coordinate_data(k, index) = coordinate_data(k, index) * inv_msf;
}
}
}
mesh.endModification();
// put in a negative index and (like python) the restart will be from the back
// (-1 is the last time step)
int restartIndex = restartIndex_;
if(restartIndex<0) {
std::pair<int,double> lastTimeStep = meshData->m_input_region->get_max_time();
restartIndex = 1+restartIndex+lastTimeStep.first;
}
// populate mesh fields with specific index
stk_classic::io::process_input_request(*meshData,*bulkData,restartIndex);
mesh.buildSubcells();
mesh.buildLocalElementIDs();
if(restartIndex>0) // process_input_request is a no-op if restartIndex<=0 ... thus there would be no inital time
mesh.setInitialStateTime(meshData->m_input_region->get_state_time(restartIndex));
else
mesh.setInitialStateTime(0.0); // no initial time to speak, might as well use 0.0
// clean up mesh data object
delete meshData;
// calls Stk_MeshFactory::rebalance
this->rebalance(mesh);
}