Class ThickMagFieldMap

All Implemented Interfaces:
IElectromagnet, IComponent, IElement

public class ThickMagFieldMap extends ThickElectromagnet
Thick element version for magnetic field map implementation. This class is supposed to be faster than the ThickMagFieldMap for fieldmaps with many data points, since it removes the overhead of creating an element for every point in the fieldmap. The drawback is that it can't be superposed to other ThickElements.
Author:
Juan F. Esteban Müller <JuanF.EstebanMuller@esss.se>
  • Constructor Details

    • ThickMagFieldMap

      public ThickMagFieldMap()
    • ThickMagFieldMap

      public ThickMagFieldMap(String strId)
  • Method Details

    • initializeFrom

      public void initializeFrom(LatticeElement element)
      Description copied from class: ThickElectromagnet
      Conversion method to be provided by the user
      Specified by:
      initializeFrom in interface IComponent
      Overrides:
      initializeFrom in class ThickElectromagnet
      Parameters:
      element - the SMF node to convert
    • transferMap

      public PhaseMap transferMap(IProbe probe, double dblLen) throws ModelException
      Method calculates transfer matrix for the field map on the current range (i.e from probe.getPosition, and for dblLength).
      Specified by:
      transferMap in interface IElement
      Specified by:
      transferMap in class ThickElement
      Parameters:
      probe - probe containing parameters for the sub-sectional transfer matrix
      dblLen - length of sub-element
      Returns:
      Throws:
      ModelException
      See Also:
    • energyGain

      public double energyGain(IProbe probe, double dblLen)
      Description copied from class: ThickElement
      Return the energy gain of the beamline element over a subsection of the specified length.
      Specified by:
      energyGain in interface IElement
      Specified by:
      energyGain in class ThickElement
      Parameters:
      probe - probe for which energy gain is to be determined
      dblLen - subsection length to calculate energyGain for
      Returns:
      the value #subEnergyGain(probe)*#getCount()
    • elapsedTime

      public double elapsedTime(IProbe probe, double dblLen)
      Description copied from class: Element
      Returns the time taken for the probe probe to propagate through a subsection of the element with length dblLen.
      Specified by:
      elapsedTime in interface IElement
      Specified by:
      elapsedTime in class ThickElement
      Parameters:
      probe - determine energy gain for this probe
      dblLen - length of subsection to calculate energy gain for
      Returns:
      the elapsed time through sectionUnits: seconds