Buried particles

Scattering from a sample containing spherical embedded particles.

  • From top to bottom, the sample is composed of the air layer, an intermediate material layer, and the substrate.
  • The particles are spheres with radius $10.2$ nm.
  • They are placed vertically in the middle of the intermediate layer. The depth to place the spheres is measured between the top of the layer and the bottom of the particles.
  • There is no interference between the scattered waves. The horizontal distribution of the particles is diluted.
  • The wavelength is equal to $1.5$ $\unicode{x212B}$.
  • The incident angles are $\alpha_i = 0.15 ^{\circ}$ and $\varphi_i = 0^{\circ}$.

Real-space model

Intensity image

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/usr/bin/env python3
"""
Spherical particles embedded in the middle of the layer on top of substrate.
"""
import bornagain as ba
from bornagain import deg, nm, kvector_t


def get_sample():
    """
    Returns a sample with spherical particles in a layer
    between vacuum and substrate.
    """

    # Define materials
    material_IntermLayer = ba.HomogeneousMaterial("IntermLayer", 3.45e-06,
                                                  5.24e-09)
    material_Particle = ba.HomogeneousMaterial("Particle", 0.0, 0.0)
    material_Substrate = ba.HomogeneousMaterial("Substrate", 7.43e-06, 1.72e-07)
    material_Vacuum = ba.HomogeneousMaterial("Vacuum", 0.0, 0.0)

    # Define form factors
    ff = ba.FormFactorFullSphere(10.2*nm)

    # Define particles
    particle = ba.Particle(material_Particle, ff)
    particle_position = kvector_t(0.0*nm, 0.0*nm, -25.2*nm)
    particle.setPosition(particle_position)

    # Define particle layouts
    layout = ba.ParticleLayout()
    layout.addParticle(particle, 1.0)
    layout.setWeight(1)
    layout.setTotalParticleSurfaceDensity(0.01)

    # Define layers
    layer_1 = ba.Layer(material_Vacuum)
    layer_2 = ba.Layer(material_IntermLayer, 30.0*nm)
    layer_2.addLayout(layout)
    layer_3 = ba.Layer(material_Substrate)

    # Define sample
    sample = ba.MultiLayer()
    sample.addLayer(layer_1)
    sample.addLayer(layer_2)
    sample.addLayer(layer_3)

    return sample


def get_simulation(sample):
    beam = ba.Beam(1.0, 0.15*nm, ba.Direction(0.15*deg, 0*deg))
    detector = ba.SphericalDetector(200, 2*deg, 0*deg, 1*deg)
    simulation = ba.GISASSimulation(beam, sample, detector)
    return simulation


if __name__ == '__main__':
    import ba_plot
    sample = get_sample()
    simulation = get_simulation(sample)
    ba_plot.run_and_plot(simulation)
BuriedParticles.py