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

Asked by Wang Yu on 2020-06-28

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:
Answered
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
2020-06-28
Last reply:
2020-06-29
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

Can you help with this problem?

Provide an answer of your own, or ask Wang Yu for more information if necessary.

To post a message you must log in.