|
int | getArgSize () const |
|
std::pair< int, int > | getRetSize () const |
|
void | init (Element::InitStage stage, const InitConfigSet &config=InitConfigSet()) |
| plots time series header More...
|
|
void | calculateSpline () |
|
void | reset () |
|
Ret | operator() (const Arg &x) |
|
fmatvec::Der< Ret, Arg >::type | parDer (const Arg &x) |
|
fmatvec::Der< Ret, Arg >::type | parDerDirDer (const Arg &argDir, const Arg &arg) |
|
fmatvec::VecV | getBreaks () |
|
void | setInterpolationMethod (InterpolationMethod method_) |
| set interpolation More...
|
|
void | setExtrapolationMethod (ExtrapolationMethod method_) |
|
void | setx (const fmatvec::VecV &x_) |
|
void | sety (const fmatvec::MatV &y_) |
|
void | setxy (const fmatvec::MatV &xy) |
|
void | setCoefficientsArray (const std::vector< fmatvec::MatV > &allCoefs) |
| set polynomial coefficients More...
|
|
void | addCoefficients (const fmatvec::MatV &coef) |
|
void | setBreaks (const fmatvec::VecV &breaks_u) |
| set interval boundaries More...
|
|
virtual void | initializeUsingXML (xercesc::DOMElement *element) |
| initialize function with XML code More...
|
|
| Function () |
|
void | initializeUsingXML (xercesc::DOMElement *element) override |
|
| FunctionBase () |
|
virtual Element * | getDependency () const |
|
| Element (const std::string &name) |
| constructor
|
|
| ~Element () override=default |
| destructor
|
|
void | throwError (const std::string &msg) const |
|
virtual void | setDynamicSystemSolver (DynamicSystemSolver *sys) |
| sets the used dynamics system solver to the element More...
|
|
virtual void | plot () |
| plots time dependent data More...
|
|
virtual void | plotAtSpecialEvent () |
| plots time dependent data at special events More...
|
|
const std::string & | getName () const |
|
void | setName (const std::string &str) |
|
void | setPath (const std::string &str) |
|
DynamicSystemSolver * | getDynamicSystemSolver () |
|
virtual void | init (InitStage stage, const InitConfigSet &config=InitConfigSet()) |
| plots time series header More...
|
|
virtual void | createPlotGroup () |
| creates the plotGroup for H5-output More...
|
|
H5::GroupBase * | getPlotGroup () |
|
virtual H5::GroupBase * | getFramesPlotGroup () |
|
virtual H5::GroupBase * | getContoursPlotGroup () |
|
virtual H5::GroupBase * | getGroupsPlotGroup () |
|
virtual H5::GroupBase * | getObjectsPlotGroup () |
|
virtual H5::GroupBase * | getLinksPlotGroup () |
|
virtual H5::GroupBase * | getConstraintsPlotGroup () |
|
virtual H5::GroupBase * | getObserversPlotGroup () |
|
bool | getPlotFeature (const PlotFeatureEnum &pf) |
|
virtual void | setPlotFeature (const PlotFeatureEnum &pf, bool value) |
| Set a plot feature. More...
|
|
void | setPlotFeatureForChildren (const PlotFeatureEnum &pf, bool value) |
| Set a plot feature for the children of this object. More...
|
|
void | setPlotFeatureRecursive (const PlotFeatureEnum &pf, bool value) |
| Set a plot feature for this object and the children of this object. More...
|
|
template<class T > |
void | setPlotAttribute (const std::string &name, const T &value) |
| Set a plot attribute: static data attached as key/value pairs to the plot datasets/groups.
|
|
void | setPlotAttribute (const std::string &name) |
|
virtual void | initializeUsingXML (xercesc::DOMElement *element) |
|
template<class T > |
T * | getByPath (const std::string &path, bool initialCaller=true) const |
| Get the object of type T represented by the path path. Do not set any argurment other than path!
|
|
std::string | getPath (const Element *relTo=nullptr, std::string sep="/") const |
| Return the path of this object. If relativeTo is not NULL return a relative path to relativeTo. Do not set any argurment other than relTo and sep!
|
|
virtual Element * | getChildByContainerAndName (const std::string &container, const std::string &name) const |
| Get the Element named name in the container named container. More...
|
|
virtual std::shared_ptr< OpenMBV::Group > | getOpenMBVGrp () |
|
virtual std::shared_ptr< OpenMBV::Group > | getFramesOpenMBVGrp () |
|
virtual std::shared_ptr< OpenMBV::Group > | getContoursOpenMBVGrp () |
|
virtual std::shared_ptr< OpenMBV::Group > | getGroupsOpenMBVGrp () |
|
virtual std::shared_ptr< OpenMBV::Group > | getObjectsOpenMBVGrp () |
|
virtual std::shared_ptr< OpenMBV::Group > | getLinksOpenMBVGrp () |
|
virtual std::shared_ptr< OpenMBV::Group > | getConstraintsOpenMBVGrp () |
|
virtual std::shared_ptr< OpenMBV::Group > | getObserversOpenMBVGrp () |
|
virtual Element * | getParent () |
|
virtual const Element * | getParent () const |
|
virtual void | setParent (Element *parent_) |
|
std::vector< Element * > | getDependencies () const |
| checks dependency on other elements. More...
|
|
void | addDependency (Element *ele) |
|
int | computeLevel () |
| computes the length of the pathes in the graph that represents the dependencies between all elements. More...
|
|
virtual void | updatePositions (Frame *frame) |
|
virtual void | updateVelocities (Frame *frame) |
|
virtual void | updateAccelerations (Frame *frame) |
|
virtual void | updateJacobians (Frame *frame, int j=0) |
|
virtual void | updateGyroscopicAccelerations (Frame *frame) |
|
virtual void | resetUpToDate () |
|
const double & | getTime () const |
|
double | getStepSize () const |
|
const MBXMLUtils::DOMEvalException & | getDOMEvalError () const |
|
|
std::vector< fmatvec::MatV > | coefs |
| vector of polynomial coefficents
|
|
fmatvec::VecV | breaks |
| vector of breaks (interval boundaries)
|
|
int | nPoly |
| number of defined piecewise polynomials
|
|
int | order |
| order of polynomial (3 for cubic polynomials)
|
|
int | index |
| for internal use in ppeval functions
|
|
fmatvec::VecV | x |
|
fmatvec::MatV | y |
|
InterpolationMethod | interpolationMethod |
| interpolation interpolationMethod
|
|
ExtrapolationMethod | extrapolationMethod |
|
Element * | parent { nullptr } |
|
std::string | name |
| name of element
|
|
std::string | path |
| The path of this object. Is set during the init stage reorganizeHierarchy. Before this the path is calculated dynamically using getPath() after this stage getPath just returns this value.
|
|
MBXMLUtils::DOMEvalException | domEvalError |
| Special XML helper variable.
|
|
DynamicSystemSolver * | ds { nullptr } |
| dynamic system
|
|
H5::VectorSerie< double > * | plotVectorSerie { nullptr } |
| time series
|
|
std::vector< double > | plotVector |
| one entry of time series
|
|
std::vector< std::string > | plotColumns |
| columns of time series
|
|
H5::GroupBase * | plotGroup { nullptr } |
| associated plot group
|
|
std::vector< Element * > | dependency |
| vector containing all dependencies.
|
|
PlotFeatureMap | plotFeature |
| plot feature
|
|
PlotFeatureMap | plotFeatureForChildren |
|
std::map< std::string, std::variant< std::monostate, int, double, std::string, std::vector< int >, std::vector< double >, std::vector< std::vector< double > > > > | plotAttribute |
|
template<typename Ret, typename Arg>
class MBSim::PiecewisePolynomFunction< Ret(Arg)>
class for piecewise-polynomials and cubic spline interpolation
- Author
- Robert Huber
- Date
- 2006-08-31 initial commit
-
2006-09-05 verified with matlab /octave (Robert Huber)
-
2008-05-21 C++ beauty treatment, PLinear (Thorsten Schindler)
-
2009-08-11 kernel_dev (Thorsten Schindler)
- Todo:
- add deletes TODO
Spline / PP-Form info Piecewise polynomial: \( c0 xloc^n + c1 xloc^{n-1} + c2 xloc^{n-2} + \dots + cn \) with [c0 c1 c2 ... cn] ith row vector of coefs-matrix breaks(i) << x << breaks(i+1) defines i and xloc = x-breaks(i)
Ex. cubic spline with breaks= [0; 0.3; 0.5] coefs= [d1 c1 b1 a1;
d2 c2 b2 a2]
\[ S(x) = a1 + b1 xloc + c1 xloc^2 + d1 xloc^3 for x\in[0;0.3] \text{and} x_loc = x \]
\[ S(x) = a2 + b2 xloc + c2 xloc^2 + d2 xloc^3 for x\in[0.3;0.5] \text{and} xloc = x - 0.3 \]
Cubic spline (xi,fi) i=1..N is being interpolated by N-1 piecewise polynomials Si of degree 3 yielding a global \( C^2 \) curve for uniqueness TWO additional boundary conditions are necessary (periodic / natural)
Piecewise linear polynomial (xi,fi) i=1..N is being interpolated by N-1 piecewise polynomials Si of degree 1 yielding a globally weak differentiable curve in the context of this class the second derivative is defined to be zero everywhere (which is mathematically wrong)