Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Survey ways to define multi-element materials

Explore four ways to define multi-element materials in OpenMC.

Survey ways to define multi-element materials
├── 1. The conventional way
├── 2. The programmatic way
├── 3. From the PNNL JSON
├── 4. With `neutronics_material_maker`
│   └── A closer look
└── Summary

This notebook explores four ways to define multi-element materials in OpenMC, focusing on the approach rather than comparing compositions or densities.

The four ways produce openmc.Material objects mats_conv (conventional), mats_prog (programmatic), mats_pnnl (PNNL), and mats_nmm (neutronics_material_maker), respectively.

Cross sections are evaluated at 294 K.

1. The conventional way

[Material ID = 1 Name = Steel, Stainless 316L Temperature = None Density = 8.0 [g/cm3] Volume = None [cm^3] Depletable = False S(a,b) Tables Nuclides C12 = 0.001368668048 [ao] C13 = 1.5331952e-05 [ao] Mn55 = 0.020165 [ao] P31 = 0.000805 [ao] S32 = 0.0004923110332 [ao] S33 = 3.8782142e-06 [ao] S34 = 2.17352282e-05 [ao] S36 = 7.55244e-08 [ao] Si28 = 0.0181895374896 [ao] Si29 = 0.0009236128152 [ao] Si30 = 0.0006088496952 [ao] Cr50 = 0.007868708100000002 [ao] Cr52 = 0.15174020322 [ao] Cr53 = 0.01720612098 [ao] Cr54 = 0.0042829677 [ao] Ni58 = 0.077095046943 [ao] Ni60 = 0.029696874057 [ao] Ni61 = 0.001290902553 [ao] Ni62 = 0.004115962215 [ao] Ni64 = 0.001048214232 [ao] Mo92 = 0.00211414368 [ao] Mo94 = 0.00132586784 [ao] Mo95 = 0.0022907913600000002 [ao] Mo96 = 0.00240624736 [ao] Mo97 = 0.00138287424 [ao] Mo98 = 0.00350582144 [ao] Mo100 = 0.0014062540800000001 [ao] Fe54 = 0.03791236505 [ao] Fe56 = 0.59514305266 [ao] Fe57 = 0.01374444851 [ao] Fe58 = 0.00182913378 [ao], Material ID = 2 Name = Concrete, Ordinary (NIST) Temperature = None Density = 2.3 [g/cm3] Volume = None [cm^3] Depletable = False S(a,b) Tables Nuclides H1 = 0.30527444915172 [ao] H2 = 4.755084828e-05 [ao] C12 = 0.00284809536 [ao] C13 = 3.190464e-05 [ao] O16 = 0.49922032206660005 [ao] O17 = 0.00018965576900000002 [ao] O18 = 0.0010010221644 [ao] Na23 = 0.009212 [ao] Mg24 = 0.00057239475 [ao] Mg25 = 7.264499999999999e-05 [ao] Mg26 = 7.996024999999999e-05 [ao] Al27 = 0.010298 [ao] Si28 = 0.13930924245280002 [ao] Si29 = 0.007073725853600001 [ao] Si30 = 0.0046630316936 [ao] K39 = 0.003336774818 [ao] K40 = 4.18626e-07 [ao] K41 = 0.000240806556 [ao] Ca40 = 0.01446747484 [ao] Ca42 = 9.655828e-05 [ao] Ca43 = 2.01474e-05 [ao] Ca44 = 0.00031131463999999997 [ao] Ca46 = 5.9696e-07 [ao] Ca48 = 2.790788e-05 [ao] Fe54 = 9.381225e-05 [ao] Fe56 = 0.0014726517000000002 [ao] Fe57 = 3.4009950000000005e-05 [ao] Fe58 = 4.526100000000001e-06 [ao], Material ID = 3 Name = Polyethylene, Borated Temperature = None Density = 1.0 [g/cm3] Volume = None [cm^3] Depletable = False S(a,b) Tables Nuclides H1 = 0.62765823328056 [ao] H2 = 9.776671943999999e-05 [ao] B10 = 0.009251975999999999 [ao] B11 = 0.037428024 [ao] C12 = 0.321957402008 [ao] C13 = 0.003606597992 [ao]]
<Figure size 1500x500 with 3 Axes>

2. The programmatic way

Following a data-science approach, material compositions and geometric specifications are organized in pandas DataFrames, from which OpenMC objects are constructed programmatically. This minimizes repetitive code, reduces the risk of inconsistencies, and makes the model easier to modify and validate. All materials are created in a single loop, without passing raw numbers to repeated add_element() calls.

Loading...
[Material ID = 4 Name = Concrete, Ordinary (NIST) Temperature = None Density = 2.3 [g/cm3] Volume = None [cm^3] Depletable = False S(a,b) Tables Nuclides H1 = 0.30527444915172 [ao] H2 = 4.755084828e-05 [ao] C12 = 0.00284809536 [ao] C13 = 3.190464e-05 [ao] O16 = 0.49922032206660005 [ao] O17 = 0.00018965576900000002 [ao] O18 = 0.0010010221644 [ao] Na23 = 0.009212 [ao] Mg24 = 0.00057239475 [ao] Mg25 = 7.264499999999999e-05 [ao] Mg26 = 7.996024999999999e-05 [ao] Al27 = 0.010298 [ao] Si28 = 0.13930924245280002 [ao] Si29 = 0.007073725853600001 [ao] Si30 = 0.0046630316936 [ao] K39 = 0.003336774818 [ao] K40 = 4.18626e-07 [ao] K41 = 0.000240806556 [ao] Ca40 = 0.01446747484 [ao] Ca42 = 9.655828e-05 [ao] Ca43 = 2.01474e-05 [ao] Ca44 = 0.00031131463999999997 [ao] Ca46 = 5.9696e-07 [ao] Ca48 = 2.790788e-05 [ao] Fe54 = 9.381225e-05 [ao] Fe56 = 0.0014726517000000002 [ao] Fe57 = 3.4009950000000005e-05 [ao] Fe58 = 4.526100000000001e-06 [ao], Material ID = 5 Name = Polyethylene, Borated Temperature = None Density = 1.0 [g/cm3] Volume = None [cm^3] Depletable = False S(a,b) Tables Nuclides H1 = 0.62765823328056 [ao] H2 = 9.776671943999999e-05 [ao] B10 = 0.009251975999999999 [ao] B11 = 0.037428024 [ao] C12 = 0.321957402008 [ao] C13 = 0.003606597992 [ao], Material ID = 6 Name = Steel, Stainless 316L Temperature = None Density = 8.0 [g/cm3] Volume = None [cm^3] Depletable = False S(a,b) Tables Nuclides C12 = 0.001368668048 [ao] C13 = 1.5331952e-05 [ao] Mn55 = 0.020165 [ao] P31 = 0.000805 [ao] S32 = 0.0004923110332 [ao] S33 = 3.8782142e-06 [ao] S34 = 2.17352282e-05 [ao] S36 = 7.55244e-08 [ao] Si28 = 0.0181895374896 [ao] Si29 = 0.0009236128152 [ao] Si30 = 0.0006088496952 [ao] Cr50 = 0.007868708100000002 [ao] Cr52 = 0.15174020322 [ao] Cr53 = 0.01720612098 [ao] Cr54 = 0.0042829677 [ao] Ni58 = 0.077095046943 [ao] Ni60 = 0.029696874057 [ao] Ni61 = 0.001290902553 [ao] Ni62 = 0.004115962215 [ao] Ni64 = 0.001048214232 [ao] Mo92 = 0.00211414368 [ao] Mo94 = 0.00132586784 [ao] Mo95 = 0.0022907913600000002 [ao] Mo96 = 0.00240624736 [ao] Mo97 = 0.00138287424 [ao] Mo98 = 0.00350582144 [ao] Mo100 = 0.0014062540800000001 [ao] Fe54 = 0.03791236505 [ao] Fe56 = 0.59514305266 [ao] Fe57 = 0.01374444851 [ao] Fe58 = 0.00182913378 [ao]]
<Figure size 1500x500 with 3 Axes>

3. From the PNNL JSON

The PNNL Rev. 2 material library provides elemental atomic fractions and reference densities. Download it once, then set download_pnnl = False to reuse the file saved under DATA_ROOT.

This library is currently available in OpenMC’s untagged develop branch (after version 0.16.0). The next tagged release, expected to be 0.16.1, should streamline this approach through openmc.Material.from_library(). Without installing a development installation, we read the JSON directly.

[Material ID = 7 Name = Steel, Stainless 316L Temperature = None Density = 8.0 [g/cm3] Volume = None [cm^3] Depletable = False S(a,b) Tables Nuclides C12 = 0.001368668048 [ao] C13 = 1.5331952e-05 [ao] Mn55 = 0.020165 [ao] P31 = 0.000805 [ao] S32 = 0.0004923110332 [ao] S33 = 3.8782142e-06 [ao] S34 = 2.17352282e-05 [ao] S36 = 7.55244e-08 [ao] Si28 = 0.0181895374896 [ao] Si29 = 0.0009236128152 [ao] Si30 = 0.0006088496952 [ao] Cr50 = 0.007868708100000002 [ao] Cr52 = 0.15174020322 [ao] Cr53 = 0.01720612098 [ao] Cr54 = 0.0042829677 [ao] Ni58 = 0.077095046943 [ao] Ni60 = 0.029696874057 [ao] Ni61 = 0.001290902553 [ao] Ni62 = 0.004115962215 [ao] Ni64 = 0.001048214232 [ao] Mo92 = 0.00211414368 [ao] Mo94 = 0.00132586784 [ao] Mo95 = 0.0022907913600000002 [ao] Mo96 = 0.00240624736 [ao] Mo97 = 0.00138287424 [ao] Mo98 = 0.00350582144 [ao] Mo100 = 0.0014062540800000001 [ao] Fe54 = 0.03791236505 [ao] Fe56 = 0.59514305266 [ao] Fe57 = 0.01374444851 [ao] Fe58 = 0.00182913378 [ao], Material ID = 8 Name = Concrete, Ordinary (NIST) Temperature = None Density = 2.3 [g/cm3] Volume = None [cm^3] Depletable = False S(a,b) Tables Nuclides H1 = 0.30527444915172 [ao] H2 = 4.755084828e-05 [ao] C12 = 0.00284809536 [ao] C13 = 3.190464e-05 [ao] O16 = 0.49922032206660005 [ao] O17 = 0.00018965576900000002 [ao] O18 = 0.0010010221644 [ao] Na23 = 0.009212 [ao] Mg24 = 0.00057239475 [ao] Mg25 = 7.264499999999999e-05 [ao] Mg26 = 7.996024999999999e-05 [ao] Al27 = 0.010298 [ao] Si28 = 0.13930924245280002 [ao] Si29 = 0.007073725853600001 [ao] Si30 = 0.0046630316936 [ao] K39 = 0.003336774818 [ao] K40 = 4.18626e-07 [ao] K41 = 0.000240806556 [ao] Ca40 = 0.01446747484 [ao] Ca42 = 9.655828e-05 [ao] Ca43 = 2.01474e-05 [ao] Ca44 = 0.00031131463999999997 [ao] Ca46 = 5.9696e-07 [ao] Ca48 = 2.790788e-05 [ao] Fe54 = 9.381225e-05 [ao] Fe56 = 0.0014726517000000002 [ao] Fe57 = 3.4009950000000005e-05 [ao] Fe58 = 4.526100000000001e-06 [ao], Material ID = 9 Name = Polyethylene, Borated Temperature = None Density = 1.0 [g/cm3] Volume = None [cm^3] Depletable = False S(a,b) Tables Nuclides H1 = 0.62765823328056 [ao] H2 = 9.776671943999999e-05 [ao] B10 = 0.009251975999999999 [ao] B11 = 0.037428024 [ao] C12 = 0.321957402008 [ao] C13 = 0.003606597992 [ao]]
<Figure size 1500x500 with 3 Axes>

4. With neutronics_material_maker

['WC', 'WB', 'SiC', 'eurofer', 'SS_316L_N_IG', 'tungsten_with_impurities', 'tungsten', 'P91', 'SST91', 'concrete_ordinary', 'concrete_heavy', 'concrete_boronated_heavy', 'a36_steel', 'CuCrZr_with_impurities', 'CuCrZr', 'Ti-6Al-4V', 'epoxy_resin', 'zircaloy_4', 'Rexolite 1422', 'ej-200-plastic-scintillator', 'ej-204-plastic-scintillator', 'ej-208-plastic-scintillator', 'ej-212-plastic-scintillator', 'A-150 Tissue-Equivalent Plastic', 'Acetone', 'Acetylene', 'Air (dry, near sea level)', 'Alanine', 'Aluminum', 'Aluminum Oxide', 'Aluminum, alloy 2024-O', 'Aluminum, alloy 2090-T83', 'Aluminum, alloy 3003', 'Aluminum, alloy 4043-O', 'Aluminum, alloy 5086-O', 'Aluminum, alloy 6061-O', 'Aluminum, alloy 7075-O', 'Ammonia (liquid at T= -79 C)', 'Anthracene', 'Argon', 'Asbestos (Chrysotile)', 'Asphalt', 'Asphalt pavement', 'Bakelite', 'Barium Fluoride', 'Barium sulfate', 'Benzene', 'Beryllium', 'Beryllium Carbide', 'Beryllium Oxide', 'Bismuth', 'Bismuth Germanate (BGO)', 'Bismuth Iodide', 'Blood (ICRP)', 'Bone Equivalent Plastic, B-100', 'Bone Equivalent Plastic, B-110', 'Bone, Compact (ICRU)', 'Bone, Cortical (ICRP)', 'Boral (65% Al-35% B4C)', 'Boral (Aluminum 10% boron alloy)', 'Boral (Aluminum 5% boron alloy)', 'Borax', 'Boric Acid', 'Boron', 'Boron Carbide', 'Boron Fluoride (B2F4)', 'Boron Fluoride (BF3)', 'Boron Oxide', 'Brain (ICRP)', 'Brass (typical composition)', 'Brick, Common Silica', 'Brick, Fire', 'Brick, Kaolin (white)', 'Bronze (typical composition)', 'C-552 Air-Equivalent Plastic', 'CELOTEX (Lignocellulosic Fiberboard)', 'CLLB(Ce) - Cesium Lithium Lanthanum Bromide - 0.3 wt% Cerium doped', 'Cadmium', 'Cadmium Nitrate Tetrahydrate', 'Cadmium Telluride', 'Cadmium Tungstate (CWO)', 'Cadmium Zinc Telluride (CZT)', 'Calcium Carbonate', 'Calcium Fluoride', 'Calcium Oxide', 'Calcium Sulfate', 'Calcium Tungstate', 'Carbon Dioxide', 'Carbon Tetrachloride', 'Carbon, Activated', 'Carbon, Amorphous', 'Carbon, Graphite (reactor grade)', 'Cat litter (clumping)', 'Cat litter (non-clumping)', 'Cellulose', 'Cellulose Acetate', 'Ceric Sulfate Dosimeter Solution', 'Cerium Bromide', 'Cerium Fluoride', 'Cesium Iodide - 1 wt% Sodium doped', 'Cesium Iodide - 1 wt% Thalium doped', 'Cesium Lithium Yttrium Chloride (CLYC)', 'Cesium Lithium Yttrium Chloride (CLYC) with 95% Li6 Enrichment', 'Chromium', 'Clay', 'Coal, Anthracite', 'Coal, Bituminous', 'Coal, Lignite', 'Concrete [Los Alamos (MCNP) Mix]', 'Concrete, Barite (Type BA)', 'Concrete, Barytes-Limonite', 'Concrete, Boron Frits-baryte', 'Concrete, Colemanite-baryte', 'Concrete, Ferro-phosphorus', 'Concrete, Hanford Dry', 'Concrete, Hanford Wet', 'Concrete, Iron-Portland', 'Concrete, Iron-limonite', 'Concrete, Limonite and steel', 'Concrete, Luminite-Portland-colemanite-baryte', 'Concrete, Luminite-colemanite-baryte', 'Concrete, M-1', 'Concrete, MO', 'Concrete, Magnetite', 'Concrete, Magnetite and steel', "Concrete, Magnuson's", 'Concrete, Oak Ridge (ORNL)', 'Concrete, Ordinary (NBS 03)', 'Concrete, Ordinary (NBS 04)', 'Concrete, Ordinary (NIST)', 'Concrete, Portland', 'Concrete, Regulatory Concrete (developed for U.S. NRC)', 'Concrete, Rocky Flats', 'Concrete, Serpentine', 'Copper', 'Diatomaceous Earth', 'Diesel Fuel', 'Earth, Typical Western U.S.', 'Earth, U.S. Average', 'Ethane', 'Ethyl Acetate', 'Ethyl Alcohol', 'Ethylene', 'Ethylene Glycol', 'Explosive compound, AN', 'Explosive compound, EGDN', 'Explosive compound, HMX', 'Explosive compound, NC', 'Explosive compound, NG', 'Explosive compound, PETN', 'Explosive compound, RDX', 'Explosive compound, TNT', 'Eye Lens (ICRP)', 'Felt', 'Ferric Oxide', 'Ferrous Sulfate Dosimeter Solution', 'Fertilizer (Muriate of Potash)', 'Fiberglass, Type C', 'Fiberglass, Type E', 'Fiberglass, Type R', 'Freon-12', 'Freon-12B2', 'Freon-13', 'Freon-13B1', 'Freon-13I1', 'GAGG(CE)', 'Gadolinium', 'Gadolinium Aluminum Galium Oxide - 0.5 atom% Cerium doped', 'Gadolinium Oxysulfide', 'Gadolinium Silicate (GSO)', 'Gafchromic Sensor (GS)', 'Gallium Arsenide', 'Gasoline', 'Germanium, High Purity', 'Glass Scintillator, Li Doped (GS1, GS2, GS3)', 'Glass Scintillator, Li Doped (GS10, GS20, GS30)', 'Glass Scintillator, Li Doped (GSF1, GSF2, and GSF3)', 'Glass Scintillator, Li Doped (KG1, KG2, KG3)', 'Glass, Borosilicate (Pyrex Glass)', 'Glass, Foam', 'Glass, Lead', 'Glass, Plate', 'Glycerol', 'Gold', 'Gypsum (Plaster of Paris)', 'He-3 proportional gas', 'He-4 gas detector', 'Helium, Natural', 'Hydrogen', 'Incoloy Alloy 800', 'Inconel Alloy 600', 'Inconel Alloy 625', 'Inconel Alloy 718', 'Indium', 'Iron', 'Iron Boride (Fe2B)', 'Iron Boride (FeB)', 'Iron, Armco Ingot', 'Iron, Cast (gray)', 'Iron, Wrought (Byers No.1)', 'Kaowool', 'Kapton Polyimide Film', 'Kennertium', 'Kernite', 'Kerosene', 'Krypton', 'Kynar', 'Lanthanum Bromide - 0.5 wt% Cerium doped', 'Lanthanum Bromide - 10 wt% Cerium and 0.10 wt% Strontium doped', 'Lanthanum Bromide - 10 wt% Cerium doped', 'Lanthanum Bromide - 5 wt% Cerium doped', 'Lead', 'Lead Iodide', 'Lead Tungstate (PWO)', 'Lithium', 'Lithium Amide', 'Lithium Fluoride', 'Lithium Gadolinium Borate (LGB)', 'Lithium Hydride', 'Lithium Iodide (high density)', 'Lithium Iodide (low density)', 'Lithium Oxide', 'Lithium Tetraborate', 'Lucite', 'Lutetium Aluminum Garnet (LuAG)', 'Lutetium Iodide(Cerium)', 'Lutetium Orthoaluminate (LuAP)', 'Lutetium Oxyorthosilicate (LSO)', 'Lutetium Yttrium OxyorthoSilicate (LYSO)', 'Magnesium', 'Magnesium Oxide', 'Magnesium Tetraborate', 'Masonite', 'Melamine', 'Melamine Formaldehyde', 'Mercuric Iodide', 'Mercury', 'Methane', 'Methanol', 'Methylene Chloride', 'Molybdenum', 'Monosodium Titanate, MST', 'Mortar', 'Muscle Equivalent-Liquid, with sucrose', 'Muscle Equivalent-Liquid, without sucrose', 'Muscle, Skeletal', 'Muscle, Striated', 'NE-213 Equivalent', 'Neon', 'Nickel', 'Niobium', 'Nitrogen', 'Nylon, Dupont ELVAmide 8062', 'Nylon, Type 11 (Rilsan)', 'Nylon, Type 6 and Type 6/6', 'Nylon, Type 6/10', 'Oil, Crude (Heavy, Cold Lake, Canada)', 'Oil, Crude (Heavy, Mexican)', 'Oil, Crude (Heavy, Qayarah, Iraq)', 'Oil, Crude (Light, Texas)', 'Oil, Fuel (Calif.)', 'Oil, Hydraulic', 'Oil, Lard', 'Oxygen', 'P-10 gas', 'P-5 gas', 'P-terphenyl', 'Palladium', 'Paper, News print', 'Paper, glossy', 'Paper, printer', 'Photographic Emulsion, Gel in', 'Photographic Emulsion, Kodak Type AA', 'Photographic Emulsion, Standard Nuclear', 'Platinum', 'Plutonium Bromide', 'Plutonium Carbide', 'Plutonium Chloride', 'Plutonium Dioxide', 'Plutonium Fluoride (PuF3)', 'Plutonium Fluoride (PuF4)', 'Plutonium Fluoride (PuF6)', 'Plutonium Iodide', 'Plutonium Nitrate', 'Plutonium Nitride', 'Plutonium Oxide (Pu2O3)', 'Plutonium Oxide (PuO)', 'Plutonium, Aged WGPu (A: 4-7% Pu240)', 'Plutonium, Aged WGPu (B: 10-13% Pu240)', 'Plutonium, Aged WGPu (C: 16-19% Pu240)', 'Plutonium, DOE 3013 WGPu', 'Plutonium, Fuel Grade', 'Plutonium, Power Grade', 'Plutonium, Shefelbine WGPu', 'Polycarbonate', 'Polyethylene Terephthalate (PET)', 'Polyethylene, Borated', 'Polyethylene, Non-borated', 'Polyisocyanurate (PIR)', 'Polypropylene (PP)', 'Polystyrene (PS)', 'Polytetrafluoroethylene (PTFE)', 'Polyurethane Foam (PUR)', 'Polyvinyl Acetate (PVA)', 'Polyvinyl Chloride (PVC)', 'Polyvinyl Toluene (PVT)', 'Polyvinylidene Chloride (PVDC)', 'Potassium Aluminum Silicate', 'Potassium Iodide', 'Potassium Oxide', 'Propane (gas)', 'Propane (liquid)', 'Quartz', 'Quartz Glass', 'Radiochromic Dye Film, Nylon Base (RDF: NB)', 'Rayon', 'Rock (Average of 5 types)', 'Rock, Basalt', 'Rock, Granite', 'Rock, Limestone', 'Rock, Sandstone', 'Rock, Shale', 'Rubber, Butyl', 'Rubber, Natural', 'Rubber, Neoprene', 'Rubber, Silicon', 'Salt Water (T=0 C)', 'Salt Water (T=20 C)', 'Sand', 'Sea Water, Simple Artificial', 'Sea Water, Standard', 'Sepiolite', 'Silciate Yttrium - 0.5 atom% Cerium', 'Silicon', 'Silicon Carbide (hexagonal)', 'Silicon Dioxide (Alpha-quartz)', 'Silicon Dioxide (Silica)', 'Silver', 'Skin (ICRP)', 'Sodium', 'Sodium Bismuth Tungstate (NBWO)', 'Sodium Chloride', 'Sodium Iodide - 0.2 wt% Thalium Doped', 'Sodium Iodide with 0.8 wt% Lithium - 0.10 wt% Thalium doped', 'Sodium Nitrate', 'Sodium Oxide', 'Steel, Boron Stainless', 'Steel, HT9 Stainless', 'Steel, High Carbon (1095)', 'Steel, Low Carbon (1008)', 'Steel, Medium Carbon (1045)', 'Steel, Stainless 202', 'Steel, Stainless 302', 'Steel, Stainless 304', 'Steel, Stainless 304L', 'Steel, Stainless 316', 'Steel, Stainless 316L', 'Steel, Stainless 321', 'Steel, Stainless 347', 'Steel, Stainless 409', 'Steel, Stainless 440A', 'Steel, Stainless 440B', 'Steel, Stainless 440C', 'Sterotex', 'Stilbene (trans-stilbene isomer)', 'Strontium Iodide - 2.5 atom% Europium doped', 'Sulfuric acid', 'Sulphur', 'TLYC', 'Tantalum', 'Thorium', 'Thorium Dioxide', 'Tin', 'Tissue Equivalent, MS20', 'Tissue Equivalent-Gas, methane based (TEG: MB)', 'Tissue Equivalent-Gas, propane based (TEG: PB)', 'Tissue, Adipose (ICRP)', 'Tissue, Breast', 'Tissue, Lung (ICRP)', 'Tissue, Ovary', 'Tissue, Soft (ICRP)', 'Tissue, Soft (ICRU four component)', 'Tissue, Testes (ICRP)', 'Tissue, Testis (ICRU)', 'Titanium', 'Titanium Dioxide', 'Titanium Hydride', 'Titanium alloy, grade 5', 'Toluene', 'Tributyl Borate', 'Tributyl Phosphate (TBP)', 'Tungsten', 'Uranium Carbide', 'Uranium Dicarbide', 'Uranium Dioxide', 'Uranium Hexafluoride', 'Uranium Hydride', 'Uranium Nitride', 'Uranium Oxide', 'Uranium Tetrafluoride', 'Uranium Trioxide', 'Uranium, Depleted, Typical', 'Uranium, Enriched, Typical Commercial', 'Uranium, HEU, Health Physics Society', 'Uranium, HEU, Russian Average', 'Uranium, HEU, US Average', 'Uranium, Low Enriched (LEU)', 'Uranium, Natural (NU)', 'Uranium-Plutonium, Mixed Oxide (MOX)', 'Uranyl Fluoride', 'Uranyl Nitrate', 'Vermiculite, Exfoliated', 'Viton Fluoroelastomer', 'Water, Heavy', 'Water, Liquid', 'Water, Vapor', 'Wax, M3', 'Wax, Mix D', 'Wax, Paraffin', 'Wood (Southern Pine)', 'Xenon', 'Yttrium Aluminum Oxide - 1 atom% Cerium', 'Yttrium Aluminum Perovslite - 0.5 atom% Cerium', 'Zeolite (Natrolite)', 'Zinc', 'Zinc Selenide', 'Zinc Sulfide', 'Zircaloy-2', 'Zircaloy-4', 'Zirconium', 'Zirconium Hydride (Zr5H8)', 'Zirconium Hydride (ZrH2)', 'ZnS(Ag):LiF 95wt% 6Li PHOSPHOR POWDER Neutron Detectors', 'ZnS:Ag PHOSPHOR POWDER EJ-600 for Neutron Detectors', 'DT_plasma', 'DD_plasma', 'Pb', 'Be', 'Be12Ti', 'Ba5Pb3', 'Nd5Pb4', 'Zr5Pb3', 'Zr5Pb4', 'Li', 'FLiNaK', 'isotropic graphite HPG-59', 'polyethylene', 'Nb3Sn', 'copper', 'ReBCO', 'Li4SiO4', 'Li2SiO3', 'Li2ZrO3', 'Li2TiO3', 'He', 'H2O', 'D2O', 'CO2', 'nitrogen', 'argon', 'xenon', 'Pb842Li158', 'lithium-lead', 'Li8PbO6', 'FLiBe', 'FLiNaBe']
[Material ID = 11 Name = Steel, Stainless 316L Temperature = None Density = 8.0 [g/cm3] Volume = None [cm^3] Depletable = False S(a,b) Tables Nuclides C12 = 0.001368668048 [ao] C13 = 1.5331952e-05 [ao] Cr50 = 0.007868708100000002 [ao] Cr52 = 0.15174020322 [ao] Cr53 = 0.01720612098 [ao] Cr54 = 0.0042829677 [ao] Fe54 = 0.03791236505 [ao] Fe56 = 0.59514305266 [ao] Fe57 = 0.01374444851 [ao] Fe58 = 0.00182913378 [ao] Mn55 = 0.020165 [ao] Mo100 = 0.0014062540800000001 [ao] Mo92 = 0.00211414368 [ao] Mo94 = 0.00132586784 [ao] Mo95 = 0.0022907913600000002 [ao] Mo96 = 0.00240624736 [ao] Mo97 = 0.00138287424 [ao] Mo98 = 0.00350582144 [ao] Ni58 = 0.077095046943 [ao] Ni60 = 0.029696874057 [ao] Ni61 = 0.001290902553 [ao] Ni62 = 0.004115962215 [ao] Ni64 = 0.001048214232 [ao] P31 = 0.000805 [ao] S32 = 0.0004923110332 [ao] S33 = 3.8782142e-06 [ao] S34 = 2.17352282e-05 [ao] S36 = 7.55244e-08 [ao] Si28 = 0.0181895374896 [ao] Si29 = 0.0009236128152 [ao] Si30 = 0.0006088496952 [ao], Material ID = 13 Name = Concrete, Ordinary (NIST) Temperature = None Density = 2.3 [g/cm3] Volume = None [cm^3] Depletable = False S(a,b) Tables Nuclides Al27 = 0.010298 [ao] C12 = 0.00284809536 [ao] C13 = 3.190464e-05 [ao] Ca40 = 0.01446747484 [ao] Ca42 = 9.655828e-05 [ao] Ca43 = 2.01474e-05 [ao] Ca44 = 0.00031131463999999997 [ao] Ca46 = 5.9696e-07 [ao] Ca48 = 2.790788e-05 [ao] Fe54 = 9.381225e-05 [ao] Fe56 = 0.0014726517000000002 [ao] Fe57 = 3.4009950000000005e-05 [ao] Fe58 = 4.526100000000001e-06 [ao] H1 = 0.30527444915172 [ao] H2 = 4.755084828e-05 [ao] K39 = 0.003336774818 [ao] K40 = 4.18626e-07 [ao] K41 = 0.000240806556 [ao] Mg24 = 0.00057239475 [ao] Mg25 = 7.264499999999999e-05 [ao] Mg26 = 7.996024999999999e-05 [ao] Na23 = 0.009212 [ao] O16 = 0.49922032206660005 [ao] O17 = 0.00018965576900000002 [ao] O18 = 0.0010010221644 [ao] Si28 = 0.13930924245280002 [ao] Si29 = 0.007073725853600001 [ao] Si30 = 0.0046630316936 [ao], Material ID = 15 Name = Polyethylene, Borated Temperature = None Density = 1.0 [g/cm3] Volume = None [cm^3] Depletable = False S(a,b) Tables Nuclides B10 = 0.009251975999999999 [ao] B11 = 0.037428024 [ao] C12 = 0.321957402008 [ao] C13 = 0.003606597992 [ao] H1 = 0.62765823328056 [ao] H2 = 9.776671943999999e-05 [ao]]
<Figure size 1500x500 with 3 Axes>

A closer look

NMM’s material library stores densities as numerical values or string expressions. The latter are evaluated using asteval, with CoolProp used for expressions starting with PropsSI. The implementation identifies temperature and pressure dependencies by searching for substrings in the expressions.

Source: NMM material.py, lines 699–729.

chemical_equation    Pb842Li158
density              99.90*(0.1-16.8e-6*(temperature - 273.15))
density_unit         g/cm3
comment              density equation valid for in the range 240-350 C. source http://aries.ucsd.edu/LIB/PROPS/PANOS/lipb.html
percent_type         ao
enrichment_target    Li6
enrichment_type      ao

chemical_equation    F2Li2BeF2
density              2.214 - 4.2e-4 * (temperature - 273.15)
density_unit         g/cm3
comment              source http://aries.ucsd.edu/LIB/MEETINGS/0103-TRANSMUT/gohar/Gohar-present.pdf
percent_type         ao
enrichment_target    Li6
enrichment_type      ao

density              0.534
density_unit         g/cm3
percent_type         ao
comment              https://www.pnnl.gov/main/publications/external/technical_reports/PNNL-15870Rev2.pdf
elements             {'Li': 1}

chemical_equation    H2O
density              PropsSI('D', 'T', temperature, 'P', pressure, 'Water')/1000.
density_unit         g/cm3
comment              CoolProp python package
percent_type         ao

lithium-lead
  NMM density (str): 99.90*(0.1-16.8e-6*(temperature - 273.15))
  At 294 K, 1 bar: 9.955007 g/cm³

FLiBe
  NMM density (str): 2.214 - 4.2e-4 * (temperature - 273.15)
  At 294 K, 1 bar: 2.205243 g/cm³

Lithium
  NMM density (float): 0.534
  At 294 K, 1 bar: 0.534000 g/cm³

H2O
  NMM density (str): PropsSI('D', 'T', temperature, 'P', pressure, 'Water')/1000.
  At 294 K, 1 bar: 0.998027 g/cm³

Summary

MethodComposition and densityNotes
mats_convConventionalUser-specifiedRaw numbers in repeated add_element() calls
mats_progDataFrame and loopUser-specifiedMore consistent and less error-prone than the conventional method
mats_pnnlPNNL JSONLibrary-providedNative API expected in release 0.16.1
mats_nmmNMM libraryLibrary-provideddensity field uses mixed formats