MercuryDPM  Alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
LiquidMigrationWilletSpecies Class Reference

LiquidMigrationWilletSpecies contains the parameters used to describe a short-range force caused by liquid bridges. More...

#include <LiquidMigrationWilletSpecies.h>

+ Inheritance diagram for LiquidMigrationWilletSpecies:

Public Types

typedef
LiquidMigrationWilletInteraction 
InteractionType
 The correct Interaction type for this AdhesiveForceSpecies. More...
 

Public Member Functions

 LiquidMigrationWilletSpecies ()
 The default constructor. More...
 
 LiquidMigrationWilletSpecies (const LiquidMigrationWilletSpecies &s)
 The default copy constructor. More...
 
virtual ~LiquidMigrationWilletSpecies ()
 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...
 
void mix (LiquidMigrationWilletSpecies *const S, LiquidMigrationWilletSpecies *const T)
 creates default values for mixed species More...
 
Mdouble getInteractionDistance () const
 returns the largest separation distance at which adhesive short-range forces can occur. More...
 
void setLiquidBridgeVolumeMax (Mdouble liquidBridgeVolume)
 used to set the Volume of the liquid bridge. More...
 
Mdouble getLiquidBridgeVolumeMax () const
 used to access the Volume of the liquid bridge. More...
 
void setDistributionCoefficient (Mdouble distributionCoefficient)
 used to set the distribution coefficient of the liquid. More...
 
Mdouble getDistributionCoefficient () const
 used to access the surface tension of the liquid. More...
 
void setSurfaceTension (Mdouble surfaceTension)
 used to set the surface tension of the liquid. More...
 
Mdouble getSurfaceTension () const
 used to access the surface tension of the liquid. More...
 
void setContactAngle (Mdouble contactAngle)
 used to set the contact angle between particle and liquid bridge surface. More...
 
Mdouble getContactAngle () const
 used to access the contact angle between particle and liquid bridge surface. More...
 
- Public Member Functions inherited from BaseSpecies
 BaseSpecies ()
 The default constructor. More...
 
 BaseSpecies (const BaseSpecies &p)
 The copy constructor. More...
 
virtual ~BaseSpecies ()
 The default destructor. More...
 
virtual BaseSpeciescopy () const =0
 Creates a deep copy of the object from which it is called. More...
 
void setHandler (SpeciesHandler *handler)
 Sets the pointer to the handler to which this species belongs. More...
 
SpeciesHandlergetHandler () const
 Returns the pointer to the handler to which this species belongs. More...
 
Mdouble average (Mdouble a, Mdouble b)
 defines the average of two variables by the harmonic mean. More...
 
virtual void mixAll (BaseSpecies *const S, BaseSpecies *const T)=0
 creates default values for mixed species More...
 
virtual bool getUseAngularDOFs () const =0
 Returns true if torques (i.e. angular degrees of freedom) have to be calculated. More...
 
virtual BaseInteractiongetNewInteraction (BaseInteractable *P, BaseInteractable *I, Mdouble timeStamp) const =0
 returns new Interaction object. More...
 
- Public Member Functions inherited from BaseObject
 BaseObject ()
 Default constructor. More...
 
 BaseObject (const BaseObject &p)
 Copy constructor, copies all the objects BaseObject contains. More...
 
virtual ~BaseObject ()
 virtual destructor More...
 
virtual std::string getName () const =0
 A purely virtual function. More...
 
virtual void moveInHandler (const unsigned int index)
 Except that it is virtual, it does the same thing as setIndex() does. More...
 
void setIndex (const unsigned int index)
 Allows one to assign an index to an object in the handler/container. More...
 
void setId (const unsigned int id)
 Assigns a unique identifier to each object in the handler (container) which remains constant even after the object is deleted from the container/handler. More...
 
unsigned int getIndex () const
 Returns the index of the object in the handler. More...
 
unsigned int getId () const
 Returns the unique identifier of any particular object. More...
 

Private Attributes

Mdouble liquidBridgeVolumeMax_
 Volume of the liquid bridge. More...
 
Mdouble maxInteractionDistance_
 Cube root of the liquid bridge. More...
 
Mdouble distributionCoefficient_
 distribution coefficient of the liquid More...
 
Mdouble contactAngle_
 contact angle between particle and liquid bridge surface More...
 
Mdouble surfaceTension_
 surface tension of the liquid More...
 

Detailed Description

LiquidMigrationWilletSpecies contains the parameters used to describe a short-range force caused by liquid bridges.

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

Definition at line 36 of file LiquidMigrationWilletSpecies.h.

Member Typedef Documentation

Constructor & Destructor Documentation

LiquidMigrationWilletSpecies::LiquidMigrationWilletSpecies ( )

The default constructor.

Definition at line 29 of file LiquidMigrationWilletSpecies.cc.

References contactAngle_, distributionCoefficient_, liquidBridgeVolumeMax_, maxInteractionDistance_, and surfaceTension_.

30 {
31  liquidBridgeVolumeMax_ = 0.0; //std::numeric_limits<double>::infinity();
34  surfaceTension_ = 0.0;
35  contactAngle_ = 0.0;
36 #ifdef DEBUG_CONSTRUCTOR
37  std::cout<<"LiquidMigrationWilletSpecies::LiquidMigrationWilletSpecies() finished"<<std::endl;
38 #endif
39 }
Mdouble contactAngle_
contact angle between particle and liquid bridge surface
Mdouble surfaceTension_
surface tension of the liquid
Mdouble liquidBridgeVolumeMax_
Volume of the liquid bridge.
Mdouble distributionCoefficient_
distribution coefficient of the liquid
Mdouble maxInteractionDistance_
Cube root of the liquid bridge.
LiquidMigrationWilletSpecies::LiquidMigrationWilletSpecies ( const LiquidMigrationWilletSpecies s)

The default copy constructor.

Parameters
[in]thespecies that is copied

Definition at line 44 of file LiquidMigrationWilletSpecies.cc.

References contactAngle_, distributionCoefficient_, liquidBridgeVolumeMax_, maxInteractionDistance_, and surfaceTension_.

45 {
51 #ifdef DEBUG_CONSTRUCTOR
52  std::cout<<"LiquidMigrationWilletSpecies::LiquidMigrationWilletSpecies(const LiquidMigrationWilletSpecies &p) finished"<<std::endl;
53 #endif
54 }
Mdouble contactAngle_
contact angle between particle and liquid bridge surface
Mdouble surfaceTension_
surface tension of the liquid
Mdouble liquidBridgeVolumeMax_
Volume of the liquid bridge.
Mdouble distributionCoefficient_
distribution coefficient of the liquid
Mdouble maxInteractionDistance_
Cube root of the liquid bridge.
LiquidMigrationWilletSpecies::~LiquidMigrationWilletSpecies ( )
virtual

The default destructor.

Definition at line 56 of file LiquidMigrationWilletSpecies.cc.

57 {
58 #ifdef DEBUG_DESTRUCTOR
59  std::cout<<"LiquidMigrationWilletSpecies::~LiquidMigrationWilletSpecies() finished"<<std::endl;
60 #endif
61 }

Member Function Documentation

std::string LiquidMigrationWilletSpecies::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")

Definition at line 89 of file LiquidMigrationWilletSpecies.cc.

90 {
91  return "LiquidMigrationWillet";
92 }
Mdouble LiquidMigrationWilletSpecies::getContactAngle ( ) const

used to access the contact angle between particle and liquid bridge surface.

Returns
the contact angle between particle and liquid bridge surface.

Definition at line 205 of file LiquidMigrationWilletSpecies.cc.

References contactAngle_.

Referenced by LiquidMigrationWilletInteraction::computeAdhesionForce(), LiquidMigrationWilletInteraction::getRuptureDistance(), and mix().

206 {
207  return contactAngle_;
208 }
Mdouble contactAngle_
contact angle between particle and liquid bridge surface
Mdouble LiquidMigrationWilletSpecies::getDistributionCoefficient ( ) const

used to access the surface tension of the liquid.

Returns
the distribution coefficient of the liquid.

Definition at line 157 of file LiquidMigrationWilletSpecies.cc.

References distributionCoefficient_.

Referenced by mix(), and LiquidMigrationWilletInteraction::rupture().

158 {
160 }
Mdouble distributionCoefficient_
distribution coefficient of the liquid
Mdouble LiquidMigrationWilletSpecies::getInteractionDistance ( ) const
virtual

returns the largest separation distance at which adhesive short-range forces can occur.

Returns
the maximum separation distance between particles below which the adhesive force is active.

Implements BaseSpecies.

Definition at line 110 of file LiquidMigrationWilletSpecies.cc.

References maxInteractionDistance_.

111 {
113 }
Mdouble maxInteractionDistance_
Cube root of the liquid bridge.
Mdouble LiquidMigrationWilletSpecies::getLiquidBridgeVolumeMax ( ) const

used to access the Volume of the liquid bridge.

Returns
the volume of the liquid bridge.

Definition at line 135 of file LiquidMigrationWilletSpecies.cc.

References liquidBridgeVolumeMax_.

Referenced by LiquidMigrationWilletInteraction::form(), mix(), and LiquidMigrationWilletInteraction::rupture().

136 {
137  return liquidBridgeVolumeMax_;
138 }
Mdouble liquidBridgeVolumeMax_
Volume of the liquid bridge.
Mdouble LiquidMigrationWilletSpecies::getSurfaceTension ( ) const

used to access the surface tension of the liquid.

Returns
the surface tension of the liquid.

Definition at line 180 of file LiquidMigrationWilletSpecies.cc.

References surfaceTension_.

Referenced by LiquidMigrationWilletInteraction::computeAdhesionForce(), and mix().

181 {
182  return surfaceTension_;
183 }
Mdouble surfaceTension_
surface tension of the liquid
void LiquidMigrationWilletSpecies::mix ( LiquidMigrationWilletSpecies *const  S,
LiquidMigrationWilletSpecies *const  T 
)

creates default values for mixed species

For all parameters we assume that the harmonic mean of the parameters of the original two species is a sensible default.

Parameters
[in]S,Tthe two species whose properties are mixed to create the new species

Definition at line 99 of file LiquidMigrationWilletSpecies.cc.

References BaseSpecies::average(), contactAngle_, distributionCoefficient_, getContactAngle(), getDistributionCoefficient(), getLiquidBridgeVolumeMax(), getSurfaceTension(), setLiquidBridgeVolumeMax(), and surfaceTension_.

100 {
105 }
Mdouble contactAngle_
contact angle between particle and liquid bridge surface
Mdouble getContactAngle() const
used to access the contact angle between particle and liquid bridge surface.
Mdouble getLiquidBridgeVolumeMax() const
used to access the Volume of the liquid bridge.
Mdouble getDistributionCoefficient() const
used to access the surface tension of the liquid.
Mdouble surfaceTension_
surface tension of the liquid
Mdouble average(Mdouble a, Mdouble b)
defines the average of two variables by the harmonic mean.
Definition: BaseSpecies.cc:85
void setLiquidBridgeVolumeMax(Mdouble liquidBridgeVolume)
used to set the Volume of the liquid bridge.
Mdouble distributionCoefficient_
distribution coefficient of the liquid
Mdouble getSurfaceTension() const
used to access the surface tension of the liquid.
void LiquidMigrationWilletSpecies::read ( std::istream &  is)
virtual

Reads the species properties from an input stream.

Parameters
[in]inputstream (typically the restart file)

Implements BaseObject.

Definition at line 77 of file LiquidMigrationWilletSpecies.cc.

References contactAngle_, distributionCoefficient_, liquidBridgeVolumeMax_, and surfaceTension_.

78 {
79  std::string dummy;
80  is >> dummy >> liquidBridgeVolumeMax_;
81  is >> dummy >> distributionCoefficient_;
82  is >> dummy >> surfaceTension_;
83  is >> dummy >> contactAngle_;
84 }
Mdouble contactAngle_
contact angle between particle and liquid bridge surface
Mdouble surfaceTension_
surface tension of the liquid
Mdouble liquidBridgeVolumeMax_
Volume of the liquid bridge.
Mdouble distributionCoefficient_
distribution coefficient of the liquid
void LiquidMigrationWilletSpecies::setContactAngle ( Mdouble  contactAngle)

used to set the contact angle between particle and liquid bridge surface.

Parameters
[in]contactAnglethe contact angle between particle and liquid bridge surface.

Definition at line 188 of file LiquidMigrationWilletSpecies.cc.

References contactAngle_, liquidBridgeVolumeMax_, and maxInteractionDistance_.

189 {
190  if (contactAngle >= 0)
191  {
192  contactAngle_ = contactAngle;
194  }
195  else
196  {
197  std::cerr << "Error in setContactAngle" << std::endl;
198  exit(-1);
199  }
200 }
Mdouble contactAngle_
contact angle between particle and liquid bridge surface
Mdouble liquidBridgeVolumeMax_
Volume of the liquid bridge.
Mdouble maxInteractionDistance_
Cube root of the liquid bridge.
void LiquidMigrationWilletSpecies::setDistributionCoefficient ( Mdouble  distributionCoefficient)

used to set the distribution coefficient of the liquid.

Parameters
[in]distributionCoefficientthe distribution coefficient of the liquid.

Definition at line 143 of file LiquidMigrationWilletSpecies.cc.

References distributionCoefficient_.

144 {
145  if (distributionCoefficient >= 0 && distributionCoefficient <= 1.0)
146  distributionCoefficient_ = distributionCoefficient;
147  else
148  {
149  std::cerr << "Error in setDistributionCoefficient" << std::endl;
150  exit(-1);
151  }
152 }
Mdouble distributionCoefficient_
distribution coefficient of the liquid
void LiquidMigrationWilletSpecies::setLiquidBridgeVolumeMax ( Mdouble  liquidBridgeVolumeMax)

used to set the Volume of the liquid bridge.

Parameters
[in]liquidBridgeVolumethe volume of the liquid bridge.

Definition at line 118 of file LiquidMigrationWilletSpecies.cc.

References contactAngle_, liquidBridgeVolumeMax_, and maxInteractionDistance_.

Referenced by mix().

119 {
120  if (liquidBridgeVolumeMax >= 0)
121  {
122  liquidBridgeVolumeMax_ = liquidBridgeVolumeMax;
124  }
125  else
126  {
127  std::cerr << "Error in setLiquidBridgeVolumeMax: liquidBridgeVolumeMax=" << liquidBridgeVolumeMax << std::endl;
128  exit(-1);
129  }
130 }
Mdouble contactAngle_
contact angle between particle and liquid bridge surface
Mdouble liquidBridgeVolumeMax_
Volume of the liquid bridge.
Mdouble maxInteractionDistance_
Cube root of the liquid bridge.
void LiquidMigrationWilletSpecies::setSurfaceTension ( Mdouble  surfaceTension)

used to set the surface tension of the liquid.

Parameters
[in]surfaceTensionthe surface tension of the liquid.

Definition at line 166 of file LiquidMigrationWilletSpecies.cc.

References surfaceTension_.

167 {
168  if (surfaceTension >= 0)
169  surfaceTension_ = surfaceTension;
170  else
171  {
172  std::cerr << "Error in setSurfaceTension" << std::endl;
173  exit(-1);
174  }
175 }
Mdouble surfaceTension_
surface tension of the liquid
void LiquidMigrationWilletSpecies::write ( std::ostream &  os) const
virtual

Writes the species properties to an output stream.

Parameters
[out]outputstream (typically the restart file)

Implements BaseObject.

Definition at line 66 of file LiquidMigrationWilletSpecies.cc.

References contactAngle_, distributionCoefficient_, liquidBridgeVolumeMax_, and surfaceTension_.

67  {
68  os << " liquidBridgeVolume " << liquidBridgeVolumeMax_;
69  os << " distributionCoefficient " << distributionCoefficient_;
70  os << " surfaceTension " << surfaceTension_;
71  os << " contactAngle " << contactAngle_;
72 }
Mdouble contactAngle_
contact angle between particle and liquid bridge surface
Mdouble surfaceTension_
surface tension of the liquid
Mdouble liquidBridgeVolumeMax_
Volume of the liquid bridge.
Mdouble distributionCoefficient_
distribution coefficient of the liquid

Member Data Documentation

Mdouble LiquidMigrationWilletSpecies::contactAngle_
private

contact angle between particle and liquid bridge surface

Definition at line 137 of file LiquidMigrationWilletSpecies.h.

Referenced by getContactAngle(), LiquidMigrationWilletSpecies(), mix(), read(), setContactAngle(), setLiquidBridgeVolumeMax(), and write().

Mdouble LiquidMigrationWilletSpecies::distributionCoefficient_
private

distribution coefficient of the liquid

This is a variable that determines the fraction of the liquid that is to be distributed to the neighboring contacts of the particles after a liquid bridge rupture.

Definition at line 132 of file LiquidMigrationWilletSpecies.h.

Referenced by getDistributionCoefficient(), LiquidMigrationWilletSpecies(), mix(), read(), setDistributionCoefficient(), and write().

Mdouble LiquidMigrationWilletSpecies::liquidBridgeVolumeMax_
private

Volume of the liquid bridge.

Currently, this is a Species property (i.e. all particles have the same liquid bridge volume), but this should probably become a Particle or Interaction property.

Definition at line 116 of file LiquidMigrationWilletSpecies.h.

Referenced by getLiquidBridgeVolumeMax(), LiquidMigrationWilletSpecies(), read(), setContactAngle(), setLiquidBridgeVolumeMax(), and write().

Mdouble LiquidMigrationWilletSpecies::maxInteractionDistance_
private

Cube root of the liquid bridge.

This is a slave variable of liquidBridgeVolumeMax_ (i.e. it is always set together) but is useful, because the cube root has to be calculated to obtain the liquid bridge adhesive force.

Definition at line 124 of file LiquidMigrationWilletSpecies.h.

Referenced by getInteractionDistance(), LiquidMigrationWilletSpecies(), setContactAngle(), and setLiquidBridgeVolumeMax().

Mdouble LiquidMigrationWilletSpecies::surfaceTension_
private

surface tension of the liquid

Definition at line 142 of file LiquidMigrationWilletSpecies.h.

Referenced by getSurfaceTension(), LiquidMigrationWilletSpecies(), mix(), read(), setSurfaceTension(), and write().


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