public class IdealMagFringeQuad extends ElectromagnetSeq
IdealMagQuad
sandwiched between two
IdealFringeQuadFace
elements that provides fringe field based on;
H. Matsuda and H. Wollnik, NIM 103 (1972) 117
Structure is simular to that of IdealMagWedgeDipole2gov.sns.xal.model.elem#IdealMagQuad
,
gov.sns.xal.model.elem#IdealMagFringeQuadFace
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 |
---|
IdealMagFringeQuad()
Default constructor - creates a new unitialized instance of
IdealMagWedgeDipole . |
IdealMagFringeQuad(java.lang.String strId)
Create new
IdealMagWedgeDipole object and specify its
instance identifier string. |
Modifier and Type | Method and Description |
---|---|
double |
getEntrFringeIntegral1()
Get the entrance fringe integral (a la H.
|
double |
getEntrFringeIntegral2()
Get the entrance fringe integral (a la H.
|
double |
getExitFringeIntegral1()
Get the exit fringe integral (a la H.
|
double |
getExitFringeIntegral2()
Get the exit fringe integral (a la D.C.
|
double |
getK1()
Return the magnetic field index of the magnet evaluated at the design
orbit.
|
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 |
setEntrFringeIntegral1(double dblFldInt)
Set the entrance fringe integral (a la H.
|
void |
setEntrFringeIntegral2(double dblFldInt)
Set the entrance fringe integral (a la H.
|
void |
setExitFringeIntegral1(double dblFldInt)
Set the exit fringe integral (a la H.
|
void |
setExitFringeIntegral2(double dblFldInt)
Set the exit fringe integral (a la H.
|
void |
setFieldPathFlag(double dblFlag)
sako use design field if fieldPathFlag = 1, and use bfield if 0
|
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 |
setK1(double dblPathLen)
Set the reference (design) orbit path-length through
the magnet.
|
void |
setMagField(double dblField)
Set the magnetic field strength of the dipole electromagnet.
|
void |
setNominalKineEnergy(double dblBendAng)
Set the bending angle of the reference (design) orbit.
|
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.
|
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, setHardwareNodeId, toString
public static final java.lang.String s_strType
public static final int s_szReserve
public IdealMagFringeQuad()
IdealMagWedgeDipole
.public IdealMagFringeQuad(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 compsite.gov.sns.xal.model.elem.ElementSeq#setId(java.lang.String)
public void setAlignment(R3 vecAlign)
vecAlign
- (dx,dy,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 logitics 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 particlar, 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 setEntrFringeIntegral1(double dblFldInt)
dblFldInt
- fringe field integral (unitless)IdealMagFringeQuadFace.setFringeIntegral1(double)
public void setEntrFringeIntegral2(double dblFldInt)
dblFldInt
- fringe field integral (unitless)IdealMagFringeQuadFace.setFringeIntegral2(double)
public void setExitFringeIntegral1(double dblFldInt)
dblFldInt
- fringe field integral (unitless)IdealMagDipoleFace#setFringeIntegral1
public void setExitFringeIntegral2(double dblFldInt)
dblFldInt
- fringe field integral (unitless)IdealMagDipoleFace#setFringeIntegral2
public void setPhysicalLength(double dblLen)
dblLen
- physical length through bend in meterspublic void setK1(double dblPathLen)
dblPathLen
- path length of design trajectory (meters)public void setNominalKineEnergy(double dblBendAng)
dblBendAng
- design trajectory bending angle (radians)public void setFieldPathFlag(double dblFlag)
public void setAlignX(double dx)
dx
- public void setAlignY(double dy)
dy
- public void setAlignZ(double dz)
dz
- public double getEntrFringeIntegral1()
IdealMagFringeQuadFace#setFrindIntegral1
public double getExitFringeIntegral1()
IdealMagFringeQuadFace#setFrindIntegral1
public double getEntrFringeIntegral2()
IdealMagFringeQuadFace#setFrindIntegral2
public double getExitFringeIntegral2()
IdealMagFringeQuadFace#setFrindIntegral2
public double getK1()
public double getPhysicalLength()
public 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