def applyMaterialMassFracsToNumberDensities(self): """ Set initial (cold) number densities of this component based Material composition. """ density = self.material.getProperty("density", Tc=self.inputTemperatureInC) self.p.numberDensities = densityTools.getNDensFromMasses( density, self.material.p.massFrac)
def updateYieldVector(self, numberDensities=None, massFrac=None, fpFiltered=False): """update the yield values on the single lumped fission product""" if massFrac is not None: numberDensities = densityTools.getNDensFromMasses(1, massFrac) if numberDensities is None: raise ValueError( "massFrac -- {} -- or numberDensities -- {} -- must be populated" .format(massFrac, numberDensities)) self._updateYieldVectorFromNumberDensities(numberDensities, fpFiltered=fpFiltered)
def applyHotHeightDensityReduction(self): """ Set initial (hot) number densities of this component based Material composition. Notes ----- We apply the hot-height density reduction here to account for pre-expanded block heights in blueprints. Future temperature changes can be handled by multiplications of 1/(1+dLL)**2 instead of 1/(1+dLL)**3 since we have pre-expanded in the axial direction. """ denistyIfNotPreExpandedAxially = self.material.getProperty( "density", self.temperatureInK) # axial expansion factor must be applied because ARMI expects hot heights # to be entered on assemblies in the blueprints so that it doesn't have to # handle the problem of fuel axially expanding at a different rate than clad. axialExpansionFactor = 1.0 + self.material.linearExpansionFactor( self.temperatureInC, self.inputTemperatureInC) self.p.numberDensities = densityTools.getNDensFromMasses( denistyIfNotPreExpandedAxially / axialExpansionFactor, self.material.p.massFrac, )