As an assignment for uni I need to figure out an algorithm that explodes a particle of mass $m$, velocity $v$, into $n$ pieces.

For the first part of the assignment, the particle has mass $m$, velocity of $0$, the particle explodes into 6 equal pieces, and is not affected by gravity.

The problem I'm having is, how do I determine 6 equidistant unit vectors in three dimensions?

Assuming I need an initial vector, a unit vector in the direction of $v$ (the initial particle velocity) will do. In the initial case, where $v$ is $(+0, +0, +0)$, let the initial unit vector be in an arbitrary direction.

Also, how do I determine what speed each sub-particle will have? I know that the sum of sub-particle momentum will be equal to the momentum of the initial particle, and because each particle has the same mass they will each have the same speed... Do I need an explosion Force amount or something?

  • 1
    $\begingroup$ I don't understand a thing. For a start, what are "equidistant unit vectors"? $\endgroup$ – Pygmalion May 8 '12 at 9:53
  • $\begingroup$ @Pygmalion Unit vectors that are equidistant from each other. Think about an explosion in 2d that breaks up into 4 equal chunks. Chunk 1 will be moving away at a perpendicular angle to chunks 2 and 4, and directly away from the chunk 3. $\endgroup$ – Vikram Saran May 8 '12 at 9:56

Interesting problem. Does the explosion need to be symmetric? For arbitrary $n$ I'm not sure this can be done. For $n$ = 6 just make the vectors point to the vertices of an octahedron.

If the explosion doesn't need to be symmetric I would generate $n$ - 1 random directions, speeds and masses, then add up the total momentum of the fragments and calculate the $n$th vector to balance out the momentum and make the net momentum zero. Now add up the masses, then rescale them to make the total mass of the fragments equal the mass of the original particle. This guarantees that momentum and mass are conserved and should give you a reasonably realistic looking "explosion".

You don't say if there are any restrictions on the energies of the fragments. Once you've conserved momentum and mass you can rescale the velocities to give the fragments any total energy you want.

  • $\begingroup$ Perfect! I'll be programming this in Python, rather than leaving this as pen and paper. I'd like to have it symmetrical if possible, random if not. How would I determine that n vectors can be done symmetrically? I'd hazard a guess that any n divisible by 2 is acceptable, but I doubt that's the most accurate response. $\endgroup$ – Vikram Saran May 8 '12 at 10:12
  • $\begingroup$ By definition a set of equidistant vectors will define the vertices of a regular polyhedron. Since there are only five regular polyhedra, in general you can't do it. A general method of getting the most nearly symmetrical arrangement seems hard to me. I'd start with a random arrangement, put in some replusive force between the ends of the vectors and let it relax. I can't think of a simple formula to do it. $\endgroup$ – John Rennie May 8 '12 at 10:20
  • $\begingroup$ Thanks. I feel much better now that I know it's not quite feasible. I suppose I can always put in special cases for the 5 regular polyhedra (Found them just before you replied :P) $\endgroup$ – Vikram Saran May 8 '12 at 10:23
  • $\begingroup$ Oh jeez I should have known them, I'm a dungeons and dragons nerd! $\endgroup$ – Vikram Saran May 8 '12 at 10:25
  • 2
    $\begingroup$ Why is 6 symmetric vectors a problem? One could use $\vec{i}, -\vec{i}, \vec{j}, -\vec{j}, \vec{k}, -\vec{k}$. $\endgroup$ – Pygmalion May 8 '12 at 10:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.