Description
Constraint between an FEA node of ChNodeFEAxyz type and a ChBodyFrame (frame) object.
The node position is constrained to a given coordinate system CSYS that moves with the ChBodyFrame. The movements of the node respect to X, Y, Z axes of such CSYS can be costrained or not, depending on three boolean toggles. By default, XYZ are all constrained and the node follows the center of CSYS, s it is completely locked to it, but other options are, for example, that you just enable the X constraint (so the node moves on the flat YZ plane) or you just enable XY constraints (so the node moves along the Z direction), etc.
#include <ChLinkNodeFrame.h>


Public Member Functions | |
| ChLinkNodeFrameGeneric (bool mc_x=true, bool mc_y=true, bool mc_z=true) | |
| ChLinkNodeFrameGeneric (const ChLinkNodeFrameGeneric &other) | |
| virtual ChLinkNodeFrameGeneric * | Clone () const override |
| "Virtual" copy constructor (covariant return type). | |
| virtual unsigned int | GetNumAffectedCoords () override |
| Get the number of scalar variables affected by constraints in this link. | |
| virtual unsigned int | GetNumConstraintsBilateral () override |
| Number of scalar constraints. | |
| virtual ChVectorDynamic | GetConstraintViolation () const override |
| Get the current constraint violations. | |
| bool | IsConstrainedX () |
| bool | IsConstrainedY () |
| bool | IsConstrainedZ () |
| void | SetConstrainedCoords (bool mc_x, bool mc_y, bool mc_z) |
| Sets which movements (of frame 1 respect to frame 2) are constrained. | |
| ChFrame | GetFrameNodeAbs () const |
| Return the link frame, expressed in absolute coordinates. | |
| virtual int | Initialize (std::shared_ptr< ChNodeFEAxyz > node, std::shared_ptr< ChBodyFrame > body, ChVector3d *pos=0) |
| Initialize this constraint, given the node and body frame to join. More... | |
| virtual int | Initialize (std::shared_ptr< ChNodeFEAxyz > node, std::shared_ptr< ChBodyFrame > body, chrono::ChCoordsys<> csys_abs) |
| Initialize this constraint, given the node and body frame to join. More... | |
| std::shared_ptr< fea::ChNodeFEAxyz > | GetConstrainedNode () |
| Get the connected xyz node (point). | |
| std::shared_ptr< ChBodyFrame > | GetConstrainedBodyFrame () |
| Get the connected body (frame). | |
| const ChVector3d & | GetAttachPosition () const |
| Get the attachment position, in the coordinates of the body. | |
| const ChCoordsys & | GetAttachReference () const |
| Get the attachment reference, in the coordinates of the body. | |
| void | SetAttachPositionInBodyCoords (const ChVector3d &pos_loc) |
| Set the attachment position, expressed in the coordinates of the body. More... | |
| void | SetAttachPositionInAbsoluteCoords (const ChVector3d &pos_abs) |
| Set the attachment position, expressed in absolute coordinates. More... | |
| void | SetAttachReferenceInBodyCoords (const ChCoordsys<> &csys_loc) |
| Set the attachment reference, expressed in the coordinates of the body. More... | |
| void | SetAttachReferenceInAbsoluteCoords (const ChCoordsys<> &csys_abs) |
| Set the attachment position, expressed in absolute coordinates. More... | |
| ChVector3d | GetReactionOnNode () const |
| Get the reaction force on the node, expressed in the link coordinate system. | |
| ChVector3d | GetReactionOnBody () const |
| Get the reaction force on the body, at the attachment point, expressed in the link coordinate system. | |
| virtual void | Update (double time, bool update_assets) override |
| Update all auxiliary data of the gear transmission at given time. | |
| virtual void | ArchiveOut (ChArchiveOut &archive_out) override |
| Method to allow serialization of transient data to archives. | |
| virtual void | ArchiveIn (ChArchiveIn &archive_in) override |
| Method to allow deserialization of transient data from archives. | |
| virtual void | IntStateGatherReactions (const unsigned int off_L, ChVectorDynamic<> &L) override |
| From item's reaction forces to global reaction vector. More... | |
| virtual void | IntStateScatterReactions (const unsigned int off_L, const ChVectorDynamic<> &L) override |
| From global reaction vector to item's reaction forces. More... | |
| virtual void | IntLoadResidual_CqL (const unsigned int off_L, ChVectorDynamic<> &R, const ChVectorDynamic<> &L, const double c) override |
| Takes the term Cq'*L, scale and adds to R at given offset: R += c*Cq'*L. More... | |
| virtual void | IntLoadConstraint_C (const unsigned int off, ChVectorDynamic<> &Qc, const double c, bool do_clamp, double recovery_clamp) override |
| Takes the term C, scale and adds to Qc at given offset: Qc += c*C. More... | |
| virtual void | IntToDescriptor (const unsigned int off_v, const ChStateDelta &v, const ChVectorDynamic<> &R, const unsigned int off_L, const ChVectorDynamic<> &L, const ChVectorDynamic<> &Qc) override |
| Prepare variables and constraints to accommodate a solution: More... | |
| virtual void | IntFromDescriptor (const unsigned int off_v, ChStateDelta &v, const unsigned int off_L, ChVectorDynamic<> &L) override |
| After a solver solution, fetch values from variables and constraints into vectors: More... | |
| virtual void | InjectConstraints (ChSystemDescriptor &descriptor) override |
| Register with the given system descriptor any ChConstraint objects associated with this item. | |
| virtual void | ConstraintsBiReset () override |
| Sets to zero the known term (b_i) of encapsulated ChConstraints. | |
| virtual void | ConstraintsBiLoad_C (double factor=1, double recovery_clamp=0.1, bool do_clamp=false) override |
| Adds the current C (constraint violation) to the known term (b_i) of encapsulated ChConstraints. | |
| virtual void | ConstraintsBiLoad_Ct (double factor=1) override |
| Adds the current Ct (partial t-derivative, as in C_dt=0-> [Cq]*q_dt=-Ct) to the known term (b_i) of encapsulated ChConstraints. | |
| virtual void | LoadConstraintJacobians () override |
| Compute and load current Jacobians in encapsulated ChConstraint objects. | |
| virtual void | ConstraintsFetch_react (double factor=1) override |
| Fetches the reactions from the lagrangian multiplier (l_i) of encapsulated ChConstraints. More... | |
Public Member Functions inherited from chrono::ChLinkBase | |
| ChLinkBase (const ChLinkBase &other) | |
| bool | IsValid () |
| Tells if the link data is currently valid. More... | |
| void | SetValid (bool mon) |
| Set the status of link validity. | |
| bool | IsDisabled () |
| Tells if all constraints of this link are currently turned on or off by the user. | |
| virtual void | SetDisabled (bool mdis) |
| User can use this to enable/disable all the constraint of the link as desired. | |
| bool | IsBroken () |
| Tells if the link is broken, for excess of pulling/pushing. | |
| virtual void | SetBroken (bool mon) |
| Set the 'broken' status vof this link. | |
| virtual bool | IsActive () const override |
| Return true if the link is currently active and thereofre included into the system solver. More... | |
| virtual bool | IsRequiringWaking () |
| Tells if this link requires that the connected ChBody objects must be waken if they are sleeping. More... | |
| virtual ChFrame | GetVisualModelFrame (unsigned int nclone=0) const override |
| Get the reference frame (expressed in and relative to the absolute frame) of the visual model. More... | |
Public Member Functions inherited from chrono::ChPhysicsItem | |
| ChPhysicsItem (const ChPhysicsItem &other) | |
| ChSystem * | GetSystem () const |
| Get the pointer to the parent ChSystem(). | |
| virtual void | SetSystem (ChSystem *m_system) |
| Set the pointer to the parent ChSystem(). More... | |
| virtual bool | IsCollisionEnabled () const |
| Tell if the object is subject to collision. More... | |
| virtual void | AddCollisionModelsToSystem (ChCollisionSystem *coll_sys) const |
| Add to the provided collision system any collision models managed by this physics item. More... | |
| virtual void | RemoveCollisionModelsFromSystem (ChCollisionSystem *coll_sys) const |
| Remove from the provided collision system any collision models managed by this physics item. More... | |
| virtual void | SyncCollisionModels () |
| Synchronize the position and bounding box of any collision models managed by this physics item. | |
| virtual ChAABB | GetTotalAABB () const |
| Get the axis-aligned bounding box (AABB) of this object. More... | |
| virtual ChVector3d | GetCenter () const |
| Get a symbolic 'center' of the object. More... | |
| virtual void | Setup () |
| Perform setup operations. More... | |
| virtual void | ForceToRest () |
| Set zero speed (and zero accelerations) in state, without changing the position. More... | |
| virtual unsigned int | GetNumCoordsPosLevel () |
| Get the number of coordinates at the position level. More... | |
| virtual unsigned int | GetNumCoordsVelLevel () |
| Get the number of coordinates at the velocity level. More... | |
| virtual unsigned int | GetNumConstraints () |
| Get the number of scalar constraints. | |
| virtual unsigned int | GetNumConstraintsUnilateral () |
| Get the number of unilateral scalar constraints. | |
| unsigned int | GetOffset_x () |
| Get offset in the state vector (position part) | |
| unsigned int | GetOffset_w () |
| Get offset in the state vector (speed part) | |
| unsigned int | GetOffset_L () |
| Get offset in the lagrangian multipliers. | |
| void | SetOffset_x (const unsigned int moff) |
| Set offset in the state vector (position part) Note: only the ChSystem::Setup function should use this. | |
| void | SetOffset_w (const unsigned int moff) |
| Set offset in the state vector (speed part) Note: only the ChSystem::Setup function should use this. | |
| void | SetOffset_L (const unsigned int moff) |
| Set offset in the lagrangian multipliers Note: only the ChSystem::Setup function should use this. | |
| virtual void | IntStateGather (const unsigned int off_x, ChState &x, const unsigned int off_v, ChStateDelta &v, double &T) |
| From item's state to global state vectors y={x,v} pasting the states at the specified offsets. More... | |
| virtual void | IntStateScatter (const unsigned int off_x, const ChState &x, const unsigned int off_v, const ChStateDelta &v, const double T, bool full_update) |
| From global state vectors y={x,v} to item's state (and update) fetching the states at the specified offsets. More... | |
| virtual void | IntStateGatherAcceleration (const unsigned int off_a, ChStateDelta &a) |
| From item's state acceleration to global acceleration vector. More... | |
| virtual void | IntStateScatterAcceleration (const unsigned int off_a, const ChStateDelta &a) |
| From global acceleration vector to item's state acceleration. More... | |
| virtual void | IntStateIncrement (const unsigned int off_x, ChState &x_new, const ChState &x, const unsigned int off_v, const ChStateDelta &Dv) |
| Computes x_new = x + Dt , using vectors at specified offsets. More... | |
| virtual void | IntStateGetIncrement (const unsigned int off_x, const ChState &x_new, const ChState &x, const unsigned int off_v, ChStateDelta &Dv) |
| Computes Dt = x_new - x, using vectors at specified offsets. More... | |
| virtual void | IntLoadResidual_F (const unsigned int off, ChVectorDynamic<> &R, const double c) |
| Takes the F force term, scale and adds to R at given offset: R += c*F. More... | |
| virtual void | IntLoadResidual_Mv (const unsigned int off, ChVectorDynamic<> &R, const ChVectorDynamic<> &w, const double c) |
| Takes the M*v term, multiplying mass by a vector, scale and adds to R at given offset: R += c*M*w. More... | |
| virtual void | IntLoadLumpedMass_Md (const unsigned int off, ChVectorDynamic<> &Md, double &err, const double c) |
| Adds the lumped mass to a Md vector, representing a mass diagonal matrix. More... | |
| virtual void | IntLoadConstraint_Ct (const unsigned int off, ChVectorDynamic<> &Qc, const double c) |
| Takes the term Ct, scale and adds to Qc at given offset: Qc += c*Ct. More... | |
| virtual void | InjectVariables (ChSystemDescriptor &descriptor) |
| Register with the given system descriptor any ChVariable objects associated with this item. | |
| virtual void | InjectKRMMatrices (ChSystemDescriptor &descriptor) |
| Register with the given system descriptor any ChKRMBlock objects associated with this item. | |
| virtual void | LoadKRMMatrices (double Kfactor, double Rfactor, double Mfactor) |
| Compute and load current stiffnes (K), damping (R), and mass (M) matrices in encapsulated ChKRMBlock objects. More... | |
| virtual void | VariablesFbReset () |
| Sets the 'fb' part (the known term) of the encapsulated ChVariables to zero. | |
| virtual void | VariablesFbLoadForces (double factor=1) |
| Adds the current forces (applied to item) into the encapsulated ChVariables, in the 'fb' part: qf+=forces*factor. | |
| virtual void | VariablesQbLoadSpeed () |
| Initialize the 'qb' part of the ChVariables with the current value of speeds. More... | |
| virtual void | VariablesFbIncrementMq () |
| Adds M*q (masses multiplied current 'qb') to Fb, ex. More... | |
| virtual void | VariablesQbSetSpeed (double step=0) |
| Fetches the item speed (ex. More... | |
| virtual void | VariablesQbIncrementPosition (double step) |
| Increment item positions by the 'qb' part of the ChVariables, multiplied by a 'step' factor. More... | |
| virtual void | ConstraintsBiLoad_Qc (double factor=1) |
| Adds the current Qc (the vector of C_dtdt=0 -> [Cq]*q_dtdt=Qc ) to the known term (b_i) of encapsulated ChConstraints. | |
| virtual void | ConstraintsFbLoadForces (double factor=1) |
| Adds the current link-forces, if any, (caused by springs, etc.) to the 'fb' vectors of the ChVariables referenced by encapsulated ChConstraints. | |
Public Member Functions inherited from chrono::ChObj | |
| ChObj (const ChObj &other) | |
| int | GetIdentifier () const |
| Get the unique integer identifier of this object. More... | |
| void | SetTag (int tag) |
| Set an object integer tag (default: -1). More... | |
| int | GetTag () const |
| Get the tag of this object. | |
| void | SetName (const std::string &myname) |
| Set the name of this object. | |
| const std::string & | GetName () const |
| Get the name of this object. | |
| double | GetChTime () const |
| Gets the simulation time of this object. | |
| void | SetChTime (double m_time) |
| Sets the simulation time of this object. | |
| void | AddVisualModel (std::shared_ptr< ChVisualModel > model) |
| Add an (optional) visualization model. More... | |
| std::shared_ptr< ChVisualModel > | GetVisualModel () const |
| Access the visualization model (if any). More... | |
| void | AddVisualShape (std::shared_ptr< ChVisualShape > shape, const ChFrame<> &frame=ChFrame<>()) |
| Add the specified visual shape to the visualization model. More... | |
| std::shared_ptr< ChVisualShape > | GetVisualShape (unsigned int i) const |
| Access the specified visualization shape in the visualization model (if any). More... | |
| void | AddVisualShapeFEA (std::shared_ptr< ChVisualShapeFEA > shapeFEA) |
| Add the specified FEA visualization object to the visualization model. More... | |
| std::shared_ptr< ChVisualShapeFEA > | GetVisualShapeFEA (unsigned int i) const |
| Access the specified FEA visualization object in the visualization model (if any). More... | |
| virtual unsigned int | GetNumVisualModelClones () const |
| Return the number of clones of the visual model associated with this object. More... | |
| void | AddCamera (std::shared_ptr< ChCamera > camera) |
| Attach a camera to this object. More... | |
| std::vector< std::shared_ptr< ChCamera > > | GetCameras () const |
| Get the set of cameras attached to this object. | |
| void | UpdateVisualModel () |
| Utility function to update only the associated visual assets (if any). | |
| virtual std::string & | ArchiveContainerName () |
Additional Inherited Members | |
Protected Member Functions inherited from chrono::ChObj | |
| int | GenerateUniqueIdentifier () |
Protected Attributes inherited from chrono::ChLinkBase | |
| bool | disabled |
| all constraints of link disabled because of user needs | |
| bool | valid |
| link data is valid | |
| bool | broken |
| link is broken because of excessive pulling/pushing. | |
Protected Attributes inherited from chrono::ChPhysicsItem | |
| ChSystem * | system |
| parent system | |
| unsigned int | offset_x |
| offset in vector of state (position part) | |
| unsigned int | offset_w |
| offset in vector of state (speed part) | |
| unsigned int | offset_L |
| offset in vector of lagrangian multipliers | |
Protected Attributes inherited from chrono::ChObj | |
| double | ChTime |
| object simulation time | |
| std::string | m_name |
| object name | |
| int | m_identifier |
| object unique identifier | |
| int | m_tag |
| user-supplied tag | |
| std::shared_ptr< ChVisualModelInstance > | vis_model_instance |
| instantiated visualization model | |
| std::vector< std::shared_ptr< ChCamera > > | cameras |
| set of cameras | |
Member Function Documentation
◆ ConstraintsFetch_react()
|
overridevirtual |
Fetches the reactions from the lagrangian multiplier (l_i) of encapsulated ChConstraints.
Mostly used after the solver provided the solution in ChConstraints. Also, should convert the reactions obtained from dynamical simulation, from link space to intuitive react_force and react_torque.
Reimplemented from chrono::ChPhysicsItem.
◆ Initialize() [1/2]
|
virtual |
Initialize this constraint, given the node and body frame to join.
The constraint frame is a coordinate system passed with the csys parameter, where csys is expressed in absolute coordinates
- Parameters
-
node xyz node (point) to join body body (frame) to join csys_abs attachment position in absolute coordinates
◆ Initialize() [2/2]
|
virtual |
Initialize this constraint, given the node and body frame to join.
The attachment position is the actual position of the node (unless otherwise defined, using the optional 'pos' parameter). Note: the node and body must belong to the same ChSystem.
- Parameters
-
node xyz node (point) to join body body (frame) to join pos attachment position in absolute coordinates
◆ IntFromDescriptor()
|
overridevirtual |
After a solver solution, fetch values from variables and constraints into vectors:
- Parameters
-
off_v offset for v v vector to where the q 'unknowns' term of the variables will be copied off_L offset for L L vector to where L 'lagrangian ' term of the constraints will be copied
Reimplemented from chrono::ChPhysicsItem.
◆ IntLoadConstraint_C()
|
overridevirtual |
Takes the term C, scale and adds to Qc at given offset: Qc += c*C.
- Parameters
-
off offset in Qc residual Qc result: the Qc residual, Qc += c*C c a scaling factor do_clamp apply clamping to c*C? recovery_clamp value for min/max clamping of c*C
Reimplemented from chrono::ChPhysicsItem.
◆ IntLoadResidual_CqL()
|
overridevirtual |
Takes the term Cq'*L, scale and adds to R at given offset: R += c*Cq'*L.
- Parameters
-
off_L offset in L multipliers R result: the R residual, R += c*Cq'*L L the L vector c a scaling factor
Reimplemented from chrono::ChPhysicsItem.
◆ IntStateGatherReactions()
|
overridevirtual |
From item's reaction forces to global reaction vector.
- Parameters
-
off_L offset in L vector L L vector of reaction forces
Reimplemented from chrono::ChPhysicsItem.
◆ IntStateScatterReactions()
|
overridevirtual |
From global reaction vector to item's reaction forces.
- Parameters
-
off_L offset in L vector L L vector of reaction forces
Reimplemented from chrono::ChPhysicsItem.
◆ IntToDescriptor()
|
overridevirtual |
Prepare variables and constraints to accommodate a solution:
- Parameters
-
off_v offset for v and R v vector copied into the q 'unknowns' term of the variables R vector copied into the F 'force' term of the variables off_L offset for L and Qc L vector copied into the L 'lagrangian ' term of the constraints Qc vector copied into the Qb 'constraint' term of the constraints
Reimplemented from chrono::ChPhysicsItem.
◆ SetAttachPositionInAbsoluteCoords()
|
inline |
Set the attachment position, expressed in absolute coordinates.
This function may be called only after initialization.
◆ SetAttachPositionInBodyCoords()
|
inline |
Set the attachment position, expressed in the coordinates of the body.
This function may be called only after initialization.
◆ SetAttachReferenceInAbsoluteCoords()
|
inline |
Set the attachment position, expressed in absolute coordinates.
This function may be called only after initialization.
◆ SetAttachReferenceInBodyCoords()
|
inline |
Set the attachment reference, expressed in the coordinates of the body.
This function may be called only after initialization.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono/fea/ChLinkNodeFrame.h
- /builds/uwsbel/chrono/src/chrono/fea/ChLinkNodeFrame.cpp
Public Member Functions inherited from