Panzer
Version of the Day
|
Computes . More...
Namespaces | |
dof_functors | |
kokkos_utils | |
partitioning_utilities | |
impl | |
response_bc_adapters | |
panzer_tmp | |
orientation_helpers | |
Expr | |
Contains all symbols which support panzer::Expr::Eval. | |
Typedefs | |
typedef std::pair< std::string, Teuchos::RCP < panzer::BasisIRLayout > > | StrBasisPair |
using | NODE = BASIS |
typedef basic_ios_all_saver< char > | ios_all_saver |
typedef basic_ios_all_saver < wchar_t > | wios_all_saver |
typedef Sacado::ScalarParameterLibrary < panzer::EvaluationTraits > | ParamLib |
typedef Sacado::ScalarParameterVector < panzer::EvaluationTraits > | ParamVec |
typedef std::pair< std::string, Teuchos::RCP < panzer::PureBasis > > | StrPureBasisPair |
typedef Kokkos::Compat::KokkosDeviceWrapperNode < PHX::Device > | TpetraNodeType |
Enumerations | |
enum | EvaluatorStyle { EvaluatorStyle::CONTRIBUTES, EvaluatorStyle::EVALUATES } |
An indication of how an Evaluator will behave. More... | |
enum | BCType { BCT_Dirichlet, BCT_Neumann, BCT_Interface } |
Type of boundary condition. More... | |
enum | EVerbosityLevel { VERB_NONE, VERB_LOW, VERB_MEDIUM, VERB_HIGH, VERB_EXTREME } |
enum | WorksetSizeType : int { CLASSIC_MODE =-2, ALL_ELEMENTS =-1, NO_ELEMENTS =0 } |
Special values for the workset size. When the workset size is set on the WorksetDescriptor an interger value can be set, or one of these special enums can be used. More... | |
enum | MemUsageType { MEM_USAGE_CURRENT, MEM_USAGE_PEAK } |
enum | FieldType { FieldType::CG, FieldType::DG } |
The type of discretization to use for a field pattern. More... | |
Functions | |
template<typename EvalT , typename Traits > | |
Teuchos::RCP< PHX::Evaluator < Traits > > | cellAverageEvaluator (const std::string &averageName, const std::string &fieldName, const Teuchos::RCP< const panzer::IntegrationRule > &ir) |
template<typename EvalT , typename TraitsT > | |
Teuchos::RCP< DotProduct < EvalT, TraitsT > > | buildEvaluator_DotProduct (const std::string &resultName, const panzer::PointRule &pr, const std::string &vecA, const std::string &vecB, double multiplier=1, const std::string &fieldMultiplier="") |
Build a dot product evaluator. Evaluates dot product at a set of points. More... | |
template<typename EvalT , typename TRAITS , typename Tag0 , typename Tag1 , typename Tag2 > | |
Teuchos::RCP< PHX::Evaluator < TRAITS > > | buildStaticSumEvaluator (const std::string &sum_name, const std::vector< std::string > &value_names, const Teuchos::RCP< PHX::DataLayout > &data_layout) |
template<typename EvalT , typename Traits > | |
Teuchos::RCP< PHX::Evaluator < Traits > > | tensorToStdVectorEvaluator (const std::string &tensorName, const std::string &vectorPrefix, const std::vector< std::string > &postfix, const Teuchos::RCP< const PHX::DataLayout > &tensorLayout, const Teuchos::RCP< const PHX::DataLayout > &vectorLayout) |
template<typename EvalT , typename Traits > | |
Teuchos::RCP< PHX::Evaluator < Traits > > | tensorToStdVectorEvaluator (const std::string &tensorName, const std::vector< std::string > &postfix, const Teuchos::RCP< const PHX::DataLayout > &tensorLayout, const Teuchos::RCP< const PHX::DataLayout > &vectorLayout) |
template<typename EvalT , typename Traits > | |
Teuchos::RCP< PHX::Evaluator < Traits > > | vectorToScalarEvaluator (const std::string &vectorName, const std::string &scalarPrefix, const std::vector< std::string > &postfix, const Teuchos::RCP< const PHX::DataLayout > &vectorLayout, const Teuchos::RCP< const PHX::DataLayout > &scalarLayout) |
template<typename EvalT , typename Traits > | |
Teuchos::RCP< PHX::Evaluator < Traits > > | vectorToScalarEvaluator (const std::string &vectorName, const std::vector< std::string > &postfix, const Teuchos::RCP< const PHX::DataLayout > &vectorLayout, const Teuchos::RCP< const PHX::DataLayout > &scalarLayout) |
Teuchos::RCP< const LinearObjFactory < panzer::Traits > > | cloneWithNewDomain (const LinearObjFactory< panzer::Traits > &lof, const Teuchos::RCP< const GlobalIndexer > &dUgi) |
Clone a linear object factory, but using a different domain. More... | |
Teuchos::RCP< const LinearObjFactory < panzer::Traits > > | cloneWithNewRange (const LinearObjFactory< panzer::Traits > &lof, const Teuchos::RCP< const GlobalIndexer > &rUgi) |
Clone a linear object factory, but using a different range. More... | |
Teuchos::RCP< const LinearObjFactory < panzer::Traits > > | cloneWithNewRangeAndDomain (const LinearObjFactory< panzer::Traits > &lof, const Teuchos::RCP< const GlobalIndexer > &rUgi, const Teuchos::RCP< const GlobalIndexer > &dUgi) |
Clone a linear object factory, but using a different range and domain. More... | |
std::ostream & | operator<< (std::ostream &os, const AssemblyEngineInArgs &in) |
Teuchos::RCP < panzer::BasisIRLayout > | basisIRLayout (std::string basis_type, const int basis_order, const PointRule &pt_rule) |
Nonmember constructor. More... | |
Teuchos::RCP < panzer::BasisIRLayout > | basisIRLayout (const Teuchos::RCP< const PureBasis > &b, const PointRule &pt_rule) |
Nonmember constructor. More... | |
std::ostream & | operator<< (std::ostream &os, const panzer::BC &bc) |
WorksetDescriptor | bcDescriptor (const panzer::BC &bc) |
template<typename EvalT > | |
void | buildAndRegisterSubsetOfClosureModelEvaluatorsForType (PHX::FieldManager< panzer::Traits > &fm, const panzer::PhysicsBlock &pb, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &factory, const std::string comma_sep_closure_model_list, const Teuchos::ParameterList &models, const Teuchos::ParameterList &user_data) |
Builds the closure models for a particular physics block for a dirichlet bc. More... | |
void | checkBCConsistency (const std::vector< std::string > &element_block_names, const std::vector< std::string > &sideset_names, const std::vector< panzer::BC > &bcs) |
void | buildBlockIdToPhysicsIdMap (std::map< std::string, std::string > &b_to_p, const Teuchos::ParameterList &p) |
std::ostream & | operator<< (std::ostream &os, const FieldLibraryBase &flb) |
std::ostream & | operator<< (std::ostream &os, const panzer::FieldManagerBuilder &rfd) |
Teuchos::RCP< panzer::GlobalData > | createGlobalData (bool build_default_os, int print_process) |
void | setupInitialConditionFieldManagers (WorksetContainer &wkstContainer, const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physicsBlocks, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &cm_factory, const Teuchos::ParameterList &ic_block_closure_models, const panzer::LinearObjFactory< panzer::Traits > &lo_factory, const Teuchos::ParameterList &user_data, const bool write_graphviz_file, const std::string &graphviz_file_prefix, std::map< std::string, Teuchos::RCP< PHX::FieldManager< panzer::Traits > > > &phx_ic_field_managers) |
Builds PHX::FieldManager objects for inital conditions and registers evaluators. More... | |
void | setupInitialConditionFieldManagers (WorksetContainer &wkstContainer, const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physicsBlocks, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &cm_factory, const Teuchos::ParameterList &ic_closure_models, const Teuchos::ParameterList &closure_models, const panzer::LinearObjFactory< panzer::Traits > &lo_factory, const Teuchos::ParameterList &user_data, const bool write_graphviz_file, const std::string &graphviz_file_prefix, std::map< std::string, Teuchos::RCP< PHX::FieldManager< panzer::Traits > > > &phx_ic_field_managers) |
Builds PHX::FieldManager objects for inital conditions and closure models and registers evaluators. More... | |
void | evaluateInitialCondition (WorksetContainer &wkstContainer, const std::map< std::string, Teuchos::RCP< PHX::FieldManager< panzer::Traits > > > &phx_ic_field_managers, Teuchos::RCP< panzer::LinearObjContainer > loc, const panzer::LinearObjFactory< panzer::Traits > &lo_factory, const double time_stamp) |
void | setupControlInitialCondition (const std::map< std::string, Teuchos::RCP< const shards::CellTopology > > &block_ids_to_cell_topo, const std::map< std::string, std::vector< ICFieldDescriptor > > &block_ids_to_fields, WorksetContainer &wkstContainer, const LinearObjFactory< Traits > &lof, const ClosureModelFactory_TemplateManager< Traits > &cm_factory, const Teuchos::ParameterList &ic_closure_models, const Teuchos::ParameterList &user_data, int workset_size, double t0, const Teuchos::RCP< Thyra::VectorBase< double > > &vec) |
void | buildICPhysicsBlocks (const std::map< std::string, Teuchos::RCP< const shards::CellTopology > > &block_ids_to_cell_topo, const std::map< std::string, std::vector< ICFieldDescriptor > > &block_ids_to_fields, int workset_size, std::vector< Teuchos::RCP< PhysicsBlock > > &physics_blocks) |
void | buildICPhysicsBlocks (const std::map< std::string, Teuchos::RCP< const shards::CellTopology > > &block_ids_to_cell_topo, const std::map< std::string, std::vector< ICFieldDescriptor > > &block_ids_to_fields, int workset_size, std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physics_blocks) |
template<typename Scalar > | |
static void | permuteToOther (const PHX::MDField< Scalar, Cell, IP, Dim > &coords, const PHX::MDField< Scalar, Cell, IP, Dim > &other_coords, std::vector< typename ArrayTraits< Scalar, PHX::MDField< Scalar > >::size_type > &permutation) |
template<typename ExecutionSpace , typename OutputValueType , typename PointValueType > | |
Teuchos::RCP< Intrepid2::Basis < ExecutionSpace, OutputValueType, PointValueType > > | createIntrepid2Basis (const std::string basis_type, int basis_order, const shards::CellTopology &cell_topology) |
Creates an Intrepid2::Basis object given the basis, order and cell topology. More... | |
template<typename ExecutionSpace , typename OutputValueType , typename PointValueType > | |
Teuchos::RCP< Intrepid2::Basis < ExecutionSpace, OutputValueType, PointValueType > > | createIntrepid2Basis (const std::string basis_type, int basis_order, const Teuchos::RCP< const shards::CellTopology > &cell_topology) |
Creates an Intrepid2::Basis object given the basis, order and cell topology. More... | |
void | buildIntrepidOrientation (std::vector< Intrepid2::Orientation > &orientation, panzer::ConnManager &connMgr) |
Teuchos::RCP< std::vector < Intrepid2::Orientation > > | buildIntrepidOrientation (const Teuchos::RCP< const GlobalIndexer > globalIndexer) |
void | generateLocalMeshPartitions (const panzer::LocalMeshInfo &mesh_info, const panzer::WorksetDescriptor &description, std::vector< panzer::LocalMeshPartition > &partitions) |
std::ostream & | operator<< (std::ostream &os, panzer::MaterialModelEntry &m) |
Teuchos::RCP < ModelEvaluator_Epetra > | buildEpetraME (const Teuchos::RCP< FieldManagerBuilder > &fmb, const Teuchos::RCP< ResponseLibrary< panzer::Traits > > &rLibrary, const Teuchos::RCP< LinearObjFactory< panzer::Traits > > &lof, const std::vector< Teuchos::RCP< Teuchos::Array< std::string > > > &p_names, const std::vector< Teuchos::RCP< Teuchos::Array< double > > > &p_values, const Teuchos::RCP< panzer::GlobalData > &global_data, bool build_transient_support) |
template<typename ScalarT , typename LO , typename GO > | |
Teuchos::RCP < Thyra::ModelEvaluator < ScalarT > > | buildModelEvaluator (const RCP< panzer::FieldManagerBuilder &fmb, const RCP< panzer::BlockedEpetraLinearObjFactory< panzer::Traits, int > > &lof) |
template<typename Scalar , typename Array > | |
Teuchos::RCP< const panzer::OrientationContainerBase < Scalar, Array > > | buildOrientationContainer (const Teuchos::RCP< const panzer::GlobalIndexer > &globalIndexer, const std::string &fieldName) |
template<typename Scalar , typename Array > | |
Teuchos::RCP< const OrientationContainerBase < Scalar, Array > > | buildOrientationContainer (const Teuchos::RCP< const GlobalIndexer > &globalIndexer, const std::string &fieldName) |
void | registerScalarParameter (const std::string name, panzer::ParamLib &pl, double realValue) |
template<typename EvaluationType > | |
Teuchos::RCP < panzer::ScalarParameterEntry < EvaluationType > > | accessScalarParameter (const std::string name, panzer::ParamLib &pl) |
template<typename EvaluationType > | |
Teuchos::RCP < panzer::ScalarParameterEntry < EvaluationType > > | createAndRegisterScalarParameter (const std::string name, panzer::ParamLib &pl) |
template<typename T > | |
T * | ptrFromStlVector (std::vector< T > &v) |
Teuchos::RCP< std::vector < panzer::Workset > > | buildPartitionedWorksets (const panzer::LocalMeshInfo &mesh_info, const panzer::WorksetDescriptor &description, const panzer::WorksetNeeds &needs) |
template<typename ArrayCellGIDs , typename ArraySideGIDs > | |
unsigned | getLocalSideIndexFromGlobalNodeList (const ArrayCellGIDs &cellGIDs, const ArraySideGIDs &sideGIDs, const shards::CellTopology &cell) |
template<typename ArrayCellGIDs , typename ArraySideGIDs > | |
unsigned | getLocalSubcellIndexFromGlobalNodeList (const ArrayCellGIDs &cellGIDs, const ArraySideGIDs &subcellGIDs, const shards::CellTopology &cell, unsigned subcell_dim) |
template<typename ArrayCellGIDs , typename ArraySubcellGIDs > | |
void | getLocalSubcellMapFromGlobalNodeLists (const ArrayCellGIDs &cellGIDs, const std::vector< ArraySubcellGIDs > &subcellGIDs, const shards::CellTopology &cell, unsigned subcell_dim, std::vector< unsigned > &subcellMap) |
template<typename MapT > | |
const MapT::mapped_type & | getEntry (const MapT &in_map, const typename MapT::key_type &in_key) |
template<typename InputArray , typename... DimensionPack> | |
Kokkos::DynRankView< typename InputArray::value_type, PHX::Device > | createDynRankView (const InputArray &a, const std::string &name, const DimensionPack...dims) |
Wrapper to simplify Panzer use of Sacado ViewFactory. More... | |
std::ostream & | operator<< (std::ostream &os, const panzer::Workset &w) |
void | populateValueArrays (std::size_t num_cells, bool isSide, const WorksetNeeds &needs, WorksetDetails &details, const Teuchos::RCP< WorksetDetails > other_details) |
template<typename ArrayT > | |
Teuchos::RCP< std::vector < Workset > > | buildWorksets (const WorksetNeeds &needs, const std::string &elementBlock, const std::vector< std::size_t > &local_cell_ids, const ArrayT &vertex_coordinates) |
template<typename ArrayT > | |
Teuchos::RCP< std::map < unsigned, Workset > > | buildBCWorkset (const WorksetNeeds &needs, const std::string &elementBlock, const std::vector< std::size_t > &local_cell_ids, const std::vector< std::size_t > &local_side_ids, const ArrayT &vertex_coordinates, const bool populate_value_arrays=true) |
template<typename ArrayT > | |
Teuchos::RCP< std::map < unsigned, panzer::Workset > > | buildBCWorkset (const WorksetNeeds &needs_a, const std::string &blockid_a, const std::vector< std::size_t > &local_cell_ids_a, const std::vector< std::size_t > &local_side_ids_a, const ArrayT &vertex_coordinates_a, const panzer::WorksetNeeds &needs_b, const std::string &blockid_b, const std::vector< std::size_t > &local_cell_ids_b, const std::vector< std::size_t > &local_side_ids_b, const ArrayT &vertex_coordinates_b) |
template<typename ArrayT > | |
Teuchos::RCP< std::vector < Workset > > | buildEdgeWorksets (const WorksetNeeds &needs_a, const std::string &eblock_a, const std::vector< std::size_t > &local_cell_ids_a, const std::vector< std::size_t > &local_side_ids_a, const ArrayT &vertex_coordinates_a, const WorksetNeeds &needs_b, const std::string &eblock_b, const std::vector< std::size_t > &local_cell_ids_b, const std::vector< std::size_t > &local_side_ids_b, const ArrayT &vertex_coordinates_b) |
template<typename ArrayT > | |
std::vector< Workset >::iterator | buildEdgeWorksets (const std::vector< std::size_t > &cell_indices, const WorksetNeeds &needs_a, const std::string &eblock_a, const std::vector< std::size_t > &local_cell_ids_a, const std::vector< std::size_t > &local_side_ids_a, const ArrayT &vertex_coordinates_a, const WorksetNeeds &needs_b, const std::string &eblock_b, const std::vector< std::size_t > &local_cell_ids_b, const std::vector< std::size_t > &local_side_ids_b, const ArrayT &vertex_coordinates_b, std::vector< Workset >::iterator beg) |
std::vector< std::string > ::size_type | getPureBasisIndex (std::string basis_name, const panzer::Workset &workset, WorksetDetailsAccessor &wda) |
Returns the index in the workset bases for a particular PureBasis name. More... | |
std::vector< std::string > ::size_type | getBasisIndex (std::string basis_name, const panzer::Workset &workset, WorksetDetailsAccessor &wda) |
Returns the index in the workset bases for a particular BasisIRLayout name. More... | |
std::vector< std::string > ::size_type | getIntegrationRuleIndex (int ir_degree, const panzer::Workset &workset, WorksetDetailsAccessor &wda) |
void | printWorkset (std::ostream &os, const panzer::Workset &workset, WorksetDetailsAccessor &wda) |
std::vector< std::string > ::size_type | getPureBasisIndex (std::string basis_name, const panzer::Workset &workset) |
std::vector< std::string > ::size_type | getBasisIndex (std::string basis_name, const panzer::Workset &workset) |
std::vector< int >::size_type | getIntegrationRuleIndex (int ir_degree, const panzer::Workset &workset) |
void | printWorkset (std::ostream &os, const panzer::Workset &workset) |
void | getVolumeWorksetsFromContainer (WorksetContainer &wc, const std::vector< std::string > &elementBlockNames, std::map< std::string, Teuchos::RCP< std::vector< Workset > > > &volumeWksts) |
void | getSideWorksetsFromContainer (WorksetContainer &wc, const std::vector< BC > &bcs, std::map< BC, Teuchos::RCP< std::map< unsigned, Workset > >, LessBC > &sideWksts) |
bool | operator== (const WorksetDescriptor &a, const WorksetDescriptor &b) |
Equality operation for use with hash tables and maps. More... | |
std::size_t | hash_value (const WorksetDescriptor &wd) |
Hash function that satisifies the stl hash interface. More... | |
std::ostream & | operator<< (std::ostream &os, const WorksetDescriptor &wd) |
I/O utility. More... | |
WorksetDescriptor | blockDescriptor (const std::string &eBlock) |
WorksetDescriptor | sidesetDescriptor (const std::string &eBlock, const std::string &sideset) |
WorksetDescriptor | sidesetVolumeDescriptor (const std::string &eBlock, const std::string &sideset) |
KOKKOS_INLINE_FUNCTION void | zeroSensitivities (panzer::Traits::RealType &) |
Zero out AD types so that we can drop sensitivity contributions. More... | |
KOKKOS_INLINE_FUNCTION void | zeroSensitivities (panzer::Traits::FadType &s) |
Specialization for Fad type Jacobian. More... | |
KOKKOS_INLINE_FUNCTION void | zeroSensitivities (panzer::Traits::HessianType &s) |
Specialization for Fad type Hessian. More... | |
template<typename T > | |
KOKKOS_INLINE_FUNCTION Sacado::mpl::enable_if < Sacado::IsView< T > >::type | zeroSensitivities (T x) |
Specialization for Kokkos View reference type Jacobian. More... | |
template<> | |
Teuchos::RCP < panzer::ResponseEvaluatorFactoryBase > | ResponseMESupportBuilderBase::build< panzer::Traits::Residual > () const |
template<> | |
Teuchos::RCP < panzer::ResponseEvaluatorFactoryBase > | ResponseMESupportBuilderBase::build< panzer::Traits::Jacobian > () const |
template<> | |
Teuchos::RCP < panzer::ResponseEvaluatorFactoryBase > | ResponseMESupportBuilderBase::build< panzer::Traits::Tangent > () const |
template<> | |
Teuchos::RCP < panzer::ResponseEvaluatorFactoryBase > | ResponseMESupportBuilderBase::build< panzer::Traits::Hessian > () const |
template<class T > | |
void | hash_combine (std::size_t &seed, const T &v) |
void | printMemoryUsage (std::ostream &os, const Teuchos::Comm< int > &comm) |
Print memory usage to stream. More... | |
void | printMemoryUsage (std::ostream &s, const Teuchos::Comm< int > &comm, const MemUsage &mem) |
void | pretty (std::ostream &s, size_t num) |
MemUsage | getMemoryUsage (const Teuchos::Comm< int > &comm) |
Get memory usage in B. More... | |
MemUsage | getPeakRSS (const Teuchos::Comm< int > &comm) |
MemUsage | getCurrentRSS (const Teuchos::Comm< int > &comm) |
MemUsage | reduceMemUsage (size_t &mem, const Teuchos::Comm< int > &comm, const MemUsageType &type) |
Reduce the memory usage over all the processors. More... | |
void | pauseToAttach (MPI_Comm mpicomm) |
void | pauseToAttach () |
void | trim (std::string &str) |
Removes whitespace at beginning and end of string. More... | |
void | StringTokenizer (std::vector< std::string > &tokens, const std::string &str, const std::string delimiter=",", bool trim=false) |
Tokenize a string, put tokens in a vector. More... | |
void | TokensToDoubles (std::vector< double > &values, const std::vector< std::string > &tokens) |
Turn a vector of tokens into a vector of doubles. More... | |
void | TokensToInts (std::vector< int > &values, const std::vector< std::string > &tokens) |
Turn a vector of tokens into a vector of ints. More... | |
template<typename ScalarT > | |
ScalarT | getScalarParameter (const std::string &field, const Teuchos::ParameterList &plist) |
void | reorder (std::vector< int > &order, std::function< void(int, int)> swapper) |
Using a functor, reorder an array using a order vector. More... | |
std::string | version () |
std::ostream & | operator<< (std::ostream &os, const FieldPattern &fp) |
Stream IO. More... | |
Teuchos::RCP< Epetra_IntVector > | buildGhostedFieldReducedVectorEpetra (const GlobalIndexer &ugi) |
Teuchos::RCP< const Epetra_IntVector > | buildGhostedFieldVectorEpetra (const GlobalIndexer &ugi, const Teuchos::RCP< const Epetra_IntVector > &reducedVec=Teuchos::null) |
void | buildGhostedFieldVectorEpetra (const GlobalIndexer &ugi, std::vector< int > &fieldNumbers, const Teuchos::RCP< const Epetra_IntVector > &reducedVec=Teuchos::null) |
template<typename ScalarT , typename ArrayT > | |
void | updateGhostedDataReducedVectorEpetra (const std::string &fieldName, const std::string blockId, const GlobalIndexer &ugi, const ArrayT &data, Epetra_MultiVector &dataVector) |
Teuchos::RCP< const Epetra_BlockMap > | getFieldMapEpetra (int fieldNum, const Epetra_IntVector &fieldVector) |
std::vector< Teuchos::RCP < const GlobalIndexer > > | nc2c_vector (const std::vector< Teuchos::RCP< GlobalIndexer > > &ugis) |
int | getFieldBlock (const std::string &fieldName, const std::vector< Teuchos::RCP< const GlobalIndexer >> &ugis) |
int | getFieldBlock (const std::string &fieldName, const std::vector< Teuchos::RCP< GlobalIndexer >> &ugis) |
void | computeBlockOffsets (const std::string &blockId, const std::vector< Teuchos::RCP< GlobalIndexer >> &ugis, std::vector< int > &blockOffsets) |
void | computeBlockOffsets (const std::string &blockId, const std::vector< Teuchos::RCP< const GlobalIndexer >> &ugis, std::vector< int > &blockOffsets) |
std::string | printUGILoadBalancingInformation (const GlobalIndexer &ugi) |
void | printMeshTopology (std::ostream &os, const panzer::GlobalIndexer &ugi) |
Teuchos::RCP< Tpetra::Vector < int, int, panzer::GlobalOrdinal, panzer::TpetraNodeType > > | buildGhostedFieldReducedVector (const GlobalIndexer &ugi) |
void | buildGhostedFieldVector (const GlobalIndexer &ugi, std::vector< int > &fieldNumbers, const Teuchos::RCP< const Tpetra::Vector< int, int, panzer::GlobalOrdinal, panzer::TpetraNodeType > > &reducedVec) |
Teuchos::RCP< const Tpetra::Vector< int, int, panzer::GlobalOrdinal, panzer::TpetraNodeType > > | buildGhostedFieldVector (const GlobalIndexer &ugi, const Teuchos::RCP< const Tpetra::Vector< int, int, panzer::GlobalOrdinal, panzer::TpetraNodeType > > &reducedVec) |
Teuchos::RCP< const Tpetra::Map< int, panzer::GlobalOrdinal, panzer::TpetraNodeType > > | getFieldMap (int fieldNum, const Tpetra::Vector< int, int, panzer::GlobalOrdinal, panzer::TpetraNodeType > &fieldTVector) |
std::vector< Teuchos::RCP < const GlobalIndexer > > | nc2c_vector (const std::vector< Teuchos::RCP< GlobalIndexer >> &ugis) |
template<typename ScalarT , typename ArrayT > | |
void | updateGhostedDataReducedVector (const std::string &fieldName, const std::string blockId, const GlobalIndexer &ugi, const ArrayT &data, Tpetra::MultiVector< ScalarT, int, panzer::GlobalOrdinal, panzer::TpetraNodeType > &dataVector) |
Computes .
Evaluates the integral
where is some constant, , , etc., are some fields that depend on position, is some scalar function, and is some vector basis.
typedef std::pair<std::string,Teuchos::RCP<panzer::BasisIRLayout> > panzer::StrBasisPair |
Definition at line 141 of file Panzer_BasisIRLayout.hpp.
using panzer::NODE = typedef BASIS |
Definition at line 77 of file Panzer_Dimension.hpp.
typedef basic_ios_all_saver<char> panzer::ios_all_saver |
Definition at line 68 of file Panzer_IosAllSaver.hpp.
typedef basic_ios_all_saver<wchar_t> panzer::wios_all_saver |
Definition at line 71 of file Panzer_IosAllSaver.hpp.
typedef Sacado::ScalarParameterLibrary<panzer::EvaluationTraits> panzer::ParamLib |
Definition at line 53 of file Panzer_ParameterLibrary.hpp.
typedef Sacado::ScalarParameterVector<panzer::EvaluationTraits> panzer::ParamVec |
Definition at line 54 of file Panzer_ParameterLibrary.hpp.
typedef std::pair<std::string,Teuchos::RCP<panzer::PureBasis> > panzer::StrPureBasisPair |
Definition at line 188 of file Panzer_PureBasis.hpp.
typedef Kokkos::Compat::KokkosDeviceWrapperNode<PHX::Device> panzer::TpetraNodeType |
Definition at line 55 of file Panzer_NodeType.hpp.
|
strong |
An indication of how an Evaluator
will behave.
An Evaluator
will compute the result of its evaluation and then behave according to the table below.
Enumerator | |
---|---|
CONTRIBUTES |
Contribute the result to a specified residual, not saving anything. |
EVALUATES |
Save the result under a specified name for future use. |
Definition at line 54 of file Panzer_EvaluatorStyle.hpp.
enum panzer::BCType |
Type of boundary condition.
Enumerator | |
---|---|
BCT_Dirichlet | |
BCT_Neumann | |
BCT_Interface |
Definition at line 74 of file Panzer_BC.hpp.
Enumerator | |
---|---|
VERB_NONE | |
VERB_LOW | |
VERB_MEDIUM | |
VERB_HIGH | |
VERB_EXTREME |
Definition at line 51 of file Panzer_OutputStream.hpp.
enum panzer::WorksetSizeType : int |
Special values for the workset size. When the workset size is set on the WorksetDescriptor an interger value can be set, or one of these special enums can be used.
Enumerator | |
---|---|
CLASSIC_MODE |
Backwards compatibility mode that ignores the worksetSize in the WorksetDescriptor. |
ALL_ELEMENTS |
Workset size is set to the total number of local elements in the MPI process. |
NO_ELEMENTS |
Workset size is set to zero. |
Definition at line 54 of file Panzer_WorksetDescriptor.hpp.
enum panzer::MemUsageType |
Enumerator | |
---|---|
MEM_USAGE_CURRENT | |
MEM_USAGE_PEAK |
Definition at line 89 of file Panzer_MemUtils.hpp.
|
strong |
The type of discretization to use for a field pattern.
Enumerator | |
---|---|
CG | |
DG |
Continuous Galerkin Formulation. |
Definition at line 49 of file Panzer_FieldType.hpp.
Teuchos::RCP<PHX::Evaluator<Traits> > panzer::cellAverageEvaluator | ( | const std::string & | averageName, |
const std::string & | fieldName, | ||
const Teuchos::RCP< const panzer::IntegrationRule > & | ir | ||
) |
This is a function constructor for an evaluator that builds scalars from a single vector field. The user specifies the layouts (assumed compatible) and then uses a postfix for each of the scalar fields.
[in] | vectorName | Name of the vector |
[in] | postfix | Vector specifying the postfix to use when naming each scalar field |
[in] | vectorLayout | Data layout for the vector field |
[in] | scalarLayout | Data layout for the scalars |
Definition at line 127 of file Panzer_CellAverage.hpp.
Teuchos::RCP< DotProduct< EvalT, TraitsT > > panzer::buildEvaluator_DotProduct | ( | const std::string & | resultName, |
const panzer::PointRule & | pr, | ||
const std::string & | vecA, | ||
const std::string & | vecB, | ||
double | multiplier = 1 , |
||
const std::string & | fieldMultiplier = "" |
||
) |
Build a dot product evaluator. Evaluates dot product at a set of points.
mv * fm * v_a v_b
[in] | resultName | Destination scalar field sized by pr.dl_scalar containing the dot product |
[in] | pr | Point rule class that defines the size of the fields |
[in] | vecA | The a vector |
[in] | vecB | The b vector |
[in] | multiplier | Constant multiplier (mv above) |
[in] | fieldMultiplier | Field to multiply by (fm above) |
Definition at line 57 of file Panzer_DotProduct_impl.hpp.
Teuchos::RCP< PHX::Evaluator< TRAITS > > panzer::buildStaticSumEvaluator | ( | const std::string & | sum_name, |
const std::vector< std::string > & | value_names, | ||
const Teuchos::RCP< PHX::DataLayout > & | data_layout | ||
) |
This functions builds a static sum evaluator based on the rank of the data layout object. Dependent and evaluated fields are denoted by the passed in parameters.
Definition at line 464 of file Panzer_Sum_impl.hpp.
Teuchos::RCP<PHX::Evaluator<Traits> > panzer::tensorToStdVectorEvaluator | ( | const std::string & | tensorName, |
const std::string & | vectorPrefix, | ||
const std::vector< std::string > & | postfix, | ||
const Teuchos::RCP< const PHX::DataLayout > & | tensorLayout, | ||
const Teuchos::RCP< const PHX::DataLayout > & | vectorLayout | ||
) |
This is a function constructor for an evaluator that builds vectors from a single tensor field. The user specifies the layouts (assumed compatible) and then uses a postfix for each of the vector fields.
[in] | tensorName | Name of the tensor |
[in] | vectorPrefix | Name to prefix to the vector values |
[in] | postfix | Vector specifying the postfix to use when naming each vector field |
[in] | tensorLayout | Data layout for the tensor field |
[in] | vectorLayout | Data layout for the vectors |
Definition at line 105 of file Panzer_TensorToStdVector_decl.hpp.
Teuchos::RCP<PHX::Evaluator<Traits> > panzer::tensorToStdVectorEvaluator | ( | const std::string & | tensorName, |
const std::vector< std::string > & | postfix, | ||
const Teuchos::RCP< const PHX::DataLayout > & | tensorLayout, | ||
const Teuchos::RCP< const PHX::DataLayout > & | vectorLayout | ||
) |
This is a function constructor for an evaluator that builds vectors from a single tensor field. The user specifies the layouts (assumed compatible) and then uses a postfix for each of the vector fields.
[in] | tensorName | Name of the tensor |
[in] | postfix | Vector specifying the postfix to use when naming each vector field |
[in] | tensorLayout | Data layout for the tensor field |
[in] | vectorLayout | Data layout for the vectors |
Definition at line 140 of file Panzer_TensorToStdVector_decl.hpp.
Teuchos::RCP<PHX::Evaluator<Traits> > panzer::vectorToScalarEvaluator | ( | const std::string & | vectorName, |
const std::string & | scalarPrefix, | ||
const std::vector< std::string > & | postfix, | ||
const Teuchos::RCP< const PHX::DataLayout > & | vectorLayout, | ||
const Teuchos::RCP< const PHX::DataLayout > & | scalarLayout | ||
) |
This is a function constructor for an evaluator that builds scalars from a single vector field. The user specifies the layouts (assumed compatible) and then uses a postfix for each of the scalar fields.
[in] | vectorName | Name of the vector |
[in] | scalarPrefix | Name to prefix to the scalar values |
[in] | postfix | Vector specifying the postfix to use when naming each scalar field |
[in] | vectorLayout | Data layout for the vector field |
[in] | scalarLayout | Data layout for the scalars |
Definition at line 100 of file Panzer_VectorToScalar_decl.hpp.
Teuchos::RCP<PHX::Evaluator<Traits> > panzer::vectorToScalarEvaluator | ( | const std::string & | vectorName, |
const std::vector< std::string > & | postfix, | ||
const Teuchos::RCP< const PHX::DataLayout > & | vectorLayout, | ||
const Teuchos::RCP< const PHX::DataLayout > & | scalarLayout | ||
) |
This is a function constructor for an evaluator that builds scalars from a single vector field. The user specifies the layouts (assumed compatible) and then uses a postfix for each of the scalar fields.
[in] | vectorName | Name of the vector |
[in] | postfix | Vector specifying the postfix to use when naming each scalar field |
[in] | vectorLayout | Data layout for the vector field |
[in] | scalarLayout | Data layout for the scalars |
Definition at line 135 of file Panzer_VectorToScalar_decl.hpp.
Teuchos::RCP< const LinearObjFactory< panzer::Traits > > panzer::cloneWithNewDomain | ( | const LinearObjFactory< panzer::Traits > & | lof, |
const Teuchos::RCP< const GlobalIndexer > & | dUgi | ||
) |
Clone a linear object factory, but using a different domain.
This is the case where you want to make sure the linear algebra abstractions are compatible, but don't really care which one is used.
[in] | lof | Linear object factory to be cloned |
[in] | dUgi | Domain unique global indexer to be used |
Definition at line 13 of file Panzer_LinearObjFactory_Utilities.cpp.
Teuchos::RCP< const LinearObjFactory< panzer::Traits > > panzer::cloneWithNewRange | ( | const LinearObjFactory< panzer::Traits > & | lof, |
const Teuchos::RCP< const GlobalIndexer > & | rUgi | ||
) |
Clone a linear object factory, but using a different range.
This is the case where you want to make sure the linear algebra abstractions are compatible, but don't really care which one is used.
[in] | lof | Linear object factory to be cloned |
[in] | rUgi | Range unique global indexer to be used |
Definition at line 20 of file Panzer_LinearObjFactory_Utilities.cpp.
Teuchos::RCP< const LinearObjFactory< panzer::Traits > > panzer::cloneWithNewRangeAndDomain | ( | const LinearObjFactory< panzer::Traits > & | lof, |
const Teuchos::RCP< const GlobalIndexer > & | rUgi, | ||
const Teuchos::RCP< const GlobalIndexer > & | dUgi | ||
) |
Clone a linear object factory, but using a different range and domain.
This is the case where you want to make sure the linear algebra abstractions are compatible, but don't really care which one is used.
[in] | lof | Linear object factory to be cloned |
[in] | rUgi | Range unique global indexer to be used |
[in] | dUgi | Domain unique global indexer to be used |
Definition at line 27 of file Panzer_LinearObjFactory_Utilities.cpp.
|
inline |
Streaming output for the AssemblyEngineInArgs. This is helpful in debugging exactly what is in the input arguments data structure.
Definition at line 147 of file Panzer_AssemblyEngine_InArgs.hpp.
Teuchos::RCP< panzer::BasisIRLayout > panzer::basisIRLayout | ( | std::string | basis_type, |
const int | basis_order, | ||
const PointRule & | pt_rule | ||
) |
Nonmember constructor.
Definition at line 55 of file Panzer_BasisIRLayout.cpp.
Teuchos::RCP< panzer::BasisIRLayout > panzer::basisIRLayout | ( | const Teuchos::RCP< const PureBasis > & | b, |
const PointRule & | pt_rule | ||
) |
Nonmember constructor.
Definition at line 61 of file Panzer_BasisIRLayout.cpp.
std::ostream & panzer::operator<< | ( | std::ostream & | os, |
const panzer::BC & | bc | ||
) |
Definition at line 321 of file Panzer_BC.cpp.
panzer::WorksetDescriptor panzer::bcDescriptor | ( | const panzer::BC & | bc | ) |
Definition at line 331 of file Panzer_BC.cpp.
void panzer::buildAndRegisterSubsetOfClosureModelEvaluatorsForType | ( | PHX::FieldManager< panzer::Traits > & | fm, |
const panzer::PhysicsBlock & | pb, | ||
const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > & | factory, | ||
const std::string | comma_sep_closure_model_list, | ||
const Teuchos::ParameterList & | models, | ||
const Teuchos::ParameterList & | user_data | ||
) |
Builds the closure models for a particular physics block for a dirichlet bc.
In many cases, we want the material models for a particular physics block for a boundary condition. We could make a direct call to the physics block function buildAndRegisterClosureModelEvaluatorsForType<EvalT>(). However, in many cases this registers certain unneeded evaluators that cause problems. Some evaluators may instert required fields at integration points that can not be met for dirichlet conditions where we work at basis points. Use this class to build a subset of the closure models for a dirichlet bc.
fm | [in/out] FieldManager - on exit will contain registerd evaluators |
pb | [in] Physics block |
factory | [in] closure model factory |
comma_sep_closure_model_list | [in] a string containing a comma separated list of the models to build |
models | [in] list of models avaialble to the simulation |
user_data | [in] User suppplied data that optionally can be used to build models |
Definition at line 79 of file Panzer_BCStrategy_Dirichlet_Utilities.hpp.
void panzer::checkBCConsistency | ( | const std::vector< std::string > & | element_block_names, |
const std::vector< std::string > & | sideset_names, | ||
const std::vector< panzer::BC > & | bcs | ||
) |
Definition at line 6 of file Panzer_CheckBCConsistency.cpp.
void panzer::buildBlockIdToPhysicsIdMap | ( | std::map< std::string, std::string > & | b_to_p, |
const Teuchos::ParameterList & | p | ||
) |
Definition at line 48 of file Panzer_ElementBlockIdToPhysicsIdMap.cpp.
|
inline |
Definition at line 155 of file Panzer_FieldLibrary.hpp.
std::ostream & panzer::operator<< | ( | std::ostream & | os, |
const panzer::FieldManagerBuilder & | rfd | ||
) |
Definition at line 550 of file Panzer_FieldManagerBuilder.cpp.
|
related |
Definition at line 50 of file Panzer_GlobalData.cpp.
void panzer::setupInitialConditionFieldManagers | ( | WorksetContainer & | wkstContainer, |
const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > & | physicsBlocks, | ||
const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > & | cm_factory, | ||
const Teuchos::ParameterList & | ic_block_closure_models, | ||
const panzer::LinearObjFactory< panzer::Traits > & | lo_factory, | ||
const Teuchos::ParameterList & | user_data, | ||
const bool | write_graphviz_file, | ||
const std::string & | graphviz_file_prefix, | ||
std::map< std::string, Teuchos::RCP< PHX::FieldManager< panzer::Traits > > > & | phx_ic_field_managers | ||
) |
Builds PHX::FieldManager objects for inital conditions and registers evaluators.
[in] | wkstContainer | Worksets for the corresponding evaluations. |
[in] | physicsBlock | PhysicsBlocks created by FieldManagerBuilder. |
[in] | cm_factory | Factory that provides all closure models required by the initial condition evaluation. |
[in] | closure_models | List of closure models for each element block required for initial conditions. |
[in] | lo_factory | LinearObjFactory corresponding to the problem. |
[in] | user_data | ParameterList with optional user data. |
[out] | phx_ic_field_managers | Allocated PHX::FieldManagers for each element block. |
Definition at line 56 of file Panzer_InitialCondition_Builder.cpp.
void panzer::setupInitialConditionFieldManagers | ( | WorksetContainer & | wkstContainer, |
const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > & | physicsBlocks, | ||
const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > & | cm_factory, | ||
const Teuchos::ParameterList & | ic_closure_models, | ||
const Teuchos::ParameterList & | closure_models, | ||
const panzer::LinearObjFactory< panzer::Traits > & | lo_factory, | ||
const Teuchos::ParameterList & | user_data, | ||
const bool | write_graphviz_file, | ||
const std::string & | graphviz_file_prefix, | ||
std::map< std::string, Teuchos::RCP< PHX::FieldManager< panzer::Traits > > > & | phx_ic_field_managers | ||
) |
Builds PHX::FieldManager objects for inital conditions and closure models and registers evaluators.
[in] | wkstContainer | Worksets for the corresponding evaluations. |
[in] | physicsBlock | PhysicsBlocks created by FieldManagerBuilder. |
[in] | cm_factory | Factory that provides all closure models required by the initial condition evaluation. |
[in] | ic_closure_models | List of initial condition closure models for each element block required for initial conditions. |
[in] | closure_models | List of closure models for each element block required to compute initial conditions. |
[in] | lo_factory | LinearObjFactory corresponding to the problem. |
[in] | user_data | ParameterList with optional user data. |
[out] | phx_ic_field_managers | Allocated PHX::FieldManagers for each element block. |
Definition at line 117 of file Panzer_InitialCondition_Builder.cpp.
void panzer::evaluateInitialCondition | ( | WorksetContainer & | wkstContainer, |
const std::map< std::string, Teuchos::RCP< PHX::FieldManager< panzer::Traits > > > & | phx_ic_field_managers, | ||
Teuchos::RCP< panzer::LinearObjContainer > | loc, | ||
const panzer::LinearObjFactory< panzer::Traits > & | lo_factory, | ||
const double | time_stamp | ||
) |
Execute the construction of an initial condition.
Definition at line 182 of file Panzer_InitialCondition_Builder.cpp.
void panzer::setupControlInitialCondition | ( | const std::map< std::string, Teuchos::RCP< const shards::CellTopology > > & | block_ids_to_cell_topo, |
const std::map< std::string, std::vector< ICFieldDescriptor > > & | block_ids_to_fields, | ||
panzer::WorksetContainer & | wkstContainer, | ||
const panzer::LinearObjFactory< panzer::Traits > & | lof, | ||
const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > & | cm_factory, | ||
const Teuchos::ParameterList & | ic_closure_models, | ||
const Teuchos::ParameterList & | user_data, | ||
int | workset_size, | ||
double | t0, | ||
const Teuchos::RCP< Thyra::VectorBase< double > > & | vec | ||
) |
Fill a vector with the initial conditions specified using the closure models. This is intended to work with out physics blocks and so is most applicable for controls.
[in] | block_ids_to_cell_topo | Map from element blocks to cell topologies. |
[in] | block_ids_to_fields | Map from element blocks to required fields. |
[in] | wkstContainer | Worksets for the corresponding evaluations. |
[in] | lof | LinearObjFactory corresponding to the problem. |
[in] | cm_factory | Factory that provides all closure models required by the initial condition evaluation. |
[in] | closure_models | List of closure models for each element block required for initial conditions. |
[in] | user_data | ParameterList with optional user data. |
[in] | workset_size | Size of the worksets. |
[in] | t0 | Initial time. |
[out] | vec | Vector defined by the lof containing the intial conditions. |
Definition at line 363 of file Panzer_InitialCondition_Builder.cpp.
void panzer::buildICPhysicsBlocks | ( | const std::map< std::string, Teuchos::RCP< const shards::CellTopology > > & | block_ids_to_cell_topo, |
const std::map< std::string, std::vector< ICFieldDescriptor > > & | block_ids_to_fields, | ||
int | workset_size, | ||
std::vector< Teuchos::RCP< PhysicsBlock > > & | physics_blocks | ||
) |
Definition at line 397 of file Panzer_InitialCondition_Builder.cpp.
void panzer::buildICPhysicsBlocks | ( | const std::map< std::string, Teuchos::RCP< const shards::CellTopology > > & | block_ids_to_cell_topo, |
const std::map< std::string, std::vector< ICFieldDescriptor > > & | block_ids_to_fields, | ||
int | workset_size, | ||
std::vector< Teuchos::RCP< panzer::PhysicsBlock > > & | physics_blocks | ||
) |
A helper function that builds the physics blocks specified by the field descriptors. This is used inside the setup function for controls to build mock physics blocks.
[in] | block_ids_to_cell_topo | Map from element blocks to cell topologies. |
[in] | block_ids_to_fields | Map from element blocks to required fields. |
[in] | workset_size | Size of the worksets. |
[out] | physics_blocks | Physics blocks used to contrust field managers. |
|
static |
Definition at line 960 of file Panzer_IntegrationValues2.cpp.
Teuchos::RCP<Intrepid2::Basis<ExecutionSpace,OutputValueType,PointValueType> > panzer::createIntrepid2Basis | ( | const std::string | basis_type, |
int | basis_order, | ||
const shards::CellTopology & | cell_topology | ||
) |
Creates an Intrepid2::Basis object given the basis, order and cell topology.
[in] | basis_type | The name of the basis. |
[in] | basis_order | The order of the polynomial used to construct the basis. |
[in] | cell_topology | Cell topology for the basis. Taken from shards::CellTopology::getName() after trimming the extended basis suffix. |
To be backwards compatible, this method takes deprecated descriptions and transform it into a valid type and order. For example "Q1" is transformed to basis_type="HGrad",basis_order=1.
Definition at line 121 of file Panzer_IntrepidBasisFactory.hpp.
Teuchos::RCP<Intrepid2::Basis<ExecutionSpace,OutputValueType,PointValueType> > panzer::createIntrepid2Basis | ( | const std::string | basis_type, |
int | basis_order, | ||
const Teuchos::RCP< const shards::CellTopology > & | cell_topology | ||
) |
Creates an Intrepid2::Basis object given the basis, order and cell topology.
[in] | basis_type | The name of the basis. |
[in] | basis_order | The order of the polynomial used to construct the basis. |
[in] | cell_topology | Cell topology for the basis. Taken from shards::CellTopology::getName() after trimming the extended basis suffix. |
To be backwards compatible, this method takes deprecated descriptions and transform it into a valid type and order. For example "Q1" is transformed to basis_type="HGrad",basis_order=1.
Definition at line 267 of file Panzer_IntrepidBasisFactory.hpp.
void panzer::buildIntrepidOrientation | ( | std::vector< Intrepid2::Orientation > & | orientation, |
panzer::ConnManager & | connMgr | ||
) |
Definition at line 49 of file Panzer_IntrepidOrientation.cpp.
Teuchos::RCP< std::vector< Intrepid2::Orientation > > panzer::buildIntrepidOrientation | ( | const Teuchos::RCP< const panzer::GlobalIndexer > | globalIndexer | ) |
Build an orientation container from a global indexer and a field. Underneath this does several dynamic casts to determine the type of GlobalIndexer object that has been passed in.
Definition at line 105 of file Panzer_IntrepidOrientation.cpp.
void panzer::generateLocalMeshPartitions | ( | const panzer::LocalMeshInfo & | mesh_info, |
const panzer::WorksetDescriptor & | description, | ||
std::vector< panzer::LocalMeshPartition > & | partitions | ||
) |
Create a set of partitions given a descriptor containing: 1) Volume worksets
[in] | mesh_info | Reference to fully constructed mesh_info |
[in] | description | Workset descriptor defining area to partition |
[out] | partitions | Set of local mesh partitions for given region of mesh_info |
Definition at line 372 of file Panzer_LocalPartitioningUtilities.cpp.
std::ostream & panzer::operator<< | ( | std::ostream & | os, |
panzer::MaterialModelEntry & | m | ||
) |
Definition at line 113 of file Panzer_MaterialModelEntry.cpp.
Teuchos::RCP< panzer::ModelEvaluator_Epetra > panzer::buildEpetraME | ( | const Teuchos::RCP< FieldManagerBuilder > & | fmb, |
const Teuchos::RCP< ResponseLibrary< panzer::Traits > > & | rLibrary, | ||
const Teuchos::RCP< LinearObjFactory< panzer::Traits > > & | lof, | ||
const std::vector< Teuchos::RCP< Teuchos::Array< std::string > > > & | p_names, | ||
const std::vector< Teuchos::RCP< Teuchos::Array< double > > > & | p_values, | ||
const Teuchos::RCP< panzer::GlobalData > & | global_data, | ||
bool | build_transient_support | ||
) |
From a genericly typed linear object factory try and build an epetra model evaluator. This method attempts to cast to the right linear object factory and then calls the appropriate constructor of ModelEvaluator_Epetra.
Definition at line 912 of file Panzer_ModelEvaluator_Epetra.cpp.
Teuchos::RCP< Thyra::ModelEvaluator< ScalarT > > panzer::buildModelEvaluator | ( | ) |
Definition at line 55 of file Panzer_ModelEvaluator_Factory_impl.hpp.
Teuchos::RCP<const panzer::OrientationContainerBase<Scalar,Array> > panzer::buildOrientationContainer | ( | const Teuchos::RCP< const panzer::GlobalIndexer > & | globalIndexer, |
const std::string & | fieldName | ||
) |
Build an orientation container from a global indexer and a field. Underneath this does several dynamic casts to determine the type of GlobalIndexer object that has been passed in.
Definition at line 88 of file Panzer_OrientationContainer_impl.hpp.
Teuchos::RCP<const OrientationContainerBase<Scalar,Array> > panzer::buildOrientationContainer | ( | const Teuchos::RCP< const panzer::GlobalIndexer > & | globalIndexer, |
const std::string & | fieldName | ||
) |
Build an orientation container from a global indexer and a field. Underneath this does several dynamic casts to determine the type of GlobalIndexer object that has been passed in.
Definition at line 88 of file Panzer_OrientationContainer_impl.hpp.
void panzer::registerScalarParameter | ( | const std::string | name, |
panzer::ParamLib & | pl, | ||
double | realValue | ||
) |
Definition at line 59 of file Panzer_ParameterLibraryUtilities.cpp.
Teuchos::RCP< panzer::ScalarParameterEntry< EvaluationType > > panzer::accessScalarParameter | ( | const std::string | name, |
panzer::ParamLib & | pl | ||
) |
Definition at line 74 of file Panzer_ParameterLibraryUtilities_impl.hpp.
|
related |
Definition at line 50 of file Panzer_ParameterLibraryUtilities_impl.hpp.
|
inline |
Function to eliminate runtime errors triggered by compiling with checked_stl enabled builds. We have cases where raw pointers must be passed to external libraries like Epetra. If the raw data is stored in a stl vector object, it is legal to access the vector using &v[0]. In an effort to be efficient (for performance essential kernels) we do not check the size of the stl vector before grabbing the pointer. We just grab the pointer and pass the size to the epetra function. However, if the vector size is zero, then the checked stl will throw an error. This is a case of checked stl forcing us to write less efficient code (by having to check the size). To preserve efficiency, we use a define based on if checked stl is enabled.
Definition at line 65 of file Panzer_PtrFromStlVector.hpp.
Teuchos::RCP< std::vector< panzer::Workset > > panzer::buildPartitionedWorksets | ( | const panzer::LocalMeshInfo & | mesh_info, |
const panzer::WorksetDescriptor & | description, | ||
const panzer::WorksetNeeds & | needs | ||
) |
Build worksets for a partitioned mesh
[in] | mesh_info | Mesh info object |
[in] | description | Description of workset |
[in] | needs | Requirements for workset |
Definition at line 67 of file Panzer_SetupPartitionedWorksetUtilities.cpp.
unsigned panzer::getLocalSideIndexFromGlobalNodeList | ( | const ArrayCellGIDs & | cellGIDs, |
const ArraySideGIDs & | sideGIDs, | ||
const shards::CellTopology & | cell | ||
) |
Definition at line 56 of file Panzer_Shards_Utilities.hpp.
unsigned panzer::getLocalSubcellIndexFromGlobalNodeList | ( | const ArrayCellGIDs & | cellGIDs, |
const ArraySideGIDs & | subcellGIDs, | ||
const shards::CellTopology & | cell, | ||
unsigned | subcell_dim | ||
) |
This function takes a list of of GIDs defined on a cell and returns the local subcell Shards index for a user specified subcell dimension.
[in] | cellGIDs | Node GIDs for the cell |
[in] | subcellGIDs | Node GIDs for the subcell to be found |
[in] | cell | Shards cell topology used to find local index |
[in] | subcell_dim | Dimension of subcell to be found |
Definition at line 122 of file Panzer_Shards_Utilities.hpp.
void panzer::getLocalSubcellMapFromGlobalNodeLists | ( | const ArrayCellGIDs & | cellGIDs, |
const std::vector< ArraySubcellGIDs > & | subcellGIDs, | ||
const shards::CellTopology & | cell, | ||
unsigned | subcell_dim, | ||
std::vector< unsigned > & | subcellMap | ||
) |
This function takes a vector of lists of GIDs defined on a cell and returns a the local Shards subcell numbering to indexes into the vector. (Essentially will return a function defining (Shards #ing -> Local Elmt #ing).
[in] | cellGIDs | Node GIDs for the cell |
[in] | subcellGIDs | Node GIDs for the subcell to be found for each subcell of a particular dimension |
[in] | cell | Shards cell topology used to find local index |
[in] | subcell_dim | Dimension of subcell to be found |
[in,out] | subcellMap | Vector mapping the shards local numbering to the user specified local numbering. |
To use the mapping "function" to find the GIDs of the subcell associated with a Shards indexed subcell simply do: subcellGIDs[subcellMap[shardsIndex]]
Definition at line 186 of file Panzer_Shards_Utilities.hpp.
const MapT::mapped_type& panzer::getEntry | ( | const MapT & | in_map, |
const typename MapT::key_type & | in_key | ||
) |
Definition at line 55 of file Panzer_StlMap_Utilities.hpp.
Kokkos::DynRankView<typename InputArray::value_type,PHX::Device> panzer::createDynRankView | ( | const InputArray & | a, |
const std::string & | name, | ||
const DimensionPack... | dims | ||
) |
Wrapper to simplify Panzer use of Sacado ViewFactory.
Definition at line 54 of file Panzer_ViewFactory.hpp.
std::ostream & panzer::operator<< | ( | std::ostream & | os, |
const panzer::Workset & | w | ||
) |
Definition at line 404 of file Panzer_Workset.cpp.
void panzer::populateValueArrays | ( | std::size_t | num_cells, |
bool | isSide, | ||
const WorksetNeeds & | pb, | ||
WorksetDetails & | details, | ||
const Teuchos::RCP< WorksetDetails > | other_details = Teuchos::null |
||
) |
Populate basis values and integration values data structures in the WorksetDetails object being passed in. Note that this works for both edge data structures and for volumetric data structures. Note that for this function to work the WorksetDetails object must already be populated with coordinates.
[in] | num_cells | The number of cells contained in the workset |
[in] | isSide | Populate using a side subcell |
[in] | pb | Physics block that contains the integration rules and basis functions |
[in,out] | details | Object to be populated already containing the vertex coordinates for the cells. |
Definition at line 94 of file Panzer_Workset_Builder.cpp.
Teuchos::RCP<std::vector<Workset> > panzer::buildWorksets | ( | const WorksetNeeds & | needs, |
const std::string & | elementBlock, | ||
const std::vector< std::size_t > & | local_cell_ids, | ||
const ArrayT & | vertex_coordinates | ||
) |
Teuchos::RCP<std::map<unsigned,Workset> > panzer::buildBCWorkset | ( | const WorksetNeeds & | needs, |
const std::string & | elementBlock, | ||
const std::vector< std::size_t > & | local_cell_ids, | ||
const std::vector< std::size_t > & | local_side_ids, | ||
const ArrayT & | vertex_coordinates, | ||
const bool | populate_value_arrays = true |
||
) |
Teuchos::RCP< std::map< unsigned, panzer::Workset > > panzer::buildBCWorkset | ( | const WorksetNeeds & | needs_a, |
const std::string & | blockid_a, | ||
const std::vector< std::size_t > & | local_cell_ids_a, | ||
const std::vector< std::size_t > & | local_side_ids_a, | ||
const ArrayT & | vertex_coordinates_a, | ||
const panzer::WorksetNeeds & | needs_b, | ||
const std::string & | blockid_b, | ||
const std::vector< std::size_t > & | local_cell_ids_b, | ||
const std::vector< std::size_t > & | local_side_ids_b, | ||
const ArrayT & | vertex_coordinates_b | ||
) |
Definition at line 367 of file Panzer_Workset_Builder_impl.hpp.
Teuchos::RCP<std::vector<Workset> > panzer::buildEdgeWorksets | ( | const WorksetNeeds & | needs_a, |
const std::string & | eblock_a, | ||
const std::vector< std::size_t > & | local_cell_ids_a, | ||
const std::vector< std::size_t > & | local_side_ids_a, | ||
const ArrayT & | vertex_coordinates_a, | ||
const WorksetNeeds & | needs_b, | ||
const std::string & | eblock_b, | ||
const std::vector< std::size_t > & | local_cell_ids_b, | ||
const std::vector< std::size_t > & | local_side_ids_b, | ||
const ArrayT & | vertex_coordinates_b | ||
) |
This routine supports construction of worksets that are more DG like. The elements are assumed to shared an edge (or face) and the side id is specified accordingly. Note that no checking of "sharing" is done when the workset is constructed.
std::vector<Workset>::iterator panzer::buildEdgeWorksets | ( | const std::vector< std::size_t > & | cell_indices, |
const WorksetNeeds & | needs_a, | ||
const std::string & | eblock_a, | ||
const std::vector< std::size_t > & | local_cell_ids_a, | ||
const std::vector< std::size_t > & | local_side_ids_a, | ||
const ArrayT & | vertex_coordinates_a, | ||
const WorksetNeeds & | needs_b, | ||
const std::string & | eblock_b, | ||
const std::vector< std::size_t > & | local_cell_ids_b, | ||
const std::vector< std::size_t > & | local_side_ids_b, | ||
const ArrayT & | vertex_coordinates_b, | ||
std::vector< Workset >::iterator | beg | ||
) |
std::vector< std::string >::size_type panzer::getPureBasisIndex | ( | std::string | basis_name, |
const panzer::Workset & | workset, | ||
WorksetDetailsAccessor & | wda | ||
) |
Returns the index in the workset bases for a particular PureBasis name.
[in] | basis_name | Name of the basis that corresponds to a particular PureBasis |
[in] | workset | Worksets to perform the search over |
[in] | wda | WorksetDetailsAccessor to access the correct WorksetDetails in workset. |
Definition at line 57 of file Panzer_Workset_Utilities.cpp.
std::vector< std::string >::size_type panzer::getBasisIndex | ( | std::string | basis_name, |
const panzer::Workset & | workset, | ||
WorksetDetailsAccessor & | wda | ||
) |
Returns the index in the workset bases for a particular BasisIRLayout name.
[in] | basis_name | Name of the basis that corresponds to a particular BasisIRLayout |
[in] | workset | Worksets to perform the search over |
[in] | wda | WorksetDetailsAccessor to access the correct WorksetDetails in workset. |
Definition at line 80 of file Panzer_Workset_Utilities.cpp.
std::vector< int >::size_type panzer::getIntegrationRuleIndex | ( | int | ir_degree, |
const panzer::Workset & | workset, | ||
WorksetDetailsAccessor & | wda | ||
) |
Definition at line 97 of file Panzer_Workset_Utilities.cpp.
void panzer::printWorkset | ( | std::ostream & | os, |
const panzer::Workset & | workset, | ||
WorksetDetailsAccessor & | wda | ||
) |
Definition at line 113 of file Panzer_Workset_Utilities.cpp.
std::vector< std::string >::size_type panzer::getPureBasisIndex | ( | std::string | basis_name, |
const panzer::Workset & | workset | ||
) |
Definition at line 204 of file Panzer_Workset_Utilities.cpp.
std::vector< std::string >::size_type panzer::getBasisIndex | ( | std::string | basis_name, |
const panzer::Workset & | workset | ||
) |
Definition at line 209 of file Panzer_Workset_Utilities.cpp.
std::vector< int >::size_type panzer::getIntegrationRuleIndex | ( | int | ir_degree, |
const panzer::Workset & | workset | ||
) |
Definition at line 214 of file Panzer_Workset_Utilities.cpp.
void panzer::printWorkset | ( | std::ostream & | os, |
const panzer::Workset & | workset | ||
) |
Definition at line 218 of file Panzer_Workset_Utilities.cpp.
void panzer::getVolumeWorksetsFromContainer | ( | WorksetContainer & | wc, |
const std::vector< std::string > & | elementBlockNames, | ||
std::map< std::string, Teuchos::RCP< std::vector< Workset > > > & | volumeWksts | ||
) |
Build a map of volume worksets from a list of element blocks. Note that this may, if needed, allocate these worksets in the workset container object.
[in] | wc | Workset container that contains, or will contain, the volume worksets. |
[in] | elementBlockNames | Element blocks to build the worksets for. |
[out] | volumeWksts | Map form element block ids to the volume worksets. This will not be cleared but the worksets with shared element names will be overwritten. |
Definition at line 472 of file Panzer_WorksetContainer.cpp.
void panzer::getSideWorksetsFromContainer | ( | WorksetContainer & | wc, |
const std::vector< BC > & | bcs, | ||
std::map< BC, Teuchos::RCP< std::map< unsigned, Workset > >, LessBC > & | sideWksts | ||
) |
Build a map of side worksets from a list of boundary conditions. Note that this may, if needed, allocate these worksets in the workset container object.
[in] | wc | Workset container that contains, or will contain, the volume worksets. |
[in] | bcs | Boundary conditions to use. |
[out] | sideWksts | Map form element block ids to the volume worksets. This will not be cleared but the worksets with shared element names will be overwritten. |
Definition at line 482 of file Panzer_WorksetContainer.cpp.
Equality operation for use with hash tables and maps.
Definition at line 299 of file Panzer_WorksetDescriptor.hpp.
|
inline |
Hash function that satisifies the stl hash interface.
Definition at line 316 of file Panzer_WorksetDescriptor.hpp.
|
inline |
I/O utility.
Definition at line 331 of file Panzer_WorksetDescriptor.hpp.
|
inline |
Builds a descriptor specifying an element block.
Definition at line 348 of file Panzer_WorksetDescriptor.hpp.
|
inline |
Builds a descriptor specifying a sideset, specify surface terms.
Definition at line 354 of file Panzer_WorksetDescriptor.hpp.
|
inline |
Builds a descriptor specifying a sideset, however specify volumetric terms not surface terms.
Definition at line 361 of file Panzer_WorksetDescriptor.hpp.
KOKKOS_INLINE_FUNCTION void panzer::zeroSensitivities | ( | panzer::Traits::RealType & | ) |
Zero out AD types so that we can drop sensitivity contributions.
Specialization for Residual
Definition at line 58 of file Panzer_ZeroSensitivities.hpp.
KOKKOS_INLINE_FUNCTION void panzer::zeroSensitivities | ( | panzer::Traits::FadType & | s | ) |
Specialization for Fad type Jacobian.
Definition at line 62 of file Panzer_ZeroSensitivities.hpp.
KOKKOS_INLINE_FUNCTION void panzer::zeroSensitivities | ( | panzer::Traits::HessianType & | s | ) |
Specialization for Fad type Hessian.
Definition at line 70 of file Panzer_ZeroSensitivities.hpp.
KOKKOS_INLINE_FUNCTION Sacado::mpl::enable_if< Sacado::IsView<T> >::type panzer::zeroSensitivities | ( | T | x | ) |
Specialization for Kokkos View reference type Jacobian.
Definition at line 90 of file Panzer_ZeroSensitivities.hpp.
|
inline |
Definition at line 104 of file Panzer_ResponseMESupportBuilderBase.hpp.
|
inline |
Definition at line 108 of file Panzer_ResponseMESupportBuilderBase.hpp.
|
inline |
Definition at line 112 of file Panzer_ResponseMESupportBuilderBase.hpp.
|
inline |
Definition at line 117 of file Panzer_ResponseMESupportBuilderBase.hpp.
|
inline |
Definition at line 30 of file Panzer_HashUtils.hpp.
void panzer::printMemoryUsage | ( | std::ostream & | s, |
const Teuchos::Comm< int > & | comm | ||
) |
Print memory usage to stream.
Definition at line 99 of file Panzer_MemUtils.cpp.
void panzer::printMemoryUsage | ( | std::ostream & | s, |
const Teuchos::Comm< int > & | comm, | ||
const MemUsage & | mem | ||
) |
Definition at line 111 of file Panzer_MemUtils.cpp.
void panzer::pretty | ( | std::ostream & | s, |
size_t | num | ||
) |
Definition at line 132 of file Panzer_MemUtils.cpp.
MemUsage panzer::getMemoryUsage | ( | const Teuchos::Comm< int > & | comm | ) |
Get memory usage in B.
Definition at line 153 of file Panzer_MemUtils.cpp.
MemUsage panzer::getPeakRSS | ( | const Teuchos::Comm< int > & | comm | ) |
Returns the peak (maximum so far) resident set size (physical memory use) measured in bytes, or zero if the value cannot be determined on this OS.
Definition at line 165 of file Panzer_MemUtils.cpp.
MemUsage panzer::getCurrentRSS | ( | const Teuchos::Comm< int > & | comm | ) |
Returns the current resident set size (physical memory use) measured in bytes, or zero if the value cannot be determined on this OS.
Definition at line 222 of file Panzer_MemUtils.cpp.
MemUsage panzer::reduceMemUsage | ( | size_t & | mem, |
const Teuchos::Comm< int > & | comm, | ||
const MemUsageType & | type | ||
) |
Reduce the memory usage over all the processors.
Definition at line 271 of file Panzer_MemUtils.cpp.
|
inline |
Definition at line 57 of file Panzer_PauseToAttach.hpp.
|
inline |
Definition at line 75 of file Panzer_PauseToAttach.hpp.
void panzer::trim | ( | std::string & | str | ) |
Removes whitespace at beginning and end of string.
Definition at line 48 of file Panzer_String_Utilities.cpp.
void panzer::StringTokenizer | ( | std::vector< std::string > & | tokens, |
const std::string & | str, | ||
const std::string | delimiters, | ||
bool | trim | ||
) |
Tokenize a string, put tokens in a vector.
Definition at line 65 of file Panzer_String_Utilities.cpp.
void panzer::TokensToDoubles | ( | std::vector< double > & | values, |
const std::vector< std::string > & | tokens | ||
) |
Turn a vector of tokens into a vector of doubles.
Definition at line 97 of file Panzer_String_Utilities.cpp.
void panzer::TokensToInts | ( | std::vector< int > & | values, |
const std::vector< std::string > & | tokens | ||
) |
Turn a vector of tokens into a vector of ints.
Definition at line 110 of file Panzer_String_Utilities.cpp.
ScalarT panzer::getScalarParameter | ( | const std::string & | field, |
const Teuchos::ParameterList & | plist | ||
) |
Read in a parameter field and return the correct scalar field. This parses scalar type data
Definition at line 71 of file Panzer_String_Utilities.hpp.
void panzer::reorder | ( | std::vector< int > & | order, |
std::function< void(int, int)> | swapper | ||
) |
Using a functor, reorder an array using a order vector.
[in,out] | order | Vector that describes the desired order. Note on output, this array will be sorted. |
[in] | swapper | Functor that swaps entries in the array to be sorted. Data being swapped must be captured by the functor. |
Definition at line 5 of file Panzer_UtilityAlgs.cpp.
std::string panzer::version | ( | ) |
Definition at line 48 of file Panzer_Version.cpp.
std::ostream & panzer::operator<< | ( | std::ostream & | os, |
const FieldPattern & | fp | ||
) |
Stream IO.
Definition at line 139 of file Panzer_FieldPattern.cpp.
Teuchos::RCP<Epetra_IntVector> panzer::buildGhostedFieldReducedVectorEpetra | ( | const GlobalIndexer & | ugi | ) |
Construct a vector that contains a reduced set of field numbers. The ordering is based on the ordering from ugi.getOwnedAndGhostedIndices()
. The term "reduced" means that this processor must be able to fully determine the field number for each global number. There are some cases where processors are split across element blocks with differing fields that this is nontrivial.
[in] | ugi | Global indexer to use. |
Teuchos::RCP<const Epetra_IntVector> panzer::buildGhostedFieldVectorEpetra | ( | const GlobalIndexer & | ugi, |
const Teuchos::RCP< const Epetra_IntVector > & | reducedVec = Teuchos::null |
||
) |
This function builds a vector that defines fields for each global unknown. Notice that requires global communication and uses (underneath) the Tpetra
vector hence the required node type template parameter.
This function returns a vector that serves as a map between Global indices ordered from ugi.getOwnedAndGhostedIndices()
and the corresponding field number.
[in] | ugi | Unique global indexer object that defines the ordering, global ids and field numbers. |
[in] | reducedVec | Reduced field vector to use. If none is passed it is compute by buildGhostedFieldReducedVector |
void panzer::buildGhostedFieldVectorEpetra | ( | const GlobalIndexer & | ugi, |
std::vector< int > & | fieldNumbers, | ||
const Teuchos::RCP< const Epetra_IntVector > & | reducedVec = Teuchos::null |
||
) |
This function builds a vector that defines fields for each global unknown. Notice that requires global communication and uses (underneath) the Tpetra
vector hence the required node type template parameter.
This function returns a vector that serves as a map between Global indices ordered from ugi.getOwnedAndGhostedIndices()
and the corresponding field number.
[in] | ugi | Unique global indexer object that defines the ordering, global ids and field numbers. |
[out] | fieldNumbers | Field numbers ordered to match up with a call to ugi.getOwnedAndGhostedIndices() . Meaning that fieldNumbers.size() is the same length as the vector build by a call to getOwnedAndGhostedIndices() . |
[in] | reducedVec | Reduced field vector to use. If none is passed it is compute by buildGhostedFieldReducedVector |
void panzer::updateGhostedDataReducedVectorEpetra | ( | const std::string & | fieldName, |
const std::string | blockId, | ||
const GlobalIndexer & | ugi, | ||
const ArrayT & | data, | ||
Epetra_MultiVector & | dataVector | ||
) |
Build a reduced data vector using the reduced field vector. Here reduced is meant in the exact same context as for the field vectors.
[in] | fieldName | Name of field data should be ordered as |
[in] | ugi | Unique global indexer object that defines the ordering, global ids and field numbers. |
[in] | reducedFieldVec | A reduced vector containing the correctly ordered field numbers. Likely computed by buildGhostedFieldReducedVector . |
[in] | data | Data to put in vector |
[out] | A | Tpetra vector containing the data in the reduced format. This is now available for an import to construct the true ghosted data vector. This map must match the reducedFieldVec map. |
Definition at line 67 of file Panzer_GlobalIndexer_EpetraUtilities_impl.hpp.
Teuchos::RCP<const Epetra_BlockMap> panzer::getFieldMapEpetra | ( | int | fieldNum, |
const Epetra_IntVector & | fieldVector | ||
) |
Construct a map that only uses a certain field.
[in] | fieldNum | Field ID to use to build the map |
[in] | fieldVector | An listing of the fields. For instance [0,1,2,0,1,2,0,1,2...] for a three dimensional interlaced vector field. |
std::vector<Teuchos::RCP<const GlobalIndexer> > panzer::nc2c_vector | ( | const std::vector< Teuchos::RCP< GlobalIndexer > > & | ugis | ) |
Definition at line 50 of file Panzer_GlobalIndexer_Utilities.cpp.
int panzer::getFieldBlock | ( | const std::string & | fieldName, |
const std::vector< Teuchos::RCP< const GlobalIndexer >> & | ugis | ||
) |
Get the block associated with a particular field. This is an exhaustive (e.g. expensive) search. This returns the first found index into the ugis
that contains the required field.
[in] | fieldName | The field to look for. |
[in] | ugis | The global indexers to look in. |
Definition at line 60 of file Panzer_GlobalIndexer_Utilities.cpp.
int panzer::getFieldBlock | ( | const std::string & | fieldName, |
const std::vector< Teuchos::RCP< GlobalIndexer >> & | ugis | ||
) |
Get the block associated with a particular field. This is an exhaustive (e.g. expensive) search. This returns the first found index into the ugis
that contains the required field.
[in] | fieldName | The field to look for. |
[in] | ugis | The global indexers to look in. |
Definition at line 73 of file Panzer_GlobalIndexer_Utilities.cpp.
void panzer::computeBlockOffsets | ( | const std::string & | blockId, |
const std::vector< Teuchos::RCP< GlobalIndexer >> & | ugis, | ||
std::vector< int > & | blockOffsets | ||
) |
Compute the offsets for the global indexer for a particular block id. This is useful for unknown numbering into a block format. The local element matrix will be logically ordered like the monolithic operator. These offsets are the local start and end of a particular block. For instance if you are intersted in block i
then the start index would be at blockOffsets[i]
and the end would be at blockOffsets[i+1]
Note that this requires a sentinnel in the block offsets size. (Note that the use of element block and block are confusing but different in this context)
[in] | blockId | Element block name that to do this for. |
[in] | ugis | Unique global indexers containing fields to be blocked |
[out] | blockOffsets | Result vector with length ugis.size()+1 . |
Definition at line 86 of file Panzer_GlobalIndexer_Utilities.cpp.
void panzer::computeBlockOffsets | ( | const std::string & | blockId, |
const std::vector< Teuchos::RCP< const GlobalIndexer >> & | ugis, | ||
std::vector< int > & | blockOffsets | ||
) |
Compute the offsets for the global indexer for a particular block id. This is useful for unknown numbering into a block format. The local element matrix will be logically ordered like the monolithic operator. These offsets are the local start and end of a particular block. For instance if you are intersted in block i
then the start index would be at blockOffsets[i]
and the end would be at blockOffsets[i+1]
Note that this requires a sentinnel in the block offsets size. (Note that the use of element block and block are confusing but different in this context)
[in] | blockId | Element block name that to do this for. |
[in] | ugis | Unique global indexers containing fields to be blocked |
[out] | blockOffsets | Result vector with length ugis.size()+1 . |
Definition at line 100 of file Panzer_GlobalIndexer_Utilities.cpp.
std::string panzer::printUGILoadBalancingInformation | ( | const GlobalIndexer & | ugi | ) |
Print out unique global indexer load balancing information. This includes the minimum unknown, maximum unknown count, mean unknown and standard deviation of the unknowns for both owned and owned and ghosted.
Definition at line 115 of file Panzer_GlobalIndexer_Utilities.cpp.
void panzer::printMeshTopology | ( | std::ostream & | os, |
const panzer::GlobalIndexer & | ugi | ||
) |
Print all GIDs and their associated elements to the screen. Note if a FancyOStream is used the correct prefixes this method will label the processors as well. This can print out an extreme amount of information so it is only useful for debugging.
Definition at line 143 of file Panzer_GlobalIndexer_Utilities.cpp.
Teuchos::RCP< Tpetra::Vector< int, int, panzer::GlobalOrdinal, panzer::TpetraNodeType > > panzer::buildGhostedFieldReducedVector | ( | const GlobalIndexer & | ugi | ) |
Construct a vector that contains a reduced set of field numbers. The ordering is based on the ordering from ugi.getOwnedAndGhostedIndices()
. The term "reduced" means that this processor must be able to fully determine the field number for each global number. There are some cases where processors are split across element blocks with differing fields that this is nontrivial.
[in] | ugi | Global indexer to use. |
Definition at line 178 of file Panzer_GlobalIndexer_Utilities.cpp.
void panzer::buildGhostedFieldVector | ( | const GlobalIndexer & | ugi, |
std::vector< int > & | fieldNumbers, | ||
const Teuchos::RCP< const Tpetra::Vector< int, int, panzer::GlobalOrdinal, panzer::TpetraNodeType > > & | reducedVec = Teuchos::null |
||
) |
This function builds a vector that defines fields for each global unknown. Notice that requires global communication and uses (underneath) the Tpetra
vector hence the required node type template parameter.
This function returns a vector that serves as a map between Global indices ordered from ugi.getOwnedAndGhostedIndices()
and the corresponding field number.
[in] | ugi | Unique global indexer object that defines the ordering, global ids and field numbers. |
[out] | fieldNumbers | Field numbers ordered to match up with a call to ugi.getOwnedAndGhostedIndices() . Meaning that fieldNumbers.size() is the same length as the vector build by a call to getOwnedAndGhostedIndices() . |
[in] | reducedVec | Reduced field vector to use. If none is passed it is compute by buildGhostedFieldReducedVector |
Definition at line 233 of file Panzer_GlobalIndexer_Utilities.cpp.
Teuchos::RCP< const Tpetra::Vector< int, int, panzer::GlobalOrdinal, panzer::TpetraNodeType > > panzer::buildGhostedFieldVector | ( | const GlobalIndexer & | ugi, |
const Teuchos::RCP< const Tpetra::Vector< int, int, panzer::GlobalOrdinal, panzer::TpetraNodeType > > & | reducedVec = Teuchos::null |
||
) |
This function builds a vector that defines fields for each global unknown. Notice that requires global communication and uses (underneath) the Tpetra
vector hence the required node type template parameter.
This function returns a vector that serves as a map between Global indices ordered from ugi.getOwnedAndGhostedIndices()
and the corresponding field number.
[in] | ugi | Unique global indexer object that defines the ordering, global ids and field numbers. |
[in] | reducedVec | Reduced field vector to use. If none is passed it is compute by buildGhostedFieldReducedVector |
Definition at line 246 of file Panzer_GlobalIndexer_Utilities.cpp.
Teuchos::RCP< const Tpetra::Map< int, panzer::GlobalOrdinal, panzer::TpetraNodeType > > panzer::getFieldMap | ( | int | fieldNum, |
const Tpetra::Vector< int, int, panzer::GlobalOrdinal, panzer::TpetraNodeType > & | fieldTVector | ||
) |
Construct a map that only uses a certain field.
Construct a map that only uses a certain field.
[in] | fieldNum | Field ID to use to build the map |
[in] | fieldVector | An listing of the fields. For instance [0,1,2,0,1,2,0,1,2...] for a three dimensional interlaced vector field. |
Definition at line 284 of file Panzer_GlobalIndexer_Utilities.cpp.
std::vector<Teuchos::RCP<const GlobalIndexer> > panzer::nc2c_vector | ( | const std::vector< Teuchos::RCP< GlobalIndexer >> & | ugis | ) |
Convert a nonconst to a constant vector. This works around an RCP issue where the compiler gets confused by const.
void panzer::updateGhostedDataReducedVector | ( | const std::string & | fieldName, |
const std::string | blockId, | ||
const GlobalIndexer & | ugi, | ||
const ArrayT & | data, | ||
Tpetra::MultiVector< ScalarT, int, panzer::GlobalOrdinal, panzer::TpetraNodeType > & | dataVector | ||
) |
Build a reduced data vector using the reduced field vector. Here reduced is meant in the exact same context as for the field vectors.
[in] | fieldName | Name of field data should be ordered as |
[in] | ugi | Unique global indexer object that defines the ordering, global ids and field numbers. |
[in] | reducedFieldVec | A reduced vector containing the correctly ordered field numbers. Likely computed by buildGhostedFieldReducedVector . |
[in] | data | Data to put in vector |
[out] | A | Tpetra vector containing the data in the reduced format. This is now available for an import to construct the true ghosted data vector. This map must match the reducedFieldVec map. |
Definition at line 60 of file Panzer_GlobalIndexer_Utilities_impl.hpp.