← Back to team overview

yade-users team mailing list archive

Re: [Question #702751]: periodic boundary in the direction of the length of a rotating drum (cylinder )

 

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

    Status: Needs information => Open

Roxana Saghafian Larijani gave more information on the question:
Hello Jan,
The problem is that I think the periodic boundary is being applied in all directions (but I only need z direction to have period boundary condition ). So, when I increase the dimensions of O.cell.setBox, it gets devided to four different parts that might be right for other cases but for my case it does not seem like a rotating drum. With smaller dimensions of O.cell.setBox, also it does not give me good result as I think the periodic boundary condition is being implemented in all directions.
This is my script; I have also attached the Drum.stl file.

from yade import ymport
from yade import pack
from yade import utils, plot,wrapper

###functions for exporting data
os.mkdir(os.getcwd()+'/VTK/')

def savePropData(O):
        from yade import export
        import numpy as np

        path = os.getcwd()+'/VTK/'
        vtkExporter = export.VTKExporter(path)
        vtkExporter.exportSpheres(numLabel = O.iter, what = dict( \
                                      dist = 'b.state.pos.norm()', \
                               linVelocity = 'b.state.vel', \
                               angVelocity = 'b.state.angVel', \
                               mass = 'b.state.mass', \
                               mat_rand = 'b.material.id', \
                               numOfContacts = 'len(b.intrs())'))


####


fr = 0.38
rho = 2500
En = 0.7
Et = 0.7
poi=0.21
yoM=63e6
O.dt = 0.000005
r = 0.008        #0.002381
Gamma =0.073      #20.6 * 1e-3
Theta = 35
vB = 0.0
CapType="Rabinovich"

##definig material

mat=O.materials.append(
        ViscElCapMat(frictionAngle=fr, density=rho, poisson=poi, young= yoM, Vb=vB, gamma=Gamma,  theta=Theta, Capillar=True, CapillarType=CapType,en=En, et=Et)
)
mat2=O.materials.append(
        ViscElCapMat(frictionAngle=0.29, density=rho, poisson=0.35, young= 12e6, Vb=vB, gamma=Gamma,  theta=90, Capillar=True, CapillarType=CapType,en=0.72, et=0.72)
)
#defining the spheres

sp=pack.SpherePack()
sp.makeCloud((-0.2,-0.2,-0.05),(0.2,0.2,0.05),rMean=r)
sp.toSimulation(material=mat)
Nprtcl=len(O.bodies)


walls = O.bodies.append(ymport.stl('Drum.stl',material=mat2))
##periodic boundary

O.periodic = True
O.cell.setBox(0.4,0.4,0.1)

##engine
O.engines = [
        ForceResetter(),
        InsertionSortCollider([Bo1_Sphere_Aabb(), Bo1_Facet_Aabb()],allowBiggerThanPeriod=True ),
        InteractionLoop(
                [Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
                [Ip2_ViscElCapMat_ViscElCapMat_ViscElCapPhys()],
                [Law2_ScGeom_ViscElCapPhys_Basic()],

        ),

        NewtonIntegrator(gravity=[0, -9.8, 0]),
        RotationEngine(ids=walls,rotationAxis=[0,0,1],rotateAroundZero=True,angularVelocity=1.68),
        PyRunner(command='savePropData(O)', iterPeriod=5000)
]


O.run()

Thank you!

Regards,
Roxana Saghafian



________________________________
From: noreply@xxxxxxxxxxxxx <noreply@xxxxxxxxxxxxx> on behalf of Jan Stránský <question702751@xxxxxxxxxxxxxxxxxxxxx>
Sent: Monday, August 15, 2022 9:30 AM
To: Saghafian Larijani, Roxana (UT-ET) <r.saghafianlarijani@xxxxxxxxxx>
Subject: Re: [Question #702751]: periodic boundary in the direction of the length of a rotating drum (cylinder )

Your question #702751 on Yade changed:
https://answers.launchpad.net/yade/+question/702751

    Status: Open => Needs information

Jan Stránský requested more information:
Hello,

> But I get a very weird simulation.

please be (much) more specific.

> Is the center of the created box using O.cell.setBox(5,5,0.2) on
(0,0,0) ?

Periodic cell has no center. Or has arbitrary center at any point. It is
one of the (possibly non-intuitive) features of periodicity.

> I was wondering if you could help me find where are my mistakes and
how I can apply the boundary condition in this case.

The code seems OK.
Please describe your problem more in detail.
Please provide a MWE [1], i.e. provide Drum.stl or replace it e.g. with something like geom.facetCylinder

Cheers
Jan

[1] https://www.yade-dem.org/wiki/Howtoask

--
To answer this request for more information, you can either reply to
this email or enter your reply at the following page:
https://answers.launchpad.net/yade/+question/702751

You received this question notification because you asked the question.

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