How to creat 2D random dense pack in a disc-shape plane?

Asked by Wang Yu

I want to creat a 2D random dense pack in a disc-shape plane, and I've tried the randomdensepack function using the inCylinder Predicate. I tried to set the thickness of the cylinder to zero but the randomdensepack isn't for 2D. The Cylinder volume can't be zero.

I've thought about to use Makecloud and PeriTriaxController. It works in 2D if minCorner[k]=maxCorner[k] for one coordinate. But it seems to apply only in a parallelepiped not a cylinder.

So, what should I do? Please give me some advice or examples. Thank you!

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Jan Stránský
Solved:
Last query:
Last reply:
Revision history for this message
Best Jan Stránský (honzik) said :
#1

Hello,

it seems you will have to write your own randomDensePack, i.e. creating a loose packing and compressing it.
You can (depending on your needs):
- create a dense rectangle and "crop" it to be a circle
- or using a circular boundary* for compaction

* circular boundary might be:
- facets or boxes discretizing the circle
- new Shape dedicated for this task

cheers
Jan

Revision history for this message
Wang Yu (wangyu93) said :
#2

Thanks Jan Stránský, that solved my question.