Loading SubKit/build/Model.py +50 −48 Original line number Diff line number Diff line Loading @@ -953,12 +953,14 @@ class Model: if all([isinstance(entry, list) for entry in gridEnhancementCoeffs]): assert(len(gridEnhancementCoeffs) == len(levelsList)) for coeffs in gridEnhancementCoeffs: assert(all([isinstance(coeff,float) for coeff in coeffs])) assert(all([isinstance(coeff, float) for coeff in coeffs])) assert(len(coeffs) == 4) gridEnhancementCoeffsList = gridEnhancementCoeffs elif all([isinstance(entry, float) for entry in gridEnhancementCoeffs]): assert(len(gridEnhancementCoeffs) == 4) gridEnhancementCoeffsList = [gridEnhancementCoeffs] * len(levelsList) gridEnhancementCoeffsList = [ gridEnhancementCoeffs] * len(levelsList) else: raise RuntimeError( "gridEnhancementCoeffs must be a list of lists or a list of floats " + str(gridEnhancementCoeffs)) Loading Loading @@ -1344,12 +1346,12 @@ class Model: if type(value) is not type(me.conductorOptions[name]['value']): # Assume all entries must have the same type as the # default entry set in this class. raise TypeError(name+" must be "+str(type(me.conductorOptions[name]['value']))+ " but it was provided as "+str(type(value))) raise TypeError(name + " must be " + str(type(me.conductorOptions[name]['value'])) + " but it was provided as " + str(type(value))) if value not in me.conductorOptions[name]['validEntries']: raise ValueError("The value provided for " + name + " (" + str(value) + ") is not one of the valid values: " +str(me.conductorOptions[name]['validEntries'])) ") is not one of the valid values: " + str(me.conductorOptions[name]['validEntries'])) me.conductorOptions[name]['value'] = value me.conductorOptions[name]['set'] = True Loading SubKit/build/SquareLatticeLWR_Nodal.py +29 −24 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ import Section import utils.utils as utils from scipy.interpolate import interp1d class NodalChannelGeom(object): """ Calculates geometry of a nodal channel in the model Loading Loading @@ -796,8 +797,8 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core): # Convert the passed assemLossLevels to a dictionary that takes assembly type ID and returns # the levels in that location. assert(isinstance(assemLossLevels, list) or isinstance(assemLossLevels, dict)) assert(isinstance(assemLossLevels, list) or isinstance(assemLossLevels, dict)) if isinstance(assemLossLevels, list): assemLossLevelsDict = {} for assemTypeIdx in chMapObj.getAssemTypeIds(): Loading @@ -808,16 +809,19 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core): assert(assemTypeIdx in assemLossLevels) assemLossLevelsDict = assemLossLevels assemLossesDict = me.convertAssemInputToDict(assemLosses,assemLossLevelsDict,chMapObj) assemLossesDict = me.convertAssemInputToDict( assemLosses, assemLossLevelsDict, chMapObj) # Grid blockage and enhancement are optional if loss levels were provided. if assemGridBlockageRatios is not None: assemGridBlockageRatiosDict = me.convertAssemInputToDict(assemGridBlockageRatios,assemLossLevelsDict,chMapObj) assemGridBlockageRatiosDict = me.convertAssemInputToDict( assemGridBlockageRatios, assemLossLevelsDict, chMapObj) else: assemGridBlockageRatiosDict = {} for assemTypeIdx in chMapObj.getAssemTypeIds(): assemGridBlockageRatiosDict[assemTypeIdx] = None if assemGridEnhancementCoeffs is not None: assemGridEnhancementCoeffsDict = me.convertAssemListInputToDict(assemGridEnhancementCoeffs,assemLossLevelsDict,chMapObj) assemGridEnhancementCoeffsDict = me.convertAssemListInputToDict( assemGridEnhancementCoeffs, assemLossLevelsDict, chMapObj) else: assemGridEnhancementCoeffsDict = {} for assemTypeIdx in chMapObj.getAssemTypeIds(): Loading Loading @@ -846,7 +850,8 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core): # Grid blockages and enhancement coeffs must be defined # for the same assembly type IDs. assert(assemGridBlockageRatiosDict.keys()==assemGridEnhancementCoeffsDict.keys()) assert(assemGridBlockageRatiosDict.keys() == assemGridEnhancementCoeffsDict.keys()) for assemTypeID in assemGridBlockageRatiosDict.keys(): # Find all chans associated with this assembly type # and assign the grid enhancement parameters for them. Loading Loading @@ -1004,8 +1009,8 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core): rodMap, chanMap, assemMap, symOpt = me.getChannelAndRodMaps() me.model.setCoreMaps(rodMap, chanMap, assemMap, symOpt) if me.modelGuideTubes: raise RuntimeError("Nodal VERA CS edits are not compatible with modelGuideTubes=True. " + " Set modelGuideTubes=False") raise RuntimeError("Nodal VERA CS edits are not compatible with modelGuideTubes=True. " + " Set modelGuideTubes=False") me.model.setEditOptions(chanVTK, rodVTK, ctfHDF5, veracsHDF5, chanASCII, rodEdits, dnbEdits) Loading @@ -1028,8 +1033,8 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core): symOpt is an int: 1=full sym, 4=qtr sym """ if me.modelGuideTubes: raise RuntimeError("Model guide tubes is currently not supported " + "by the nodal veracsHDF5 writer. Set modelGuideTubes=False.") raise RuntimeError("Model guide tubes is currently not supported " + "by the nodal veracsHDF5 writer. Set modelGuideTubes=False.") else: rodMap = np.zeros((len(me.chMapObj.chAssemIdx), len( me.chMapObj.chAssemIdx[0])), dtype=int) Loading Loading @@ -1316,8 +1321,8 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core): asm_axial_power_profile[z_lvl] # Normalize such that axially integrated asm nodal power is 1 avg_axpwr = np.max((np.trapz(asm_axial_power_ctf, x=me.z_power_grid) / (np.max(me.z_power_grid) - np.min(me.z_power_grid)), 1e-12)) avg_axpwr = np.max((np.trapz(asm_axial_power_ctf, x=me.z_power_grid) / (np.max(me.z_power_grid) - np.min(me.z_power_grid)), 1e-12)) # set axial power profile in the ctf model me.model.addAxialPowerShape( Loading Loading @@ -1433,8 +1438,8 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core): node_axial_power_profile[z_lvl] # Normalize such that axially integrated asm nodal power is 1 avg_axpwr = np.max((np.trapz(node_axial_power_ctf, x=me.z_power_grid) / (np.max(me.z_power_grid) - np.min(me.z_power_grid)), 1e-12)) avg_axpwr = np.max((np.trapz(node_axial_power_ctf, x=me.z_power_grid) / (np.max(me.z_power_grid) - np.min(me.z_power_grid)), 1e-12)) # set axial power profile in the ctf model me.model.addAxialPowerShape( Loading SubKit/build/genDeck.py +21 −16 Original line number Diff line number Diff line Loading @@ -170,8 +170,8 @@ def writeDeck(model, filename): # If this is a parallel model if model.channelsInDomain: group2Data.append("{num_domain} " + str(len(model.channelsInDomain)) + "\n") group2Data.append("{num_domain} " + str(len(model.channelsInDomain)) + "\n") for domain in sorted(model.channelsInDomain.keys()): group2Data.append("{domain} " + str(domain) + "\n") group2Data.append("** local_inex global_index\n") Loading Loading @@ -315,7 +315,8 @@ def writeDeck(model, filename): len(model.formLosses), model.numGridTypes, ifespv)) if model.numGridTypes > 0: group7Data.append("*Card 7.1.5\n") group7Data.append("** C1 C2 C3 C4 A PHI ABLOC SPBLOC\n") group7Data.append( "** C1 C2 C3 C4 A PHI ABLOC SPBLOC\n") for grid in range(model.numGridTypes): # Use default values; overwrite if values for this grid are stored in model.gridEnhancementDict gridCoeffs = [5.55, -0.13, -0.034, 0.4] Loading @@ -332,7 +333,8 @@ def writeDeck(model, filename): gridCoeffs[0], gridCoeffs[1], gridCoeffs[2], gridCoeffs[3], abloc)) if model.numGridTypes > 0: group7Data.append("*Card 7.1.6\n") group7Data.append("** GRD J CD1 CD2 CD3 CD4 CD5 CD6 CD7 CD8 CD9 CD10 CD11 CD12 \n") group7Data.append( "** GRD J CD1 CD2 CD3 CD4 CD5 CD6 CD7 CD8 CD9 CD10 CD11 CD12 \n") for grid in range(model.numGridTypes): chanList = model.gridEnhancementDict[grid]['chans'] ichan = -1 Loading Loading @@ -412,8 +414,8 @@ def writeDeck(model, filename): # If this is a parallel model write data if model.rodsInDomain: group8Data.append("{num_domain} " + str(len(model.rodsInDomain)) + "\n") group8Data.append("{num_domain} " + str(len(model.rodsInDomain)) + "\n") for domain in sorted(model.rodsInDomain.keys()): group8Data.append("{domain} " + str(domain) + "\n") group8Data.append("** local_inex global_index owner\n") Loading Loading @@ -559,8 +561,10 @@ def writeDeck(model, filename): numtype = len(list(set(model.solidTypeIDs.values()))) group9Data.append( "{0:7d}{1:5d}{2:5d}{3:5d}{4:5d}{5:5d}{6:5d}{7:5d} 0 0 0 0 0 0\n".format( numtype, model.conductorOptions['irelf']['value'], model.conductorOptions['iconf']['value'], model.conductorOptions['imwr']['value'], model.conductorOptions['ifswell']['value'], model.conductorOptions['ifdens']['value'], model.conductorOptions['ifreloc']['value'], numtype, model.conductorOptions['irelf']['value'], model.conductorOptions[ 'iconf']['value'], model.conductorOptions['imwr']['value'], model.conductorOptions['ifswell']['value'], model.conductorOptions[ 'ifdens']['value'], model.conductorOptions['ifreloc']['value'], model.conductorOptions['ifcladcreep']['value'])) def charID(pinobj): Loading Loading @@ -591,7 +595,8 @@ def writeDeck(model, filename): if igpc == -1: # Default VERAIn values for Problem 7 group9Data.append('*Card 9.3\n') group9Data.append('** PGAS VPLEN ROUFF ROUFC HE XE AR KR H N OXIDET\n') group9Data.append( '** PGAS VPLEN ROUFF ROUFC HE XE AR KR H N OXIDET\n') group9Data.append('{:12.3e}{:12.3e} -1.000E-02 -1.000E-02 1.000E+00 0.000E+00 0.000E+00 0.000E+00 0.000E+00 0.000E+00 0.000E+00\n'.format( typeobj.plenumPressure, typeobj.plenumVolume)) group9Data.append('*Card 9.4\n') Loading tests/gridModels/global/buildDeck.py +98 −95 Original line number Diff line number Diff line Loading @@ -34,7 +34,8 @@ def main(): linearHeatRate = 16.71977 # kW/m directHeat = 0.0 # From VERAIn file gridBottoms = list(np.array([20.817, 82.105, 134.305, 186.505, 238.705, 290.905, 343.105, 395.133])*units.t_cm_m) gridBottoms = list(np.array( [20.817, 82.105, 134.305, 186.505, 238.705, 290.905, 343.105, 395.133]) * units.t_cm_m) formLoss = 0.9070 gridBlockageRatio = 0.6 plenumPressure = 15.0 # bar Loading Loading @@ -102,12 +103,13 @@ def main(): plenumPressure=plenumPressure, plenumVolume=plenumVolume), # Fuel rod 2: cdb.Tube(d_outer=dGuideTubeOuter, d_inner=dGuideTubeInner)} # Guide tube builder = SquareLatticeLWR_Nodal(model, coreMap, pwr17x17, pitch, dz, solidGeoms, assemPitch=assemPitch,\ assemLosses=formLoss, assemLossLevels=gridLevels, assemGridBlockageRatios=gridBlockageRatio,\ assemGridEnhancementCoeffs=[0.1,0.2,0.3,0.4],\ builder = SquareLatticeLWR_Nodal(model, coreMap, pwr17x17, pitch, dz, solidGeoms, assemPitch=assemPitch, assemLosses=formLoss, assemLossLevels=gridLevels, assemGridBlockageRatios=gridBlockageRatio, assemGridEnhancementCoeffs=[ 0.1, 0.2, 0.3, 0.4], modelGuideTubes=False, symOpt=1) builder.setCoreInletBC(inletMassFlux, inletTemp)#, flowRamp=[time, flow]) # , flowRamp=[time, flow]) builder.setCoreInletBC(inletMassFlux, inletTemp) builder.setCoreOutletBC(outletPressure, inletTemp) # Set the nominal power and direct heating to coolant Loading @@ -121,5 +123,6 @@ def main(): model.generateModel('deck.inp') if __name__ == '__main__': main() tests/gridModels/levels/buildDeck.py +109 −107 Original line number Diff line number Diff line Loading @@ -36,7 +36,8 @@ def main(): #directHeat = 0.026 directHeat = 0.0 # From VERAIn file gridBottoms = list(np.array([20.817, 82.105, 134.305, 186.505, 238.705, 290.905, 343.105, 395.133])*units.t_cm_m) gridBottoms = list(np.array( [20.817, 82.105, 134.305, 186.505, 238.705, 290.905, 343.105, 395.133]) * units.t_cm_m) # There are 8 grids; assign unique parameters to each of them formLoss = list(np.linspace(0.25, 1.65, num=8)) gridBlockageRatio = list(np.linspace(1.0, 0.3, num=8)) Loading Loading @@ -114,12 +115,12 @@ def main(): plenumPressure=plenumPressure, plenumVolume=plenumVolume), # Fuel rod 2: cdb.Tube(d_outer=dGuideTubeOuter, d_inner=dGuideTubeInner)} # Guide tube builder = SquareLatticeLWR_Nodal(model, coreMap, pwr17x17, pitch, dz, solidGeoms, assemPitch=assemPitch,\ assemLosses=formLoss, assemLossLevels=gridLevels, assemGridBlockageRatios=gridBlockageRatio,\ assemGridEnhancementCoeffs=gridEnhancementCoeffs,\ builder = SquareLatticeLWR_Nodal(model, coreMap, pwr17x17, pitch, dz, solidGeoms, assemPitch=assemPitch, assemLosses=formLoss, assemLossLevels=gridLevels, assemGridBlockageRatios=gridBlockageRatio, assemGridEnhancementCoeffs=gridEnhancementCoeffs, modelGuideTubes=False, symOpt=1) builder.setCoreInletBC(inletMassFlux, inletTemp)#, flowRamp=[time, flow]) # , flowRamp=[time, flow]) builder.setCoreInletBC(inletMassFlux, inletTemp) builder.setCoreOutletBC(outletPressure, inletTemp) # Set the nominal power and direct heating to coolant Loading @@ -133,5 +134,6 @@ def main(): model.generateModel('deck.inp') if __name__ == '__main__': main() Loading
SubKit/build/Model.py +50 −48 Original line number Diff line number Diff line Loading @@ -953,12 +953,14 @@ class Model: if all([isinstance(entry, list) for entry in gridEnhancementCoeffs]): assert(len(gridEnhancementCoeffs) == len(levelsList)) for coeffs in gridEnhancementCoeffs: assert(all([isinstance(coeff,float) for coeff in coeffs])) assert(all([isinstance(coeff, float) for coeff in coeffs])) assert(len(coeffs) == 4) gridEnhancementCoeffsList = gridEnhancementCoeffs elif all([isinstance(entry, float) for entry in gridEnhancementCoeffs]): assert(len(gridEnhancementCoeffs) == 4) gridEnhancementCoeffsList = [gridEnhancementCoeffs] * len(levelsList) gridEnhancementCoeffsList = [ gridEnhancementCoeffs] * len(levelsList) else: raise RuntimeError( "gridEnhancementCoeffs must be a list of lists or a list of floats " + str(gridEnhancementCoeffs)) Loading Loading @@ -1344,12 +1346,12 @@ class Model: if type(value) is not type(me.conductorOptions[name]['value']): # Assume all entries must have the same type as the # default entry set in this class. raise TypeError(name+" must be "+str(type(me.conductorOptions[name]['value']))+ " but it was provided as "+str(type(value))) raise TypeError(name + " must be " + str(type(me.conductorOptions[name]['value'])) + " but it was provided as " + str(type(value))) if value not in me.conductorOptions[name]['validEntries']: raise ValueError("The value provided for " + name + " (" + str(value) + ") is not one of the valid values: " +str(me.conductorOptions[name]['validEntries'])) ") is not one of the valid values: " + str(me.conductorOptions[name]['validEntries'])) me.conductorOptions[name]['value'] = value me.conductorOptions[name]['set'] = True Loading
SubKit/build/SquareLatticeLWR_Nodal.py +29 −24 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ import Section import utils.utils as utils from scipy.interpolate import interp1d class NodalChannelGeom(object): """ Calculates geometry of a nodal channel in the model Loading Loading @@ -796,8 +797,8 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core): # Convert the passed assemLossLevels to a dictionary that takes assembly type ID and returns # the levels in that location. assert(isinstance(assemLossLevels, list) or isinstance(assemLossLevels, dict)) assert(isinstance(assemLossLevels, list) or isinstance(assemLossLevels, dict)) if isinstance(assemLossLevels, list): assemLossLevelsDict = {} for assemTypeIdx in chMapObj.getAssemTypeIds(): Loading @@ -808,16 +809,19 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core): assert(assemTypeIdx in assemLossLevels) assemLossLevelsDict = assemLossLevels assemLossesDict = me.convertAssemInputToDict(assemLosses,assemLossLevelsDict,chMapObj) assemLossesDict = me.convertAssemInputToDict( assemLosses, assemLossLevelsDict, chMapObj) # Grid blockage and enhancement are optional if loss levels were provided. if assemGridBlockageRatios is not None: assemGridBlockageRatiosDict = me.convertAssemInputToDict(assemGridBlockageRatios,assemLossLevelsDict,chMapObj) assemGridBlockageRatiosDict = me.convertAssemInputToDict( assemGridBlockageRatios, assemLossLevelsDict, chMapObj) else: assemGridBlockageRatiosDict = {} for assemTypeIdx in chMapObj.getAssemTypeIds(): assemGridBlockageRatiosDict[assemTypeIdx] = None if assemGridEnhancementCoeffs is not None: assemGridEnhancementCoeffsDict = me.convertAssemListInputToDict(assemGridEnhancementCoeffs,assemLossLevelsDict,chMapObj) assemGridEnhancementCoeffsDict = me.convertAssemListInputToDict( assemGridEnhancementCoeffs, assemLossLevelsDict, chMapObj) else: assemGridEnhancementCoeffsDict = {} for assemTypeIdx in chMapObj.getAssemTypeIds(): Loading Loading @@ -846,7 +850,8 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core): # Grid blockages and enhancement coeffs must be defined # for the same assembly type IDs. assert(assemGridBlockageRatiosDict.keys()==assemGridEnhancementCoeffsDict.keys()) assert(assemGridBlockageRatiosDict.keys() == assemGridEnhancementCoeffsDict.keys()) for assemTypeID in assemGridBlockageRatiosDict.keys(): # Find all chans associated with this assembly type # and assign the grid enhancement parameters for them. Loading Loading @@ -1004,8 +1009,8 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core): rodMap, chanMap, assemMap, symOpt = me.getChannelAndRodMaps() me.model.setCoreMaps(rodMap, chanMap, assemMap, symOpt) if me.modelGuideTubes: raise RuntimeError("Nodal VERA CS edits are not compatible with modelGuideTubes=True. " + " Set modelGuideTubes=False") raise RuntimeError("Nodal VERA CS edits are not compatible with modelGuideTubes=True. " + " Set modelGuideTubes=False") me.model.setEditOptions(chanVTK, rodVTK, ctfHDF5, veracsHDF5, chanASCII, rodEdits, dnbEdits) Loading @@ -1028,8 +1033,8 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core): symOpt is an int: 1=full sym, 4=qtr sym """ if me.modelGuideTubes: raise RuntimeError("Model guide tubes is currently not supported " + "by the nodal veracsHDF5 writer. Set modelGuideTubes=False.") raise RuntimeError("Model guide tubes is currently not supported " + "by the nodal veracsHDF5 writer. Set modelGuideTubes=False.") else: rodMap = np.zeros((len(me.chMapObj.chAssemIdx), len( me.chMapObj.chAssemIdx[0])), dtype=int) Loading Loading @@ -1316,8 +1321,8 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core): asm_axial_power_profile[z_lvl] # Normalize such that axially integrated asm nodal power is 1 avg_axpwr = np.max((np.trapz(asm_axial_power_ctf, x=me.z_power_grid) / (np.max(me.z_power_grid) - np.min(me.z_power_grid)), 1e-12)) avg_axpwr = np.max((np.trapz(asm_axial_power_ctf, x=me.z_power_grid) / (np.max(me.z_power_grid) - np.min(me.z_power_grid)), 1e-12)) # set axial power profile in the ctf model me.model.addAxialPowerShape( Loading Loading @@ -1433,8 +1438,8 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core): node_axial_power_profile[z_lvl] # Normalize such that axially integrated asm nodal power is 1 avg_axpwr = np.max((np.trapz(node_axial_power_ctf, x=me.z_power_grid) / (np.max(me.z_power_grid) - np.min(me.z_power_grid)), 1e-12)) avg_axpwr = np.max((np.trapz(node_axial_power_ctf, x=me.z_power_grid) / (np.max(me.z_power_grid) - np.min(me.z_power_grid)), 1e-12)) # set axial power profile in the ctf model me.model.addAxialPowerShape( Loading
SubKit/build/genDeck.py +21 −16 Original line number Diff line number Diff line Loading @@ -170,8 +170,8 @@ def writeDeck(model, filename): # If this is a parallel model if model.channelsInDomain: group2Data.append("{num_domain} " + str(len(model.channelsInDomain)) + "\n") group2Data.append("{num_domain} " + str(len(model.channelsInDomain)) + "\n") for domain in sorted(model.channelsInDomain.keys()): group2Data.append("{domain} " + str(domain) + "\n") group2Data.append("** local_inex global_index\n") Loading Loading @@ -315,7 +315,8 @@ def writeDeck(model, filename): len(model.formLosses), model.numGridTypes, ifespv)) if model.numGridTypes > 0: group7Data.append("*Card 7.1.5\n") group7Data.append("** C1 C2 C3 C4 A PHI ABLOC SPBLOC\n") group7Data.append( "** C1 C2 C3 C4 A PHI ABLOC SPBLOC\n") for grid in range(model.numGridTypes): # Use default values; overwrite if values for this grid are stored in model.gridEnhancementDict gridCoeffs = [5.55, -0.13, -0.034, 0.4] Loading @@ -332,7 +333,8 @@ def writeDeck(model, filename): gridCoeffs[0], gridCoeffs[1], gridCoeffs[2], gridCoeffs[3], abloc)) if model.numGridTypes > 0: group7Data.append("*Card 7.1.6\n") group7Data.append("** GRD J CD1 CD2 CD3 CD4 CD5 CD6 CD7 CD8 CD9 CD10 CD11 CD12 \n") group7Data.append( "** GRD J CD1 CD2 CD3 CD4 CD5 CD6 CD7 CD8 CD9 CD10 CD11 CD12 \n") for grid in range(model.numGridTypes): chanList = model.gridEnhancementDict[grid]['chans'] ichan = -1 Loading Loading @@ -412,8 +414,8 @@ def writeDeck(model, filename): # If this is a parallel model write data if model.rodsInDomain: group8Data.append("{num_domain} " + str(len(model.rodsInDomain)) + "\n") group8Data.append("{num_domain} " + str(len(model.rodsInDomain)) + "\n") for domain in sorted(model.rodsInDomain.keys()): group8Data.append("{domain} " + str(domain) + "\n") group8Data.append("** local_inex global_index owner\n") Loading Loading @@ -559,8 +561,10 @@ def writeDeck(model, filename): numtype = len(list(set(model.solidTypeIDs.values()))) group9Data.append( "{0:7d}{1:5d}{2:5d}{3:5d}{4:5d}{5:5d}{6:5d}{7:5d} 0 0 0 0 0 0\n".format( numtype, model.conductorOptions['irelf']['value'], model.conductorOptions['iconf']['value'], model.conductorOptions['imwr']['value'], model.conductorOptions['ifswell']['value'], model.conductorOptions['ifdens']['value'], model.conductorOptions['ifreloc']['value'], numtype, model.conductorOptions['irelf']['value'], model.conductorOptions[ 'iconf']['value'], model.conductorOptions['imwr']['value'], model.conductorOptions['ifswell']['value'], model.conductorOptions[ 'ifdens']['value'], model.conductorOptions['ifreloc']['value'], model.conductorOptions['ifcladcreep']['value'])) def charID(pinobj): Loading Loading @@ -591,7 +595,8 @@ def writeDeck(model, filename): if igpc == -1: # Default VERAIn values for Problem 7 group9Data.append('*Card 9.3\n') group9Data.append('** PGAS VPLEN ROUFF ROUFC HE XE AR KR H N OXIDET\n') group9Data.append( '** PGAS VPLEN ROUFF ROUFC HE XE AR KR H N OXIDET\n') group9Data.append('{:12.3e}{:12.3e} -1.000E-02 -1.000E-02 1.000E+00 0.000E+00 0.000E+00 0.000E+00 0.000E+00 0.000E+00 0.000E+00\n'.format( typeobj.plenumPressure, typeobj.plenumVolume)) group9Data.append('*Card 9.4\n') Loading
tests/gridModels/global/buildDeck.py +98 −95 Original line number Diff line number Diff line Loading @@ -34,7 +34,8 @@ def main(): linearHeatRate = 16.71977 # kW/m directHeat = 0.0 # From VERAIn file gridBottoms = list(np.array([20.817, 82.105, 134.305, 186.505, 238.705, 290.905, 343.105, 395.133])*units.t_cm_m) gridBottoms = list(np.array( [20.817, 82.105, 134.305, 186.505, 238.705, 290.905, 343.105, 395.133]) * units.t_cm_m) formLoss = 0.9070 gridBlockageRatio = 0.6 plenumPressure = 15.0 # bar Loading Loading @@ -102,12 +103,13 @@ def main(): plenumPressure=plenumPressure, plenumVolume=plenumVolume), # Fuel rod 2: cdb.Tube(d_outer=dGuideTubeOuter, d_inner=dGuideTubeInner)} # Guide tube builder = SquareLatticeLWR_Nodal(model, coreMap, pwr17x17, pitch, dz, solidGeoms, assemPitch=assemPitch,\ assemLosses=formLoss, assemLossLevels=gridLevels, assemGridBlockageRatios=gridBlockageRatio,\ assemGridEnhancementCoeffs=[0.1,0.2,0.3,0.4],\ builder = SquareLatticeLWR_Nodal(model, coreMap, pwr17x17, pitch, dz, solidGeoms, assemPitch=assemPitch, assemLosses=formLoss, assemLossLevels=gridLevels, assemGridBlockageRatios=gridBlockageRatio, assemGridEnhancementCoeffs=[ 0.1, 0.2, 0.3, 0.4], modelGuideTubes=False, symOpt=1) builder.setCoreInletBC(inletMassFlux, inletTemp)#, flowRamp=[time, flow]) # , flowRamp=[time, flow]) builder.setCoreInletBC(inletMassFlux, inletTemp) builder.setCoreOutletBC(outletPressure, inletTemp) # Set the nominal power and direct heating to coolant Loading @@ -121,5 +123,6 @@ def main(): model.generateModel('deck.inp') if __name__ == '__main__': main()
tests/gridModels/levels/buildDeck.py +109 −107 Original line number Diff line number Diff line Loading @@ -36,7 +36,8 @@ def main(): #directHeat = 0.026 directHeat = 0.0 # From VERAIn file gridBottoms = list(np.array([20.817, 82.105, 134.305, 186.505, 238.705, 290.905, 343.105, 395.133])*units.t_cm_m) gridBottoms = list(np.array( [20.817, 82.105, 134.305, 186.505, 238.705, 290.905, 343.105, 395.133]) * units.t_cm_m) # There are 8 grids; assign unique parameters to each of them formLoss = list(np.linspace(0.25, 1.65, num=8)) gridBlockageRatio = list(np.linspace(1.0, 0.3, num=8)) Loading Loading @@ -114,12 +115,12 @@ def main(): plenumPressure=plenumPressure, plenumVolume=plenumVolume), # Fuel rod 2: cdb.Tube(d_outer=dGuideTubeOuter, d_inner=dGuideTubeInner)} # Guide tube builder = SquareLatticeLWR_Nodal(model, coreMap, pwr17x17, pitch, dz, solidGeoms, assemPitch=assemPitch,\ assemLosses=formLoss, assemLossLevels=gridLevels, assemGridBlockageRatios=gridBlockageRatio,\ assemGridEnhancementCoeffs=gridEnhancementCoeffs,\ builder = SquareLatticeLWR_Nodal(model, coreMap, pwr17x17, pitch, dz, solidGeoms, assemPitch=assemPitch, assemLosses=formLoss, assemLossLevels=gridLevels, assemGridBlockageRatios=gridBlockageRatio, assemGridEnhancementCoeffs=gridEnhancementCoeffs, modelGuideTubes=False, symOpt=1) builder.setCoreInletBC(inletMassFlux, inletTemp)#, flowRamp=[time, flow]) # , flowRamp=[time, flow]) builder.setCoreInletBC(inletMassFlux, inletTemp) builder.setCoreOutletBC(outletPressure, inletTemp) # Set the nominal power and direct heating to coolant Loading @@ -133,5 +134,6 @@ def main(): model.generateModel('deck.inp') if __name__ == '__main__': main()