diff --git a/packages/nox/src-thyra/NOX_Thyra_Group.C b/packages/nox/src-thyra/NOX_Thyra_Group.C index 368e48e343b4..235d4d2a8fec 100644 --- a/packages/nox/src-thyra/NOX_Thyra_Group.C +++ b/packages/nox/src-thyra/NOX_Thyra_Group.C @@ -635,9 +635,13 @@ NOX::Thyra::Group::applyJacobianTransposeMultiVector( NOX::Abstract::MultiVector& result) const { if ( !(this->isJacobian()) ) { - TEUCHOS_TEST_FOR_EXCEPTION(true, std::logic_error, - "NOX Error - Jacobian is not valid. " << - "Call computeJacobian before calling applyJacobian!"); + // Should throw if algorithm hasn't updated the Jacobian (force + // devs to think about efficiency of reevaluating J within an + // algorithm) but a certain application needs this temporarily. + const_cast(this)->computeJacobian(); + // TEUCHOS_TEST_FOR_EXCEPTION(true, std::logic_error, + // "NOX Error - Jacobian is not valid. " << + // "Call computeJacobian before calling applyJacobian!"); } NOX_ASSERT(nonnull(lop_)); diff --git a/packages/panzer/disc-fe/src/Panzer_ModelEvaluator_impl.hpp b/packages/panzer/disc-fe/src/Panzer_ModelEvaluator_impl.hpp index 0ee307c88733..1f3101881359 100644 --- a/packages/panzer/disc-fe/src/Panzer_ModelEvaluator_impl.hpp +++ b/packages/panzer/disc-fe/src/Panzer_ModelEvaluator_impl.hpp @@ -1763,8 +1763,11 @@ evalModelImpl_basic_dgdp_scalar(const Thyra::ModelEvaluatorBase::InArgs RCP > resp = rcp_dynamic_cast >( responseLibrary_->getResponse(responseName)); - resp->setVector(vec); - is_active = true; + + if (nonnull(resp)) { + resp->setVector(vec); + is_active = true; + } } }