Skip to content

Commit c358aa4

Browse files
committed
add test for detailedNDensity with detailed axial expansion
1 parent 59a0d75 commit c358aa4

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

armi/reactor/composites.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1576,7 +1576,7 @@ def changeNDensByFactor(self, factor):
15761576
}
15771577
self.setNumberDensities(densitiesScaled)
15781578
# Update detailedNDens
1579-
if self.p.detailedNDens:
1579+
if self.p.detailedNDens is not None:
15801580
self.p.detailedNDens *= factor
15811581

15821582
def clearNumberDensities(self):

armi/reactor/converters/tests/test_axialExpansionChanger.py

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import collections
1717
import os
1818
import unittest
19+
import copy
1920
from statistics import mean
2021

2122
from numpy import array, linspace, zeros
@@ -267,6 +268,8 @@ def test_thermalExpansionContractionConservation_simple(self):
267268
a = buildTestAssemblyWithFakeMaterial(name="HT9")
268269
origMesh = a.getAxialMesh()[:-1]
269270
origMasses, origNDens = self._getComponentMassAndNDens(a)
271+
# set component detailedNDens
272+
origDetailedNDens = self._setComponentDetailedNDens(a, origNDens)
270273
axialExpChngr = AxialExpansionChanger(detailedAxialExpansion=True)
271274

272275
tempGrid = linspace(0.0, a.getHeight())
@@ -281,16 +284,20 @@ def test_thermalExpansionContractionConservation_simple(self):
281284
# Set new isothermal temp and expand
282285
tempField = array([temp] * len(tempGrid))
283286
oldMasses, oldNDens = self._getComponentMassAndNDens(a)
287+
oldDetailedNDens = self._getComponentDetailedNDens(a)
284288
axialExpChngr.performThermalAxialExpansion(a, tempGrid, tempField)
285289
newMasses, newNDens = self._getComponentMassAndNDens(a)
290+
newDetailedNDens = self._getComponentDetailedNDens(a)
286291
self._checkMass(oldMasses, newMasses)
287292
self._checkNDens(oldNDens, newNDens, totGrowthFrac)
293+
self._checkDetailedNDens(oldDetailedNDens, newDetailedNDens, totGrowthFrac)
288294

289295
# make sure that the assembly returned to the original state
290296
for orig, new in zip(origMesh, a.getAxialMesh()):
291297
self.assertAlmostEqual(orig, new, places=12)
292298
self._checkMass(origMasses, newMasses)
293299
self._checkNDens(origNDens, newNDens, 1.0)
300+
self._checkDetailedNDens(origDetailedNDens, newDetailedNDens, 1.0)
294301

295302
def test_thermalExpansionContractionConservation_complex(self):
296303
"""Thermally expand and then contract to ensure original state is recovered.
@@ -412,7 +419,13 @@ def _checkNDens(self, prevNDen, newNDens, ratio):
412419
for prev, new in zip(prevComp.values(), newComp.values()):
413420
if prev:
414421
self.assertAlmostEqual(prev / new, ratio, msg=f"{prev} / {new}")
415-
422+
423+
def _checkDetailedNDens(self, prevDetailedNDen, newDetailedNDens, ratio):
424+
for prevComp, newComp in zip(prevDetailedNDen.values(), newDetailedNDens.values()):
425+
for prev, new in zip(prevComp, newComp):
426+
if prev:
427+
self.assertAlmostEqual(prev / new, ratio, msg=f"{prev} / {new}")
428+
416429
@staticmethod
417430
def _getComponentMassAndNDens(a):
418431
masses = {}
@@ -422,6 +435,23 @@ def _getComponentMassAndNDens(a):
422435
masses[c] = c.getMass()
423436
nDens[c] = c.getNumberDensities()
424437
return masses, nDens
438+
439+
@staticmethod
440+
def _setComponentDetailedNDens(a, nDens):
441+
detailedNDens = {}
442+
for b in a:
443+
for c in getSolidComponents(b):
444+
c.p.detailedNDens = copy.deepcopy([val for val in nDens[c].values()])
445+
detailedNDens[c] = c.p.detailedNDens
446+
return detailedNDens
447+
448+
@staticmethod
449+
def _getComponentDetailedNDens(a):
450+
detailedNDens = {}
451+
for b in a:
452+
for c in getSolidComponents(b):
453+
detailedNDens[c] = copy.deepcopy(c.p.detailedNDens)
454+
return detailedNDens
425455

426456
def test_targetComponentMassConservation(self):
427457
"""Tests mass conservation for target components."""

0 commit comments

Comments
 (0)