Interface IElement
- All Superinterfaces:
IComponent
- All Known Implementing Classes:
ChargeExchangeFoil
,Collimator
,Element
,IdealDrift
,IdealEDipole
,IdealEQuad
,IdealHorMagSteeringDipole
,IdealMagDipoleFace
,IdealMagDipoleFace
,IdealMagDipoleFace2
,IdealMagFringeQuadFace
,IdealMagOctupole
,IdealMagQuad
,IdealMagSectorDipole
,IdealMagSectorDipole
,IdealMagSectorDipole2
,IdealMagSextupole
,IdealMagSkewQuad
,IdealMagSkewQuad3
,IdealMagSolenoid
,IdealMagSteeringDipole
,IdealPermMagQuad
,IdealRfCavityDrift
,IdealRfGap
,IdealRfGap
,IdealRfGapUpgraded
,IdealVerMagSteeringDipole
,Marker
,RfqDummyModel
,SpectrumMapRfGap
,ThickDipole
,ThickElectromagnet
,ThickElectrostatic
,ThickElement
,ThickMagFieldMap
,ThickMatrix
,ThickRfFieldMap
,ThinElectromagnet
,ThinElement
,ThinLens
,ThinMagFieldMap
,ThinMatrix
,ThinRfFieldMap
The defining interface for atomic accelerator modeling components. (for
example, quadrupoles, foil, and others). According to the
Element-Algorithm-Probe design pattern, the IElement
exposed
objects may interact with physical aspects of the particle beam which are
expressed by the IProbe
interface.
These interactions between IElement
objects and
IProbe
objects are defined by dynamics objects exposing the
IAlgorithm
interface.
- Version:
- $Id: Element.java, ver 2.0
- Author:
- Christopher K. Allen
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final double
Speed of light in a vacuum (meters/second)static final double
Magnetic permeability of free space (Henries/meter)static final double
Electric permittivity of free space (Farad/meter)static final double
The unit electric charge (Farads) -
Method Summary
Modifier and TypeMethodDescriptiondouble
elapsedTime
(IProbe probe, double dblLen) Returns the time taken for the probeprobe
to propagate through a subsection of the element with lengthdblLen
.double
energyGain
(IProbe probe, double dblLen) Returns energy gain provided by a subsection of the element during the given length for the particular probe.double
longitudinalPhaseAdvance
(IProbe probe, double dblLen) Returns the longitudinal phase advance of the given probe with respect to the RF phase while propagation through this element section.transferMap
(IProbe probe, double dblLen) Compute the transfer matrix for subsection of this element of lengthdblLen
for the specified given probe.Methods inherited from interface xal.model.IComponent
backPropagate, backPropagate, getHardwareNodeId, getId, getLatticePosition, getLength, getParent, getPosition, getType, initializeFrom, propagate, propagate, setParent
-
Field Details
-
LIGHT_SPEED
static final double LIGHT_SPEEDSpeed of light in a vacuum (meters/second)- See Also:
-
UNIT_CHARGE
static final double UNIT_CHARGEThe unit electric charge (Farads)- See Also:
-
PERMITTIVITY
static final double PERMITTIVITYElectric permittivity of free space (Farad/meter)- See Also:
-
PERMEABILITY
static final double PERMEABILITYMagnetic permeability of free space (Henries/meter)- See Also:
-
-
Method Details
-
elapsedTime
Returns the time taken for the probeprobe
to propagate through a subsection of the element with lengthdblLen
.- Parameters:
probe
- propagating probedblLen
- length of subsection to propagate through meters- Returns:
- the elapsed time through sectionUnits: seconds
-
longitudinalPhaseAdvance
Returns the longitudinal phase advance of the given probe with respect to the RF phase while propagation through this element section. Typically used to account for phase delay/advance in cavities incurred due to finite time while propagating through the given distance. For example
φ ≜ φ0 - Δφ
where Δφ = 2πfΔL/βc is the phase delay due to elapsed time Δt = ΔL/βc, ΔL is the given axial distance through this element, βc is the probe axial velocity, f is the cavity resonant frequency, and φ0 is the operating phase of the cavity (w.r.t. the synchronous particle).- Parameters:
probe
- the probe propagating through this elementdblLen
- distance the probe propagates through the element- Returns:
- longitudinal phase advance of the probe through given distance
- Since:
- Nov 23, 2014
-
energyGain
Returns energy gain provided by a subsection of the element during the given length for the particular probe.- Parameters:
probe
- determine energy gain for this probedblLen
- length of subsection to calculate energy gain- Returns:
- the energy gain provided by this element Units: eV
-
transferMap
Compute the transfer matrix for subsection of this element of lengthdblLen
for the specified given probe. That is, this method should return the incremental transfer matrix.- Parameters:
dblLen
- length of sub-elementprobe
- probe containing parameters for the sub-sectional transfer matrix- Returns:
- transfer map for an element of length dblLen
- Throws:
ModelException
- unable to compute transfer map- See Also:
-