first files

This commit is contained in:
Stafie Alex PSI
2025-10-08 13:11:16 +02:00
parent f1b05538cc
commit de70d59ffd
9 changed files with 790 additions and 53 deletions
+86 -53
View File
@@ -1,76 +1,109 @@
# OpenMC
## Building the f***er
## Make your own env and compile it
### Make your own env and compile it
Complicated and not really worth it
My recomandation for the env:
install direnv --> hook
install pyen --> hook in bachrc
install python 3.12.0
* install direnv --> hook
install miniconda (not)
install conda (not)
* install pyen --> hook in bachrc
install the api
* install python 3.12.0
* install miniconda (not)
* install conda (not)
* install the api
## Quick Install Guide
[From the devs](https://docs.openmc.org/en/stable/quickinstall.html)
# Making OpenMC work on WSL/LCLRS/MERLIN via Apptainer
Even though the website says to use the docker, we'll make use of apptainer, because is more friendly and is available on all platforms
Even though the website says to use the docker, we'll make use of apptainer, because is more friendly and is available on all platforms (LCLRS and MERLIN). Docker works as well, but I find it cumbersome.
Docker works as well, but I find it cumbersome
You can try to compile it yourself but good luck with that
This will make a sif image for the container to run from, localy in the folder
```
# This will make a sif image for the container to run from, localy in the folder
apptainer pull openmc.sif docker://openmc/openmc:latest
```
Paste this script, it picks up the container and runs the python with the OpenMC python API for yout python file.
To run use this script to call apptainer opemnc container [scripts/openmc_run.sh](scripts/openmc_run.sh).
```
#!/bin/bash
# Full path to your OpenMC Apptainer container
SIF="/afs/psi.ch/project/stars/workspace/RND/SB-RND-ACT-004-25/SC41/openmc/openmc_apptainer/openmc.sif"
# Current working directory (host machine)
HOST_DIR="$(pwd)"
# Container directory where the current folder will be mounted
CONTAINER_DIR="/workspace"
# Check if the user provided the Python script to run as the first argument
if [ -z "$1" ]; then
echo "Usage: $0 your_script.py [additional python args]"
exit 1
fi
PYTHON_SCRIPT="$1"
shift # remove first arg so that $@ contains any extra python arguments
# Check if the Python script exists in the current directory
if [ ! -f "${HOST_DIR}/${PYTHON_SCRIPT}" ]; then
echo "Error: Python script '${PYTHON_SCRIPT}' not found in current directory."
exit 1
fi
# Log file name (same folder, same name with .log)
LOG_FILE="${HOST_DIR}/${PYTHON_SCRIPT%.*}.log"
# Run the Python script inside the container with folder bind
apptainer exec \
--bind "${HOST_DIR}:${CONTAINER_DIR}" \
--bind "PUT YOU PATH TO THE LIBS HERE/openmc/lib_mine:/libs" \
--pwd "${CONTAINER_DIR}" "${SIF}" \
python3.11 "${CONTAINER_DIR}/${PYTHON_SCRIPT}" "$@" | tee "${LOG_FILE}"
# ================================================================
# OpenMC + Python Runner (Apptainer-based)
# ================================================================
# Description:
# This script runs either:
# (1) OpenMC directly inside an Apptainer container, or
# (2) a Python script using the same container environment.
#
# Usage:
# ./run_openmc.sh → Run OpenMC in the container
# ./run_openmc.sh script.py args → Run Python script with args
# ./run_openmc.sh -h | --help → Show help
#
# Behavior:
# - The current working directory is mounted into /workspace inside the container.
# - The OpenMC library directory is mounted into /libs.
# - The output log is saved in the same directory as the run:
# * openmc_run.log for OpenMC runs
# * <scriptname>.log for Python runs
#
# Example:
# ./run_openmc.sh # Run OpenMC normally
# ./run_openmc.sh input.py # API can be called inside the script
```
NOTE: If you want to use more libsm, the apptainer needs the path binded to that place if not inside workdirectory of the apptainer. I preffer to have them in permanent place and run the apptainer anywhere.
To use other libs for OpenMC, use os to find the path binded in the apptainer:
# OpenMC libraries
[Nuclear library status](README_LIB.md)
NOTE: this is a work in progress, and currently not hosted on a public folder.
## Setting the Cross Section Library in OpenMC
By default, OpenMC locates the cross section library using the environment variable
OPENMC_CROSS_SECTIONS. But avoid doing this inside long-term scripts — its better to keep the path explicit in your model setup.
```
import os
os.environ['OPENMC_CROSS_SECTIONS'] = "/libs/j33/cross_sections.xml"
os.environ['OPENMC_CROSS_SECTIONS'] = f"/libs/e80_hdf5/cross_sections.xml"
```
However, you can specify the library path directly in your Python script or XML files — no need to rely on environment variables.
### Option 1 — Use Materials.cross_sections
You can embed the path into your exported materials.xml file:
```
materials.cross_sections = '/absolute/path/to/cross_sections.xml'
materials.export_to_xml()
```
This adds the following line inside your generated XML:
`<cross_sections>/absolute/path/to/cross_sections.xml</cross_sections>`
### Option 2 — Use openmc.config
For newer OpenMC versions, you can configure the cross-section file at runtime:
```
openmc.config['cross_sections'] = '/absolute/path/to/cross_sections.xml'
```
This temporarily overrides any environment variable and is useful for workflows or notebooks where you dont want to modify global settings.
**NOTE**: Depending on the OpenMC version, `openmc.config['cross_sections']` may not be automatically written to XML, in that case, use option 1 to ensure reproducibility.
### Find more here
[OpenMC Documentation Using Cross Section Data](https://docs.openmc.org/en/stable/usersguide/data.html)
[Python API: openmc.Materials.cross_sections](https://docs.openmc.org/en/stable/pythonapi/generated/openmc.Materials.html)
+2
View File
@@ -1,3 +1,5 @@
## Libraries info
The devs have a guide here on converting: https://github.com/openmc-dev/data
+112
View File
@@ -0,0 +1,112 @@
#!/bin/bash
#
# ================================================================
# OpenMC + Python Runner (Apptainer-based)
# ================================================================
# Description:
# This script runs either:
# (1) OpenMC directly inside an Apptainer container, or
# (2) a Python script using the same container environment.
#
# Usage:
# ./run_openmc.sh → Run OpenMC in the container
# ./run_openmc.sh script.py args → Run Python script with args
# ./run_openmc.sh -h | --help → Show help
#
# Behavior:
# - The current working directory is mounted into /workspace inside the container.
# - The OpenMC library directory is mounted into /libs.
# - The output log is saved in the same directory as the run:
# * openmc_run.log for OpenMC runs
# * <scriptname>.log for Python runs
#
# Example:
# ./run_openmc.sh # Run OpenMC normally
# ./run_openmc.sh input.py # API can be called inside the script
#
# ================================================================
# === Config ===
# ================================================================
# NOTE: Update SIF and LIB_DIR paths as needed !!!!!!!!!!!!!!!!!!!
# ================================================================
SIF="/afs/psi.ch/project/stars/workspace/RND/SB-RND-ACT-004-25/SC41/openmc/openmc_apptainer/openmc.sif"
LIB_DIR="/afs/psi.ch/project/stars/workspace/RND/SB-RND-ACT-004-25/SC41/openmc/lib_mine"
HOST_DIR="$(pwd)"
CONTAINER_DIR="/workspace"
# === Help ===
show_help() {
cat << EOF
Usage: $(basename "$0") [script.py [args...]]
Run OpenMC or a Python script inside an Apptainer container.
Options:
-h, --help Show this help message and exit
Modes:
• No arguments → Runs OpenMC inside the container
• script.py [args...] → Runs the given Python script using py
Examples:
$(basename "$0") # Run OpenMC normally
$(basename "$0") run_case.py # Run Python script
Environment:
Container: ${SIF}
Host dir : ${HOST_DIR}
Lib dir : ${LIB_DIR}
EOF
}
# === Handle Help Flag ===
if [[ "$1" == "-h" || "$1" == "--help" ]]; then
show_help
exit 0
fi
# === Mode ===
if [ -z "$1" ]; then
MODE="openmc"
else
MODE="python"
PYTHON_SCRIPT="$1"
shift
fi
# === Log File ===
if [ "$MODE" = "openmc" ]; then
LOG_FILE="${HOST_DIR}/openmc_run.log"
else
if [ ! -f "${HOST_DIR}/${PYTHON_SCRIPT}" ]; then
echo "Error: Python script '${PYTHON_SCRIPT}' not found in ${HOST_DIR}."
exit 1
fi
LOG_FILE="${HOST_DIR}/${PYTHON_SCRIPT%.*}.log"
fi
echo "---------------------------------------------------------------"
echo " Running in container: ${SIF}"
echo " Host directory : ${HOST_DIR}"
echo " Container directory : ${CONTAINER_DIR}"
echo " Library mount : ${LIB_DIR} -> /libs"
echo " Log file : ${LOG_FILE}"
echo "---------------------------------------------------------------"
# === Exec===
if [ "$MODE" = "openmc" ]; then
echo ">>> Starting OpenMC run..."
apptainer exec \
--bind "${HOST_DIR}:${CONTAINER_DIR}" \
--bind "${LIB_DIR}:/libs" \
--pwd "${CONTAINER_DIR}" "${SIF}" \
openmc | tee "${LOG_FILE}"
else
echo ">>> Running Python script: ${PYTHON_SCRIPT}"
apptainer exec \
--bind "${HOST_DIR}:${CONTAINER_DIR}" \
--bind "${LIB_DIR}:/libs" \
--pwd "${CONTAINER_DIR}" "${SIF}" \
python3.11 "${CONTAINER_DIR}/${PYTHON_SCRIPT}" "$@" | tee "${LOG_FILE}"
fi
+217
View File
@@ -0,0 +1,217 @@
# ICSBEP / ICF-4 / 300K
import os
import openmc
#NOTE: use the endf8 library for this case
def main():
name = "icf4_300K"
# --- Material 1 ---
m1 = openmc.Material(1, name="M1")
m1.set_density("atom/b-cm", 0.0562661)
m1.add_nuclide("U235", 0.08064591026605385)
m1.add_nuclide("U238", 0.2987874253803838)
m1.add_nuclide("U234", 0.000782176270610215)
m1.add_nuclide("U236", 0.00037497007895844983)
m1.add_nuclide("Cr50", 0.0011140013571911743)
m1.add_nuclide("Cr52", 0.02148274408316513)
m1.add_nuclide("Cr53", 0.0024356766458088507)
m1.add_nuclide("Cr54", 0.0006063545616828636)
m1.add_nuclide("Ni58", 0.0075112026481007205)
m1.add_nuclide("Ni60", 0.0028715875158215015)
m1.add_nuclide("Ni61", 0.0001243249721034816)
m1.add_nuclide("Ni62", 0.0003949785780598581)
m1.add_nuclide("Ni64", 0.0001001201621805832)
m1.add_nuclide("Fe54", 0.005965991298505994)
m1.add_nuclide("Fe56", 0.0943449252086498)
m1.add_nuclide("Fe57", 0.002262961603823164)
m1.add_nuclide("Fe58", 0.0002880136181719331)
m1.add_nuclide("C12", 0.4707169142835671)
m1.add_nuclide("C13", 0.00528360870568438)
m1.add_nuclide("Mn55", 0.001282111494116304)
m1.add_nuclide("H1", 0.00016963112409256498)
m1.add_nuclide("Si28", 0.0011956811050773462)
m1.add_nuclide("Si29", 6.0710812391585325e-05)
m1.add_nuclide("Si30", 4.0020197287768004e-05)
m1.add_nuclide("Cl35", 0.00022152952380477358)
m1.add_nuclide("Cl37", 7.084142579786864e-05)
m1.add_nuclide("F19", 0.0008655870789089621)
# --- Material 2 ---
m2 = openmc.Material(2, name="M2")
m2.set_density("atom/b-cm", 0.04780729)
m2.add_nuclide("U235", 0.0016836235842144786)
m2.add_nuclide("U238", 0.8281538364818118)
m2.add_nuclide("Cr50", 0.0013261551739896448)
m2.add_nuclide("Cr52", 0.025573917921372424)
m2.add_nuclide("Cr53", 0.002899536183231686)
m2.add_nuclide("Cr54", 0.0007218311648468507)
m2.add_nuclide("Ni58", 0.008901255420204502)
m2.add_nuclide("Ni60", 0.003403015763450752)
m2.add_nuclide("Ni61", 0.0001473331437985464)
m2.add_nuclide("Ni62", 0.000468074946339598)
m2.add_nuclide("Ni64", 0.00011864882232176996)
m2.add_nuclide("Fe54", 0.0071140179556154854)
m2.add_nuclide("Fe56", 0.11249955240100547)
m2.add_nuclide("Fe57", 0.002698416276135454)
m2.add_nuclide("Fe58", 0.00034343498893821256)
m2.add_nuclide("C12", 0.0002706594943184297)
m2.add_nuclide("C13", 3.0380296730792322e-06)
m2.add_nuclide("Mn55", 0.001494876264226662)
m2.add_nuclide("H1", 7.944121285112521e-05)
m2.add_nuclide("Si28", 0.001434655337286459)
m2.add_nuclide("Si29", 7.284494007912343e-05)
m2.add_nuclide("Si30", 4.8018815884083865e-05)
m2.add_nuclide("Cl35", 0.00010402448711154312)
m2.add_nuclide("Cl37", 3.326542088948014e-05)
m2.add_nuclide("F19", 0.0004065257704029714)
# --- Material 3 ---
m3 = openmc.Material(3, name="M3")
m3.set_density("atom/b-cm", 0.04631738)
m3.add_nuclide("U235", 0.001753313663083676)
m3.add_nuclide("U238", 0.8636304046524018)
m3.add_nuclide("Cr50", 0.0010427834463128853)
m3.add_nuclide("Cr52", 0.0201092968742683)
m3.add_nuclide("Cr53", 0.002279964750771927)
m3.add_nuclide("Cr54", 0.0005675903611907769)
m3.add_nuclide("Ni58", 0.00670866922101721)
m3.add_nuclide("Ni60", 0.002564760635579341)
m3.add_nuclide("Ni61", 0.00011104124835026922)
m3.add_nuclide("Ni62", 0.0003527768417093242)
m3.add_nuclide("Ni64", 8.942258294390431e-05)
m3.add_nuclide("Fe54", 0.005679098956533006)
m3.add_nuclide("Fe56", 0.08980796741390752)
m3.add_nuclide("Fe57", 0.002154145897136594)
m3.add_nuclide("Fe58", 0.0002741627278619469)
m3.add_nuclide("C12", 0.0001853304200670559)
m3.add_nuclide("C13", 2.0802578707112727e-06)
m3.add_nuclide("Mn55", 0.0009496197193374876)
m3.add_nuclide("H1", 5.422910042188016e-05)
m3.add_nuclide("Si28", 0.0012090968160231778)
m3.add_nuclide("Si29", 6.139206992400704e-05)
m3.add_nuclide("Si30", 4.0469255580286584e-05)
m3.add_nuclide("Cl35", 7.122833382813937e-05)
m3.add_nuclide("Cl37", 2.2777625538004806e-05)
m3.add_nuclide("F19", 0.0002783771283406375)
# --- Material 4 ---
m4 = openmc.Material(4, name="M4")
m4.set_density("atom/b-cm", 0.02538865)
m4.add_nuclide("Cr50", 0.006033405710775352)
m4.add_nuclide("Cr52", 0.11634964834444418)
m4.add_nuclide("Cr53", 0.013191566177242707)
m4.add_nuclide("Cr54", 0.003284007385066335)
m4.add_nuclide("Ni58", 0.04413744683011981)
m4.add_nuclide("Ni60", 0.01687411786107181)
m4.add_nuclide("Ni61", 0.0007305627962100877)
m4.add_nuclide("Ni62", 0.002320994222341612)
m4.add_nuclide("Ni64", 0.000588329924019326)
m4.add_nuclide("Fe54", 0.04468926830817153)
m4.add_nuclide("Fe56", 0.7067056749212992)
m4.add_nuclide("Fe57", 0.016951042011438332)
m4.add_nuclide("Fe58", 0.002157409285678913)
m4.add_nuclide("C12", 0.010534827382377135)
m4.add_nuclide("C13", 0.00011824892255369858)
m4.add_nuclide("Mo100", 2.301134951161478e-07)
m4.add_nuclide("Mo92", 3.546089107607973e-07)
m4.add_nuclide("Mo94", 2.210330580319191e-07)
m4.add_nuclide("Mo95", 3.8041572249666365e-07)
m4.add_nuclide("Mo96", 3.9857580891140507e-07)
m4.add_nuclide("Mo97", 2.2820201072429555e-07)
m4.add_nuclide("Mo98", 5.766002711882194e-07)
m4.add_nuclide("Mn55", 0.009393372247906123)
m4.add_nuclide("Cu63", 9.973395308990324e-06)
m4.add_nuclide("Cu65", 4.445254831651622e-06)
m4.add_nuclide("Si28", 0.005463032632712042)
m4.add_nuclide("Si29", 0.0002773858078590539)
m4.add_nuclide("Si30", 0.00018285102929469152)
# --- Material 5 ---
m5 = openmc.Material(5, name="M5")
m5.set_density("atom/b-cm", 0.006197096)
m5.add_nuclide("Cr50", 0.007779774195265166)
m5.add_nuclide("Cr52", 0.15002706840853466)
m5.add_nuclide("Cr53", 0.017009743999359006)
m5.add_nuclide("Cr54", 0.004234548586549593)
m5.add_nuclide("Ni58", 0.04996566915644023)
m5.add_nuclide("Ni60", 0.019102176007780216)
m5.add_nuclide("Ni61", 0.0008270262074712773)
m5.add_nuclide("Ni62", 0.0026274568844234752)
m5.add_nuclide("Ni64", 0.0006660120556518238)
m5.add_nuclide("Fe54", 0.042394218376218776)
m5.add_nuclide("Fe56", 0.670414118209835)
m5.add_nuclide("Fe57", 0.016080631250219836)
m5.add_nuclide("Fe58", 0.00204662022102314)
m5.add_nuclide("Mn55", 0.00701872406174801)
m5.add_nuclide("Si28", 0.009044269892372461)
m5.add_nuclide("Si29", 0.00045922484425739077)
m5.add_nuclide("Si30", 0.00030271764285015335)
materials = openmc.Materials([m1, m2, m3, m4, m5])
# Surfaces
s1 = openmc.ZCylinder(r=26.50215, boundary_type="transmission")
s2 = openmc.ZCylinder(r=56.99622, boundary_type="transmission")
s3 = openmc.ZCylinder(r=96.82257, boundary_type="transmission")
s4 = openmc.ZPlane(z0=-22.94427, boundary_type="transmission")
s5 = openmc.ZPlane(z0=22.94427, boundary_type="transmission")
s6 = openmc.ZPlane(z0=-38.18427, boundary_type="transmission")
s7 = openmc.ZPlane(z0=38.18427, boundary_type="transmission")
s8 = openmc.ZPlane(z0=-38.88762, boundary_type="transmission")
s9 = openmc.ZPlane(z0=38.88762, boundary_type="transmission")
s10 = openmc.ZPlane(z0=-54.12762, boundary_type="transmission")
s11 = openmc.ZPlane(z0=54.12762, boundary_type="transmission")
s12 = openmc.ZPlane(z0=-53.34, boundary_type="transmission")
s13 = openmc.ZPlane(z0=53.34, boundary_type="transmission")
s14 = openmc.ZPlane(z0=-85.09, boundary_type="vacuum")
s15 = openmc.ZPlane(z0=85.09, boundary_type="vacuum")
# Cells
c1 = openmc.Cell(1, fill=m1, region=-s1 & +s4 & -s5) # core
c2 = openmc.Cell(2, fill=m2, region=-s1 & -s4 & +s6) # inner ax blkt-bottom
c3 = openmc.Cell(3, fill=m2, region=-s1 & +s5 & -s7) # inner ax blkt-top
c4 = openmc.Cell(4, fill=m4, region=-s1 & -s6 & +s8) # drawer gap-bottom
c5 = openmc.Cell(5, fill=m4, region=-s1 & +s7 & -s9) # drawer gap-top
c6 = openmc.Cell(6, fill=m2, region=-s1 & -s8 & +s10) # outer ax blkt-bottom
c7 = openmc.Cell(7, fill=m2, region=-s1 & +s9 & -s11) # outer ax blkt-top
c8 = openmc.Cell(8, fill=m3, region=+s1 & -s2 & +s12 & -s13) # radial bklt
c9 = openmc.Cell(9, fill=m5, region=+s1 & -s2 & +s10 & -s12) # matrix-rb lower
c10 = openmc.Cell(10, fill=m5, region=+s1 & -s2 & -s11 & +s13) # matrix-rb upper
c11 = openmc.Cell(11, fill=m5, region=-s3 & -s10 & +s14) # matrix-bottom
c12 = openmc.Cell(12, fill=m5, region=+s2 & -s3 & +s10 & -s11) # matrix-radial
c13 = openmc.Cell(13, fill=m5, region=-s3 & +s11 & -s15) # matrix-top
c14 = openmc.Cell(14, fill=None, region=+s3 | -s14 | +s15) # external void
root_universe = openmc.Universe(
cells=[c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14]
)
geometry = openmc.Geometry(root_universe)
# Settings
settings = openmc.Settings()
settings.run_mode = "eigenvalue"
settings.particles = 1000
settings.batches = 50
settings.inactive = 10
settings.source = openmc.IndependentSource(
space=openmc.stats.Point((0.0, 0.0, 0.0))
)
# Hard code the cross-sections library path in the xml
materials.cross_sections = f"/libs/e80_hdf5/cross_sections.xml"
model = openmc.model.Model(geometry, materials, settings)
model.export_to_model_xml()
return materials, geometry, settings, name
if __name__ == "__main__":
main()
# NOTE: If you want to set the cross-sections library path via an environment variable
# uncomment one of the following lines
# os.environ['OPENMC_CROSS_SECTIONS'] = f"/libs/e80_hdf5/cross_sections.xml"
# openmc.config['cross_sections'] = f"/libs/e80_hdf5/cross_sections.xml"
openmc.run()
+185
View File
@@ -0,0 +1,185 @@
<?xml version='1.0' encoding='utf-8'?>
<model>
<materials>
<cross_sections>/libs/e80_hdf5/cross_sections.xml</cross_sections>
<material depletable="true" id="1" name="M1">
<density units="atom/b-cm" value="0.0562661"/>
<nuclide ao="0.08064591026605385" name="U235"/>
<nuclide ao="0.2987874253803838" name="U238"/>
<nuclide ao="0.000782176270610215" name="U234"/>
<nuclide ao="0.00037497007895844983" name="U236"/>
<nuclide ao="0.0011140013571911743" name="Cr50"/>
<nuclide ao="0.02148274408316513" name="Cr52"/>
<nuclide ao="0.0024356766458088507" name="Cr53"/>
<nuclide ao="0.0006063545616828636" name="Cr54"/>
<nuclide ao="0.0075112026481007205" name="Ni58"/>
<nuclide ao="0.0028715875158215015" name="Ni60"/>
<nuclide ao="0.0001243249721034816" name="Ni61"/>
<nuclide ao="0.0003949785780598581" name="Ni62"/>
<nuclide ao="0.0001001201621805832" name="Ni64"/>
<nuclide ao="0.005965991298505994" name="Fe54"/>
<nuclide ao="0.0943449252086498" name="Fe56"/>
<nuclide ao="0.002262961603823164" name="Fe57"/>
<nuclide ao="0.0002880136181719331" name="Fe58"/>
<nuclide ao="0.4707169142835671" name="C12"/>
<nuclide ao="0.00528360870568438" name="C13"/>
<nuclide ao="0.001282111494116304" name="Mn55"/>
<nuclide ao="0.00016963112409256498" name="H1"/>
<nuclide ao="0.0011956811050773462" name="Si28"/>
<nuclide ao="6.0710812391585325e-05" name="Si29"/>
<nuclide ao="4.0020197287768004e-05" name="Si30"/>
<nuclide ao="0.00022152952380477358" name="Cl35"/>
<nuclide ao="7.084142579786864e-05" name="Cl37"/>
<nuclide ao="0.0008655870789089621" name="F19"/>
</material>
<material depletable="true" id="2" name="M2">
<density units="atom/b-cm" value="0.04780729"/>
<nuclide ao="0.0016836235842144786" name="U235"/>
<nuclide ao="0.8281538364818118" name="U238"/>
<nuclide ao="0.0013261551739896448" name="Cr50"/>
<nuclide ao="0.025573917921372424" name="Cr52"/>
<nuclide ao="0.002899536183231686" name="Cr53"/>
<nuclide ao="0.0007218311648468507" name="Cr54"/>
<nuclide ao="0.008901255420204502" name="Ni58"/>
<nuclide ao="0.003403015763450752" name="Ni60"/>
<nuclide ao="0.0001473331437985464" name="Ni61"/>
<nuclide ao="0.000468074946339598" name="Ni62"/>
<nuclide ao="0.00011864882232176996" name="Ni64"/>
<nuclide ao="0.0071140179556154854" name="Fe54"/>
<nuclide ao="0.11249955240100547" name="Fe56"/>
<nuclide ao="0.002698416276135454" name="Fe57"/>
<nuclide ao="0.00034343498893821256" name="Fe58"/>
<nuclide ao="0.0002706594943184297" name="C12"/>
<nuclide ao="3.0380296730792322e-06" name="C13"/>
<nuclide ao="0.001494876264226662" name="Mn55"/>
<nuclide ao="7.944121285112521e-05" name="H1"/>
<nuclide ao="0.001434655337286459" name="Si28"/>
<nuclide ao="7.284494007912343e-05" name="Si29"/>
<nuclide ao="4.8018815884083865e-05" name="Si30"/>
<nuclide ao="0.00010402448711154312" name="Cl35"/>
<nuclide ao="3.326542088948014e-05" name="Cl37"/>
<nuclide ao="0.0004065257704029714" name="F19"/>
</material>
<material depletable="true" id="3" name="M3">
<density units="atom/b-cm" value="0.04631738"/>
<nuclide ao="0.001753313663083676" name="U235"/>
<nuclide ao="0.8636304046524018" name="U238"/>
<nuclide ao="0.0010427834463128853" name="Cr50"/>
<nuclide ao="0.0201092968742683" name="Cr52"/>
<nuclide ao="0.002279964750771927" name="Cr53"/>
<nuclide ao="0.0005675903611907769" name="Cr54"/>
<nuclide ao="0.00670866922101721" name="Ni58"/>
<nuclide ao="0.002564760635579341" name="Ni60"/>
<nuclide ao="0.00011104124835026922" name="Ni61"/>
<nuclide ao="0.0003527768417093242" name="Ni62"/>
<nuclide ao="8.942258294390431e-05" name="Ni64"/>
<nuclide ao="0.005679098956533006" name="Fe54"/>
<nuclide ao="0.08980796741390752" name="Fe56"/>
<nuclide ao="0.002154145897136594" name="Fe57"/>
<nuclide ao="0.0002741627278619469" name="Fe58"/>
<nuclide ao="0.0001853304200670559" name="C12"/>
<nuclide ao="2.0802578707112727e-06" name="C13"/>
<nuclide ao="0.0009496197193374876" name="Mn55"/>
<nuclide ao="5.422910042188016e-05" name="H1"/>
<nuclide ao="0.0012090968160231778" name="Si28"/>
<nuclide ao="6.139206992400704e-05" name="Si29"/>
<nuclide ao="4.0469255580286584e-05" name="Si30"/>
<nuclide ao="7.122833382813937e-05" name="Cl35"/>
<nuclide ao="2.2777625538004806e-05" name="Cl37"/>
<nuclide ao="0.0002783771283406375" name="F19"/>
</material>
<material id="4" name="M4">
<density units="atom/b-cm" value="0.02538865"/>
<nuclide ao="0.006033405710775352" name="Cr50"/>
<nuclide ao="0.11634964834444418" name="Cr52"/>
<nuclide ao="0.013191566177242707" name="Cr53"/>
<nuclide ao="0.003284007385066335" name="Cr54"/>
<nuclide ao="0.04413744683011981" name="Ni58"/>
<nuclide ao="0.01687411786107181" name="Ni60"/>
<nuclide ao="0.0007305627962100877" name="Ni61"/>
<nuclide ao="0.002320994222341612" name="Ni62"/>
<nuclide ao="0.000588329924019326" name="Ni64"/>
<nuclide ao="0.04468926830817153" name="Fe54"/>
<nuclide ao="0.7067056749212992" name="Fe56"/>
<nuclide ao="0.016951042011438332" name="Fe57"/>
<nuclide ao="0.002157409285678913" name="Fe58"/>
<nuclide ao="0.010534827382377135" name="C12"/>
<nuclide ao="0.00011824892255369858" name="C13"/>
<nuclide ao="2.301134951161478e-07" name="Mo100"/>
<nuclide ao="3.546089107607973e-07" name="Mo92"/>
<nuclide ao="2.210330580319191e-07" name="Mo94"/>
<nuclide ao="3.8041572249666365e-07" name="Mo95"/>
<nuclide ao="3.9857580891140507e-07" name="Mo96"/>
<nuclide ao="2.2820201072429555e-07" name="Mo97"/>
<nuclide ao="5.766002711882194e-07" name="Mo98"/>
<nuclide ao="0.009393372247906123" name="Mn55"/>
<nuclide ao="9.973395308990324e-06" name="Cu63"/>
<nuclide ao="4.445254831651622e-06" name="Cu65"/>
<nuclide ao="0.005463032632712042" name="Si28"/>
<nuclide ao="0.0002773858078590539" name="Si29"/>
<nuclide ao="0.00018285102929469152" name="Si30"/>
</material>
<material id="5" name="M5">
<density units="atom/b-cm" value="0.006197096"/>
<nuclide ao="0.007779774195265166" name="Cr50"/>
<nuclide ao="0.15002706840853466" name="Cr52"/>
<nuclide ao="0.017009743999359006" name="Cr53"/>
<nuclide ao="0.004234548586549593" name="Cr54"/>
<nuclide ao="0.04996566915644023" name="Ni58"/>
<nuclide ao="0.019102176007780216" name="Ni60"/>
<nuclide ao="0.0008270262074712773" name="Ni61"/>
<nuclide ao="0.0026274568844234752" name="Ni62"/>
<nuclide ao="0.0006660120556518238" name="Ni64"/>
<nuclide ao="0.042394218376218776" name="Fe54"/>
<nuclide ao="0.670414118209835" name="Fe56"/>
<nuclide ao="0.016080631250219836" name="Fe57"/>
<nuclide ao="0.00204662022102314" name="Fe58"/>
<nuclide ao="0.00701872406174801" name="Mn55"/>
<nuclide ao="0.009044269892372461" name="Si28"/>
<nuclide ao="0.00045922484425739077" name="Si29"/>
<nuclide ao="0.00030271764285015335" name="Si30"/>
</material>
</materials>
<geometry>
<cell id="1" material="1" region="-1 4 -5" universe="1"/>
<cell id="2" material="2" region="-1 -4 6" universe="1"/>
<cell id="3" material="2" region="-1 5 -7" universe="1"/>
<cell id="4" material="4" region="-1 -6 8" universe="1"/>
<cell id="5" material="4" region="-1 7 -9" universe="1"/>
<cell id="6" material="2" region="-1 -8 10" universe="1"/>
<cell id="7" material="2" region="-1 9 -11" universe="1"/>
<cell id="8" material="3" region="1 -2 12 -13" universe="1"/>
<cell id="9" material="5" region="1 -2 10 -12" universe="1"/>
<cell id="10" material="5" region="1 -2 -11 13" universe="1"/>
<cell id="11" material="5" region="-3 -10 14" universe="1"/>
<cell id="12" material="5" region="2 -3 10 -11" universe="1"/>
<cell id="13" material="5" region="-3 11 -15" universe="1"/>
<cell id="14" material="void" region="3 | -14 | 15" universe="1"/>
<surface coeffs="0.0 0.0 26.50215" id="1" type="z-cylinder"/>
<surface coeffs="0.0 0.0 56.99622" id="2" type="z-cylinder"/>
<surface coeffs="0.0 0.0 96.82257" id="3" type="z-cylinder"/>
<surface coeffs="-22.94427" id="4" type="z-plane"/>
<surface coeffs="22.94427" id="5" type="z-plane"/>
<surface coeffs="-38.18427" id="6" type="z-plane"/>
<surface coeffs="38.18427" id="7" type="z-plane"/>
<surface coeffs="-38.88762" id="8" type="z-plane"/>
<surface coeffs="38.88762" id="9" type="z-plane"/>
<surface coeffs="-54.12762" id="10" type="z-plane"/>
<surface coeffs="54.12762" id="11" type="z-plane"/>
<surface coeffs="-53.34" id="12" type="z-plane"/>
<surface coeffs="53.34" id="13" type="z-plane"/>
<surface boundary="vacuum" coeffs="-85.09" id="14" type="z-plane"/>
<surface boundary="vacuum" coeffs="85.09" id="15" type="z-plane"/>
</geometry>
<settings>
<run_mode>eigenvalue</run_mode>
<particles>1000</particles>
<batches>50</batches>
<inactive>10</inactive>
<source particle="neutron" strength="1.0" type="independent">
<space type="point">
<parameters>0.0 0.0 0.0</parameters>
</space>
</source>
</settings>
</model>
Binary file not shown.
Binary file not shown.
+3
View File
@@ -0,0 +1,3 @@
# Test file
NOTE: xml has the path defined already.
+185
View File
@@ -0,0 +1,185 @@
<?xml version='1.0' encoding='utf-8'?>
<model>
<materials>
<cross_sections>/libs/e80_hdf5/cross_sections.xml</cross_sections>
<material depletable="true" id="1" name="M1">
<density units="atom/b-cm" value="0.0562661"/>
<nuclide ao="0.08064591026605385" name="U235"/>
<nuclide ao="0.2987874253803838" name="U238"/>
<nuclide ao="0.000782176270610215" name="U234"/>
<nuclide ao="0.00037497007895844983" name="U236"/>
<nuclide ao="0.0011140013571911743" name="Cr50"/>
<nuclide ao="0.02148274408316513" name="Cr52"/>
<nuclide ao="0.0024356766458088507" name="Cr53"/>
<nuclide ao="0.0006063545616828636" name="Cr54"/>
<nuclide ao="0.0075112026481007205" name="Ni58"/>
<nuclide ao="0.0028715875158215015" name="Ni60"/>
<nuclide ao="0.0001243249721034816" name="Ni61"/>
<nuclide ao="0.0003949785780598581" name="Ni62"/>
<nuclide ao="0.0001001201621805832" name="Ni64"/>
<nuclide ao="0.005965991298505994" name="Fe54"/>
<nuclide ao="0.0943449252086498" name="Fe56"/>
<nuclide ao="0.002262961603823164" name="Fe57"/>
<nuclide ao="0.0002880136181719331" name="Fe58"/>
<nuclide ao="0.4707169142835671" name="C12"/>
<nuclide ao="0.00528360870568438" name="C13"/>
<nuclide ao="0.001282111494116304" name="Mn55"/>
<nuclide ao="0.00016963112409256498" name="H1"/>
<nuclide ao="0.0011956811050773462" name="Si28"/>
<nuclide ao="6.0710812391585325e-05" name="Si29"/>
<nuclide ao="4.0020197287768004e-05" name="Si30"/>
<nuclide ao="0.00022152952380477358" name="Cl35"/>
<nuclide ao="7.084142579786864e-05" name="Cl37"/>
<nuclide ao="0.0008655870789089621" name="F19"/>
</material>
<material depletable="true" id="2" name="M2">
<density units="atom/b-cm" value="0.04780729"/>
<nuclide ao="0.0016836235842144786" name="U235"/>
<nuclide ao="0.8281538364818118" name="U238"/>
<nuclide ao="0.0013261551739896448" name="Cr50"/>
<nuclide ao="0.025573917921372424" name="Cr52"/>
<nuclide ao="0.002899536183231686" name="Cr53"/>
<nuclide ao="0.0007218311648468507" name="Cr54"/>
<nuclide ao="0.008901255420204502" name="Ni58"/>
<nuclide ao="0.003403015763450752" name="Ni60"/>
<nuclide ao="0.0001473331437985464" name="Ni61"/>
<nuclide ao="0.000468074946339598" name="Ni62"/>
<nuclide ao="0.00011864882232176996" name="Ni64"/>
<nuclide ao="0.0071140179556154854" name="Fe54"/>
<nuclide ao="0.11249955240100547" name="Fe56"/>
<nuclide ao="0.002698416276135454" name="Fe57"/>
<nuclide ao="0.00034343498893821256" name="Fe58"/>
<nuclide ao="0.0002706594943184297" name="C12"/>
<nuclide ao="3.0380296730792322e-06" name="C13"/>
<nuclide ao="0.001494876264226662" name="Mn55"/>
<nuclide ao="7.944121285112521e-05" name="H1"/>
<nuclide ao="0.001434655337286459" name="Si28"/>
<nuclide ao="7.284494007912343e-05" name="Si29"/>
<nuclide ao="4.8018815884083865e-05" name="Si30"/>
<nuclide ao="0.00010402448711154312" name="Cl35"/>
<nuclide ao="3.326542088948014e-05" name="Cl37"/>
<nuclide ao="0.0004065257704029714" name="F19"/>
</material>
<material depletable="true" id="3" name="M3">
<density units="atom/b-cm" value="0.04631738"/>
<nuclide ao="0.001753313663083676" name="U235"/>
<nuclide ao="0.8636304046524018" name="U238"/>
<nuclide ao="0.0010427834463128853" name="Cr50"/>
<nuclide ao="0.0201092968742683" name="Cr52"/>
<nuclide ao="0.002279964750771927" name="Cr53"/>
<nuclide ao="0.0005675903611907769" name="Cr54"/>
<nuclide ao="0.00670866922101721" name="Ni58"/>
<nuclide ao="0.002564760635579341" name="Ni60"/>
<nuclide ao="0.00011104124835026922" name="Ni61"/>
<nuclide ao="0.0003527768417093242" name="Ni62"/>
<nuclide ao="8.942258294390431e-05" name="Ni64"/>
<nuclide ao="0.005679098956533006" name="Fe54"/>
<nuclide ao="0.08980796741390752" name="Fe56"/>
<nuclide ao="0.002154145897136594" name="Fe57"/>
<nuclide ao="0.0002741627278619469" name="Fe58"/>
<nuclide ao="0.0001853304200670559" name="C12"/>
<nuclide ao="2.0802578707112727e-06" name="C13"/>
<nuclide ao="0.0009496197193374876" name="Mn55"/>
<nuclide ao="5.422910042188016e-05" name="H1"/>
<nuclide ao="0.0012090968160231778" name="Si28"/>
<nuclide ao="6.139206992400704e-05" name="Si29"/>
<nuclide ao="4.0469255580286584e-05" name="Si30"/>
<nuclide ao="7.122833382813937e-05" name="Cl35"/>
<nuclide ao="2.2777625538004806e-05" name="Cl37"/>
<nuclide ao="0.0002783771283406375" name="F19"/>
</material>
<material id="4" name="M4">
<density units="atom/b-cm" value="0.02538865"/>
<nuclide ao="0.006033405710775352" name="Cr50"/>
<nuclide ao="0.11634964834444418" name="Cr52"/>
<nuclide ao="0.013191566177242707" name="Cr53"/>
<nuclide ao="0.003284007385066335" name="Cr54"/>
<nuclide ao="0.04413744683011981" name="Ni58"/>
<nuclide ao="0.01687411786107181" name="Ni60"/>
<nuclide ao="0.0007305627962100877" name="Ni61"/>
<nuclide ao="0.002320994222341612" name="Ni62"/>
<nuclide ao="0.000588329924019326" name="Ni64"/>
<nuclide ao="0.04468926830817153" name="Fe54"/>
<nuclide ao="0.7067056749212992" name="Fe56"/>
<nuclide ao="0.016951042011438332" name="Fe57"/>
<nuclide ao="0.002157409285678913" name="Fe58"/>
<nuclide ao="0.010534827382377135" name="C12"/>
<nuclide ao="0.00011824892255369858" name="C13"/>
<nuclide ao="2.301134951161478e-07" name="Mo100"/>
<nuclide ao="3.546089107607973e-07" name="Mo92"/>
<nuclide ao="2.210330580319191e-07" name="Mo94"/>
<nuclide ao="3.8041572249666365e-07" name="Mo95"/>
<nuclide ao="3.9857580891140507e-07" name="Mo96"/>
<nuclide ao="2.2820201072429555e-07" name="Mo97"/>
<nuclide ao="5.766002711882194e-07" name="Mo98"/>
<nuclide ao="0.009393372247906123" name="Mn55"/>
<nuclide ao="9.973395308990324e-06" name="Cu63"/>
<nuclide ao="4.445254831651622e-06" name="Cu65"/>
<nuclide ao="0.005463032632712042" name="Si28"/>
<nuclide ao="0.0002773858078590539" name="Si29"/>
<nuclide ao="0.00018285102929469152" name="Si30"/>
</material>
<material id="5" name="M5">
<density units="atom/b-cm" value="0.006197096"/>
<nuclide ao="0.007779774195265166" name="Cr50"/>
<nuclide ao="0.15002706840853466" name="Cr52"/>
<nuclide ao="0.017009743999359006" name="Cr53"/>
<nuclide ao="0.004234548586549593" name="Cr54"/>
<nuclide ao="0.04996566915644023" name="Ni58"/>
<nuclide ao="0.019102176007780216" name="Ni60"/>
<nuclide ao="0.0008270262074712773" name="Ni61"/>
<nuclide ao="0.0026274568844234752" name="Ni62"/>
<nuclide ao="0.0006660120556518238" name="Ni64"/>
<nuclide ao="0.042394218376218776" name="Fe54"/>
<nuclide ao="0.670414118209835" name="Fe56"/>
<nuclide ao="0.016080631250219836" name="Fe57"/>
<nuclide ao="0.00204662022102314" name="Fe58"/>
<nuclide ao="0.00701872406174801" name="Mn55"/>
<nuclide ao="0.009044269892372461" name="Si28"/>
<nuclide ao="0.00045922484425739077" name="Si29"/>
<nuclide ao="0.00030271764285015335" name="Si30"/>
</material>
</materials>
<geometry>
<cell id="1" material="1" region="-1 4 -5" universe="1"/>
<cell id="2" material="2" region="-1 -4 6" universe="1"/>
<cell id="3" material="2" region="-1 5 -7" universe="1"/>
<cell id="4" material="4" region="-1 -6 8" universe="1"/>
<cell id="5" material="4" region="-1 7 -9" universe="1"/>
<cell id="6" material="2" region="-1 -8 10" universe="1"/>
<cell id="7" material="2" region="-1 9 -11" universe="1"/>
<cell id="8" material="3" region="1 -2 12 -13" universe="1"/>
<cell id="9" material="5" region="1 -2 10 -12" universe="1"/>
<cell id="10" material="5" region="1 -2 -11 13" universe="1"/>
<cell id="11" material="5" region="-3 -10 14" universe="1"/>
<cell id="12" material="5" region="2 -3 10 -11" universe="1"/>
<cell id="13" material="5" region="-3 11 -15" universe="1"/>
<cell id="14" material="void" region="3 | -14 | 15" universe="1"/>
<surface coeffs="0.0 0.0 26.50215" id="1" type="z-cylinder"/>
<surface coeffs="0.0 0.0 56.99622" id="2" type="z-cylinder"/>
<surface coeffs="0.0 0.0 96.82257" id="3" type="z-cylinder"/>
<surface coeffs="-22.94427" id="4" type="z-plane"/>
<surface coeffs="22.94427" id="5" type="z-plane"/>
<surface coeffs="-38.18427" id="6" type="z-plane"/>
<surface coeffs="38.18427" id="7" type="z-plane"/>
<surface coeffs="-38.88762" id="8" type="z-plane"/>
<surface coeffs="38.88762" id="9" type="z-plane"/>
<surface coeffs="-54.12762" id="10" type="z-plane"/>
<surface coeffs="54.12762" id="11" type="z-plane"/>
<surface coeffs="-53.34" id="12" type="z-plane"/>
<surface coeffs="53.34" id="13" type="z-plane"/>
<surface boundary="vacuum" coeffs="-85.09" id="14" type="z-plane"/>
<surface boundary="vacuum" coeffs="85.09" id="15" type="z-plane"/>
</geometry>
<settings>
<run_mode>eigenvalue</run_mode>
<particles>1000</particles>
<batches>50</batches>
<inactive>10</inactive>
<source particle="neutron" strength="1.0" type="independent">
<space type="point">
<parameters>0.0 0.0 0.0</parameters>
</space>
</source>
</settings>
</model>