Skip to content

CSG Transformations Support #32308

@kkiesling

Description

@kkiesling

Motivation

Various mesh generators need to be able to transform the model or parts of the model (translations, rotations, scaling). In particular, the AssemblyMG and CoreMG in the reactor module's RGMB set need to be able to rotate lattices and cells to complete the generateCSG implementation. As well, there is the TransformGenerator which can be used to apply transformations to any model.

Design

The design will be simple in that this will just be information tagged onto each CSG object type. All CSG object types will be supported to have this data added to it (surfaces, regions, cells, universe, and lattices).* Transformation types that will be supported are translate, rotate, and scaling. Each of these will ultimately be stored as vector of values ({x, y, z} for translation and scaling, {phi, theta, psi} for rotation). Transformations can be applied in sequence and so the transformation information will be stored as a vector of pairs, ordered in which the transformations are applied: {<TransformationType, {a,b,c}>, ... }. The plan right now is to make an enum class of the transformation types which can be easily imported across all types. Applying transformations will be exposed through CSGBase and some convenience methods will be given (ie rotating around a single axis or translating in a single direction).

*We looked at the top MC codes and it seems like almost all of the standard CSG object types have calls to directly support applying such transformations, and so we will leave it to the codes to do the "dirty work" of actually applying these and we will just provide the data stating the transformations were applied. In the case that an object type does not support the transformation directly, it will be up to the MC code-specific conversion method to determine how to best handle this and apply the transformation appropriately.

Impact

Adds new capability to CSG framework and extends the CSGBase calls.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C:CSGRelated to the CSG support in MOOSE for exact geometry / Monte Carlo neutronic integrationT: taskAn enhancement to the software.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions