예제 #1
0
 def test_configure_source1(self):
     """Update source, as well as Ion_Z (and others)
     """
     latfile = self.testfile
     fm = ModelFlame(lat_file=latfile)
     s = generate_source(fm.bmstate)
     s['properties']['IonChargeStates'] = np.asarray([0.1, ])
     fm.configure(econf=s)
     self.assertEqual(fm.bmstate.IonZ, np.asarray([0.1, ]))
예제 #2
0
    def test_generate_source(self):
        latfile = self.testfile
        fm = ModelFlame(latfile)
        ms = fm.bmstate
        sconf = generate_source(ms)
        sconf0 = fm.get_element(type='source')[0]
        compare_source_element(self, sconf, sconf0)

        r0, s0 = fm.run(monitor=range(len(fm.machine)))
        fm.configure(sconf)
        r, s = fm.run(monitor=range(len(fm.machine)))
        compare_mstates(self, s, s0)

        rs0 = [ts for (ti,ts) in r0]
        rs = [ts for (ti,ts) in r]
        for (is1, is2) in zip(rs0, rs):
            compare_mstates(self, is1, is2)
예제 #3
0
    def test_configure(self):
        latfile = self.testfile
        with open(latfile, 'rb') as f:
            m0 = Machine(f)
        s0 = m0.allocState({})
        e_cor_idx = 10
        m0.reconfigure(10, {'theta_x': 0.005})
        r0 = m0.propagate(s0, 0, len(m0), range(len(m0)))

        fm = ModelFlame(latfile)
        e = fm.get_element(index=10)[0]
        e['properties']['theta_x'] = 0.005
        fm.configure(e)
        r, s = fm.run(monitor=range(len(m0)))

        rs0 = [ts for (ti,ts) in r0]
        rs = [ts for (ti,ts) in r]
        for (is1, is2) in zip(rs0, rs):
            compare_mstates(self, is1, is2)