102 if (!this->hasTargetVector())
105 const int n =
value.size();
106 const int num_deriv = this->numDeriv();
107 TEUCHOS_ASSERT(n == 0 || n == num_deriv);
113 Teuchos::reduceAll(*this->
getComm(), Teuchos::REDUCE_SUM, Thyra::Ordinal(1), &
value.val(), &glbValue.val());
115 Teuchos::reduceAll(*this->
getComm(), Teuchos::REDUCE_SUM, Thyra::Ordinal(n),
value.dx(), &glbValue.fastAccessDx(0));
120#ifdef PANZER_HAVE_EPETRA_STACK
123 Epetra_MultiVector& deriv = this->getEpetraMultiVector();
124 for (
int i=0; i<num_deriv; ++i)
125 deriv[i][0] = glbValue.dx(i);
133 for (
int i=0; i<num_deriv; ++i)
134 deriv[i][0] = glbValue.dx(i);