← Back to team overview

yade-dev team mailing list archive

[Branch ~yade-pkg/yade/git-trunk] Rev 3870: Implement Soulie capillary model.

 

------------------------------------------------------------
revno: 3870
committer: Anton Gladky <gladky.anton@xxxxxxxxx>
timestamp: Wed 2014-04-02 17:33:41 +0200
message:
  Implement Soulie capillary model.
modified:
  doc/references.bib
  pkg/dem/ViscoelasticCapillarPM.cpp


--
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 'doc/references.bib'
--- doc/references.bib	2014-04-02 15:19:41 +0000
+++ doc/references.bib	2014-04-02 15:33:41 +0000
@@ -667,3 +667,18 @@
 	year={2008},
 	publisher={ACS Publications}
 }
+
+@article {Soulie2006,
+	author = {Soulié, F. and Cherblanc, F. and El Youssoufi, M.S. and Saix, C.},
+	title = {Influence of liquid bridges on the mechanical behaviour of polydisperse granular materials},
+	journal = {International Journal for Numerical and Analytical Methods in Geomechanics},
+	volume = {30},
+	number = {3},
+	publisher = {John Wiley & Sons, Ltd.},
+	issn = {1096-9853},
+	url = {http://dx.doi.org/10.1002/nag.476},
+	doi = {10.1002/nag.476},
+	pages = {213--228},
+	keywords = {liquid bridge, polydisperse, cohesion, capillary force, humid granular media, DEM simulation},
+	year = {2006},
+}

=== modified file 'pkg/dem/ViscoelasticCapillarPM.cpp'
--- pkg/dem/ViscoelasticCapillarPM.cpp	2014-04-01 14:45:46 +0000
+++ pkg/dem/ViscoelasticCapillarPM.cpp	2014-04-02 15:33:41 +0000
@@ -269,6 +269,29 @@
         
         fC *=-1;
         
+      } else if (phys.CapillarType  == Soulie) {
+        /* 
+         * Capillar model from Soulie [Soulie2006]
+         *
+         * !!! In this implementation the radiis of particles are taken equal
+         * to get the symmetric forces.
+         * 
+         * Please, use this model only for testing purposes.
+         * 
+         */
+           
+        const Real R = phys.R;
+        const Real Gamma = phys.gamma;
+        const Real D = -geom.penetrationDepth;
+        const Real V = phys.Vb;
+        const Real Theta = phys.theta;
+        
+        
+        const Real a = -1.1*pow((V/(R*R*R)), -0.53);
+        const Real b = (-0.148*log(V/(R*R*R)) - 0.96)*Theta*Theta -0.0082*log(V/(R*R*R)) + 0.48;
+        const Real c = 0.0018*log(V/(R*R*R)) + 0.078;
+        
+        fC = Mathr::PI*Gamma*sqrt(R*R)*(c+exp(a*D/R+b));
       } else {
         throw runtime_error("CapillarType is unknown, please, use only Willett_numeric, Willett_analytic, Weigert or Rabinovich");
       }