yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #19632
Re: [Question #680627]: Boundary condition of PeriodicFlowEngine
Question #680627 on Yade changed:
https://answers.launchpad.net/yade/+question/680627
Status: Open => Answered
Chareyre proposed the following answer:
Hi. Yes it's working properly, I think.
Le sam. 4 mai 2019 18:22, Chu <question680627@xxxxxxxxxxxxxxxxxxxxx> a
écrit :
> New question #680627 on Yade:
> https://answers.launchpad.net/yade/+question/680627
>
> Hello,
> I'd like to use PeriodicFlowEngine in my script.It use periodic
> boundary.I‘d like to know how PeriodicFlowEngine handle periodic boundary
> for the fluid part.I checked the pressure field in Paraview,but I found
> that the pressure field has not gradient distribution and it is
> irregular.Is the PeriodicFlowEngine working properly?
> Thank you for any suggestions.
> ##########################################
> O.periodic=True
> O.cell.setBox(5,5,5)
>
> from yade import pack,timing
> ##psd (gap--type)
> psdSizes,psdCumm=[.1,0.15,0.2,1.0,1.5],[0,0.10,0.35,0.35,1.]
>
>
> O.materials.append(FrictMat(young=2e8,density=2600,poisson=.3,frictionAngle=40,label='spheres'))
> p=pack.SpherePack()
>
>
> p.makeCloud(Vector3(0,0,0),Vector3(5,5,5),psdSizes=psdSizes,psdCumm=psdCumm,distributeMass=True,num=6000,periodic=True)
>
> p.toSimulation()
>
>
> O.timingEnabled=True
> O.engines=[
> ForceResetter(),
> InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
> InteractionLoop(
> [Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
> [Ip2_FrictMat_FrictMat_FrictPhys()],
> [Law2_ScGeom_FrictPhys_CundallStrack()],
> ),
>
> PeriIsoCompressor(charLen=.5,stresses=[-5e6,-1e5],doneHook="test()",maxUnbalanced=1e-3,keepProportions=True),
> ##firstly reach a sigmaiso 5e6,then restore to final sigmaiso
> 100kpa
> NewtonIntegrator(gravity=(0,0,0),damping=.4),
> PeriodicFlowEngine(dead=1,label="flow"),
> #PyRunner(command='O.pause()',iterPeriod=50),
> PyRunner(command='flow.saveVtk()',iterPeriod=1),
> ]
>
>
> O.dt=PWaveTimeStep()
> O.saveTmp()
>
> def test():
>
>
> for i in O.bodies:
> if isinstance(i.shape,Sphere):
> if i.shape.radius > 0.2:
> i.state.blockedDOFs='xyzXYZ'
> i.state.vel=(0,0,0);i.state.angVel=(0,0,0)
>
> print '###########record Finish########## cell=', O.cell.size
> O.pause()
>
>
> O.dt=1e-4
> O.saveTmp()
> flow.dead=0
> flow.bndCondIsPressure=[1,1,0,0,0,0]
> flow.bndCondValue=[0,1000,0,0,0,0]
> flow.updateTriangulation=True
> flow.duplicateThreshold=0.7
>
> --
> You received this question notification because your team yade-users is
> an answer contact for Yade.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to : yade-users@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-users
> More help : https://help.launchpad.net/ListHelp
>
--
You received this question notification because your team yade-users is
an answer contact for Yade.