|
template<typename LS2 = LS, typename UF2 = UF> |
| NewtonRaphsonWithSubsidiaryFunction (const NLO &nonLinearOperator, LS2 &&linearSolver={}, UF2 &&updateFunction={}) |
| Constructor for NewtonRaphsonWithSubsidiaryFunction. More...
|
|
void | setup (const Settings &settings) |
| Setup the Newton-Raphson solver with subsidiary function. More...
|
|
template<typename SolutionType = NoPredictor, typename SubsidiaryType >
requires std::is_same_v<SolutionType, NoPredictor> || std::is_convertible_v<SolutionType, std::remove_cvref_t<typename NLO::ValueType>> |
NonLinearSolverInformation | solve (SubsidiaryType &&subsidiaryFunction, SubsidiaryArgs &subsidiaryArgs, const SolutionType &dxPredictor=NoPredictor{}) |
| Solve the nonlinear system using the Newton-Raphson method with subsidiary function. More...
|
|
auto & | nonLinearOperator () |
| Access the nonlinear operator. More...
|
|
void | subscribe (NonLinearSolverMessages message, std::shared_ptr< IObserver< NonLinearSolverMessages > > observer) |
| Subscribe an observer to receive notifications for a specific message type. More...
|
|
void | subscribeAll (std::shared_ptr< IObserver< NonLinearSolverMessages > > observer) |
| Subscribe an observer to receive notifications for all message types. More...
|
|
void | subscribeAll (std::initializer_list< std::shared_ptr< IObserver< NonLinearSolverMessages > > > observers) |
| Subscribe multiple observers to receive notifications for all message types. More...
|
|
void | unSubscribe (NonLinearSolverMessages message, std::shared_ptr< IObserver< NonLinearSolverMessages > > observer) |
| Unsubscribe an observer from receiving notifications for a specific message type. More...
|
|
void | unSubscribeAll (std::shared_ptr< IObserver< NonLinearSolverMessages > > observer) |
| Unsubscribe an observer from receiving notifications for all message types. More...
|
|
void | notify (NonLinearSolverMessages message) |
| Notify observers about a specific message type. More...
|
|
void | notify (NonLinearSolverMessages message, ScalarType val) |
| Notify observers about a specific message type with a floating-point value. More...
|
|
void | notify (NonLinearSolverMessages message, int val) |
| Notify observers about a specific message type with an integer value. More...
|
|
void | notify (NonLinearSolverMessages message, const std::string &val) |
| Notify observers about a specific message type with a string value. More...
|
|
void | notify (NonLinearSolverMessages message, int val1, double val2) |
| Notify observers about a specific message type with an integer and a double value. More...
|
|
void | notify (NonLinearSolverMessages message, int val1, const std::string &val2) |
| Notify observers about a specific message type with an integer value and a string value. More...
|
|
void | notify (NonLinearSolverMessages message, Eigen::VectorX< ScalarType > vec) |
| Notify observers about a specific message type with an Eigen::VectorX. More...
|
|
void | notify (MT message) |
|
void | notify (MT message, ScalarType val) |
|
void | notify (MT message, int val) |
|
void | notify (MT message, const std::string &val) |
|
void | notify (MT message, int val1, double val2) |
|
void | notify (MT message, int val1, const std::string &val2) |
|
void | notify (MT message, Eigen::VectorX< ScalarType > vec) |
|
template<typename NLO, typename LS, typename UF>
class Ikarus::NewtonRaphsonWithSubsidiaryFunction< NLO, LS, UF >
This class provides a Newton-Raphson solver for solving nonlinear systems with a subsidiary function. It uses a linear solver to handle the linear system arising in each iteration.
- Template Parameters
-
NLO | Type of the nonlinear operator. |
LS | Type of the linear solver used internally (default is SolverDefault). |
UF | Type of the update function (default is UpdateDefault). |
template<typename NLO , typename LS , typename UF >
template<typename SolutionType = NoPredictor, typename SubsidiaryType >
requires std::is_same_v<SolutionType, NoPredictor> || std::is_convertible_v<SolutionType, std::remove_cvref_t<typename NLO::ValueType>>
- Template Parameters
-
SolutionType | Type of the solution predictor (default is NoPredictor). |
SubsidiaryType | Type of the subsidiary function. |
- Parameters
-
subsidiaryFunction | Subsidiary function to be solved. |
subsidiaryArgs | Additional arguments for the subsidiary function. |
dxPredictor | Predictor for the solution increment (default is NoPredictor). |
- Returns
- Information about the solution process.
Initializations
Determine Fext0 It is assumed that Fext = Fext0 * lambda such that dRdlambda = Fext0 Generalization for Fext0 = Fext0(lambda) is not implemented
Iterative solving scheme
Two-step solving procedure