Loading SubKit/process/Hdf5Tools.py +2 −1 Original line number Diff line number Diff line Loading @@ -180,7 +180,8 @@ class Hdf5Interface(object): def _pinRadialIndexValid(me, pin, radial): """ Used for checking validity of radial index """ if radial<0 or radial>=me.getPinNumRadial(pin): numRadial = me.getPinNumRadial(pin) if radial<-numRadial or radial>=numRadial: raise ValueError("Pin radial index "+str(radial)+" for pin "+str(pin)+" is not in the pin") def _pinHasCouplingData(me, pin): Loading SubKit/process/SummaryTools.py +74 −0 Original line number Diff line number Diff line Loading @@ -108,6 +108,80 @@ class SummaryTools(object): f.write('{:15d}{:25.5e}\n'.format(state, val)) f.close() def genPinTimeSummary(me, pin, level, sector=None, fname=None, units=None): """ Prints summary information for pin data Args: dataset (str) : Name of the dataset (corresponds to name in hdf5 file). pin (int) : The (1-based) pin index for which to print summary data. level (int) : The (1-based) level index to print. sector (int) : The (1-based) sector index to print. fname (str) : The name of the file (defaults to PX_LX_pinSummary.txt) if not provided where P and L are pin (1-based) and level (1-based) indices units (str) : Can be 'si' or 'british' """ _level = level-1 if units is None: _units = 'si' else: _units = units if _units=='si': tempUnit = 'C' elif _units=='british': tempUnit = 'F' else: raise RuntimeError("Unexpected units: "+str(_units)+", must be 'si' or 'british'") if sector is None: _sector = 0 else: _sector = sector-1 if not fname: _fname = 'P{:d}_L{:d}_S{:d}_pinSummary.txt'.format(pin, level, _sector+1) else: _fname = fname f = open(_fname, 'w') f.write('#========================================================\n') f.write('# Pin: {:8d}\n'.format(pin)) f.write('# Level: {:8d}\n'.format(level)) f.write('# Sector: {:8d}\n'.format(_sector+1)) f.write('# Temperature units: {:s}\n'.format(tempUnit)) f.write('#--------------------------------------------------------\n') if me.h5.isTransient(): time = 'Time [s]' else: time = 'State' f.write('#{:>14s}{:>22s}{:>22s}{:>22s}{:>22s}\n'.format(time, 'Tclad,o', 'Tclad,i', 'Tpellet,o', 'Tcent')) numRadial = me.h5.getPinNumRadial(pin) Tcladi = None Tpellet = None times, Tclado = me.h5.getPinInternalTimeData(pin, _sector, -1, _level) if numRadial>1: times, Tcladi = me.h5.getPinInternalTimeData(pin, _sector, -2, _level) if numRadial>2: times, Tpellet = me.h5.getPinInternalTimeData(pin, _sector, -3, _level) times, Tcent = me.h5.getPinAxialTimeData('pin_axial_centerline_temp', pin, _level) for i, t in enumerate(times): _Tclado = Tclado[i] if Tcladi is None: _Tcladi = 0.0 else: _Tcladi = Tcladi[i] if Tpellet is None: _Tpellet = 0.0 else: _Tpellet = Tpellet[i] _Tcent = Tcent[i] if _units=='british': _Tclado = C2F(_Tclado) _Tcladi = C2F(_Tcladi) _Tpellet = C2F(_Tpellet) _Tcent = C2F(_Tcent) if me.h5.isTransient(): f.write('{:15.5e}{:>22.8e}{:>22.8e}{:>22.8e}{:>22.8e}\n'.format(t, _Tclado, _Tcladi, _Tpellet, _Tcent)) else: f.write('{:15d}{:>22.8e}{:>22.8e}{:>22.8e}{:>22.8e}\n'.format(t, _Tclado, _Tcladi, _Tpellet, _Tcent)) def genDNBSummary(me, fname=None, units=None): """ Prints summary information for limiting rod/channel""" Loading SubKit/process/genChanTimeDataSummary.py +1 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ def main(): parser.add_argument('h5name', type=str, help="HDF5 file") parser.add_argument('dataset', type=str, help="Valid dataset name in HDF5 file") parser.add_argument('--ch', type=int, help="Channel index (1-based) to plot (if not provided defaults to channel with max dataset value.") parser.add_argument('--level', type=int, help="Level index (0-based) to plot (if not provided defaults to level with max dataset value.") parser.add_argument('--level', type=int, help="Level index (1-based) to plot (if not provided defaults to level with max dataset value.") parser.add_argument('--units', choices=["si", "british"], type=str, help="Selector for physical units (default si)") parser.add_argument('--fname', type=str, help="Output summary file name") args = parser.parse_args() Loading SubKit/process/genPinTimeDataSummary.py 0 → 100644 +19 −0 Original line number Diff line number Diff line import argparse from SummaryTools import SummaryTools def main(): parser = argparse.ArgumentParser(description="Generates a summary of time-dependent pin temperature solution data.") parser.add_argument('h5name', type=str, help="HDF5 file") parser.add_argument('pin', type=int, help="Pin index (1-based) to plot.") parser.add_argument('level', type=int, help="Level index (1-based) to plot.") parser.add_argument('--sector', type=int, help="Level index (1-based) to plot. Picks first one by default.") parser.add_argument('--units', choices=["si", "british"], type=str, help="Selector for physical units (default si)") parser.add_argument('--fname', type=str, help="Output summary file name") args = parser.parse_args() s = SummaryTools(args.h5name) s.genPinTimeSummary(fname=args.fname, pin=args.pin, level=args.level, sector=args.sector, units=args.units) if __name__=="__main__": main() tests/test_scripts.sh +13 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,19 @@ runScriptTest "../SubKit/process/genDNBSummary.py unitTests/dummy.h5 --units=si runScriptTest "../SubKit/process/genDNBSummary.py unitTests/dummy.h5 --units=british --fname=custom.txt" runScriptTest "../SubKit/process/genDNBSummary.py unitTests/dummy.h5 --units=si --fname=custom.txt" runScriptTest "../SubKit/process/genPinTimeDataSummary.py unitTests/dummy.h5 1 5" runScriptTest "../SubKit/process/genPinTimeDataSummary.py unitTests/dummy.h5 1 5 --sector 1" runScriptTest "../SubKit/process/genPinTimeDataSummary.py unitTests/dummy.h5 1 5 --sector 1 --units=british" runScriptTest "../SubKit/process/genPinTimeDataSummary.py unitTests/dummy.h5 1 5 --sector 1 --units=british --fname=custom.txt" runScriptTest "../SubKit/process/genChanTimeDataSummary.py unitTests/dummy.h5 chan_temp" runScriptTest "../SubKit/process/genChanTimeDataSummary.py unitTests/dummy.h5 --ch 1 chan_temp" runScriptTest "../SubKit/process/genChanTimeDataSummary.py unitTests/dummy.h5 --level 1 chan_temp" runScriptTest "../SubKit/process/genChanTimeDataSummary.py unitTests/dummy.h5 --ch 1 --level 1 chan_temp" runScriptTest "../SubKit/process/genChanTimeDataSummary.py unitTests/dummy.h5 --ch 1 --level 1 --units british chan_temp" runScriptTest "../SubKit/process/genChanTimeDataSummary.py unitTests/dummy.h5 --ch 1 --level 1 --units british chan_temp" runScriptTest "../SubKit/process/genChanTimeDataSummary.py unitTests/dummy.h5 --fname custom.txt chan_temp" runScriptTest "../SubKit/process/plotChanVoid.py unitTests/dummy.h5" runScriptTest "../SubKit/process/plotChanVoid.py unitTests/dummy.h5 --state=1 --ch=1 --figname=custom.png" Loading Loading
SubKit/process/Hdf5Tools.py +2 −1 Original line number Diff line number Diff line Loading @@ -180,7 +180,8 @@ class Hdf5Interface(object): def _pinRadialIndexValid(me, pin, radial): """ Used for checking validity of radial index """ if radial<0 or radial>=me.getPinNumRadial(pin): numRadial = me.getPinNumRadial(pin) if radial<-numRadial or radial>=numRadial: raise ValueError("Pin radial index "+str(radial)+" for pin "+str(pin)+" is not in the pin") def _pinHasCouplingData(me, pin): Loading
SubKit/process/SummaryTools.py +74 −0 Original line number Diff line number Diff line Loading @@ -108,6 +108,80 @@ class SummaryTools(object): f.write('{:15d}{:25.5e}\n'.format(state, val)) f.close() def genPinTimeSummary(me, pin, level, sector=None, fname=None, units=None): """ Prints summary information for pin data Args: dataset (str) : Name of the dataset (corresponds to name in hdf5 file). pin (int) : The (1-based) pin index for which to print summary data. level (int) : The (1-based) level index to print. sector (int) : The (1-based) sector index to print. fname (str) : The name of the file (defaults to PX_LX_pinSummary.txt) if not provided where P and L are pin (1-based) and level (1-based) indices units (str) : Can be 'si' or 'british' """ _level = level-1 if units is None: _units = 'si' else: _units = units if _units=='si': tempUnit = 'C' elif _units=='british': tempUnit = 'F' else: raise RuntimeError("Unexpected units: "+str(_units)+", must be 'si' or 'british'") if sector is None: _sector = 0 else: _sector = sector-1 if not fname: _fname = 'P{:d}_L{:d}_S{:d}_pinSummary.txt'.format(pin, level, _sector+1) else: _fname = fname f = open(_fname, 'w') f.write('#========================================================\n') f.write('# Pin: {:8d}\n'.format(pin)) f.write('# Level: {:8d}\n'.format(level)) f.write('# Sector: {:8d}\n'.format(_sector+1)) f.write('# Temperature units: {:s}\n'.format(tempUnit)) f.write('#--------------------------------------------------------\n') if me.h5.isTransient(): time = 'Time [s]' else: time = 'State' f.write('#{:>14s}{:>22s}{:>22s}{:>22s}{:>22s}\n'.format(time, 'Tclad,o', 'Tclad,i', 'Tpellet,o', 'Tcent')) numRadial = me.h5.getPinNumRadial(pin) Tcladi = None Tpellet = None times, Tclado = me.h5.getPinInternalTimeData(pin, _sector, -1, _level) if numRadial>1: times, Tcladi = me.h5.getPinInternalTimeData(pin, _sector, -2, _level) if numRadial>2: times, Tpellet = me.h5.getPinInternalTimeData(pin, _sector, -3, _level) times, Tcent = me.h5.getPinAxialTimeData('pin_axial_centerline_temp', pin, _level) for i, t in enumerate(times): _Tclado = Tclado[i] if Tcladi is None: _Tcladi = 0.0 else: _Tcladi = Tcladi[i] if Tpellet is None: _Tpellet = 0.0 else: _Tpellet = Tpellet[i] _Tcent = Tcent[i] if _units=='british': _Tclado = C2F(_Tclado) _Tcladi = C2F(_Tcladi) _Tpellet = C2F(_Tpellet) _Tcent = C2F(_Tcent) if me.h5.isTransient(): f.write('{:15.5e}{:>22.8e}{:>22.8e}{:>22.8e}{:>22.8e}\n'.format(t, _Tclado, _Tcladi, _Tpellet, _Tcent)) else: f.write('{:15d}{:>22.8e}{:>22.8e}{:>22.8e}{:>22.8e}\n'.format(t, _Tclado, _Tcladi, _Tpellet, _Tcent)) def genDNBSummary(me, fname=None, units=None): """ Prints summary information for limiting rod/channel""" Loading
SubKit/process/genChanTimeDataSummary.py +1 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ def main(): parser.add_argument('h5name', type=str, help="HDF5 file") parser.add_argument('dataset', type=str, help="Valid dataset name in HDF5 file") parser.add_argument('--ch', type=int, help="Channel index (1-based) to plot (if not provided defaults to channel with max dataset value.") parser.add_argument('--level', type=int, help="Level index (0-based) to plot (if not provided defaults to level with max dataset value.") parser.add_argument('--level', type=int, help="Level index (1-based) to plot (if not provided defaults to level with max dataset value.") parser.add_argument('--units', choices=["si", "british"], type=str, help="Selector for physical units (default si)") parser.add_argument('--fname', type=str, help="Output summary file name") args = parser.parse_args() Loading
SubKit/process/genPinTimeDataSummary.py 0 → 100644 +19 −0 Original line number Diff line number Diff line import argparse from SummaryTools import SummaryTools def main(): parser = argparse.ArgumentParser(description="Generates a summary of time-dependent pin temperature solution data.") parser.add_argument('h5name', type=str, help="HDF5 file") parser.add_argument('pin', type=int, help="Pin index (1-based) to plot.") parser.add_argument('level', type=int, help="Level index (1-based) to plot.") parser.add_argument('--sector', type=int, help="Level index (1-based) to plot. Picks first one by default.") parser.add_argument('--units', choices=["si", "british"], type=str, help="Selector for physical units (default si)") parser.add_argument('--fname', type=str, help="Output summary file name") args = parser.parse_args() s = SummaryTools(args.h5name) s.genPinTimeSummary(fname=args.fname, pin=args.pin, level=args.level, sector=args.sector, units=args.units) if __name__=="__main__": main()
tests/test_scripts.sh +13 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,19 @@ runScriptTest "../SubKit/process/genDNBSummary.py unitTests/dummy.h5 --units=si runScriptTest "../SubKit/process/genDNBSummary.py unitTests/dummy.h5 --units=british --fname=custom.txt" runScriptTest "../SubKit/process/genDNBSummary.py unitTests/dummy.h5 --units=si --fname=custom.txt" runScriptTest "../SubKit/process/genPinTimeDataSummary.py unitTests/dummy.h5 1 5" runScriptTest "../SubKit/process/genPinTimeDataSummary.py unitTests/dummy.h5 1 5 --sector 1" runScriptTest "../SubKit/process/genPinTimeDataSummary.py unitTests/dummy.h5 1 5 --sector 1 --units=british" runScriptTest "../SubKit/process/genPinTimeDataSummary.py unitTests/dummy.h5 1 5 --sector 1 --units=british --fname=custom.txt" runScriptTest "../SubKit/process/genChanTimeDataSummary.py unitTests/dummy.h5 chan_temp" runScriptTest "../SubKit/process/genChanTimeDataSummary.py unitTests/dummy.h5 --ch 1 chan_temp" runScriptTest "../SubKit/process/genChanTimeDataSummary.py unitTests/dummy.h5 --level 1 chan_temp" runScriptTest "../SubKit/process/genChanTimeDataSummary.py unitTests/dummy.h5 --ch 1 --level 1 chan_temp" runScriptTest "../SubKit/process/genChanTimeDataSummary.py unitTests/dummy.h5 --ch 1 --level 1 --units british chan_temp" runScriptTest "../SubKit/process/genChanTimeDataSummary.py unitTests/dummy.h5 --ch 1 --level 1 --units british chan_temp" runScriptTest "../SubKit/process/genChanTimeDataSummary.py unitTests/dummy.h5 --fname custom.txt chan_temp" runScriptTest "../SubKit/process/plotChanVoid.py unitTests/dummy.h5" runScriptTest "../SubKit/process/plotChanVoid.py unitTests/dummy.h5 --state=1 --ch=1 --figname=custom.png" Loading