Ok, thanks for explanations. For meniscus and the non-erased interactions, at least, see the attached script, in which the interaction is never erased. As said Christian, this does not harm because the capillary force is 0. Still, it is maybe useless to keep it.
Inserting the following lines else if (!hertzOn) { if (!cundallContactPhysics->meniscus) scene->interactions->requestErase(interaction); } else { if (!mindlinContactPhysics->meniscus) scene->interactions->requestErase(interaction); } between current lines 128-129 would solve this problem. Agree ? ________________________________ From: Yade-dev [yade-dev-bounces+jerome.duriez=ucalgary...@lists.launchpad.net] on behalf of Bruno Chareyre [bruno.chare...@3sr-grenoble.fr] Sent: October 29, 2014 6:09 AM To: yade-dev@lists.launchpad.net Subject: Re: [Yade-dev] Some cleaning in capillary law This seems to me contradictory (zero volume meniscii might "form" between contacting spheres depending on the succion) and, associated to the test l.139 [3], it leads, in some cases, to interactions that are never deleted, even if there is no more geometrical overlap neither a meniscus with a non-zero amount of water (because erase on l.160 might be switched). I don't see the problem. Can you please show how to get these non-erased interactions? Cheers. Bruno
# 2 spheres initially in geometrical contact, then pulled away O.bodies.append(sphere(center=Vector3(0,0,0),radius=5e-4,dynamic=0)) O.bodies.append(sphere(center=Vector3(0,0,9.9e-4),radius=5e-4,dynamic=0)) O.engines=[ForceResetter() ,InsertionSortCollider([Bo1_Sphere_Aabb()]) ,InteractionLoop( [Ig2_Sphere_Sphere_ScGeom()], [Ip2_FrictMat_FrictMat_CapillaryPhys()], [Law2_ScGeom_FrictPhys_CundallStrack(neverErase=1)] ) ,Law2_ScGeom_CapillaryPhys_Capillarity(capillaryPressure=300.e3) ,NewtonIntegrator(damping=.2) ,GlobalStiffnessTimeStepper() ,PyRunner(command='computeThings()',iterPeriod=1) ] from yade import plot def computeThings(): i = O.interactions[0,1] plot.addData(i=O.iter,un = i.geom.penetrationDepth ,vM = i.phys.vMeniscus,Delta1=i.phys.Delta1,Delta2=i.phys.Delta2,fnCap=i.phys.fCap[2]) plot.plots={'i':'un','un':'fnCap',' un':'vM','un ':('Delta1','Delta2')} plot.plot() O.bodies[1].state.vel=Vector3(0,0,0.005) O.run(2000,wait=1) print 'Interaction still real: ', O.interactions[0,1].isReal print 'With non-overlap: un < 0 since un =',O.interactions[0,1].geom.penetrationDepth print 'And zero meniscus volume: V =', O.interactions[0,1].phys.vMeniscus
_______________________________________________ Mailing list: https://launchpad.net/~yade-dev Post to : yade-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-dev More help : https://help.launchpad.net/ListHelp