HertzianViscoelasticNormalSpecies.h
Go to the documentation of this file.
1 // This file is part of the MercuryDPM project (https://www.mercurydpm.org).
2 // Copyright (c), The MercuryDPM Developers Team. All rights reserved.
3 // License: BSD 3-Clause License; see the LICENSE file in the root directory.
4 
5 #ifndef HertzianViscoelasticNormalSpecies_H
6 #define HertzianViscoelasticNormalSpecies_H
7 
9 #include "Math/ExtendedMath.h"
11 
17 {
18 public:
21 
24 
27 
30 
32  void read(std::istream& is);
33 
35  void write(std::ostream& os) const;
36 
38  virtual std::string getBaseName() const;
39 
41  Mdouble getCollisionTime(Mdouble particleDiameter, Mdouble particleDensity, Mdouble relativeVelocity) const;
42 
43 // Species-specific functions
44 
45 // ///Calculates the maximum velocity allowed for a collision of two copies of P (for higher velocities particles could pass through each other)
46 // Mdouble getMaximumVelocity(Mdouble radius, Mdouble mass);
47 //
48 // ///Sets k, disp such that it matches a given tc and eps for a collision of two copies of P
49 // void setStiffnessAndRestitutionCoefficient(Mdouble k_, Mdouble eps, Mdouble mass);
50 //
51 // ///Sets k, disp such that it matches a given tc and eps for a collision of two copies of equal mass m
52 // void setCollisionTimeAndRestitutionCoefficient(Mdouble tc, Mdouble eps, Mdouble mass);
53 //
54 // ///Set k, disp such that is matches a given tc and eps for a collision of two different masses.
55 // ///Recall the resitution constant is a function of k, disp and the mass of each particle in the collision
56 // /// See also setCollisionTimeAndRestitutionCoefficient(Mdouble tc, Mdouble eps, Mdouble mass)
57 // void setCollisionTimeAndRestitutionCoefficient(Mdouble collisionTime, Mdouble restitutionCoefficient, Mdouble mass1, Mdouble mass2);
58 //
59 // /*!
60 // * \brief Calculates collision time for two copies of a particle of given disp, k, mass
61 // */
62 // Mdouble getCollisionTime(Mdouble mass);
63 //
64 // /*!
65 // * \brief Calculates restitution coefficient for two copies of given disp, k, mass
66 // */
67 // Mdouble getRestitutionCoefficient(Mdouble mass);
68 
71 
72 //setters and getters
73 
75  void setEffectiveElasticModulus(Mdouble elasticModulus);
76 
77  virtual void setEffectiveElasticModulusAndRestitutionCoefficient(Mdouble elasticModulus, Mdouble rest);
78 
80  Mdouble getEffectiveElasticModulus() const;
81 
83  void setEffectiveElasticModulusAndPoissonRatio(Mdouble elasticModulus, Mdouble poissonRatio);
84 
86  void setEffectiveElasticModulusAndEffectiveShearModulus(Mdouble elasticModulus, Mdouble shearModulus);
87 
89  void setDissipation(Mdouble dissipation);
90 
92  Mdouble getDissipation() const;
93 
95  void setRestitutionCoefficient(Mdouble rest);
96 
97 private:
99  Mdouble elasticModulus_;
100 
102  Mdouble dissipation_;
103 };
104 
105 #endif
float * p
Definition: Tutorial_Map_using.cpp:9
Definition: BaseNormalForce.h:11
Computes normal forces for a Herztian visco-elastic interaction.
Definition: HertzianViscoelasticInteraction.h:19
HertzianViscoelasticNormalSpecies contains the parameters used to describe a Hertzian normal force (T...
Definition: HertzianViscoelasticNormalSpecies.h:17
virtual std::string getBaseName() const
Used in Species::getName to obtain a unique name for each Species.
Definition: HertzianViscoelasticNormalSpecies.cc:69
void read(std::istream &is)
Reads the species properties from an input stream.
Definition: HertzianViscoelasticNormalSpecies.cc:59
HertzianViscoelasticInteraction InteractionType
The correct Interaction type for this FrictionForceSpecies.
Definition: HertzianViscoelasticNormalSpecies.h:20
HertzianViscoelasticNormalSpecies()
The default constructor.
Definition: HertzianViscoelasticNormalSpecies.cc:17
Mdouble getCollisionTime(Mdouble particleDiameter, Mdouble particleDensity, Mdouble relativeVelocity) const
Used in Species::getName to obtain a unique name for each Species.
Definition: HertzianViscoelasticNormalSpecies.cc:275
void write(std::ostream &os) const
Writes the species properties to an output stream.
Definition: HertzianViscoelasticNormalSpecies.cc:50
~HertzianViscoelasticNormalSpecies()
The default destructor.
Definition: HertzianViscoelasticNormalSpecies.cc:40
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286