Files
Stafie Alex PSI 850de66b07 first files
2025-12-02 11:57:33 +01:00

357 lines
57 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import openmc\n",
"import glob\n",
"import numpy as np\n",
"from matplotlib import pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# OpenMC Particle Tracks (and Lost Particles)\n",
"\n",
"Tally information produced by Monte Carlo codes is the result of contributions from numerous particles, but it's often insightful to examine the history of these particles individually. This can be helpful in the following tasks:\n",
"\n",
" - debugging\n",
" - source verification\n",
" - tally estimator prototyping\n",
" - problem visualization\n",
"\n",
"In this module we will explore OpenMC's ability to generate, examine and visualize these files.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Generating Particle Tracks\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"Two settings govern which tracks will be written from the OpenMC simulation:\n",
"\n",
" - `openmc.Settings.max_tracks`: The maximum number of tracks OpenMC will write (per MPI process).\n",
" - `openmc.Settings.tracks`: A list of 3-tuples where each tuple entry in the list represents the batch number, generation number, and particle number to write."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Any of the following will execute OpenMC in a mode that produces a particle track file:\n",
"\n",
" - From a Python interpreter: \n",
" - `model.run(tracks=True)`\n",
" - `openmc.run(tracks=True)`\n",
" - From a terminal:\n",
" - `$ openmc -t`\n",
"\n",
"Once the simulation is complete, a `tracks.h5` will be produced. A specification for this file can be found [here](https://docs.openmc.org/en/stable/io_formats/track.html#track-file-format). We'll again be using the PWR pincell model to explore this feature."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" %%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%\n",
" %%%%%%%%%%%%%%%%%%%%%%%%\n",
" ############### %%%%%%%%%%%%%%%%%%%%%%%%\n",
" ################## %%%%%%%%%%%%%%%%%%%%%%%\n",
" ################### %%%%%%%%%%%%%%%%%%%%%%%\n",
" #################### %%%%%%%%%%%%%%%%%%%%%%\n",
" ##################### %%%%%%%%%%%%%%%%%%%%%\n",
" ###################### %%%%%%%%%%%%%%%%%%%%\n",
" ####################### %%%%%%%%%%%%%%%%%%\n",
" ####################### %%%%%%%%%%%%%%%%%\n",
" ###################### %%%%%%%%%%%%%%%%%\n",
" #################### %%%%%%%%%%%%%%%%%\n",
" ################# %%%%%%%%%%%%%%%%%\n",
" ############### %%%%%%%%%%%%%%%%\n",
" ############ %%%%%%%%%%%%%%%\n",
" ######## %%%%%%%%%%%%%%\n",
" %%%%%%%%%%%\n",
"\n",
" | The OpenMC Monte Carlo Code\n",
" Copyright | 2011-2023 MIT, UChicago Argonne LLC, and contributors\n",
" License | https://docs.openmc.org/en/latest/license.html\n",
" Version | 0.14.0\n",
" Git SHA1 | fa2330103de61a864c958d1a7250f11e5dd91468\n",
" Date/Time | 2024-04-06 15:26:34\n",
" MPI Processes | 1\n",
" OpenMP Threads | 12\n",
"\n",
" Reading model XML file './model.xml' ...\n",
" WARNING: Other XML file input(s) are present. These files may be ignored in\n",
" favor of the ./model.xml file.\n",
" Reading cross sections XML file...\n",
" Reading U234 from /root/nndc_hdf5/U234.h5\n",
" Reading U from /root/nndc_hdf5/photon/U.h5 \n",
" Reading U235 from /root/nndc_hdf5/U235.h5\n",
" Reading U238 from /root/nndc_hdf5/U238.h5\n",
" Reading O16 from /root/nndc_hdf5/O16.h5\n",
" Reading O from /root/nndc_hdf5/photon/O.h5 \n",
" Reading Zr90 from /root/nndc_hdf5/Zr90.h5\n",
" Reading Zr from /root/nndc_hdf5/photon/Zr.h5 \n",
" Reading Zr91 from /root/nndc_hdf5/Zr91.h5\n",
" Reading Zr92 from /root/nndc_hdf5/Zr92.h5\n",
" Reading Zr94 from /root/nndc_hdf5/Zr94.h5\n",
" Reading Zr96 from /root/nndc_hdf5/Zr96.h5\n",
" Reading H1 from /root/nndc_hdf5/H1.h5\n",
" Reading H from /root/nndc_hdf5/photon/H.h5 \n",
" Reading B10 from /root/nndc_hdf5/B10.h5\n",
" Reading B from /root/nndc_hdf5/photon/B.h5 \n",
" Reading B11 from /root/nndc_hdf5/B11.h5\n",
" Reading c_H_in_H2O from /root/nndc_hdf5/c_H_in_H2O.h5\n",
" Minimum neutron data temperature: 294 K\n",
" Maximum neutron data temperature: 294 K\n",
" Preparing distributed cell instances...\n",
" Writing summary.h5 file...\n",
" Maximum neutron transport energy: 20000000 eV for U235\n",
" Initializing source particles...\n",
"\n",
" ====================> K EIGENVALUE SIMULATION <====================\n",
"\n",
" Bat./Gen. k Average k\n",
" ========= ======== ====================\n",
" 1/1 1.16959\n",
" 2/1 1.03921\n",
" 3/1 1.09029\n",
" 4/1 1.06050\n",
" 5/1 1.02775\n",
" 6/1 1.39500\n",
" 7/1 1.28891 1.34195 +/- 0.05304\n",
" 8/1 1.06524 1.24972 +/- 0.09719\n",
" 9/1 1.22579 1.24374 +/- 0.06898\n",
" 10/1 0.93451 1.18189 +/- 0.08173\n",
" Creating state point statepoint.10.h5...\n",
"\n",
" =======================> TIMING STATISTICS <=======================\n",
"\n",
" Total time for initialization = 3.9155e-01 seconds\n",
" Reading cross sections = 3.4172e-01 seconds\n",
" Total time in simulation = 2.8775e-01 seconds\n",
" Time in transport only = 2.6438e-01 seconds\n",
" Time in inactive batches = 1.2500e-01 seconds\n",
" Time in active batches = 1.6275e-01 seconds\n",
" Time synchronizing fission bank = 1.3686e-04 seconds\n",
" Sampling source sites = 8.0627e-05 seconds\n",
" SEND/RECV source sites = 1.5065e-05 seconds\n",
" Time accumulating tallies = 2.7920e-06 seconds\n",
" Time writing statepoints = 2.1663e-02 seconds\n",
" Total time for finalization = 2.7929e-03 seconds\n",
" Total time elapsed = 7.0759e-01 seconds\n",
" Calculation Rate (inactive) = 4000.01 particles/second\n",
" Calculation Rate (active) = 3072.23 particles/second\n",
"\n",
" ============================> RESULTS <============================\n",
"\n",
" k-effective (Collision) = 1.11292 +/- 0.06188\n",
" k-effective (Track-length) = 1.18189 +/- 0.08173\n",
" k-effective (Absorption) = 1.11468 +/- 0.05292\n",
" Combined k-effective = 1.14671 +/- 0.10652\n",
" Leakage Fraction = 0.00000 +/- 0.00000\n",
"\n"
]
},
{
"data": {
"text/plain": [
"PosixPath('/filespace/s/shriwise/ne506/content/openmc/statepoint.10.h5')"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model = openmc.examples.pwr_pin_cell()\n",
"model.settings.max_tracks = 20\n",
"model.settings.photon_transport = True\n",
"model.run(tracks=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Examining Particle Track Files\n",
"\n",
"OpenMC provides classes to facilitate examination and usage of the `tracks.h5` file:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Like several other objects provided by the `openmc` module, this object is an extension of the Python built-in `list` type and supports the same set of operations, including indexing.\n",
"\n",
"Each `Track` in the `Tracks` object stores the information of the primary particle (the particle sourced at the beginning of the history) as well as any secondary particles generated during transport.\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The `ParticleTrack` class contains the state for each particle in the `Track`. This is what we can use to find information about the primary and secondary particle histories':\n",
"\n",
"The full list of fields is as follows:\n",
"\n",
"- **r**: Position (each direction in [cm])\n",
"- **u**: Direction\n",
"- **E**: Energy in [eV]\n",
"- **time**: Time in [s]\n",
"- **wgt**: Weight\n",
"- **cell_id**: Cell ID\n",
"- **cell_instance**: Cell instance\n",
"- **material_id**: Material ID"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Visualizing Particle Tracks\n",
"\n",
"Particle tracks can also be used in visualizations using the `Track.plot` method.\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's make some modifications before we start to enhance our understanding of OpenMC's track capabilities later on:\n",
"\n",
" - name all of the `openmc.Cell`'s in the model with a predictable name\n",
" - set colors for cell appearance in the plots"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"tracks.write_to_vtk('tracks.vtk')"
]
},
{
"attachments": {
"image.png": {
"image/png": "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"
}
},
"cell_type": "markdown",
"metadata": {},
"source": [
"![image.png](attachment:image.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Lost Particles\n",
"\n",
"Lost particles are particles that enter an undefined region of space in the problem. Generally lost particles are caused by errors in geometry definitions or niche cases in computational geometry. When a lost particle occurs the following will appear in the OpenMC output:\n",
"\n",
"```shell\n",
" ===============> FIXED SOURCE TRANSPORT SIMULATION <===============\n",
"\n",
" Simulating batch 1\n",
" WARNING: After particle 5 crossed surface 1 it could not be located in any cell\n",
" and it did not leak.\n",
"\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"After the number of lost particles exceeds the `settings.max_lost_particles` parameter, the simulation will halt with the following error message:\n",
"\n",
"```shell\n",
" WARNING: After particle 86 crossed surface 1 it could not be located in any\n",
" cell and it did not leak.\n",
" ERROR: Maximum number of lost particles has been reached.\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For each lost particle produced by the simulation, a `particle_b_i.h5` file is produced containing the particle's state at the time it was lost, where `b` is the batch number and `i` is the particle ID.\n",
"\n",
"OpenMC can be run in a mode where this single particle is run with additional output to assist in determining the cause of the problem."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For a particle restart file, `particle_1_100.h5`, this single particle can be executed in OpenMC using one of the following:\n",
"\n",
" - from a Python interpreter:\n",
" - `model.run(particle_restart='particle_1_100.h5')`\n",
" - `openmc.run(particle_restart='particle_1_100.h5')`\n",
" - from the terminal\n",
" - `$ openmc -r particle_1_100.h5`"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.1"
}
},
"nbformat": 4,
"nbformat_minor": 4
}