def test_linopt_line(hmba_lattice, refpts): refpts.append(len(hmba_lattice)) l0, q, qp, ld = at.linopt(hmba_lattice, refpts=refpts) lt0, qt, qpt, ltd = at.linopt(hmba_lattice, refpts=refpts, twiss_in=l0) assert_close(ld['beta'], ltd['beta'], rtol=1e-12) assert_close(ld['s_pos'], ltd['s_pos'], rtol=1e-12) assert_close(ld['closed_orbit'], ltd['closed_orbit'], rtol=1e-12) assert_close(ld['alpha'], ltd['alpha'], rtol=1e-12) assert_close(ld['dispersion'], ltd['dispersion'], rtol=1e-7, atol=1e-12)
def test_linopt_line(hmba_lattice, refpts): refpts.append(len(hmba_lattice)) hmba_lattice.radiation_off(cavity_pass='******', quadrupole_pass='******') l0, q, qp, ld = at.linopt(hmba_lattice, refpts=refpts, get_chrom=True) lt0, qt, qpt, ltd = at.linopt(hmba_lattice, refpts=refpts, twiss_in=l0, get_chrom=True) numpy.testing.assert_allclose(ld['beta'], ltd['beta'], rtol=1e-12) numpy.testing.assert_allclose(ld['s_pos'], ltd['s_pos'], rtol=1e-12) numpy.testing.assert_allclose(ld['closed_orbit'], ltd['closed_orbit'], rtol=1e-12) numpy.testing.assert_allclose(ld['alpha'], ltd['alpha'], rtol=1e-12) numpy.testing.assert_allclose(ld['dispersion'], ltd['dispersion'], atol=1e-15) numpy.testing.assert_allclose(q, qt, rtol=1e-12)
def test_linopt6(lattice, dp): """Compare the results of linopt and linopt6 in 4d""" refpts = range(21) lindata0, tune, chrom, lindata = linopt(lattice, dp, refpts, get_chrom=True) ld0, rd, ld = linopt6(lattice, refpts, dp=dp, get_chrom=True) assert_close(tune, rd.tune, rtol=1e-8) assert_close(chrom, rd.chromaticity, rtol=1e-8) assert_close(ld.beta, lindata.beta, rtol=1e-6) assert_close(ld.alpha, lindata.alpha, atol=1e-6, rtol=1e-6) assert_close(ld.dispersion, lindata.dispersion, atol=1e-9)
def calc_lindata(self): self.lattice.radiation_off() return at.linopt(self.lattice, refpts=self.refpts, get_chrom=True, coupled=False)