def runSimulation(): # defining materials mAmbience = ba.HomogeneousMaterial("Air", 0.0, 0.0) mSubstrate = ba.HomogeneousMaterial("Substrate", 6e-6, 2e-8) magnetic_field = ba.kvector_t(0, 0, 0) magParticle = ba.HomogeneousMaterial("magParticle", 6e-4, 2e-8, magnetic_field) # collection of particles cylinder_ff = ba.FormFactorCylinder(5 * nanometer, 5 * nanometer) cylinder = ba.Particle(magParticle, cylinder_ff) particle_layout = ba.ParticleLayout() particle_layout.addParticle(cylinder, 1.0) interference = ba.InterferenceFunctionNone() particle_layout.setInterferenceFunction(interference) # air layer with particles and substrate form multi layer air_layer = ba.Layer(mAmbience) air_layer.addLayout(particle_layout) substrate_layer = ba.Layer(mSubstrate, 0) multi_layer = ba.MultiLayer() multi_layer.addLayer(air_layer) multi_layer.addLayer(substrate_layer) # build and run experiment simulation = ba.GISASSimulation() simulation.setDetectorParameters(100, 0 * degree, 2.0 * degree, 100, 0.0 * degree, 2.0 * degree) simulation.setBeamParameters(1.0 * angstrom, 0.2 * degree, 0.0 * degree) simulation.setSample(multi_layer) simulation.runSimulation() ## intensity data return simulation.getIntensityData()
def test_access_simulation_intensity(self): simulation = ba.GISASSimulation() simulation.setDetectorParameters(10, -1.0, 1.0, 100, 0.0, 2.0) data = simulation.getIntensityData() self.assertEqual(1000, data.getTotalNumberOfBins()) self.assertEqual(2, data.getRank()) self.assertEqual(0, data.integral()) self.assertEqual(10, data.getXaxis().size())
def get_simulation_BasicGISAS(sample=None): simulation = ba.GISASSimulation() simulation.setDetectorParameters(100, 0.0 * deg, 2.0 * deg, 100, 0.0 * deg, 2.0 * deg) simulation.setBeamParameters(1.0 * angstrom, 0.2 * deg, 0.0 * deg) if sample: simulation.setSample(sample) return simulation