← Back to team overview

yade-dev team mailing list archive

[Branch ~yade-pkg/yade/git-trunk] Rev 3957: Capillary law2: restricting test shape. Plus minor change in capillaryLaplaceYoung/README text file

 

------------------------------------------------------------
revno: 3957
committer: jduriez <jerome.duriez@xxxxxxxxxxx>
timestamp: Wed 2016-10-26 10:59:05 -0600
message:
  Capillary law2: restricting test shape. Plus minor change in capillaryLaplaceYoung/README text file
modified:
  examples/capillaryLaplaceYoung/README.txt
  pkg/dem/Law2_ScGeom_CapillaryPhys_Capillarity.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 'examples/capillaryLaplaceYoung/README.txt'
--- examples/capillaryLaplaceYoung/README.txt	2016-09-21 20:32:36 +0000
+++ examples/capillaryLaplaceYoung/README.txt	2016-10-26 16:59:05 +0000
@@ -6,7 +6,7 @@
 
 Two examples of simulations using Law2_ScGeom_CapillaryPhys_Capillarity are herein provided:
 
-- CapillaryPhys-example.py illustrates the mutual attraction due to capillary interaction in a simple packing
+- CapillaryPhys-example.py is a (simple) packing-scale simulation considering capillary interaction and gravity
 - capillaryBridge.py defines and let evolve a capillary bridge between two particles only
 
 
@@ -21,7 +21,7 @@
 - solveLiqBridge.m solves the Laplace-Young equation for one given bridge, defined in terms of the input attributes of the solveLiqBridge function (see therein). The solveLiqBridge function is usually called by other files (see below) during capillary files generation, however it can also be executed on its own in order to study (e.g. plot) capillary bridge profile.
 
 Code comments include references to:
- * Duriez2016: J. Duriez and R. Wan, Contact angle mechanical influence for wet granular soils, currently under Review in Acta Geotechnica
+ * Duriez2016: J. Duriez and R. Wan, Contact angle mechanical influence for wet granular soils, Acta Geotechnica, 2016, doi:10.1007/s11440-016-0500-6
  * Lian1993: G. Lian and C. Thornton and M. J. Adams, A Theoretical Study of the Liquid Bridge Forces between Two Rigid Spherical Bodies, Journal of Colloid and Interface Science, 161(1), 1993
  * Scholtes2008 (french): L. Scholtes, Modelisation Micro-Mecanique des Milieux Granulaires Partiellement Satures, PhD Thesis from Institut polytechnique de Grenoble, 2008
  * Soulie2005 (french): F. Soulie, Cohesion par capillarite et comportement mecanique de milieux granulaires, PhD Thesis from Universite Montpellier II, 2005

=== modified file 'pkg/dem/Law2_ScGeom_CapillaryPhys_Capillarity.cpp'
--- pkg/dem/Law2_ScGeom_CapillaryPhys_Capillarity.cpp	2016-10-25 17:53:35 +0000
+++ pkg/dem/Law2_ScGeom_CapillaryPhys_Capillarity.cpp	2016-10-26 16:59:05 +0000
@@ -15,6 +15,7 @@
 #include <core/Omega.hpp>
 #include <core/Scene.hpp>
 #include <lib/base/Math.hpp>
+#include <pkg/common/Sphere.hpp>
 
 YADE_PLUGIN((Law2_ScGeom_CapillaryPhys_Capillarity));
 
@@ -95,11 +96,11 @@
 			/// definition of interacting objects (not necessarily in contact)
 			ScGeom* currentContactGeometry = static_cast<ScGeom*>(interaction->geom.get());
 			
-			/// interaction geometry search (this test is to compute capillarity only between spheres (probably a better way to do that)
-			int geometryIndex1 = (*bodies)[id1]->shape->getClassIndex(); // !!!
+			/// test of interacting bodies geometries since capillarity will be computed between spheres only
+			int geometryIndex1 = (*bodies)[id1]->shape->getClassIndex();
 			int geometryIndex2 = (*bodies)[id2]->shape->getClassIndex();
-			if (!(geometryIndex1 == geometryIndex2)) { // such interactions won't have a meniscus
-				if(currentContactGeometry->penetrationDepth < 0) // thus we will ask for the interaction to be erased, as we do w. sphere-sphere interactions below:
+			if ( (geometryIndex1 != geometryIndex2) || (geometryIndex1!=Sphere::getClassIndexStatic()) ) { // such interactions won't have a meniscus
+				if(currentContactGeometry->penetrationDepth < 0) // thus we will ask for the interaction to be erased in this distant case, as we do w. sphere-sphere interactions below:
 					scene->interactions->requestErase(interaction);
 				continue;}