A force law that computes the normal force of many contact kinematics based on the Maxwell-Force-Law.
More...
|
| MaxwellUnilateralConstraint (const double &damping=0, const double &gapLimit=0) |
| constructor
|
|
virtual | ~MaxwellUnilateralConstraint () |
| destructor
|
|
virtual bool | isActive (double g, double gTol) |
| decides, if force law is active More...
|
|
virtual bool | remainsActive (double s, double sTol) |
|
virtual bool | isSetValued () const |
|
virtual void | computeSmoothForces (std::vector< std::vector< SingleContact > > &contacts) |
| computes the normal forces for smooth constitutive law on every contact point More...
|
|
virtual void | initializeUsingXML (xercesc::DOMElement *element) |
| initialize the force law using XML More...
|
|
virtual void | initializeContourCouplings (Contact *parent) |
| initialize all saved contour couplings in the map More...
|
|
void | setDebuglevel (int debuglevel) |
|
void | setLCPSolvingStrategy (LinearComplementarityProblem::LCPSolvingStrategy strategy) |
|
void | setLCPJacobianType (LinearComplementarityProblem::JacobianType type) |
|
void | addContourCoupling (Contour *contour1, Contour *contour2, InfluenceFunction *fct) |
| add a function that represents the coupling between two contours More...
|
|
| GeneralizedForceLaw (Function< double(double, double)> *forceFunc_=NULL) |
| constructor
|
|
virtual | ~GeneralizedForceLaw () |
| destructor
|
|
void | init (Element::InitStage stage) |
| plots time series header More...
|
|
virtual double | project (double la, double gdn, double r, double laMin=0) |
| prox function evaluation More...
|
|
virtual fmatvec::Vec | diff (double la, double gdn, double r, double laMin=0) |
|
virtual double | solve (double G, double gdn) |
|
virtual bool | isFulfilled (double la, double gdn, double tolla, double tolgd, double laMin=0) |
|
virtual xercesc::DOMElement * | writeXMLFile (xercesc::DOMNode *parent) |
|
virtual std::string | getType () const |
|
double | operator() (double g, double gd) |
|
void | setForceFunction (Function< double(double, double)> *forceFunc_) |
| Set the force function for use in regularisized constitutive laws The first input parameter to the force function is g. The second input parameter to the force function is gd. The return value is the force.
|
|
| 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 | plot (double t, double dt=1) |
| 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
|
|
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) |
|
|
std::vector< std::pair< int,
int > > | possibleContactPoints |
| saves the indices of all active contacts in pairs More...
|
|
LinearComplementarityProblem | LCP |
| variable for the LCP
|
|
fmatvec::SymMat | C |
| Influence matrix between contact points.
|
|
fmatvec::Vec | rigidBodyGap |
|
std::map< std::pair< Contour
*, Contour * >
, InfluenceFunction * > | influenceFunctions |
| saves the influence functions for a pair of contours. The key is the pair of contour names
|
|
fmatvec::Vec | solution0 |
| Solution of the last time, where contact has to be solved (can be used as starting guess for the next algorithm)
|
|
double | dampingCoefficient |
| coefficient for possible contact damping
|
|
double | gLim |
| relative contact point distance limit under which damping is active
|
|
double | matConst |
| parameter for guessing starting values of contact force (average eigenvalue of influence-matrix)
|
|
bool | matConstSetted |
| parameter to save if matConst has been computed already
|
|
int | DEBUGLEVEL |
| print INFO output? More...
|
|
std::vector< xmlInfo > | referenceXML |
|
Function< double(double, double)> * | forceFunc |
| force function for a regularized contact law
|
|
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.
|
|
|
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) |
|
A force law that computes the normal force of many contact kinematics based on the Maxwell-Force-Law.
- Author
- Kilian Grundl
- Date
- 30-07-2012 start of development