proteus 1.9.0
C/C++/Fortran libraries
Loading...
Searching...
No Matches
ChBodyAddedMass.h
Go to the documentation of this file.
1#ifndef CHBODYADDEDMASS_H
2#define CHBODYADDEDMASS_H
3
4#include "chrono/physics/ChBody.h"
6
7namespace chrono {
8 class ChBodyAddedMass : public ChBody {
9 protected:
11 public:
13 virtual ~ChBodyAddedMass() {}
14 void SetMass(double newmass);
15 void SetInertia(const ChMatrix33<>& iner);
16 void SetInertiaXX(const ChVector3d& iner);
17 void SetInertiaXY(const ChVector3d& iner);
18 /* ChVector<> GetInertiaXX(); */
19 /* ChVector<> GetInertiaXY(); */
20 /* double GetMass() { return variables.GetBodyMass(); }; */
21 /* const ChMatrix33<>& GetInertia() { return variables.GetBodyInertia(); } */
22 void SetMfullmass(ChMatrixDynamic<> Mfullmass_in);
23 void SetInvMfullmass(ChMatrixDynamic<> inv_Mfullmass_in);
24 ChVariables& Variables() override { return variables; }
25 ChVariablesBodyOwnMass& VariablesBody() { return variables; }
27 //
28 // STATE FUNCTIONS
29 //
30
31 // (override/implement interfaces for global state vectors, see ChPhysicsItem for comments.)
32
33 virtual void IntToDescriptor(const unsigned int off_v,
34 const ChStateDelta& v,
35 const ChVectorDynamic<>& R,
36 const unsigned int off_L,
37 const ChVectorDynamic<>& L,
38 const ChVectorDynamic<>& Qc) override;
39 virtual void IntFromDescriptor(const unsigned int off_v,
40 ChStateDelta& v,
41 const unsigned int off_L,
42 ChVectorDynamic<>& L) override;
43 virtual void IntLoadResidual_F(const unsigned int off, ChVectorDynamic<>& R, const double c) override;
44
45 virtual void IntLoadResidual_Mv(const unsigned int off,
46 ChVectorDynamic<>& R,
47 const ChVectorDynamic<>& w,
48 const double c) override;
49
50 //
51 // SOLVER FUNCTIONS
52 //
53
54 // Override/implement solver system functions of ChPhysicsItem
55 // (to assemble/manage data for system solver)
56
58 virtual void VariablesFbReset() override;
59
62 virtual void VariablesFbLoadForces(double factor = 1) override;
63
67 virtual void VariablesQbLoadSpeed() override;
68
72 virtual void VariablesFbIncrementMq() override;
73
80 virtual void VariablesQbSetSpeed(double step = 0) override;
81
88 virtual void VariablesQbIncrementPosition(double step) override;
89
92 virtual void InjectVariables(ChSystemDescriptor& mdescriptor) override;
93
94 };
95
96} // end namespace chrono
97
99
100#endif
101
chrono::ChBodyAddedMass * newChBodyAddedMass()
Double L
Definition Headers.h:72
Double v
Definition Headers.h:95
Double R
Definition Headers.h:82
virtual void InjectVariables(ChSystemDescriptor &mdescriptor) override
virtual void IntFromDescriptor(const unsigned int off_v, ChStateDelta &v, const unsigned int off_L, ChVectorDynamic<> &L) override
void SetMass(double newmass)
ChVariablesBodyAddedMass & VariablesBodyAddedMass()
virtual void VariablesFbLoadForces(double factor=1) override
void SetMfullmass(ChMatrixDynamic<> Mfullmass_in)
virtual void VariablesFbIncrementMq() override
virtual void IntLoadResidual_Mv(const unsigned int off, ChVectorDynamic<> &R, const ChVectorDynamic<> &w, const double c) override
void SetInertiaXY(const ChVector3d &iner)
virtual void VariablesQbSetSpeed(double step=0) override
ChVariables & Variables() override
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
ChVariablesBodyOwnMass & VariablesBody()
virtual void VariablesQbLoadSpeed() override
virtual void VariablesFbReset() override
Sets the 'fb' part of the encapsulated ChVariablesBodyOwnMass to zero.
void SetInertia(const ChMatrix33<> &iner)
void SetInvMfullmass(ChMatrixDynamic<> inv_Mfullmass_in)
virtual void IntLoadResidual_F(const unsigned int off, ChVectorDynamic<> &R, const double c) override
virtual void VariablesQbIncrementPosition(double step) override
void SetInertiaXX(const ChVector3d &iner)
ChVariablesBodyAddedMass variables
#define c(i)
Definition jf.h:21
#define w(x)
Definition jf.h:22