示例#1
0
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)
示例#2
0
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)
示例#3
0
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)
示例#4
0
 def calc_lindata(self):
     self.lattice.radiation_off()
     return at.linopt(self.lattice,
                      refpts=self.refpts,
                      get_chrom=True,
                      coupled=False)