|
| SingleContact (const std::string &name="") |
| constructor More...
|
|
virtual | ~SingleContact () |
| destructor
|
|
virtual void | updatewb (double t, int i=0) |
|
virtual void | updateW (double t, int i=0) |
|
virtual void | updateV (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 | updateStopVector (double t) |
|
virtual void | updateJacobians (double t, int j=0) |
|
virtual void | updateWRef (const fmatvec::Mat &ref, int j=0) |
| references to contact force direction matrix of dynamic system parent
|
|
virtual void | updateVRef (const fmatvec::Mat &ref, int j=0) |
| references to condensed contact force direction matrix of dynamic system parent
|
|
virtual void | updatehRef (const fmatvec::Vec &hRef, int j=0) |
| references to complete and link smooth force vector of dynamic system parent
|
|
virtual void | updatelaRef (const fmatvec::Vec &ref) |
| references to contact force parameter of dynamic system parent
|
|
virtual void | updategdRef (const fmatvec::Vec &ref) |
| references to contact relative velocities of dynamic system parent
|
|
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 | 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 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...
|
|
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 void | updateLinkStatus (double dt) |
|
virtual void | updateLinkStatusReg (double dt) |
|
virtual bool | isActive () const |
|
virtual bool | gActiveChanged () |
|
virtual bool | detectImpact () |
|
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 | checkConstraintsForTermination () |
| verify underlying force laws concerning given tolerances
|
|
virtual void | checkImpactsForTermination (double dt) |
| verify underlying force laws on velocity level concerning given tolerances
|
|
virtual void | checkActive (int j) |
| check if set-valued contacts are active and set corresponding attributes More...
|
|
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 std::string | getType () const |
|
virtual void | plot (double t, double dt=1) |
| plots time dependent data More...
|
|
virtual void | closePlot () |
| closes plot file
|
|
void | setNormalForceLaw (GeneralizedForceLaw *fcl_) |
|
GeneralizedForceLaw * | getNormalForceLaw () const |
|
void | setNormalImpactLaw (GeneralizedImpactLaw *fnil_) |
|
void | setTangentialForceLaw (FrictionForceLaw *fdf_) |
|
FrictionForceLaw * | getTangentialForceLaw () const |
|
void | setTangentialImpactLaw (FrictionImpactLaw *ftil_) |
|
void | setContactKinematics (ContactKinematics *ck) |
|
ContactKinematics * | getContactKinematics () const |
|
ContourPointData *& | getcpData () |
|
ContourPointData * | getcpData () const |
|
fmatvec::Vec & | getlaN () |
|
fmatvec::Vec | getlaN () const |
|
fmatvec::Vec & | getlaT () |
|
fmatvec::Vec | getlaT () const |
|
fmatvec::Vec & | getgdN () |
|
fmatvec::Vec | getgdN () const |
|
fmatvec::Vec & | getgdT () |
|
fmatvec::Vec | getgdT () const |
|
virtual int | getFrictionDirections () |
|
virtual int | getFrictionDirections () const |
|
void | connect (Contour *contour1, Contour *contour2, ContactKinematics *contactKinematics=0) |
|
void | applyh (double t, int j) |
| apply forces to the h-vector More...
|
|
void | computeCurvatures (fmatvec::Vec &r) const |
|
virtual void | initializeUsingXML (xercesc::DOMElement *element) |
|
void | calccorrSize (int j) |
|
void | updatecorr (int j) |
|
void | checkRoot () |
|
| LinkMechanics (const std::string &name) |
| constructor More...
|
|
virtual | ~LinkMechanics () |
| destructor
|
|
virtual void | updatedhdz (double t) |
|
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 | updateb (double t) |
|
virtual void | updatedx (double t, double dt) |
|
virtual void | updatexd (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 | 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 | 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 | calcbSize () |
| calculates size of rfactors
|
|
virtual bool | hasSmoothPart () const |
|
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 | updatecorrRef (const fmatvec::Vec &ref) |
|
virtual void | setcorrInd (int corrInd_) |
|
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) |
|
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 * | 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) |
|
|
ContactKinematics * | contactKinematics |
| used contact kinematics
|
|
GeneralizedForceLaw * | fcl |
| force laws in normal and tangential direction on acceleration and velocity level
|
|
FrictionForceLaw * | fdf |
| force law defining relation between tangential velocities and tangential forces
|
|
GeneralizedImpactLaw * | fnil |
| force law defining relation between penetration velocity and resulting normal impulses
|
|
FrictionImpactLaw * | ftil |
| force law defining relation between tangential velocities and forces impulses
|
|
ContourPointData * | cpData |
| vector of frames for definition of relative contact situation
|
|
fmatvec::Vec | laN |
| force in normal direction More...
|
|
fmatvec::Vec | laT |
| force in tangential direction More...
|
|
fmatvec::Vec | gdN |
| relative velocity in normal direction More...
|
|
fmatvec::Vec | gdT |
| relative velocity in tangential direction More...
|
|
unsigned int | gActive |
| boolean vector symbolising activity of contacts on position level with possibility to save previous time step
|
|
unsigned int | gActive0 |
|
unsigned int * | gdActive |
| boolean vector symbolising activity of contacts on velocity level More...
|
|
unsigned int * | gddActive |
| boolean vector symbolising activity of contacts on acceleration level More...
|
|
fmatvec::Index | iT |
| index for tangential directions in projection matrices
|
|
fmatvec::Vec | gdnN |
| new gap velocity after an impact for event driven scheme
|
|
fmatvec::Vec | gdnT |
|
fmatvec::Vec | gddN |
| gap acceleration for event driven scheme on acceleration level
|
|
fmatvec::Vec | gddT |
|
fmatvec::Vec | gddNBuf |
| gap acceleration buffer
|
|
fmatvec::Vec | gddTBuf |
|
int | rootID |
| type of detected root More...
|
|
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.
|
|
class for contacts
- Author
- Martin Foerg
- Date
- 2009-04-02 some comments (Thorsten Schindler)
-
2009-07-16 splitted link / object right hand side (Thorsten Schindler)
-
2009-08-03 contacts can now visualize their ContactPointFrames (Markus Schneider)
-
2010-07-06 added LinkStatus and LinearImpactEstimation for timestepper ssc (Robert Huber)
-
2012-05-08 added LinkStatusReg for AutoTimeSteppingSSCIntegrator (Jan Clauberg)
-
2014-09-16 contact forces are calculated on acceleration level (Thorsten Schindler)
basic class for contacts between contours, mainly implementing geometrical informations of contact-pairings
Remarks:
- constitutive laws on acceleration and velocity level have to be set pairwise