#include <NOX_Solver_TensorBased.H>
Public Member Functions | |
TensorBased (const Teuchos::RCP< NOX::Abstract::Group > &grp, const Teuchos::RCP< NOX::StatusTest::Generic > &tests, const Teuchos::RCP< Teuchos::ParameterList > ¶ms) | |
Constructor. | |
virtual | ~TensorBased () |
Destructor. | |
virtual void | reset (const NOX::Abstract::Vector &initialGuess, const Teuchos::RCP< NOX::StatusTest::Generic > &tests) |
Resets the solver, sets a new status test, and sets a new initial guess. | |
virtual void | reset (const NOX::Abstract::Vector &initialGuess) |
Resets the solver and sets a new initial guess. | |
virtual NOX::StatusTest::StatusType | getStatus () |
Check current convergence and failure status. | |
virtual NOX::StatusTest::StatusType | step () |
Do one nonlinear step in the iteration sequence and return status. | |
virtual NOX::StatusTest::StatusType | solve () |
Solve the nonlinear problem and return final status. | |
virtual const NOX::Abstract::Group & | getSolutionGroup () const |
Return a reference to the current solution group. | |
virtual const NOX::Abstract::Group & | getPreviousSolutionGroup () const |
Return a reference to the previous solution group. | |
virtual int | getNumIterations () const |
Get number of iterations. | |
virtual const Teuchos::ParameterList & | getList () const |
Return a refernece to the solver parameters. | |
Protected Types | |
enum | StepType { TensorStep, NewtonStep } |
Types of steps. More... | |
enum | LineSearchType { Curvilinear, Standard, Dual, FullStep, Newton } |
Flag for the direction to be computed this iteration. More... | |
enum | ConvergenceCriteriaType { ArmijoGoldstein, AredPred, None } |
Algorithms used to determine convergence of the line search. More... | |
enum | LambdaSelectionType { Halving, Quadratic } |
Types of lambda selection. More... | |
enum | RecoveryStepType { Constant, LastComputedStep } |
Type of recovery step to use. More... | |
Protected Member Functions | |
virtual void | init () |
Print out initialization information. | |
virtual void | printUpdate () |
Prints the current iteration information. | |
virtual bool | reset (const Teuchos::RCP< NOX::Abstract::Group > &grp, const Teuchos::RCP< NOX::StatusTest::Generic > &tests, const Teuchos::RCP< Teuchos::ParameterList > ¶ms) |
Constructor initialization routine. | |
bool | computeTensorDirection (NOX::Abstract::Group &soln, const NOX::Solver::Generic &solver) |
Subroutine for computing the tensor and Newton directions. | |
double | calculateBeta (double qa, double qb, double qc, double &qval, double &lambdaBar, double lambda=1.0) const |
Subroutine for calculating beta. | |
bool | computeCurvilinearStep (NOX::Abstract::Vector &dir, const NOX::Abstract::Group &soln, const NOX::Solver::Generic &s, double &lambda) |
Subroutine for computing the curvilinear step. | |
bool | implementGlobalStrategy (NOX::Abstract::Group &newGrp, double &step, const NOX::Solver::Generic &s) |
Subroutine for executing the tensor linesearch. | |
bool | performLinesearch (NOX::Abstract::Group &newsoln, double &step, const NOX::Abstract::Vector &lsDir, const NOX::Solver::Generic &s) |
Performs a standard tensor linesearch (tensor or Newton direction). | |
double | getNormModelResidual (const NOX::Abstract::Vector &dir, const NOX::Abstract::Group &soln, bool isTensorModel) const |
Compute the residual norm of the local model. | |
void | printDirectionInfo (std::string dirName, const NOX::Abstract::Vector &dir, const NOX::Abstract::Group &soln, bool isTensorModel) const |
Print pertinent information about the direction. | |
double | getDirectionalDerivative (const NOX::Abstract::Vector &dir, const NOX::Abstract::Group &soln) const |
Calculate the directional derivative. | |
double | selectLambda (double newf, double oldf, double oldfprime, double lambda) |
Select lambda for linesearch (quadratic or halving). | |
void | throwError (const string &functionName, const string &errorMsg) const |
Throw an error with a method's name and error message. | |
Protected Attributes | |
Teuchos::RCP< NOX::GlobalData > | globalDataPtr |
Pointer to the global data object. | |
Teuchos::RCP< NOX::Utils > | utilsPtr |
Printing Utils. | |
Teuchos::RCP < NOX::Abstract::Group > | solnPtr |
Current solution. | |
Teuchos::RCP < NOX::Abstract::Group > | oldSolnPtr |
Previous solution pointer. | |
Teuchos::RCP < NOX::Abstract::Vector > | newtonVecPtr |
Current Newton direction (pointer). | |
Teuchos::RCP < NOX::Abstract::Vector > | tensorVecPtr |
Current tensor direction (pointer). | |
Teuchos::RCP < NOX::Abstract::Vector > | aVecPtr |
Current tensor term vector (pointer). | |
Teuchos::RCP < NOX::Abstract::Vector > | sVecPtr |
Vector to previous point (pointer). | |
Teuchos::RCP < NOX::Abstract::Vector > | tmpVecPtr |
Working vector (pointer). | |
Teuchos::RCP < NOX::Abstract::Vector > | residualVecPtr |
Residual vector (pointer). | |
Teuchos::RCP < NOX::StatusTest::Generic > | testPtr |
Stopping test. | |
NOX::StatusTest::CheckType | checkType |
Type of check to use for status tests. See NOX::StatusTest for more details. | |
Teuchos::RCP < Teuchos::ParameterList > | paramsPtr |
Input parameters. | |
Teuchos::ParameterList * | linearParamsPtr |
Line Search parameters. | |
double | stepSize |
Current step. | |
double | beta |
Value of sc'*dt. | |
int | nIter |
Number of nonlinear iterations. | |
NOX::StatusTest::StatusType | status |
Status of nonlinear solver. | |
StepType | requestedBaseStep |
Flag for the base direction to compute after the first iteration. | |
LineSearchType | lsType |
Choice of line search. | |
ConvergenceCriteriaType | convCriteria |
Choice of convergence criteria (currently unused). | |
LambdaSelectionType | lambdaSelection |
Flag for lambda selection (Halving/Quadratic). | |
RecoveryStepType | recoveryStepType |
Choice of the recovery step type; uses "Recovery Step Type" parameter. | |
bool | useModifiedMethod |
Flag for using modifications that force quadratic to have real root. | |
bool | isNewtonDirection |
Flag for Newton direction. | |
bool | doRescue |
Flag for rescuing Linear Solver from a bad solve. | |
double | minStep |
Minimum step length (i.e., when we give up). | |
double | defaultStep |
Default step. | |
double | recoveryStep |
Default step for linesearch failure. | |
int | maxIters |
Maximum iterations. | |
double | alpha |
Scaling factor for the Armijo-Goldstein condition. | |
double | sTinvJF |
Value of s'*inv(J)*F. | |
double | sTinvJa |
Value of s'*inv(J)*a. | |
NOX::LineSearch::Utils::Printing | |
Common line search printing utilities. | |
NOX::LineSearch::Utils::Counters | counter |
Common common counters for line searches. | |
NOX::LineSearch::Utils::Slope | slopeObj |
Common slope calculations for line searches. | |
int | numJvMults |
Counter for number of Jacobian-vector products. | |
int | numJ2vMults |
Counter for number of "double" Jacobian-vector products. | |
NOX::Solver::PrePostOperator | prePostOperator |
Pointer to a user defined NOX::Abstract::PrePostOperator object. |
Solves using a rank-1 tensor method and a linesearch globalization.
At the kth nonlinear iteration, the solver does the following:
where
and
The solver iterates until the status tests (see NOX::StatusTest) determine either failure or convergence.
Input Parameters
To use this solver, set the "Nonlinear Solver" parameter to be "Tensor Based". Then, specify the following sublists with the appropriate parameters as indicated below.
Output Parameters
Every time solve() is called, a sublist for output parameters called "Output" will be created and will contain the following parameters:
References
Definition at line 267 of file NOX_Solver_TensorBased.H.
enum NOX::Solver::TensorBased::StepType [protected] |
enum NOX::Solver::TensorBased::LineSearchType [protected] |
Flag for the direction to be computed this iteration.
Enumerated list for each type of line search
Definition at line 447 of file NOX_Solver_TensorBased.H.
enum NOX::Solver::TensorBased::ConvergenceCriteriaType [protected] |
Algorithms used to determine convergence of the line search.
ArmijoGoldstein | Sufficient decrease condition. |
AredPred | Ared/Pred condition. |
None | Just accept the first step. |
Definition at line 460 of file NOX_Solver_TensorBased.H.
enum NOX::Solver::TensorBased::LambdaSelectionType [protected] |
enum NOX::Solver::TensorBased::RecoveryStepType [protected] |
Type of recovery step to use.
Constant | Use a constant value. |
LastComputedStep | Use the last value computed in the line search algorithm. |
Definition at line 484 of file NOX_Solver_TensorBased.H.
NOX::Solver::TensorBased::TensorBased | ( | const Teuchos::RCP< NOX::Abstract::Group > & | grp, | |
const Teuchos::RCP< NOX::StatusTest::Generic > & | tests, | |||
const Teuchos::RCP< Teuchos::ParameterList > & | params | |||
) |
Constructor.
See reset() for description.
Definition at line 62 of file NOX_Solver_TensorBased.C.
References NOX::DeepCopy, reset(), and NOX::ShapeCopy.
NOX::Solver::TensorBased::~TensorBased | ( | ) | [virtual] |
Destructor.
Definition at line 266 of file NOX_Solver_TensorBased.C.
References NOX::Utils::Details, numJ2vMults, numJvMults, and utilsPtr.
void NOX::Solver::TensorBased::reset | ( | const NOX::Abstract::Vector & | initial_guess, | |
const Teuchos::RCP< NOX::StatusTest::Generic > & | test | |||
) | [virtual] |
Resets the solver, sets a new status test, and sets a new initial guess.
Implements NOX::Solver::Generic.
Definition at line 251 of file NOX_Solver_TensorBased.C.
References init(), solnPtr, and testPtr.
Referenced by TensorBased().
void NOX::Solver::TensorBased::reset | ( | const NOX::Abstract::Vector & | initial_guess | ) | [virtual] |
Resets the solver and sets a new initial guess.
Implements NOX::Solver::Generic.
Definition at line 260 of file NOX_Solver_TensorBased.C.
NOX::StatusTest::StatusType NOX::Solver::TensorBased::getStatus | ( | ) | [virtual] |
Check current convergence and failure status.
Implements NOX::Solver::Generic.
Definition at line 278 of file NOX_Solver_TensorBased.C.
References status.
NOX::StatusTest::StatusType NOX::Solver::TensorBased::step | ( | ) | [virtual] |
Do one nonlinear step in the iteration sequence and return status.
Implements NOX::Solver::Generic.
Definition at line 283 of file NOX_Solver_TensorBased.C.
References NOX::StatusTest::Generic::checkStatus(), checkType, NOX::Abstract::Group::computeF(), computeTensorDirection(), NOX::StatusTest::Converged, NOX::Utils::Error, NOX::StatusTest::Failed, implementGlobalStrategy(), nIter, NOX::Abstract::Group::Ok, oldSolnPtr, prePostOperator, printUpdate(), NOX::Solver::PrePostOperator::runPostIterate(), NOX::Solver::PrePostOperator::runPreIterate(), solnPtr, status, stepSize, testPtr, NOX::StatusTest::Unconverged, utilsPtr, and NOX::Utils::Warning.
Referenced by solve().
NOX::StatusTest::StatusType NOX::Solver::TensorBased::solve | ( | ) | [virtual] |
Solve the nonlinear problem and return final status.
By "solve", we call iterate() until the NOX::StatusTest value is either NOX::StatusTest::Converged or NOX::StatusTest::Failed.
Implements NOX::Solver::Generic.
Definition at line 385 of file NOX_Solver_TensorBased.C.
References nIter, paramsPtr, prePostOperator, NOX::Solver::PrePostOperator::runPostSolve(), NOX::Solver::PrePostOperator::runPreSolve(), solnPtr, status, step(), and NOX::StatusTest::Unconverged.
const NOX::Abstract::Group & NOX::Solver::TensorBased::getSolutionGroup | ( | ) | const [virtual] |
Return a reference to the current solution group.
Implements NOX::Solver::Generic.
Definition at line 405 of file NOX_Solver_TensorBased.C.
References solnPtr.
const NOX::Abstract::Group & NOX::Solver::TensorBased::getPreviousSolutionGroup | ( | ) | const [virtual] |
Return a reference to the previous solution group.
Implements NOX::Solver::Generic.
Definition at line 411 of file NOX_Solver_TensorBased.C.
References oldSolnPtr.
int NOX::Solver::TensorBased::getNumIterations | ( | ) | const [virtual] |
Get number of iterations.
Implements NOX::Solver::Generic.
Definition at line 416 of file NOX_Solver_TensorBased.C.
References nIter.
const Teuchos::ParameterList & NOX::Solver::TensorBased::getList | ( | ) | const [virtual] |
Return a refernece to the solver parameters.
Implements NOX::Solver::Generic.
Definition at line 422 of file NOX_Solver_TensorBased.C.
References paramsPtr.
void NOX::Solver::TensorBased::init | ( | ) | [protected, virtual] |
Print out initialization information.
Definition at line 85 of file NOX_Solver_TensorBased.C.
References counter, NOX::Utils::fill(), nIter, numJ2vMults, numJvMults, NOX::Utils::Parameters, paramsPtr, NOX::LineSearch::Utils::Counters::reset(), status, stepSize, NOX::StatusTest::Unconverged, and utilsPtr.
Referenced by reset().
void NOX::Solver::TensorBased::printUpdate | ( | ) | [protected, virtual] |
Prints the current iteration information.
Definition at line 428 of file NOX_Solver_TensorBased.C.
References NOX::StatusTest::Converged, NOX::StatusTest::Failed, NOX::Utils::fill(), nIter, NOX::Utils::OuterIteration, NOX::Utils::OuterIterationStatusTest, solnPtr, status, stepSize, tensorVecPtr, testPtr, NOX::StatusTest::Unconverged, and utilsPtr.
Referenced by step().
bool NOX::Solver::TensorBased::reset | ( | const Teuchos::RCP< NOX::Abstract::Group > & | grp, | |
const Teuchos::RCP< NOX::StatusTest::Generic > & | tests, | |||
const Teuchos::RCP< Teuchos::ParameterList > & | params | |||
) | [protected, virtual] |
Constructor initialization routine.
Definition at line 110 of file NOX_Solver_TensorBased.C.
References alpha, ArmijoGoldstein, checkType, Constant, convCriteria, defaultStep, doRescue, NOX::Utils::Error, globalDataPtr, init(), lambdaSelection, LastComputedStep, lsType, maxIters, minStep, NOX::Utils::Parameters, paramsPtr, NOX::Solver::parseStatusTestCheckType(), prePostOperator, print, recoveryStep, recoveryStepType, requestedBaseStep, NOX::Solver::PrePostOperator::reset(), NOX::LineSearch::Utils::Slope::reset(), slopeObj, solnPtr, testPtr, useModifiedMethod, and utilsPtr.
bool NOX::Solver::TensorBased::computeTensorDirection | ( | NOX::Abstract::Group & | soln, | |
const NOX::Solver::Generic & | solver | |||
) | [protected] |
Subroutine for computing the tensor and Newton directions.
Definition at line 478 of file NOX_Solver_TensorBased.C.
References NOX::Abstract::Group::applyJacobian(), NOX::Abstract::Group::applyJacobianInverse(), aVecPtr, beta, calculateBeta(), NOX::Abstract::Group::computeF(), NOX::Abstract::Group::computeJacobian(), NOX::Abstract::Group::computeNewton(), NOX::Utils::Details, doRescue, NOX::Abstract::Group::getF(), NOX::Abstract::Group::getNewton(), NOX::Abstract::Group::getNormF(), NOX::Solver::Generic::getPreviousSolutionGroup(), NOX::Abstract::Group::getX(), newtonVecPtr, nIter, numJ2vMults, numJvMults, NOX::Abstract::Group::Ok, paramsPtr, printDirectionInfo(), requestedBaseStep, residualVecPtr, sTinvJa, sTinvJF, sVecPtr, tensorVecPtr, throwError(), tmpVecPtr, useModifiedMethod, utilsPtr, and NOX::Utils::Warning.
Referenced by step().
double NOX::Solver::TensorBased::calculateBeta | ( | double | qa, | |
double | qb, | |||
double | qc, | |||
double & | qval, | |||
double & | lambdaBar, | |||
double | lambda = 1.0 | |||
) | const [protected] |
Subroutine for calculating beta.
Definition at line 719 of file NOX_Solver_TensorBased.C.
References NOX::Utils::Details, and utilsPtr.
Referenced by computeCurvilinearStep(), and computeTensorDirection().
bool NOX::Solver::TensorBased::computeCurvilinearStep | ( | NOX::Abstract::Vector & | dir, | |
const NOX::Abstract::Group & | soln, | |||
const NOX::Solver::Generic & | s, | |||
double & | lambda | |||
) | [protected] |
Subroutine for computing the curvilinear step.
Definition at line 781 of file NOX_Solver_TensorBased.C.
References beta, calculateBeta(), NOX::Utils::Details, NOX::Abstract::Vector::innerProduct(), newtonVecPtr, sTinvJa, sTinvJF, tensorVecPtr, NOX::Abstract::Vector::update(), and utilsPtr.
Referenced by performLinesearch().
bool NOX::Solver::TensorBased::implementGlobalStrategy | ( | NOX::Abstract::Group & | newGrp, | |
double & | step, | |||
const NOX::Solver::Generic & | s | |||
) | [protected] |
Subroutine for executing the tensor linesearch.
Definition at line 813 of file NOX_Solver_TensorBased.C.
References NOX::Abstract::Group::computeF(), NOX::LineSearch::Utils::Slope::computeSlope(), NOX::Abstract::Group::computeX(), counter, NOX::Abstract::Group::getNormF(), NOX::LineSearch::Utils::Counters::getNumLineSearches(), NOX::Solver::Generic::getPreviousSolutionGroup(), NOX::LineSearch::Utils::Counters::incrementNumLineSearches(), isNewtonDirection, lsType, newtonVecPtr, performLinesearch(), slopeObj, and tensorVecPtr.
Referenced by step().
bool NOX::Solver::TensorBased::performLinesearch | ( | NOX::Abstract::Group & | newsoln, | |
double & | step, | |||
const NOX::Abstract::Vector & | lsDir, | |||
const NOX::Solver::Generic & | s | |||
) | [protected] |
Performs a standard tensor linesearch (tensor or Newton direction).
Definition at line 867 of file NOX_Solver_TensorBased.C.
References alpha, computeCurvilinearStep(), NOX::Abstract::Group::computeF(), NOX::LineSearch::Utils::Slope::computeSlope(), NOX::Abstract::Group::computeX(), Constant, counter, defaultStep, NOX::Utils::Details, NOX::Utils::fill(), NOX::Abstract::Group::getNormF(), NOX::Solver::Generic::getPreviousSolutionGroup(), NOX::LineSearch::Utils::Counters::incrementNumFailedLineSearches(), NOX::LineSearch::Utils::Counters::incrementNumIterations(), NOX::LineSearch::Utils::Counters::incrementNumNonTrivialLineSearches(), NOX::Utils::InnerIteration, isNewtonDirection, NOX::Utils::isPrintType(), lsType, maxIters, minStep, newtonVecPtr, numJvMults, paramsPtr, print, NOX::LineSearch::Utils::Printing::printStep(), recoveryStep, recoveryStepType, selectLambda(), NOX::LineSearch::Utils::Counters::setValues(), slopeObj, tmpVecPtr, and utilsPtr.
Referenced by implementGlobalStrategy().
double NOX::Solver::TensorBased::getNormModelResidual | ( | const NOX::Abstract::Vector & | dir, | |
const NOX::Abstract::Group & | soln, | |||
bool | isTensorModel | |||
) | const [protected] |
Compute the residual norm of the local model.
Definition at line 1042 of file NOX_Solver_TensorBased.C.
References NOX::Abstract::Group::applyJacobian(), aVecPtr, NOX::Abstract::Vector::clone(), NOX::Utils::Details, NOX::Abstract::Group::getF(), numJvMults, NOX::ShapeCopy, sVecPtr, and utilsPtr.
Referenced by printDirectionInfo().
void NOX::Solver::TensorBased::printDirectionInfo | ( | std::string | dirName, | |
const NOX::Abstract::Vector & | dir, | |||
const NOX::Abstract::Group & | soln, | |||
bool | isTensorModel | |||
) | const [protected] |
Print pertinent information about the direction.
Definition at line 1070 of file NOX_Solver_TensorBased.C.
References NOX::Utils::Details, getDirectionalDerivative(), NOX::Abstract::Group::getNormF(), getNormModelResidual(), NOX::Abstract::Vector::norm(), and utilsPtr.
Referenced by computeTensorDirection().
double NOX::Solver::TensorBased::getDirectionalDerivative | ( | const NOX::Abstract::Vector & | dir, | |
const NOX::Abstract::Group & | soln | |||
) | const [protected] |
Calculate the directional derivative.
Definition at line 1097 of file NOX_Solver_TensorBased.C.
References NOX::Abstract::Group::applyJacobian(), NOX::Abstract::Vector::clone(), NOX::Abstract::Group::getF(), numJvMults, and NOX::ShapeCopy.
Referenced by printDirectionInfo().
double NOX::Solver::TensorBased::selectLambda | ( | double | newf, | |
double | oldf, | |||
double | oldfprime, | |||
double | lambda | |||
) | [protected] |
Select lambda for linesearch (quadratic or halving).
Definition at line 1110 of file NOX_Solver_TensorBased.C.
References lambdaSelection.
Referenced by performLinesearch().
void NOX::Solver::TensorBased::throwError | ( | const string & | functionName, | |
const string & | errorMsg | |||
) | const [protected] |
Throw an error with a method's name and error message.
Definition at line 1132 of file NOX_Solver_TensorBased.C.
References NOX::Utils::Error, and utilsPtr.
Referenced by computeTensorDirection().
Teuchos::RCP<NOX::GlobalData> NOX::Solver::TensorBased::globalDataPtr [protected] |
Pointer to the global data object.
Definition at line 360 of file NOX_Solver_TensorBased.H.
Referenced by reset().
Teuchos::RCP<NOX::Utils> NOX::Solver::TensorBased::utilsPtr [protected] |
Printing Utils.
Definition at line 363 of file NOX_Solver_TensorBased.H.
Referenced by calculateBeta(), computeCurvilinearStep(), computeTensorDirection(), getNormModelResidual(), init(), performLinesearch(), printDirectionInfo(), printUpdate(), reset(), step(), throwError(), and ~TensorBased().
Teuchos::RCP<NOX::Abstract::Group> NOX::Solver::TensorBased::solnPtr [protected] |
Current solution.
Definition at line 366 of file NOX_Solver_TensorBased.H.
Referenced by getSolutionGroup(), printUpdate(), reset(), solve(), and step().
Teuchos::RCP<NOX::Abstract::Group> NOX::Solver::TensorBased::oldSolnPtr [protected] |
Previous solution pointer.
We have both a pointer and a reference because we need to create a DERIVED object and then want to have a reference to it.
Definition at line 371 of file NOX_Solver_TensorBased.H.
Referenced by getPreviousSolutionGroup(), and step().
Teuchos::RCP<NOX::Abstract::Vector> NOX::Solver::TensorBased::newtonVecPtr [protected] |
Current Newton direction (pointer).
We have both a pointer and a reference because we need to create a DERIVED object and then want to have a reference to it.
Definition at line 376 of file NOX_Solver_TensorBased.H.
Referenced by computeCurvilinearStep(), computeTensorDirection(), implementGlobalStrategy(), and performLinesearch().
Teuchos::RCP<NOX::Abstract::Vector> NOX::Solver::TensorBased::tensorVecPtr [protected] |
Current tensor direction (pointer).
We have both a pointer and a reference because we need to create a DERIVED object and then want to have a reference to it.
Definition at line 381 of file NOX_Solver_TensorBased.H.
Referenced by computeCurvilinearStep(), computeTensorDirection(), implementGlobalStrategy(), and printUpdate().
Teuchos::RCP<NOX::Abstract::Vector> NOX::Solver::TensorBased::aVecPtr [protected] |
Current tensor term vector (pointer).
We have both a pointer and a reference because we need to create a DERIVED object and then want to have a reference to it.
Definition at line 386 of file NOX_Solver_TensorBased.H.
Referenced by computeTensorDirection(), and getNormModelResidual().
Teuchos::RCP<NOX::Abstract::Vector> NOX::Solver::TensorBased::sVecPtr [protected] |
Vector to previous point (pointer).
We have both a pointer and a reference because we need to create a DERIVED object and then want to have a reference to it.
Definition at line 391 of file NOX_Solver_TensorBased.H.
Referenced by computeTensorDirection(), and getNormModelResidual().
Teuchos::RCP<NOX::Abstract::Vector> NOX::Solver::TensorBased::tmpVecPtr [protected] |
Working vector (pointer).
We have both a pointer and a reference because we need to create a DERIVED object and then want to have a reference to it.
Definition at line 396 of file NOX_Solver_TensorBased.H.
Referenced by computeTensorDirection(), and performLinesearch().
Teuchos::RCP<NOX::Abstract::Vector> NOX::Solver::TensorBased::residualVecPtr [protected] |
Residual vector (pointer).
We have both a pointer and a reference because we need to create a DERIVED object and then want to have a reference to it.
Definition at line 401 of file NOX_Solver_TensorBased.H.
Referenced by computeTensorDirection().
Teuchos::RCP<NOX::StatusTest::Generic> NOX::Solver::TensorBased::testPtr [protected] |
Stopping test.
Definition at line 404 of file NOX_Solver_TensorBased.H.
Referenced by printUpdate(), reset(), and step().
Type of check to use for status tests. See NOX::StatusTest for more details.
Definition at line 407 of file NOX_Solver_TensorBased.H.
Teuchos::RCP<Teuchos::ParameterList> NOX::Solver::TensorBased::paramsPtr [protected] |
Input parameters.
Definition at line 410 of file NOX_Solver_TensorBased.H.
Referenced by computeTensorDirection(), getList(), init(), performLinesearch(), reset(), and solve().
Teuchos::ParameterList* NOX::Solver::TensorBased::linearParamsPtr [protected] |
Line Search parameters.
Direction parameters. Parameters for the Linear Solver of the local model.
Definition at line 419 of file NOX_Solver_TensorBased.H.
double NOX::Solver::TensorBased::stepSize [protected] |
Current step.
Definition at line 422 of file NOX_Solver_TensorBased.H.
Referenced by init(), printUpdate(), and step().
double NOX::Solver::TensorBased::beta [protected] |
Value of sc'*dt.
Definition at line 425 of file NOX_Solver_TensorBased.H.
Referenced by computeCurvilinearStep(), and computeTensorDirection().
int NOX::Solver::TensorBased::nIter [protected] |
Number of nonlinear iterations.
Definition at line 428 of file NOX_Solver_TensorBased.H.
Referenced by computeTensorDirection(), getNumIterations(), init(), printUpdate(), solve(), and step().
Status of nonlinear solver.
Definition at line 431 of file NOX_Solver_TensorBased.H.
Referenced by getStatus(), init(), printUpdate(), solve(), and step().
StepType NOX::Solver::TensorBased::requestedBaseStep [protected] |
Flag for the base direction to compute after the first iteration.
Definition at line 441 of file NOX_Solver_TensorBased.H.
Referenced by computeTensorDirection(), and reset().
LineSearchType NOX::Solver::TensorBased::lsType [protected] |
Choice of line search.
Definition at line 457 of file NOX_Solver_TensorBased.H.
Referenced by implementGlobalStrategy(), performLinesearch(), and reset().
Choice of convergence criteria (currently unused).
Definition at line 471 of file NOX_Solver_TensorBased.H.
Referenced by reset().
Flag for lambda selection (Halving/Quadratic).
Definition at line 481 of file NOX_Solver_TensorBased.H.
Referenced by reset(), and selectLambda().
Choice of the recovery step type; uses "Recovery Step Type" parameter.
Definition at line 492 of file NOX_Solver_TensorBased.H.
Referenced by performLinesearch(), and reset().
bool NOX::Solver::TensorBased::useModifiedMethod [protected] |
Flag for using modifications that force quadratic to have real root.
Definition at line 495 of file NOX_Solver_TensorBased.H.
Referenced by computeTensorDirection(), and reset().
bool NOX::Solver::TensorBased::isNewtonDirection [protected] |
Flag for Newton direction.
Definition at line 498 of file NOX_Solver_TensorBased.H.
Referenced by implementGlobalStrategy(), and performLinesearch().
bool NOX::Solver::TensorBased::doRescue [protected] |
Flag for rescuing Linear Solver from a bad solve.
Definition at line 501 of file NOX_Solver_TensorBased.H.
Referenced by computeTensorDirection(), and reset().
double NOX::Solver::TensorBased::minStep [protected] |
Minimum step length (i.e., when we give up).
Definition at line 504 of file NOX_Solver_TensorBased.H.
Referenced by performLinesearch(), and reset().
double NOX::Solver::TensorBased::defaultStep [protected] |
Default step.
Definition at line 507 of file NOX_Solver_TensorBased.H.
Referenced by performLinesearch(), and reset().
double NOX::Solver::TensorBased::recoveryStep [protected] |
Default step for linesearch failure.
Definition at line 510 of file NOX_Solver_TensorBased.H.
Referenced by performLinesearch(), and reset().
int NOX::Solver::TensorBased::maxIters [protected] |
Maximum iterations.
Definition at line 513 of file NOX_Solver_TensorBased.H.
Referenced by performLinesearch(), and reset().
double NOX::Solver::TensorBased::alpha [protected] |
Scaling factor for the Armijo-Goldstein condition.
Definition at line 516 of file NOX_Solver_TensorBased.H.
Referenced by performLinesearch(), and reset().
double NOX::Solver::TensorBased::sTinvJF [protected] |
Value of s'*inv(J)*F.
Definition at line 519 of file NOX_Solver_TensorBased.H.
Referenced by computeCurvilinearStep(), and computeTensorDirection().
double NOX::Solver::TensorBased::sTinvJa [protected] |
Value of s'*inv(J)*a.
Definition at line 522 of file NOX_Solver_TensorBased.H.
Referenced by computeCurvilinearStep(), and computeTensorDirection().
Common line search printing utilities.
Definition at line 525 of file NOX_Solver_TensorBased.H.
Referenced by performLinesearch(), and reset().
Common common counters for line searches.
Definition at line 528 of file NOX_Solver_TensorBased.H.
Referenced by implementGlobalStrategy(), init(), and performLinesearch().
Common slope calculations for line searches.
Definition at line 531 of file NOX_Solver_TensorBased.H.
Referenced by implementGlobalStrategy(), performLinesearch(), and reset().
int NOX::Solver::TensorBased::numJvMults [mutable, protected] |
Counter for number of Jacobian-vector products.
Definition at line 534 of file NOX_Solver_TensorBased.H.
Referenced by computeTensorDirection(), getDirectionalDerivative(), getNormModelResidual(), init(), performLinesearch(), and ~TensorBased().
int NOX::Solver::TensorBased::numJ2vMults [mutable, protected] |
Counter for number of "double" Jacobian-vector products.
Definition at line 537 of file NOX_Solver_TensorBased.H.
Referenced by computeTensorDirection(), init(), and ~TensorBased().
Pointer to a user defined NOX::Abstract::PrePostOperator object.
Definition at line 540 of file NOX_Solver_TensorBased.H.