Package xal.model

Interface IProbe

All Known Implementing Classes:
BunchProbe, DiagnosticProbe, ElsProbe, EnsembleProbe, EnvelopeProbe, ParticleProbe, Probe, SynchronousProbe, TransferMapProbe, TwissProbe

public interface IProbe
The root interface of physical objects and mathematical abstractions used in UAL applications (for example: Bunch, Particle, Twiss, Taylor map, and others). According to the Element-Algorithm-Probe analysis pattern, the Probe objects interact with accelerator structures, Element's. These interactions are implemented as the separate classes (Tracker, Mapper, etc.) that support the Algorithm interface.
Version:
$Id: IProbe.java 2 2006-08-17 12:20:30 +0000 (Thursday, 17 8 2006) t6p $
Author:
Nikolay Malitsky, Christopher K. Allen
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final double
    Speed of light in vacuum (meters/second)
    static final double
    Electric permittivity of free space (Farad/meter)
    static final double
    The unit electric charge (Farads)
  • Method Summary

    Modifier and Type
    Method
    Description
    Return the dynamics algorithm associated with this probe.
    Return the IArchive interface for archiving this algorithm object.
    double
    Returns the probe velocity normalized to the speed of light.
    Returns the current lattice element of the probe.
    Get the type identifier string of the modeling element where this probe currently exists.
    Returns the identifier of the hardware being modeling by the current element.
    double
    Returns the relativistic parameter corresponding to the probe velocity.
    double
    Return the kinetic energy of the probe.
    double
    Returns the longitudinal phase of this probe with respect to the RF phase.
    double
    Returns the current beam-line position of the probe
    double
    Returns the charge of probe's particle species
    returns the species name
    double
    Returns the rest energy of particle species
    double
    Return the time elapsed since the probe began propagation.
    Trajectory<? extends ProbeState<?>>
    Returns the state history of the probe.
    void
    Initialize the probe for propagation.
    lookupLastStateFor(String strElemTypeId)
    Looks up the last probe state created by a modeling element of the given identifier.
    void
    Deprecated.
    This has a zero implementation in Probe but never does anything.
    void
    Set the current lattice element.
    void
    Sets the type identifier string of the modeling element where this probe currently exists.
    void
    Sets the string identifier of the hardware node modeled by the current element.
    void
    setKineticEnergy(double dblW)
    Set the current kinetic energy of the probe.
    void
    setLongitudinalPhase(double dblPhsLng)
    Set the longitudinal phase of this probe with respect to the RF phase.
    void
    setPosition(double dblPos)
    Set the current position of the probe along the beamline.
    void
    setSpeciesCharge(double dblQ)
    Set the species charge.
    void
    Set the species rest energy.
    void
    setTime(double dblTime)
    Set the current time since the probe began propagating
    void
    Update all data and connections.
  • Field Details

    • LIGHT_SPEED

      static final double LIGHT_SPEED
      Speed of light in vacuum (meters/second)
      See Also:
    • UNIT_CHARGE

      static final double UNIT_CHARGE
      The unit electric charge (Farads)
      See Also:
    • PERMITTIVITY

      static final double PERMITTIVITY
      Electric permittivity of free space (Farad/meter)
      See Also:
  • Method Details

    • getTrajectory

      Trajectory<? extends ProbeState<?>> getTrajectory()
      Returns the state history of the probe. The returned object is essentially the simulation results for the online model. The Trajectory object contains a complete collection of all the probe state object generated during the simulation.
      Returns:
      the simulation results for the probe
      Since:
      Nov 24, 2014
    • getSpeciesName

      String getSpeciesName()
      returns the species name
      Returns:
      species name
    • getSpeciesCharge

      double getSpeciesCharge()
      Returns the charge of probe's particle species
      Returns:
      particle species charge in units of positive electron charge
    • getSpeciesRestEnergy

      double getSpeciesRestEnergy()
      Returns the rest energy of particle species
      Returns:
      particle species rest energy in electron volts
    • getCurrentElement

      String getCurrentElement()
      Returns the current lattice element of the probe.
      Returns:
      String id of current lattice element
    • getCurrentElementTypeId

      String getCurrentElementTypeId()
      Get the type identifier string of the modeling element where this probe currently exists. Note that all modeling elements have a static string identifier defined in their class definition.
      Parameters:
      strTypeId - static identifier string of the modeling element class
      Since:
      Dec 16, 2014 by Christopher K. Allen
    • getCurrentHardwareId

      String getCurrentHardwareId()
      Returns the identifier of the hardware being modeling by the current element.
      Returns:
      hardware ID of the current modeling element
      Since:
      Sep 3, 2014
    • getPosition

      double getPosition()
      Returns the current beam-line position of the probe
      Returns:
      probe position (meters)
    • getTime

      double getTime()
      Return the time elapsed since the probe began propagation.
      Returns:
      elapsed time in seconds
    • getLongitinalPhase

      double getLongitinalPhase()

      Returns the longitudinal phase of this probe with respect to the RF phase. Typically used to account for phase delay/advance in cavities incurred due to finite propagation time. For example

          φ ≜ φ0 - Δφ

      where Δφ = 2πfΔt is the phase delay due to elapsed time Δt, f is the cavity resonant frequency, and φ0 is the operating phase of the cavity (w.r.t. the synchronous particle).

      Returns:
      the probe phase φ with respect to the machine RF frequency
      Since:
      Nov 23, 2014
    • getKineticEnergy

      double getKineticEnergy()
      Return the kinetic energy of the probe. Depending upon the probe type, this could be the actual kinetic energy of a single constituent particle, the average kinetic energy of an ensemble, the design energy, etc.
      Returns:
      probe kinetic energy (electron-volts)
    • getBeta

      double getBeta()
      Returns the probe velocity normalized to the speed of light.
      Returns:
      normalized probe velocity v/c (unitless
    • getGamma

      double getGamma()
      Returns the relativistic parameter corresponding to the probe velocity. The relativistic factor is given by the formulae gamma = (Kinetic Energy/Rest Energy) + 1 = sqrt[1/(1-v^2/c^2)]
      Returns:
      probe relativistic factor (unitless)
    • lookupLastStateFor

      ProbeState<?> lookupLastStateFor(String strElemTypeId)
      Looks up the last probe state created by a modeling element of the given identifier. The history of the probe (i.e., a Trajectory object is searched for the last state with the modeling type ID equal to the given value.
      Parameters:
      strElemTypeId - modeling element type identification string
      Returns:
      the last state created by such a modeling element
      Since:
      Dec 17, 2014 by Christopher K. Allen
    • setCurrentElement

      void setCurrentElement(String id)
      Set the current lattice element.
      Parameters:
      id - String id of current lattice element.
    • setCurrentElementTypeId

      void setCurrentElementTypeId(String strTypeId)
      Sets the type identifier string of the modeling element where this probe currently exists. Note that all modeling elements have a static string identifier defined in their class definition.
      Parameters:
      strTypeId - static identifier string of the modeling element class
      Since:
      Dec 16, 2014 by Christopher K. Allen
    • setCurrentHardwareId

      void setCurrentHardwareId(String strSmfId)
      Sets the string identifier of the hardware node modeled by the current element.
      Parameters:
      strSmfId - hardware ID of the current modeling element
      Since:
      Sep 3, 2014
    • setPosition

      void setPosition(double dblPos)
      Set the current position of the probe along the beamline.
      Parameters:
      dblPos - new probe position (meters)
    • setTime

      void setTime(double dblTime)
      Set the current time since the probe began propagating
      Parameters:
      dblTime - new probe current time in seconds
    • setLongitudinalPhase

      void setLongitudinalPhase(double dblPhsLng)

      Set the longitudinal phase of this probe with respect to the RF phase. Typically used to account for phase delay/advance in cavities incurred due to finite propagation time. For example

          φ ≜ φ0 - Δφ

      where Δφ = 2πfΔt is the phase delay due to elapsed time Δt, f is the cavity resonant frequency, and φ0 is the operating phase of the cavity (w.r.t. the synchronous particle).

      Parameters:
      dblPhsLng - the phase delay Δφ incurred from probe propagate between RF cavities
      Since:
      Nov 23, 2014
    • setKineticEnergy

      void setKineticEnergy(double dblW)
      Set the current kinetic energy of the probe.
      Parameters:
      dblW - new probe kinetic energy (electron-volts)
      See Also:
    • setSpeciesCharge

      void setSpeciesCharge(double dblQ)
      Set the species charge.
      Parameters:
      dblQ - new species charge (e.u.)
      See Also:
    • setSpeciesRestEnergy

      void setSpeciesRestEnergy(double m)
      Set the species rest energy.
      Parameters:
      m - new species rest energy (eV)
      See Also:
    • initialize

      void initialize() throws ModelException
      Initialize the probe for propagation. Reset any necessary state variables Optionally set up a trajectory variable
      Throws:
      ModelException - an error occurred while trying to initialize the probe
    • update

      void update() throws ModelException
      Update all data and connections. Recompute any parameters consistent with new probe state Optionally store probe state to save trajectory history Resynchronize probe with data sources if they exist
      Throws:
      ModelException - an error occurred while trying to update the probe
    • performPostProcessing

      @Deprecated void performPostProcessing()
      Deprecated.
      This has a zero implementation in Probe but never does anything.
      Perform any required post processing upon completion of algorithm processing.
    • getAlgorithm

      IAlgorithm getAlgorithm()
      Return the dynamics algorithm associated with this probe.
    • getArchive

      IArchive getArchive()
      Return the IArchive interface for archiving this algorithm object.