version 0.4.4
Ikarus::ArcLength Struct Reference

Structure representing the subsidiary function for the standard arc-length method. More...

#include <ikarus/controlroutines/pathfollowingfunctions.hh>

Public Member Functions

template<typename NLS >
void operator() (typename NLS::Domain &req, NLS &nonlinearSolver, SubsidiaryArgs &args) const
 Evaluates the subsidiary function for the standard arc-length method. More...
 
template<typename NLS >
void initialPrediction (typename NLS::Domain &req, NLS &nonlinearSolver, SubsidiaryArgs &args)
 Performs the initial prediction for the standard arc-length method. More...
 
template<typename NLS >
void intermediatePrediction (typename NLS::Domain &req, NLS &nonlinearSolver, SubsidiaryArgs &args)
 Performs intermediate prediction for the standard arc-length method. More...
 
constexpr std::string name () const
 The name of the PathFollowing method. More...
 

Detailed Description

This structure provides methods to evaluate the subsidiary function, perform initial prediction, and perform intermediate prediction for the standard arc-length control method.

The equation for the arc length method reads

\[ f(\mathrm{D}\mathbf{D}, \mathrm{D} \lambda)= \sqrt{||\mathrm{D}\mathbf{D}||^2+ \psi^2 (\mathrm{D} \lambda)^2 }- \hat{s}, \]

where \(\mathrm{D}\mathbf{D}\) is the increment of the solution vector and \(\mathrm{D} \lambda\) is the load factor increment. \(\psi\) is the to-be-determined correction factor for the different dimensionalities between \(\mathrm{D}\mathbf{D}\) and \(\mathrm{D} \lambda\). The scalar \(\hat{s} \) defines the requested size of the step.

Member Function Documentation

◆ intermediatePrediction()

template<typename NLS >
void Ikarus::ArcLength::intermediatePrediction ( typename NLS::Domain &  req,
NLS &  nonlinearSolver,
SubsidiaryArgs args 
)
inline

This method updates the prediction step for the standard arc-length method.

Template Parameters
NLSType of the nonlinear solver.
Parameters
reqThe solution.
nonlinearSolverThe nonlinear solver.
argsThe subsidiary function arguments.

◆ name()

constexpr std::string Ikarus::ArcLength::name ( ) const
inlineconstexpr

◆ operator()()

template<typename NLS >
void Ikarus::ArcLength::operator() ( typename NLS::Domain &  req,
NLS &  nonlinearSolver,
SubsidiaryArgs args 
) const
inline

This method calculates the subsidiary function value and its derivatives for the given arguments and stores it in the given args structure.

Template Parameters
NLSType of the nonlinear solver.
Parameters
reqThe solution.
nonlinearSolverThe nonlinear solver.
argsThe subsidiary function arguments.

The documentation for this struct was generated from the following file: