def Nu_Nusselt_Rayleigh_Probert(Pr, Gr, buoyancy=True):
    """Calculates the Nusselt number for natural convection between two 
    theoretical flat plates. The height between the plates is infinite, and
    one of the other dimensions of the plates is much larger than the other.
    
    Two sets of equations are used.
    
    For the laminar regime :math:`1708 < \\text{Ra} \\le 2.2\\times 10^{4}`:
        
    .. math::
        \\text{Nu} = 0.208(\\text{Ra})^{0.25}
    
    For the turbulent regime :math:`2.2\\times 10^{4} < \\text{Ra}`:
        
    .. math::
        \\text{Nu} = 0.092(\\text{Ra})^{1/3}

    Parameters
    ----------
    Pr : float
        Prandtl number with respect to fluid properties [-]
    Gr : float
        Grashof number with respect to fluid properties and plate - plate
        temperature difference [-]
    buoyancy : bool, optional
        Whether or not the plate's free convection is buoyancy assisted (hot 
        plate) or not, [-]

    Returns
    -------
    Nu : float
        Nusselt number with respect to height between the two plates, [-]

    Notes
    -----
    This model is recommended in [2]_ as a rough model.
    
    For :math:`Ra < 1708`, `Nu` = 1; for cases not assited by `buoyancy`,
    `Nu` is also 1.

    Examples
    --------
    >>> Nu_Nusselt_Rayleigh_Probert(5.54, 3.21e8, buoyancy=True)
    111.46181048289132
    
    References
    ----------
    .. [1] Probert, SD, RG Brooks, and M Dixon. "Heat Transfer across
       Rectangular Cavities." CHEMICAL AND PROCESS ENGINEERING, 1970, 35.
    .. [2] Gesellschaft, V. D. I., ed. VDI Heat Atlas. 2nd ed. 2010 edition.
       Berlin ; New York: Springer, 2010.
    """
    if not buoyancy:
        return 1.0
    Rac = 1708
    Ra = Gr * Pr
    if Ra < Rac:
        return 1.0
    elif Ra < 22000.0:
        return 0.208 * Ra ** 0.25
    else:
        return 0.092 * Ra ** (1.0 / 3.0)
