Description
Load representing a concentrated force acting on a ChNodeXYZ, as a constant force, or it provides a function to modulate it with time.
#include <ChLoadsXYZnode.h>


| Public Member Functions | |
| ChLoadXYZnodeForceAbsolute (std::shared_ptr< ChNodeXYZ > node, const ChVector<> &force) | |
| virtual ChLoadXYZnodeForceAbsolute * | Clone () const override | 
| "Virtual" copy constructor (covariant return type). | |
| virtual void | ComputeForce (const ChVector<> &abs_pos, const ChVector<> &abs_vel, ChVector<> &abs_force) override | 
| Compute the force on the node, in absolute coordsystem, given position of node as abs_pos. | |
| void | SetForceBase (const ChVector<> &force) | 
| Set the applied force vector: it is assumed constant, unless a non-constant scaling time function is provided.  More... | |
| ChVector | GetForce () const | 
| Return the current force vector (scaled by the current modulation value). | |
| void | SetModulationFunction (std::shared_ptr< ChFunction > modulation) | 
| Set modulation function.  More... | |
|  Public Member Functions inherited from chrono::ChLoadXYZnodeForce | |
| ChLoadXYZnodeForce (std::shared_ptr< ChNodeXYZ > body) | |
| virtual void | ComputeQ (ChState *state_x, ChStateDelta *state_w) override | 
| Compute Q, the generalized load.  More... | |
| ChVector | GetForce () const | 
| For diagnosis purposes, this can return the actual last computed value of the applied force, expressed in absolute coordinate system, assumed applied to node. | |
|  Public Member Functions inherited from chrono::ChLoadCustom | |
| ChLoadCustom (std::shared_ptr< ChLoadable > mloadable) | |
| 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, 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 | LoadIntLoadResidual_Mv (ChVectorDynamic<> &R, const ChVectorDynamic<> &w, double c) override | 
| Default fallback: compute jacobians via ComputeJacobian(), then use M=-dQ/da to do R += c*M*w.  More... | |
| 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 | 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) | |
| 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 bool | IsStiff () override | 
| Inherited classes could override this and return true, if the load benefits from a jacobian when using implicit integrators.  More... | |
| virtual void | Update (double time) override | 
| Update: this is called at least at each time step.  More... | |
| Protected Attributes | |
| ChVector | m_force_base | 
| base force value | |
| std::shared_ptr< ChFunction > | m_modulation | 
| modulation function of time | |
| double | m_scale | 
| scaling factor (current modulation value) | |
|  Protected Attributes inherited from chrono::ChLoadXYZnodeForce | |
| ChVector | computed_abs_force | 
|  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::ChLoadCustom | |
| std::shared_ptr< ChLoadable > | loadable | 
| ChVectorDynamic | load_Q | 
Constructor & Destructor Documentation
◆ ChLoadXYZnodeForceAbsolute()
| chrono::ChLoadXYZnodeForceAbsolute::ChLoadXYZnodeForceAbsolute | ( | std::shared_ptr< ChNodeXYZ > | node, | 
| const ChVector<> & | force | ||
| ) | 
- Parameters
- 
  node node to apply load to force force to apply, assumed in absolute coordsys, 
Member Function Documentation
◆ IsStiff()
| 
 | inlineoverrideprotectedvirtual | 
Inherited classes could override this and return true, if the load benefits from a jacobian when using implicit integrators.
 
Reimplemented from chrono::ChLoadXYZnodeForce.
◆ SetForceBase()
| void chrono::ChLoadXYZnodeForceAbsolute::SetForceBase | ( | const ChVector<> & | force | ) | 
Set the applied force vector: it is assumed constant, unless a non-constant scaling time function is provided.
It is expressed in absolute coordinates. 
 
◆ SetModulationFunction()
| 
 | inline | 
Set modulation function.
This is a function of time which (optionally) modulates the specified applied force. By default the modulation is a constant function, always returning a value of 1.
◆ Update()
| 
 | overrideprotectedvirtual | 
Update: this is called at least at each time step.
- It recomputes the generalized load Q vector(s)
- It recomputes the jacobian(s) K,R,M in case of stiff load Q and jacobians assumed evaluated at the current state. Jacobian structures are automatically allocated if needed.
Reimplemented from chrono::ChLoadXYZnodeForce.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono/physics/ChLoadsXYZnode.h
- /builds/uwsbel/chrono/src/chrono/physics/ChLoadsXYZnode.cpp
