# 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.
"""TZM."""
from numpy import interp
from armi.materials.material import Material
from armi.utils.units import getTc
[docs]class TZM(Material):
propertyValidTemperature = {"linear expansion percent": ((21.11, 1382.22), "C")}
references = {
"linear expansion percent": "Report on the Mechanical and Thermal Properties of Tungsten and TZM Sheet Produced \
in the Refractory Metal Sheet Rolling Program, Part 1 to Bureau of Naval Weapons Contract No. N600(19)-59530, \
Southern Research Institute"
}
temperatureC = [
21.11,
456.11,
574.44,
702.22,
840.56,
846.11,
948.89,
1023.89,
1146.11,
1287.78,
1382.22,
]
percentThermalExpansion = [
0,
1.60e-01,
2.03e-01,
2.53e-01,
3.03e-01,
3.03e-01,
3.42e-01,
3.66e-01,
4.21e-01,
4.68e-01,
5.04e-01,
]
def __init__(self):
Material.__init__(self)
self.refDens = 10.16
[docs] def setDefaultMassFracs(self):
self.setMassFrac("C", 2.50749e-05)
self.setMassFrac("TI", 0.002502504)
self.setMassFrac("ZR", 0.000761199)
self.setMassFrac("MO", 0.996711222)
[docs] def linearExpansionPercent(self, Tk=None, Tc=None):
r"""
return linear expansion in %dL/L from interpolation of tabular data.
This function is used to expand a material from its reference temperature (21C)
to a particular hot temperature.
Parameters
----------
Tk : float
temperature in K
Tc : float
temperature in C
Source: Report on the Mechanical and Thermal Properties of Tungsten and TZM Sheet Produced \
in the Refractory Metal Sheet Rolling Program, Part 1 to Bureau of Naval Weapons Contract No. N600(19)-59530, 1966 \
Southern Research Institute.
See Table viii-b, Appendix B, page 181.
"""
Tc = getTc(Tc, Tk)
self.checkPropertyTempRange("linear expansion percent", Tc)
return interp(Tc, self.temperatureC, self.percentThermalExpansion)