yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #10723
[Branch ~yade-pkg/yade/git-trunk] Rev 3916: Add an opportunity to change liquid volume during simulation.
------------------------------------------------------------
revno: 3916
committer: Anton Gladky <gladky.anton@xxxxxxxxx>
timestamp: Sat 2014-04-12 16:12:48 +0200
message:
Add an opportunity to change liquid volume during simulation.
modified:
pkg/dem/ViscoelasticCapillarPM.cpp
pkg/dem/ViscoelasticCapillarPM.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/ViscoelasticCapillarPM.cpp'
--- pkg/dem/ViscoelasticCapillarPM.cpp 2014-04-10 13:39:23 +0000
+++ pkg/dem/ViscoelasticCapillarPM.cpp 2014-04-12 14:12:48 +0000
@@ -80,7 +80,7 @@
* after that the liquid bridge will be broken.
*/
- if (not(phys.liqBridgeCreated) and phys.Capillar) {
+ if (not(phys.liqBridgeCreated) and phys.Capillar and geom.penetrationDepth>=0) {
phys.liqBridgeCreated = true;
Sphere* s1=dynamic_cast<Sphere*>(bodies[id1]->shape.get());
Sphere* s2=dynamic_cast<Sphere*>(bodies[id2]->shape.get());
@@ -91,13 +91,10 @@
} else {
phys.R = s2->radius;
}
-
- const Real Vstar = phys.Vb/(phys.R*phys.R*phys.R);
- const Real Sstar = (1+0.5*phys.theta)*(pow(Vstar,1/3.0) + 0.1*pow(Vstar,2.0/3.0)); // [Willett2000], equation (15), use the full-length e.g 2*Sc
-
- phys.sCrit = Sstar*phys.R;
}
+ phys.sCrit = this->critDist(phys.Vb, phys.R, phys.theta);
+
if (geom.penetrationDepth<0) {
if (phys.liqBridgeCreated and -geom.penetrationDepth<phys.sCrit and phys.Capillar) {
phys.normalForce = -phys.CapFunct(geom, phys)*geom.normal;
@@ -126,6 +123,13 @@
}
}
+Real Law2_ScGeom_ViscElCapPhys_Basic::critDist(const Real& Vb, const Real& R, const Real& Theta) {
+ const Real Vstar = Vb/(R*R*R);
+ const Real Sstar = (1+0.5*Theta)*(pow(Vstar,1/3.0) + 0.1*pow(Vstar,2.0/3.0)); // [Willett2000], equation (15), use the full-length e.g 2*Sc
+ const Real critDist = Sstar*R;
+ return critDist;
+}
+
//=========================================================================================
//======================Capillary bridge models============================================
//=========================================================================================
=== modified file 'pkg/dem/ViscoelasticCapillarPM.hpp'
--- pkg/dem/ViscoelasticCapillarPM.hpp 2014-04-10 13:39:23 +0000
+++ pkg/dem/ViscoelasticCapillarPM.hpp 2014-04-12 14:12:48 +0000
@@ -59,6 +59,7 @@
static Real Lambert_f (const ScGeom& geom, ViscElCapPhys& phys);
static Real Soulie_f (const ScGeom& geom, ViscElCapPhys& phys);
static Real None_f (const ScGeom& geom, ViscElCapPhys& phys);
+ Real critDist(const Real& Vb, const Real& R, const Real& Theta);
FUNCTOR2D(ScGeom,ViscElCapPhys);
YADE_CLASS_BASE_DOC(Law2_ScGeom_ViscElCapPhys_Basic,LawFunctor,"Extended version of Linear viscoelastic model with capillary parameters.");
DECLARE_LOGGER;