|
Public Member Functions |
Static Public Member Functions |
Protected Member Functions |
Protected Attributes |
List of all members
Opm::TpsaNewtonMethod< TypeTag > Class Template Reference Newton method solving for generic TPSA model. More...
Detailed Descriptiontemplate<class TypeTag> class Opm::TpsaNewtonMethod< TypeTag > Newton method solving for generic TPSA model. Generates the Jacobian matrix, J(u^n) and residual vector, R(u^n), with a solution vector, u^n, at iteration n. Subsequently the linear system J(u^n)\delta u^n = -R(u^n) is solved to get u^{n+1} = u^n + \Delta u^n. By default only a single iteration is done to solve the linear elasticity system. Note that, in this case, only linear solver convergence is checked, and Newton error is only used to check if the linearization step produced a low enough residual to jump out before a linear solve. Constructor & Destructor Documentation◆ TpsaNewtonMethod()
template<class TypeTag >
Constructor.
References Opm::TpsaNewtonMethod< TypeTag >::params_. Member Function Documentation◆ apply()
template<class TypeTag >
Run the Newton method.
References Opm::TpsaNewtonMethod< TypeTag >::begin_(), Opm::TpsaNewtonMethod< TypeTag >::beginIteration_(), Opm::TpsaNewtonMethod< TypeTag >::converged(), Opm::TpsaNewtonMethod< TypeTag >::endIteration_(), Opm::TpsaNewtonMethod< TypeTag >::error_, Opm::TpsaNewtonMethod< TypeTag >::failed_(), Opm::Timer::halt(), Opm::TpsaNewtonMethod< TypeTag >::linearizeDomain_(), Opm::TpsaNewtonMethod< TypeTag >::linearizeTimer_, Opm::TpsaNewtonMethod< TypeTag >::linearSolver_, Opm::TpsaNewtonMethod< TypeTag >::model(), Opm::TpsaNewtonMethod< TypeTag >::numIterations(), Opm::TpsaNewtonMethod< TypeTag >::numLinearizations(), Opm::TpsaNewtonMethod< TypeTag >::numTotLinearIterations(), Opm::TpsaNewtonMethod< TypeTag >::numTotLinearIterations_, Opm::TpsaNewtonMethod< TypeTag >::prePostProcessTimer_, Opm::TpsaNewtonMethod< TypeTag >::preSolve_(), Opm::TpsaNewtonMethod< TypeTag >::proceed_(), Opm::Timer::realTimeElapsed(), Opm::TpsaNewtonMethod< TypeTag >::singleIteration_(), Opm::TpsaNewtonMethod< TypeTag >::solveTimer_, Opm::Timer::start(), Opm::Timer::stop(), Opm::TpsaNewtonMethod< TypeTag >::update_(), Opm::TpsaNewtonMethod< TypeTag >::updateTimer_, and Opm::TpsaNewtonMethod< TypeTag >::verbosity_(). ◆ begin_()
template<class TypeTag >
Called before the Newton method is applied to an non-linear system of equations. References Opm::TpsaNewtonMethod< TypeTag >::error_, Opm::TpsaNewtonMethod< TypeTag >::initialError_, Opm::TpsaNewtonMethod< TypeTag >::numIterations_, Opm::TpsaNewtonMethod< TypeTag >::numLinearizations_, and Opm::TpsaNewtonMethod< TypeTag >::numTotLinearIterations_. Referenced by Opm::TpsaNewtonMethod< TypeTag >::apply(). ◆ beginIteration_()
template<class TypeTag >
Calculations at the beginning of a Newton iteration. References Opm::TpsaNewtonMethod< TypeTag >::error_, and Opm::TpsaNewtonMethod< TypeTag >::lastError_. Referenced by Opm::TpsaNewtonMethod< TypeTag >::apply(). ◆ converged()
template<class TypeTag >
Returns true if the error of the solution is below the tolerance.
References Opm::TpsaNewtonMethod< TypeTag >::error_, and Opm::TpsaNewtonMethod< TypeTag >::tolerance(). Referenced by Opm::TpsaNewtonMethod< TypeTag >::apply(), and Opm::TpsaNewtonMethod< TypeTag >::proceed_(). ◆ endIteration_()
template<class TypeTag >
Indicates that one Newton iteration was finished. References Opm::TpsaNewtonMethod< TypeTag >::error_, Opm::TpsaNewtonMethod< TypeTag >::numIterations_, Opm::to_string(), and Opm::TpsaNewtonMethod< TypeTag >::verbosity_(). Referenced by Opm::TpsaNewtonMethod< TypeTag >::apply(). ◆ failed_()
template<class TypeTag >
Called if the Newton method broke down. Referenced by Opm::TpsaNewtonMethod< TypeTag >::apply(). ◆ initialError()
template<class TypeTag >
Returns the error of the first linearization of the last apply().
References Opm::TpsaNewtonMethod< TypeTag >::initialError_. ◆ initiallyConverged()
template<class TypeTag >
Returns true if the state handed to the last apply() already solved the system.
References Opm::TpsaNewtonMethod< TypeTag >::initialError_, and Opm::TpsaNewtonMethod< TypeTag >::tolerance(). ◆ linearizeDomain_()
template<class TypeTag >
Linearize the global non-linear system of equations associated with the spatial domain. References Opm::TpsaNewtonMethod< TypeTag >::model(), and Opm::TpsaNewtonMethod< TypeTag >::numLinearizations_. Referenced by Opm::TpsaNewtonMethod< TypeTag >::apply(). ◆ linearizeTimer()
template<class TypeTag >
Return linearization timer.
References Opm::TpsaNewtonMethod< TypeTag >::linearizeTimer_. ◆ linearSolver() [1/2]
template<class TypeTag >
Returns the linear solver backend object for external use.
References Opm::TpsaNewtonMethod< TypeTag >::linearSolver_. ◆ linearSolver() [2/2]
template<class TypeTag >
Returns the linear solver backend object for external use.
References Opm::TpsaNewtonMethod< TypeTag >::linearSolver_. ◆ minIterations()
template<class TypeTag >
Returns minimum number of Newton iterations used.
References Opm::TpsaNewtonMethod< TypeTag >::params_. ◆ model() [1/2]
template<class TypeTag >
Returns a reference to the geomechanics model.
References Opm::TpsaNewtonMethod< TypeTag >::simulator_. Referenced by Opm::TpsaNewtonMethod< TypeTag >::apply(), Opm::TpsaNewtonMethod< TypeTag >::linearizeDomain_(), Opm::TpsaNewtonMethod< TypeTag >::preSolve_(), and Opm::TpsaNewtonMethod< TypeTag >::update_(). ◆ model() [2/2]
template<class TypeTag >
Returns a reference to the geomechanics model.
References Opm::TpsaNewtonMethod< TypeTag >::simulator_. ◆ numIterations()
template<class TypeTag >
Returns the number of iterations done since the Newton method was invoked.
References Opm::TpsaNewtonMethod< TypeTag >::numIterations_. Referenced by Opm::TpsaNewtonMethod< TypeTag >::apply(), and Opm::TpsaNewtonMethod< TypeTag >::proceed_(). ◆ numLinearizations()
template<class TypeTag >
Returns the number of linearizations that has done since the Newton method was invoked.
References Opm::TpsaNewtonMethod< TypeTag >::numLinearizations_. Referenced by Opm::TpsaNewtonMethod< TypeTag >::apply(). ◆ numTotLinearIterations()
template<class TypeTag >
Returns the number of linear solver iterations done since the Newton method was invoked.
References Opm::TpsaNewtonMethod< TypeTag >::numTotLinearIterations_. Referenced by Opm::TpsaNewtonMethod< TypeTag >::apply(). ◆ prePostProcessTimer()
template<class TypeTag >
Return post-process timer.
References Opm::TpsaNewtonMethod< TypeTag >::prePostProcessTimer_. ◆ preSolve_()
template<class TypeTag >
Compute error before a Newton iteration.
References Opm::TpsaNewtonMethod< TypeTag >::error_, Opm::TpsaNewtonMethod< TypeTag >::initialError_, Opm::TpsaNewtonMethod< TypeTag >::lastError_, Opm::TpsaNewtonMethod< TypeTag >::model(), Opm::TpsaNewtonMethod< TypeTag >::numLinearizations_, Opm::TpsaNewtonMethod< TypeTag >::params_, Opm::TpsaNewtonMethod< TypeTag >::simulator_, and Opm::to_string(). Referenced by Opm::TpsaNewtonMethod< TypeTag >::apply(). ◆ problem() [1/2]
template<class TypeTag >
Returns a reference to the object describing the current physical problem.
References Opm::TpsaNewtonMethod< TypeTag >::simulator_. ◆ problem() [2/2]
template<class TypeTag >
Returns a reference to the object describing the current physical problem.
References Opm::TpsaNewtonMethod< TypeTag >::simulator_. ◆ proceed_()
template<class TypeTag >
Returns true iff another Newton iteration should be done.
References Opm::TpsaNewtonMethod< TypeTag >::converged(), Opm::TpsaNewtonMethod< TypeTag >::error_, Opm::TpsaNewtonMethod< TypeTag >::lastError_, Opm::TpsaNewtonMethod< TypeTag >::numIterations(), Opm::TpsaNewtonMethod< TypeTag >::params_, and Opm::TpsaNewtonMethod< TypeTag >::singleIteration_(). Referenced by Opm::TpsaNewtonMethod< TypeTag >::apply(). ◆ registerParameters()
template<class TypeTag >
Register all run-time parameters for the Newton method. References Opm::TpsaNewtonMethodParams< Scalar >::registerParameters(). ◆ singleIteration_()
template<class TypeTag >
Whether the Newton method is limited to a single iteration.
If the elasticity system is linear, a single solve is exact and more than one Newton error is unnecessary. References Opm::TpsaNewtonMethod< TypeTag >::params_. Referenced by Opm::TpsaNewtonMethod< TypeTag >::apply(), and Opm::TpsaNewtonMethod< TypeTag >::proceed_(). ◆ solveTimer()
template<class TypeTag >
Return linear solver timer.
References Opm::TpsaNewtonMethod< TypeTag >::solveTimer_. ◆ tolerance()
template<class TypeTag >
Return the current tolerance at which the Newton method considers itself to be converged.
References Opm::TpsaNewtonMethod< TypeTag >::params_. Referenced by Opm::TpsaNewtonMethod< TypeTag >::converged(), and Opm::TpsaNewtonMethod< TypeTag >::initiallyConverged(). ◆ update_()
template<class TypeTag >
Update the current solution with a delta vector.
Different update strategies, such as chopped updates can be implemented by overriding this method. The default behavior is use the standard Newton-Raphson update strategy, i.e. u^{n+1} = u^n - \Delta u^n References Opm::TpsaNewtonMethod< TypeTag >::model(), and Opm::TpsaNewtonMethod< TypeTag >::updatePrimaryVariables_(). Referenced by Opm::TpsaNewtonMethod< TypeTag >::apply(). ◆ updatePrimaryVariables_()
template<class TypeTag >
Update a single primary variables object.
Referenced by Opm::TpsaNewtonMethod< TypeTag >::update_(). ◆ updateTimer()
template<class TypeTag >
Return solution update timer.
References Opm::TpsaNewtonMethod< TypeTag >::updateTimer_. ◆ verbosity_()
template<class TypeTag >
Verbosity level of Newton print messages.
Newton procedure verbosity: 0=none, 1=basic, 2=all References Opm::TpsaNewtonMethod< TypeTag >::params_, and Opm::TpsaNewtonMethod< TypeTag >::simulator_. Referenced by Opm::TpsaNewtonMethod< TypeTag >::apply(), and Opm::TpsaNewtonMethod< TypeTag >::endIteration_(). Member Data Documentation◆ error_
template<class TypeTag >
Referenced by Opm::TpsaNewtonMethod< TypeTag >::apply(), Opm::TpsaNewtonMethod< TypeTag >::begin_(), Opm::TpsaNewtonMethod< TypeTag >::beginIteration_(), Opm::TpsaNewtonMethod< TypeTag >::converged(), Opm::TpsaNewtonMethod< TypeTag >::endIteration_(), Opm::TpsaNewtonMethod< TypeTag >::preSolve_(), and Opm::TpsaNewtonMethod< TypeTag >::proceed_(). ◆ initialError_
template<class TypeTag >
◆ lastError_
template<class TypeTag >
◆ linearizeTimer_
template<class TypeTag >
◆ linearSolver_
template<class TypeTag >
◆ numIterations_
template<class TypeTag >
◆ numLinearizations_
template<class TypeTag >
◆ numTotLinearIterations_
template<class TypeTag >
◆ params_
template<class TypeTag >
Referenced by Opm::TpsaNewtonMethod< TypeTag >::minIterations(), Opm::TpsaNewtonMethod< TypeTag >::preSolve_(), Opm::TpsaNewtonMethod< TypeTag >::proceed_(), Opm::TpsaNewtonMethod< TypeTag >::singleIteration_(), Opm::TpsaNewtonMethod< TypeTag >::tolerance(), Opm::TpsaNewtonMethod< TypeTag >::TpsaNewtonMethod(), and Opm::TpsaNewtonMethod< TypeTag >::verbosity_(). ◆ prePostProcessTimer_
template<class TypeTag >
◆ simulator_
template<class TypeTag >
◆ solveTimer_
template<class TypeTag >
◆ updateTimer_
template<class TypeTag >
The documentation for this class was generated from the following file: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||