public abstract class BunchProbe<S extends BunchProbeState<S>> extends Probe<S>
Abstract base class for all probes having beam properties. That is derived classes should represent probes with collective beam dynamics.
COMMENT_LABEL, PROBE_LABEL, stateCurrent, TEXT_LABEL, TIME_LABEL, trajHist, TYPE_LABEL
LightSpeed, Permittivity, UnitCharge
Modifier | Constructor and Description |
---|---|
protected |
BunchProbe()
Default constructor.
|
|
BunchProbe(BunchProbe<S> probe)
Copy constructor - clones the argument
Since BunchProbe is abstract constructor should only be calls by a derived class.
|
Modifier and Type | Method and Description |
---|---|
double |
beamPerveance()
Returns the generalized, three-dimensional beam perveance K.
|
double |
bunchCharge()
Computes and returns the charge in each beam bunch
|
abstract S |
createEmptyProbeState()
Just restating
Probe. . |
abstract S |
createProbeState()
Just restating
Probe. |
double |
getBeamCurrent()
Returns the total beam current
|
double |
getBunchFrequency()
Returns the bunch frequency, that is the frequency of
the bunches need to create the beam current.
|
void |
setBeamCurrent(double I)
Set the total beam current.
|
void |
setBunchFrequency(double f)
Set the bunch arrival time frequency.
|
applyState, cloneCurrentProbeState, copy, createTrajectory, deepCopy, getAlgorithm, getArchive, getBeta, getComment, getCurrentElement, getCurrentHardwareId, getGamma, getKineticEnergy, getMomentum, getPosition, getSpeciesCharge, getSpeciesName, getSpeciesRestEnergy, getTime, getTimestamp, getTrajectory, initialize, initializeFrom, load, newProbeInitializedFrom, performPostProcessing, readFrom, readStateFrom, reset, save, setAlgorithm, setComment, setCurrentElement, setCurrentHardwareId, setKineticEnergy, setPosition, setSpeciesCharge, setSpeciesName, setSpeciesRestEnergy, setTime, setTimestamp, setTracking, update
protected BunchProbe()
public BunchProbe(BunchProbe<S> probe)
probe
- BunchProbe object to be clonedpublic void setBunchFrequency(double f)
f
- new bunch frequency in Hzpublic void setBeamCurrent(double I)
I
- new beam current in public double getBunchFrequency()
public double getBeamCurrent()
public double bunchCharge()
public double beamPerveance()
Returns the generalized, three-dimensional beam perveance K. This value is defined to be
K = (Q/4*pi*e0)*(1/gamma^3*beta^2)*(|q|/ER)where Q is the bunch charge, e0 is the permittivity of free space, gamma is the relativitic factor, beta is the normalized design velocity, q is the charge of the beam particles and ER is the rest energy of the beam partiles.
NOTES: - The value (1/4*pi*e0) is equal to 1e-7*c^2 where c is the speed of light.
public abstract S createProbeState()
Probe.createProbeState()
createProbeState
in class Probe<S extends BunchProbeState<S>>
Probe.createProbeState()
public abstract S createEmptyProbeState()
Probe.createEmptyProbeState()
.createEmptyProbeState
in class Probe<S extends BunchProbeState<S>>
ProbeState