class for tree-structured mechanical systems with recursive and flat memory mechanism More...
#include <graph.h>
Public Member Functions | |
Graph (const std::string &name) | |
constructor More... | |
virtual | ~Graph () |
destructor | |
virtual void | updateStateDependentVariables (double t) |
virtual void | updatedu (double t, double dt) |
virtual void | updatezd (double t) |
virtual void | updateud (double t, int i=0) |
virtual void | sethSize (int h, int j=0) |
virtual void | calcqSize () |
virtual void | calcuSize (int j=0) |
virtual void | setqInd (int qInd) |
virtual void | setuInd (int uInd, int j=0) |
virtual void | sethInd (int hInd, int j=0) |
virtual std::string | getType () const |
virtual void | updateJacobians (double t, int j=0) |
void | facLLM (int i=0) |
compute Cholesky decomposition of mass matrix TODO necessary? | |
void | calcuSize0 () |
void | calcuSize1 () |
void | sethSize0 (int h) |
void | sethSize1 (int h) |
void | setuInd0 (int uInd) |
void | setuInd1 (int uInd) |
void | sethInd0 (int hInd) |
void | sethInd1 (int hInd) |
void | addObject (int level, Object *object) |
add new object to graph at level More... | |
void | printGraph () |
![]() | |
DynamicSystem (const std::string &name) | |
constructor | |
virtual | ~DynamicSystem () |
destructor | |
virtual void | updateT (double t) |
virtual void | updateh (double t, int i=0) |
virtual void | updateStateDerivativeDependentVariables (double t) |
virtual void | updateM (double t, int i=0) |
virtual void | updatedq (double t, double dt) |
virtual void | updateqd (double t) |
virtual int | gethSize (int i=0) const |
virtual int | getqSize () const |
virtual int | getuSize (int i=0) const |
virtual int | getuInd (int i=0) |
virtual void | setxInd (int xInd_) |
virtual const fmatvec::Vec & | getq () const |
virtual fmatvec::Vec & | getq () |
virtual const fmatvec::Vec & | getu () const |
virtual fmatvec::Vec & | getu () |
virtual H5::GroupBase * | getPlotGroup () |
virtual PlotFeatureStatus | getPlotFeature (PlotFeature fp) |
virtual PlotFeatureStatus | getPlotFeatureForChildren (PlotFeature fp) |
virtual void | updatewb (double t, int j=0) |
virtual void | updateW (double t, int j=0) |
virtual void | updateV (double t, int j=0) |
virtual void | updateg (double t) |
virtual void | updategd (double t) |
virtual void | updateStopVector (double t) |
virtual void | updateLinkStatus (double t) |
virtual void | updateLinkStatusReg (double t) |
virtual void | updategInverseKinetics (double t) |
virtual void | updategdInverseKinetics (double t) |
virtual void | updateWInverseKinetics (double t, int j=0) |
virtual void | updatehInverseKinetics (double t, int j=0) |
virtual void | updateJacobiansInverseKinetics (double t, int j=0) |
virtual void | updatebInverseKinetics (double t) |
virtual void | updatedx (double t, double dt) |
virtual void | updatexd (double t) |
virtual void | calcxSize () |
const fmatvec::Vec & | getx () const |
fmatvec::Vec & | getx () |
int | getxSize () const |
void | updatexRef (const fmatvec::Vec &ref) |
void | updatexdRef (const fmatvec::Vec &ref) |
virtual void | init (InitStage stage) |
plots time series header More... | |
virtual void | initz () |
virtual void | writez (H5::GroupBase *group) |
virtual void | readz0 (H5::GroupBase *parent) |
virtual void | setDynamicSystemSolver (DynamicSystemSolver *sys) |
sets the used dynamics system solver to the element More... | |
virtual void | plot (double t, double dt) |
plots time dependent data More... | |
virtual void | plotAtSpecialEvent (double t, double dt=1.) |
plots time dependent data at special events More... | |
virtual void | closePlot () |
closes plot file | |
virtual int | solveConstraintsFixpointSingle () |
solve contact equations with single step fixed point scheme More... | |
virtual int | solveImpactsFixpointSingle (double dt) |
solve impact equations with single step fixed point scheme on velocity level More... | |
virtual int | solveConstraintsGaussSeidel () |
solve contact equations with Gauss-Seidel scheme More... | |
virtual int | solveImpactsGaussSeidel (double dt) |
solve impact equations with Gauss-Seidel scheme on velocity level More... | |
virtual int | solveConstraintsRootFinding () |
solve contact equations with Newton scheme More... | |
virtual int | solveImpactsRootFinding (double dt) |
solve impact equations with Newton scheme on velocity level More... | |
virtual int | jacobianConstraints () |
compute JACOBIAN of contact equations | |
virtual int | jacobianImpacts () |
compute JACOBIAN of contact equations on velocity level | |
virtual void | checkConstraintsForTermination () |
validate force laws concerning given tolerances | |
virtual void | checkImpactsForTermination (double dt) |
validate force laws concerning given tolerances on velocity level | |
virtual void | updaterFactors () |
update relaxation factors for contact equations | |
virtual Frame * | getFrame (const std::string &name, bool check=true) const |
virtual Contour * | getContour (const std::string &name, bool check=true) const |
void | setPosition (const fmatvec::Vec3 &PrPF_) |
void | setOrientation (const fmatvec::SqrMat3 &APF_) |
void | setFrameOfReference (Frame *frame) |
const fmatvec::Vec3 & | getPosition () const |
const fmatvec::SqrMat3 & | getOrientation () const |
const Frame * | getFrameOfReference () const |
const fmatvec::Vec & | getxd () const |
fmatvec::Vec & | getxd () |
const fmatvec::Vec & | getx0 () const |
fmatvec::Vec & | getx0 () |
const fmatvec::Mat & | getT () const |
const fmatvec::SymMat & | getM (int i=0) const |
const fmatvec::SymMat & | getLLM (int i=0) const |
fmatvec::SymMat & | getLLM (int i=0) |
const fmatvec::Vec & | geth (int j=0) const |
fmatvec::Vec & | geth (int j=0) |
const fmatvec::Vec & | getf () const |
fmatvec::Vec & | getf () |
const fmatvec::Mat & | getW (int i=0) const |
fmatvec::Mat & | getW (int i=0) |
const fmatvec::Mat & | getV (int i=0) const |
fmatvec::Mat & | getV (int i=0) |
const fmatvec::Vec & | getla () const |
fmatvec::Vec & | getla () |
const fmatvec::Vec & | getg () const |
fmatvec::Vec & | getg () |
const fmatvec::Vec & | getgd () const |
fmatvec::Vec & | getgd () |
const fmatvec::Vec & | getrFactor () const |
fmatvec::Vec & | getrFactor () |
fmatvec::Vec & | getsv () |
const fmatvec::Vec & | getsv () const |
fmatvec::VecInt & | getjsv () |
const fmatvec::VecInt & | getjsv () const |
fmatvec::VecInt & | getLinkStatus () |
fmatvec::VecInt & | getLinkStatusReg () |
const fmatvec::VecInt & | getLinkStatus () const |
const fmatvec::VecInt & | getLinkStatusReg () const |
const fmatvec::Vec & | getres () const |
fmatvec::Vec & | getres () |
const fmatvec::Vec & | getcorr () const |
fmatvec::Vec & | getcorr () |
void | setx (const fmatvec::Vec &x_) |
void | setx0 (const fmatvec::Vec &x0_) |
void | setx0 (double x0_) |
int | getxInd () |
int | getlaInd () const |
int | gethInd (int i=0) |
void | setlaInd (int ind) |
void | setgInd (int ind) |
void | setgdInd (int ind) |
void | setrFactorInd (int ind) |
virtual void | setsvInd (int svInd_) |
void | setLinkStatusInd (int LinkStatusInd_) |
void | setLinkStatusRegInd (int LinkStatusRegInd_) |
int | getzSize () const |
void | setqSize (int qSize_) |
void | setuSize (int uSize_, int i=0) |
void | setxSize (int xSize_) |
int | getlaSize () const |
int | getgSize () const |
int | getgdSize () const |
int | getrFactorSize () const |
int | getsvSize () const |
int | getLinkStatusSize () const |
int | getLinkStatusRegSize () const |
const std::vector< Object * > & | getObjects () const |
const std::vector< Link * > & | getLinks () const |
const std::vector < DynamicSystem * > & | getDynamicSystems () const |
const std::vector< Frame * > & | getFrames () const |
const std::vector< Contour * > & | getContours () const |
void | updateqRef (const fmatvec::Vec &ref) |
references to positions of dynamic system parent More... | |
void | updateqdRef (const fmatvec::Vec &ref) |
references to differentiated positions of dynamic system parent More... | |
void | updateuRef (const fmatvec::Vec &ref) |
references to velocities of dynamic system parent More... | |
void | updateuallRef (const fmatvec::Vec &ref) |
references to velocities of dynamic system parent More... | |
void | updateudRef (const fmatvec::Vec &ref, int i=0) |
references to differentiated velocities of dynamic system parent More... | |
void | updateudallRef (const fmatvec::Vec &ref, int i=0) |
references to velocities of dynamic system parent More... | |
void | updatehRef (const fmatvec::Vec &hRef, int i=0) |
references to smooth right hand side of dynamic system parent More... | |
void | updaterRef (const fmatvec::Vec &ref, int j=0) |
references to nonsmooth right hand side of dynamic system parent More... | |
void | updateTRef (const fmatvec::Mat &ref) |
references to linear transformation matrix between differentiated positions and velocities of dynamic system parent More... | |
void | updateMRef (const fmatvec::SymMat &ref, int i=0) |
references to mass matrix of dynamic system parent More... | |
void | updateLLMRef (const fmatvec::SymMat &ref, int i=0) |
references to Cholesky decomposition of dynamic system parent More... | |
void | updategRef (const fmatvec::Vec &ref) |
references to relative distances of dynamic system parent More... | |
void | updategdRef (const fmatvec::Vec &ref) |
references to relative velocities of dynamic system parent More... | |
void | updatelaRef (const fmatvec::Vec &ref) |
references to contact force parameters of dynamic system parent More... | |
void | updatelaInverseKineticsRef (const fmatvec::Vec &ref) |
void | updatebInverseKineticsRef (const fmatvec::Mat &ref) |
void | updatewbRef (const fmatvec::Vec &ref) |
references to TODO of dynamic system parent More... | |
void | updateWRef (const fmatvec::Mat &ref, int i=0) |
references to contact force direction matrix of dynamic system parent More... | |
void | updateWInverseKineticsRef (const fmatvec::Mat &ref, int i=0) |
references to contact force direction matrix of dynamic system parent More... | |
void | updateVRef (const fmatvec::Mat &ref, int i=0) |
references to condensed contact force direction matrix of dynamic system parent More... | |
void | updatesvRef (const fmatvec::Vec &ref) |
references to stopvector (rootfunction for event driven integrator) of dynamic system parent More... | |
void | updatejsvRef (const fmatvec::VecInt &ref) |
references to boolean evaluation of stopvector concerning roots of dynamic system parent More... | |
void | updateLinkStatusRef (const fmatvec::VecInt &LinkStatusParent) |
references to status vector of set valued links with piecewise link equations (which piece is valid) More... | |
void | updateLinkStatusRegRef (const fmatvec::VecInt &LinkStatusRegParent) |
references to status vector of single valued links More... | |
void | updateresRef (const fmatvec::Vec &ref) |
references to residuum of contact equations of dynamic system parent More... | |
void | updaterFactorRef (const fmatvec::Vec &ref) |
references to relaxation factors for contact equations of dynamic system parent More... | |
void | clearElementLists () |
void | buildListOfDynamicSystems (std::vector< DynamicSystem * > &sys) |
build flat list of dynamic systems More... | |
void | buildListOfObjects (std::vector< Object * > &obj) |
build flat list of objects More... | |
void | buildListOfLinks (std::vector< Link * > &lnk) |
build flat list of links More... | |
void | buildListOfSetValuedLinks (std::vector< Link * > &lnk) |
build flat list of all setvalued links More... | |
void | buildListOfFrames (std::vector< Frame * > &frm) |
build flat list of frames More... | |
void | buildListOfContours (std::vector< Contour * > &cnt) |
build flat list of contours More... | |
void | buildListOfModels (std::vector< ModellingInterface * > &model) |
build flat list of models More... | |
void | buildListOfInverseKineticsLinks (std::vector< Link * > &lnk) |
build flat list of inverse kinetics links More... | |
void | buildListOfObservers (std::vector< Observer * > &obsrv) |
build flat list of observers More... | |
void | setUpInverseKinetics () |
analyse constraints of dynamic systems for usage in inverse kinetics | |
void | setUpLinks () |
distribute links to set- and single valued container | |
bool | gActiveChanged () |
bool | gActiveChangedReg () |
bool | detectImpact () |
void | calcsvSize () |
calculates size of stop vector | |
void | calclaSize (int j) |
calculates size of contact force parameters | |
void | calcLinkStatusSize () |
calculates size of set-valued link status vector | |
void | calcLinkStatusRegSize () |
calculates size of single-valued link status vector | |
void | calclaInverseKineticsSize () |
calculates size of contact force parameters | |
void | calcbInverseKineticsSize () |
calculates size of contact force parameters | |
void | calcgSize (int j) |
calculates size of relative distances | |
void | calcgdSize (int j) |
calculates size of gap velocities More... | |
void | calcrFactorSize (int j) |
calculates size of relaxation factors for contact equations | |
void | setUpActiveLinks () |
rearrange vector of active setvalued links | |
void | checkActive (int i) |
check if set-valued contacts are active and set corresponding attributes More... | |
void | checkActiveReg (int i) |
check if single-valued contacts are active | |
virtual void | setgTol (double tol) |
virtual void | setgdTol (double tol) |
virtual void | setgddTol (double tol) |
virtual void | setlaTol (double tol) |
virtual void | setLaTol (double tol) |
void | setrMax (double rMax) |
void | addFrame (FixedRelativeFrame *frame) |
int | frameIndex (const Frame *frame_) const |
void | addGroup (DynamicSystem *dynamicsystem) |
DynamicSystem * | getGroup (const std::string &name, bool check=true) const |
void | addObject (Object *object) |
Object * | getObject (const std::string &name, bool check=true) const |
void | addLink (Link *link) |
void | addInverseKineticsLink (Link *link) |
Observer * | getObserver (const std::string &name, bool check=true) const |
void | addObserver (Observer *element) |
Link * | getLink (const std::string &name, bool check=true) const |
void | addModel (ModellingInterface *modell) |
ModellingInterface * | getModel (const std::string &name, bool check=true) const |
FixedRelativeFrame * | getFrameI () |
virtual Element * | getChildByContainerAndName (const std::string &container, const std::string &name) const |
Get the Element named name in the container named container. | |
virtual void | updatecorr (int j) |
void | updatecorrRef (const fmatvec::Vec &ref) |
void | calccorrSize (int j) |
void | checkRoot () |
![]() | |
Element (const std::string &name) | |
constructor | |
virtual | ~Element () |
destructor | |
virtual void | initDataInterfaceBase (DynamicSystemSolver *parentds) |
TODO. | |
const std::string & | getName () const |
void | setName (const std::string &str) |
void | setPath (const std::string &str) |
DynamicSystemSolver * | getDynamicSystemSolver () |
virtual void | createPlotGroup () |
creates the plotGroup for H5-output | |
H5::GroupBase * | getPlotGroup () |
virtual void | setPlotFeature (PlotFeature pf, PlotFeatureStatus value) |
Set a plot feature. More... | |
void | setPlotFeatureForChildren (PlotFeature pf, PlotFeatureStatus value) |
Set a plot feature for the children of this object. More... | |
void | setPlotFeatureRecursive (PlotFeature pf, PlotFeatureStatus value) |
Set a plot feature for this object and the children of this object. More... | |
PlotFeatureStatus | getPlotFeature (PlotFeature pf) |
PlotFeatureStatus | getPlotFeatureForChildren (PlotFeature pf) |
virtual void | initializeUsingXML (xercesc::DOMElement *element) |
virtual xercesc::DOMElement * | writeXMLFile (xercesc::DOMNode *element) |
const std::vector < MBXMLUtils::EmbedDOMLocator > & | getLocationStack () const |
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=NULL, 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 * | getParent () |
virtual const Element * | getParent () const |
virtual void | setParent (Element *parent_) |
std::vector< Element * > | getElementsDependingOn () 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... | |
![]() | |
Atom & | operator= (const Atom &) |
void | setMessageStreamActive (MsgType type, bool active) |
void | getMessageStream (MsgType type, boost::shared_ptr< bool > &a, boost::shared_ptr< std::ostream > &s) |
void | adoptMessageStreams (const Atom *src=NULL) |
std::ostream & | msg (MsgType type) |
bool | msgAct (MsgType type) |
Public Attributes | |
void(Graph::* | calcuSize_ [2])() |
void(Graph::* | sethSize_ [2])(int h) |
void(Graph::* | setuInd_ [2])(int uInd) |
void(Graph::* | sethInd_ [2])(int hInd) |
Protected Attributes | |
std::vector< std::vector < Object * > > | obj |
none | |
![]() | |
Frame * | R |
parent frame | |
fmatvec::Vec3 | PrPF |
relative translation with respect to parent frame | |
fmatvec::SqrMat3 | APF |
relative rotation with respect to parent frame | |
std::vector< Object * > | object |
container for possible ingredients | |
std::vector< Link * > | link |
std::vector< Link * > | linkSingleValued |
std::vector< Link * > | linkSetValued |
std::vector< Link * > | linkSetValuedActive |
std::vector< ModellingInterface * > | model |
std::vector< DynamicSystem * > | dynamicsystem |
std::vector< Link * > | inverseKineticsLink |
std::vector< Observer * > | observer |
std::vector< std::vector< Link * > > | linkOrdered |
fmatvec::Mat | T |
linear relation matrix of position and velocity parameters | |
fmatvec::SymMat | M [2] |
mass matrix | |
fmatvec::SymMat | LLM [2] |
Cholesky decomposition of mass matrix. | |
fmatvec::Vec | q |
positions, differentiated positions, initial positions | |
fmatvec::Vec | qd |
fmatvec::Vec | q0 |
fmatvec::Vec | u |
velocities, differentiated velocities, initial velocities | |
fmatvec::Vec | ud [2] |
fmatvec::Vec | u0 |
fmatvec::Vec | x |
order one parameters, differentiated order one parameters, initial order one parameters | |
fmatvec::Vec | xd |
fmatvec::Vec | x0 |
fmatvec::Vec | h [2] |
smooth, smooth with respect to objects, smooth with respect to links, nonsmooth and order one right hand side | |
fmatvec::Vec | r [2] |
fmatvec::Vec | f |
fmatvec::Mat | W [2] |
fmatvec::Mat | V [2] |
fmatvec::Vec | la |
contact force parameters | |
fmatvec::Vec | g |
relative distances and velocities | |
fmatvec::Vec | gd |
fmatvec::Vec | wb |
TODO. | |
fmatvec::Vec | res |
residuum of nonlinear contact equations for Newton scheme | |
fmatvec::Vec | rFactor |
rfactors for relaxation nonlinear contact equations | |
fmatvec::Vec | sv |
stop vector (root functions for event driven integration | |
fmatvec::VecInt | jsv |
boolean evaluation of stop vector concerning roots | |
fmatvec::VecInt | LinkStatus |
status of set-valued links | |
fmatvec::VecInt | LinkStatusReg |
status of single-valued links | |
int | qSize |
size and local start index of positions relative to parent | |
int | qInd |
int | uSize [2] |
size and local start index of velocities relative to parent | |
int | uInd [2] |
int | xSize |
size and local start index of order one parameters relative to parent | |
int | xInd |
int | hSize [2] |
size and local start index of order smooth right hand side relative to parent | |
int | hInd [2] |
int | gSize |
size and local start index of relative distances relative to parent | |
int | gInd |
int | gdSize |
size and local start index of relative velocities relative to parent | |
int | gdInd |
int | laSize |
size and local start index of contact force parameters relative to parent | |
int | laInd |
int | rFactorSize |
size and local start index of rfactors relative to parent | |
int | rFactorInd |
int | svSize |
size and local start index of stop vector relative to parent | |
int | svInd |
int | LinkStatusSize |
size and local start index of set-valued link status vector relative to parent | |
int | LinkStatusInd |
int | LinkStatusRegSize |
size and local start index of single-valued link status vector relative to parent | |
int | LinkStatusRegInd |
std::vector< Frame * > | frame |
vector of frames and contours | |
std::vector< Contour * > | contour |
boost::shared_ptr< H5::File > | hdf5File |
FixedRelativeFrame * | I |
int | laInverseKineticsSize |
size of contact force parameters of special links relative to parent | |
int | bInverseKineticsSize |
fmatvec::Mat | WInverseKinetics [2] |
fmatvec::Mat | bInverseKinetics |
fmatvec::Vec | laInverseKinetics |
int | corrSize |
int | corrInd |
fmatvec::Vec | corr |
std::string | saved_frameOfReference |
![]() | |
Element * | parent |
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. | |
std::vector < MBXMLUtils::EmbedDOMLocator > | locationStack |
DynamicSystemSolver * | ds |
dynamic system | |
H5::VectorSerie< double > * | plotVectorSerie |
time series | |
std::vector< double > | plotVector |
one entry of time series | |
std::vector< std::string > | plotColumns |
columns of time series | |
H5::GroupBase * | plotGroup |
associated plot group | |
std::vector< Element * > | dependency |
vector containing all dependencies. | |
Additional Inherited Members | |
![]() | |
enum | PlotFeatureStatus { enabled, disabled, unset } |
Plot feature status. More... | |
enum | PlotFeature { plotRecursive =0, separateFilePerGroup, state, stateDerivative, notMinimalState, rightHandSide, globalPosition, globalVelocity, globalAcceleration, energy, openMBV, generalizedLinkForce, linkKinematics, stopVector, debug, LASTPLOTFEATURE } |
Plot Features. More... | |
enum | InitStage { modelBuildup =0, resolveXMLPath, preInit, resize, relativeFrameContourLocation, worldFrameContourLocation, plotting, reorganizeHierarchy, unknownStage, calculateLocalInitialValues, LASTINITSTAGE } |
The stages of the initialization. More... | |
![]() | |
enum | MsgType |
![]() | |
static double | getDouble (xercesc::DOMElement *e) |
static int | getInt (xercesc::DOMElement *e) |
static bool | getBool (xercesc::DOMElement *e) |
static fmatvec::Vec3 | getVec3 (xercesc::DOMElement *e) |
static fmatvec::Vec | getVec (xercesc::DOMElement *e, int rows=0) |
static fmatvec::Mat3xV | getMat3xV (xercesc::DOMElement *e, int cols=0) |
static fmatvec::Mat | getMat (xercesc::DOMElement *e, int rows=0, int cols=0) |
static fmatvec::SqrMat3 | getSqrMat3 (xercesc::DOMElement *e) |
static fmatvec::SqrMat | getSqrMat (xercesc::DOMElement *e, int size=0) |
static fmatvec::SymMat3 | getSymMat3 (xercesc::DOMElement *e) |
static fmatvec::SymMat | getSymMat (xercesc::DOMElement *e, int size=0) |
![]() | |
static void | setCurrentMessageStream (MsgType type, const boost::shared_ptr< bool > &a=boost::make_shared< bool >(true), const boost::shared_ptr< std::ostream > &s=boost::make_shared< std::ostream >(std::cout.rdbuf())) |
static std::ostream & | msgStatic (MsgType type) |
static bool | msgActStatic (MsgType type) |
![]() | |
void | addContour (Contour *contour) |
![]() | |
void | updatePlotFeatures () |
![]() | |
Atom (const Atom &src) | |
class for tree-structured mechanical systems with recursive and flat memory mechanism
MBSim::Graph::Graph | ( | const std::string & | name | ) |
constructor
name | of tree |
void MBSim::Graph::addObject | ( | int | level, |
Object * | object | ||
) |
add new object to graph at level
level | |
object |
|
inlinevirtual |
DEPRECATED
Reimplemented from MBSim::DynamicSystem.