Loading SubKit/build/CoreBuilder.py +9 −4 Original line number Diff line number Diff line Loading @@ -131,10 +131,15 @@ class Core(object): @property def z_power_grid(me): """ Adjust z center endpoints to span entire axial core height """ z_pwr_grid = me.z_centers z_pwr_grid[0] = 0.0 z_pwr_grid[-1] = np.cumsum(me.dz)[-1] + 0.0001 return z_pwr_grid #z_pwr_grid = me.z_centers #z_pwr_grid[0] = 0.0 #z_pwr_grid[-1] = np.cumsum(me.dz)[-1] + 0.0001 z_pwr_grid = me.z_bounds_pairs # slightly adjust the upper bounds of each axial edit zone z_pwr_grid[:, 1] -= 1e-8 # flatten and return return z_pwr_grid.flatten() @property def z_bounds(me): Loading SubKit/build/SquareLatticeLWR_Nodal.py +12 −6 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ import numpy as np import Solid import Section import utils.utils as utils from scipy.interpolate import interp1d class NodalChannelGeom(object): Loading Loading @@ -1154,15 +1155,20 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core): # set rod power powID = "pwr_asm_" + str(assemID) + "_node_" + str(nodeID) node_axial_power_profile = powerDist[asm_i, asm_j, nodeID, :] avg_node_axial_power_profile = \ np.max((1e-12, np.average(node_axial_power_profile))) # scale axial power me.model.addAxialPowerShape(powID, me.z_power_grid, node_axial_power_profile / avg_node_axial_power_profile) # the node_axial_power_profile is specified at z_centers assert me.z_centers.size == node_axial_power_profile.size node_axial_power_interpolant = interp1d(me.z_centers, node_axial_power_profile) # interpolate to the z_bounds node_axial_power_ctf = node_axial_power_interpolant(me.z_power_grid) # set axial power profile in the ctf model me.model.addAxialPowerShape(powID, me.z_power_grid, node_axial_power_ctf) obj_rod.powID = powID obj_rod_type_id = me.model.solidTypeIDs[rodID] # obj_rod_type_id == 1 is heated rod # obj_rod_type_id == 2 is guide tube (only present if me.modelGuideTubes=True) # obj_rod is type SubKit.build.Solid.HeatedSolid # radial power factors are implicit in the 3d power distribution obj_rod.power = avg_node_axial_power_profile obj_rod.power = 1.0 Loading
SubKit/build/CoreBuilder.py +9 −4 Original line number Diff line number Diff line Loading @@ -131,10 +131,15 @@ class Core(object): @property def z_power_grid(me): """ Adjust z center endpoints to span entire axial core height """ z_pwr_grid = me.z_centers z_pwr_grid[0] = 0.0 z_pwr_grid[-1] = np.cumsum(me.dz)[-1] + 0.0001 return z_pwr_grid #z_pwr_grid = me.z_centers #z_pwr_grid[0] = 0.0 #z_pwr_grid[-1] = np.cumsum(me.dz)[-1] + 0.0001 z_pwr_grid = me.z_bounds_pairs # slightly adjust the upper bounds of each axial edit zone z_pwr_grid[:, 1] -= 1e-8 # flatten and return return z_pwr_grid.flatten() @property def z_bounds(me): Loading
SubKit/build/SquareLatticeLWR_Nodal.py +12 −6 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ import numpy as np import Solid import Section import utils.utils as utils from scipy.interpolate import interp1d class NodalChannelGeom(object): Loading Loading @@ -1154,15 +1155,20 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core): # set rod power powID = "pwr_asm_" + str(assemID) + "_node_" + str(nodeID) node_axial_power_profile = powerDist[asm_i, asm_j, nodeID, :] avg_node_axial_power_profile = \ np.max((1e-12, np.average(node_axial_power_profile))) # scale axial power me.model.addAxialPowerShape(powID, me.z_power_grid, node_axial_power_profile / avg_node_axial_power_profile) # the node_axial_power_profile is specified at z_centers assert me.z_centers.size == node_axial_power_profile.size node_axial_power_interpolant = interp1d(me.z_centers, node_axial_power_profile) # interpolate to the z_bounds node_axial_power_ctf = node_axial_power_interpolant(me.z_power_grid) # set axial power profile in the ctf model me.model.addAxialPowerShape(powID, me.z_power_grid, node_axial_power_ctf) obj_rod.powID = powID obj_rod_type_id = me.model.solidTypeIDs[rodID] # obj_rod_type_id == 1 is heated rod # obj_rod_type_id == 2 is guide tube (only present if me.modelGuideTubes=True) # obj_rod is type SubKit.build.Solid.HeatedSolid # radial power factors are implicit in the 3d power distribution obj_rod.power = avg_node_axial_power_profile obj_rod.power = 1.0