SurfaceTopography.Models package
Submodules
SurfaceTopography.Models.SelfAffine module
- class SurfaceTopography.Models.SelfAffine.AbstractStatisticalRoughness
- Bases: - object- power_spectrum()
 - power_spectrum_profile()
 
- class SurfaceTopography.Models.SelfAffine.AbstractIsotropicRoughness
- Bases: - AbstractStatisticalRoughness- power_spectrum_isotropic()
 - variance_derivatice()
 
- class SurfaceTopography.Models.SelfAffine.SelfAffine(cr, rolloff_wavelength, hurst_exponent, longcut_wavelength=inf, shortcut_wavelength=0, unit=None)
- Bases: - AbstractIsotropicRoughness- __init__(cr, rolloff_wavelength, hurst_exponent, longcut_wavelength=inf, shortcut_wavelength=0, unit=None)
 - power_spectrum_isotropic(q)
 - power_spectrum_profile(q)
 - rms_height(shortcut_wavelength=None, longcut_wavelength=None)
- See 10.1088/2051-672X/aa51f8 equations 4, 10 and 11 \[h^2_\mathrm{rms} = \frac{C_r q_r^2}{4 \pi} \left[ 1 + \frac{1}{H} - \left( \frac{q_l}{q_r}\right)^2 - \left( \frac{q_s}{q_r}\right)^{-2H}\right]\]- Note that \(C_r q_r^2\) can be interchanged with \(C_0 q_r^{-2H}\) - Parameters:
- shortcut_wavelength (float or array, optional) – makes the rms-height scale dependent by overriding the shortcut 
- longcut_wavelength – makes the rms-height scale dependent by overriding the longcut 
 
- Return type:
- float or array 
 
 - variance_derivative(order, shortcut_wavelength=None, longcut_wavelength=None)
- Variance of a derivative of arbitrary (fractional) order - The contribution for an isotropic flat PSD with amplite \(C_r\) between the wavevectors \([q_L, q_s]\) is \[\left[h^{(\alpha)}_\mathrm{rms}\right]^2 = \frac{C_r}{2 \pi} \left[ q_s^{2 + 2\alpha } - q_L ^{2 + 2\alpha} \right] / (2 + 2 \alpha)\]- The contribution for a power-law PSD between \([q_L, q_s]\) - For \(\alpha \neq H\) \[\left[h^{(\alpha)}_\mathrm{rms}\right]^2 = \frac{C_0}{2 \pi} \left[ q_s^{ 2\alpha - 2H} - q_L ^{2\alpha - 2H} \right] / (2\alpha - 2 H)\]- and for \(\alpha = H\) \[\left[h^{(\alpha)}_\mathrm{rms}\right]^2 = \frac{C_0}{2 \pi} \ln\left( q_s/ q_L \right)\]- Note that \(C_r q_r^2\) can be interchanged with \(C_0 q_r^{-2H}\) - Parameters:
- order (float) – order of the derivative 
- shortcut_wavelength (float or array, optional) – makes the result scale dependent by overriding the shortcut 
- longcut_wavelength – makes the result scale dependent by overriding the longcut 
 
- Return type:
- float or array 
 
 - generate_roughness(pixel_size, n_pixels, seed, shortcut_wavelength=None, longcut_wavelength=None, **kwargs)
- Generates a discrete random realisation of Gaussian noise with variances of the waves given by the PSD - The shortcut_wavelength and longcut_wavelength parameters allow to overwrite the values paramtetrized in the model, since a discrete realization is often shorter. - See fourier synthesis for more arguments