SolidifyingLiquidMigrationWilletInteraction.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 SolidifyingLiquidMigrationWilletInteraction_h
6 #define SolidifyingLiquidMigrationWilletInteraction_h
7 
9 #include "Math/Vector.h"
10 
11 class BaseParticle;
12 
14 
15 class BaseInteractable;
16 
21 {
22 public:
27 
32 
37 
40 
45 
49  void computeAdhesionForce();
50 
54  void read(std::istream& is) override;
55 
59  void write(std::ostream& os) const override;
60 
65 
69  std::string getBaseName() const;
70 
74  Mdouble getElasticEnergy() const override;
75 
79  bool getBonded() const;
80 
84  void setBonded(bool bonded);
85 
89  void bond();
90 
96  void bondInPlace();
97 
98  void unbond();
99 
104  return bondForce_;
105  }
106 
107  void setBondForce(Mdouble bondForce) {
108  bondForce_ = bondForce;
109  }
110 
112 
113  double getSolidVolume() { return solidVolume_; }
114 
115  void setSolidVolume(Mdouble solidVolume) {
116  solidVolume_ = solidVolume;
117  }
118 
119  void setLiquidBridgeVolume(Mdouble liquidBridgeVolume) override;
120 
121  void addLiquidBridgeVolume(Mdouble liquidBridgeVolume) override;
122 
126  unsigned getNumberOfFieldsVTK() const override;
127 
128  std::string getTypeVTK(unsigned i) const override;
129 
130  std::string getNameVTK(unsigned i) const override;
131 
132  std::vector<Mdouble> getFieldVTK(unsigned i) const override;
133 
134  void rupture() override {
136  }
137 
138 private:
143  bool bonded_;
144 
149 
150 
152 
153 
154 };
155 
156 #endif
int i
Definition: BiCGSTAB_step_by_step.cpp:9
float * p
Definition: Tutorial_Map_using.cpp:9
Defines the basic properties that a interactable object can have.
Definition: BaseInteractable.h:34
Definition: BaseParticle.h:33
Defines the liquid bridge willet interaction between two particles or walls.
Definition: LiquidMigrationWilletInteraction.h:30
virtual void rupture()
Definition: LiquidMigrationWilletInteraction.cc:206
Definition: SolidifyingLiquidMigrationWilletInteraction.h:21
void setBondForce(Mdouble bondForce)
Definition: SolidifyingLiquidMigrationWilletInteraction.h:107
Mdouble getElasticEnergy() const override
Returns the elastic energy stored in the adhesive spring.
Definition: SolidifyingLiquidMigrationWilletInteraction.cc:120
void bond()
Definition: SolidifyingLiquidMigrationWilletInteraction.cc:139
Mdouble bondForce_
This stores the extra force created by the bond.
Definition: SolidifyingLiquidMigrationWilletInteraction.h:148
void setLiquidBridgeVolume(Mdouble liquidBridgeVolume) override
Definition: SolidifyingLiquidMigrationWilletInteraction.cc:189
SolidifyingLiquidMigrationWilletSpecies SpeciesType
An alias name for SolidifyingLiquidMigrationWilletSpecies data type.
Definition: SolidifyingLiquidMigrationWilletInteraction.h:26
void unbond()
Definition: SolidifyingLiquidMigrationWilletInteraction.cc:151
void setSolidVolume(Mdouble solidVolume)
Definition: SolidifyingLiquidMigrationWilletInteraction.h:115
Mdouble solidVolume_
Definition: SolidifyingLiquidMigrationWilletInteraction.h:151
void addLiquidBridgeVolume(Mdouble liquidBridgeVolume) override
Definition: SolidifyingLiquidMigrationWilletInteraction.cc:194
void rupture() override
Definition: SolidifyingLiquidMigrationWilletInteraction.h:134
bool bonded_
A history parameter to store if the particles were in contact or not. Useful to compute adhesive forc...
Definition: SolidifyingLiquidMigrationWilletInteraction.h:143
SolidifyingLiquidMigrationWilletInteraction()
Definition: SolidifyingLiquidMigrationWilletInteraction.cc:43
std::string getBaseName() const
Returns the name of the interaction, see Interaction.h.
Definition: SolidifyingLiquidMigrationWilletInteraction.cc:110
void bondInPlace()
Definition: SolidifyingLiquidMigrationWilletInteraction.cc:145
void computeAdhesionForce()
Computes the Adhesive force.
Definition: SolidifyingLiquidMigrationWilletInteraction.cc:86
bool getBonded() const
Get function.
Definition: SolidifyingLiquidMigrationWilletInteraction.cc:128
const SolidifyingLiquidMigrationWilletSpecies * getSpecies() const
Returns a pointer to the adhesive force species SolidifyingLiquidMigrationWilletSpecies.
Definition: SolidifyingLiquidMigrationWilletInteraction.cc:101
double getSolidVolume()
Different from bondInteraction:
Definition: SolidifyingLiquidMigrationWilletInteraction.h:113
void read(std::istream &is) override
Interaction read function, which accepts an std::istream as input.
Definition: SolidifyingLiquidMigrationWilletInteraction.cc:74
void write(std::ostream &os) const override
Interaction print function, which accepts an std::ostream as input.
Definition: SolidifyingLiquidMigrationWilletInteraction.cc:63
std::string getTypeVTK(unsigned i) const override
Definition: SolidifyingLiquidMigrationWilletInteraction.cc:161
void setBonded(bool bonded)
Set function.
Definition: SolidifyingLiquidMigrationWilletInteraction.cc:133
unsigned getNumberOfFieldsVTK() const override
Definition: SolidifyingLiquidMigrationWilletInteraction.cc:156
Mdouble getBondForce()
Simple access function to return the force of the bond.
Definition: SolidifyingLiquidMigrationWilletInteraction.h:103
std::string getNameVTK(unsigned i) const override
Definition: SolidifyingLiquidMigrationWilletInteraction.cc:166
~SolidifyingLiquidMigrationWilletInteraction() override
Destructor.
Definition: SolidifyingLiquidMigrationWilletInteraction.cc:53
std::vector< Mdouble > getFieldVTK(unsigned i) const override
Definition: SolidifyingLiquidMigrationWilletInteraction.cc:178
SolidifyingLiquidMigrationWilletSpecies contains the parameters used to describe a linear irreversibl...
Definition: SolidifyingLiquidMigrationWilletSpecies.h:18
#define I
Definition: main.h:127
double P
Uniform pressure.
Definition: TwenteMeshGluing.cpp:77
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286