Skip to content

Demonstrate Cardinal controlling OpenMC geometry #1156

@gonuke

Description

@gonuke

Reason

In order to perform a criticality search with multiphysics feedback in Cardinal, it will necessary for Cardinal to change parameters of some surfaces. This issue seeks to demonstrate the ability to do this as a single change (i.e. not yet as part of a root-finding search).

Design

The following need to be considered in the design:

  • What kind of change will be supported, namely translation vs rotation
  • A mechanism for the user to specify which surface must change and which parameter of that surface must change
  • Direct calls to the openmc library to cause those changes at an appropriate in the cycle of mapping/remapping mesh to cells

A test would include

  • creating a minimum working geometry for an OpenMC + MOOSE HTM simulation, A
  • manually creating a variation on that minimum working geometry, B
  • perform Cardinal calculations with A & B
  • perform Cardinal calculations with A with 0 change applied - confirm that it matches A
  • perform Cardinal calculation with A modified to match B - confirm that it matches B

Consideration should be given to whether this is implemented as an absolute change in a geometric parameter vs a relative change. In the latter, it may be necessary to read the parameters from the OpenMC geometry before applying the change.

Impact

This will add optional user input to control changes to geometry without changes to topology.

Additional Context

A general solution to this is likely too complicated; it may be best to develop a single specific case such as:

  • translate a single surface in a single dimension
  • rotate a single surface around a given axis of rotation

From these examples, more complicated examples can be pursued in separate issues:

  • translate multiple surfaces
  • rotate multiple surfaces

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions