mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-23 19:45:34 -04:00
62 lines
1.9 KiB
Python
Executable file
62 lines
1.9 KiB
Python
Executable file
#!/usr/bin/env python
|
|
|
|
"""
|
|
This script reads a cross_sections.out file, adds up the memory usage for each
|
|
nuclide and S(a,b) table, and displays the total memory usage.
|
|
|
|
"""
|
|
|
|
from __future__ import print_function
|
|
|
|
import sys
|
|
import os
|
|
|
|
if len(sys.argv) > 1:
|
|
# Get path to cross_sections.out file from command line argument
|
|
filename = sys.argv[-1]
|
|
else:
|
|
# Set default path for cross_sections.out
|
|
filename = 'cross_sections.out'
|
|
if not os.path.exists(filename):
|
|
raise OSError('Could not find cross_sections.out file!')
|
|
|
|
# Open file handle for cross_sections.out file
|
|
f = open(filename, 'r')
|
|
|
|
# Initialize memory size arrays
|
|
memory_xs = []
|
|
memory_angle = []
|
|
memory_energy = []
|
|
memory_urr = []
|
|
memory_total = []
|
|
memory_sab = []
|
|
|
|
while True:
|
|
# Read next line in file
|
|
line = f.readline()
|
|
|
|
# Check for EOF
|
|
if line == '':
|
|
break
|
|
|
|
# Look for block listing memory usage for a nuclide
|
|
words = line.split()
|
|
if len(words) == 2 and words[0] == 'Memory':
|
|
memory_xs.append(int(f.readline().split()[-2]))
|
|
memory_angle.append(int(f.readline().split()[-2]))
|
|
memory_energy.append(int(f.readline().split()[-2]))
|
|
memory_urr.append(int(f.readline().split()[-2]))
|
|
memory_total.append(int(f.readline().split()[-2]))
|
|
|
|
# Look for memory usage for S(a,b) table
|
|
if len(words) == 5 and words[1] == 'Used':
|
|
memory_sab.append(int(words[-2]))
|
|
|
|
# Write out summary memory usage
|
|
print('Memory Requirements')
|
|
print(' Reaction Cross Sections = ' + str(sum(memory_xs)))
|
|
print(' Secondary Angle Distributions = ' + str(sum(memory_angle)))
|
|
print(' Secondary Energy Distributions = ' + str(sum(memory_energy)))
|
|
print(' Probability Tables = ' + str(sum(memory_urr)))
|
|
print(' S(a,b) Tables = ' + str(sum(memory_sab)))
|
|
print(' Total = ' + str(sum(memory_total)))
|