[Feature] Geometry handling simplification/update #19
Labels
Status:1-New
No one has claimed this issue yet. It is in need of solving.
Type:Feature
New feature or feature request
Milestone
Is your feature request related to a problem? Please describe.
Ghastly has to do a lot of work specifying 3D geometries for a variety of simple 3D shapes - cylinders, cones, annuli, and rectangular prisms. Currently, geometries within Ghastly's custom classes are simply contained in raw variables. However, there are python packages that could not only be clearer and more concise, but also have built-in functions (such as finding bounds) that might be able to be used in place of doing it manually.
Describe the feature you'd like.
Explore geometry packages (such as sympy, shapely, or pyeuclid) and implement one for class geometries, if you find a suitable one (shapely is the current frontrunner). The core and region classes should be able to use such a library at minimum, but a new class for keeping track of the LAMMPS simulation bounding box would likely also be useful. Whether or not the pebble class will really benefit from incorporating a geometry class remains to be seen (as it mostly just tracks the centroid - which shapely can do, but a shapely object might be overkill, esp. for the number of pebbles one can expect.)
Describe alternatives you've considered.
The current alternative would be to not use such a package, and to, at most, clean up the "manual" way geometry information is tracked and defined, such as with points classes or replacing two-part dicts with tuples (such as with the current handling of sim boundary box dimensions).
Additional context.
When choosing how the geometry information is stored, it's important to keep in mind that Ghastly will have to work with both OpenMC LAMMPS to define objects in their format.
How can this issue be closed?
This issue can be closed by choosing and implementing a geometry package, or by determining that this is worse than the current system (and clearly explaining why)
The text was updated successfully, but these errors were encountered: