def METHOD_NAME(self, r):
    """
    Calculates the fluence depending on the source-detector distance
    according to the diffusion approximation for the radiative transfer eq.
    right beneath the surface of a semi-finite homogeneous medium.
    :param r: radial distance between source and detector.
    :return: fluence at a point with source-detector distance r.
    """
    mua = 0.1 * self.mua    # convert mua from cm^-1 to mm^-1
    mus = 0.1 * self.mus    # convert mus from cm^-1 to mm^-1
    spacing = self.settings[Tags.SPACING_MM]
    mus_prime = (1-self.g) * mus
    mu_tot = mus_prime + mua
    mu_eff = np.sqrt(3 * mua * mu_tot)
    D = 1 / (3 * (mua + mus_prime))
    z0 = 1 / mu_tot
    n = 1
    r_d = -1.44 * n ** -2 + 0.71 * n ** -1 + 0.668 + 0.0636 * n
    A = (1 + r_d) / (1 - r_d)
    zb = 2 * A * D
    # distance from point source inside the medium to the detector
    detector_distance = np.zeros([len(r), 3])
    detector_distance[:, 0] = r
    detector_distance[:, 2] = 0.5*spacing
    r1 = np.linalg.norm(np.asarray([0, 0, z0]) - detector_distance, axis=1)
    # distance from image point source above the medium to the detector
    r2 = np.linalg.norm(np.asarray([0, 0, -z0 - 2 * zb]) - detector_distance, axis=1)
    # fluence
    phi = 1 / (4*np.pi*D) * (np.exp(-mu_eff*r1) / r1 - np.exp(-mu_eff*r2) / r2)
    return phi