← Back to team overview

yade-users team mailing list archive

Re: [Question #685707]: Periodic flow and permeability

 

Question #685707 on Yade changed:
https://answers.launchpad.net/yade/+question/685707

    Status: Open => Answered

Bruno Chareyre proposed the following answer:
Hi,
Your script reveals that writing "flow.updateTriangulation=True" repeatedly, at each iteration, leads to problems with periodic solver.  It needs to be investigated. Most likely some internals are not updated correctly after assigning gradP multiple times.

In fact changing the boundary conditions repeatedly at one point in time
(i.e. in 0 iteration) is not something supposed to happen in a concrete
simulation and probably it was not anticipated.

Nevertheless, you can always use three engines instead of one, so you
are sure there is no such issue. Below is a shorter, working, version of
your script. Results with useSolver=3 (default):

average velocity= Vector3(-4.537650575699425e-6,-4.7346547328556296e-8,-5.300733352662439e-8)
average velocity= Vector3(-4.734654732786302e-8,-4.190262426966041e-6,5.93967279201477e-8)
average velocity= Vector3(-5.300733352643585e-8,5.9396727919603324e-8,-4.479154269170494e-6)


Bruno


from yade import pack

O.periodic=True
O.cell.hSize=Matrix3(0.1,0,0, 0,0.1,0, 0,0,0.1)
pos_center = Vector3(0.05,0.05,0.05)
sp=pack.SpherePack()
radius=5e-3
num=sp.makeCloud((0,0,0),(.1,.1,.1),radius,.2,1000,periodic=True)
O.bodies.append([sphere(s[0],s[1]) for s in sp])

for p in [Vector3(1,0,0),Vector3(0,1,0),Vector3(0,0,1)]:
 flow=PeriodicFlowEngine()
 flow.imposePressure(pos_center,0)
 flow.gradP=p
 flow.emulateAction()
 flow.saveVtk()
 print("average velocity=",flow.averageVelocity())

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.