enrico
enrico copied to clipboard
Extend `SurrogateHeatDriver` to support multiple assemblies
Right now the SurrogateHeatDriver
class is hardwired to work for a single assembly. To extend support to multiple assemblies, we'll need to add new input options in enrico.xml for specifying the placement of assemblies and an assembly pitch. In terms of changes needed in the SurrogateHeatDriver
class itself, @kkiesling and I talked over a few different options:
- One option would be to add an extra dimension on the various data members that corresponds to the different assemblies, e.g.,
pin_centers_
would go from beingxt::xtensor<double, 2>
toxt::xtensor<double, 3>
. The loops over pins/channels would then just need to account for the extra dimension for assemblies - Alternatively, we could keep the
SurrogateHeatDriver
exactly as is, but introduce a new class on top of it that keeps a vector ofSurrogateHeatDriver
instances, one for each assembly. The new class would be what actually interfaces withCoupledDriver
.