1 #ifndef __Panzer_Response_ExtremeValue_hpp__ 2 #define __Panzer_Response_ExtremeValue_hpp__ 9 #include "Teuchos_RCP.hpp" 11 #include "Thyra_VectorBase.hpp" 12 #include "Thyra_VectorSpaceBase.hpp" 14 #include "Epetra_Map.h" 15 #include "Epetra_Vector.h" 16 #include "Epetra_MpiComm.h" 31 template <
typename EvalT>
52 using Teuchos::rcp_dynamic_cast;
64 value = -std::numeric_limits<ScalarT>::max();
66 value = std::numeric_limits<ScalarT>::max();
92 Teuchos::RCP<const panzer::LinearObjFactory<panzer::Traits> >
linObjFactory_;
Teuchos::RCP< Thyra::VectorBase< double > > getGhostedVector() const
Get ghosted responses (this will be filled by the evaluator)
Teuchos::RCP< const panzer::LinearObjFactory< panzer::Traits > > linObjFactory_
Teuchos::RCP< const panzer::ThyraObjFactory< double > > thyraObjFactory_
virtual void scatterResponse()
This simply does global summation, then shoves the result into a vector.
Response_ExtremeValue(const std::string &responseName, MPI_Comm comm, bool useMax, const Teuchos::RCP< const panzer::LinearObjFactory< panzer::Traits > > &linObjFact=Teuchos::null)
virtual std::size_t localSizeRequired() const
What is the number of values you need locally.
virtual bool vectorIsDistributed() const
Is the vector distributed (or replicated)
ScalarT value
provide direct access, this thing is pretty simple
void setSolnVectorSpace(const Teuchos::RCP< const Thyra::VectorSpaceBase< double > > &soln_vs)
Set solution vector space.
Teuchos::RCP< LinearObjContainer > uniqueContainer_
virtual void initializeResponse()
Teuchos::RCP< LinearObjContainer > ghostedContainer_
Teuchos::RCP< const Teuchos::Comm< int > > comm
void adjustForDirichletConditions(const GlobalEvaluationData &localBCRows, const GlobalEvaluationData &globalBCRows)