|
void | integrate () override |
| start the integration of the system set by setSystem. Each class implemeting this function should call debugInit first. More...
|
|
void | preIntegrate () override |
|
void | subIntegrate (double tSamplePoint) override |
|
void | postIntegrate () override |
|
void | setInitialStepSize (double dt0_) |
| Set initial step size.
|
|
template<typename H = DOS, typename = EnableIfControlled<H>> |
void | setAbsoluteTolerance (double aTol_) |
| Set absolute tolerance.
|
|
template<typename H = DOS, typename = EnableIfControlled<H>> |
void | setRelativeTolerance (double rTol_) |
| Set relative tolerance.
|
|
template<typename H = DOS, typename = EnableIfControlled<H>> |
void | setMaximumStepSize (double dtMax_) |
| Set maximum step size.
|
|
void | initializeUsingXML (xercesc::DOMElement *element) override |
| initialize integrator More...
|
|
void | setRootFindingAccuracy (double dtRoot_) |
| Define the root-finding accuracy.
|
|
void | setPlotOnRoot (bool b) |
| Define wether to trigger a plot before and after each found root.
|
|
void | setToleranceForPositionConstraints (double gMax_) |
| Set the maximum allowed position drift.
|
|
void | setToleranceForVelocityConstraints (double gdMax_) |
| Set the maximum allowed velocity drift.
|
|
double | getToleranceForPositionConstraints () |
| Get the maximum allowed position drift.
|
|
double | getToleranceForVelocityConstraints () |
| Get the maximum allowed velocity drift.
|
|
virtual void | initializeUsingXML (xercesc::DOMElement *element) |
| initialize integrator More...
|
|
| Integrator () |
| constructor
|
|
| ~Integrator () override=default |
| destructor
|
|
void | setStartTime (double tStart_) |
|
void | setEndTime (double tEnd_) |
|
void | setPlotStepSize (double dtPlot_) |
|
void | setInitialState (const fmatvec::Vec &z0_) |
|
double | getStartTime () const |
|
double | getEndTime () const |
|
double | getPlotStepSize () const |
|
const fmatvec::Vec & | getInitialState () const override |
|
void | execute () override |
| start solving the dynamic system set by setSystem. More...
|
|
virtual void | integrate ()=0 |
| start the integration of the system set by setSystem. Each class implemeting this function should call debugInit first. More...
|
|
void | integrate (MBSim::DynamicSystemSolver &sys) |
| Convinent function: call setSystem(&sys) and integrate()
|
|
void | debugInit () |
|
virtual void | preIntegrate () |
|
virtual void | subIntegrate (double tStop) |
|
virtual void | postIntegrate () |
|
void | initializeUsingXML (xercesc::DOMElement *element) override |
| initialize integrator More...
|
|
| Solver () |
| constructor
|
|
| ~Solver () override=default |
| destructor
|
|
void | throwError (const std::string &msg) const |
|
virtual void | execute ()=0 |
| start solving the dynamic system set by setSystem. More...
|
|
virtual void | postprocessing () |
|
virtual void | initializeUsingXML (xercesc::DOMElement *element) |
|
virtual const fmatvec::Vec & | getInitialState () const =0 |
|
void | setSystem (DynamicSystemSolver *s) |
|
MBSim::DynamicSystemSolver * | getSystem () |
|
const MBXMLUtils::DOMEvalException & | getDOMEvalError () const |
|
|
const std::function< void(const typename DOS::state_type &, typename DOS::state_type &, const double)> | zdFunc {bind(&BoostOdeintDOS<DOS>::zd, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)} |
|
const std::function< void(const typename DOS::state_type &, boost::numeric::ublas::matrix< double > &c, const double, typename DOS::state_type &)> | jacFunc |
|
const BoostOdeintHelper::BoostOdeintSystem< typename DOS::SystemCategory, decltype(zdFunc), decltype(jacFunc)> | boostOdeintSystem {zdFunc, jacFunc} |
|
std::unique_ptr< DOS > | dos |
|
double | dt0 {1e-10} |
|
double | aTol {1e-6} |
|
double | rTol {1e-6} |
|
double | dtMax {0.1} |
|
double | tPlot |
|
size_t | plotSample |
|
DOS::state_type | zTemp |
|
fmatvec::Vec | zDisturbed |
|
size_t | nrSteps |
|
size_t | nrRHS |
|
size_t | nrJacs |
|
size_t | nrPlots |
|
size_t | nrSVs |
|
size_t | nrRoots |
|
size_t | nrDriftCorr |
|
double | dtRoot {1e-10} |
|
bool | plotOnRoot {false} |
|
double | gMax {-1} |
|
double | gdMax {-1} |
|
fmatvec::Vec | svLast |
|
bool | shift {false} |
|
double | tStart {0.} |
| start, end, plot time
|
|
double | tEnd {1.} |
|
double | dtPlot {1e-4} |
|
fmatvec::Vec | z0 |
| initial state
|
|
std::string | name |
| name of integrator
|
|
MBSim::DynamicSystemSolver * | system |
| dynamic system
|
|
MBXMLUtils::DOMEvalException | domEvalError |
| Special XML helper variable.
|
|
template<typename DOS>
class MBSim::BoostOdeintDOS< DOS >
Integrator based on any Boost odeint dense output stepper. DOS must conform to the following concept:
- must be a valid boost odeint dense output stepper
- SystemCategory must be a typedef of either ExplicitSystemTag or ImplicitSystemTag
- UnderlayingStepperCategory must be a typedef of the underlaying stepper category
- DOS(double aTol, double rTol, double dtMax) must be a valid constructor