Commit ac65057e authored by Gurecky, William's avatar Gurecky, William
Browse files

move power normilization routine to reduce code duplication

parent a42adac9
Loading
Loading
Loading
Loading
+15 −14
Original line number Diff line number Diff line
@@ -1002,6 +1002,16 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core):
      else:
         raise RuntimeError("Invalid power distribution shape: %s" % str(powerDist.shape))

      # Renormalize the radial powers
      radP = []
      mults = []
      for obj in me.model.solidObjects.values():
         radP.append(obj.power)
         mults.append(obj.mult)
      radP = np.array(radP)/np.average(np.array(radP), weights=mults)
      for i, obj in enumerate(me.model.solidObjects.values()):
         obj.power = radP[i]

   def _setCorePowerShapeAsm3D(me, powerDist, wgts=None, coreStart=0.0):
      """
      Set a 3D power distribution for the core.  Each assembly can have it's own
@@ -1037,7 +1047,10 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core):
            assemID = me.chMapObj.getAssemIndexFromLoc(i, j)
            if assemID:
               powID = "pwr_" + str(assemID)
               me.model.addAxialPowerShape(powID, me.z_power_grid, powerDist[i, j, :])
               asm_axial_power_profile_avg = \
                   np.max((1e-12, np.average(powerDist[i, j, :])))
               me.model.addAxialPowerShape(powID, me.z_power_grid, powerDist[i, j, :] / \
                       asm_axial_power_profile_avg)
               rods = me.rodsInAssem[assemID]

               for rodID in rods:
@@ -1048,7 +1061,7 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core):
                  # 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 = 1.0
                  obj_rod.power = asm_axial_power_profile_avg

   def _setCorePowerShapeNodal3D(me, powerDist, wgts=None, coreStart=0.0):
      """
@@ -1129,8 +1142,6 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core):
                  avg_node_axial_power_profile = \
                      np.max((1e-12, np.average(node_axial_power_profile)))
                  # scale axial power
                  # import pdb; pdb.set_trace()
                  # node_axial_power_profile *= 1.165803
                  me.model.addAxialPowerShape(powID, me.z_power_grid,
                          node_axial_power_profile / avg_node_axial_power_profile)
                  obj_rod.powID = powID
@@ -1140,13 +1151,3 @@ class SquareLatticeLWR_Nodal(CoreBuilder.Core):
                  # 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

      # Renormalize the radial powers
      radP = []
      mults = []
      for obj in me.model.solidObjects.values():
         radP.append(obj.power)
         mults.append(obj.mult)
      radP = np.array(radP)/np.average(np.array(radP), weights=mults)
      for i, obj in enumerate(me.model.solidObjects.values()):
         obj.power = radP[i]