public abstract class ThickElement extends Element
Base class for all modeling elements having a finite length. As such, space charge will affect probes propagation through these elements.
The transfer matrix that is stored in the parent element is actually the incremental transfer matrix of the full element. Thus, derived classes should implement the method subTransferMatrix() that returns the nSecs root of the full transfer matrix. Deriving beamline elements from this class allows space charge kicks to be applied at nSecs equally spaced locations throughout the element.
LightSpeed, Permeability, Permittivity, UnitCharge| Constructor and Description |
|---|
ThickElement(java.lang.String strType)
Default constructor to be used by automatic lattice generation.
|
ThickElement(java.lang.String strType,
java.lang.String strId)
Default constructor to be used by automatic lattice generation.
|
ThickElement(java.lang.String strType,
java.lang.String strId,
double dblLen)
Creates a new instance of ThickElement
|
| Modifier and Type | Method and Description |
|---|---|
abstract double |
energyGain(IProbe probe,
double dblLen)
Return the energy gain of the beamline element over a subsection of the
specified length.
|
double |
getLength()
Return the total length of this element
|
void |
initializeFrom(LatticeElement latticeElement)
Conversion method to be provided by the user
|
void |
setLength(double dblLen)
Set the length of the element.
|
abstract PhaseMap |
transferMap(IProbe probe,
double dblLen)
Compute the transfer map for a subsection of this element whose length
is dblLen.
|
addCloseElements, applyAlignError, backPropagate, backPropagate, compDriftingTime, compProbeLocation, elapsedTime, getAlignX, getAlignY, getAlignZ, getCloseElements, getHardwareNodeId, getId, getPosition, getType, getUID, print, propagate, propagate, setAlign, setAlignX, setAlignY, setAlignZ, setHardwareNodeId, setId, setPosition, toStringpublic ThickElement(java.lang.String strType)
strType - the string type-identifier of the element typepublic ThickElement(java.lang.String strType,
java.lang.String strId)
strType - the string type-identifier of the element typestrId - the string identifier of the element instancepublic ThickElement(java.lang.String strType,
java.lang.String strId,
double dblLen)
strType - string type identifier for the elementstrId - string instance identifier for this elementdblLen - total length of the element (in meters)public void initializeFrom(LatticeElement latticeElement)
initializeFrom in interface IComponentinitializeFrom in class ElementlatticeElement - the SMF node to convertpublic void setLength(double dblLen)
dblLen - lenght of element (in meters)public double getLength()
getLength in interface IComponentgetLength in class Elementpublic abstract double energyGain(IProbe probe, double dblLen)
energyGain in interface IElementenergyGain in class Elementprobe - probe for which energy gain is to be determineddblLen - subsection length to calculate energyGain forpublic abstract PhaseMap transferMap(IProbe probe, double dblLen) throws ModelException
Compute the transfer map for a subsection of this element whose length is dblLen. If dblLen is greater than or equal to the element's length, return the transfer map for the full element. Note that this may not be very useful for an element with differential acceleration.
transferMap in interface IElementtransferMap in class Elementprobe - probe supplying parameters for the transfer matrix calculationdblLen - length of element subsection to compute transfer map forModelException - exception occurred in subTransferMap() methodIElement.transferMap(IProbe,double)