Go to the documentation of this file.
14 #ifndef MODEL_DAMPING_HPP
15 #define MODEL_DAMPING_HPP
43 m_force=
Vec3(0.0,0.0,0.0);
77 m_force=
Vec3(0.0,0.0,0.0);
102 Vec3 v=m_p->getVel();
104 Vec3 frc=m_p->getForce();
106 double s=m_p->getInvMass();
107 double mass=m_p->getMass();
110 while((error*error>s_limit2) & (count<m_maxiter)){
113 v_rel=v-m_vref+s*m_dt*(frc-v_rel*m_visc*mass);
114 error=(v_rel-v_old).norm2();
116 if(count>=m_maxiter){
118 v_rel=
Vec3(0.0,0.0,0.0);
120 m_force=-1.0*m_visc*v_rel*mass;
121 m_p->applyForce(m_force,m_p->getPos());
123 m_E_diss=m_visc*v_rel*v*m_dt;
136 if(name==
"dissipated_energy"){
140 cerr <<
"ERROR - invalid name for interaction scalar access function" << endl;
157 cerr <<
"ERROR - invalid name for interaction scalar access function" << endl;
177 cerr <<
"ERROR - invalid name for interaction vector access function" << endl;
207 int tag1=m_p->getTag();
209 return ((tag1 & mask)==(tag & mask));
220 res.push_back(m_p->getID());
static ScalarFieldFunction getScalarFieldFunction(const string &)
Definition: Damping.hpp:132
virtual bool hasTag(int, int) const
Definition: Damping.hpp:205
static CheckedScalarFieldFunction getCheckedScalarFieldFunction(const string &)
Definition: Damping.hpp:152
void setTimeStepSize(double dt)
Definition: Damping.hpp:88
Vec3 getVRef() const
Definition: DampingIGP.h:49
static VectorFieldFunction getVectorFieldFunction(const string &)
Definition: Damping.hpp:169
int getMaxIter() const
Definition: DampingIGP.h:56
CDamping(T *, const Vec3 &, double, double, int)
Definition: Damping.hpp:36
Damping of the particle motion by an artificial viscosity.
Definition: Damping.h:30
Vec3 getForce() const
Definition: Damping.hpp:193
#define NULL
Definition: t_list.h:17
vector< int > getAllID() const
Definition: Damping.hpp:216
double getDissipatedEnergy() const
Definition: Damping.hpp:187
virtual ~CDamping()
Definition: Damping.hpp:84
Interaction group parameters for CDampingGroup.
Definition: DampingIGP.h:28
virtual void calcForces()
Definition: Damping.hpp:99
double getTimeStep() const
Definition: DampingIGP.h:54
double getVisc() const
Definition: DampingIGP.h:51