ESyS-Particle
4.0.1
|
Frictional+Elastic interaction between particles between rotational particles. More...
#include <RotFricInteraction.h>
Public Types | |
typedef CRotFrictionIGP | ParameterType |
typedef double(CRotFrictionInteraction::* | ScalarFieldFunction )() const |
typedef pair< bool, double > (CRotFrictionInteraction::* | CheckedScalarFieldFunction )() const |
typedef Vec3(CRotFrictionInteraction::* | VectorFieldFunction )() const |
Public Member Functions | |
CRotFrictionInteraction (CRotParticle *, CRotParticle *, const CRotFrictionIGP &) | |
virtual void | calcForces () |
virtual void | calcSimpleForces () |
virtual void | calcRigidBodyForces () |
virtual bool | isPersistent () |
void | setTimeStepSize (double dt) |
void | calcNormalForce () |
double | getAbsForceDeficit () const |
double | getPotentialEnergy () const |
double | getSlipping () const |
double | getSticking () const |
double | getDissipatedEnergy () const |
virtual double | Count () const |
virtual Vec3 | getPos () const |
Vec3 | getForce () const |
Vec3 | getNormalForce () const |
virtual void | saveRestartData (std::ostream &oStream) |
virtual void | loadRestartData (std::istream &iStream) |
![]() | |
ARotPairInteraction (CRotParticle *, CRotParticle *) | |
const CParticle * | first () const |
const CParticle * | second () const |
CRotParticle * | first () |
CRotParticle * | second () |
pair< int, int > | getPairID () const |
void | checkIDs () |
virtual bool | hasTag (int, int) const |
virtual Vec3 | getPosFirst () const |
virtual Vec3 | getPosSecond () const |
void | setPP (CRotParticle *, CRotParticle *) |
void | setPP (const vector< CRotParticle * >) |
esys::lsm::quintuple< Vec3, double, Vec3, double, Vec3 > | getRaw2Data () const |
virtual void | calcHeatTrans () |
virtual void | calcHeatFrict () |
![]() | |
bool | initialized () const |
vector< int > | getAllID () const |
int | getID () |
Static Public Member Functions | |
static CheckedScalarFieldFunction | getCheckedScalarFieldFunction (const string &) |
static ScalarFieldFunction | getScalarFieldFunction (const string &) |
static VectorFieldFunction | getVectorFieldFunction (const string &) |
static string | getType () |
Friends | |
class | TML_PackedMessageInterface |
ostream & | operator<< (ostream &, const CRotFrictionInteraction &) |
Additional Inherited Members | |
![]() | |
CRotParticle * | m_p1 |
CRotParticle * | m_p2 |
![]() | |
vector< int > | m_id |
id's of the particles involved | |
int | m_iid |
interaction id | |
bool | m_init |
Frictional+Elastic interaction between particles between rotational particles.
void CRotFrictionInteraction::calcNormalForce | ( | ) |
Calculate the normal force.
|
virtual |
Yucang Wang's friction implementation which takes into account rigid body rotation of particle-pairs.
References CParticle::applyForce(), and CRotParticle::applyMoment().
|
virtual |
Calculate elastic and frictional forces. Rigid body rotations of particle-pairs are ignored
References CParticle::applyForce(), and CRotParticle::applyMoment().
|
virtual |
return 1 if particles are in contact, 0 otherwise
Reimplemented from AInteraction.
Referenced by getScalarFieldFunction().
double CRotFrictionInteraction::getAbsForceDeficit | ( | ) | const |
get the force needed to overcome friction and make the interaction slip
Referenced by getScalarFieldFunction().
double CRotFrictionInteraction::getDissipatedEnergy | ( | ) | const |
return the amount of energy dissipated during the last time step
Referenced by getScalarFieldFunction().
Vec3 CRotFrictionInteraction::getForce | ( | ) | const |
If the particles are in contact, get total force, if not in contact return (0,0,0)
Referenced by getVectorFieldFunction().
Vec3 CRotFrictionInteraction::getNormalForce | ( | ) | const |
If the particles are in contact, get normal force, if not in contact return (0,0,0)
Referenced by getVectorFieldFunction().
double CRotFrictionInteraction::getPotentialEnergy | ( | ) | const |
get the potential energy stored in the interaction
Referenced by getScalarFieldFunction().
|
static |
Get the particle member function which returns a scalar field of a given name.
name | the name of the field |
References Count(), getAbsForceDeficit(), getDissipatedEnergy(), getPotentialEnergy(), getSlipping(), and getSticking().
double CRotFrictionInteraction::getSlipping | ( | ) | const |
Get the static/dynamic status of the interaction. Returns 1 for a contact in dynamic friction, 0 for static or no contact
Referenced by getScalarFieldFunction().
double CRotFrictionInteraction::getSticking | ( | ) | const |
Get "sticking" contacts, i.e. return 1 if the contact is touching but not slipping, 0 otherwise
Referenced by getScalarFieldFunction().
|
static |
Get the particle member function which returns a vector field of a given name.
name | the name of the field |
References getForce(), and getNormalForce().
|
virtual |
Load restart data from an open istream
iStream | the input stream |
Reimplemented from ARotPairInteraction.
References AInteraction::m_id.
|
virtual |
Save restart data to an open ostream
oStream | the output stream |
Reimplemented from ARotPairInteraction.
References AInteraction::m_id.