Parameter distributions

Parameter distributions sample scalar model parameters. For spatial disorder and finite correlation lengths in particle structures, see correlation profiles.

Constructors

A distribution is constructed by one of the following:

distr = ba.DistributionGate(start, stop, n_samples=25)
distr = ba.DistributionCosine(mean, hwhm, n_samples=25)
distr = ba.DistributionGaussian(mean, std_dev, n_samples=25,
                                rel_sampling_width=2)
distr = ba.DistributionLorentz(mean, hwhm, n_samples=25,
                               rel_sampling_width=2)
distr = ba.DistributionLogNormal(median, scale_param, n_samples=25,
                                 rel_sampling_width=2)
Usage

Parameter distributions are either supplied to beam divergence or detector resolution classes as described there, or they are used programmatically.

In programmatic usage, the function call

parsamples = distr.distributionSamples()

returns a vector of parameter samples. Each ParameterSample has a value and a weight. A particle Mixture can represent the resulting incoherent sum of components.

For instance, in the PolydisperseCylinders example, the radius samples become particle variants in a dilute mixture:

distr = ba.DistributionGaussian(10*nm, 1*nm)
mixture = ba.Mixture()
for parsample in distr.distributionSamples():
    ff = ba.Cylinder(parsample.value, 5*nm)
    particle = ba.Particle(particle_mat, ff)
    mixture.addParticle(particle, parsample.weight)

layer.deposit2D(ba.Dilute2D(0.001/nm2, mixture))

Mixture normalizes the sample weights. The Dilute2D density is therefore the total areal density across all radii.

Examples