### 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 0.15 nm.
• The incident angles are $\alpha_i = 0.15 ^{\circ}$ and $\varphi_i = 0^{\circ}$.
  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 ba_plot as bp, deg, nm, R3 def get_sample(): """ Returns a sample with spherical particles in a layer between vacuum and substrate. """ # Define materials material_IntermLayer = ba.RefractiveMaterial("IntermLayer", 3.45e-06, 5.24e-09) material_Particle = ba.RefractiveMaterial("Particle", 0, 0) material_Substrate = ba.RefractiveMaterial("Substrate", 7.43e-06, 1.72e-07) material_Vacuum = ba.RefractiveMaterial("Vacuum", 0, 0) # Define form factors ff = ba.Sphere(10.2*nm) # Define particles particle = ba.Particle(material_Particle, ff) particle_position = R3(0, 0, -25.2*nm) particle.setParticlePosition(particle_position) # Define particle layouts layout = ba.ParticleLayout() layout.addParticle(particle) layout.setTotalParticleSurfaceDensity(0.01) # Define layers layer_1 = ba.Layer(material_Vacuum) layer_2 = ba.Layer(material_IntermLayer, 30*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.15*nm, ba.Direction(0.15*deg, 0)) detector = ba.SphericalDetector(bp.simargs['n'], 2*deg, 0, 1*deg) simulation = ba.ScatteringSimulation(beam, sample, detector) return simulation if __name__ == '__main__': bp.parse_args(sim_n=200) sample = get_sample() simulation = get_simulation(sample) result = simulation.simulate() bp.plot_simulation_result(result) 
Examples/scatter2d/BuriedParticles.py