# Copyright 2019 TerraPower, LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Incoloy 800"""
from armi.materials.material import Material
from armi.utils.units import getTc
[docs]class Inconel800(Material):
r"""
Incoloy 800/800H (UNS N08800/N08810)
.. [SM] Special Metals - Incoloy alloy 800
(https://www.specialmetals.com/assets/smc/documents/alloys/incoloy/incoloy-alloy-800.pdf)
"""
name = "Inconel800"
propertyValidTemperature = {"thermal expansion": ((20.0, 800.0), "C")}
refTempK = 294.15
[docs] def setDefaultMassFracs(self):
r"""
Incoloy 800H mass fractions
From [SM]_.
"""
self.setMassFrac("NI", 0.325) # ave.
self.setMassFrac("CR", 0.21) # ave.
self.setMassFrac("C", 0.00075) # ave. 800H
self.setMassFrac("MN", 0.015) # max.
self.setMassFrac("S", 0.00015) # max.
self.setMassFrac("SI", 0.01) # max.
self.setMassFrac("CU", 0.0075) # max.
self.setMassFrac("AL", 0.00375) # ave.
self.setMassFrac("TI", 0.00375) # ave.
self.setMassFrac("FE", 1.0 - sum(self.massFrac.values())) # balance, 0.395 min.
self.refDens = 7.94
[docs] def linearExpansionPercent(self, Tk=None, Tc=None):
r"""
average thermal expansion dL/L. Used for computing hot dimensions
Parameters
----------
Tk : float
temperature in (K)
Tc : float
Temperature in (C)
Returns
-------
%dLL(T) in m/m/K
"""
Tc = getTc(Tc, Tk)
refTempC = getTc(Tk=self.refTempK)
return 100.0 * self.meanCoefficientThermalExpansion(Tc=Tc) * (Tc - refTempC)
[docs] def meanCoefficientThermalExpansion(self, Tk=None, Tc=None):
r"""
Mean coefficient of thermal expansion for Incoloy 800.
Third order polynomial fit of table 5 from [SM]_.
Parameters
----------
Tk : float
temperature in (K)
Tc : float
Temperature in (C)
Returns
-------
mean coefficient of thermal expansion in m/m/C
"""
Tc = getTc(Tc, Tk)
self.checkPropertyTempRange("thermal expansion", Tc)
return (
2.52525e-14 * Tc ** 3
- 3.77814e-11 * Tc ** 2
+ 2.06360e-08 * Tc
+ 1.28071e-05
)