svalinn / Cubit-plugin

Plugins and command extensions for Coreform Cubit
BSD 3-Clause "New" or "Revised" License
17 stars 14 forks source link

We do not support the 3rd degenerate case for Tori #156

Open makeclean opened 3 months ago

makeclean commented 3 months ago

The mcnp manual states there are three 'kinds' of torus;

  1. major radius > minor radius and major radius > 0 (normal torus)
  2. major radius < minor radius and major radius > 0 (degenerate torus where there is some overlap forming a D shape)
  3. major radius < minor radius and major radius < 0 (degenerate torus where there is some overlap forming a lens shape)

It seems we do not support the third use case.

gonuke commented 3 months ago

For some reason I didn't think we supported either one. In case 2, do we actually get some kind of "infinity" symbol/ Venn diagram shape?

gonuke commented 3 months ago

What solutions are on the table?

  1. identify and report an error
  2. improve documentation
  3. enhance to code to support this case

I suppose definitely 2 and either 1 or 3?

MicahGale commented 3 months ago

1 vs. 3 sounds like a design philosophy question:

Ought this plugin support all valid (at least according to documentation) MCNP input or not?

I think no matter the answer to that question the short term solution should be pursuing 1 and 2 as those seem the lowest effort, and 3 should be a long term feature addition (if ever).

My two cents on support for this edge case: this seems to be a lot of effort to support for an edge case, and I don't think it's worth it. Though I think a huge part of my opinion on this is based on the assumption that all forms of case 3 lenticular shapes can be replicated with the intersection of two ellipsoids or parabloids.

gonuke commented 3 months ago

I just realized that this should actually live in the mcnp2cad repo

This does belong here - because it's implemented in the lightweight iGeom we made for this purpose