Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Namespaces | Classes | Functions
panzer_stk Namespace Reference

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< ElementDescriptorbuildElementDescriptor (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)
 

Function Documentation

template<typename LO , typename GO >
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

Parameters
[in]meshReference to STK mesh interface
Returns
Structure containing local mesh information

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.

template<typename GO >
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

Parameters
[in]meshA pointer to the STK_Interface used to construct the worksets
[in]needsPhysics block associated with a particular element block
[in]eBlockElement block to build worksets over (the descriptor information)
Returns
vector of worksets for the corresponding element block.

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.

Parameters
[in]meshA pointer to the STK_Interface used to construct the worksets
[in]needsNeeds associated with the element block
[in]workset_sizeThe size of each workset measured in the number of elements
[in]sidesetThe sideset id used to locate volume elements associated with the sideset
[in]eBlockElement block to build worksets over (the descriptor information)
[in]useCascadeIf 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.
Returns
vector of worksets for the corresponding element block.

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)

Parameters
[in]meshA pointer to the STK_Interface used to construct the worksets
[in]needs_aNeeds of these worksets
[in]blockid_aElement block id
[in]needs_bNeeds of these worksets
[in]blockid_bElement block id
[in]workset_sizeThe size of each workset measured in the number of elements
[in]sidesetThe sideset id used to locate volume elements associated with the sideset
Returns
vector of worksets for the corresponding edge

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

Parameters
[in]meshA pointer to the STK_Interface used to construct the worksets
[in]needsPhysics block associated with the element block
[in]eblockIDName of sideset
[in]sidesetIDName of sideset
Returns
Map relating local element side IDs to a workset.
Note
All elements for a bc that are associated with a particular side ID are grouped into a single workset

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.

Parameters
[out]normalsMap 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.

Parameters
[out]normalsMap 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.

template<typename GlobalOrdinal >
static 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 
)
static

Definition at line 134 of file Panzer_STK_Utilities.cpp.

void panzer_stk::build_local_ids ( const panzer_stk::STK_Interface mesh,
std::map< std::string, Teuchos::RCP< std::vector< std::size_t > > > &  localIds 
)
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.

Parameters
[in]meshSTK mesh object
[in]dataVector of doubles equatl to the total number of elements on this processor
[in]fieldNameName of field to be written (must be a STK field)

Definition at line 62 of file Panzer_STK_Utilities.cpp.

template<typename GlobalOrdinal >
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 
)
template<typename GlobalOrdinal >
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 
)
template<typename GlobalOrdinal >
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.

template<typename RAContainer , class Compare >
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.

template<typename RAContainer >
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.

std::size_t panzer_stk::getElementIdx ( const std::vector< stk::mesh::Entity > &  elements,
stk::mesh::Entity const  e 
)
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.

template<typename Matcher >
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 std::string panzer_stk::trim_left ( const std::string &  s)
static

Definition at line 164 of file Panzer_STK_PeriodicBC_Parser.cpp.

static std::string panzer_stk::trim_right ( const std::string &  s)
static

Definition at line 171 of file Panzer_STK_PeriodicBC_Parser.cpp.

static std::string panzer_stk::trim ( const std::string &  s)
static

Definition at line 178 of file Panzer_STK_PeriodicBC_Parser.cpp.