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...
 
 ~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 *S, LiquidMigrationWilletSpecies *T)
 creates default values for mixed species More...
 
void setInteractionDistance ()
 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 setLiquidBridgeVolumeMin (Mdouble)
 used to set the Volume of the liquid bridge. More...
 
Mdouble getLiquidBridgeVolumeMin () 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 (in radians) More...
 
Mdouble getContactAngle () const
 used to access the contact angle between particle and liquid bridge surface. More...
 
- Public Member Functions inherited from BaseForce
BaseSpeciesgetBaseSpecies () const
 
void setBaseSpecies (BaseSpecies *baseSpecies)
 

Private Attributes

Mdouble liquidBridgeVolumeMax_
 Max volume a liquid bridge gets during formation; any excess remains in the liquid film of the particle. More...
 
Mdouble liquidBridgeVolumeMin_
 Minimum volume needed to form a 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.

Member Typedef Documentation

◆ InteractionType

The correct Interaction type for this AdhesiveForceSpecies.

Constructor & Destructor Documentation

◆ LiquidMigrationWilletSpecies() [1/2]

LiquidMigrationWilletSpecies::LiquidMigrationWilletSpecies ( )

The default constructor.

9 {
10  liquidBridgeVolumeMax_ = 0.0; //std::numeric_limits<double>::infinity();
13  surfaceTension_ = 0.0;
14  contactAngle_ = 0.0;
15 #ifdef DEBUG_CONSTRUCTOR
16  std::cout<<"LiquidMigrationWilletSpecies::LiquidMigrationWilletSpecies() finished"<<std::endl;
17 #endif
18 }
Mdouble contactAngle_
contact angle between particle and liquid bridge surface
Definition: LiquidMigrationWilletSpecies.h:121
Mdouble liquidBridgeVolumeMax_
Max volume a liquid bridge gets during formation; any excess remains in the liquid film of the partic...
Definition: LiquidMigrationWilletSpecies.h:103
Mdouble liquidBridgeVolumeMin_
Minimum volume needed to form a liquid bridge.
Definition: LiquidMigrationWilletSpecies.h:108
Mdouble surfaceTension_
surface tension of the liquid
Definition: LiquidMigrationWilletSpecies.h:126
Mdouble distributionCoefficient_
distribution coefficient of the liquid
Definition: LiquidMigrationWilletSpecies.h:116

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

◆ LiquidMigrationWilletSpecies() [2/2]

LiquidMigrationWilletSpecies::LiquidMigrationWilletSpecies ( const LiquidMigrationWilletSpecies s)

The default copy constructor.

Parameters
[in]thespecies that is copied
24 {
25  liquidBridgeVolumeMax_ = s.liquidBridgeVolumeMax_;
26  liquidBridgeVolumeMin_ = s.liquidBridgeVolumeMin_;
27  distributionCoefficient_ = s.distributionCoefficient_;
28  surfaceTension_ = s.surfaceTension_;
29  contactAngle_ = s.contactAngle_;
30 #ifdef DEBUG_CONSTRUCTOR
31  std::cout<<"LiquidMigrationWilletSpecies::LiquidMigrationWilletSpecies(const LiquidMigrationWilletSpecies &p) finished"<<std::endl;
32 #endif
33 }
RealScalar s
Definition: level1_cplx_impl.h:130

References contactAngle_, distributionCoefficient_, liquidBridgeVolumeMax_, liquidBridgeVolumeMin_, s, and surfaceTension_.

◆ ~LiquidMigrationWilletSpecies()

LiquidMigrationWilletSpecies::~LiquidMigrationWilletSpecies ( )

The default destructor.

36 {
37 #ifdef DEBUG_DESTRUCTOR
38  std::cout<<"LiquidMigrationWilletSpecies::~LiquidMigrationWilletSpecies() finished"<<std::endl;
39 #endif
40 }

Member Function Documentation

◆ getBaseName()

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")
72 {
73  return "LiquidMigrationWillet";
74 }

Referenced by SolidifyingLiquidMigrationWilletSpecies::getBaseName().

◆ getContactAngle()

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.
179 {
180  return contactAngle_;
181 }

References contactAngle_.

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

◆ getDistributionCoefficient()

Mdouble LiquidMigrationWilletSpecies::getDistributionCoefficient ( ) const

used to access the surface tension of the liquid.

Returns
the distribution coefficient of the liquid.
143 {
145 }

References distributionCoefficient_.

Referenced by LiquidMigrationWilletInteraction::distributeToOtherBridges().

◆ getLiquidBridgeVolumeMax()

Mdouble LiquidMigrationWilletSpecies::getLiquidBridgeVolumeMax ( ) const

used to access the Volume of the liquid bridge.

Returns
the volume of the liquid bridge.
119 {
120  return liquidBridgeVolumeMax_;
121 }

References liquidBridgeVolumeMax_.

◆ getLiquidBridgeVolumeMin()

Mdouble LiquidMigrationWilletSpecies::getLiquidBridgeVolumeMin ( ) const

used to access the Volume of the liquid bridge.

124 {
125  return liquidBridgeVolumeMin_;
126 }

References liquidBridgeVolumeMin_.

◆ getSurfaceTension()

Mdouble LiquidMigrationWilletSpecies::getSurfaceTension ( ) const

used to access the surface tension of the liquid.

Returns
the surface tension of the liquid.
161 {
162  return surfaceTension_;
163 }

References surfaceTension_.

Referenced by LiquidMigrationWilletInteraction::computeAdhesionForce().

◆ mix()

void LiquidMigrationWilletSpecies::mix ( LiquidMigrationWilletSpecies S,
LiquidMigrationWilletSpecies 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
82 {
83  liquidBridgeVolumeMax_ = BaseSpecies::average(S->getLiquidBridgeVolumeMax(), T->getLiquidBridgeVolumeMax());
84  liquidBridgeVolumeMin_ = BaseSpecies::average(S->getLiquidBridgeVolumeMin(), T->getLiquidBridgeVolumeMin());
85  distributionCoefficient_ = BaseSpecies::average(S->getDistributionCoefficient(), T->getDistributionCoefficient());
86  surfaceTension_ = BaseSpecies::average(S->getSurfaceTension(), T->getSurfaceTension());
87  contactAngle_ = BaseSpecies::average(S->getContactAngle(), T->getContactAngle());
89 }
static Mdouble average(Mdouble a, Mdouble b)
Returns the harmonic mean of two variables.
Definition: BaseSpecies.cc:89
void setInteractionDistance()
returns the largest separation distance at which adhesive short-range forces can occur.
Definition: LiquidMigrationWilletSpecies.cc:92
@ S
Definition: quadtree.h:62

References BaseSpecies::average(), contactAngle_, distributionCoefficient_, liquidBridgeVolumeMax_, liquidBridgeVolumeMin_, oomph::QuadTreeNames::S, setInteractionDistance(), and surfaceTension_.

Referenced by LiquidMigrationWilletViscousSpecies::mix(), and SolidifyingLiquidMigrationWilletSpecies::mix().

◆ read()

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

Reads the species properties from an input stream.

Parameters
[in]inputstream (typically the restart file)
58 {
59  std::string dummy;
60  is >> dummy >> liquidBridgeVolumeMax_;
61  helpers::readOptionalVariable(is,"liquidBridgeVolumeMin",liquidBridgeVolumeMin_);
62  is >> dummy >> distributionCoefficient_;
63  is >> dummy >> surfaceTension_;
64  is >> dummy >> contactAngle_;
66 }
bool readOptionalVariable(std::istream &is, const std::string &name, T &variable)
Reads optional variables in the restart file.
Definition: FileIOHelpers.h:68
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286

References contactAngle_, distributionCoefficient_, liquidBridgeVolumeMax_, liquidBridgeVolumeMin_, helpers::readOptionalVariable(), setInteractionDistance(), oomph::Global_string_for_annotation::string(), and surfaceTension_.

Referenced by LiquidMigrationWilletViscousSpecies::read(), and SolidifyingLiquidMigrationWilletSpecies::read().

◆ setContactAngle()

void LiquidMigrationWilletSpecies::setContactAngle ( Mdouble  contactAngle)

used to set the contact angle between particle and liquid bridge surface (in radians)

Parameters
[in]contactAnglethe contact angle between particle and liquid bridge surface.
169 {
170  logger.assert_always(contactAngle >= 0, "Error in setContactAngle(%), contactAngle should be >= 0", contactAngle);
171  contactAngle_ = contactAngle;
173 }
Logger< MERCURYDPM_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.

References contactAngle_, logger, and setInteractionDistance().

◆ setDistributionCoefficient()

void LiquidMigrationWilletSpecies::setDistributionCoefficient ( Mdouble  distributionCoefficient)

used to set the distribution coefficient of the liquid.

Parameters
[in]distributionCoefficientthe distribution coefficient of the liquid.
132 {
133  logger.assert_always(distributionCoefficient >= 0 && distributionCoefficient <= 1.0,
134  "Error in setDistributionCoefficient(%), distributionCoefficient should be between 0 and 1",
135  distributionCoefficient);
136  distributionCoefficient_ = distributionCoefficient;
137 }

References distributionCoefficient_, and logger.

◆ setInteractionDistance()

void LiquidMigrationWilletSpecies::setInteractionDistance ( )
virtual

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

Returns
the maximum separation distance below which adhesive forces can occur (needed for contact detection)

Reimplemented from BaseAdhesiveForce.

93 {
95 }
BaseSpecies * getBaseSpecies() const
Definition: BaseForce.h:15
void setInteractionDistance(Mdouble interactionDistance)
Definition: BaseSpecies.cc:135
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T cbrt(const T &x)
Definition: MathFunctions.h:1320

References Eigen::numext::cbrt(), contactAngle_, BaseForce::getBaseSpecies(), liquidBridgeVolumeMax_, and BaseSpecies::setInteractionDistance().

Referenced by mix(), read(), setContactAngle(), and setLiquidBridgeVolumeMax().

◆ setLiquidBridgeVolumeMax()

void LiquidMigrationWilletSpecies::setLiquidBridgeVolumeMax ( Mdouble  liquidBridgeVolumeMax)

used to set the Volume of the liquid bridge.

Parameters
[in]liquidBridgeVolumethe volume of the liquid bridge.
101 {
102  logger.assert_always(liquidBridgeVolumeMax >= 0,
103  "Error in setLiquidBridgeVolumeMax(%), liquidBridgeVolumeMax should be >= 0", liquidBridgeVolumeMax);
104  liquidBridgeVolumeMax_ = liquidBridgeVolumeMax;
106 }

References liquidBridgeVolumeMax_, logger, and setInteractionDistance().

◆ setLiquidBridgeVolumeMin()

void LiquidMigrationWilletSpecies::setLiquidBridgeVolumeMin ( Mdouble  liquidBridgeVolumeMin)

used to set the Volume of the liquid bridge.

109 {
110  logger.assert_always(liquidBridgeVolumeMin >= 0,
111  "Error in setLiquidBridgeVolumeMin (%), liquidBridgeVolumeMin should be >= 0", liquidBridgeVolumeMin);
112  liquidBridgeVolumeMin_ = liquidBridgeVolumeMin;
113 }

References liquidBridgeVolumeMin_, and logger.

◆ setSurfaceTension()

void LiquidMigrationWilletSpecies::setSurfaceTension ( Mdouble  surfaceTension)

used to set the surface tension of the liquid.

Parameters
[in]surfaceTensionthe surface tension of the liquid.
152 {
153  logger.assert_always(surfaceTension >= 0, "Error in setSurfaceTension(%), surfaceTension should be >= 0", surfaceTension);
154  surfaceTension_ = surfaceTension;
155 }

References logger, and surfaceTension_.

◆ write()

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

Writes the species properties to an output stream.

Parameters
[out]outputstream (typically the restart file)
46 {
47  os << " liquidBridgeVolumeMax " << liquidBridgeVolumeMax_;
48  if (liquidBridgeVolumeMin_) os << " liquidBridgeVolumeMin " << liquidBridgeVolumeMin_;
49  os << " distributionCoefficient " << distributionCoefficient_;
50  os << " surfaceTension " << surfaceTension_;
51  os << " contactAngle " << contactAngle_;
52 }

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

Referenced by LiquidMigrationWilletViscousSpecies::write(), and SolidifyingLiquidMigrationWilletSpecies::write().

Member Data Documentation

◆ contactAngle_

Mdouble LiquidMigrationWilletSpecies::contactAngle_
private

contact angle between particle and liquid bridge surface

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

◆ distributionCoefficient_

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.

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

◆ liquidBridgeVolumeMax_

Mdouble LiquidMigrationWilletSpecies::liquidBridgeVolumeMax_
private

Max volume a liquid bridge gets during formation; any excess remains in the liquid film of the particle.

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

◆ liquidBridgeVolumeMin_

Mdouble LiquidMigrationWilletSpecies::liquidBridgeVolumeMin_
private

Minimum volume needed to form a liquid bridge.

Referenced by getLiquidBridgeVolumeMin(), LiquidMigrationWilletSpecies(), mix(), read(), setLiquidBridgeVolumeMin(), and write().

◆ surfaceTension_

Mdouble LiquidMigrationWilletSpecies::surfaceTension_
private

surface tension of the liquid

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


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