← Back to team overview

yade-users team mailing list archive

Re: [Question #293955]: How to generate dense packing of aggregates

 

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

VG posted a new comment:
Thanks Jan!

So after using TriaxialStressController in compress.py, I get the position of the walls by using O.bodies[].state.pos.
This gives me the dimension and location of the granular sample. 
For example, starting from an initial dimension of (15,15,15), I get to the following locations for the walls:
0 -> Vector3(1.9603017656924078,7.5,7.5)
1 -> Vector3(13.213873202175382,7.5,7.5)
2 -> Vector3(7.5,1.0408600478483976,7.5)
3 -> Vector3(7.5,12.620020625453774,7.5)
4 -> Vector3(7.5,7.5,2.0193261962347355)
5 -> Vector3(7.5,7.5,13.575093096100462)

Now, I am trying to use this information in simulation.py to define the
size of the periodic cell and also to translate the granular sample so
that it lies perfectly within the periodic cell.

For translation, I was trying to use

for s in sp:
  s.state.pos[0] = s.state.pos[0] - 1.9603017657
  s.state.pos[1] = s.state.pos[1] - 1.04086
  s.state.pos[2] = s.state.pos[2] - 2.01932

which doesn't work.

Then, I noticed from the Yade user manual that there is a function translate((Vector3)arg2) which translate all spheres by given vector. I tried using it as:
sp.translate(-1.96030,-1.04086,-2.01932)

but this gives me the error: AttributeError: 'list' object has no
attribute 'translate'. Mostly, I am using it wrong. Could you please
point me to the correct usage ?

Thanks
Varun

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