Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT > Class Template Reference

Gathers tangent vectors dx/dp for computing df/dx*dx/dp + df/dp into the nodal fields of the field manager. More...

#include <Panzer_GatherTangent_BlockedTpetra.hpp>

Inheritance diagram for panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >:
Inheritance graph
[legend]

Public Member Functions

 GatherTangent_BlockedTpetra (const Teuchos::RCP< const BlockedDOFManager > &indexer)
 
 GatherTangent_BlockedTpetra (const Teuchos::RCP< const BlockedDOFManager > &indexer, const Teuchos::ParameterList &p)
 
void postRegistrationSetup (typename TRAITS::SetupData d, PHX::FieldManager< TRAITS > &vm)
 
void preEvaluate (typename TRAITS::PreEvalData d)
 
void evaluateFields (typename TRAITS::EvalData d)
 
virtual Teuchos::RCP
< CloneableEvaluator
clone (const Teuchos::ParameterList &pl) const
 
- Public Member Functions inherited from panzer::EvaluatorWithBaseImpl< TRAITS >
void setDetailsIndex (const int di)
 An evaluator builder sets the details index. More...
 
- Public Member Functions inherited from PHX::EvaluatorWithBaseImpl< TRAITS >
virtual void evaluateFields (typename Traits::EvalData d) override=0
 
- Public Member Functions inherited from PHX::Evaluator< Traits >
 Evaluator ()
 
virtual ~Evaluator ()
 
virtual void postRegistrationSetup (typename Traits::SetupData d, PHX::FieldManager< Traits > &vm)=0
 
virtual const std::vector
< Teuchos::RCP< FieldTag > > & 
evaluatedFields () const =0
 
virtual const std::vector
< Teuchos::RCP< FieldTag > > & 
contributedFields () const =0
 
virtual const std::vector
< Teuchos::RCP< FieldTag > > & 
dependentFields () const =0
 
virtual const std::vector
< Teuchos::RCP< FieldTag > > & 
unsharedFields () const =0
 
virtual void preEvaluate (typename Traits::PreEvalData d)=0
 
virtual void postEvaluate (typename Traits::PostEvalData d)=0
 
virtual const std::string & getName () const =0
 
virtual void bindField (const PHX::FieldTag &ft, const std::any &f)=0
 
virtual PHX::DeviceEvaluator
< Traits > * 
createDeviceEvaluator () const =0
 
virtual void rebuildDeviceEvaluator (PHX::DeviceEvaluator< Traits > *e) const =0
 
virtual void deleteDeviceEvaluator (PHX::DeviceEvaluator< Traits > *e) const =0
 
virtual void printFieldValues (std::ostream &os) const =0
 
- Public Member Functions inherited from panzer::DomainEvaluator
 DomainEvaluator (DomainType domain=ALL)
 Constructor. More...
 
virtual ~DomainEvaluator ()=default
 Default destructor. More...
 
void setDomain (const DomainType domain)
 Set the domain for the evaluator. More...
 
DomainType getDomain ()
 Get the domain for the evaluator. More...
 
virtual int cellStartIndex (const panzer::Workset &workset) const
 Returns the starting cell for the specified domain for a given workset. More...
 
virtual int cellEndIndex (const panzer::Workset &workset) const
 Returns the non-inclusive end cell for the specified domain for a given workset. More...
 
- Public Member Functions inherited from panzer::CloneableEvaluator
 CloneableEvaluator ()
 
virtual ~CloneableEvaluator ()
 

Private Types

typedef panzer::Traits::RealType ScalarT
 
typedef
BlockedTpetraLinearObjContainer
< S, LO, GO, NodeT > 
ContainerType
 
typedef Tpetra::Vector< S, LO,
GO, NodeT > 
VectorType
 
typedef Tpetra::CrsMatrix< S,
LO, GO, NodeT > 
CrsMatrixType
 
typedef Tpetra::CrsGraph< LO,
GO, NodeT > 
CrsGraphType
 
typedef Tpetra::Map< LO, GO,
NodeT > 
MapType
 
typedef Tpetra::Import< LO, GO,
NodeT > 
ImportType
 
typedef Tpetra::Export< LO, GO,
NodeT > 
ExportType
 

Private Member Functions

 GatherTangent_BlockedTpetra ()
 

Private Attributes

Teuchos::RCP< const
BlockedDOFManager
globalIndexer_
 
std::vector< int > fieldIds_
 
std::vector< Teuchos::RCP
< const panzer::GlobalIndexer > > 
fieldGlobalIndexers_
 Vector of global indexers, one for each field to gather, respectively. More...
 
std::vector< int > productVectorBlockIndex_
 
std::vector< PHX::MDField
< ScalarT, Cell, NODE > > 
gatherFields_
 
Teuchos::RCP< std::vector
< std::string > > 
indexerNames_
 
bool useTimeDerivativeSolutionVector_
 
std::string globalDataKey_
 
Teuchos::RCP< const
BlockedTpetraLinearObjContainer
< S, LO, GO, NodeT > > 
blockedContainer_
 
PHX::View< LO ** > worksetLIDs_
 Local indices for unknowns. More...
 
std::vector< PHX::View< int * > > fieldOffsets_
 Offset into the cell lids for each field. More...
 

Additional Inherited Members

- Public Types inherited from panzer::DomainEvaluator
enum  DomainType : int {
  OWNED =0, GHOST =1, REAL =2, VIRTUAL =3,
  EXTERNAL =4, ALL =5
}
 Domain types supported by worksets. More...
 
- Protected Attributes inherited from panzer::EvaluatorWithBaseImpl< TRAITS >
WorksetDetailsAccessor wda
 

Detailed Description

template<typename EvalT, typename TRAITS, typename S, typename LO, typename GO, typename NodeT = panzer::TpetraNodeType>
class panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >

Gathers tangent vectors dx/dp for computing df/dx*dx/dp + df/dp into the nodal fields of the field manager.

This evaluator is very similar to GatherSolution, however it always gathers into fields of type double, and it is a no-op if the global evaluation data container does not exist (which is an error for GatherSolution).

Currently makes an assumption that the stride is constant for dofs and that the nmber of dofs is equal to the size of the solution names vector.

Definition at line 47 of file Panzer_GatherTangent_BlockedTpetra.hpp.

Member Typedef Documentation

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
typedef panzer::Traits::RealType panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::ScalarT
private

Definition at line 72 of file Panzer_GatherTangent_BlockedTpetra.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
typedef BlockedTpetraLinearObjContainer<S,LO,GO,NodeT> panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::ContainerType
private

Definition at line 75 of file Panzer_GatherTangent_BlockedTpetra.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
typedef Tpetra::Vector<S,LO,GO,NodeT> panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::VectorType
private

Definition at line 76 of file Panzer_GatherTangent_BlockedTpetra.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
typedef Tpetra::CrsMatrix<S,LO,GO,NodeT> panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::CrsMatrixType
private

Definition at line 77 of file Panzer_GatherTangent_BlockedTpetra.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
typedef Tpetra::CrsGraph<LO,GO,NodeT> panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::CrsGraphType
private

Definition at line 78 of file Panzer_GatherTangent_BlockedTpetra.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
typedef Tpetra::Map<LO,GO,NodeT> panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::MapType
private

Definition at line 79 of file Panzer_GatherTangent_BlockedTpetra.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
typedef Tpetra::Import<LO,GO,NodeT> panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::ImportType
private

Definition at line 80 of file Panzer_GatherTangent_BlockedTpetra.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
typedef Tpetra::Export<LO,GO,NodeT> panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::ExportType
private

Definition at line 81 of file Panzer_GatherTangent_BlockedTpetra.hpp.

Constructor & Destructor Documentation

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::GatherTangent_BlockedTpetra ( const Teuchos::RCP< const BlockedDOFManager > &  indexer)
inline

Definition at line 53 of file Panzer_GatherTangent_BlockedTpetra.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT >
panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::GatherTangent_BlockedTpetra ( const Teuchos::RCP< const BlockedDOFManager > &  indexer,
const Teuchos::ParameterList p 
)

Definition at line 34 of file Panzer_GatherTangent_BlockedTpetra_impl.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::GatherTangent_BlockedTpetra ( )
private

Member Function Documentation

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT >
void panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::postRegistrationSetup ( typename TRAITS::SetupData  d,
PHX::FieldManager< TRAITS > &  vm 
)

Definition at line 72 of file Panzer_GatherTangent_BlockedTpetra_impl.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT >
void panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::preEvaluate ( typename TRAITS::PreEvalData  d)

Definition at line 116 of file Panzer_GatherTangent_BlockedTpetra_impl.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT >
void panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::evaluateFields ( typename TRAITS::EvalData  d)

Definition at line 138 of file Panzer_GatherTangent_BlockedTpetra_impl.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
virtual Teuchos::RCP<CloneableEvaluator> panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::clone ( const Teuchos::ParameterList pl) const
inlinevirtual

Implements panzer::CloneableEvaluator.

Definition at line 66 of file Panzer_GatherTangent_BlockedTpetra.hpp.

Member Data Documentation

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<const BlockedDOFManager> panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::globalIndexer_
private

Definition at line 85 of file Panzer_GatherTangent_BlockedTpetra.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
std::vector<int> panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::fieldIds_
private

Definition at line 87 of file Panzer_GatherTangent_BlockedTpetra.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
std::vector<Teuchos::RCP<const panzer::GlobalIndexer> > panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::fieldGlobalIndexers_
private

Vector of global indexers, one for each field to gather, respectively.

Definition at line 90 of file Panzer_GatherTangent_BlockedTpetra.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
std::vector<int> panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::productVectorBlockIndex_
private

Returns the index to the Thyra ProductVector sub-block. Size of number of fields to gather

Definition at line 94 of file Panzer_GatherTangent_BlockedTpetra.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
std::vector< PHX::MDField<ScalarT,Cell,NODE> > panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::gatherFields_
private

Definition at line 96 of file Panzer_GatherTangent_BlockedTpetra.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<std::vector<std::string> > panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::indexerNames_
private

Definition at line 98 of file Panzer_GatherTangent_BlockedTpetra.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
bool panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::useTimeDerivativeSolutionVector_
private

Definition at line 99 of file Panzer_GatherTangent_BlockedTpetra.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
std::string panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::globalDataKey_
private

Definition at line 100 of file Panzer_GatherTangent_BlockedTpetra.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
Teuchos::RCP<const BlockedTpetraLinearObjContainer<S,LO,GO,NodeT> > panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::blockedContainer_
private

Definition at line 102 of file Panzer_GatherTangent_BlockedTpetra.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
PHX::View<LO**> panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::worksetLIDs_
private

Local indices for unknowns.

Definition at line 105 of file Panzer_GatherTangent_BlockedTpetra.hpp.

template<typename EvalT , typename TRAITS , typename S , typename LO , typename GO , typename NodeT = panzer::TpetraNodeType>
std::vector<PHX::View<int*> > panzer::GatherTangent_BlockedTpetra< EvalT, TRAITS, S, LO, GO, NodeT >::fieldOffsets_
private

Offset into the cell lids for each field.

Definition at line 108 of file Panzer_GatherTangent_BlockedTpetra.hpp.


The documentation for this class was generated from the following files: