示例#1
0
class TestParameter(TestCase):

    def setUp(self):
        TestCase.setUp(self)

        getter = lambda geometry: geometry.inclusion_diameter_m
        setter = lambda geometry, val: setattr(geometry, 'inclusion_diameter_m', val)
        self.param = Parameter(getter, setter, 200e-9, 150e-9, 300e-9)

    def tearDown(self):
        TestCase.tearDown(self)

    def testgetter(self):
        geometry = Inclusion(pure(29), pure(30), 250e-9)
        self.assertAlmostEqual(250e-9, self.param.getter(geometry), 13)

    def testsetter(self):
        geometry = Inclusion(pure(29), pure(30), 250e-9)
        self.param.setter(geometry, 160e-9)
        self.assertAlmostEqual(160e-9, geometry.inclusion_diameter_m, 13)

    def testinitial_value(self):
        self.assertAlmostEqual(200e-9, self.param.initial_value, 13)

    def testconstraints(self):
        constraints = self.param.constraints
        self.assertAlmostEqual(150e-9, constraints[0], 13)
        self.assertAlmostEqual(300e-9, constraints[1], 13)
示例#2
0
    def setUp(self):
        TestCase.setUp(self)

        geometry = MultiLayers(pure(29))
        geometry.add_layer(Material("AuPd", {79: 0.5, 46: 0.5}), 100e-9)

        baseops = Options()
        baseops.detectors['xray'] = PhotonIntensityDetector((0, 1), (0, 3))
        meas = Measurement(baseops)
        meas.add_kratio(Ka(29), 0.2470, 0.004)

        getter = lambda geometry: geometry.layers[0].thickness_m
        setter = lambda geometry, val: setattr(geometry.layers[0], 'thickness_m', val)
        param = Parameter(getter, setter, 100e-9, 10e-9, 500e-9)

        self.exp = Experiment(geometry, [meas], [param])
示例#3
0
    def setUp(self):
        TestCase.setUp(self)

        getter = lambda geometry: geometry.inclusion_diameter_m
        setter = lambda geometry, val: setattr(geometry, 'inclusion_diameter_m', val)
        self.param = Parameter(getter, setter, 200e-9, 150e-9, 300e-9)
示例#4
0
baseops.beam.diameter_m = 50e-9
baseops.detectors['xray'] = PhotonIntensityDetector.annular(
    radians(40.0), radians(5.0))
baseops.limits.add(ShowersLimit(1000))

meas1 = Measurement(baseops)
meas1.add_kratio(Ka(6),
                 0.5,
                 standard=Material('Fe3C', composition_from_formula('Fe3C')))


def setter1(geometry, val):
    geometry.inclusion_material.composition = {26: val, 6: '?'}


param1 = Parameter(setter1, 0.95, 0.0, 1.0)


def setter2(geometry, val):
    geometry.inclusion_diameter_m = val


param2 = Parameter(setter2, 200e-9, 150e-9, 250e-9)

inclusion_material = Material('CrC', {26: 0.95, 6: 0.05})
geometry = Inclusion(pure(26), inclusion_material, 200e-9)
exp = Experiment(geometry, [meas1], [param1, param2])

runner = LocalRunner(NISTMonte, '/tmp', nbprocesses=1)

optimizer = LevenbergMarquardtOptimzier()