All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
MBSim::DynamicSystem Class Referenceabstract

dynamic system as topmost hierarchical level More...

#include <dynamic_system.h>

Inheritance diagram for MBSim::DynamicSystem:
MBSim::Element fmatvec::Atom MBSim::Graph MBSim::Group MBSim::DynamicSystemSolver

Public Member Functions

 DynamicSystem (const std::string &name)
 constructor
 
virtual ~DynamicSystem ()
 destructor
 
virtual void updateT (double t)
 
virtual void updateh (double t, int i=0)
 
virtual void updateStateDependentVariables (double t)=0
 
virtual void updateStateDerivativeDependentVariables (double t)
 
virtual void updateM (double t, int i=0)
 
virtual void updateJacobians (double t, int j=0)=0
 
virtual void updatedq (double t, double dt)
 
virtual void updateud (double t, int i=0)
 
virtual void updatezd (double t)=0
 
virtual void updatedu (double t, double dt)=0
 
virtual void updateqd (double t)
 
virtual void sethSize (int hSize_, int i=0)
 
virtual int gethSize (int i=0) const
 
virtual int getqSize () const
 
virtual int getuSize (int i=0) const
 
virtual void calcqSize ()
 
virtual void calcuSize (int j=0)
 
virtual int getuInd (int i=0)
 
virtual void setqInd (int qInd_)
 
virtual void setuInd (int uInd_, int i=0)
 
virtual void sethInd (int hInd_, int i=0)
 
virtual void setxInd (int xInd_)
 
virtual const fmatvec::Vecgetq () const
 
virtual fmatvec::Vecgetq ()
 
virtual const fmatvec::Vecgetu () const
 
virtual fmatvec::Vecgetu ()
 
virtual H5::GroupBasegetPlotGroup ()
 
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::Vecgetx () const
 
fmatvec::Vecgetx ()
 
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 std::string getType () const
 
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 void facLLM (int i=0)=0
 compute Cholesky decomposition of mass matrix TODO necessary?
 
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 FramegetFrame (const std::string &name, bool check=true) const
 
virtual ContourgetContour (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 FramegetFrameOfReference () const
 
const fmatvec::Vecgetxd () const
 
fmatvec::Vecgetxd ()
 
const fmatvec::Vecgetx0 () const
 
fmatvec::Vecgetx0 ()
 
const fmatvec::MatgetT () const
 
const fmatvec::SymMatgetM (int i=0) const
 
const fmatvec::SymMatgetLLM (int i=0) const
 
fmatvec::SymMatgetLLM (int i=0)
 
const fmatvec::Vecgeth (int j=0) const
 
fmatvec::Vecgeth (int j=0)
 
const fmatvec::Vecgetf () const
 
fmatvec::Vecgetf ()
 
const fmatvec::MatgetW (int i=0) const
 
fmatvec::MatgetW (int i=0)
 
const fmatvec::MatgetV (int i=0) const
 
fmatvec::MatgetV (int i=0)
 
const fmatvec::Vecgetla () const
 
fmatvec::Vecgetla ()
 
const fmatvec::Vecgetg () const
 
fmatvec::Vecgetg ()
 
const fmatvec::Vecgetgd () const
 
fmatvec::Vecgetgd ()
 
const fmatvec::VecgetrFactor () const
 
fmatvec::VecgetrFactor ()
 
fmatvec::Vecgetsv ()
 
const fmatvec::Vecgetsv () 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::Vecgetres () const
 
fmatvec::Vecgetres ()
 
const fmatvec::Vecgetcorr () const
 
fmatvec::Vecgetcorr ()
 
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)
 
DynamicSystemgetGroup (const std::string &name, bool check=true) const
 
void addObject (Object *object)
 
ObjectgetObject (const std::string &name, bool check=true) const
 
void addLink (Link *link)
 
void addInverseKineticsLink (Link *link)
 
ObservergetObserver (const std::string &name, bool check=true) const
 
void addObserver (Observer *element)
 
LinkgetLink (const std::string &name, bool check=true) const
 
void addModel (ModellingInterface *modell)
 
ModellingInterfacegetModel (const std::string &name, bool check=true) const
 
FixedRelativeFramegetFrameI ()
 
virtual ElementgetChildByContainerAndName (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 ()
 
- Public Member Functions inherited from MBSim::Element
 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)
 
DynamicSystemSolvergetDynamicSystemSolver ()
 
virtual void createPlotGroup ()
 creates the plotGroup for H5-output
 
H5::GroupBasegetPlotGroup ()
 
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 ElementgetParent ()
 
virtual const ElementgetParent () 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...
 
- Public Member Functions inherited from fmatvec::Atom
Atomoperator= (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)
 

Protected Member Functions

void addContour (Contour *contour)
 
- Protected Member Functions inherited from MBSim::Element
void updatePlotFeatures ()
 
- Protected Member Functions inherited from fmatvec::Atom
 Atom (const Atom &src)
 

Protected Attributes

FrameR
 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::Filehdf5File
 
FixedRelativeFrameI
 
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
 
- Protected Attributes inherited from MBSim::Element
Elementparent
 
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
 
DynamicSystemSolverds
 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::GroupBaseplotGroup
 associated plot group
 
std::vector< Element * > dependency
 vector containing all dependencies.
 

Additional Inherited Members

- Public Types inherited from MBSim::Element
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...
 
- Public Types inherited from fmatvec::Atom
enum  MsgType
 
- Static Public Member Functions inherited from MBSim::Element
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 Public Member Functions inherited from fmatvec::Atom
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)
 

Detailed Description

dynamic system as topmost hierarchical level

Author
Martin Foerg
Date
2009-03-26 some comments (Thorsten Schindler)
2009-04-06 ExtraDynamicInterface included (Thorsten Schindler)
2009-06-14 OpenMP (Thorsten Schindler)
2009-07-08 relative dynamic system location (Thorsten Schindler)
2009-07-16 splitted link / object right hand side (Thorsten Schindler)
2009-07-27 implicit integration improvement (Thorsten Schindler)
2009-07-28 splitted interfaces (Thorsten Schindler)
2009-12-14 revised inverse kinetics (Martin Foerg)
2010-07-06 modifications for timestepper ssc, e.g LinkStatus and buildListOfSetValuedLinks (Robert Huber)
2012-05-08 OpenMP completely removed; will be inserted again soon (Jan Clauberg)
2012-05-08 modifications for AutoTimeSteppingSSCIntegrator (Jan Clauberg)
2013-06-23 removed extra dynamics (Martin Foerg)
2014-09-16 contact forces are calculated on acceleration level (Thorsten Schindler)

Member Function Documentation

void MBSim::DynamicSystem::addContour ( Contour contour)
protected
Parameters
contourto add
void MBSim::DynamicSystem::addGroup ( DynamicSystem dynamicsystem)
Parameters
dynamicsystem to add
void MBSim::DynamicSystem::addInverseKineticsLink ( Link link)
Parameters
addlink for inverse kinetics
void MBSim::DynamicSystem::addLink ( Link link)
Parameters
linkto add
void MBSim::DynamicSystem::addModel ( ModellingInterface modell)
Parameters
modellto add
void MBSim::DynamicSystem::addObject ( Object object)
Parameters
objectto add
void MBSim::DynamicSystem::buildListOfContours ( std::vector< Contour * > &  cnt)

build flat list of contours

Parameters
listof contours
void MBSim::DynamicSystem::buildListOfDynamicSystems ( std::vector< DynamicSystem * > &  sys)

build flat list of dynamic systems

Parameters
listof dynamic systems
void MBSim::DynamicSystem::buildListOfFrames ( std::vector< Frame * > &  frm)

build flat list of frames

Parameters
listof frames
void MBSim::DynamicSystem::buildListOfInverseKineticsLinks ( std::vector< Link * > &  lnk)

build flat list of inverse kinetics links

Parameters
listof inverse kinetics links
void MBSim::DynamicSystem::buildListOfLinks ( std::vector< Link * > &  lnk)

build flat list of links

Parameters
listof links
void MBSim::DynamicSystem::buildListOfModels ( std::vector< ModellingInterface * > &  model)

build flat list of models

Parameters
listof models
void MBSim::DynamicSystem::buildListOfObjects ( std::vector< Object * > &  obj)

build flat list of objects

Parameters
listof objects
void MBSim::DynamicSystem::buildListOfObservers ( std::vector< Observer * > &  obsrv)

build flat list of observers

Parameters
listof observers
void MBSim::DynamicSystem::buildListOfSetValuedLinks ( std::vector< Link * > &  lnk)

build flat list of all setvalued links

Parameters
listof links
void MBSim::DynamicSystem::calcgdSize ( int  j)

calculates size of gap velocities

Parameters
flagto decide which contacts are included in the calculation 0 = all contacts 1 = closed contacts 2 = contacts which stay closed 3 = sticking contacts

see SingleContact for the implementation

void MBSim::DynamicSystem::checkActive ( int  i)

check if set-valued contacts are active and set corresponding attributes

Parameters
flagto decide which criteria are used to define 'activity' 1 = position level activity (gActive = normal gap not larger than tolerance) 2 = velocity level activity (if gActive, gdActive[0] = normal gap velocity not larger than tolerance ; if gdActive[0], gdActive[1] = tangential gap velocity not larger than tolerance, i.e., sticking) 3 = velocity level activity (if gActive, gdActive[0] = new normal gap velocity AFTER impact not larger than tolerance ; if gdActive[0], gdActive[1] = new tangential gap velocity AFTER impact not larger than tolerance, i.e., sticking) 4 = acceleration level activity (if gActive and gdActive[0], gddActive[0] = normal gap acceleration not larger than tolerance ; if gddActive[0] and gdActive[1], gddActive[1] = tangential gap acceleration not larger than tolerance, i.e., stay sticking) 5 = activity clean-up: if there is no activity on acceleration or velocity level, also more basic levels are set to non-active 6 = closing sets all activities 7 = slip-stick transition sets tangential velocity and acceleration activity 8 = opening and stick-slip transition set corresponding acceleration activity to non-active

see SingleContact for the implementation

bool MBSim::DynamicSystem::detectImpact ( )
Returns
flag, if an impact occured in the system
int MBSim::DynamicSystem::frameIndex ( const Frame frame_) const
Parameters
frame
Returns
index of frame TODO renaming
bool MBSim::DynamicSystem::gActiveChanged ( )
Returns
flag, if vector of active relative distances has changed (set-valued laws)
bool MBSim::DynamicSystem::gActiveChangedReg ( )
Returns
flag, if vector of active relative distances has changed (single-valued laws)
Contour * MBSim::DynamicSystem::getContour ( const std::string &  name,
bool  check = true 
) const
virtual
Parameters
nameof the contour
checkfor existence of contour
Returns
contour
Frame * MBSim::DynamicSystem::getFrame ( const std::string &  name,
bool  check = true 
) const
virtual
Parameters
nameof the frame
checkfor existence of frame
Returns
frame
FixedRelativeFrame* MBSim::DynamicSystem::getFrameI ( )
inline

Return frame "I"

DynamicSystem * MBSim::DynamicSystem::getGroup ( const std::string &  name,
bool  check = true 
) const
Parameters
nameof the dynamic system
checkfor existence of dynamic system
Returns
dynamic system
Link * MBSim::DynamicSystem::getLink ( const std::string &  name,
bool  check = true 
) const
Parameters
nameof the link
checkfor existence of link
Returns
link
ModellingInterface * MBSim::DynamicSystem::getModel ( const std::string &  name,
bool  check = true 
) const
Parameters
nameof the model
checkfor existence of model
Returns
modelling interface
Object * MBSim::DynamicSystem::getObject ( const std::string &  name,
bool  check = true 
) const
Parameters
nameof the object
checkfor existence of object
Returns
object
virtual std::string MBSim::DynamicSystem::getType ( ) const
inlinevirtual

DEPRECATED

Reimplemented from MBSim::Element.

Reimplemented in MBSim::DynamicSystemSolver, MBSim::Graph, and MBSim::Group.

void MBSim::DynamicSystem::init ( InitStage  stage)
virtual

plots time series header

Parameters
invocingparent class

Reimplemented from MBSim::Element.

Reimplemented in MBSim::DynamicSystemSolver.

void MBSim::DynamicSystem::plot ( double  t,
double  dt 
)
virtual

plots time dependent data

Parameters
simulationtime
simulationtime step size for derivative calculation

Reimplemented from MBSim::Element.

void MBSim::DynamicSystem::plotAtSpecialEvent ( double  t,
double  dt = 1. 
)
virtual

plots time dependent data at special events

Parameters
simulationtime
simulationtime step size for derivative calculation

Reimplemented from MBSim::Element.

void MBSim::DynamicSystem::setDynamicSystemSolver ( DynamicSystemSolver sys)
virtual

sets the used dynamics system solver to the element

Parameters
pointerto the dynamic system solver of which the element is part of

Reimplemented from MBSim::Element.

void MBSim::DynamicSystem::setgddTol ( double  tol)
virtual
Parameters
tolerancefor relative acceleration

Reimplemented in MBSim::DynamicSystemSolver.

void MBSim::DynamicSystem::setgdTol ( double  tol)
virtual
Parameters
tolerancefor relative velocity

Reimplemented in MBSim::DynamicSystemSolver.

void MBSim::DynamicSystem::setgTol ( double  tol)
virtual
Parameters
tolerancefor relative velocity

Reimplemented in MBSim::DynamicSystemSolver.

void MBSim::DynamicSystem::setlaTol ( double  tol)
virtual
Parameters
tolerancefor contact force

Reimplemented in MBSim::DynamicSystemSolver.

void MBSim::DynamicSystem::setLaTol ( double  tol)
virtual
Parameters
tolerancefor impact

Reimplemented in MBSim::DynamicSystemSolver.

void MBSim::DynamicSystem::setrMax ( double  rMax)
Parameters
maximumrelaxation factor for contact equations
int MBSim::DynamicSystem::solveConstraintsFixpointSingle ( )
virtual

solve contact equations with single step fixed point scheme

Returns
iterations of solver

Reimplemented in MBSim::DynamicSystemSolver.

int MBSim::DynamicSystem::solveConstraintsGaussSeidel ( )
virtual

solve contact equations with Gauss-Seidel scheme

Returns
iterations of solver

Reimplemented in MBSim::DynamicSystemSolver.

int MBSim::DynamicSystem::solveConstraintsRootFinding ( )
virtual

solve contact equations with Newton scheme

Returns
iterations of solver

Reimplemented in MBSim::DynamicSystemSolver.

int MBSim::DynamicSystem::solveImpactsFixpointSingle ( double  dt)
virtual

solve impact equations with single step fixed point scheme on velocity level

Parameters
timestep-size
Returns
iterations of solver

Reimplemented in MBSim::DynamicSystemSolver.

int MBSim::DynamicSystem::solveImpactsGaussSeidel ( double  dt)
virtual

solve impact equations with Gauss-Seidel scheme on velocity level

Parameters
timestep-size
Returns
iterations of solver

Reimplemented in MBSim::DynamicSystemSolver.

int MBSim::DynamicSystem::solveImpactsRootFinding ( double  dt)
virtual

solve impact equations with Newton scheme on velocity level

Parameters
timestep-size
Returns
iterations of solver

Reimplemented in MBSim::DynamicSystemSolver.

void MBSim::DynamicSystem::updategdRef ( const fmatvec::Vec ref)

references to relative velocities of dynamic system parent

Parameters
vectorto be referenced
void MBSim::DynamicSystem::updategRef ( const fmatvec::Vec ref)

references to relative distances of dynamic system parent

Parameters
vectorto be referenced
void MBSim::DynamicSystem::updatehRef ( const fmatvec::Vec hRef,
int  i = 0 
)

references to smooth right hand side of dynamic system parent

Parameters
completevector to be referenced
vectorconcerning objects to be referenced
vectorconcerning links to be referenced
indexof normal usage and inverse kinetics
void MBSim::DynamicSystem::updatejsvRef ( const fmatvec::VecInt &  ref)

references to boolean evaluation of stopvector concerning roots of dynamic system parent

Parameters
vectorto be referenced
void MBSim::DynamicSystem::updatelaRef ( const fmatvec::Vec ref)

references to contact force parameters of dynamic system parent

Parameters
vectorto be referenced
void MBSim::DynamicSystem::updateLinkStatusRef ( const fmatvec::VecInt &  LinkStatusParent)

references to status vector of set valued links with piecewise link equations (which piece is valid)

Parameters
vectorto be referenced
void MBSim::DynamicSystem::updateLinkStatusRegRef ( const fmatvec::VecInt &  LinkStatusRegParent)

references to status vector of single valued links

Parameters
vectorto be referenced
void MBSim::DynamicSystem::updateLLMRef ( const fmatvec::SymMat ref,
int  i = 0 
)

references to Cholesky decomposition of dynamic system parent

Parameters
matrixto be referenced
indexof normal usage and inverse kinetics
void MBSim::DynamicSystem::updateMRef ( const fmatvec::SymMat ref,
int  i = 0 
)

references to mass matrix of dynamic system parent

Parameters
matrixto be referenced
indexof normal usage and inverse kinetics
void MBSim::DynamicSystem::updateqdRef ( const fmatvec::Vec ref)

references to differentiated positions of dynamic system parent

Parameters
vectorto be referenced
void MBSim::DynamicSystem::updateqRef ( const fmatvec::Vec ref)

references to positions of dynamic system parent

Parameters
vectorto be referenced
void MBSim::DynamicSystem::updateresRef ( const fmatvec::Vec ref)

references to residuum of contact equations of dynamic system parent

Parameters
vectorto be referenced
void MBSim::DynamicSystem::updaterFactorRef ( const fmatvec::Vec ref)

references to relaxation factors for contact equations of dynamic system parent

Parameters
vectorto be referenced
void MBSim::DynamicSystem::updaterRef ( const fmatvec::Vec ref,
int  j = 0 
)

references to nonsmooth right hand side of dynamic system parent

Parameters
vectorto be referenced
void MBSim::DynamicSystem::updatesvRef ( const fmatvec::Vec ref)

references to stopvector (rootfunction for event driven integrator) of dynamic system parent

Parameters
vectorto be referenced
void MBSim::DynamicSystem::updateTRef ( const fmatvec::Mat ref)

references to linear transformation matrix between differentiated positions and velocities of dynamic system parent

Parameters
matrixto be referenced
void MBSim::DynamicSystem::updateuallRef ( const fmatvec::Vec ref)

references to velocities of dynamic system parent

Parameters
vectorto be referenced
void MBSim::DynamicSystem::updateudallRef ( const fmatvec::Vec ref,
int  i = 0 
)

references to velocities of dynamic system parent

Parameters
vectorto be referenced
void MBSim::DynamicSystem::updateudRef ( const fmatvec::Vec ref,
int  i = 0 
)

references to differentiated velocities of dynamic system parent

Parameters
vectorto be referenced
void MBSim::DynamicSystem::updateuRef ( const fmatvec::Vec ref)

references to velocities of dynamic system parent

Parameters
vectorto be referenced
void MBSim::DynamicSystem::updateVRef ( const fmatvec::Mat ref,
int  i = 0 
)

references to condensed contact force direction matrix of dynamic system parent

Parameters
matrixto be referenced
indexof normal usage and inverse kinetics
void MBSim::DynamicSystem::updatewbRef ( const fmatvec::Vec ref)

references to TODO of dynamic system parent

Parameters
vectorto be referenced
void MBSim::DynamicSystem::updateWInverseKineticsRef ( const fmatvec::Mat ref,
int  i = 0 
)

references to contact force direction matrix of dynamic system parent

Parameters
matrixto be referenced
indexof normal usage and inverse kinetics
void MBSim::DynamicSystem::updateWRef ( const fmatvec::Mat ref,
int  i = 0 
)

references to contact force direction matrix of dynamic system parent

Parameters
matrixto be referenced
indexof normal usage and inverse kinetics

Member Data Documentation

FixedRelativeFrame* MBSim::DynamicSystem::I
protected

A pointer to frame "I"


The documentation for this class was generated from the following files:

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML