← Back to team overview

yade-dev team mailing list archive

[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);
 };