| 
| constexpr auto  | name () const | 
|   | The name of the PathFollowing method.  More...
  | 
|   | 
|   | PathFollowing (const std::shared_ptr< NonLinearSolver > &p_nonLinearSolver, int steps, double stepSize, PathFollowingType p_pathFollowingType=ArcLength{}, AdaptiveStepSizing p_adaptiveStepSizing={}) | 
|   | Constructor for PathFollowing.  More...
  | 
|   | 
| ControlInformation  | run () | 
|   | Executes the PathFollowing routine.  More...
  | 
|   | 
| void  | subscribe (ControlMessages message, std::shared_ptr< IObserver< ControlMessages > > observer) | 
|   | Subscribe an observer to receive notifications for a specific message type.  More...
  | 
|   | 
| void  | subscribeAll (std::shared_ptr< IObserver< ControlMessages > > observer) | 
|   | Subscribe an observer to receive notifications for all message types.  More...
  | 
|   | 
| void  | subscribeAll (std::initializer_list< std::shared_ptr< IObserver< ControlMessages > > > observers) | 
|   | Subscribe multiple observers to receive notifications for all message types.  More...
  | 
|   | 
| void  | unSubscribe (ControlMessages message, std::shared_ptr< IObserver< ControlMessages > > observer) | 
|   | Unsubscribe an observer from receiving notifications for a specific message type.  More...
  | 
|   | 
| void  | unSubscribeAll (std::shared_ptr< IObserver< ControlMessages > > observer) | 
|   | Unsubscribe an observer from receiving notifications for all message types.  More...
  | 
|   | 
| void  | notify (ControlMessages message) | 
|   | Notify observers about a specific message type.  More...
  | 
|   | 
| void  | notify (ControlMessages message, ScalarType val) | 
|   | Notify observers about a specific message type with a floating-point value.  More...
  | 
|   | 
| void  | notify (ControlMessages message, int val) | 
|   | Notify observers about a specific message type with an integer value.  More...
  | 
|   | 
| void  | notify (ControlMessages message, const std::string &val) | 
|   | Notify observers about a specific message type with a string value.  More...
  | 
|   | 
| void  | notify (ControlMessages message, int val1, double val2) | 
|   | Notify observers about a specific message type with an integer and a double value.  More...
  | 
|   | 
| void  | notify (ControlMessages 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 (ControlMessages message, Eigen::VectorX< ScalarType > vec) | 
|   | Notify observers about a specific message type with an Eigen::VectorX.  More...
  | 
|   | 
template<typename NonLinearSolver, typename PathFollowingType = ArcLength, typename AdaptiveStepSizing = AdaptiveStepSizing::NoOp>
requires ( Impl::checkPathFollowingTemplates<NonLinearSolver, PathFollowingType, AdaptiveStepSizing>())
class Ikarus::PathFollowing< NonLinearSolver, PathFollowingType, AdaptiveStepSizing >
This class represents the PathFollowing control routine, which utilizes a nonlinear solver, such as Newton's method with scalar subsidiary function, which has to be fulfilled for solving the system along a predefined path.
Consider a non-linear system of equations 
\[\mathbf{R}: \require{cases}\begin{cases}\mathbb{R}^n \times \mathbb{R} &\rightarrow \mathbb{R}^n
\\ (\mathbf{D},\lambda)
&\mapsto \mathbf{R}(\mathbf{D},\lambda) \end{cases}.\]
Then in each step \(k+1\) of the path following algorithm, the following problem is solved 
\[ \begin{align}
\mathbf{R}(\mathbf{D}_k+ \mathrm{D}\mathbf{D}, \lambda_k+ \mathrm{D} \lambda) &= \mathbf{0} \\
f(\mathrm{D}\mathbf{D}, \mathrm{D} \lambda) &= 0 \end{align} \]
where \(\mathrm{D}\mathbf{D}\) is the increment of the solution vector and \(\mathrm{D} \lambda\) is the load factor increment. The subsidiary function \(f\) is provided by the user and needs to fulfill the concept Concepts::PathFollowingStrategy. This subsidiary function makes the given problem well-posed.
Currently the following subsidiary functions are implemented LoadControlSubsidiaryFunction, ArcLength and DisplacementControl
- Template Parameters
 - 
  
    | NonLinearSolver | Type of the nonlinear solver used in the control routine.  | 
    | PathFollowingType | Type of the path-following strategy.  | 
    | AdaptiveStepSizing | Type of the adaptive step sizing strategy.  |