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

Reply via email to