Description
Load representing a concentrated force acting on a ChNodeXYZ, as a constant force, or it provides a function to modulate it with time.
As it is constant in space, IsStiff() is false, as default.
#include <ChLoadsXYZROTnode.h>
Public Member Functions | |
ChLoadXYZROTnodeForceAbsolute (std::shared_ptr< ChNodeFEAxyzrot > node, const ChVector<> &force) | |
virtual ChLoadXYZROTnodeForceAbsolute * | Clone () const override |
"Virtual" copy constructor (covariant return type). | |
virtual void | ComputeForceTorque (const ChFrameMoving<> &node_frame_abs_pos_vel, ChVector<> &abs_force, ChVector<> &abs_torque) override |
Compute the force on the node, in absolute coordsystem, given absolute position and speed of node passed via node_frame_abs_pos_vel. More... | |
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::fea::ChLoadXYZROTnode | |
ChLoadXYZROTnode (std::shared_ptr< ChNodeFEAxyzrot > 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. | |
ChVector | GetTorque () const |
For diagnosis purposes, this can return the actual last computed value of the applied torque, 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, 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 | 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 bool | IsStiff () override |
Inherited classes could override this and return true, if the load benefits from a jacobian when using implicit integrators. | |
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::fea::ChLoadXYZROTnode | |
ChVector | computed_abs_force |
ChVector | computed_abs_torque |
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
◆ ChLoadXYZROTnodeForceAbsolute()
chrono::fea::ChLoadXYZROTnodeForceAbsolute::ChLoadXYZROTnodeForceAbsolute | ( | std::shared_ptr< ChNodeFEAxyzrot > | node, |
const ChVector<> & | force | ||
) |
- Parameters
-
node node to apply load to force force to apply, assumed in absolute coordsys,
Member Function Documentation
◆ ComputeForceTorque()
|
overridevirtual |
Compute the force on the node, in absolute coordsystem, given absolute position and speed of node passed via node_frame_abs_pos_vel.
Compute the force on the node, in absolute coordsystem, given position of node as abs_pos.
Implements chrono::fea::ChLoadXYZROTnode.
◆ SetForceBase()
void chrono::fea::ChLoadXYZROTnodeForceAbsolute::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::fea::ChLoadXYZROTnode.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono/fea/ChLoadsXYZROTnode.h
- /builds/uwsbel/chrono/src/chrono/fea/ChLoadsXYZROTnode.cpp