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...
 
virtual 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)
 
virtual void actionsAfterTimeStep (BaseParticle *particle) const
 
- 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.

18  : BaseNormalForce()
19 {
20  elasticModulus_ = 0;
21  dissipation_ = 0;
22 #ifdef DEBUG_CONSTRUCTOR
23  std::cout<<"HertzianViscoelasticNormalSpecies::HertzianViscoelasticNormalSpecies() finished"<<std::endl;
24 #endif
25 }
BaseNormalForce()
Definition: BaseNormalForce.h:14

◆ HertzianViscoelasticNormalSpecies() [2/2]

HertzianViscoelasticNormalSpecies::HertzianViscoelasticNormalSpecies ( const HertzianViscoelasticNormalSpecies p)

The default copy constructor.

Parameters
[in]thespecies that is copied
32 {
33  elasticModulus_ = p.elasticModulus_;
34  dissipation_ = p.dissipation_;
35 #ifdef DEBUG_CONSTRUCTOR
36  std::cout<<"HertzianViscoelasticNormalSpecies::HertzianViscoelasticNormalSpecies(const HertzianViscoelasticNormalSpecies &p) finished"<<std::endl;
37 #endif
38 }
float * p
Definition: Tutorial_Map_using.cpp:9

References p.

◆ ~HertzianViscoelasticNormalSpecies()

HertzianViscoelasticNormalSpecies::~HertzianViscoelasticNormalSpecies ( )

The default destructor.

41 {
42 #ifdef DEBUG_DESTRUCTOR
43  std::cout<<"HertzianViscoelasticNormalSpecies::~HertzianViscoelasticNormalSpecies() finished"<<std::endl;
44 #endif
45 }

Member Function Documentation

◆ getBaseName()

std::string HertzianViscoelasticNormalSpecies::getBaseName ( ) const
virtual

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")

Reimplemented in HertzianBSHPViscoelasticNormalSpecies.

70 {
71  return "HertzianViscoelastic";
72 }

◆ 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
277 {
278  // Here is a very nice paper describing contact modelling
279  //https://iopscience.iop.org/article/10.1209/0295-5075/94/50004 (Antypov_Elliott_EPL_2011)
280  //caution: this function assumes the contact is elastic (no dissipation)
281  //Mdouble omega0 = 2.0/constants::sqrt_pi*sqrt(getEffectiveElasticModulus()/particleDensity)/relativeVelocity;
282  //Mdouble omega1 = sqrt(omega0*omega0-getDissipation()*getDissipation());
283  return 2.214 * pow(mathsFunc::square(particleDensity / getEffectiveElasticModulus()) / relativeVelocity, 0.2) *
284  particleDiameter;
285 }
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 pow(const bfloat16 &a, const bfloat16 &b)
Definition: BFloat16.h:625
T square(const T val)
squares a number
Definition: ExtendedMath.h:86

References Eigen::bfloat16_impl::pow(), and mathsFunc::square().

◆ read()

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

Reads the species properties from an input stream.

Parameters
[in]inputstream (typically the restart file)
60 {
61  std::string dummy;
62  is >> dummy >> elasticModulus_
63  >> dummy >> dissipation_;
64 }
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286

References oomph::Global_string_for_annotation::string().

◆ write()

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

Writes the species properties to an output stream.

Parameters
[out]outputstream (typically the restart file)
51 {
52  os << " elasticModulus " << elasticModulus_
53  << " dissipation " << dissipation_;
54 }

The documentation for this class was generated from the following files: