yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #21947
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.