Panzer
Version of the Day
|
#include <Panzer_STK_Interface.hpp>
Classes | |
struct | ElementBlockException |
class | LocalIdCompare |
struct | SidesetException |
Public Types | |
typedef double | ProcIdData |
typedef stk::mesh::Field< double > | SolutionFieldType |
typedef stk::mesh::Field< double, stk::mesh::Cartesian > | VectorFieldType |
typedef stk::mesh::Field< ProcIdData > | ProcIdFieldType |
Public Member Functions | |
STK_Interface () | |
STK_Interface (unsigned dim) | |
STK_Interface (Teuchos::RCP< stk::mesh::MetaData > metaData) | |
void | addElementBlock (const std::string &name, const CellTopologyData *ctData) |
void | addSideset (const std::string &name, const CellTopologyData *ctData) |
void | addNodeset (const std::string &name) |
void | addSolutionField (const std::string &fieldName, const std::string &blockId) |
void | addCellField (const std::string &fieldName, const std::string &blockId) |
void | addMeshCoordFields (const std::string &blockId, const std::vector< std::string > &coordField, const std::string &dispPrefix) |
void | initialize (stk::ParallelMachine parallelMach, bool setupIO=true) |
void | instantiateBulkData (stk::ParallelMachine parallelMach) |
void | beginModification () |
void | endModification () |
void | addNode (stk::mesh::EntityId gid, const std::vector< double > &coord) |
void | addElement (const Teuchos::RCP< ElementDescriptor > &ed, stk::mesh::Part *block) |
void | addEdges () |
void | addFaces () |
void | addEntityToSideset (stk::mesh::Entity entity, stk::mesh::Part *sideset) |
void | addEntityToNodeset (stk::mesh::Entity entity, stk::mesh::Part *nodeset) |
const VectorFieldType & | getCoordinatesField () const |
const VectorFieldType & | getEdgesField () const |
const VectorFieldType & | getFacesField () const |
const double * | getNodeCoordinates (stk::mesh::EntityId nodeId) const |
const double * | getNodeCoordinates (stk::mesh::Entity node) const |
void | getSubcellIndices (unsigned entityRank, stk::mesh::EntityId elementId, std::vector< stk::mesh::EntityId > &subcellIds) const |
void | getMyElements (std::vector< stk::mesh::Entity > &elements) const |
void | getMyElements (const std::string &blockID, std::vector< stk::mesh::Entity > &elements) const |
void | getNeighborElements (std::vector< stk::mesh::Entity > &elements) const |
void | getNeighborElements (const std::string &blockID, std::vector< stk::mesh::Entity > &elements) const |
void | getMySides (const std::string &sideName, std::vector< stk::mesh::Entity > &sides) const |
void | getMySides (const std::string &sideName, const std::string &blockName, std::vector< stk::mesh::Entity > &sides) const |
void | getAllSides (const std::string &sideName, std::vector< stk::mesh::Entity > &sides) const |
void | getAllSides (const std::string &sideName, const std::string &blockName, std::vector< stk::mesh::Entity > &sides) const |
void | getMyNodes (const std::string &sideName, const std::string &blockName, std::vector< stk::mesh::Entity > &nodes) const |
stk::mesh::Entity | findConnectivityById (stk::mesh::Entity src, stk::mesh::EntityRank tgt_rank, unsigned rel_id) const |
void | writeToExodus (const std::string &filename) |
void | setupTransientExodusFile (const std::string &filename) |
void | writeToExodus (double timestep) |
Teuchos::RCP< stk::mesh::BulkData > | getBulkData () const |
Teuchos::RCP< stk::mesh::MetaData > | getMetaData () const |
bool | isWritable () const |
bool | isModifiable () const |
unsigned | getDimension () const |
get the dimension More... | |
std::size_t | getNumElementBlocks () const |
get the block count More... | |
void | getElementBlockNames (std::vector< std::string > &names) const |
void | getSidesetNames (std::vector< std::string > &name) const |
void | getNodesetNames (std::vector< std::string > &name) const |
stk::mesh::Part * | getOwnedPart () const |
Get a pointer to the locally owned part. More... | |
stk::mesh::Part * | getElementBlockPart (const std::string &name) const |
get the block count More... | |
std::size_t | getNumSidesets () const |
get the side set count More... | |
stk::mesh::Part * | getSideset (const std::string &name) const |
std::size_t | getNumNodesets () const |
get the side set count More... | |
stk::mesh::Part * | getNodeset (const std::string &name) const |
std::size_t | getEntityCounts (unsigned entityRank) const |
get the global counts for the entity of specified rank More... | |
stk::mesh::EntityId | getMaxEntityId (unsigned entityRank) const |
get max entity ID of type entityRank More... | |
void | getElementsSharingNode (stk::mesh::EntityId nodeId, std::vector< stk::mesh::Entity > &elements) const |
get a set of elements sharing a single node More... | |
void | getNodeIdsForElement (stk::mesh::Entity element, std::vector< stk::mesh::EntityId > &nodeIds) const |
get a list of node ids for nodes connected to an element More... | |
void | getOwnedElementsSharingNode (stk::mesh::Entity node, std::vector< stk::mesh::Entity > &elements, std::vector< int > &relIds) const |
void | getOwnedElementsSharingNode (stk::mesh::EntityId nodeId, std::vector< stk::mesh::Entity > &elements, std::vector< int > &relIds, unsigned int matchType) const |
void | getElementsSharingNodes (const std::vector< stk::mesh::EntityId > nodeId, std::vector< stk::mesh::Entity > &elements) const |
get a set of elements sharing multiple nodes More... | |
void | buildSubcells () |
force the mesh to build subcells: edges and faces More... | |
std::size_t | elementLocalId (stk::mesh::Entity elmt) const |
std::size_t | elementLocalId (stk::mesh::EntityId gid) const |
stk::mesh::EntityId | elementGlobalId (std::size_t lid) const |
stk::mesh::EntityId | elementGlobalId (stk::mesh::Entity elmt) const |
unsigned | entityOwnerRank (stk::mesh::Entity entity) const |
bool | isValid (stk::mesh::Entity entity) const |
std::string | containingBlockId (stk::mesh::Entity elmt) |
stk::mesh::Field< double > * | getSolutionField (const std::string &fieldName, const std::string &blockId) const |
stk::mesh::Field< double > * | getCellField (const std::string &fieldName, const std::string &blockId) const |
ProcIdFieldType * | getProcessorIdField () |
bool | isInitialized () const |
Has initialize been called on this mesh object? More... | |
Teuchos::RCP< const std::vector< stk::mesh::Entity > > | getElementsOrderedByLID () const |
template<typename ArrayT > | |
void | setSolutionFieldData (const std::string &fieldName, const std::string &blockId, const std::vector< std::size_t > &localElementIds, const ArrayT &solutionValues, double scaleValue=1.0) |
template<typename ArrayT > | |
void | getSolutionFieldData (const std::string &fieldName, const std::string &blockId, const std::vector< std::size_t > &localElementIds, ArrayT &solutionValues) const |
template<typename ArrayT > | |
void | setCellFieldData (const std::string &fieldName, const std::string &blockId, const std::vector< std::size_t > &localElementIds, const ArrayT &solutionValues, double scaleValue=1.0) |
template<typename ArrayT > | |
void | getElementVertices (const std::vector< std::size_t > &localIds, ArrayT &vertices) const |
template<typename ArrayT > | |
void | getElementVertices (const std::vector< stk::mesh::Entity > &elements, ArrayT &vertices) const |
template<typename ArrayT > | |
void | getElementVertices (const std::vector< std::size_t > &localIds, const std::string &eBlock, ArrayT &vertices) const |
template<typename ArrayT > | |
void | getElementVertices (const std::vector< stk::mesh::Entity > &elements, const std::string &eBlock, ArrayT &vertices) const |
template<typename ArrayT > | |
void | getElementVerticesNoResize (const std::vector< std::size_t > &localIds, ArrayT &vertices) const |
template<typename ArrayT > | |
void | getElementVerticesNoResize (const std::vector< stk::mesh::Entity > &elements, ArrayT &vertices) const |
template<typename ArrayT > | |
void | getElementVerticesNoResize (const std::vector< std::size_t > &localIds, const std::string &eBlock, ArrayT &vertices) const |
template<typename ArrayT > | |
void | getElementVerticesNoResize (const std::vector< stk::mesh::Entity > &elements, const std::string &eBlock, ArrayT &vertices) const |
stk::mesh::EntityRank | getElementRank () const |
stk::mesh::EntityRank | getSideRank () const |
stk::mesh::EntityRank | getFaceRank () const |
stk::mesh::EntityRank | getEdgeRank () const |
stk::mesh::EntityRank | getNodeRank () const |
void | initializeFromMetaData () |
void | buildLocalElementIDs () |
const std::vector< Teuchos::RCP< const PeriodicBC_MatcherBase > > & | getPeriodicBCVector () const |
std::vector< Teuchos::RCP< const PeriodicBC_MatcherBase > > & | getPeriodicBCVector () |
void | addPeriodicBC (const Teuchos::RCP< const PeriodicBC_MatcherBase > &bc) |
void | addPeriodicBCs (const std::vector< Teuchos::RCP< const PeriodicBC_MatcherBase > > &bc_vec) |
std::pair< Teuchos::RCP< std::vector< std::pair< std::size_t, std::size_t > > >, Teuchos::RCP< std::vector< unsigned int > > > | getPeriodicNodePairing () const |
bool | validBlockId (const std::string &blockId) const |
void | print (std::ostream &os) const |
void | printMetaData (std::ostream &os) const |
Teuchos::RCP< const shards::CellTopology > | getCellTopology (const std::string &eBlock) const |
double | getCurrentStateTime () const |
double | getInitialStateTime () const |
void | setInitialStateTime (double value) |
void | rebalance (const Teuchos::ParameterList ¶ms) |
void | setBlockWeight (const std::string &blockId, double weight) |
void | setUseFieldCoordinates (bool useFieldCoordinates) |
bool | getUseFieldCoordinates () const |
void | setUseLowerCaseForIO (bool useLowerCase) |
bool | getUseLowerCaseForIO () const |
template<typename ArrayT > | |
void | getElementVertices_FromField (const std::vector< stk::mesh::Entity > &elements, const std::string &eBlock, ArrayT &vertices) const |
template<typename ArrayT > | |
void | getElementVertices_FromFieldNoResize (const std::vector< stk::mesh::Entity > &elements, const std::string &eBlock, ArrayT &vertices) const |
template<typename ArrayT > | |
void | getElementVertices_FromCoords (const std::vector< stk::mesh::Entity > &elements, ArrayT &vertices) const |
template<typename ArrayT > | |
void | getElementVertices_FromCoordsNoResize (const std::vector< stk::mesh::Entity > &elements, ArrayT &vertices) const |
Static Public Attributes | |
static const std::string | coordsString = "coordinates" |
static const std::string | nodesString = "nodes" |
static const std::string | edgesString = "edges" |
static const std::string | facesString = "faces" |
Protected Member Functions | |
void | buildEntityCounts () |
void | buildMaxEntityIds () |
void | initializeFieldsInSTK (const std::map< std::pair< std::string, std::string >, SolutionFieldType *> &nameToField, bool setupIO) |
Teuchos::RCP< Teuchos::MpiComm< int > > | getSafeCommunicator (stk::ParallelMachine parallelMach) const |
void | applyElementLoadBalanceWeights () |
bool | isMeshCoordField (const std::string &eBlock, const std::string &fieldName, int &axis) const |
template<typename ArrayT > | |
void | setDispFieldData (const std::string &fieldName, const std::string &blockId, int axis, const std::vector< std::size_t > &localElementIds, const ArrayT &solutionValues) |
Protected Attributes | |
std::vector< Teuchos::RCP< const PeriodicBC_MatcherBase > > | periodicBCs_ |
Teuchos::RCP< stk::mesh::MetaData > | metaData_ |
Teuchos::RCP< stk::mesh::BulkData > | bulkData_ |
std::map< std::string, stk::mesh::Part * > | elementBlocks_ |
std::map< std::string, stk::mesh::Part * > | sidesets_ |
std::map< std::string, stk::mesh::Part * > | nodesets_ |
std::map< std::string, Teuchos::RCP< shards::CellTopology > > | elementBlockCT_ |
stk::mesh::Part * | nodesPart_ |
std::vector< stk::mesh::Part * > | nodesPartVec_ |
stk::mesh::Part * | edgesPart_ |
std::vector< stk::mesh::Part * > | edgesPartVec_ |
stk::mesh::Part * | facesPart_ |
std::vector< stk::mesh::Part * > | facesPartVec_ |
VectorFieldType * | coordinatesField_ |
VectorFieldType * | edgesField_ |
VectorFieldType * | facesField_ |
ProcIdFieldType * | processorIdField_ |
SolutionFieldType * | loadBalField_ |
std::map< std::pair< std::string, std::string >, SolutionFieldType * > | fieldNameToSolution_ |
std::map< std::pair< std::string, std::string >, SolutionFieldType * > | fieldNameToCellField_ |
unsigned | dimension_ |
bool | initialized_ |
std::vector< std::size_t > | entityCounts_ |
std::vector< stk::mesh::EntityId > | maxEntityId_ |
unsigned | procRank_ |
std::size_t | currentLocalId_ |
Teuchos::RCP< Teuchos::MpiComm< int > > | mpiComm_ |
double | initialStateTime_ |
double | currentStateTime_ |
Teuchos::RCP< std::vector< stk::mesh::Entity > > | orderedElementVector_ |
std::map< std::string, double > | blockWeights_ |
std::unordered_map< stk::mesh::EntityId, std::size_t > | localIDHash_ |
std::map< std::string, std::vector< std::string > > | meshCoordFields_ |
std::map< std::string, std::vector< std::string > > | meshDispFields_ |
bool | useFieldCoordinates_ |
bool | useLowerCase_ |
Definition at line 97 of file Panzer_STK_Interface.hpp.
typedef double panzer_stk::STK_Interface::ProcIdData |
Definition at line 99 of file Panzer_STK_Interface.hpp.
typedef stk::mesh::Field<double> panzer_stk::STK_Interface::SolutionFieldType |
Definition at line 100 of file Panzer_STK_Interface.hpp.
typedef stk::mesh::Field<double,stk::mesh::Cartesian> panzer_stk::STK_Interface::VectorFieldType |
Definition at line 101 of file Panzer_STK_Interface.hpp.
typedef stk::mesh::Field<ProcIdData> panzer_stk::STK_Interface::ProcIdFieldType |
Definition at line 102 of file Panzer_STK_Interface.hpp.
panzer_stk::STK_Interface::STK_Interface | ( | ) |
Definition at line 96 of file Panzer_STK_Interface.cpp.
panzer_stk::STK_Interface::STK_Interface | ( | unsigned | dim | ) |
Default constructor
Definition at line 108 of file Panzer_STK_Interface.cpp.
panzer_stk::STK_Interface::STK_Interface | ( | Teuchos::RCP< stk::mesh::MetaData > | metaData | ) |
Definition at line 102 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::addElementBlock | ( | const std::string & | name, |
const CellTopologyData * | ctData | ||
) |
Add an element block with a string name
Definition at line 1017 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::addSideset | ( | const std::string & | name, |
const CellTopologyData * | ctData | ||
) |
Add a side set with a string name
Definition at line 119 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::addNodeset | ( | const std::string & | name | ) |
Add a node set with a string name
Definition at line 131 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::addSolutionField | ( | const std::string & | fieldName, |
const std::string & | blockId | ||
) |
Add a solution field
Definition at line 145 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::addCellField | ( | const std::string & | fieldName, |
const std::string & | blockId | ||
) |
Add a solution field
Definition at line 161 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::addMeshCoordFields | ( | const std::string & | blockId, |
const std::vector< std::string > & | coordField, | ||
const std::string & | dispPrefix | ||
) |
Add a solution field for coordinates with a particular prefix, force it to be outputed as a to be mesh displacement field. This is really only relevant for I/O and how the field is stored internally in the mesh.
[in] | blockId | Element block to use |
[in] | coordPrefix | Prefix for solution coordinate field (assumes using "X","Y","Z" as postfix) |
[in] | dispPrefix | Prefix for displacment (output) field |
Definition at line 177 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::initialize | ( | stk::ParallelMachine | parallelMach, |
bool | setupIO = true |
||
) |
Initialize the mesh with the current dimension This also calls commit on the meta data causing it to be frozen. Information about elements blocks has to be commited before this. If parallel machine has already been specified through instantiateBulkData
that communicator is used. Otherwise a new copy is constructed and will be used through out this mesh object's lifetime.
Definition at line 221 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::instantiateBulkData | ( | stk::ParallelMachine | parallelMach | ) |
Build a bulk data object but don't do anything with it. If parallel machine has already been specified through initialize
that communicator is used. Otherwise a new copy is constructed and will be used by default throughout the lifetime of this object.
Definition at line 315 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::beginModification | ( | ) |
Put the bulk data manager in modification mode.
Definition at line 324 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::endModification | ( | ) |
Take the bulk data manager out of modification mode.
Definition at line 332 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::addNode | ( | stk::mesh::EntityId | gid, |
const std::vector< double > & | coord | ||
) |
Add a node to the mesh with a specific set of coordinates to the mesh.
coord.size()==getDimension()
isModifiable()==true
Definition at line 388 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::addElement | ( | const Teuchos::RCP< ElementDescriptor > & | ed, |
stk::mesh::Part * | block | ||
) |
Definition at line 422 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::addEdges | ( | ) |
Definition at line 445 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::addFaces | ( | ) |
Definition at line 473 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::addEntityToSideset | ( | stk::mesh::Entity | entity, |
stk::mesh::Part * | sideset | ||
) |
Addes an entity to a specified side set.
Definition at line 406 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::addEntityToNodeset | ( | stk::mesh::Entity | entity, |
stk::mesh::Part * | nodeset | ||
) |
Addes an entity to a specified node set.
Definition at line 414 of file Panzer_STK_Interface.cpp.
|
inline |
Grab the coordinates field
Definition at line 209 of file Panzer_STK_Interface.hpp.
|
inline |
Grab the edges field
Definition at line 214 of file Panzer_STK_Interface.hpp.
|
inline |
Definition at line 217 of file Panzer_STK_Interface.hpp.
const double * panzer_stk::STK_Interface::getNodeCoordinates | ( | stk::mesh::EntityId | nodeId | ) | const |
Look up a global node and get the coordinate.
Definition at line 757 of file Panzer_STK_Interface.cpp.
const double * panzer_stk::STK_Interface::getNodeCoordinates | ( | stk::mesh::Entity | node | ) | const |
Look up a global node and get the coordinate.
Definition at line 763 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::getSubcellIndices | ( | unsigned | entityRank, |
stk::mesh::EntityId | elementId, | ||
std::vector< stk::mesh::EntityId > & | subcellIds | ||
) | const |
Get subcell global IDs
Definition at line 768 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::getMyElements | ( | std::vector< stk::mesh::Entity > & | elements | ) | const |
Get a vector of elements owned by this processor
Definition at line 789 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::getMyElements | ( | const std::string & | blockID, |
std::vector< stk::mesh::Entity > & | elements | ||
) | const |
Get a vector of elements owned by this processor on a particular block ID
Definition at line 799 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::getNeighborElements | ( | std::vector< stk::mesh::Entity > & | elements | ) | const |
Get a vector of elements that share an edge/face with an owned element. Note that these elements are not owned.
Definition at line 814 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::getNeighborElements | ( | const std::string & | blockID, |
std::vector< stk::mesh::Entity > & | elements | ||
) | const |
Get a vector of elements not owned by this processor but in a particular block
Definition at line 824 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::getMySides | ( | const std::string & | sideName, |
std::vector< stk::mesh::Entity > & | sides | ||
) | const |
Get Entities corresponding to the side set requested. The Entites in the vector should be a dimension lower then getDimension()
.
[in] | sideName | Name of side set |
[in,out] | sides | Vector of entities containing the requested sides. |
Definition at line 838 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::getMySides | ( | const std::string & | sideName, |
const std::string & | blockName, | ||
std::vector< stk::mesh::Entity > & | sides | ||
) | const |
Get Entities corresponding to the locally owned part of the side set requested. This also limits the entities to be in a particular element block. The Entites in the vector should be a dimension lower then getDimension()
.
[in] | sideName | Name of side set |
[in] | blockName | Name of block |
[in,out] | sides | Vector of entities containing the requested sides. |
Definition at line 851 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::getAllSides | ( | const std::string & | sideName, |
std::vector< stk::mesh::Entity > & | sides | ||
) | const |
Get Entities corresponding to the locally owned part of the side set requested. The Entites in the vector should be a dimension lower then getDimension()
.
[in] | sideName | Name of side set |
[in,out] | sides | Vector of entities containing the requested sides. |
Definition at line 868 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::getAllSides | ( | const std::string & | sideName, |
const std::string & | blockName, | ||
std::vector< stk::mesh::Entity > & | sides | ||
) | const |
Get Entities corresponding to the side set requested. This also limits the entities to be in a particular element block. The Entites in the vector should be a dimension lower then getDimension()
.
[in] | sideName | Name of side set |
[in] | blockName | Name of block |
[in,out] | sides | Vector of entities containing the requested sides. |
Definition at line 880 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::getMyNodes | ( | const std::string & | sideName, |
const std::string & | blockName, | ||
std::vector< stk::mesh::Entity > & | nodes | ||
) | const |
Get Entities corresponding to the node set requested. This also limits the entities to be in a particular element block. The Entites in the vector should be ofdimension 0
.
[in] | nodesetName | Name of side set |
[in] | blockName | Name of block |
[in,out] | sides | Vector of entities containing the requested sides. |
Definition at line 897 of file Panzer_STK_Interface.cpp.
stk::mesh::Entity panzer_stk::STK_Interface::findConnectivityById | ( | stk::mesh::Entity | src, |
stk::mesh::EntityRank | tgt_rank, | ||
unsigned | rel_id | ||
) | const |
Searches for connected entity by rank and relation id. Returns invalid entity on failure.
[in] | src | The handle to the source entity (the 'from' part of the relation) |
[in] | tgt_rank | The entity rank of relations to search |
[in] | rel_id | The id of the relation to search for |
Definition at line 528 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::writeToExodus | ( | const std::string & | filename | ) |
Write this mesh to exodus. This is a one shot function that will write to a particular exodus output file.
Definition at line 503 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::setupTransientExodusFile | ( | const std::string & | filename | ) |
This simply sets up a transient exodus file for writing. No work is performed at this stage. This is used in combination with writeToExodus(double timestep)
.
Definition at line 542 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::writeToExodus | ( | double | timestep | ) |
Write this timestep to the exodus file specified in the setupTransientExodusFile
. This uses the current state of the STK fields as the time step.
Definition at line 565 of file Panzer_STK_Interface.cpp.
|
inline |
Definition at line 333 of file Panzer_STK_Interface.hpp.
|
inline |
Definition at line 334 of file Panzer_STK_Interface.hpp.
bool panzer_stk::STK_Interface::isWritable | ( | ) | const |
Definition at line 584 of file Panzer_STK_Interface.cpp.
|
inline |
Definition at line 338 of file Panzer_STK_Interface.hpp.
|
inline |
get the dimension
Definition at line 343 of file Panzer_STK_Interface.hpp.
|
inline |
get the block count
Definition at line 347 of file Panzer_STK_Interface.hpp.
void panzer_stk::STK_Interface::getElementBlockNames | ( | std::vector< std::string > & | names | ) | const |
Get a vector containing the names of the element blocks. This function always returns the current set of element blocks in lexiographic order (uses the sorting built into the std::map). This method can only be called after initialize
.
[in,out] | names | Vector of names of the element blocks. |
Definition at line 914 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::getSidesetNames | ( | std::vector< std::string > & | name | ) | const |
Get a vector containing the names of the side sets. This function always returns the current set of side sets in lexiographic order (uses the sorting built into the std::map). This method can only be called after initialize
.
[in,out] | names | Vector of names of the side sets |
Definition at line 926 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::getNodesetNames | ( | std::vector< std::string > & | name | ) | const |
Get a vector containing the names of the node sets. This function always returns the current set of node sets in lexiographic order (uses the sorting built into the std::map). This method can only be called after initialize
.
[in,out] | names | Vector of names of the element blocks. |
Definition at line 938 of file Panzer_STK_Interface.cpp.
|
inline |
Get a pointer to the locally owned part.
Definition at line 378 of file Panzer_STK_Interface.hpp.
|
inline |
get the block count
Definition at line 382 of file Panzer_STK_Interface.hpp.
|
inline |
get the side set count
Definition at line 390 of file Panzer_STK_Interface.hpp.
|
inline |
Definition at line 393 of file Panzer_STK_Interface.hpp.
|
inline |
get the side set count
Definition at line 397 of file Panzer_STK_Interface.hpp.
|
inline |
Definition at line 400 of file Panzer_STK_Interface.hpp.
std::size_t panzer_stk::STK_Interface::getEntityCounts | ( | unsigned | entityRank | ) | const |
get the global counts for the entity of specified rank
Definition at line 728 of file Panzer_STK_Interface.cpp.
stk::mesh::EntityId panzer_stk::STK_Interface::getMaxEntityId | ( | unsigned | entityRank | ) | const |
get max entity ID of type entityRank
Definition at line 736 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::getElementsSharingNode | ( | stk::mesh::EntityId | nodeId, |
std::vector< stk::mesh::Entity > & | elements | ||
) | const |
get a set of elements sharing a single node
Definition at line 593 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::getNodeIdsForElement | ( | stk::mesh::Entity | element, |
std::vector< stk::mesh::EntityId > & | nodeIds | ||
) | const |
get a list of node ids for nodes connected to an element
Definition at line 676 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::getOwnedElementsSharingNode | ( | stk::mesh::Entity | node, |
std::vector< stk::mesh::Entity > & | elements, | ||
std::vector< int > & | relIds | ||
) | const |
Get set of element sharing a single node and its local node id.
Definition at line 606 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::getOwnedElementsSharingNode | ( | stk::mesh::EntityId | nodeId, |
std::vector< stk::mesh::Entity > & | elements, | ||
std::vector< int > & | relIds, | ||
unsigned int | matchType | ||
) | const |
Get set of element sharing a single node and its local node id.
Definition at line 626 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::getElementsSharingNodes | ( | const std::vector< stk::mesh::EntityId > | nodeId, |
std::vector< stk::mesh::Entity > & | elements | ||
) | const |
get a set of elements sharing multiple nodes
Definition at line 644 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::buildSubcells | ( | ) |
force the mesh to build subcells: edges and faces
Definition at line 744 of file Panzer_STK_Interface.cpp.
std::size_t panzer_stk::STK_Interface::elementLocalId | ( | stk::mesh::Entity | elmt | ) | const |
Get an elements local index
Definition at line 948 of file Panzer_STK_Interface.cpp.
std::size_t panzer_stk::STK_Interface::elementLocalId | ( | stk::mesh::EntityId | gid | ) | const |
Get an elements local index
Definition at line 955 of file Panzer_STK_Interface.cpp.
|
inline |
Get an elements global index
Definition at line 445 of file Panzer_STK_Interface.hpp.
|
inline |
Get an elements global index
Definition at line 450 of file Panzer_STK_Interface.hpp.
|
inline |
Get an Entity's parallel owner (process rank)
Definition at line 455 of file Panzer_STK_Interface.hpp.
|
inline |
Check if entity handle is valid
Definition at line 460 of file Panzer_STK_Interface.hpp.
std::string panzer_stk::STK_Interface::containingBlockId | ( | stk::mesh::Entity | elmt | ) |
Get the containing block ID of this element.
Definition at line 967 of file Panzer_STK_Interface.cpp.
stk::mesh::Field< double > * panzer_stk::STK_Interface::getSolutionField | ( | const std::string & | fieldName, |
const std::string & | blockId | ||
) | const |
Get the stk mesh field pointer associated with a particular solution value Assumes there is a field associated with "fieldName,blockId" pair. If none is found an exception (std::runtime_error) is raised.
Definition at line 976 of file Panzer_STK_Interface.cpp.
stk::mesh::Field< double > * panzer_stk::STK_Interface::getCellField | ( | const std::string & | fieldName, |
const std::string & | blockId | ||
) | const |
Get the stk mesh field pointer associated with a particular value Assumes there is a field associated with "fieldName,blockId" pair. If none is found an exception (std::runtime_error) is raised.
Definition at line 990 of file Panzer_STK_Interface.cpp.
|
inline |
Definition at line 481 of file Panzer_STK_Interface.hpp.
|
inline |
Has initialize
been called on this mesh object?
Definition at line 484 of file Panzer_STK_Interface.hpp.
Teuchos::RCP< const std::vector< stk::mesh::Entity > > panzer_stk::STK_Interface::getElementsOrderedByLID | ( | ) | const |
Get Vector of element entities ordered by their LID, returns an RCP so that it is easily stored by the caller.
Definition at line 1004 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::setSolutionFieldData | ( | const std::string & | fieldName, |
const std::string & | blockId, | ||
const std::vector< std::size_t > & | localElementIds, | ||
const ArrayT & | solutionValues, | ||
double | scaleValue = 1.0 |
||
) |
Writes a particular field to an array. Notice this is setup to work with the worksets associated with Panzer.
[in] | fieldName | Name of field to be filled |
[in] | blockId | Name of block this set of elements belongs to |
[in] | localElementIds | Local element IDs for this set of solution values |
[in] | solutionValues | An two dimensional array object sized by (Cells,Basis Count) |
Definition at line 928 of file Panzer_STK_Interface.hpp.
void panzer_stk::STK_Interface::getSolutionFieldData | ( | const std::string & | fieldName, |
const std::string & | blockId, | ||
const std::vector< std::size_t > & | localElementIds, | ||
ArrayT & | solutionValues | ||
) | const |
Reads a particular field into an array. Notice this is setup to work with the worksets associated with Panzer.
[in] | fieldName | Name of field to be filled |
[in] | blockId | Name of block this set of elements belongs to |
[in] | localElementIds | Local element IDs for this set of solution values |
[in] | solutionValues | An two dimensional array object sized by (Cells,Basis Count) |
Definition at line 988 of file Panzer_STK_Interface.hpp.
void panzer_stk::STK_Interface::setCellFieldData | ( | const std::string & | fieldName, |
const std::string & | blockId, | ||
const std::vector< std::size_t > & | localElementIds, | ||
const ArrayT & | solutionValues, | ||
double | scaleValue = 1.0 |
||
) |
Writes a particular field to a cell array. Notice this is setup to work with the worksets associated with Panzer.
[in] | fieldName | Name of field to be filled |
[in] | blockId | Name of block this set of elements belongs to |
[in] | localElementIds | Local element IDs for this set of solution values |
[in] | solutionValues | A one dimensional array object sized by (Cells) |
Definition at line 1018 of file Panzer_STK_Interface.hpp.
void panzer_stk::STK_Interface::getElementVertices | ( | const std::vector< std::size_t > & | localIds, |
ArrayT & | vertices | ||
) | const |
Get vertices associated with a number of elements of the same geometry.
[in] | localIds | Element local IDs to construct vertices |
[out] | vertices | Output array that will be sized (localIds.size() ,#Vertices,#Dim) |
localIds
is 0, the function will silently return Definition at line 1036 of file Panzer_STK_Interface.hpp.
void panzer_stk::STK_Interface::getElementVertices | ( | const std::vector< stk::mesh::Entity > & | elements, |
ArrayT & | vertices | ||
) | const |
Get vertices associated with a number of elements of the same geometry.
[in] | elements | Element entities to construct vertices |
[out] | vertices | Output array that will be sized (localIds.size() ,#Vertices,#Dim) |
localIds
is 0, the function will silently return Definition at line 1060 of file Panzer_STK_Interface.hpp.
void panzer_stk::STK_Interface::getElementVertices | ( | const std::vector< std::size_t > & | localIds, |
const std::string & | eBlock, | ||
ArrayT & | vertices | ||
) | const |
Get vertices associated with a number of elements of the same geometry.
[in] | localIds | Element local IDs to construct vertices |
[in] | eBlock | Element block the elements are in |
[out] | vertices | Output array that will be sized (localIds.size() ,#Vertices,#Dim) |
localIds
is 0, the function will silently return Definition at line 1084 of file Panzer_STK_Interface.hpp.
void panzer_stk::STK_Interface::getElementVertices | ( | const std::vector< stk::mesh::Entity > & | elements, |
const std::string & | eBlock, | ||
ArrayT & | vertices | ||
) | const |
Get vertices associated with a number of elements of the same geometry.
[in] | elements | Element entities to construct vertices |
[in] | eBlock | Element block the elements are in |
[out] | vertices | Output array that will be sized (localIds.size() ,#Vertices,#Dim) |
localIds
is 0, the function will silently return Definition at line 1073 of file Panzer_STK_Interface.hpp.
void panzer_stk::STK_Interface::getElementVerticesNoResize | ( | const std::vector< std::size_t > & | localIds, |
ArrayT & | vertices | ||
) | const |
Get vertices associated with a number of elements of the same geometry. The vertex array will not be resized.
[in] | localIds | Element local IDs to construct vertices |
[out] | vertices | Output array that will be sized (localIds.size() ,#Vertices,#Dim) |
localIds
is 0, the function will silently return Definition at line 1102 of file Panzer_STK_Interface.hpp.
void panzer_stk::STK_Interface::getElementVerticesNoResize | ( | const std::vector< stk::mesh::Entity > & | elements, |
ArrayT & | vertices | ||
) | const |
Get vertices associated with a number of elements of the same geometry. The vertex array will not be resized.
[in] | elements | Element entities to construct vertices |
[out] | vertices | Output array that will be sized (localIds.size() ,#Vertices,#Dim) |
localIds
is 0, the function will silently return Definition at line 1126 of file Panzer_STK_Interface.hpp.
void panzer_stk::STK_Interface::getElementVerticesNoResize | ( | const std::vector< std::size_t > & | localIds, |
const std::string & | eBlock, | ||
ArrayT & | vertices | ||
) | const |
Get vertices associated with a number of elements of the same geometry. The vertex array will not be resized.
[in] | localIds | Element local IDs to construct vertices |
[in] | eBlock | Element block the elements are in |
[out] | vertices | Output array that will be sized (localIds.size() ,#Vertices,#Dim) |
localIds
is 0, the function will silently return Definition at line 1150 of file Panzer_STK_Interface.hpp.
void panzer_stk::STK_Interface::getElementVerticesNoResize | ( | const std::vector< stk::mesh::Entity > & | elements, |
const std::string & | eBlock, | ||
ArrayT & | vertices | ||
) | const |
Get vertices associated with a number of elements of the same geometry. The vertex array will not be resized.
[in] | elements | Element entities to construct vertices |
[in] | eBlock | Element block the elements are in |
[out] | vertices | Output array that will be sized (localIds.size() ,#Vertices,#Dim) |
localIds
is 0, the function will silently return Definition at line 1139 of file Panzer_STK_Interface.hpp.
|
inline |
Definition at line 640 of file Panzer_STK_Interface.hpp.
|
inline |
Definition at line 641 of file Panzer_STK_Interface.hpp.
|
inline |
Definition at line 642 of file Panzer_STK_Interface.hpp.
|
inline |
Definition at line 643 of file Panzer_STK_Interface.hpp.
|
inline |
Definition at line 644 of file Panzer_STK_Interface.hpp.
void panzer_stk::STK_Interface::initializeFromMetaData | ( | ) |
Build fields and parts from the meta data
Definition at line 1035 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::buildLocalElementIDs | ( | ) |
Setup local element IDs
Definition at line 1059 of file Panzer_STK_Interface.cpp.
|
inline |
Return a vector containing all the periodic boundary conditions.
Definition at line 657 of file Panzer_STK_Interface.hpp.
|
inline |
Return a vector containing all the periodic boundary conditions.
Definition at line 663 of file Panzer_STK_Interface.hpp.
|
inline |
Add a periodic boundary condition.
Definition at line 671 of file Panzer_STK_Interface.hpp.
|
inline |
Add a set of periodic boundary conditions.
Definition at line 679 of file Panzer_STK_Interface.hpp.
std::pair< Teuchos::RCP< std::vector< std::pair< std::size_t, std::size_t > > >, Teuchos::RCP< std::vector< unsigned int > > > panzer_stk::STK_Interface::getPeriodicNodePairing | ( | ) | const |
Definition at line 1146 of file Panzer_STK_Interface.cpp.
bool panzer_stk::STK_Interface::validBlockId | ( | const std::string & | blockId | ) | const |
check for a valid block id
Definition at line 1170 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::print | ( | std::ostream & | os | ) | const |
Print a brief description of the STK mesh to a stream.
Definition at line 1177 of file Panzer_STK_Interface.cpp.
void panzer_stk::STK_Interface::printMetaData | ( | std::ostream & | os | ) | const |
Print a brief description of the STK mesh to a stream.
Definition at line 1227 of file Panzer_STK_Interface.cpp.
Teuchos::RCP< const shards::CellTopology > panzer_stk::STK_Interface::getCellTopology | ( | const std::string & | eBlock | ) | const |
Get the cell topology from the element block.
Definition at line 1267 of file Panzer_STK_Interface.cpp.
|
inline |
Get the value of the time-stamp the last time this object was written to Exodus (default 0.0)
Definition at line 705 of file Panzer_STK_Interface.hpp.
|
inline |
Get the value of the time-stamp when this object was created (default 0.0) or when setInitialStateTime was called.
Definition at line 712 of file Panzer_STK_Interface.hpp.
|
inline |
Set the value of the initial time-stamp
Definition at line 718 of file Panzer_STK_Interface.hpp.
void panzer_stk::STK_Interface::rebalance | ( | const Teuchos::ParameterList & | params | ) |
Rebalance using zoltan. Note that this will void the local element ids.
Definition at line 1294 of file Panzer_STK_Interface.cpp.
|
inline |
Set the weight for a particular element block. Larger means more costly to assemble and evaluate.
Definition at line 727 of file Panzer_STK_Interface.hpp.
|
inline |
When coordinates are returned in the getElementVertices method, extract coordinates using a specified field (not the intrinsic coordinates) where available (where unavailable the intrinsic coordinates are used. Note that this does not change the behavior of getNodeCoordinates. This is set to false by default.
Definition at line 736 of file Panzer_STK_Interface.hpp.
|
inline |
Return the use field coordinates flag
Definition at line 740 of file Panzer_STK_Interface.hpp.
|
inline |
Use lower case (or not) for I/O
Definition at line 744 of file Panzer_STK_Interface.hpp.
|
inline |
Use lower case (or not) for I/O
Definition at line 748 of file Panzer_STK_Interface.hpp.
void panzer_stk::STK_Interface::getElementVertices_FromField | ( | const std::vector< stk::mesh::Entity > & | elements, |
const std::string & | eBlock, | ||
ArrayT & | vertices | ||
) | const |
Get vertices associated with a number of elements of the same geometry, note that a coordinate field will be used (if not is available an exception will be thrown).
[in] | elements | Element entities to construct vertices |
[in] | eBlock | Element block the elements are in |
[out] | vertices | Output array that will be sized (localIds.size() ,#Vertices,#Dim) |
localIds
is 0, the function will silently return Definition at line 1260 of file Panzer_STK_Interface.hpp.
void panzer_stk::STK_Interface::getElementVertices_FromFieldNoResize | ( | const std::vector< stk::mesh::Entity > & | elements, |
const std::string & | eBlock, | ||
ArrayT & | vertices | ||
) | const |
Definition at line 1312 of file Panzer_STK_Interface.hpp.
void panzer_stk::STK_Interface::getElementVertices_FromCoords | ( | const std::vector< stk::mesh::Entity > & | elements, |
ArrayT & | vertices | ||
) | const |
Get vertices associated with a number of elements of the same geometry. This access the true mesh coordinates array.
[in] | elements | Element entities to construct vertices |
[out] | vertices | Output array that will be sized (localIds.size() ,#Vertices,#Dim) |
localIds
is 0, the function will silently return Definition at line 1168 of file Panzer_STK_Interface.hpp.
void panzer_stk::STK_Interface::getElementVertices_FromCoordsNoResize | ( | const std::vector< stk::mesh::Entity > & | elements, |
ArrayT & | vertices | ||
) | const |
Definition at line 1216 of file Panzer_STK_Interface.hpp.
|
protected |
Compute global entity counts.
Definition at line 687 of file Panzer_STK_Interface.cpp.
|
protected |
Compute global entity counts.
Definition at line 693 of file Panzer_STK_Interface.cpp.
|
protected |
Initialize STK fields using a map (allocate space for storage and writing) to a specific entity rank.
Definition at line 291 of file Panzer_STK_Interface.cpp.
|
protected |
Build a safely handled Teuchos MPI communicator from a parallel machine. This object asserts ownership of the communicator so that we can gurantee existence so the outer user can do whatever they'd like with the original.
Definition at line 1283 of file Panzer_STK_Interface.cpp.
|
protected |
In a pure local operation apply the user specified block weights for each element block to the field that defines the load balance weighting. This uses the blockWeights_ member to determine the user value that has been set for a particular element block.
Definition at line 1102 of file Panzer_STK_Interface.cpp.
|
protected |
Determine if a particular field in an element block is a displacement field. Return the displacement field name in the requested argument if so.
Definition at line 1124 of file Panzer_STK_Interface.cpp.
|
protected |
Writes a particular field to an array as a coordinate diplacement. Notice this is setup to work with the worksets associated with Panzer.
[in] | fieldName | Name of field to be filled |
[in] | blockId | Name of block this set of elements belongs to |
[in] | dimension | What coordinate axis to write to |
[in] | localElementIds | Local element IDs for this set of solution values |
[in] | solutionValues | An two dimensional array object sized by (Cells,Basis Count) |
Definition at line 959 of file Panzer_STK_Interface.hpp.
|
static |
Definition at line 784 of file Panzer_STK_Interface.hpp.
|
static |
Definition at line 785 of file Panzer_STK_Interface.hpp.
|
static |
Definition at line 786 of file Panzer_STK_Interface.hpp.
|
static |
Definition at line 787 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 842 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 844 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 845 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 847 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 848 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 849 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 850 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 853 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 854 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 855 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 856 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 857 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 858 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 860 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 861 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 862 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 863 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 864 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 867 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 868 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 870 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 872 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 875 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 878 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 880 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 881 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 883 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 885 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 886 of file Panzer_STK_Interface.hpp.
|
mutableprotected |
Definition at line 895 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 898 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 900 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 905 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 906 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 908 of file Panzer_STK_Interface.hpp.
|
protected |
Definition at line 910 of file Panzer_STK_Interface.hpp.