Public Member Functions | |
InverseKineticsJoint (const std::string &name) | |
virtual void | updateb (double t) |
void | calcbSize () |
calculates size of rfactors | |
void | setBody (Body *body_) |
virtual void | init (InitStage stage) |
plots time series header More... | |
virtual bool | isSetValued () const |
asks the link if it contains force laws that contribute to the lagrange multiplier and is therefore set valued More... | |
![]() | |
Joint (const std::string &name="") | |
constructor More... | |
virtual | ~Joint () |
destructor | |
virtual void | updatewb (double t, int i=0) |
virtual void | updateW (double t, int i=0) |
virtual void | updateh (double t, int i=0) |
virtual void | updateg (double t) |
virtual void | updategd (double t) |
virtual void | updateJacobians (double t, int j=0) |
virtual void | updatexd (double t) |
virtual void | updatedx (double t, double dt) |
virtual void | calcxSize () |
virtual void | calclaSize (int j) |
calculates size of contact force parameters | |
virtual void | calcgSize (int j) |
calculates size of relative distances | |
virtual void | calcgdSize (int j) |
calculates size of gap velocities More... | |
virtual void | calcrFactorSize (int j) |
calculates size of rfactors | |
virtual void | calccorrSize (int j) |
virtual bool | isSingleValued () const |
asks the link if it contains single valued force laws that contribute to the right-hand side vector h More... | |
virtual bool | isActive () const |
virtual bool | gActiveChanged () |
virtual void | solveImpactsFixpointSingle (double dt) |
virtual void | solveConstraintsFixpointSingle () |
virtual void | solveImpactsGaussSeidel (double dt) |
virtual void | solveConstraintsGaussSeidel () |
virtual void | solveImpactsRootFinding (double dt) |
virtual void | solveConstraintsRootFinding () |
virtual void | jacobianConstraints () |
computes JACOBIAN and mass action matrix of nonlinear contact equations | |
virtual void | jacobianImpacts () |
computes JACOBIAN and mass action matrix of nonlinear contact equations on velocity level | |
virtual void | updaterFactors () |
update relaxation factors for contact equations | |
virtual void | checkImpactsForTermination (double dt) |
verify underlying force laws on velocity level concerning given tolerances | |
virtual void | checkConstraintsForTermination () |
verify underlying force laws concerning given tolerances | |
virtual void | plot (double t, double dt=1) |
plots time dependent data More... | |
virtual void | connect (Frame *frame1, Frame *frame2) |
second frame to connect More... | |
void | setForceLaw (GeneralizedForceLaw *rc) |
void | setMomentLaw (GeneralizedForceLaw *rc) |
void | setForceDirection (const fmatvec::Mat3xV &fd) |
void | setMomentDirection (const fmatvec::Mat3xV &md) |
void | setFrameOfReferenceID (int ID) |
The frame of reference ID for the force/moment direction vectors. If ID=0 (default) the first frame, if ID=1 the second frame is used. | |
virtual void | initializeUsingXML (xercesc::DOMElement *element) |
virtual xercesc::DOMElement * | writeXMLFile (xercesc::DOMNode *element) |
virtual std::string | getType () const |
![]() | |
LinkMechanics (const std::string &name) | |
constructor More... | |
virtual | ~LinkMechanics () |
destructor | |
virtual void | updatedhdz (double t) |
std::string | getType () const |
virtual void | closePlot () |
closes plot file | |
virtual void | updateWRef (const fmatvec::Mat &ref, int i=0) |
references to contact force direction matrix of dynamic system parent | |
virtual void | updateVRef (const fmatvec::Mat &ref, int i=0) |
references to condensed contact force direction matrix of dynamic system parent | |
virtual void | updatehRef (const fmatvec::Vec &hRef, int i=0) |
references to complete and link smooth force vector of dynamic system parent | |
virtual void | updatedhdqRef (const fmatvec::Mat &ref, int i=0) |
virtual void | updatedhduRef (const fmatvec::SqrMat &ref, int i=0) |
virtual void | updatedhdtRef (const fmatvec::Vec &ref, int i=0) |
virtual void | updaterRef (const fmatvec::Vec &ref, int i=0) |
references to nonsmooth force vector of dynamic system parent | |
const std::vector< Contour * > & | getContour () const |
virtual void | connect (Frame *frame_) |
virtual void | connect (Contour *contour_) |
const std::vector< Frame * > & | getFrame () const |
![]() | |
Link (const std::string &name) | |
constructor More... | |
virtual | ~Link () |
destructor | |
virtual void | updateV (double t, int i=0) |
virtual void | updateStopVector (double t) |
virtual void | updateLinkStatus (double t) |
virtual void | updateLinkStatusReg (double t) |
virtual const fmatvec::Vec & | getx () const |
virtual fmatvec::Vec & | getx () |
virtual void | setxInd (int xInd_) |
virtual int | getxSize () const |
virtual void | updatexRef (const fmatvec::Vec &ref) |
virtual void | updatexdRef (const fmatvec::Vec &ref) |
virtual void | updatebRef (const fmatvec::Mat &hRef) |
virtual void | initz () |
virtual void | writez (H5::GroupBase *group) |
virtual void | readz0 (H5::GroupBase *group) |
virtual void | setbInd (int bInd_) |
virtual void | updatewbRef (const fmatvec::Vec &ref) |
references to TODO of dynamic system parent | |
virtual void | updatelaRef (const fmatvec::Vec &ref) |
references to contact force parameter of dynamic system parent | |
virtual void | deletelaRef () |
delete reference to contact force parameter of dynamic system parent | |
virtual void | updategRef (const fmatvec::Vec &ref) |
references to contact relative distances of dynamic system parent | |
virtual void | updategdRef (const fmatvec::Vec &ref) |
references to contact relative velocities of dynamic system parent | |
virtual void | updateresRef (const fmatvec::Vec &ref) |
references to residuum of nonlinear contact equations of dynamic system parent | |
virtual void | updaterFactorRef (const fmatvec::Vec &ref) |
references to rfactors of dynamic system parent | |
virtual void | updatesvRef (const fmatvec::Vec &sv) |
references to stopvector of dynamic system parent (root function for event driven integration) | |
virtual void | updatejsvRef (const fmatvec::VecInt &jsvParent) |
references to stopvector evaluation of dynamic system parent (root detection with corresponding bool array by event driven integrator) | |
virtual void | updateLinkStatusRef (const fmatvec::VecInt &LinkStatusParent) |
reference to vector of link status (for set valued links with piecewise link equations) | |
virtual void | updateLinkStatusRegRef (const fmatvec::VecInt &LinkStatusRegParent) |
reference to vector of link status (for single-valued links) | |
virtual void | calcsvSize () |
calculates size of stopvector (root function for event driven integration) | |
virtual void | calcLinkStatusSize () |
calculates size of vector LinkStatus | |
virtual void | calcLinkStatusRegSize () |
calculates size of vector LinkStatusReg | |
virtual bool | hasSmoothPart () const |
virtual bool | detectImpact () |
virtual void | checkActive (int j) |
check if set-valued contacts are active and set corresponding attributes More... | |
virtual double | computePotentialEnergy () |
compute potential energy | |
virtual void | setlaTol (double tol) |
virtual void | setLaTol (double tol) |
virtual void | setgTol (double tol) |
virtual void | setgdTol (double tol) |
virtual void | setgddTol (double tol) |
virtual void | setrMax (double rMax_) |
virtual void | setLinkStatusInd (int LinkStatusInd_) |
virtual void | setLinkStatusRegInd (int LinkStatusRegInd_) |
virtual void | setlaInd (int laInd_) |
virtual void | setgInd (int gInd_) |
virtual void | setgdInd (int gdInd_) |
virtual void | setrFactorInd (int rFactorInd_) |
virtual void | LinearImpactEstimation (fmatvec::Vec &gInActive_, fmatvec::Vec &gdInActive_, int *IndInActive_, fmatvec::Vec &gAct_, int *IndActive_) |
get gap distance and calculate gap velocity of unilateral links to estimate impacts within the next step More... | |
virtual void | SizeLinearImpactEstimation (int *sizeInActive_, int *sizeActive_) |
calculates the number of active and inactive unilateral constraints and increments sizeActive/sizeInActive | |
virtual void | updatecorr (int j) |
virtual void | updatecorrRef (const fmatvec::Vec &ref) |
virtual void | setcorrInd (int corrInd_) |
virtual void | checkRoot () |
const std::vector< fmatvec::Mat > & | getW (int i=0) const |
const std::vector< fmatvec::Mat > & | getV (int i=0) const |
const std::vector< fmatvec::Vec > & | geth (int i=0) const |
void | setx (const fmatvec::Vec &x_) |
const fmatvec::Vec & | getxd () const |
virtual void | setsvInd (int svInd_) |
int | getsvSize () const |
int | getLinkStatusSize () const |
int | getLinkStatusRegSize () const |
const fmatvec::Vec & | getla () const |
fmatvec::Vec & | getla () |
int | getlaInd () const |
int | getlaSize () const |
int | getbSize () const |
const fmatvec::Index & | getlaIndex () const |
const fmatvec::Vec & | getg () const |
fmatvec::Vec & | getg () |
const fmatvec::Vec & | getgd () const |
fmatvec::Vec & | getgd () |
const fmatvec::Vec & | getwb () const |
fmatvec::Vec & | getwb () |
int | getgdInd () const |
int | getgSize () const |
int | getgdSize () const |
const fmatvec::Index & | getgIndex () const |
int | getrFactorSize () const |
const fmatvec::VecInt & | getrFactorUnsure () const |
void | savela (double dt=1.0) |
saves contact force parameters for use as starting value in next time step | |
void | initla (double dt=1.0) |
load contact force parameters for use as starting value | |
void | decreaserFactors () |
decrease rfactor if mass action matrix is not diagonal dominant (cf. Foerg: Dissertation, page 80 et seq.) | |
int | getcorrSize () const |
![]() | |
Element (const std::string &name) | |
constructor | |
virtual | ~Element () |
destructor | |
virtual void | initDataInterfaceBase (DynamicSystemSolver *parentds) |
TODO. | |
virtual void | setDynamicSystemSolver (DynamicSystemSolver *sys) |
sets the used dynamics system solver to the element More... | |
virtual void | plotAtSpecialEvent (double t, double dt=1) |
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 | 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) |
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 * | getChildByContainerAndName (const std::string &container, const std::string &name) const |
Get the Element named name in the container named container. | |
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) |
Protected Attributes | |
Body * | body |
![]() | |
Frame * | refFrame |
frame of reference the force is defined in | |
int | refFrameID |
fmatvec::Index | IT |
indices of forces and torques | |
fmatvec::Index | IR |
fmatvec::Mat3xV | forceDir |
local force and moment direction | |
fmatvec::Mat3xV | momentDir |
fmatvec::Mat3xV | Wf |
global force and moment direction | |
fmatvec::Mat3xV | Wm |
fmatvec::Mat3xV | JT |
translational JACOBIAN (not empty for e.g. prismatic joints) | |
fmatvec::Vec3 | WrP0P1 |
difference vector of position, velocity and angular velocity | |
fmatvec::Vec3 | WvP0P1 |
fmatvec::Vec3 | WomP0P1 |
GeneralizedForceLaw * | ffl |
GeneralizedForceLaw * | fml |
GeneralizedImpactLaw * | fifl |
GeneralizedImpactLaw * | fiml |
fmatvec::Vec | gdn |
relative velocity and acceleration after an impact for event driven scheme summarizing all possible contacts | |
fmatvec::Vec | gdd |
Frame | C |
own frame located in second partner with same orientation as first partner | |
![]() | |
std::vector< fmatvec::Vec3 > | WF |
force and moment direction for smooth right hand side | |
std::vector< fmatvec::Vec3 > | WM |
std::vector< fmatvec::Mat3xV > | fF |
cartesian force and moment direction matrix for nonsmooth right hand side | |
std::vector< fmatvec::Mat3xV > | fM |
std::vector< Frame * > | frame |
array in which all frames are listed, connecting bodies via a link | |
std::vector< Contour * > | contour |
array in which all contours are listed, connecting bodies via link | |
![]() | |
fmatvec::Vec | x |
order one parameters | |
fmatvec::Vec | xd |
differentiated order one parameters | |
fmatvec::Vec | x0 |
order one initial value | |
int | xSize |
size and local index of order one parameters | |
int | xInd |
fmatvec::Vec | sv |
stop vector for event driven integration (root function) | |
fmatvec::VecInt | jsv |
evaluation of roots of stop vector with a boolean vector | |
int | svSize |
size and local index of stop vector | |
int | svInd |
fmatvec::VecInt | LinkStatus |
status of link (default 0) describing which piece of the equation is valid (e.g. stick or slip) More... | |
int | LinkStatusSize |
size and local index of link status vector (set-valued) | |
int | LinkStatusInd |
fmatvec::VecInt | LinkStatusReg |
status of link More... | |
int | LinkStatusRegSize |
size and local index of single-valued link status vector | |
int | LinkStatusRegInd |
fmatvec::Vec | g |
relative distance, relative velocity, contact force parameters | |
fmatvec::Vec | gd |
fmatvec::Vec | la |
fmatvec::Vec | laS |
contact forces of smooth contact laws | |
int | gSize |
size and local index of relative distances | |
int | gInd |
int | gdSize |
size and local index of relative velocities | |
int | gdInd |
int | laSize |
size and local index of contact force parameters | |
int | laInd |
int | bSize |
size and local index of contact force parameters | |
int | bInd |
fmatvec::Index | Ig |
local index of relative distances and contact force parameters | |
fmatvec::Index | Ila |
double | gTol |
tolerance for relative velocity, relative acceleration, force and impact | |
double | gdTol |
double | gddTol |
double | laTol |
double | LaTol |
fmatvec::Vec | la0 |
attribute to save contact force parameter of previous time step | |
fmatvec::Vec | rFactor |
vector of rfactors for relaxation of contact equations | |
fmatvec::VecInt | rFactorUnsure |
boolean vector defining if rfactor belongs to not diagonal dominant mass action matrix (cf. Foerg Dissertation, page 80 et seq.) | |
int | rFactorSize |
size and local index of rfactors | |
int | rFactorInd |
double | rMax |
maximum r-factor | |
fmatvec::Vec | res |
std::vector< fmatvec::Mat > | W [2] |
force direction matrix for nonsmooth right hand side | |
std::vector< fmatvec::Mat > | V [2] |
reduced force direction matrix for nonsmooth right hand side | |
std::vector< fmatvec::Vec > | h [2] |
smooth complete and link right hand side | |
std::vector< fmatvec::Mat > | dhdq |
smooth Jacobians for implicit integration | |
std::vector< fmatvec::Mat > | dhdu |
std::vector< fmatvec::Vec > | dhdt |
std::vector< fmatvec::Vec > | r [2] |
nonsmooth right hand side | |
fmatvec::Vec | wb |
TODO. | |
fmatvec::Mat | b |
TODO. | |
int | corrSize |
int | corrInd |
fmatvec::Vec | corr |
![]() | |
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 | updatePlotFeatures () |
![]() | |
Atom (const Atom &src) | |
|
virtual |
|
inlinevirtual |
asks the link if it contains force laws that contribute to the lagrange multiplier and is therefore set valued
Reimplemented from MBSim::Joint.