ChargedBondedSpecies.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 ChargedBondedSpecies_H
6 #define ChargedBondedSpecies_H
7 
9 #include "Math/ExtendedMath.h"
11 
17 {
18 public:
21 
24 
27 
29  ~ChargedBondedSpecies() = default;
30 
32  void read(std::istream& is);
33 
35  void write(std::ostream& os) const;
36 
38  std::string getBaseName() const;
39 
42 
43 //adhesion-specific functions
44 
47 
48 //setters and getters
50  void setAdhesionStiffness(Mdouble new_k0);
51 
54 
56  void setAdhesionForceMax(Mdouble new_f0);
57 
60 
61  //function to allows the charge of a particle to be easily accessed
62  int getCharge() const;
63 
64  //allows the user to set the charge possessed by a particle species
65  void setCharge(int newCharge);
66 
67 //*********************************************************************************************************************
68 //******************************ADDING ADDITIONAL FUNCTIONS FOR BOND INTERACTIONS**************************************
69 //*********************************************************************************************************************
70 
73  void setBondForceMax(Mdouble new_f0);
74 
76  Mdouble getBondForceMax() const;
77 
79  void setBondDissipation(Mdouble disp);
80 
83 
84 private:
87 
90 
91  //creating a simple integer flag to denote whether a particle is charged or not
92  //the boolean will be 0 if the particle has no charge, 1 if positively charged
93  //and -1 if negatively charged
94  int charge_;
95 
96 //*********************************************************************************************************************
97 //******************************ADDING ADDITIONAL VARIABLES FOR BOND INTERACTIONS**************************************
98 //*********************************************************************************************************************
99 
102 
106 
107 
108 //*********************************************************************************************************************
109 //****************************ADDING ADDITIONAL VARIABLES VAN DER WAALS INTERACTIONS***********************************
110 //*********************************************************************************************************************
111  //Adding parameters to recreate a highly simplified (but relatively computationally efficient!)
112  // van der Waals-like force at short distances
113 
114  //The maximal strength of the van der Waals force.
115  //Note that this should, by definition, be great enough to overcome the maximal repulsive force experienced by
116  //a particle, as the net force must be attractive in order to correctly represent vand der Waals
118 
119  //The stiffness used to determine the 'reach' of the van der Waals force applied to particles.
121 
122 public:
123  //Declaring the relevant get and set functions for the van der Waals stiffness and maximal force
125 
127 
129 
131 
132 
133 };
134 
135 #endif
Definition: BaseAdhesiveForce.h:10
Definition: ChargedBondedInteraction.h:22
ChargedBondedSpecies contains the parameters used to describe a linear reversible short-range force.
Definition: ChargedBondedSpecies.h:17
~ChargedBondedSpecies()=default
The default constructor.
void write(std::ostream &os) const
Writes the species properties to an output stream.
Definition: ChargedBondedSpecies.cc:55
Mdouble getAdhesionStiffness() const
Allows the spring constant to be accessed.
Definition: ChargedBondedSpecies.cc:135
Mdouble getBondDissipation() const
Allows the additional dissipation used to damp oscillations between bondd particles to be accessed.
Definition: ChargedBondedSpecies.cc:218
void setBondDissipation(Mdouble disp)
Allows the additional dissipation used to damp oscillations between bondd particles to be changed.
Definition: ChargedBondedSpecies.cc:205
void setVanDerWaalsStiffness(Mdouble)
Definition: ChargedBondedSpecies.cc:253
void setBondForceMax(Mdouble new_f0)
Allows the spring constant for the BOND to be changed (Do not confuse with the charged interaction st...
Definition: ChargedBondedSpecies.cc:184
int getCharge() const
Definition: ChargedBondedSpecies.cc:159
ChargedBondedSpecies()
The default constructor.
Definition: ChargedBondedSpecies.cc:15
Mdouble getVanDerWaalsForceMax() const
Definition: ChargedBondedSpecies.cc:246
void setCharge(int newCharge)
Definition: ChargedBondedSpecies.cc:165
Mdouble getBondForceMax() const
Allows the maximal force for 'bonding' particles together to be accessed.
Definition: ChargedBondedSpecies.cc:197
void setInteractionDistance()
returns the largest separation distance at which adhesive short-range forces can occur.
Definition: ChargedBondedSpecies.cc:116
void setAdhesionStiffness(Mdouble new_k0)
Allows the spring constant to be changed.
Definition: ChargedBondedSpecies.cc:124
Mdouble adhesionForceMax_
adhesion force at zero overlap
Definition: ChargedBondedSpecies.h:89
Mdouble vanDerWaalsForceMax_
Definition: ChargedBondedSpecies.h:117
Mdouble bondDissipation_
dissipation in bond
Definition: ChargedBondedSpecies.h:105
ChargedBondedInteraction InteractionType
The correct Interaction type for this AdhesiveForceSpecies.
Definition: ChargedBondedSpecies.h:20
void read(std::istream &is)
Reads the species properties from an input stream.
Definition: ChargedBondedSpecies.cc:69
Mdouble bondForceMax_
The maximal force which acts to bind together particles which are "bondd" into a single body.
Definition: ChargedBondedSpecies.h:101
int charge_
Definition: ChargedBondedSpecies.h:94
Mdouble getVanDerWaalsStiffness() const
Definition: ChargedBondedSpecies.cc:259
void setVanDerWaalsForceMax(Mdouble)
Definition: ChargedBondedSpecies.cc:233
void mix(ChargedBondedSpecies *S, ChargedBondedSpecies *T)
creates default values for mixed species
Definition: ChargedBondedSpecies.cc:98
Mdouble getAdhesionForceMax() const
Allows the spring constant to be accessed.
Definition: ChargedBondedSpecies.cc:152
std::string getBaseName() const
Used in Species::getName to obtain a unique name for each Species.
Definition: ChargedBondedSpecies.cc:85
void setAdhesionForceMax(Mdouble new_f0)
Allows the spring constant to be changed.
Definition: ChargedBondedSpecies.cc:141
Mdouble vanDerWaalsStiffness_
Definition: ChargedBondedSpecies.h:120
Mdouble adhesionStiffness_
stiffness of linear adhesion force
Definition: ChargedBondedSpecies.h:86
RealScalar s
Definition: level1_cplx_impl.h:130
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
@ S
Definition: quadtree.h:62