public class IdealMagWedgeDipole2 extends ElectromagnetSeq
IdealMagSectorDipole
sandwiched between two
IdealDipoleFace
elements that provided the thin lens
dynamics of the tilted pole faces.
NOTE:
A rectangle dipole can be specified by setting equal exit and entrance
pole face angles.xal.model.elem
,
xal.model.elem
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
s_strType
string type identifier for all IdealMagSectorDipole objects
|
static int |
s_szReserve
storage to reserve for child components
|
s_szDefReserve
ORIENT_HOR, ORIENT_NONE, ORIENT_VER
Constructor and Description |
---|
IdealMagWedgeDipole2()
Default constructor - creates a new unitialized instance of
IdealMagWedgeDipole . |
IdealMagWedgeDipole2(java.lang.String strId)
Create new
IdealMagWedgeDipole object and specify its
instance identifier string. |
Modifier and Type | Method and Description |
---|---|
double |
compProbeCurvature(IProbe probe)
Compute the path curvature within the dipole for the given probe.
|
double |
getDesignBendingAngle()
Return the bending angle of the magnet's design trajectory.
|
double |
getDesignPathLength()
Return the path length of the design trajectory through the
magnet.
|
double |
getEntrFringeIntegral()
Get the entrance fringe integral (a la D.C.
|
double |
getEntrPoleAngle()
Get the entrance pole face angle with respect to the design trajectory
|
double |
getExitFringeIntegral()
Get the exit fringe integral (a la D.C.
|
double |
getExitPoleAngle()
Get the exit pole face angle with respect to the design trajectory
|
double |
getFieldIndex()
Return the magnetic field index of the magnet evaluated at the design
orbit.
|
double |
getGapHeight()
Return the gap size between the dipole magnet poles.
|
double |
getK0()
Returns the magnet strength I think.
|
double |
getMagField()
Get the magnetic field strength of the dipole electromagnet
|
int |
getOrientation()
Return the orientation enumeration code specifying the bending plane.
|
double |
getPhysicalLength()
Return the physical length of the bending dipole.
|
void |
initializeFrom(LatticeElement element)
Conversion method to be provided by the user
|
void |
setAlignment(R3 vecAlign)
Set the alignment parameters for the magnet.
|
void |
setAlignX(double dx)
set align x
|
void |
setAlignY(double dy)
set align y
|
void |
setAlignZ(double dz)
set align z
|
void |
setDesignBendAngle(double dblBendAng)
Set the bending angle of the reference (design) orbit.
|
void |
setDesignPathLength(double dblPathLen)
Set the reference (design) orbit path-length through
the magnet.
|
void |
setEntrFringeIntegral(double dblFldInt)
Set the entrance fringe integral (a la D.C.
|
void |
setEntrPoleAngle(double dblAngPole)
Set the entrance pole face angle with respect to the design trajectory
|
void |
setExitFringeIntegral(double dblFldInt)
Set the exit fringe integral (a la D.C.
|
void |
setExitPoleAngle(double dblAngPole)
Set the exit pole face angle with respect to the design trajectory
|
void |
setFieldIndex(double dblFldInd)
Set the magnetic field index of the magnet evaluated at the design
orbit.
|
void |
setFieldPathFlag(boolean bolFlag)
sako use design field if fieldPathFlag = 1, and use bfield if 0
|
void |
setGapSize(double dblGap)
Set the gap size between the dipole magnet poles.
|
void |
setHardwareNodeId(java.lang.String strSmfId)
Overrides the default
setHardwareNodeId(String) method
for the ElementSeq base class so we can set the
hardware node IDs for the composite elements. |
void |
setId(java.lang.String strId)
Override the default
setId(String) method for
ElementSeq objects so we can set the identifier
strings of each composite element. |
void |
setK0(double k0)
Set the dipole strength of the magnet - I think.
|
void |
setMagField(double dblField)
Set the magnetic field strength of the dipole electromagnet.
|
void |
setOrientation(int enmOrient)
Set the dipole magnet bending orientation
|
void |
setPhysicalLength(double dblLen)
Set the physical length of the bending dipole.
|
void |
setPosition(double dblPos,
double dblLen)
Set the position of the magnet along the design path within the
containing lattice.
|
void |
setQuadComponent(double dblFldInd)
for SAD elements, K1 variable (=normal k1*L) in SAD
|
addChild, backPropagate, backPropagate, childIterator, concatenateEquals, getAllElements, getChild, getChildCount, getComments, getCompList, getElementList, getHardwareNodeId, getId, getLeafCount, getLength, getReverseCompList, getType, globalBackIterator, globalIterator, localBackIterator, localIterator, print, propagate, propagate, remove, setComments, setCompList, toString
public static final java.lang.String s_strType
public static final int s_szReserve
public IdealMagWedgeDipole2()
IdealMagWedgeDipole
.public IdealMagWedgeDipole2(java.lang.String strId)
IdealMagWedgeDipole
object and specify its
instance identifier string.strId
- instance identifier stringpublic void setId(java.lang.String strId)
setId(String)
method for
ElementSeq
objects so we can set the identifier
strings of each composite element.setId
in class ElementSeq
strId
- identifier string of this composite.ElementSeq.setId(java.lang.String)
public void setHardwareNodeId(java.lang.String strSmfId)
setHardwareNodeId(String)
method
for the ElementSeq
base class so we can set the
hardware node IDs for the composite elements.setHardwareNodeId
in class ElementSeq
strSmfId
- identifier for the modeled hardware node (SMF object)ElementSeq.setHardwareNodeId(java.lang.String)
public void setAlignment(R3 vecAlign)
vecAlign
- (dx,dy,dz)public void setAlignX(double dx)
dx
- public void setAlignY(double dy)
dy
- public void setAlignZ(double dz)
dz
- public void setPosition(double dblPos, double dblLen)
Set the position of the magnet along the design path within the containing lattice.
NOTE:We have a bit of a logistics problem here because this is a composite element. So when setting the position of this element we want to set the positions of all the internal elements, in particular, the pole faces. Thus, we need the physical length of the magnet to do this. Either we require the length to be provided when invoked this method, or this method must be invoked after setting the physical length. I opted for the former.
The physical length of this element is not set when invoking
this method. That must be done separately with a call to
setPhysicalLength(double>
.
dblPos
- lattice position of element center (meters)dblLen
- physical length of this elementsetPhysicalLength(double)
public void setFieldIndex(double dblFldInd)
dblFldInd
- field index of the magnet (unitless)public void setQuadComponent(double dblFldInd)
dblFldInd
- the field index for the quadrupolepublic void setGapSize(double dblGap)
dblGap
- gap size in meterspublic void setEntrPoleAngle(double dblAngPole)
dblAngPole
- pole face angle in radianspublic void setExitPoleAngle(double dblAngPole)
dblAngPole
- pole face angle in radianspublic void setEntrFringeIntegral(double dblFldInt)
dblFldInt
- fringe field integral (unitless)IdealMagDipoleFace.setFringeIntegral(double)
public void setExitFringeIntegral(double dblFldInt)
dblFldInt
- fringe field integral (unitless)IdealMagDipoleFace.setFringeIntegral(double)
public void setPhysicalLength(double dblLen)
dblLen
- physical length through bend in meterspublic void setDesignPathLength(double dblPathLen)
dblPathLen
- path length of design trajectory (meters)public void setDesignBendAngle(double dblBendAng)
dblBendAng
- design trajectory bending angle (radians)public void setFieldPathFlag(boolean bolFlag)
public void setK0(double k0)
k0
- magnet strength ?public double getK0()
public double getGapHeight()
public double getEntrPoleAngle()
public double getExitPoleAngle()
public double getEntrFringeIntegral()
IdealMagDipoleFace2.getFringeIntegral()
public double getExitFringeIntegral()
IdealMagDipoleFace.getFringeIntegral()
public double getFieldIndex()
Return the magnetic field index of the magnet evaluated at the design
orbit. The field index is defined as
n ≡ -(R0/B0)(dB/dR)
where R0 is the radius of the design orbit, B0
is the field at the
design orbit (see IdealMagSectorDipole2.getFieldIndex()
), and dB/dR is the
derivative of the field with respect to the path deflection - evaluated
at the design radius R0.
public double getPhysicalLength()
public double getDesignPathLength()
public double getDesignBendingAngle()
public double compProbeCurvature(IProbe probe)
probe
- probe object to be deflectedpublic int getOrientation()
public double getMagField()
public void setOrientation(int enmOrient)
enmOrient
- magnet orientation enumeration codegetOrientation()
public void setMagField(double dblField)
dblField
- magnetic field (in public void initializeFrom(LatticeElement element)
initializeFrom
in interface IComponent
initializeFrom
in class ElectromagnetSeq
latticeElement
- the SMF node to convert