armi.reactor.converters.uniformMesh module¶
Converts reactor with arbitrary axial meshing (e.g. multiple assemblies with different axial meshes) to one with a global uniform axial mesh.
Useful for preparing inputs for physics codes that require structured meshes from a more flexible ARMI reactor mesh.
This is implemented generically but includes a concrete subclass for neutronics-specific parameters. This is used for build input files for codes like DIF3D which require axially uniform meshes.
Requirements¶
Build an average reactor with aligned axial meshes from a reactor with arbitrarily unaligned axial meshes in a way that conserves nuclide mass
Translate state information computed on the uniform mesh back to the unaligned mesh.
For neutronics cases, all neutronics-related block params should be translated, as well as the multigroup real and adjoint flux.
Examples
converter = uniformMesh.NeutronicsUniformMeshConverter() uniformReactor = converter.convert(reactor) # do calcs, then: converter.applyStateToOriginal()
The mesh mapping happens as described in the figure:
- class armi.reactor.converters.uniformMesh.UniformMeshGeometryConverter(cs=None)[source]¶
Bases:
armi.reactor.converters.geometryConverters.GeometryConverter
Build uniform mesh version of the source reactor
- static makeAssemWithUniformMesh(sourceAssem, newMesh)[source]¶
Build new assembly based on a source assembly but apply the uniform mesh.
The new assemblies must have appropriately mapped number densities as input for a neutronics solve. They must also have other relevant state parameters for follow-on steps. Thus, this maps many parameters from the ARMI mesh to the uniform mesh.
See also
applyStateToOriginal
basically the reverse on the way out.
- class armi.reactor.converters.uniformMesh.NeutronicsUniformMeshConverter(cs=None, calcReactionRates=True)[source]¶
Bases:
armi.reactor.converters.uniformMesh.UniformMeshGeometryConverter
A uniform mesh converter that specifically maps neutronics parameters.
This is useful for codes like DIF3D.
Notes
If a case runs where two mesh conversions happen one after the other (e.g. a fixed source gamma transport step that needs appropriate fission rates), it is essential that the neutronics params be mapped onto the newly converted reactor as well as off of it back to the source reactor.
- Parameters
cs (obj, optional) – Case settings object.
calcReactionRates (bool, optional) – Set to True by default, but if set to False the reaction rate calculation after the neutron flux is remapped will not be calculated.