Skip to content

Emittance Monitor fails with zero emittance distribution #169

@JPTS2

Description

@JPTS2

To test emittance evolution in a lepton collider with quantum radiation, blow up is being observed starting with bunches either: (1) starting on (0, 0, 0, 0, 0, 0) or (2) on (tw.x[0], tw.px[0], tw.y[0], tw.py[0], tw.zeta[0], tw.delta[0])

In both of these cases, the beam should have zero emittance but fails in two different ways:

Issue (1):

import xtrack as xt
import xcoll as xc
import numpy as np

particles = xt.Particles(
    x               = np.zeros(int(1E5)),
    px              = np.zeros(int(1E5)),
    y               = np.zeros(int(1E5)),
    py              = np.zeros(int(1E5)),
    zeta            = np.zeros(int(1E5)),
    delta           = np.zeros(int(1E5)))

moni = xc.EmittanceMonitor()

moni.track(particles)
gemitt_I    = moni.gemitt_I

Returns:

UFuncTypeError: Cannot cast ufunc 'multiply' output from dtype('complex128') to dtype('float64') with casting rule 'same_kind'

Issue (2):

import xtrack as xt
import xcoll as xc
import numpy as np

particles = xt.Particles(
    x               = np.full(int(1E5), 1E-5),
    px              = np.full(int(1E5), -2E-5),
    y               = np.full(int(1E5), 4E-5),
    py              = np.full(int(1E5), 5E-5),
    zeta            = np.full(int(1E5), 1E-3),
    delta           = np.full(int(1E5), -2E-4))

moni = xc.EmittanceMonitor()

moni.track(particles)
gemitt_I    = moni.gemitt_I

Returns:

ValueError: Invalid n2

Both of these can be fixed, as in both cases the covariance matrix (or in the monitor covariance matrix dot S) will be numerically all zero.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions