def bartz(p_c, c_star, D_t, D, c_p, mu_e, Pr, sigma=1.):
    """Bartz equation for estimation of the convection coefficient.

    The Bartz equation is an empirical estimate of the convection coefficient
    :math:`h_g` of the exhaust flow in a rocket nozzle. The derivation of the
    Bartz equation starts from the modified Reynolds analogy, and uses an
    empirical correlation for turbulent pipe flow to estimate the friction
    factor.

    References:
      [1] Huzel and Huang Equation 4-13.
      [2] M. Martinez-Sanchez, "Convective Heat Transfer: Reynolds Analogy,"
        MIT 16.512 Lecture 7. https://ocw.mit.edu/courses/aeronautics-and-astronautics/16-512-rocket-propulsion-fall-2005/lecture-notes/lecture_7.pdf

    Arguments:
        p_c (scalar): Chamber pressure [units: pascal].
        c_star (scalar): Characteristic velocity [units: meter second**-1].
        D_t (scalar): Throat diameter [units: meter].
        D (scalar): Nozzle diameter where convection is to be computed [units: meter].
        c_p (scalar): Heat capacity at constant pressure of the fluid,
            at stagnation conditions [units: joule kilogram**-1 kelvin**-1].
        mu_e (scalar): dynamic viscosity of the fluid,
            at stagnation conditions [units: pascal second].
        Pr (scalar): Prandtl number of the fluid, at stagnation
            conditions [units: dimensionless].
        sigma (scalar): Correction factor [units: dimensionless].

    Returns:
        scalar: The convection coefficient :math:`h_g` [units: watt meter**-2 kelvin**-1].
    """
    # Note: this neglects the factor (D_T/R)**0.1 present in Huzel's version of the
    # equation, but not present in Sanchez
    # Note: this includes a factor of Pr**0.6, which is present in Huzel but
    # assumed to be unity in Sanchez.
    return (0.026 / D_t**0.2
            * (p_c / c_star)**0.8
            * (D_t / D)**1.8
            * c_p * mu_e**0.2 / Pr**0.6
            * sigma)