version 0.4.4
Ikarus::DisplacementControl Struct Reference

Structure representing the subsidiary function for the displacement control method. More...

#include <ikarus/controlroutines/pathfollowingfunctions.hh>

Public Member Functions

 DisplacementControl (std::vector< int > p_controlledIndices)
 Constructor for DisplacementControl. More...
 
template<typename NLS >
void operator() (typename NLS::Domain &req, NLS &nonlinearSolver, SubsidiaryArgs &args) const
 Evaluates the subsidiary function for the displacement control method. More...
 
template<typename NLS >
void initialPrediction (typename NLS::Domain &req, NLS &nonlinearSolver, SubsidiaryArgs &args)
 Performs initial prediction for the displacement control method. More...
 
template<typename NLS >
void intermediatePrediction (typename NLS::Domain &req, NLS &nonlinearSolver, SubsidiaryArgs &args)
 Performs intermediate prediction for the displacement control method. More...
 
constexpr std::string name () const
 The name of the PathFollowing method. More...
 

Detailed Description

The equation for the load control method reads

\[ f(\mathrm{D}\mathbf{D}, \mathrm{D} \lambda)= ||\mathrm{D}\mathbf{D}|| - \hat{s}, \]

where \(\mathrm{D}\mathbf{D}\) is the increment of the solution vector and \(\mathrm{D} \lambda\) is the load factor increment. The scalar \(\hat{s} \) defines the requested size of the step.

Constructor & Destructor Documentation

◆ DisplacementControl()

Ikarus::DisplacementControl::DisplacementControl ( std::vector< int >  p_controlledIndices)
inlineexplicit
Parameters
p_controlledIndicesVector containing the indices of the controlled degrees of freedom.

Member Function Documentation

◆ initialPrediction()

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

This method initializes the prediction step for the displacement control method.

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

◆ intermediatePrediction()

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

This method updates the prediction step for the displacement control method.

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

◆ name()

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

◆ operator()()

template<typename NLS >
void Ikarus::DisplacementControl::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.

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: