Esempio n. 1
0
NOX::Abstract::Group::ReturnType 
NOX::Thyra::Group::applyJacobianInverse(Teuchos::ParameterList& p, 
					const NOX::Thyra::Vector& input, 
					NOX::Thyra::Vector& result) const 
{
  return applyJacobianInverseMultiVector( p, input.getThyraVector(),
					  result.getThyraVector() );
}
Esempio n. 2
0
NOX::Abstract::Group::ReturnType 
NOX::Thyra::Group::applyJacobianTranspose(const NOX::Thyra::Vector& input,
					  NOX::Thyra::Vector& result) const
{
  if ( !(this->isJacobian()) ) {
    TEUCHOS_TEST_FOR_EXCEPTION(true, std::logic_error, 
		       "NOX Error - Jacobian is not valid.  " <<
		       "Call computeJacobian before calling applyJacobian!");
  }

  if ( ::Thyra::opSupported(*lop_, ::Thyra::TRANS) ) {
    ::Thyra::apply(*shared_jacobian_->getObject(), ::Thyra::TRANS,
		   input.getThyraVector(), result.getThyraRCPVector().ptr());
    return NOX::Abstract::Group::Ok;
  }
  return NOX::Abstract::Group::Failed;
}