Panzer
Version of the Day
|
Namespaces | |
workset_utils | |
periodic_helpers | |
Classes | |
class | GatherFields |
class | GatherRefCoords |
class | ScatterCellAvgQuantity |
class | ScatterCellAvgVector |
class | ScatterCellQuantity |
class | ScatterFields |
class | ScatterVectorFields |
class | IOClosureModelFactory |
class | IOClosureModelFactory_TemplateBuilder |
class | STKConnManager |
class | ModelEvaluatorFactory |
class | NOXObserverFactory |
class | RythmosObserverFactory |
struct | PermFunctor |
class | WorksetFactory |
class | LocalIdCompare |
class | ResponseEvaluatorFactory_SolutionWriter |
struct | RespFactorySolnWriter_Builder |
class | CubeHexMeshFactory |
class | CubeTetMeshFactory |
class | CustomMeshFactory |
class | ElementDescriptor |
class | STK_Interface |
class | LineMeshFactory |
class | STK_MeshFactory |
class | MultiBlockMeshFactory |
class | CoordMatcher |
class | PlaneMatcher |
class | QuarterPlaneMatcher |
class | PeriodicBC_MatcherBase |
class | PeriodicBC_Matcher |
class | PeriodicBC_Parser |
class | SculptMeshFactory |
class | SquareQuadMeshFactory |
class | SquareTriMeshFactory |
Functions | |
template<typename LO , typename GO > | |
void | generateLocalMeshInfo (const panzer_stk::STK_Interface &mesh, panzer::LocalMeshInfo< LO, GO > &mesh_info) |
template Teuchos::RCP < Thyra::LinearOpWithSolveFactoryBase < double > > | buildLOWSFactory< int > (bool blockedAssembly, const Teuchos::RCP< const panzer::UniqueGlobalIndexerBase > &globalIndexer, const Teuchos::RCP< panzer_stk::STKConnManager< int > > &stkConn_manager, int spatialDim, const Teuchos::RCP< const Teuchos::MpiComm< int > > &mpi_comm, const Teuchos::RCP< Teuchos::ParameterList > &strat_params, bool writeCoordinates, bool writeTopo, const Teuchos::RCP< const panzer::UniqueGlobalIndexerBase > &auxGlobalIndexer, bool useCoordinates) |
template Teuchos::RCP < Thyra::LinearOpWithSolveFactoryBase < double > > | buildLOWSFactory< panzer::Ordinal64 > (bool blockedAssembly, const Teuchos::RCP< const panzer::UniqueGlobalIndexerBase > &globalIndexer, const Teuchos::RCP< panzer_stk::STKConnManager< panzer::Ordinal64 > > &stkConn_manager, int spatialDim, const Teuchos::RCP< const Teuchos::MpiComm< int > > &mpi_comm, const Teuchos::RCP< Teuchos::ParameterList > &strat_params, bool writeCoordinates, bool writeTopo, const Teuchos::RCP< const panzer::UniqueGlobalIndexerBase > &auxGlobalIndexer, bool useCoordinates) |
Teuchos::RCP < Thyra::LinearOpWithSolveFactoryBase < double > > | buildLOWSFactory (bool blockedAssembly, const Teuchos::RCP< const panzer::UniqueGlobalIndexerBase > &globalIndexer, const Teuchos::RCP< panzer::ConnManagerBase< int > > &conn_manager, int spatialDim, const Teuchos::RCP< const Teuchos::MpiComm< int > > &mpi_comm, const Teuchos::RCP< Teuchos::ParameterList > &strat_params, bool writeCoordinates, bool writeTopo, const Teuchos::RCP< const panzer::UniqueGlobalIndexerBase > &auxGlobalIndexer, bool useCoordinates) |
template<typename GO > | |
Teuchos::RCP < Thyra::LinearOpWithSolveFactoryBase < double > > | buildLOWSFactory (bool blockedAssembly, const Teuchos::RCP< const panzer::UniqueGlobalIndexerBase > &globalIndexer, const Teuchos::RCP< panzer_stk::STKConnManager< GO > > &stkConn_manager, int spatialDim, const Teuchos::RCP< const Teuchos::MpiComm< int > > &mpi_comm, const Teuchos::RCP< Teuchos::ParameterList > &strat_params, bool writeCoordinates=false, bool writeTopo=false, const Teuchos::RCP< const panzer::UniqueGlobalIndexerBase > &auxGlobalIndexer=Teuchos::null, bool useCoordinates=true) |
Teuchos::RCP< std::vector < panzer::Workset > > | buildWorksets (const panzer_stk::STK_Interface &mesh, const std::string &eBlock, const panzer::WorksetNeeds &needs) |
Teuchos::RCP< std::vector < panzer::Workset > > | buildWorksets (const panzer_stk::STK_Interface &mesh, const panzer::WorksetNeeds &needs, const std::string &sideset, const std::string &eBlock, bool useCascade) |
Teuchos::RCP< std::map < unsigned, panzer::Workset > > | buildBCWorksets (const panzer_stk::STK_Interface &mesh, const panzer::WorksetNeeds &needs_a, const std::string &blockid_a, const panzer::WorksetNeeds &needs_b, const std::string &blockid_b, const std::string &sideset) |
Teuchos::RCP< std::map < unsigned, panzer::Workset > > | buildBCWorksets (const panzer_stk::STK_Interface &mesh, const panzer::WorksetNeeds &needs, const std::string &eblockID, const std::string &sidesetID) |
void | computeSidesetNodeNormals (std::unordered_map< unsigned, std::vector< double > > &normals, const Teuchos::RCP< const panzer_stk::STK_Interface > &mesh, const std::string &sidesetName, const std::string &elementBlockName, std::ostream *out=NULL, std::ostream *pout=NULL) |
Computes the normals for all nodes associated with a sideset surface. More... | |
void | computeSidesetNodeNormals (std::unordered_map< std::size_t, Kokkos::DynRankView< double, PHX::Device > > &elementToNormalMap, const Teuchos::RCP< const panzer_stk::STK_Interface > &mesh, const std::string &sidesetName, const std::string &elementBlockName, std::ostream *out=NULL, std::ostream *pout=NULL) |
Computes the normals for all nodes associated with a sideset surface. More... | |
template<typename GlobalOrdinal > | |
static void | gather_in_block (const std::string &blockId, const panzer::UniqueGlobalIndexer< int, GlobalOrdinal > &dofMngr, const Epetra_Vector &x, const std::vector< std::size_t > &localCellIds, std::map< std::string, Kokkos::DynRankView< double, PHX::Device > > &fc) |
static void | build_local_ids (const panzer_stk::STK_Interface &mesh, std::map< std::string, Teuchos::RCP< std::vector< std::size_t > > > &localIds) |
void | write_cell_data (panzer_stk::STK_Interface &mesh, const std::vector< double > &data, const std::string &fieldName) |
template<typename GlobalOrdinal > | |
void | write_solution_data (const panzer::UniqueGlobalIndexer< int, GlobalOrdinal > &dofMngr, panzer_stk::STK_Interface &mesh, const Epetra_MultiVector &x, const std::string &prefix, const std::string &postfix) |
template void | write_solution_data< int > (const panzer::UniqueGlobalIndexer< int, int > &dofMngr, panzer_stk::STK_Interface &mesh, const Epetra_MultiVector &x, const std::string &prefix, const std::string &postfix) |
template<typename GlobalOrdinal > | |
void | write_solution_data (const panzer::UniqueGlobalIndexer< int, GlobalOrdinal > &dofMngr, panzer_stk::STK_Interface &mesh, const Epetra_Vector &x, const std::string &prefix, const std::string &postfix) |
template void | write_solution_data< int > (const panzer::UniqueGlobalIndexer< int, int > &dofMngr, panzer_stk::STK_Interface &mesh, const Epetra_Vector &x, const std::string &prefix, const std::string &postfix) |
template<typename GlobalOrdinal > | |
void | gather_in_block (const std::string &blockId, const panzer::UniqueGlobalIndexer< int, GlobalOrdinal > &dofMngr, const Epetra_Vector &x, const std::vector< std::size_t > &localCellIds, std::map< std::string, Kokkos::DynRankView< double, PHX::Device > > &fc) |
template<typename RAContainer , class Compare > | |
void | sorted_permutation (const RAContainer &cont, std::vector< std::size_t > &permutation, const Compare &comp) |
template<typename RAContainer > | |
void | sorted_permutation (const RAContainer &cont, std::vector< std::size_t > &permutation) |
std::string | version () |
std::size_t | getElementIdx (const std::vector< stk::mesh::Entity > &elements, stk::mesh::Entity const e) |
Teuchos::RCP< ElementDescriptor > | buildElementDescriptor (stk::mesh::EntityId elmtId, std::vector< stk::mesh::EntityId > &nodes) |
template<typename Matcher > | |
Teuchos::RCP < PeriodicBC_MatcherBase > | buildPeriodicBC_Matcher (const std::string &left, const std::string &right, const Matcher &matcher, const std::string type="coord") |
static std::string | trim_left (const std::string &s) |
static std::string | trim_right (const std::string &s) |
static std::string | trim (const std::string &s) |
void panzer_stk::generateLocalMeshInfo | ( | const panzer_stk::STK_Interface & | mesh, |
panzer::LocalMeshInfo< LO, GO > & | mesh_info | ||
) |
Create a structure containing information about the local portion of a given element block
[in] | mesh | Reference to STK mesh interface |
Definition at line 757 of file Panzer_STK_LocalMeshUtilities.cpp.
template Teuchos::RCP<Thyra::LinearOpWithSolveFactoryBase<double> > panzer_stk::buildLOWSFactory< int > | ( | bool | blockedAssembly, |
const Teuchos::RCP< const panzer::UniqueGlobalIndexerBase > & | globalIndexer, | ||
const Teuchos::RCP< panzer_stk::STKConnManager< int > > & | stkConn_manager, | ||
int | spatialDim, | ||
const Teuchos::RCP< const Teuchos::MpiComm< int > > & | mpi_comm, | ||
const Teuchos::RCP< Teuchos::ParameterList > & | strat_params, | ||
bool | writeCoordinates, | ||
bool | writeTopo, | ||
const Teuchos::RCP< const panzer::UniqueGlobalIndexerBase > & | auxGlobalIndexer, | ||
bool | useCoordinates | ||
) |
template Teuchos::RCP<Thyra::LinearOpWithSolveFactoryBase<double> > panzer_stk::buildLOWSFactory< panzer::Ordinal64 > | ( | bool | blockedAssembly, |
const Teuchos::RCP< const panzer::UniqueGlobalIndexerBase > & | globalIndexer, | ||
const Teuchos::RCP< panzer_stk::STKConnManager< panzer::Ordinal64 > > & | stkConn_manager, | ||
int | spatialDim, | ||
const Teuchos::RCP< const Teuchos::MpiComm< int > > & | mpi_comm, | ||
const Teuchos::RCP< Teuchos::ParameterList > & | strat_params, | ||
bool | writeCoordinates, | ||
bool | writeTopo, | ||
const Teuchos::RCP< const panzer::UniqueGlobalIndexerBase > & | auxGlobalIndexer, | ||
bool | useCoordinates | ||
) |
Teuchos::RCP< Thyra::LinearOpWithSolveFactoryBase< double > > panzer_stk::buildLOWSFactory | ( | bool | blockedAssembly, |
const Teuchos::RCP< const panzer::UniqueGlobalIndexerBase > & | globalIndexer, | ||
const Teuchos::RCP< panzer::ConnManagerBase< int > > & | conn_manager, | ||
int | spatialDim, | ||
const Teuchos::RCP< const Teuchos::MpiComm< int > > & | mpi_comm, | ||
const Teuchos::RCP< Teuchos::ParameterList > & | strat_params, | ||
bool | writeCoordinates, | ||
bool | writeTopo, | ||
const Teuchos::RCP< const panzer::UniqueGlobalIndexerBase > & | auxGlobalIndexer, | ||
bool | useCoordinates | ||
) |
Definition at line 87 of file Panzer_STK_SetupLOWSFactory.cpp.
Teuchos::RCP< Thyra::LinearOpWithSolveFactoryBase< double > > panzer_stk::buildLOWSFactory | ( | bool | blockedAssembly, |
const Teuchos::RCP< const panzer::UniqueGlobalIndexerBase > & | globalIndexer, | ||
const Teuchos::RCP< panzer_stk::STKConnManager< GO > > & | stkConn_manager, | ||
int | spatialDim, | ||
const Teuchos::RCP< const Teuchos::MpiComm< int > > & | mpi_comm, | ||
const Teuchos::RCP< Teuchos::ParameterList > & | strat_params, | ||
bool | writeCoordinates = false , |
||
bool | writeTopo = false , |
||
const Teuchos::RCP< const panzer::UniqueGlobalIndexerBase > & | auxGlobalIndexer = Teuchos::null , |
||
bool | useCoordinates = true |
||
) |
Build LOWS factory.
Definition at line 165 of file Panzer_STK_SetupLOWSFactory_impl.hpp.
Teuchos::RCP< std::vector< panzer::Workset > > panzer_stk::buildWorksets | ( | const panzer_stk::STK_Interface & | mesh, |
const std::string & | eBlock, | ||
const panzer::WorksetNeeds & | needs | ||
) |
Build volumetric worksets for a STK mesh
[in] | mesh | A pointer to the STK_Interface used to construct the worksets |
[in] | needs | Physics block associated with a particular element block |
[in] | eBlock | Element block to build worksets over (the descriptor information) |
Definition at line 53 of file Panzer_STK_SetupUtilities.cpp.
Teuchos::RCP< std::vector< panzer::Workset > > panzer_stk::buildWorksets | ( | const panzer_stk::STK_Interface & | mesh, |
const panzer::WorksetNeeds & | needs, | ||
const std::string & | sideset, | ||
const std::string & | eBlock, | ||
bool | useCascade = false |
||
) |
Build volumetric worksets for a STK mesh with elements that touch a particular sideset.
[in] | mesh | A pointer to the STK_Interface used to construct the worksets |
[in] | needs | Needs associated with the element block |
[in] | workset_size | The size of each workset measured in the number of elements |
[in] | sideset | The sideset id used to locate volume elements associated with the sideset |
[in] | eBlock | Element block to build worksets over (the descriptor information) |
[in] | useCascade | If true, worksets will be built for every local node, edge and face that touches the side set. Note that this implies that the workset will have repeated elements. This is useful for higher-order surface flux calculations. |
Definition at line 74 of file Panzer_STK_SetupUtilities.cpp.
Teuchos::RCP< std::map< unsigned, panzer::Workset > > panzer_stk::buildBCWorksets | ( | const panzer_stk::STK_Interface & | mesh, |
const panzer::WorksetNeeds & | needs_a, | ||
const std::string & | blockid_a, | ||
const panzer::WorksetNeeds & | needs_b, | ||
const std::string & | blockid_b, | ||
const std::string & | sideset | ||
) |
Build side worksets with elements on both sides (this is for DG)
[in] | mesh | A pointer to the STK_Interface used to construct the worksets |
[in] | needs_a | Needs of these worksets |
[in] | blockid_a | Element block id |
[in] | needs_b | Needs of these worksets |
[in] | blockid_b | Element block id |
[in] | workset_size | The size of each workset measured in the number of elements |
[in] | sideset | The sideset id used to locate volume elements associated with the sideset |
Definition at line 193 of file Panzer_STK_SetupUtilities.cpp.
Teuchos::RCP< std::map< unsigned, panzer::Workset > > panzer_stk::buildBCWorksets | ( | const panzer_stk::STK_Interface & | mesh, |
const panzer::WorksetNeeds & | needs, | ||
const std::string & | eblockID, | ||
const std::string & | sidesetID | ||
) |
Build boundary condition worksets for a STK mesh
[in] | mesh | A pointer to the STK_Interface used to construct the worksets |
[in] | needs | Physics block associated with the element block |
[in] | eblockID | Name of sideset |
[in] | sidesetID | Name of sideset |
Definition at line 282 of file Panzer_STK_SetupUtilities.cpp.
void panzer_stk::computeSidesetNodeNormals | ( | std::unordered_map< unsigned, std::vector< double > > & | normals, |
const Teuchos::RCP< const panzer_stk::STK_Interface > & | mesh, | ||
const std::string & | sidesetName, | ||
const std::string & | elementBlockName, | ||
std::ostream * | out = NULL , |
||
std::ostream * | pout = NULL |
||
) |
Computes the normals for all nodes associated with a sideset surface.
Computes the node normals for a given side set. This computation will use ghosted element contributions for all surfaces associated with the node, but will only use elements associated with the sideset. So if two sidesets adjoin at the seam, the nodes on the seam will NOT have the same node normal. A simple future addition would be to allow for a list of sidesets to be provided to allow for the union computation.
[out] | normals | Map of the node normals (including ghosted nodes). Key is the global id from the stk mesh node entity id and value is vector of the size of the parent element dimension containing the normal vector components. Vector components will be resized on calling this method. |
[in] | mesh | (Required) Panzer stk mesh |
[in] | sidesetName | (Required) Name of the sideset that the normals will be computed on |
[in] | elementBlockName | (Required) Name of the element block that the outward facing normals will be computed on |
[in] | out | (Optional) The ostream used for serial debug output on print process only. If non-null this will print debug info. |
[in] | pout | (Optional) The ostream used for parallel debug output by all processes. If non-null this will print debug info. |
Definition at line 67 of file Panzer_STK_SurfaceNodeNormals.cpp.
void panzer_stk::computeSidesetNodeNormals | ( | std::unordered_map< std::size_t, Kokkos::DynRankView< double, PHX::Device > > & | elementToNormalMap, |
const Teuchos::RCP< const panzer_stk::STK_Interface > & | mesh, | ||
const std::string & | sidesetName, | ||
const std::string & | elementBlockName, | ||
std::ostream * | out = NULL , |
||
std::ostream * | pout = NULL |
||
) |
Computes the normals for all nodes associated with a sideset surface.
Computes the node normals for a given side set. This computation will use ghosted element contributions for all surfaces associated with the node, but will only use elements associated with the sideset. So if two sidesets adjoin at the seam, the nodes on the seam will NOT have the same node normal. A simple future addition would be to allow for a list of sidesets to be provided to allow for the union computation.
[out] | normals | Map of the node normals (including ghosted nodes). Key is the panzer_stk::STK_Interface local element id and value is a multidimensional array of the size of the number of nodes times the parent element dimension containing the normal vector components. Vector components will be resized on calling this method. |
[in] | mesh | (Required) Panzer stk mesh |
[in] | sidesetName | (Required) Name of the sideset that the normals will be computed on |
[in] | elementBlockName | (Required) Name of the element block that the outward facing normals will be computed on |
[in] | out | (Optional) The ostream used for serial debug output on print process only. If non-null this will print debug info. |
[in] | pout | (Optional) The ostream used for parallel debug output by all processes. If non-null this will print debug info. |
Definition at line 234 of file Panzer_STK_SurfaceNodeNormals.cpp.
|
static |
Definition at line 134 of file Panzer_STK_Utilities.cpp.
|
static |
Definition at line 171 of file Panzer_STK_Utilities.cpp.
void panzer_stk::write_cell_data | ( | panzer_stk::STK_Interface & | mesh, |
const std::vector< double > & | data, | ||
const std::string & | fieldName | ||
) |
Write a vector to the cell data of a STK mesh. This will look up the cell field prefix+fieldName+postfix
, which is assumed to be in the STK mesh object. If not an assertion exeption will be thrown.
[in] | mesh | STK mesh object |
[in] | data | Vector of doubles equatl to the total number of elements on this processor |
[in] | fieldName | Name of field to be written (must be a STK field) |
Definition at line 62 of file Panzer_STK_Utilities.cpp.
void panzer_stk::write_solution_data | ( | const panzer::UniqueGlobalIndexer< int, GlobalOrdinal > & | dofMngr, |
panzer_stk::STK_Interface & | mesh, | ||
const Epetra_MultiVector & | x, | ||
const std::string & | prefix, | ||
const std::string & | postfix | ||
) |
Definition at line 86 of file Panzer_STK_Utilities.cpp.
template void panzer_stk::write_solution_data< int > | ( | const panzer::UniqueGlobalIndexer< int, int > & | dofMngr, |
panzer_stk::STK_Interface & | mesh, | ||
const Epetra_MultiVector & | x, | ||
const std::string & | prefix, | ||
const std::string & | postfix | ||
) |
void panzer_stk::write_solution_data | ( | const panzer::UniqueGlobalIndexer< int, GlobalOrdinal > & | dofMngr, |
panzer_stk::STK_Interface & | mesh, | ||
const Epetra_Vector & | x, | ||
const std::string & | prefix, | ||
const std::string & | postfix | ||
) |
Definition at line 99 of file Panzer_STK_Utilities.cpp.
template void panzer_stk::write_solution_data< int > | ( | const panzer::UniqueGlobalIndexer< int, int > & | dofMngr, |
panzer_stk::STK_Interface & | mesh, | ||
const Epetra_Vector & | x, | ||
const std::string & | prefix, | ||
const std::string & | postfix | ||
) |
void panzer_stk::gather_in_block | ( | const std::string & | blockId, |
const panzer::UniqueGlobalIndexer< int, GlobalOrdinal > & | dofMngr, | ||
const Epetra_Vector & | x, | ||
const std::vector< std::size_t > & | localCellIds, | ||
std::map< std::string, Kokkos::DynRankView< double, PHX::Device > > & | fc | ||
) |
Definition at line 134 of file Panzer_STK_Utilities.cpp.
void panzer_stk::sorted_permutation | ( | const RAContainer & | cont, |
std::vector< std::size_t > & | permutation, | ||
const Compare & | comp | ||
) |
Using a container, compute the sorted permutation vector do not modifiy the original container.
Motivated by this board on StackOverflow: http://stackoverflow.com/questions/4523220/sorting-a-vector-of-double-precision-reals-and-obtain-their-order
Definition at line 119 of file Panzer_STK_Utilities.hpp.
void panzer_stk::sorted_permutation | ( | const RAContainer & | cont, |
std::vector< std::size_t > & | permutation | ||
) |
Using a container, compute the sorted permutation vector do not modifiy the original container.
Motivated by this board on StackOverflow: http://stackoverflow.com/questions/4523220/sorting-a-vector-of-double-precision-reals-and-obtain-their-order
Definition at line 112 of file Panzer_STK_Utilities.hpp.
std::string panzer_stk::version | ( | ) |
Definition at line 48 of file Panzer_STK_Version.cpp.
|
inline |
Definition at line 407 of file Panzer_STKConnManager_impl.hpp.
Teuchos::RCP< ElementDescriptor > panzer_stk::buildElementDescriptor | ( | stk::mesh::EntityId | elmtId, |
std::vector< stk::mesh::EntityId > & | nodes | ||
) |
Constructor function for building the element descriptors.
Definition at line 87 of file Panzer_STK_Interface.cpp.
Teuchos::RCP<PeriodicBC_MatcherBase> panzer_stk::buildPeriodicBC_Matcher | ( | const std::string & | left, |
const std::string & | right, | ||
const Matcher & | matcher, | ||
const std::string | type = "coord" |
||
) |
A simple constructor function for building a matcher object. This prevents the need to directly instantiate the templated derived class. It is a convenience.
Definition at line 233 of file Panzer_STK_PeriodicBC_Matcher.hpp.
|
static |
Definition at line 164 of file Panzer_STK_PeriodicBC_Parser.cpp.
|
static |
Definition at line 171 of file Panzer_STK_PeriodicBC_Parser.cpp.
|
static |
Definition at line 178 of file Panzer_STK_PeriodicBC_Parser.cpp.