def Song_Xu(Re, sphericity=1.0, S=1.0):
    """Calculates drag coefficient of a particle using the method in
    [1]_. Developed with data for spheres, cubes, and cylinders. Claims 3.52%
    relative error for 0.001 < Re < 100 based on 336 tests data.

    .. math::
        C_d = \\frac{24}{Re\\phi^{0.65}S^{0.3}}\\left(1 + 0.35Re\\right)^{0.44}
        
    Parameters
    ----------
    Re : float
        Particle Reynolds number of the sphere using the surrounding fluid
        density and viscosity, [-]
    sphericity : float, optional
        Sphericity of the particle
    S : float, optional
        Ratio of equivalent sphere area and the projected area in the particle
        settling direction [-]

    Returns
    -------
    Cd : float
        Drag coefficient of particle [-]

    Notes
    -----
    Notable as its experimental data and analysis is included in their 
    supporting material.

    Examples
    --------
    >>> Song_Xu(30.)
    2.3431335190092444

    References
    ----------
    .. [1] Song, Xianzhi, Zhengming Xu, Gensheng Li, Zhaoyu Pang, and Zhaopeng 
       Zhu. "A New Model for Predicting Drag Coefficient and Settling Velocity 
       of Spherical and Non-Spherical Particle in Newtonian Fluid." Powder 
       Technology 321 (November 2017): 242-50. 
       doi:10.1016/j.powtec.2017.08.017.
    """
    return 24 / (Re * sphericity ** 0.65 * S ** 0.3) * (1 + 0.35 * Re) ** 0.44
