|
NOX Development
|
Nonlinear solver based on a rank-1 tensor method. More...
#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 void | reset () |
| Resets the solver for another solve. This resets the counters and status only. Uses the final solution from the last solve as the initial guess for the next solve. | |
| 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 NOX::StatusTest::StatusType | getStatus () const |
| Returns the current status of the solver. | |
| virtual int | getNumIterations () const |
| Get number of iterations. | |
| virtual const Teuchos::ParameterList & | getList () const |
| Return a reference to the solver parameters. | |
| virtual Teuchos::RCP< const NOX::Abstract::Group > | getSolutionGroupPtr () const |
| Return a RCP to the solution group. | |
| virtual Teuchos::RCP< const NOX::Abstract::Group > | getPreviousSolutionGroupPtr () const |
| Return a RCP to the previous solution group. | |
| virtual Teuchos::RCP< const Teuchos::ParameterList > | getListPtr () const |
| Return a RCP to the solver parameters. | |
| virtual Teuchos::RCP< const NOX::SolverStats > | getSolverStatistics () const |
| Return a RCP to the solver statistics. | |
| Public Member Functions inherited from NOX::Solver::Generic | |
| Generic () | |
| Constructor (does nothing). | |
| virtual | ~Generic () |
| Destructor (does nothing). | |
Protected Types | |
| enum | StepType { TensorStep , NewtonStep } |
| Types of steps. | |
| 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. | |
| 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 std::string &functionName, const std::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. | |
| Teuchos::RCP< NOX::LineSearch::Utils::Printing > | |
| Common line search printing utilities. | |
| NOX::LineSearchCounters * | 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. | |
| Teuchos::RCP< NOX::Observer > | observer |
| Pointer to a user defined NOX::Observer object. | |
Nonlinear solver based on a rank-1 tensor method.
Solves 
At the kth nonlinear iteration, the solver does the following:
Computes the tensor direction 
![\[ M_T(x_k+d) =
F_k + J_kd + a_k(s_k^Td)^2, \]](form_272.png)
where
![\[ a_k = 2(F_{k-1} - F_k
- J_ks_k) / (s_k^Ts_k)^2 \]](form_273.png)
and
![\[ s_k = s_{k-1} - s_k. \]](form_274.png)
Modifies the step according to a global strategy and updates 








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.
"Direction" - Sublist of the direction parameters, passed to the NOX::Direction::Factory constructor. Defaults to an empty list.
"Method" - Name of the direction to be computed in this solver. "Tensor" and "Newton" are the only two valid choices. A sublist by this name specifies all of the parameters to be passed to the linear solver. See below under "Linear Solver".
"Rescue Bad Newton Solve" (Boolean) - If the linear solve does not meet the tolerance specified by the forcing term, then use the step anyway. Defaults to true.
"Linear Solver" - Sublist for the specific linear solver parameters that are passed to NOX::Abstract::Group::computeNewton() and NOX::Abstract::Group::applyJacobianInverse(). "Linear Solver" is itself a sublist of the list specified in "Method" above (i.e., "Tensor" or "Newton"). Below is a partial list of standard parameters usually available in common linear solvers. Check with the specific linear solver being used for other parameters.
"Max Iterations" - Maximum number of Arnoldi iterations (also max Krylov space dimension)
"Tolerance" - Relative tolerance for solving local model [default = 1e-4]
"Output Frequency" - Print output at every number of iterations [default = 20]
"Line Search" - Sublist of the line search parameters. Because the tensor step is not guaranteed to be a descent direction on the function, not all "basic" line search approaches would be appropriate. Thus, the LineSearch classes available to Newton's method (e.g., Polynomial, More-Thuente) are not used here. Instead, this solver class approriately handles technical considerations for tensor methods with its own set of global strategies. The following parameters specify the specific options for this line search:
"Method" - Name of the line search available to tensor methods Valid choices are:
<ul> <li> "Curvilinear" - Backtrack along the "curvilinear"
path that spans the tensor direction and the Newton direction and that maintains monotonicity on the tensor model. Recommended because it tends to be more robust and efficient than the other choices. [Default]
"Standard" - Backtrack along tensor direction unless it is not a descent direction, in which case backtrack along Newton direction.
"Dual" - Backtrack along both the Newton and tensor directions and choose the better of the two.
"Full Step" - Only use the full step and do not backtrack along both the Newton and tensor directions and choose the better of the two.
</ul>
"Lambda selection" - Flag for how to calculate the next linesearch parameter lambda. Valid choices are "Quadratic" and "Halving" (default). Quadratic constructs a quadratic interpolating polynomial from the last trial point and uses the minimum of this function as the next trial lambda (bounded by 0.1). Halving divides the linesearch parameter by 2 before each trial, which is simpler but tends to generate longer steps than quadratic.
"Default Step" - Starting value of the linesearch parameter (defaults to 1.0)
"Minimum Step" - Minimum acceptable linesearch parameter before the linesearch terminates (defaults to 1.0e-12). If there are many linesearch failures, then lowering this value is one thing to try.
"Recovery Step Type" - Determines the step size to take when the line search fails. Choices are:
"Constant" [default] - Uses a constant value set in "Recovery Step".
"Last Computed Step" - Uses the last value computed by the line search algorithm.
"Recovery Step" - Step parameter to take when the line search fails (defaults to value for "Default Step")
"Max Iters" - Maximum number of iterations (i.e., backtracks)
"Solver Options" - Sublist of general solver options.
"User Defined Pre/Post Operator" is supported. See NOX::Parameter::PrePostOperator for more details.
Output Parameters
Every time solve() is called, a sublist for output parameters called "Output" will be created and will contain the following parameters:
"Nonlinear Iterations" - Number of nonlinear iterations
"2-Norm of Residual" - L-2 norm of the final residual 
References
B. W. Bader, Tensor-Krylov methods for solving large-scale systems of nonlinear equations, Ph.D. Thesis, 2003, University of Colorado, Boulder, Colorado.
B. W. Bader, Tensor-Krylov methods for solving large-scale systems of nonlinear equations, submitted to SIAM J. Numer. Anal.
B. W. Bader and R. B. Schnabel, Curvilinear linesearch for tensor methods, SISC, 25(2):604-622.
R. B. Schnabel and P. D. Frank, Tensor methods for nonlinear equations, SIAM J. Numer. Anal., 21(5):815-843.
|
protected |
|
protected |
Flag for the direction to be computed this iteration.
Enumerated list for each type of line search
|
protected |
| 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.
References aVecPtr, beta, NOX::DeepCopy, linearParamsPtr, newtonVecPtr, oldSolnPtr, paramsPtr, reset(), residualVecPtr, NOX::ShapeCopy, solnPtr, sTinvJa, sTinvJF, sVecPtr, tensorVecPtr, testPtr, and tmpVecPtr.
|
virtual |
Destructor.
References NOX::Utils::Details, numJ2vMults, numJvMults, and utilsPtr.
|
protected |
Subroutine for calculating beta.
References NOX::Utils::Details, and utilsPtr.
Referenced by computeCurvilinearStep(), and computeTensorDirection().
|
protected |
Subroutine for computing the curvilinear step.
References beta, calculateBeta(), NOX::Utils::Details, NOX::Abstract::Vector::innerProduct(), newtonVecPtr, sTinvJa, sTinvJF, tensorVecPtr, NOX::Abstract::Vector::update(), and utilsPtr.
Referenced by performLinesearch().
|
protected |
Subroutine for computing the tensor and Newton directions.
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, NOX::Abstract::Vector::norm(), numJ2vMults, numJvMults, NOX::Abstract::Group::Ok, paramsPtr, printDirectionInfo(), requestedBaseStep, residualVecPtr, sTinvJa, sTinvJF, sVecPtr, tensorVecPtr, throwError(), tmpVecPtr, NOX::Abstract::Vector::update(), useModifiedMethod, utilsPtr, and NOX::Utils::Warning.
Referenced by step().
|
protected |
Calculate the directional derivative.
References NOX::Abstract::Group::applyJacobian(), NOX::Abstract::Vector::clone(), NOX::Abstract::Group::getF(), numJvMults, and NOX::ShapeCopy.
Referenced by printDirectionInfo().
|
virtual |
|
inlinevirtual |
|
protected |
Compute the residual norm of the local model.
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().
|
virtual |
|
virtual |
Return a reference to the previous solution group.
Implements NOX::Solver::Generic.
References oldSolnPtr.
|
inlinevirtual |
Return a RCP to the previous solution group.
Implements NOX::Solver::Generic.
References oldSolnPtr.
|
virtual |
Return a reference to the current solution group.
Implements NOX::Solver::Generic.
References solnPtr.
|
inlinevirtual |
|
virtual |
|
virtual |
|
protected |
Subroutine for executing the tensor linesearch.
References NOX::Abstract::Group::computeF(), NOX::Abstract::Group::computeX(), counter, NOX::Abstract::Group::getNormF(), NOX::Solver::Generic::getPreviousSolutionGroup(), isNewtonDirection, lsType, newtonVecPtr, performLinesearch(), slopeObj, and tensorVecPtr.
Referenced by step().
|
protectedvirtual |
Print out initialization information.
References counter, NOX::Utils::fill(), nIter, numJ2vMults, numJvMults, NOX::Utils::Parameters, paramsPtr, status, stepSize, NOX::StatusTest::Unconverged, and utilsPtr.
|
protected |
Performs a standard tensor linesearch (tensor or Newton direction).
References alpha, computeCurvilinearStep(), NOX::Abstract::Group::computeF(), NOX::Abstract::Group::computeX(), Constant, counter, defaultStep, NOX::Utils::Details, NOX::Utils::fill(), NOX::Abstract::Group::getNormF(), NOX::Solver::Generic::getPreviousSolutionGroup(), NOX::Utils::InnerIteration, isNewtonDirection, lsType, maxIters, minStep, newtonVecPtr, numJvMults, paramsPtr, print, recoveryStep, recoveryStepType, selectLambda(), slopeObj, tmpVecPtr, and utilsPtr.
Referenced by implementGlobalStrategy().
|
protected |
Print pertinent information about the direction.
References NOX::Utils::Details, getDirectionalDerivative(), NOX::Abstract::Group::getNormF(), getNormModelResidual(), NOX::Abstract::Vector::norm(), and utilsPtr.
Referenced by computeTensorDirection().
|
protectedvirtual |
Prints the current iteration information.
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().
|
virtual |
Resets the solver for another solve. This resets the counters and status only. Uses the final solution from the last solve as the initial guess for the next solve.
NOTE: All NOX solvers will call reset() automatically at teh beginning of the solve() method. We add the reset() method to the solver interface for the application to call in case the application needs to reset counters and status manually before the next call to solve() is made.
Implements NOX::Solver::Generic.
References counter, nIter, numJ2vMults, numJvMults, status, stepSize, and NOX::StatusTest::Unconverged.
|
virtual |
Resets the solver and sets a new initial guess.
Implements NOX::Solver::Generic.
|
virtual |
Resets the solver, sets a new status test, and sets a new initial guess.
Implements NOX::Solver::Generic.
References init(), solnPtr, and testPtr.
Referenced by solve(), and TensorBased().
|
protectedvirtual |
Constructor initialization routine.
References alpha, ArmijoGoldstein, checkType, Constant, convCriteria, counter, defaultStep, doRescue, NOX::Utils::Error, globalDataPtr, init(), lambdaSelection, LastComputedStep, lsType, maxIters, minStep, observer, NOX::Utils::Parameters, paramsPtr, NOX::Solver::parseObserver(), NOX::Solver::parseStatusTestCheckType(), print, recoveryStep, recoveryStepType, requestedBaseStep, slopeObj, solnPtr, testPtr, useModifiedMethod, utilsPtr, and NOX::Solver::validateSolverOptionsSublist().
|
protected |
Select lambda for linesearch (quadratic or halving).
References lambdaSelection.
Referenced by performLinesearch().
|
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.
References nIter, observer, paramsPtr, reset(), solnPtr, status, step(), and NOX::StatusTest::Unconverged.
|
virtual |
Do one nonlinear step in the iteration sequence and return status.
Implements NOX::Solver::Generic.
References NOX::StatusTest::Generic::checkStatus(), checkType, NOX::Abstract::Group::computeF(), computeTensorDirection(), NOX::StatusTest::Converged, NOX::Utils::Error, NOX::StatusTest::Failed, implementGlobalStrategy(), nIter, observer, NOX::Abstract::Group::Ok, oldSolnPtr, printUpdate(), solnPtr, status, stepSize, testPtr, NOX::StatusTest::Unconverged, utilsPtr, and NOX::Utils::Warning.
Referenced by solve().
|
protected |
Throw an error with a method's name and error message.
References NOX::Utils::Error, and utilsPtr.
Referenced by computeTensorDirection().
|
protected |
Scaling factor for the Armijo-Goldstein condition.
Referenced by performLinesearch(), and reset().
|
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.
Referenced by computeTensorDirection(), getNormModelResidual(), and TensorBased().
|
protected |
Value of sc'*dt.
Referenced by computeCurvilinearStep(), computeTensorDirection(), and TensorBased().
|
protected |
Type of check to use for status tests. See NOX::StatusTest for more details.
|
protected |
Choice of convergence criteria (currently unused).
Referenced by reset().
|
protected |
Common common counters for line searches.
Referenced by implementGlobalStrategy(), init(), performLinesearch(), reset(), and reset().
|
protected |
Default step.
Referenced by performLinesearch(), and reset().
|
protected |
Flag for rescuing Linear Solver from a bad solve.
Referenced by computeTensorDirection(), and reset().
|
protected |
Pointer to the global data object.
Referenced by getSolverStatistics(), and reset().
|
protected |
Flag for Newton direction.
Referenced by implementGlobalStrategy(), and performLinesearch().
|
protected |
Flag for lambda selection (Halving/Quadratic).
Referenced by reset(), and selectLambda().
|
protected |
Line Search parameters.
Direction parameters. Parameters for the Linear Solver of the local model.
Referenced by TensorBased().
|
protected |
Choice of line search.
Referenced by implementGlobalStrategy(), performLinesearch(), and reset().
|
protected |
Maximum iterations.
Referenced by performLinesearch(), and reset().
|
protected |
Minimum step length (i.e., when we give up).
Referenced by performLinesearch(), and reset().
|
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.
Referenced by computeCurvilinearStep(), computeTensorDirection(), implementGlobalStrategy(), performLinesearch(), and TensorBased().
|
protected |
Number of nonlinear iterations.
Referenced by computeTensorDirection(), getNumIterations(), init(), printUpdate(), reset(), solve(), and step().
|
mutableprotected |
Counter for number of "double" Jacobian-vector products.
Referenced by computeTensorDirection(), init(), reset(), and ~TensorBased().
|
mutableprotected |
Counter for number of Jacobian-vector products.
Referenced by computeTensorDirection(), getDirectionalDerivative(), getNormModelResidual(), init(), performLinesearch(), reset(), and ~TensorBased().
|
protected |
Pointer to a user defined NOX::Observer object.
|
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.
Referenced by getPreviousSolutionGroup(), getPreviousSolutionGroupPtr(), step(), and TensorBased().
|
protected |
Input parameters.
Referenced by computeTensorDirection(), getList(), getListPtr(), init(), performLinesearch(), reset(), solve(), and TensorBased().
|
protected |
Common line search printing utilities.
Referenced by performLinesearch(), and reset().
|
protected |
Default step for linesearch failure.
Referenced by performLinesearch(), and reset().
|
protected |
Choice of the recovery step type; uses "Recovery Step Type" parameter.
Referenced by performLinesearch(), and reset().
|
protected |
Flag for the base direction to compute after the first iteration.
Referenced by computeTensorDirection(), and reset().
|
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.
Referenced by computeTensorDirection(), and TensorBased().
|
protected |
Common slope calculations for line searches.
Referenced by implementGlobalStrategy(), performLinesearch(), and reset().
|
protected |
Current solution.
Referenced by getSolutionGroup(), getSolutionGroupPtr(), printUpdate(), reset(), reset(), reset(), solve(), step(), and TensorBased().
|
protected |
Status of nonlinear solver.
Referenced by getStatus(), init(), printUpdate(), reset(), solve(), and step().
|
protected |
Current step.
Referenced by init(), printUpdate(), reset(), and step().
|
protected |
Value of s'*inv(J)*a.
Referenced by computeCurvilinearStep(), computeTensorDirection(), and TensorBased().
|
protected |
Value of s'*inv(J)*F.
Referenced by computeCurvilinearStep(), computeTensorDirection(), and TensorBased().
|
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.
Referenced by computeTensorDirection(), getNormModelResidual(), and TensorBased().
|
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.
Referenced by computeCurvilinearStep(), computeTensorDirection(), implementGlobalStrategy(), printUpdate(), and TensorBased().
|
protected |
Stopping test.
Referenced by printUpdate(), reset(), reset(), step(), and TensorBased().
|
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.
Referenced by computeTensorDirection(), performLinesearch(), and TensorBased().
|
protected |
Flag for using modifications that force quadratic to have real root.
Referenced by computeTensorDirection(), and reset().
|
protected |
Printing Utils.
Referenced by calculateBeta(), computeCurvilinearStep(), computeTensorDirection(), getNormModelResidual(), init(), performLinesearch(), printDirectionInfo(), printUpdate(), reset(), step(), throwError(), and ~TensorBased().