This is an old thread, but I thought I could help clear some things up. Austin Fox's derivation is incorrect because it assumes that the maximum occurs at x = center, which is only true if q is infinite. The actual extrema for the Breit-Wigner-Fano (BWF) function occur at:
x_1 = center + sigma / (2 * q), giving BWF(x=x_1) = amplitude * (1 + q**2)
x_2 = center – q * sigma / 2, giving BWF(x=x_2) = 0.
Using amplitude * (1 + q**2) as the maximum, then: fwhm = abs(sigma * (1 + q**2) / (-1 + q**2)),
where the absolute value is needed because x_fwhm_1 > x_fwhm_2 for q > 1 and x_fwhm_1 < x_fwhm_2 for q < 1. For q = 1, there is only a single x value at which BWF = max/2, because the second value is asymptotically approached as abs(x) goes to infinity, making fwhm undefined for q = 1.
Rather than having lmfit add back in the height and fwhm calculations, I would recommend looking at how the BWF function is defined/used within your field, so that your fit results can correctly be communicated to others. For example, in Raman spectroscopy, the BWF function is often defined as:
BWF_alternate = H * (1 + (x - center) / (q * width))**2 / (1 + ((x - center) / (width))**2)
where H = amplitude * q**2 and width = sigma / 2 compared to the lmfit definition. In this definition of the BWF function, the H variable is the height of the upward-facing peak compared to the BWF’s baseline (so the max of BWF_alternate = H * (1 + 1 / q**2), and the baseline = H / q**2 = amplitude), or in other words, as the max height of the function when q is infinite.
The Origin software also uses the BWF_alternate definition, and further defines the fwhm using the maximum of the BWF function, so that ultimately their calculated fwhm = abs(2 * width * (1 + q**2) / (-1 + q**2)), which is the same result as the fwhm given above with width = sigma / 2. However, for abs(q) <= 1, Origin’s output differs from that calculation by an order of magnitude, so I’m not sure what they’re doing for that case.
So, in summary, height could be defined as the maximum of the function or as the height of the upward facing peak, while the fwhm is usually consistently calculated using the x-values where y = max/2, but causes issues for abs(q) <= 1. Due to these ambiguities and issues, I think it was correct for them to not be included for the BWF model in lmfit since users can do any further calculations when appropriate.