The DDA calculation depends on the *ratio* of the wavelength in the medium to the physical size of the target. In other words, what matters is the ratio of the refractive index in the target to the refractive index in the medium, and the ratio of the physical size of the target to the wavelength in the medium.

Let lambda_true = true wavelength (in vacuo) at the frequency of interest,

m_true = true complex refractive index of the target material at that frequency,

m_mediumtrue = true (real) refractive index of the medium at that frequency,

aeff_true = true aeff of the target in physical units.

The "true" problem is equivalent to scattering in vacuo by a target of size

aeff=aeff_true,

wavelength lambda=lambda_true/m_mediumtrue,

target material refractive index m=m_true/m_mediumtrue

So if you set ddscat.par to have

m_medium=1

aeff=aeff_true

wavelength=lambda_true/m_mediumtrue

and change your dielectric function table so that it is a table of

lambda_true/m_mediumtrue and m_true/m_mediumtrue

DDSCAT will solve a problem equivalent to the problem of interest.

The dimensionless Q values returned by DDSCAT will be

Q= (physical cross sections for absorption or scattering)/(pi*aeff_true^2)

You should confirm this for yourself with some simple test calculation (e.g., for a sphere in water) where you have an independent method for getting the exact result.