gov.sns.xal.model
Interface IElement

All Superinterfaces:
IComponent
All Known Implementing Classes:
Element

public interface IElement
extends IComponent

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.


Field Summary
static double LightSpeed
          Speed of light in a vaccuum (meters/second)
static double Permeability
          Magnetic permeability of free space (Henries/meter)
static double Permittivity
          Electric permittivity of free space (Farad/meter)
static double UnitCharge
          The unit electric charge (Farads)
 
Method Summary
 double elapsedTime(IProbe probe, double dblLen)
          Returns the time taken for the probe probe to propagate through a subsection of the element with length dblLen.
 double energyGain(IProbe probe, double dblLen)
          Returns energy gain provided by a subsection of the element during the given length for the particular probe.
 void initializeFrom(IModelDataSource source)
          Initializes component from the supplied data source.
 PhaseMap transferMap(IProbe probe, double dblLen)
          Compute the tranfer matrix for subsection of this element of length dblLen for the specified given probe.
 
Methods inherited from interface gov.sns.xal.model.IComponent
getId, getLength, getType, propagate
 

Field Detail

LightSpeed

public static final double LightSpeed
Speed of light in a vaccuum (meters/second)

See Also:
Constant Field Values

UnitCharge

public static final double UnitCharge
The unit electric charge (Farads)

See Also:
Constant Field Values

Permittivity

public static final double Permittivity
Electric permittivity of free space (Farad/meter)

See Also:
Constant Field Values

Permeability

public static final double Permeability
Magnetic permeability of free space (Henries/meter)

See Also:
Constant Field Values
Method Detail

elapsedTime

public double elapsedTime(IProbe probe,
                          double dblLen)
Returns the time taken for the probe probe to propagate through a subsection of the element with length dblLen.

Parameters:
probe - propagating probe
dblLen - length of subsection to propagate through meters
Returns:
the elapsed time through sectionUnits: seconds

energyGain

public double energyGain(IProbe probe,
                         double dblLen)
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 probe
dblLen - length of subsection to calculate energy gain
Returns:
the energy gain provided by this element Units: eV

transferMap

public PhaseMap transferMap(IProbe probe,
                            double dblLen)
                     throws ModelException
Compute the tranfer matrix for subsection of this element of length dblLen for the specified given probe. That is, this method should return the incremental transfer matrix.

Parameters:
dblLen - length of subelement
probe - probe containing parameters for the subsectional transfer matrix
Returns:
transfer map for an element of length dblLen
Throws:
ModelException - unable to compute transfer map
See Also:
#transferMap()

initializeFrom

public void initializeFrom(IModelDataSource source)
                    throws ModelException
Initializes component from the supplied data source.

Parameters:
source - the data source to initialize from
Throws:
ModelException - if error initializing from source