Write MCNP Material CardsΒΆ

Here we load a test reactor and write each component of one fuel block out as MCNP material cards.

Normally, code-specific utility code would belong in a code-specific ARMI plugin. But in this case, the need for MCNP materials cards is so pervasive that it made it into the framework.

Out:

m1
      40090 3.35392810e-03
      40091 7.31410545e-04
      40092 1.11797601e-03
      40094 1.13296921e-03
      40096 1.82526696e-04
      92234 1.00000000e-15
      92235 4.36009592e-03
      92236 1.00000000e-15
      92238 3.48315484e-02
      93237 1.00000000e-15
      93238 1.00000000e-15
      94236 1.00000000e-15
      94238 1.00000000e-15
      94239 1.00000000e-15
      94240 1.00000000e-15
      94241 1.00000000e-15
      94242 1.00000000e-15
      95241 1.00000000e-15
      95242 1.00000000e-15
      95243 1.00000000e-15
      96242 1.00000000e-15
      96243 1.00000000e-15
      96244 1.00000000e-15
      96245 1.00000000e-15
      96246 1.00000000e-15
      96247 1.00000000e-15

m2
       6000 8.74751046e-04
      14028 4.31291138e-04
      14029 2.18989085e-05
      14030 1.44356034e-05
      23000 3.09377267e-04
      24050 5.15816461e-04
      24052 9.94700712e-03
      24053 1.12791075e-03
      24054 2.80760858e-04
      25055 4.78118343e-04
      26054 4.66815624e-03
      26056 7.32800682e-02
      26057 1.69235639e-03
      26058 2.25221567e-04
      28058 3.35129578e-04
      28060 1.29090626e-04
      28061 5.61199380e-06
      28062 1.78894609e-05
      28064 4.55851426e-06
      42092 8.12666224e-05
      42094 5.06547343e-05
      42095 8.71809049e-05
      42096 9.13428074e-05
      42097 5.22975906e-05
      42098 1.32140399e-04
      42100 5.27356856e-05
      74182 4.16978216e-05
      74183 2.25168237e-05
      74184 4.82121213e-05
      74186 4.47346819e-05

m3
      11023 2.21665718e-02

m4
       6000 8.75462690e-04
      14028 4.31642010e-04
      14029 2.19167241e-05
      14030 1.44473473e-05
      23000 3.09628958e-04
      24050 5.16236098e-04
      24052 9.95509940e-03
      24053 1.12882835e-03
      24054 2.80989268e-04
      25055 4.78507311e-04
      26054 4.67195397e-03
      26056 7.33396844e-02
      26057 1.69373318e-03
      26058 2.25404794e-04
      28058 3.35402219e-04
      28060 1.29195646e-04
      28061 5.61655937e-06
      28062 1.79040147e-05
      28064 4.56222279e-06
      42092 8.13327360e-05
      42094 5.06959439e-05
      42095 8.72518300e-05
      42096 9.14171183e-05
      42097 5.23401367e-05
      42098 1.32247900e-04
      42100 5.27785881e-05
      74182 4.17317444e-05
      74183 2.25351420e-05
      74184 4.82513437e-05
      74186 4.47710753e-05

m5
      11023 2.21665718e-02

m6
       6000 8.75462690e-04
      14028 4.31642010e-04
      14029 2.19167241e-05
      14030 1.44473473e-05
      23000 3.09628958e-04
      24050 5.16236098e-04
      24052 9.95509940e-03
      24053 1.12882835e-03
      24054 2.80989268e-04
      25055 4.78507311e-04
      26054 4.67195397e-03
      26056 7.33396844e-02
      26057 1.69373318e-03
      26058 2.25404794e-04
      28058 3.35402219e-04
      28060 1.29195646e-04
      28061 5.61655937e-06
      28062 1.79040147e-05
      28064 4.56222279e-06
      42092 8.13327360e-05
      42094 5.06959439e-05
      42095 8.72518300e-05
      42096 9.14171183e-05
      42097 5.23401367e-05
      42098 1.32247900e-04
      42100 5.27785881e-05
      74182 4.17317444e-05
      74183 2.25351420e-05
      74184 4.82513437e-05
      74186 4.47710753e-05

m7
      11023 2.21665718e-02

# sphinx_gallery_thumbnail_path = '.static/armi-logo.png'
import logging

from armi.reactor.tests import test_reactors
from armi.reactor.flags import Flags
from armi.utils.densityTools import formatMaterialCard
from armi.nucDirectory import nuclideBases as nb
from armi import configure, runLog

# init ARMI logging tools
logging.setLoggerClass(runLog.RunLogger)

# configure ARMI
configure(permissive=True)

_o, r = test_reactors.loadTestReactor()

bFuel = r.core.getBlocks(Flags.FUEL)[0]

for ci, component in enumerate(bFuel, start=1):
    ndens = component.getNumberDensities()
    # convert nucName (str) keys to nuclideBase keys
    ndensByBase = {nb.byName[nucName]: dens for nucName, dens in ndens.items()}
    print("".join(formatMaterialCard(ndensByBase, matNum=ci)))

Total running time of the script: ( 0 minutes 0.833 seconds)

Gallery generated by Sphinx-Gallery