43 #ifndef __Panzer_Response_ExtremeValue_hpp__ 44 #define __Panzer_Response_ExtremeValue_hpp__ 51 #include "Teuchos_RCP.hpp" 53 #include "Thyra_VectorBase.hpp" 54 #include "Thyra_VectorSpaceBase.hpp" 56 #include "Epetra_Map.h" 57 #include "Epetra_Vector.h" 58 #include "Epetra_MpiComm.h" 73 template <
typename EvalT>
94 using Teuchos::rcp_dynamic_cast;
106 value = -std::numeric_limits<ScalarT>::max();
108 value = std::numeric_limits<ScalarT>::max();
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_
void adjustForDirichletConditions(const GlobalEvaluationData &localBCRows, const GlobalEvaluationData &globalBCRows)