示例#1
0
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()
示例#2
0
 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())
示例#3
0
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