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])
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() reconstructor = Reconstructor(runner, optimizer, exp) print reconstructor.reconstruct()