31 double locValue = Sacado::scalarValue(
value);
32 double glbValue = 0.0;
36 Teuchos::reduceAll(*this->
getComm(), Teuchos::REDUCE_MAX,
static_cast<Thyra::Ordinal
>(1), &locValue,&glbValue);
38 Teuchos::reduceAll(*this->
getComm(), Teuchos::REDUCE_MIN,
static_cast<Thyra::Ordinal
>(1), &locValue,&glbValue);
42#ifdef PANZER_HAVE_EPETRA_STACK
46 this->getEpetraVector()[0] = glbValue;
97 if (!this->hasTargetVector())
100 const int n =
value.size();
101 const int num_deriv = this->numDeriv();
102 TEUCHOS_ASSERT(n == 0 || n == num_deriv);
107 Teuchos::reduceAll(*this->
getComm(), Teuchos::REDUCE_MAX, Thyra::Ordinal(1), &
value.val(), &glbValue.val());
109 Teuchos::reduceAll(*this->
getComm(), Teuchos::REDUCE_MIN, Thyra::Ordinal(1), &
value.val(), &glbValue.val());
113 int locProc =
value.val() == glbValue.val() ? this->
getComm()->getRank() : this->
getComm()->getSize();
115 Teuchos::reduceAll(*this->
getComm(), Teuchos::REDUCE_MIN, Thyra::Ordinal(1), &locProc, &glbProc);
118 Teuchos::broadcast(*this->
getComm(), glbProc, Thyra::Ordinal(n), &glbValue.fastAccessDx(0));
124#ifdef PANZER_HAVE_EPETRA_STACK
127 Epetra_MultiVector& deriv = this->getEpetraMultiVector();
128 for (
int i=0; i<num_deriv; ++i)
129 deriv[i][0] = glbValue.dx(i);
137 for (
int i=0; i<num_deriv; ++i)
138 deriv[i][0] = glbValue.dx(i);