38 template <
typename NLS,
typename PF = ArcLength,
typename ASS>
39 consteval bool checkPathFollowingTemplates() {
40 return Concepts::PathFollowingStrategy<PF, typename NLS::NonLinearOperator, SubsidiaryArgs> and
41 Concepts::AdaptiveStepSizingStrategy<ASS, NonLinearSolverInformation, SubsidiaryArgs,
42 std::remove_cvref_t<typename NLS::NonLinearOperator>> and
43 Concepts::NonLinearSolverCheckForPathFollowing<NLS>;
77template <
typename NLS,
typename PF = ArcLength,
typename ASS = AdaptiveStepSizing::NoOp>
78requires(Impl::checkPathFollowingTemplates<NLS, PF, ASS>())
83 constexpr auto name()
const {
return std::string(
"Path following with " + pathFollowingType_.name()); }
94 ASS adaptiveStepSizing = {})
95 : nonLinearSolver_{nls},
98 pathFollowingType_{pathFollowingType},
99 adaptiveStepSizing_{adaptiveStepSizing} {}
106 ControlInformation run();
112 std::shared_ptr<NLS> nonLinearSolver_;
116 PF pathFollowingType_;
117 ASS adaptiveStepSizing_;
Contains the generic NonLinearOperatorFactory class.
Implementation of the run function.
Defines the ControlInformation structure for storing control results.
Contains the AdaptiveStepSizing namespace with strategies for adaptive step sizing.
Defines structures and methods related to subsidiary functions for control routines.
Contains the generic NonlinearSolverFactory class.
Enums for observer messages.
Implementation of the observer design pattern.
Definition: assemblermanipulatorbuildingblocks.hh:22
The PathFollowing control routine for path-following analysis.
Definition: pathfollowing.hh:80
NLS & nonlinearSolver()
Definition: pathfollowing.hh:109
constexpr auto name() const
The name of the PathFollowing method.
Definition: pathfollowing.hh:83
PathFollowing(const std::shared_ptr< NLS > &nls, int steps, double stepSize, PF pathFollowingType=ArcLength{}, ASS adaptiveStepSizing={})
Constructor for PathFollowing.
Definition: pathfollowing.hh:93
Structure representing the subsidiary function for the standard arc-length method.
Definition: pathfollowingfunctions.hh:67