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, ]))
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)
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)