40 const Teuchos::RCP<ExtremeValueScatterBase> & extremeValueScatter)
42 , scatterObj_(extremeValueScatter)
51 RCP<PHX::DataLayout> dl_dummy = rcp(
new PHX::MDALayout<panzer::Dummy>(0));
56 RCP<PHX::DataLayout> dl_cell = rcp(
new PHX::MDALayout<panzer::Cell>(cd.
numCells()));
60 std::string n =
"Extreme Value Response Scatter: " + name;
67 const std::string & responseName,
70 const Teuchos::RCP<ExtremeValueScatterBase> & extremeValueScatter)
71 : responseName_(responseName)
72 , scatterObj_(extremeValueScatter)
81 RCP<PHX::DataLayout> dl_dummy = rcp(
new PHX::MDALayout<panzer::Dummy>(0));
86 RCP<PHX::DataLayout> dl_cell = rcp(
new PHX::MDALayout<panzer::Cell>(cd.
numCells()));
87 cellExtremeValue_ = PHX::MDField<const ScalarT,panzer::Cell>(integrandName,dl_cell);
90 std::string n =
"Extreme Value Response Scatter: " + responseName;
123 using Teuchos::rcp_dynamic_cast;
124 using Thyra::SpmdVectorBase;
126 TEUCHOS_ASSERT(scatterObj_!=Teuchos::null);
129 Teuchos::ArrayRCP<double> local_dgdx;
130 RCP<SpmdVectorBase<double> > dgdx = rcp_dynamic_cast<SpmdVectorBase<double> >(responseObj_->getGhostedVector());
131 dgdx->getNonconstLocalData(ptrFromRef(local_dgdx));
132 TEUCHOS_ASSERT(!local_dgdx.is_null());
134 scatterObj_->scatterDerivative(cellExtremeValue_,d,this->wda,local_dgdx);