コード例 #1
0
ファイル: base.py プロジェクト: arooney/pymontecarlo
    def convert(self, beam):
        s = super().convert(beam)

        column = NamedSeriesColumn('beam energy', 'E0', 'eV',
                                   Beam.ENERGY_TOLERANCE_eV)
        s[column] = beam.energy_eV

        column = NamedSeriesColumn('beam particle', 'par')
        s[column] = str(beam.particle)

        return s
コード例 #2
0
ファイル: base.py プロジェクト: arooney/pymontecarlo
    def convert(self, sample):
        s = super().convert(sample)

        column = NamedSeriesColumn('sample tilt', 'theta0', 'rad',
                                   Sample.TILT_TOLERANCE_rad)
        s[column] = sample.tilt_rad

        column = NamedSeriesColumn('sample azimuth', 'phi0', 'rad',
                                   Sample.AZIMUTH_TOLERANCE_rad)
        s[column] = sample.azimuth_rad

        return s
コード例 #3
0
    def convert(self, model):
        s = super().convert(model)

        column = NamedSeriesColumn('mass absorption coefficient', 'mac')
        s[column] = model.name

        return s
コード例 #4
0
    def convert(self, model):
        s = super().convert(model)

        column = NamedSeriesColumn('random number generator', 'random')
        s[column] = model.name

        return s
コード例 #5
0
    def convert(self, model):
        s = super().convert(model)

        column = NamedSeriesColumn('ionization potential', 'ioniz. potential')
        s[column] = model.name

        return s
コード例 #6
0
    def convert(self, material):
        s = super().convert(material)

        for z, wf in material.composition.items():
            symbol = pyxray.element_symbol(z)
            name = '{} weight fraction'.format(symbol)
            abbrev = 'wt{}'.format(symbol)
            tolerance = Material.WEIGHT_FRACTION_TOLERANCE
            column = NamedSeriesColumn(name, abbrev, tolerance=tolerance)
            s[column] = wf

        column = NamedSeriesColumn('density', 'rho', 'kg/m^3',
                                   Material.DENSITY_TOLERANCE_kg_per_m3)
        s[column] = material.density_kg_per_m3

        return s
コード例 #7
0
    def convert(self, beam):
        s = super().convert(beam)

        column = NamedSeriesColumn('beam diameter', 'd0', 'm',
                                   CylindricalBeam.DIAMETER_TOLERANCE_m)
        s[column] = beam.diameter_m

        column = NamedSeriesColumn('beam initial x position', 'x0', 'm',
                                   CylindricalBeam.POSITION_TOLERANCE_m)
        s[column] = beam.x0_m

        column = NamedSeriesColumn('beam initial y position', 'y0', 'm',
                                   CylindricalBeam.POSITION_TOLERANCE_m)
        s[column] = beam.y0_m

        return s
コード例 #8
0
    def convert(self, model):
        s = super().convert(model)

        column = NamedSeriesColumn('inelastic cross-section', 'inelastic')
        s[column] = model.name

        return s
コード例 #9
0
    def convert(self, model):
        s = super().convert(model)

        column = NamedSeriesColumn('photon scattering cross-section', 'ph. scatter')
        s[column] = model.name

        return s
コード例 #10
0
ファイル: fluorescence.py プロジェクト: arooney/pymontecarlo
    def convert(self, model):
        s = super().convert(model)

        column = NamedSeriesColumn('fluorescence', 'fluo')
        s[column] = model.name

        return s
コード例 #11
0
ファイル: options.py プロジェクト: arooney/pymontecarlo
    def convert(self, options):
        s = super().convert(options)

        column = NamedSeriesColumn('program', 'prog')
        s[column] = options.program.getidentifier()

        s_beam = self._find_and_convert(options.beam)
        s = s.append(s_beam)

        s_sample = self._find_and_convert(options.sample)
        s = s.append(s_sample)

        for detector in options.detectors:
            s_detector = self._find_and_convert(detector)
            s = s.append(s_detector)

        for analysis in options.analyses:
            s_analysis = self._find_and_convert(analysis)
            s = s.append(s_analysis)

        for limit in options.limits:
            s_limit = self._find_and_convert(limit)
            s = s.append(s_limit)

        for model in options.models:
            s_model = self._find_and_convert(model)
            s = s.append(s_model)

        return s
コード例 #12
0
    def convert(self, model):
        s = super().convert(model)

        column = NamedSeriesColumn('ionization cross-section', 'ioniz. xsection')
        s[column] = model.name

        return s
コード例 #13
0
    def convert(self, model):
        s = super().convert(model)

        column = NamedSeriesColumn('energy loss', 'dE/dS')
        s[column] = model.name

        return s
コード例 #14
0
    def convert(self, model):
        s = super().convert(model)

        column = NamedSeriesColumn('bremsstrahlung emission', 'bremss')
        s[column] = model.name

        return s
コード例 #15
0
    def convert(self, model):
        s = super().convert(model)

        column = NamedSeriesColumn('direction cosine', 'cosine')
        s[column] = model.name

        return s
コード例 #16
0
ファイル: photon.py プロジェクト: arooney/pymontecarlo
    def convert(self, detector):
        s = super().convert(detector)

        name = '{} elevation angle'.format(detector.name)
        abbrev = '{} theta'.format(detector.name)
        column = NamedSeriesColumn(name, abbrev, 'rad',
                                   PhotonDetector.ELEVATION_TOLERANCE_rad)
        s[column] = detector.elevation_rad

        name = '{} azimuth angle'.format(detector.name)
        abbrev = '{} phi'.format(detector.name)
        column = NamedSeriesColumn(name, abbrev, 'rad',
                                   PhotonDetector.AZIMUTH_TOLERANCE_rad)
        s[column] = detector.azimuth_rad

        return s
コード例 #17
0
    def convert(self, limit):
        s = super().convert(limit)

        column = NamedSeriesColumn('number of trajectories', 'N')
        s[column] = limit.number_trajectories

        return s
コード例 #18
0
ファイル: uncertainty.py プロジェクト: arooney/pymontecarlo
    def convert(self, limit):
        s = super().convert(limit)

        column = NamedSeriesColumn(
            'uncertainty value',
            'unc',
            tolerance=UncertaintyLimit.UNCERTAINTY_TOLERANCE)
        s[column] = limit.uncertainty

        return s
コード例 #19
0
ファイル: base.py プロジェクト: arooney/pymontecarlo
    def convert(self, layer):
        s = super().convert(layer)

        s_material = self._find_and_convert(layer.material)
        s = s.append(s_material)

        column = NamedSeriesColumn('thickness', 't', 'm',
                                   Layer.THICKNESS_TOLERANCE_m)
        s[column] = layer.thickness_m

        return s
コード例 #20
0
    def convert(self, sample):
        s = super().convert(sample)

        s_material = self._find_and_convert(sample.material, 'sphere ',
                                            'sphere ')
        s = s.append(s_material)

        column = NamedSeriesColumn('sphere diameter', 'd', 'm',
                                   SphereSample.DIAMETER_TOLERANCE_m)
        s[column] = sample.diameter_m

        return s
コード例 #21
0
    def convert(self, sample):
        s = super().convert(sample)

        s_material = self._find_and_convert(sample.left_material,
                                            'left substrate ', 'left ')
        s = s.append(s_material)

        s_material = self._find_and_convert(sample.right_material,
                                            'right substrate ', 'right ')
        s = s.append(s_material)

        column = NamedSeriesColumn('vertical layers depth', 'zmax', 'm',
                                   VerticalLayerSample.DEPTH_TOLERANCE_m)
        s[column] = sample.depth_m

        return s
コード例 #22
0
ファイル: inclusion.py プロジェクト: arooney/pymontecarlo
    def convert(self, sample):
        s = super().convert(sample)

        s_material = self._find_and_convert(sample.substrate_material,
                                            'substrate ', 'subs ')
        s = s.append(s_material)

        s_material = self._find_and_convert(sample.inclusion_material,
                                            'inclusion ', 'incl ')
        s = s.append(s_material)

        column = NamedSeriesColumn(
            'inclusion diameter', 'd', 'm',
            InclusionSample.INCLUSION_DIAMETER_TOLERANCE_m)
        s[column] = sample.inclusion_diameter_m

        return s
コード例 #23
0
class TestNamedSeriesColumn(TestCase):
    def setUp(self):
        super().setUp()

        self.column0 = NamedSeriesColumn('a', 'b')
        self.column1 = NamedSeriesColumn('a', 'b', 'm', 0.1)

    def testcompare(self):
        self.assertTrue(self.column0.compare('foo', 'foo'))
        self.assertFalse(self.column0.compare('foo', 'bar'))

        self.assertTrue(self.column1.compare(0.0, 0.05))
        self.assertFalse(self.column1.compare(0.0, 0.2))

    def testformat_value(self):
        self.assertEqual('foo', self.column0.format_value('foo'))
        self.assertEqual('{:g}'.format(1.0), self.column0.format_value(1.0))

        self.assertEqual('{:.1f}'.format(2.0), self.column1.format_value(2.0))
        self.assertEqual('{:.1f}'.format(0.2), self.column1.format_value(0.2))
コード例 #24
0
    def setUp(self):
        super().setUp()

        parent = NamedSeriesColumn('a', 'b', 'm', 0.1)
        self.column = ErrorSeriesColumn(parent)
コード例 #25
0
    def setUp(self):
        super().setUp()

        self.column0 = NamedSeriesColumn('a', 'b')
        self.column1 = NamedSeriesColumn('a', 'b', 'm', 0.1)