|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object | +--gov.sns.tools.beam.em.EllipsoidalCharge
Encapsulates the properties of a ellipsoidally symmetric distribution of charge in 3D space, in particular, the electromagnetic properties. Provides convenience methods for creating arbitrarily oriented ellipsoids and determining their fields, and their effects on beam particles, specifically, in the form of a linear transfer matrix generator.
| Field Summary | |
static double |
FCONST
|
| Constructor Summary | |
EllipsoidalCharge()
Default Constructor. |
|
EllipsoidalCharge(double K,
CorrelationMatrix matChi)
Construct a beam charge density ellipsoid described by the phase space correlation matrix matChi and generalized
beam perveance K. |
|
EllipsoidalCharge(double K,
double a,
double b,
double c)
Constructs an ellipsoidal charge from its semi-axes values and the generalized beam pervance. |
|
EllipsoidalCharge(double K,
R3x3 matSigma)
Construct an ellipsoidal charge from its covariance matrix and the generalized beam perveance. |
|
EllipsoidalCharge(double K,
R3x3 matSigma,
R3 vecDispl)
Construct an ellipsoid charge from its covariance matrix, displacement vector and generalized beam perveance. |
|
| Method Summary | |
R3 |
compDefocusConstants()
Computes the normalized defocusing lengths for a space charge kick given the semi-axes of the beam ellipsoid. |
R3 |
compDefocusConstantsAlaTrace3D()
This method is provided as a comparison utility for validation against simulation with Trace3D. |
PhaseMatrix |
compPhaseRotation()
Compute the rotation matrix in phase space that corresponds to the current rotation matrix in 3D configuration space. |
PhaseMatrix |
compTransMatrixGen()
Calculates the transfer matrix generator for space charge effects from this EllipsoidalCharge object. |
void |
configureFromCorrelation(CorrelationMatrix matChi)
Configure the ellipsoidal charge from the given CorrelationMatrix. |
void |
configureFromCovariance(R3x3 matSigma)
Configure the ellipsoidal charge from the given covariance matrix. |
double |
getBeamPerveance()
Return the generalized beam perveance of the ellipsoidal charge. |
R3 |
getDisplacement()
Return the displacement from the standard cartesian coordinate original. |
R3x3 |
getRotation()
Get orthogonal rotation matrix R in SO(3) that converts from ellipsoid coordinates to standard cartesian coordinates. |
R3 |
getSemiAxes()
Return all the ellipsoid semi-axes as a vector. |
double |
getSemiAxisX()
Return the value of the first ellispoid semi-axis. |
double |
getSemiAxisY()
Return the value of the second ellispoid semi-axis. |
double |
getSemiAxisZ()
Return the value of the third ellispoid semi-axis. |
void |
setBeamPerveance(double K)
Set the generalized beam perveance of the ellipsoidal charge directly. |
void |
setDisplacement(R3 vecDispl)
Sets the displacement of the ellipsoid centroid from the coordinate origin. |
void |
setRotation(R3x3 matRot)
Set the rotation matrix for the ellipsoid. |
void |
setSemiAxes(double a,
double b,
double c)
Set the semi-axes of the ellipsoid directly. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static final double FCONST
| Constructor Detail |
public EllipsoidalCharge()
EllipsoidalCharge object
public EllipsoidalCharge(double K,
double a,
double b,
double c)
K - generalized beam perveancea - ellipsoid semi-axis in x directionb - ellipsoid semi-axis in y directionc - ellipsoid semi-axis in z directionsetBeamPerveance(double),
setSemiAxes(double, double, double)
public EllipsoidalCharge(double K,
R3x3 matSigma)
throws java.lang.IllegalArgumentException
K - generalized beam perveancematSigma - covariance matrix for ellipsoid
java.lang.IllegalArgumentException - matrix is not symmetric and/or positive definitesetBeamPerveance(double),
configureFromCovariance(gov.sns.tools.math.r3.R3x3)
public EllipsoidalCharge(double K,
R3x3 matSigma,
R3 vecDispl)
throws java.lang.IllegalArgumentException
K - generalized beam perveancematSigma - covariance matrix for ellipsoidvecDispl - displacement vector from the coordinate origin
java.lang.IllegalArgumentException - matrix is not symmetric and/or positive definitesetBeamPerveance(double),
setDisplacement(gov.sns.tools.math.r3.R3),
configureFromCovariance(gov.sns.tools.math.r3.R3x3)
public EllipsoidalCharge(double K,
CorrelationMatrix matChi)
matChi and generalized
beam perveance K.
Note that the phase space correlation matrix in homogeneous coordinates
contains all moments up to and including second order; this includes the
first-order moments that describe the displacement of the ellipsoid from
the coordinate origin. Thus, from the 7x7 phase space correlation matrix
we extract the displacement vector
(<x>,<y><z>)
and the 3x3 covariance matrix
| <x*x> <x*y> <x*z> | | <x>*<x> <x>*<y> <x>*<z> |
| <y*x> <y*y> <y*z> | - | <y>*<x> <y>*<y> <y>*<z> |
| <z*x> <z*y> <z*z> | | <z>*<x> <z>*<y> <z>*<z> |
to construct the ellipsoidal charge object according to the previous constructor
parameters.
K - generalized beam perveancematChi - envelope correlation matrix in homogeneous phase space coordinatessetBeamPerveance(double),
configureFromCorrelation(gov.sns.tools.beam.CorrelationMatrix)| Method Detail |
public void configureFromCovariance(R3x3 matSigma)
throws java.lang.IllegalArgumentException
matSigma - the covariance matrix of the ellipsoid
java.lang.IllegalArgumentException - the covariance matrix is not symmetric
and/or positive definitesetRotation(gov.sns.tools.math.r3.R3x3),
setSemiAxes(double, double, double)public void configureFromCorrelation(CorrelationMatrix matChi)
CorrelationMatrix.
Note that the phase space correlation matrix in homogeneous coordinates
contains all moments up to and including second order; this includes the
first-order moments that describe the displacement of the ellipsoid from
the coordinate origin. Thus, from the 7x7 phase space correlation matrix
we extract the displacement vector
(<x>,<y><z>)
and the 3x3 covariance matrix
| <x*x> <x*y> <x*z> | | <x>*<x> <x>*<y> <x>*<z> |
| <y*x> <y*y> <y*z> | - | <y>*<x> <y>*<y> <y>*<z> |
| <z*x> <z*y> <z*z> | | <z>*<x> <z>*<y> <z>*<z> |
to construct the ellipsoidal charge object according to the previous constructor
parameters.
matChi - phase space correlation matrix (in homogeneous coordinates) for the ellipsoidal chargepublic void setBeamPerveance(double K)
K - generalized beam perveance unitless
public void setSemiAxes(double a,
double b,
double c)
a - ellipsoid semi-axis in x directionb - ellipsoid semi-axis in y directionc - ellipsoid semi-axis in z directionpublic void setDisplacement(R3 vecDispl)
public void setRotation(R3x3 matRot)
matRot is the eigenvector
matrix of the covariance matrix for the ellipsoid.
matRot - rotation matrix in SO(3)#setCovariancepublic double getBeamPerveance()
public double getSemiAxisX()
public double getSemiAxisY()
public double getSemiAxisZ()
public R3 getSemiAxes()
public R3 getDisplacement()
public R3x3 getRotation()
public PhaseMatrix compPhaseRotation()
public R3 compDefocusConstants()
getRotation(),
compPhaseRotation(),
Theory and Technique
of Beam Envelope Simulationpublic R3 compDefocusConstantsAlaTrace3D()
compDefocusConstants()public PhaseMatrix compTransMatrixGen()
EllipsoidalCharge object. Denoting the returned
transfer matrix generator as B then the actual transfer matrix
M(s) for the space charge effect is given as
M(s) = exp(sB)
where s is the path length of the dynamics.
Note that to obtain this matrix a linear fit to the true fields was
performed where the regression is weighted by the distribution itself.
According the "Equivalent Beam" principle by Sacherar this regression
then only loosely couples to the actual distribution profile of the the
ellipsoidal charge. For computational purposes we have assumed a uniform
density ellipsoid, but that is of no real consequence practically.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||