## GISAS without reflection

This example shows scattering from a monolayer that contains a dilute random assembly of monodisperse cylindrical disks.

This is the same system as in our basic GISAS example except that there is no substrate. In consequence, there are no reflections, and therefore the DWBA boils down to the ordinary Born approximation.

  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  #!/usr/bin/env python3 """ Cylinder form factor in Born approximation """ import bornagain as ba from bornagain import ba_plot as bp, deg, nm def get_sample(): """ Returns a sample with cylinders in a homogeneous environment ("Vacuum"), implying a simulation in plain Born approximation. """ # Define materials material_Particle = ba.RefractiveMaterial("Particle", 0.0006, 2e-08) material_Vacuum = ba.RefractiveMaterial("Vacuum", 0, 0) # Define form factors ff = ba.Cylinder(5*nm, 5*nm) # Define particles particle = ba.Particle(material_Particle, ff) # Define particle layouts layout = ba.ParticleLayout() layout.addParticle(particle) layout.setTotalParticleSurfaceDensity(0.01) # Define layers layer = ba.Layer(material_Vacuum) layer.addLayout(layout) # Define sample sample = ba.MultiLayer() sample.addLayer(layer) return sample def get_simulation(sample): beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0)) n = bp.simargs['n'] detector = ba.SphericalDetector(n, -2*deg, 2*deg, n, 0, 3*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/CylindersInBA.py