revision: v0.14
HertzianViscoelasticNormalSpecies Class Reference

HertzianViscoelasticNormalSpecies contains the parameters used to describe a Hertzian normal force (The Mindlin model). More...

#include <HertzianViscoelasticNormalSpecies.h>

+ Inheritance diagram for HertzianViscoelasticNormalSpecies:

Public Types

typedef HertzianViscoelasticInteraction InteractionType
 The correct Interaction type for this FrictionForceSpecies. More...
 

Public Member Functions

 HertzianViscoelasticNormalSpecies ()
 The default constructor. More...
 
 HertzianViscoelasticNormalSpecies (const HertzianViscoelasticNormalSpecies &p)
 The default copy constructor. More...
 
 ~HertzianViscoelasticNormalSpecies ()
 The default destructor. More...
 
void read (std::istream &is)
 Reads the species properties from an input stream. More...
 
void write (std::ostream &os) const
 Writes the species properties to an output stream. More...
 
std::string getBaseName () const
 Used in Species::getName to obtain a unique name for each Species. More...
 
Mdouble getCollisionTime (Mdouble particleDiameter, Mdouble particleDensity, Mdouble relativeVelocity) const
 Used in Species::getName to obtain a unique name for each Species. More...
 
- Public Member Functions inherited from BaseNormalForce
 BaseNormalForce ()
 
 BaseNormalForce (const BaseNormalForce &p)
 
bool getConstantRestitution () const
 
void setConstantRestitution (bool constantRestitution)
 
- Public Member Functions inherited from BaseForce
BaseSpeciesgetBaseSpecies () const
 
void setBaseSpecies (BaseSpecies *baseSpecies)
 

Detailed Description

HertzianViscoelasticNormalSpecies contains the parameters used to describe a Hertzian normal force (The Mindlin model).

See HertzianViscoelasticNormalInteraction::computeForce for a description of the force law.

Member Typedef Documentation

◆ InteractionType

The correct Interaction type for this FrictionForceSpecies.

Constructor & Destructor Documentation

◆ HertzianViscoelasticNormalSpecies() [1/2]

HertzianViscoelasticNormalSpecies::HertzianViscoelasticNormalSpecies ( )

The default constructor.

39  : BaseNormalForce()
40 {
41  elasticModulus_ = 0;
42  dissipation_ = 0;
43 #ifdef DEBUG_CONSTRUCTOR
44  std::cout<<"HertzianViscoelasticNormalSpecies::HertzianViscoelasticNormalSpecies() finished"<<std::endl;
45 #endif
46 }

◆ HertzianViscoelasticNormalSpecies() [2/2]

HertzianViscoelasticNormalSpecies::HertzianViscoelasticNormalSpecies ( const HertzianViscoelasticNormalSpecies p)

The default copy constructor.

Parameters
[in]thespecies that is copied
52  : BaseNormalForce(p)
53 {
54  elasticModulus_ = p.elasticModulus_;
55  dissipation_ = p.dissipation_;
56 #ifdef DEBUG_CONSTRUCTOR
57  std::cout<<"HertzianViscoelasticNormalSpecies::HertzianViscoelasticNormalSpecies(const HertzianViscoelasticNormalSpecies &p) finished"<<std::endl;
58 #endif
59 }

◆ ~HertzianViscoelasticNormalSpecies()

HertzianViscoelasticNormalSpecies::~HertzianViscoelasticNormalSpecies ( )

The default destructor.

62 {
63 #ifdef DEBUG_DESTRUCTOR
64  std::cout<<"HertzianViscoelasticNormalSpecies::~HertzianViscoelasticNormalSpecies() finished"<<std::endl;
65 #endif
66 }

Member Function Documentation

◆ getBaseName()

std::string HertzianViscoelasticNormalSpecies::getBaseName ( ) const

Used in Species::getName to obtain a unique name for each Species.

Returns
a string containing the name of the species (minus the word "Species")
91 {
92  return "HertzianViscoelastic";
93 }

◆ getCollisionTime()

Mdouble HertzianViscoelasticNormalSpecies::getCollisionTime ( Mdouble  particleDiameter,
Mdouble  particleDensity,
Mdouble  relativeVelocity 
) const

Used in Species::getName to obtain a unique name for each Species.

Parameters
[in]relativeVelocityinput the maximum relative velocity in your system to get the mininimum collision time
[in]particleDiameterinput the minimum particle diameter in your system to get the mininimum collision time
[in]particleDensityinput the minimum particle density in your system to get the mininimum collision time
286 {
287  // Here is a very nice paper describing contact modelling
288  // http://people.ds.cam.ac.uk/jae1001/CUS/research/pfizer/Antypov_Elliott_EPL_2011.pdf
289  //caution: this function assumes the contact is elastic (no dissipation)
290  //Mdouble omega0 = 2.0/constants::sqrt_pi*sqrt(getEffectiveElasticModulus()/particleDensity)/relativeVelocity;
291  //Mdouble omega1 = sqrt(omega0*omega0-getDissipation()*getDissipation());
292  return 2.214 * pow(mathsFunc::square(particleDensity / getEffectiveElasticModulus()) / relativeVelocity, 0.2) *
293  particleDiameter;
294 }

References mathsFunc::square().

◆ read()

void HertzianViscoelasticNormalSpecies::read ( std::istream &  is)

Reads the species properties from an input stream.

Parameters
[in]inputstream (typically the restart file)
81 {
82  std::string dummy;
83  is >> dummy >> elasticModulus_
84  >> dummy >> dissipation_;
85 }

◆ write()

void HertzianViscoelasticNormalSpecies::write ( std::ostream &  os) const

Writes the species properties to an output stream.

Parameters
[out]outputstream (typically the restart file)
72 {
73  os << " elasticModulus " << elasticModulus_
74  << " dissipation " << dissipation_;
75 }

The documentation for this class was generated from the following files:
mathsFunc::square
T square(const T val)
squares a number
Definition: ExtendedMath.h:106
BaseNormalForce::BaseNormalForce
BaseNormalForce()
Definition: BaseNormalForce.h:34