The LoadControl control routine increases the parameter of the fe requirements given in run function and solves the corresponding differentiable function f for its root and calls a nonlinear solver. controlroutines This class represents the LoadControl control routine. It increments the parameter of the fe requirement and utilizes a nonlinear solver, such as Newton's method, to solve the resulting system at each step. More...
#include <ikarus/controlroutines/loadcontrol.hh>
Public Types | |
| using | State = ControlRoutineStateType< NLS::DifferentiableFunction > |
| using | MessageType = ControlMessages |
| using | Callback = std::function< void(ControlMessages, const State &)> |
| using | Token = std::shared_ptr< Callback > |
Public Member Functions | |
| constexpr std::string | name () const |
| The name of the LoadControl method. More... | |
| LoadControl (const std::shared_ptr< NLS > &nonLinearSolver, int loadSteps, const std::array< double, 2 > &tbeginEnd) | |
| Constructor for LoadControl. More... | |
| ControlInformation | run (typename NLS::Domain &x) |
| Executes the LoadControl routine. More... | |
| NLS & | nonLinearSolver () |
| Token | registerListener (Callback callback) |
| This method is used to register a Listener function. More... | |
| void | unregisterListener (Token token) |
| deregisters a specific function More... | |
| void | notify (ControlMessages message, const State &data) |
| This calls all the registered functions. More... | |
| NLS | Type of the nonlinear solver used in the control routine. |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inline |
| nonLinearSolver | Shared pointer to the nonlinear solver. |
| loadSteps | Number of load steps in the control routine. |
| tbeginEnd | Array representing the range of load parameters [tbegin, tend]. |
|
inlineconstexpr |
|
inline |
|
inlineinherited |
|
inlineinherited |
The function that is passed in is first stored in a shared_ptr. After this, the shared_ptr is added to the vector of listener functions, which leads to a implicit conversion to a weak_ptr. The shared_ptr is then returned to the Listener that has called this function to be stored in a vector of shared_ptr<void> listener.hh.
| callback | the callback function |
| ControlInformation Ikarus::LoadControl< NLS >::run | ( | typename NLS::Domain & | x | ) |
| x | The solution. |
|
inlineinherited |