Generating randomly oriented non-intersecting cylinders in a unit cell

Click For Summary

Discussion Overview

The discussion revolves around the challenge of generating non-intersecting randomly oriented cylinders within a unit cell volume for micromechanical analysis. Participants explore various methods and considerations related to the Monte Carlo approach and the conditions for cylinder intersection.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • One participant suggests using a Monte Carlo approach to displace cylinders until they no longer intersect, although the specific condition for non-intersection is unclear.
  • Another participant proposes treating cylinders as line segments and calculating the minimum distance between them, noting that co-linear cylinders may require different conditions for intersection.
  • A participant emphasizes the need for clarity on the analysis's objectives and suggests that the randomness in generating cylinders may not refer to a specific mathematical method.
  • There is a discussion about the implications of generating cylinders one at a time versus generating them all and then adjusting their positions if they intersect.
  • One participant raises the concern that generating cylinders one at a time may lead to non-uniform orientations in the final result.
  • A link to a PDF is shared, which discusses an algorithm for determining cylinder intersection, although some participants express uncertainty about its content.
  • Another participant mentions that detecting intersections may require a brute force approach, checking each side of the new cylinder against existing ones.

Areas of Agreement / Disagreement

Participants express differing views on the best approach to generating non-intersecting cylinders and the conditions for intersection. There is no consensus on a specific method or algorithm, and the discussion remains unresolved regarding the optimal strategy.

Contextual Notes

Participants highlight limitations in defining conditions for intersection, particularly regarding co-linear cylinders and the implications of generating cylinders sequentially versus collectively.

tricha122
Messages
18
Reaction score
0
Hi all,

Im trying to think of a way of generating non-intersecting randomly oriented cylinders within a unit cell volume for micromechanical analysis.

Several research papers suggest a monte-carlo approach was used by displacing cylinders by vectors until the "condition was satisfied" - the condition is never stated. (also, i do not know what the monte carlo approach is)

My initial thought was to treat each cylinder as a line segment, and calculate the minimum distance between line segments, if that distance is > twice the radius of the cylinder, then they should not intersect. However, this also means that co-linear cylinders cannot be closer than twice the radius axially, which is not necessarily a condition i would like to impose.

Anyone have any thoughts on this?
 
Physics news on Phys.org
Their terminology seems vague. One guess might be that they generate a set of randomly oriented cylinders and then move any of them that intersect using a displacement vector that doesn't change their orientation. "The condition" might mean that they have been moved so that none intersect any more. That would result in "non-intersecting randomly oriented cylinders"
 
tricha122 said:
Im trying to think of a way of generating non-intersecting randomly oriented cylinders within a unit cell volume for micromechanical analysis.

I think you'll get better advice if you describe exactly what is being analyzed and what the analysis attempts to discover. The terminology of doing something "randomly" doesn't refer to a specific mathematical method. If this has something to do with a physical material, you might get some hints from thinking about how the material is fabricated.

Nowadays, "monte-carlo method" usually refers to running a computer simulation of a random process many times and using statistics from those simulations to answer some question.
 
Stephen Tashi said:
I think you'll get better advice if you describe exactly what is being analyzed and what the analysis attempts to discover. The terminology of doing something "randomly" doesn't refer to a specific mathematical method. If this has something to do with a physical material, you might get some hints from thinking about how the material is fabricated.

Nowadays, "monte-carlo method" usually refers to running a computer simulation of a random process many times and using statistics from those simulations to answer some question.

This is a theoretical study, and I will be biasing the orientation of the fibers using statistical functions, however the Crux of the problem I have is the condition for rejecting intersecting fibers. If I treat them as line segments, I can reject fibers that come within twice the radius of each other.. But for two collinear Fibres this condition would space them axially apart at the ends by at least twice the radius which is not a necessary condition... In that case they could butt up together. I just can't think of how to define that exception to the condition
 
tricha122 said:
the Crux of the problem I have is the condition for rejecting intersecting fibers.

Does your question amount to "What is an efficient algorithm for determining whether two cylinders intersect?" ?
 
Stephen Tashi said:
Does your question amount to "What is an efficient algorithm for determining whether two cylinders intersect?" ?


Yes I guess you can say that, keeping in mind ill be generating hundreds of cylinders one at a time and ensuring the new cylinder doesn't intersect with any existing cylinders
 
tricha122 said:
the problem I have is the condition for rejecting intersecting fibers.

Generating randomly oriented cylinders one at a time and rejecting any that intersect will not give uniform random orientations in the final result. It is not the same as generating them and then moving them if they intersect.
 
FactChecker said:
Generating randomly oriented cylinders one at a time and rejecting any that intersect will not give uniform random orientations in the final result. It is not the same as generating them and then moving them if they intersect.


It is the same if you iterate the centroid and maintain the orientation (which I would say is similar to generating a full set of cylinders and relocating them) - but easier for me to process in my head. It still doesn't address the endpoint issue.
 
  • #10
tricha122 said:
It is the same if you iterate the centroid and maintain the orientation (which I would say is similar to generating a full set of cylinders and relocating them) - but easier for me to process in my head. It still doesn't address the endpoint issue.

Agree. Detecting an intersection will probably have to be by brute force, checking each side of the new cylinder and making sure that it does not cross the near sides of any close cylinders.
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
3K
Replies
1
Views
1K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 41 ·
2
Replies
41
Views
5K
  • · Replies 13 ·
Replies
13
Views
3K
  • · Replies 1 ·
Replies
1
Views
404
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 12 ·
Replies
12
Views
4K
  • · Replies 94 ·
4
Replies
94
Views
14K
  • · Replies 29 ·
Replies
29
Views
6K