Description
Load for a visco-elasto-plastic bushing acting between two bodies.
It uses three values for stiffness along the X Y Z axes of a coordinate system attached to the second body. This is equivalent to having a bushing with 3x3 diagonal local stiffness matrix. Also, it allows a very simple plasticity model, to cap the plastic force on x,y,z given three yelds.
#include <ChLoadsBody.h>


Public Member Functions | |
| ChLoadBodyBodyBushingPlastic (std::shared_ptr< ChBody > mbodyA, std::shared_ptr< ChBody > mbodyB, const ChFrame<> &abs_application, const ChVector<> &mstiffness, const ChVector<> &mdamping, const ChVector<> &myield) | |
| void | SetYeld (const ChVector<> myeld) | 
| Set plastic yield, forces beyond this limit will be capped.  More... | |
| ChVector | GetYeld () const | 
| ChVector | GetPlasticDeformation () const | 
| Get the current accumulated plastic deformation.  More... | |
  Public Member Functions inherited from chrono::ChLoadBodyBodyBushingSpherical | |
| ChLoadBodyBodyBushingSpherical (std::shared_ptr< ChBody > mbodyA, std::shared_ptr< ChBody > mbodyB, const ChFrame<> &abs_application, const ChVector<> &mstiffness, const ChVector<> &mdamping) | |
| virtual ChLoadBodyBodyBushingSpherical * | Clone () const override | 
| "Virtual" copy constructor (covariant return type).  | |
| void | SetStiffness (const ChVector<> mstiffness) | 
| Set stiffness, along the x y z axes of loc_application_B, es [N/m].  | |
| ChVector | GetStiffness () const | 
| void | SetDamping (const ChVector<> mdamping) | 
| Set damping, along the x y z axes of loc_application_B, es [Ns/m].  | |
| ChVector | GetDamping () const | 
  Public Member Functions inherited from chrono::ChLoadBodyBody | |
| ChLoadBodyBody (std::shared_ptr< ChBody > bodyA, std::shared_ptr< ChBody > bodyB, const ChFrame<> &abs_application) | |
| ChVector | GetForce () const | 
| For diagnosis purposes, this can return the actual last computed value of the applied force, expressed in coordinate system of loc_application_B, assumed applied to body B.  | |
| ChVector | GetTorque () const | 
| For diagnosis purposes, this can return the actual last computed value of the applied torque, expressed in coordinate system of loc_application_B, assumed applied to body B.  | |
| void | SetApplicationFrameA (const ChFrame<> &mpA) | 
| Set the application frame of bushing on bodyA.  | |
| ChFrame | GetApplicationFrameA () const | 
| void | SetApplicationFrameB (const ChFrame<> &mpB) | 
| Set the application frame of bushing on bodyB.  | |
| ChFrame | GetApplicationFrameB () const | 
| ChFrameMoving | GetAbsoluteFrameA () const | 
| Get absolute coordinate of frame A (last computed)  | |
| ChFrameMoving | GetAbsoluteFrameB () const | 
| Get absolute coordinate of frame B (last computed)  | |
| std::shared_ptr< ChBody > | GetBodyA () const | 
| std::shared_ptr< ChBody > | GetBodyB () const | 
  Public Member Functions inherited from chrono::ChLoadCustomMultiple | |
| ChLoadCustomMultiple (std::vector< std::shared_ptr< ChLoadable >> &mloadables) | |
| ChLoadCustomMultiple (std::shared_ptr< ChLoadable > mloadableA, std::shared_ptr< ChLoadable > mloadableB) | |
| ChLoadCustomMultiple (std::shared_ptr< ChLoadable > mloadableA, std::shared_ptr< ChLoadable > mloadableB, std::shared_ptr< ChLoadable > mloadableC) | |
| virtual int | LoadGet_ndof_x () override | 
| Gets the number of DOFs affected by this load (position part)  | |
| virtual int | LoadGet_ndof_w () override | 
| Gets the number of DOFs affected by this load (speed part)  | |
| virtual void | LoadGetStateBlock_x (ChState &mD) override | 
| Gets all the current DOFs packed in a single vector (position part)  | |
| virtual void | LoadGetStateBlock_w (ChStateDelta &mD) override | 
| Gets all the current DOFs packed in a single vector (speed part)  | |
| virtual void | LoadStateIncrement (const ChState &x, const ChStateDelta &dw, ChState &x_new) override | 
| Increment a packed state (ex.  More... | |
| virtual int | LoadGet_field_ncoords () override | 
| Number of coordinates in the interpolated field, ex=3 for a tetrahedron finite element or a cable, = 1 for a thermal problem, etc.  | |
| virtual void | ComputeJacobian (ChState *state_x, ChStateDelta *state_w, ChMatrixRef mK, ChMatrixRef mR, ChMatrixRef mM) override | 
| Compute jacobians (default fallback).  More... | |
| virtual void | LoadIntLoadResidual_F (ChVectorDynamic<> &R, const double c) override | 
| Adds the internal loads Q (pasted at global nodes offsets) into a global vector R, multiplied by a scaling factor c, as R += forces * c.  | |
| virtual void | CreateJacobianMatrices () override | 
| Create the jacobian loads if needed, and also set the ChVariables referenced by the sparse KRM block.  | |
| virtual ChVectorDynamic & | GetQ () | 
| Access the generalized load vector Q.  | |
  Public Member Functions inherited from chrono::ChLoadBase | |
| ChLoadJacobians * | GetJacobians () | 
| Access the jacobians (if any, i.e. if this is a stiff load)  | |
| virtual void | Update (double time) | 
| Update: this is called at least at each time step.  More... | |
| virtual void | InjectKRMmatrices (ChSystemDescriptor &mdescriptor) | 
| Tell to a system descriptor that there are item(s) of type ChKblock in this object (for further passing it to a solver) Basically does nothing, but inherited classes must specialize this.  | |
| virtual void | KRMmatricesLoad (double Kfactor, double Rfactor, double Mfactor) | 
| Adds the current stiffness K and damping R and mass M matrices in encapsulated ChKblock item(s), if any.  More... | |
  Public Member Functions inherited from chrono::ChObj | |
| ChObj (const ChObj &other) | |
| int | GetIdentifier () const | 
| Gets the numerical identifier of the object.  | |
| void | SetIdentifier (int id) | 
| Sets the numerical identifier of the object.  | |
| double | GetChTime () const | 
| Gets the simulation time of this object.  | |
| void | SetChTime (double m_time) | 
| Sets the simulation time of this object.  | |
| const char * | GetName () const | 
| Gets the name of the object as C Ascii null-terminated string -for reading only!  | |
| void | SetName (const char myname[]) | 
| Sets the name of this object, as ascii string.  | |
| std::string | GetNameString () const | 
| Gets the name of the object as C Ascii null-terminated string.  | |
| void | SetNameString (const std::string &myname) | 
| Sets the name of this object, as std::string.  | |
| void | MFlagsSetAllOFF (int &mflag) | 
| void | MFlagsSetAllON (int &mflag) | 
| void | MFlagSetON (int &mflag, int mask) | 
| void | MFlagSetOFF (int &mflag, int mask) | 
| int | MFlagGet (int &mflag, int mask) | 
| virtual void | ArchiveOUT (ChArchiveOut &marchive) | 
| Method to allow serialization of transient data to archives.  | |
| virtual void | ArchiveIN (ChArchiveIn &marchive) | 
| Method to allow de-serialization of transient data from archives.  | |
| virtual std::string & | ArchiveContainerName () | 
Protected Member Functions | |
| virtual void | ComputeBodyBodyForceTorque (const ChFrameMoving<> &rel_AB, ChVector<> &loc_force, ChVector<> &loc_torque) override | 
| Implement the computation of the bushing force, in local coordinates of the loc_application_B.  More... | |
  Protected Member Functions inherited from chrono::ChLoadBodyBodyBushingSpherical | |
| virtual bool | IsStiff () override | 
| Report if this is load is stiff.  More... | |
  Protected Member Functions inherited from chrono::ChLoadBodyBody | |
| virtual void | ComputeQ (ChState *state_x, ChStateDelta *state_w) override | 
| Compute Q, the generalized load.  More... | |
Protected Attributes | |
| ChVector | yield | 
| ChVector | plastic_def | 
  Protected Attributes inherited from chrono::ChLoadBodyBodyBushingSpherical | |
| ChVector | stiffness | 
| ChVector | damping | 
  Protected Attributes inherited from chrono::ChLoadBodyBody | |
| ChFrame | loc_application_A | 
| application point on body A (local)  | |
| ChFrame | loc_application_B | 
| application point on body B (local)  | |
| ChVector | locB_force | 
| store computed values here  | |
| ChVector | locB_torque | 
| store computed values here  | |
| ChFrameMoving | frame_Aw | 
| for results  | |
| ChFrameMoving | frame_Bw | 
| for results  | |
  Protected Attributes inherited from chrono::ChLoadBase | |
| ChLoadJacobians * | jacobians | 
  Protected Attributes inherited from chrono::ChObj | |
| double | ChTime | 
| the time of simulation for the object  | |
Additional Inherited Members | |
  Public Attributes inherited from chrono::ChLoadCustomMultiple | |
| std::vector< std::shared_ptr< ChLoadable > > | loadables | 
| ChVectorDynamic | load_Q | 
Constructor & Destructor Documentation
◆ ChLoadBodyBodyBushingPlastic()
| chrono::ChLoadBodyBodyBushingPlastic::ChLoadBodyBodyBushingPlastic | ( | std::shared_ptr< ChBody > | mbodyA, | 
| std::shared_ptr< ChBody > | mbodyB, | ||
| const ChFrame<> & | abs_application, | ||
| const ChVector<> & | mstiffness, | ||
| const ChVector<> & | mdamping, | ||
| const ChVector<> & | myield | ||
| ) | 
- Parameters
 - 
  
mbodyA body A mbodyB body B abs_application create the bushing here, in abs. coordinates. mstiffness stiffness, along the x y z axes of the abs_application mdamping damping, along the x y z axes of the abs_application myield plastic yield, along the x y z axes of the abs_application  
Member Function Documentation
◆ ComputeBodyBodyForceTorque()
      
  | 
  overrideprotectedvirtual | 
Implement the computation of the bushing force, in local coordinates of the loc_application_B.
Force is assumed applied to body B, and its opposite to A.
Reimplemented from chrono::ChLoadBodyBodyBushingSpherical.
◆ GetPlasticDeformation()
      
  | 
  inline | 
Get the current accumulated plastic deformation.
This could become nonzero if forces went beyond the plastic yield.
◆ SetYeld()
      
  | 
  inline | 
Set plastic yield, forces beyond this limit will be capped.
Expressed along the x y z axes of loc_application_B.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono/physics/ChLoadsBody.h
 - /builds/uwsbel/chrono/src/chrono/physics/ChLoadsBody.cpp
 
 Public Member Functions inherited from