29 template <
typename NonLinearSolver>
33 constexpr auto name()
const {
return std::string(
"Load Control Method"); }
42 LoadControl(
const std::shared_ptr<NonLinearSolver>& nonLinearSolver_,
int loadSteps,
43 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;
54 "The last parameter (load factor) must be assignable and incrementable with a double!");
65 std::shared_ptr<NonLinearSolver> nonLinearSolver;
67 double parameterBegin_;
Enums for observer messages.
Implementation of the observer design pattern.
Implementation of the run function.
Defines the ControlInformation structure for storing control results.
Definition: simpleassemblers.hh:21
Structure containing information about the control results.
Definition: controlinfos.hh:20
The LoadControl control routine increases the last parameter of a nonlinear operator and calls a nonl...
Definition: loadcontrol.hh:30
LoadControl(const std::shared_ptr< NonLinearSolver > &nonLinearSolver_, int loadSteps, const std::array< double, 2 > &tbeginEnd)
Constructor for LoadControl.
Definition: loadcontrol.hh:42
constexpr auto name() const
The name of the LoadControl method.
Definition: loadcontrol.hh:33
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:125