29template <
typename NLS>
34 constexpr auto name()
const {
return std::string(
"Load Control Method"); }
43 LoadControl(
const std::shared_ptr<NLS>& nonLinearSolver,
int loadSteps,
const std::array<double, 2>& tbeginEnd)
44 : nonLinearSolver_{nonLinearSolver},
45 loadSteps_{loadSteps},
46 parameterBegin_{tbeginEnd[0]},
47 parameterEnd_{tbeginEnd[1]},
48 stepSize_{(parameterEnd_ - parameterBegin_) / loadSteps_} {
51 nonLinearSolver_->nonLinearOperator().lastParameter() = 0.0;
52 nonLinearSolver_->nonLinearOperator().lastParameter() += 0.0;
53 },
"The last parameter (load factor) must be assignable and incrementable with a double!");
67 std::shared_ptr<NLS> nonLinearSolver_;
69 double parameterBegin_;
Implementation of the run function.
Defines the ControlInformation structure for storing control results.
Enums for observer messages.
Implementation of the observer design pattern.
Definition: assemblermanipulatorbuildingblocks.hh:22
Structure containing information about the control results.
Definition: controlinfos.hh:21
The LoadControl control routine increases the last parameter of a nonlinear operator and calls a nonl...
Definition: loadcontrol.hh:31
LoadControl(const std::shared_ptr< NLS > &nonLinearSolver, int loadSteps, const std::array< double, 2 > &tbeginEnd)
Constructor for LoadControl.
Definition: loadcontrol.hh:43
constexpr auto name() const
The name of the LoadControl method.
Definition: loadcontrol.hh:34
NLS & nonlinearSolver()
Definition: loadcontrol.hh:64
ControlInformation run()
Executes the LoadControl routine.
Definition: loadcontrol.inl:14
Generic observable interface for the Observer design pattern. See for a description of the design pa...
Definition: observer.hh:129