yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #12158
[Branch ~yade-pkg/yade/git-trunk] Rev 3699: Introduction of surface tension as an attribute, and comments about code objects related to capil...
------------------------------------------------------------
revno: 3699
committer: jduriez <jerome.duriez@xxxxxxxxxxx>
timestamp: Tue 2015-07-14 16:25:36 -0600
message:
Introduction of surface tension as an attribute, and comments about code objects related to capillary files
modified:
pkg/dem/Law2_ScGeom_CapillaryPhys_Capillarity.cpp
pkg/dem/Law2_ScGeom_CapillaryPhys_Capillarity.hpp
--
lp:yade
https://code.launchpad.net/~yade-pkg/yade/git-trunk
Your team Yade developers is subscribed to branch lp:yade.
To unsubscribe from this branch go to https://code.launchpad.net/~yade-pkg/yade/git-trunk/+edit-subscription
=== modified file 'pkg/dem/Law2_ScGeom_CapillaryPhys_Capillarity.cpp'
--- pkg/dem/Law2_ScGeom_CapillaryPhys_Capillarity.cpp 2015-05-26 21:56:51 +0000
+++ pkg/dem/Law2_ScGeom_CapillaryPhys_Capillarity.cpp 2015-07-14 22:25:36 +0000
@@ -97,7 +97,7 @@
ScGeom* currentContactGeometry = static_cast<ScGeom*>(interaction->geom.get());
/// Capillary components definition:
- Real liquidTension = 0.073; // superficial water tension N/m (0.073 is water tension at 20 Celsius degrees)
+ Real liquidTension = surfaceTension;
/// Interacting Grains:
// If you want to define a ratio between YADE sphere size and real sphere size
=== modified file 'pkg/dem/Law2_ScGeom_CapillaryPhys_Capillarity.hpp'
--- pkg/dem/Law2_ScGeom_CapillaryPhys_Capillarity.hpp 2015-05-22 05:46:49 +0000
+++ pkg/dem/Law2_ScGeom_CapillaryPhys_Capillarity.hpp 2015-07-14 22:25:36 +0000
@@ -48,7 +48,7 @@
/// R = ratio(RadiusParticle1 on RadiusParticle2). Here, 10 R values from interpolation files (yade/extra/capillaryFiles), R = 1, 1.1, 1.25, 1.5, 1.75, 2, 3, 4, 5, 10
const int NB_R_VALUES = 10;
-class capillarylaw; // fait appel a la classe def plus bas //TODO: translate this in english
+class capillarylaw; // the class defined below (end of file)
class Interaction;
///This container class is used to check if meniscii overlap. Wet interactions are put in a series of lists, with one list per body.
@@ -93,6 +93,7 @@
((bool,fusionDetection,false,,"If true potential menisci overlaps are checked, computing :yref:`fusionNumber<CapillaryPhys.fusionNumber>` for each capillary interaction, and reducing :yref:`fCap<CapillaryPhys.fCap>` according to :yref:`binaryFusion<Law2_ScGeom_CapillaryPhys_Capillarity.binaryFusion>`"))
((bool,binaryFusion,true,,"If true, capillary forces are set to zero as soon as, at least, 1 overlap (menisci fusion) is detected. Otherwise :yref:`fCap<CapillaryPhys.fCap>` = :yref:`fCap<CapillaryPhys.fCap>` / (:yref:`fusionNumber<CapillaryPhys.fusionNumber>` + 1 )"))
((bool,createDistantMeniscii,false,,"Generate meniscii between distant spheres? Else only maintain the existing ones. For modeling a wetting path this flag should always be false. For a drying path it should be true for one step (initialization) then false, as in the logic of [Scholtes2009c]_"))
+ ((Real,surfaceTension,0.073,,"Value of considered surface tension")) // (0.073 N/m is water tension at 20 Celsius degrees)
,,/*constructor*/
hertzInitialized = false;
hertzOn = false;
@@ -101,10 +102,10 @@
);
};
-class TableauD
+class TableauD // Laplace solutions for a given r, and a given D (and a given contact angle): pieces of one capillary file
{
public:
- Real D;
+ Real D; // one cst D value in each TableauD (the one appearing last line of corresponding group D=cst in the capillary file)
std::vector<std::vector<Real> > data;
MeniscusParameters Interpolate3(Real P, int& index);
TableauD();
@@ -116,11 +117,11 @@
class Tableau;
std::ostream& operator<<(std::ostream& os, Tableau& T);
-class Tableau
+class Tableau // Laplace solutions for a given r (and a given contact angle): one capillary file
{
public:
Real R;
- std::vector<TableauD> full_data; // full_data contains a lot of TableauD, for different D. that are the Laplace solutions for a given r, and a given D
+ std::vector<TableauD> full_data; // members of full_data are the different TableauD, for different D.
MeniscusParameters Interpolate2(Real D, Real P, int& index1, int& index2);
std::ifstream& operator<< (std::ifstream& file);
Tableau();
@@ -128,11 +129,11 @@
~Tableau();
};
-class capillarylaw
+class capillarylaw // the whole set of capillary files M(r=..)
{
public:
capillarylaw();
- std::vector<Tableau> data_complete; // each Tableau of data_complete corresponds to one capillary file M(r=..), in ascending order of r
+ std::vector<Tableau> data_complete; // data_complete includes, in ascending order of r, all capillary files: each Tableau of data_complete is one capillary file
MeniscusParameters interpolate(Real R1, Real R2, Real D, Real P, int* index);
void fill (const char* filename);
};