Commit 189b54ad authored by Gurecky, William's avatar Gurecky, William
Browse files

adding alt interp to set 3d assembly power method

parent 418c734c
Loading
Loading
Loading
Loading
+14 −6
Original line number Diff line number Diff line
@@ -1069,17 +1069,25 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core):

               asm_axial_power_profile = powerDist[i, j, :]

               # the asm_axial_power_profile is specified at z_centers
               assert me.z_centers.size == asm_axial_power_profile.size

               if interp_type == "linear":
                  # lin interpolate to the z_bounds
                  asm_axial_power_interpolant = \
                          interp1d(me.z_centers, asm_axial_power_profile,
                                   kind='linear', fill_value='extrapolate')

               # interpolate to the z_bounds
                  asm_axial_power_ctf = asm_axial_power_interpolant(me.z_power_grid)
               else:
                  asm_axial_power_ctf = np.zeros(me.z_power_grid.size)
                  for z_lvl in range(me.z_centers.size):
                     asm_axial_power_ctf[[2*z_lvl, 2*z_lvl+1]] = \
                             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))

               # set axial power profile in the ctf model
               me.model.addAxialPowerShape(powID, me.z_power_grid, asm_axial_power_ctf / avg_axpwr)
               rods = me.rodsInAssem[assemID]
               for rodID in rods: