yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #10642
[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");
}