OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
MapAnalyser Class Reference

#include <MapAnalyser.h>

Public Types

typedef FMatrix< double, 6, 6 > fMatrix_t
 
typedef FMatrix< std::complex
< double >, 6, 6 > 
cfMatrix_t
 

Public Member Functions

 MapAnalyser ()
 
void linTAnalyze (const fMatrix_t &tMatrix)
 
void linSigAnalyze (fMatrix_t &sigMatrix)
 

Private Member Functions

void eigenDecomp_m (const fMatrix_t &M, cfMatrix_t &eigenVal, cfMatrix_t &eigenVec, cfMatrix_t &invEigenVec)
 
cfMatrix_t getBlockDiagonal_m (const fMatrix_t &M, cfMatrix_t &eigenVecM, cfMatrix_t &invEigenVecM)
 
void printPhaseShift_m (fMatrix_t &Sigma, fMatrix_t tM, cfMatrix_t &oldN)
 
void setNMatrix_m (fMatrix_t &M, cfMatrix_t &N, cfMatrix_t &invN)
 
fMatrix_t createRotMatrix_m (std::array< double, 3 > phi)
 
fMatrix_t createSkewMatrix_m ()
 
fMatrix_t realPartOfMatrix_m (cfMatrix_t cM)
 
fMatrix_t imagPartOfMatrix_m (cfMatrix_t cM)
 
cfMatrix_t complexTypeMatrix_m (fMatrix_t M)
 
cfMatrix_t invertMatrix_m (const cfMatrix_t &M)
 
void rearrangeEigen_m (cfMatrix_t &EigenVal, cfMatrix_t &EigenVec)
 

Private Attributes

IpplTimings::TimerRef mapAnalysis_m
 
IpplTimings::TimerRef bunchAnalysis_m
 

Detailed Description

Definition at line 11 of file MapAnalyser.h.

Member Typedef Documentation

typedef FMatrix<std::complex<double>, 6, 6> MapAnalyser::cfMatrix_t

Definition at line 15 of file MapAnalyser.h.

typedef FMatrix<double, 6, 6> MapAnalyser::fMatrix_t

Definition at line 14 of file MapAnalyser.h.

Constructor & Destructor Documentation

MapAnalyser::MapAnalyser ( )

Definition at line 30 of file MapAnalyser.cpp.

Member Function Documentation

MapAnalyser::cfMatrix_t MapAnalyser::complexTypeMatrix_m ( fMatrix_t  M)
private

Definition at line 446 of file MapAnalyser.cpp.

Referenced by linTAnalyze().

MapAnalyser::fMatrix_t MapAnalyser::createRotMatrix_m ( std::array< double, 3 >  phi)
private

Definition at line 402 of file MapAnalyser.cpp.

References cos(), Attrib::Distribution::R, and sin().

Referenced by printPhaseShift_m().

Here is the call graph for this function:

MapAnalyser::fMatrix_t MapAnalyser::createSkewMatrix_m ( )
private

Definition at line 415 of file MapAnalyser.cpp.

Referenced by linTAnalyze(), and printPhaseShift_m().

void MapAnalyser::eigenDecomp_m ( const fMatrix_t M,
cfMatrix_t eigenVal,
cfMatrix_t eigenVec,
cfMatrix_t invEigenVec 
)
private

Eigen-decomposition of M

\[ \mathbf{M} = \mathbf{E} \mathbf{\Lambda} \mathbf{E}^{-1} \]

Parameters
MMatrix to analyze
eigenValEigenValues of \(\mathbf{M}\) \(\mathbf{\Lambda}\)
eigenVecEigenVectors of \(\mathbf{M}\) \(\mathbf{E}\)
invEigenVecinverted EigenVectors of \(\mathbf{M}\) \(\mathbf{E}^{-1}\)

Definition at line 234 of file MapAnalyser.cpp.

Referenced by linSigAnalyze(), linTAnalyze(), and setNMatrix_m().

MapAnalyser::cfMatrix_t MapAnalyser::getBlockDiagonal_m ( const fMatrix_t M,
cfMatrix_t eigenVecM,
cfMatrix_t invEigenVecM 
)
private

Returns the block diagonal form rotation matrix \( \mathbf{R}\).
This Matrix gets created by applying a symplectic and its inverse Matrix \(U\) on M \( \mathbf{R} = \mathbf{UMU}^{-1}\) [Wolski_2005]

\[ \mathbf{R}_{\left( \mu_x,\mu_y, \mu_z \right)}= \begin{pmatrix} \mathbf{R}_{2\left( \mu_x\right)} & 0 &0 \\ 0 & \mathbf{R}_{2\left( \mu_y\right)} &0 \\ 0 & 0 &\mathbf{R}_{2\left( \mu_z\right)} \end{pmatrix} , \qquad \mathbf{R_2}_{\left( \alpha \right)}= \begin{pmatrix} \cos\left( \alpha \right) & \sin\left( \alpha \right)\\ -\sin\left( \alpha \right) & \cos\left( \alpha \right)\\ \end{pmatrix} \]

Parameters
MMatrix to analyze
eigenVecEigenVectors of \(\mathbf{M}\)
invEigenVecinverted EigenVectors of \(\mathbf{M}\)

Definition at line 293 of file MapAnalyser.cpp.

References sqrt().

Referenced by linSigAnalyze(), and linTAnalyze().

Here is the call graph for this function:

MapAnalyser::fMatrix_t MapAnalyser::imagPartOfMatrix_m ( cfMatrix_t  cM)
private

Definition at line 436 of file MapAnalyser.cpp.

Referenced by linTAnalyze().

MapAnalyser::cfMatrix_t MapAnalyser::invertMatrix_m ( const cfMatrix_t M)
private

Definition at line 457 of file MapAnalyser.cpp.

References endl(), imag(), and real().

Referenced by linTAnalyze().

Here is the call graph for this function:

void MapAnalyser::linSigAnalyze ( fMatrix_t sigMatrix)

Analyzes the transfer matrix

@ param sigMatrix Sigma Matrix

Definition at line 194 of file MapAnalyser.cpp.

References bunchAnalysis_m, eigenDecomp_m(), getBlockDiagonal_m(), IpplTimings::startTimer(), and IpplTimings::stopTimer().

Here is the call graph for this function:

void MapAnalyser::linTAnalyze ( const fMatrix_t tMatrix)
void MapAnalyser::printPhaseShift_m ( fMatrix_t Sigma,
fMatrix_t  tM,
cfMatrix_t oldN 
)
private

:TODO: WIP Prints phase shift

Parameters
SigmaSigma Matirx
tMTransfer Matirx
oldN\(\mathbf{N}\) matrix

Definition at line 329 of file MapAnalyser.cpp.

References atan(), createRotMatrix_m(), createSkewMatrix_m(), real(), and setNMatrix_m().

Here is the call graph for this function:

MapAnalyser::fMatrix_t MapAnalyser::realPartOfMatrix_m ( cfMatrix_t  cM)
private

Definition at line 426 of file MapAnalyser.cpp.

void MapAnalyser::rearrangeEigen_m ( cfMatrix_t EigenVal,
cfMatrix_t EigenVec 
)
private

Definition at line 520 of file MapAnalyser.cpp.

void MapAnalyser::setNMatrix_m ( fMatrix_t M,
cfMatrix_t N,
cfMatrix_t invN 
)
private

sets a symplectic \( \mathbf{N} \) matrix.
This function is a subfunction of ThickTracker::getBlockDiagonal. [Wolski_2005]

Parameters
MMatrix to analyze
Nsymplectic \(\mathbf{N}\) matrix
invNinverted symplectic \(\mathbf{N}^{-1}\) matrix

Definition at line 362 of file MapAnalyser.cpp.

References eigenDecomp_m(), and sqrt().

Referenced by printPhaseShift_m().

Here is the call graph for this function:

Member Data Documentation

IpplTimings::TimerRef MapAnalyser::bunchAnalysis_m
private

Definition at line 116 of file MapAnalyser.h.

Referenced by linSigAnalyze().

IpplTimings::TimerRef MapAnalyser::mapAnalysis_m
private

Definition at line 115 of file MapAnalyser.h.

Referenced by linTAnalyze().


The documentation for this class was generated from the following files: