Пример #1
0
 def thermalConductivity(self, Tc=None, Tk=None):
     Tc = getTc(Tc, Tk)
     (TLowerLimit, TUpperLimit
      ) = self.propertyValidTemperature["thermal conductivity"][0]
     self.checkTempRange(TLowerLimit, TUpperLimit, Tc,
                         "thermal conductivity")
     return (52000 * math.exp(-1.24e-5 * Tc)) / (Tc + 437)
Пример #2
0
    def thermalConductivity(self, Tk=None, Tc=None):
        r"""
        Calculates the thermal conductivity of Hastelloy N. 
        Second order polynomial fit to data from [Haynes]_.

        Parameters
        ----------
        Tk : float
            Temperature in (K)

        Tc : float
            Temperature in (C)

        Returns
        -------
        Hastelloy N thermal conductivity (W/m-K)

        """
        Tc = getTc(Tc, Tk)
        Tk = getTk(Tc, Tk)
        (TLowerLimit, TUpperLimit
         ) = self.propertyValidTemperature["thermal conductivity"][0]
        self.checkTempRange(TLowerLimit, TUpperLimit, Tk,
                            "thermal conductivity")
        return 1.92857e-05 * Tc**2 + 3.12857e-03 * Tc + 1.17743e01  # W/m-K
Пример #3
0
 def cumulativeLinearExpansion(self, Tk=None, Tc=None):
     Tc = getTc(Tc, Tk)
     (TLowerLimit, TUpperLimit
      ) = self.propertyValidTemperature["cumulative linear expansion"][0]
     self.checkTempRange(TLowerLimit, TUpperLimit, Tc,
                         "cumulative linear expansion")
     return (4.22 + 8.33e-4 * Tc - 3.51 * math.exp(-0.00527 * Tc)) * 1.0e-6
Пример #4
0
 def linearExpansionPercent(self, Tk=None, Tc=None):
     """Boron carbide expansion. Very preliminary"""
     Tc = getTc(Tc, Tk)
     self.checkTempRange(25, 500, Tc, "linear expansion percent")
     deltaT = Tc - 25
     dLL = deltaT * 4.5e-6 * 100  # percent
     return dLL
Пример #5
0
    def linearExpansion(self, Tk=None, Tc=None):
        r"""
        From http://www.specialmetals.com/documents/Inconel%20alloy%20600.pdf

        Using the correlation for linearExpansionPercent, the 2nd order polynomial is divided by 100 to convert
        from percent strain to strain, then differentiated with respect to temperature to find the correlation
        for instantaneous linear expansion.

        i.e. for a linearExpansionPercent correlation of a*Tc**2 + b*Tc + c, the linearExpansion correlation is 2*a/100*Tc + b/100

        2*(3.722e-7/100.0)*Tc + 1.303e-3/100.0

        Parameters
        ----------
        Tk : float
            temperature in (K)
        Tc : float
            Temperature in (C)

        Returns
        -------
        linExp in m/m/C

        """
        Tc = getTc(Tc, Tk)
        self.checkTempRange(21.0, 900.0, Tc, "linear expansion")
        linExp = 7.444e-9 * Tc + 1.303e-5
        return linExp
Пример #6
0
    def heatCapacity(self, Tk=None, Tc=None):
        r"""
        Calculates the specific heat capacity of Hastelloy N.
        Sixth order polynomial fit to data from Table 2-20 [SAB]_ (R^2=0.97). 
        
        Parameters
        ----------
        Tk : float
            Temperature in (K)

        Tc : float
            Temperature in (C)

        Returns
        -------
        Hastelloy N specific heat capacity (J/kg-C)

        """
        Tc = getTc(Tc, Tk)
        Tk = getTk(Tc, Tk)
        (TLowerLimit,
         TUpperLimit) = self.propertyValidTemperature["heat capacity"][0]
        self.checkTempRange(TLowerLimit, TUpperLimit, Tk, "heat capacity")
        return (+3.19981e02 + 2.47421e00 * Tc - 2.49306e-02 * Tc**2 +
                1.32517e-04 * Tc**3 - 3.58872e-07 * Tc**4 +
                4.69003e-10 * Tc**5 - 2.32692e-13 * Tc**6)
Пример #7
0
 def density(self, Tc=None, Tk=None):
     Tc = getTc(Tc, Tk)
     (TLowerLimit, TUpperLimit) = self.propertyValidTemperature["density"][0]
     self.checkTempRange(TLowerLimit, TUpperLimit, Tc, "density")
     rho0 = 3.16
     Tc0 = 0.0
     cA = self.cumulativeLinearExpansion(Tc=Tc)
     return rho0 * (1 + cA * (Tc - Tc0)) ** (-3)
Пример #8
0
    def linearExpansionPercent(self, Tk=None, Tc=None):
        """
        This is dL/L0 for graphite.

        From  [INL-EXT-16-38241]_, page 4.
        """
        Tc = units.getTc(Tc, Tk)
        return 100 * (-1.454e-4 + 4.812e-6 * Tc + 1.145e-9 * Tc**2)
Пример #9
0
    def _computeReferenceDensity(self, Tk=None, Tc=None):
        r"""AAA Materials Handbook 45803"""
        Tc = getTc(Tc, Tk)
        Tk = getTk(Tc, Tk)
        self.checkTempRange(293, 1800, Tk, "density")

        if Tk < 1135:
            return -3.29256e-8 * Tk ** 2 - 9.67145e-5 * Tk + 6.60176
        else:
            return -2.61683e-8 * Tk ** 2 - 1.11331e-4 * Tk + 6.63616
Пример #10
0
    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.p.refTempK)
        return 100.0 * self.meanCoefficientThermalExpansion(Tc=Tc) * (Tc - refTempC)
Пример #11
0
    def thermalConductivity(self, Tk=None, Tc=None):
        """
        Thermal conductivity in W/mK.

        Reference: AAA Fuels handbook. ANL.
        """
        Tc = getTc(Tc, Tk)
        Tk = getTk(Tc, Tk)
        self.checkTempRange(298, 2000, Tk, "thermal conductivity")
        return 8.853 + (0.007082 * Tk) + (0.000002533 * Tk ** 2) + (2992.0 / Tk)
Пример #12
0
 def density(self, Tk=None, Tc=None, check_range=True):
     r"""
     Calculates the density of molten Potassium in g/cc
     From Foust, O.J. Sodium-NaK Engineering Handbook Vol. 1. New York: Gordon and Breach, 1972.
     Page 18.
     """
     Tc = getTc(Tc, Tk)
     Tk = getTk(Tc, Tk)
     if check_range:
         self.checkTempRange(63.38, 759, Tk, "density")
     return 0.8415 - 2.172e-4 * Tc - 2.70e-8 * Tc**2 + 4.77e-12 * Tc**3
Пример #13
0
    def linearExpansion(self, Tk=None, Tc=None):
        r"""linear expansion in m/mK

        Reference: Y.S. Touloukian, R.K. Kirby, R.E. Taylor and P.D. Desai, Thermal Expansion,
                   Thermophysical Properties of Matter, Vol. 12, IFI/Plenum, New York-Washington (1975)

        See page 400
        """
        Tc = getTc(Tc, Tk)
        Tk = getTk(Tc, Tk)
        self.checkTempRange(293, 1800, Tk, "linear expansion")
        return interp(Tk, self.linearExpansionTableK, self.linearExpansionTable)
Пример #14
0
    def linearExpansionPercent(self, Tk=None, Tc=None):
        """THE COEFFICIENT OF EXPANSION OF MAGNESIUM OXIDE
        Milo A. Durand

        Journal of Applied Physics 7, 297 (1936); doi: 10.1063/1.174539

        This is based on a 3rd order polynomial fit of the data in Table I.
        """
        # Note: This is in C! Others are mostly in K. Depends on reference.
        Tc = getTc(Tc, Tk)
        Tk = getTk(Tc, Tk)
        self.checkTempRange(273.15, 1273.15, Tk, "deltaL")
        return 1.0489e-5 * Tc + 6.0458e-9 * Tc ** 2 - 2.6875e-12 * Tc ** 3
Пример #15
0
    def polyfitLinearExpansionPercent(self, power=2):
        r"""
        Calculates the coefficients of a polynomial fit for linearExpansionPercent.
        Based on data from http://www.specialmetals.com/documents/Inconel%20alloy%20600.pdf

        Uses mean CTE values to find percent thermal strain values. Fits a polynomial
        to the data set and returns the coefficients.

        Parameters
        ----------
        power : int, optional
            power of the polynomial fit equation

        Returns
        -------
        list of length 'power' containing the polynomial fit coefficients for linearExpansionPercent

        """
        refTempC = getTc(None, Tk=self.p.refTempK)
        Tc = [100.0, 200.0, 300.0, 400.0, 500.0, 600.0, 700.0, 800.0, 900.0]
        alpha_mean = [
            1.33e-05,
            1.38e-05,
            1.42e-05,
            1.45e-05,
            1.49e-05,
            1.53e-05,
            1.58e-05,
            1.61e-05,
            1.64e-05,
        ]

        linExpPercent = [0.0]
        for i, alpha in enumerate(alpha_mean):
            linExpPercentVal = 100.0 * alpha * (Tc[i] - refTempC)
            linExpPercent.append(linExpPercentVal)

        Tc.insert(0, refTempC)

        return numpy.polyfit(
            numpy.array(Tc), numpy.array(linExpPercent), power
        ).tolist()
Пример #16
0
    def polyfitLinearExpansionPercent(self, power=2):
        r"""
        Calculates the coefficients of a polynomial fit for linearExpansionPercent.
        Based on data from http://www.specialmetals.com/documents/Inconel%20alloy%20X-750.pdf

        Uses mean CTE values to find percent thermal strain values. Fits a polynomial
        to the data set and returns the coefficients.

        Parameters
        ----------
        power : int, optional
            power of the polynomial fit equation

        Returns
        -------
        list of length 'power' containing the polynomial fit coefficients for linearExpansionPercent

        """
        refTempC = getTc(None, Tk=self.p.refTempK)
        Tc = [93.3, 204.4, 315.6, 426.7, 537.8, 648.9, 760.0, 871.1, 982.2]
        alpha_mean = [
            1.260e-05,
            1.296e-05,
            1.350e-05,
            1.404e-05,
            1.458e-05,
            1.512e-05,
            1.584e-05,
            1.674e-05,
            1.764e-05,
        ]

        linExpPercent = [0.0]
        for i, alpha in enumerate(alpha_mean):
            linExpPercentVal = 100.0 * alpha * (Tc[i] - refTempC)
            linExpPercent.append(linExpPercentVal)

        Tc.insert(0, refTempC)

        return numpy.polyfit(
            numpy.array(Tc), numpy.array(linExpPercent), power
        ).tolist()
Пример #17
0
    def linearExpansionPercent(self, Tk=None, Tc=None):
        r"""
        Returns percent linear thermal expansion of Alloy 200

        Parameters
        ----------
        Tk : float, optional
            temperature in degrees Kelvin
        Tc : float, optional
            temperature in degrees Celsius

        Returns
        -------
        linearExpansionPercent : float
            percent linear thermal expansion of Alloy 200 (%)
        """
        Tc = getTc(Tc, Tk)
        self.checkTempRange(-200, 1000, Tc, "linear expansion percent")
        linearExpansionPercent = self.calcLinearExpansionPercentMetal(T=Tc)
        return linearExpansionPercent
Пример #18
0
    def linearExpansion(self, Tk=None, Tc=None):
        r"""
        Returns instantaneous coefficient of thermal expansion of Alloy 200

        Parameters
        ----------
        Tk : float, optional
            temperature in degrees Kelvin
        Tc : float, optional
            temperature in degrees Celsius

        Returns
        -------
        linearExpansion : float
            instantaneous coefficient of thermal expansion of Alloy 200 (1/C)
        """
        Tc = getTc(Tc, Tk)
        self.checkTempRange(-200, 1000, Tc, "linear expansion")
        linearExpansion = self.calcLinearExpansionMetal(T=Tc)
        return linearExpansion
Пример #19
0
    def linearExpansionPercent(self, Tk=None, Tc=None):
        r"""linear expansion in dL/L

        Reference: Y.S. Touloukian, R.K. Kirby, R.E. Taylor and P.D. Desai, Thermal Expansion,
                   Thermophysical Properties of Matter, Vol. 12, IFI/Plenum, New York-Washington (1975)

        See page 400
        """
        Tc = getTc(Tc, Tk)
        Tk = getTk(Tc, Tk)
        self.checkTempRange(293, 1800, Tk, "linear expansion percent")

        if Tk >= 293 and Tk < 1137:
            return (
                -0.111 + (2.325e-4 * Tk) + (5.595e-7 * Tk ** 2) - (1.768e-10 * Tk ** 3)
            )
        elif Tk >= 1137:
            return (
                -0.759 + (1.474e-3 * Tk) - (5.140e-7 * Tk ** 2) + (1.559e-10 * Tk ** 3)
            )
Пример #20
0
    def linearExpansionPercent(self, Tk=None, Tc=None):
        r"""
        Returns percent linear expansion of InconelX750.

        Parameters
        ----------
        Tk : float
            temperature in (K)
        Tc : float
            Temperature in (C)

        Returns
        -------
        linExpPercent in %-m/m/C

        """
        Tc = getTc(Tc, Tk)
        self.checkTempRange(21.1, 982.2, Tc, "linear expansion percent")
        linExpPercent = 6.8378e-7 * Tc ** 2 + 1.056e-3 * Tc - 1.3161e-2
        return linExpPercent
Пример #21
0
    def linearExpansionPercent(self, Tk=None, Tc=None):
        r"""
        Returns percent linear expansion of Inconel625.

        Parameters
        ----------
        Tk : float
            temperature in (K)
        Tc : float
            Temperature in (C)

        Returns
        -------
        linExpPercent in %-m/m/C

        """
        Tc = getTc(Tc, Tk)
        self.checkTempRange(21.0, 927.0, Tc, "linear expansion percent")
        linExpPercent = 5.083e-7 * Tc ** 2 + 1.125e-3 * Tc - 1.804e-2
        return linExpPercent
Пример #22
0
    def density(self, Tk=None, Tc=None, check_range=True):
        """
        Returns density of Sodium in g/cc.

        This is from 1.3.1 in [ANL-RE-95-2]_.

        Parameters
        ----------
        Tk : float, optional
            temperature in degrees Kelvin
        Tc : float, optional
            temperature in degrees Celsius
        check_range : Boolean, optional
            Set check_range=False to avoid "zillions" of print-out warnings that occur if
            the input temperature (Tc or Tk) is out of the applicability range of properties.

        Returns
        -------
        density : float
            mass density in g/cc
        """
        Tk = getTk(Tc, Tk)
        Tc = getTc(Tc, Tk)
        if check_range:
            self.checkTempRange(97.85, 2230.55, Tc, "density")

        if check_range and (Tc is not None) and (Tc <= 97.72):
            runLog.warning(
                "Sodium frozen at Tc: {0}".format(Tc),
                label="Sodium frozen at Tc={0}".format(Tc),
                single=True,
            )

        critDens = 219  # critical density
        f = 275.32  #
        g = 511.58
        h = 0.5
        Tcrit = 2503.7  # critical temperature
        return (critDens + f * (1 - (Tc + 273.15) / Tcrit) + g *
                (1 - (Tc + 273.15) / Tcrit)**h
                ) / 1000.0  # convert from kg/m^3 to g/cc.
Пример #23
0
    def thermalConductivity(self, Tk=None, Tc=None):
        r"""
        Returns the thermal conductivity of Inconel600.

        Parameters
        ----------
        Tk : float, optional
            temperature in (K)
        Tc : float, optional
            Temperature in (C)

        Returns
        -------
        thermalCond : float
            thermal conductivity in W/m/C

        """
        Tc = getTc(Tc, Tk)
        self.checkTempRange(20.0, 800.0, Tc, "thermal conductivity")
        thermalCond = 3.4938e-6 * Tc ** 2 + 1.3403e-2 * Tc + 14.572
        return thermalCond  # W/m-C
Пример #24
0
    def heatCapacity(self, Tk=None, Tc=None):
        r"""
        Returns the specific heat capacity of Inconel600.

        Parameters
        ----------
        Tk : float, optional
            Temperature in Kelvin.
        Tc : float, optional
            Temperature in degrees Celsius.

        Returns
        -------
        heatCapacity : float
            heat capacity in J/kg/C

        """
        Tc = getTc(Tc, Tk)
        self.checkTempRange(20, 900, Tc, "heat capacity")
        heatCapacity = 7.4021e-6 * Tc ** 2 + 0.20573 * Tc + 441.3
        return heatCapacity  # J/kg-C
Пример #25
0
    def heatCapacity(self, Tk=None, Tc=None):
        r"""
        Returns the specific heat capacity of Inconel625.

        Parameters
        ----------
        Tk : float, optional
            Temperature in Kelvin.
        Tc : float, optional
            Temperature in degrees Celsius.

        Returns
        -------
        heatCapacity : float
            heat capacity in J/kg/C

        """
        Tc = getTc(Tc, Tk)
        self.checkTempRange(21.0, 1093.0, Tc, "heat capacity")
        heatCapacity = -5.3777e-6 * Tc ** 2 + 0.25 * Tc + 404.26
        return heatCapacity  # J/kg-C
Пример #26
0
    def thermalConductivity(self, Tk=None, Tc=None):
        r"""
        Returns the thermal conductivity of InconelX750.

        Parameters
        ----------
        Tk : float, optional
            Temperature in Kelvin.
        Tc : float, optional
            Temperature in degrees Celsius.

        Returns
        -------
        thermalCond : float
            thermal conductivity in W/m/C

        """
        Tc = getTc(Tc, Tk)
        self.checkTempRange(-156.7, 871.1, Tc, "thermal conductivity")
        thermalCond = 1.4835e-6 * Tc ** 2 + 1.2668e-2 * Tc + 11.632
        return thermalCond  # W/m-C
Пример #27
0
    def thermalConductivity(self, Tk=None, Tc=None):
        r"""
        Returns the thermal conductivity of Inconel625.

        Parameters
        ----------
        Tk : float, optional
            Temperature in Kelvin.
        Tc : float, optional
            Temperature in degrees Celsius.

        Returns
        -------
        thermalCond : float
            thermal conductivity in W/m/C

        """
        Tc = getTc(Tc, Tk)
        self.checkTempRange(21.0, 982.0, Tc, "thermal conductivity")
        thermalCond = 2.7474e-6 * Tc ** 2 + 0.012907 * Tc + 9.62532
        return thermalCond  # W/m-C
Пример #28
0
    def densityTimesHeatCapacity(self, Tk=None, Tc=None):
        r"""
        Return heat capacity * density at a temperature
        Parameters
        ----------
        Tk : float, optional
            Temperature in Kelvin.
        Tc : float, optional
            Temperature in degrees Celsius.

        Returns
        -------
        rhoCP : float
            Calculated value for the HT9 density* heat capacity
            unit (J/m^3-K)

        """
        Tc = getTc(Tc, Tk)

        rhoCp = self.density(Tc=Tc) * 1000.0 * self.heatCapacity(Tc=Tc)

        return rhoCp
Пример #29
0
    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)
        (TLowerLimit,
         TUpperLimit) = self.propertyValidTemperature["thermal expansion"][0]
        self.checkTempRange(TLowerLimit, TUpperLimit, Tc, "thermal expansion")
        return (2.52525e-14 * Tc**3 - 3.77814e-11 * Tc**2 + 2.06360e-08 * Tc +
                1.28071e-05)
Пример #30
0
    def heatCapacity(self, Tk=None, Tc=None):
        r"""
        Returns the specific heat capacity of InconelX750.

        Parameters
        ----------
        Tk : float, optional
            Temperature in Kelvin.
        Tc : float, optional
            Temperature in degrees Celsius.

        Returns
        -------
        heatCapacity : float
            heat capacity in J/kg/C

        """
        Tc = getTc(Tc, Tk)
        self.checkTempRange(-18.0, 1093.0, Tc, "heat capacity")
        heatCapacity = (
            9.2261e-7 * Tc ** 3 - 9.6368e-4 * Tc ** 2 + 4.7778e-1 * Tc + 420.55
        )
        return heatCapacity  # J/kg-C