Rough interfaces modify the Fresnel transmission and reflection coefficients, and cause diffuse scattering.
The rough interface constructor has the signatures
roughness = ba.Roughness(interface_model, transient)
roughness = ba.Roughness(interface_model, transient, crosscorrelation)
For the three arguments, see the following three pages:
Each layer (except for the semi-infinite top layer) supports an optional top roughness property that can be set as follows:
autocorr = ba.SelfAffineFractalModel(vertical_rms, hurst, horizontal_correlation_length)
transient = ba.TanhTransient()
crosscorrelation = ba.CommonDepthCrosscorrelation(vertical_correlation_length)
roughness = ba.Roughness(autocorr, transient, crosscorrelation)
layer = ba.Layer(material, thickness, roughness) # roughness refers to top interface
For updating from BornAgain <= 21, see the BornAgain 22 release letter.