template<typename NLS, typename PF = ArcLength, typename ASS = AdaptiveStepSizing::NoOp>
requires (Impl::checkPathFollowingTemplates<NLS, PF, ASS>())
class Ikarus::PathFollowing< NLS, PF, ASS >
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
-
NLS | Type of the nonlinear solver used in the control routine. |
PF | Type of the path-following strategy. |
ASS | Type of the adaptive step sizing strategy. |