|
OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
OPAL
|
A Lie algebraic map, factored according to Dragt and Finn. More...
#include <DragtFinnMap.h>

Public Member Functions | |
| DragtFinnMap (const DragtFinnMap &) | |
| ~DragtFinnMap () | |
| const DragtFinnMap & | operator= (const DragtFinnMap &) |
| DragtFinnMap () | |
| Construct identity map. More... | |
| DragtFinnMap (int) | |
| Construct identity map with space for given order. More... | |
| DragtFinnMap (const FVps< double, 2 *N > &map) | |
| Build factored representation from a Taylor series map. More... | |
| DragtFinnMap (const FTps< double, 2 *N > &map) | |
| Build factored representation from a pseudo-Hamiltonian. More... | |
| DragtFinnMap (const LinearMap< double, 2 *N > &map) | |
| Build factored representation from a linear map. More... | |
| operator FVps< double, 2 *N > () const | |
| Convert to Taylor series map. More... | |
| operator LinearMap< double, 2 *N > () const | |
| Convert to Taylor series map. More... | |
| void | assign (const FMatrix< double, 2 *N, 2 *N > &) |
| Assign the matrix representing the linear transform. More... | |
| void | assign (const FTps< double, 2 *N > &) |
| Assign the complete set of generators. More... | |
| void | assign (const FLieGenerator< double, N > &) |
| Assign the generator for a selected order. More... | |
| const FMatrix< double, 2 *N, 2 *N > & | getMatrix () const |
| Return the matrix representing the linear transform. More... | |
| FMatrix< double, 2 *N, 2 *N > & | getMatrix () |
| Return the matrix representing the linear transform. More... | |
| const FTps< double, 2 *N > & | getGenerators () const |
| Return the complete set of generators. More... | |
| FTps< double, 2 *N > & | getGenerators () |
| Return the complete set of generators. More... | |
| const FLieGenerator< double, N > | getGenerator (int) const |
| Return the generator for a selected order. More... | |
| int | getOrder () const |
| Return the order of the generators. More... | |
| DragtFinnMap | inverse () const |
| Compute inverse map. More... | |
| DragtFinnMap | reverse () const |
| Compute inverse factorisation of map. More... | |
| void | operator+= (const FTps< double, 2 *N > &) |
| Add to set of generators. More... | |
| void | operator-= (const FTps< double, 2 *N > &) |
| Subtract from set of generators. More... | |
| void | operator+= (const FLieGenerator< double, N > &) |
| Add to generator of given order. More... | |
| void | operator-= (const FLieGenerator< double, N > &) |
| Subtract from generator of given order. More... | |
| DragtFinnMap | catenate (const DragtFinnMap &) const |
| Substitute (concatenate) with another map in beam order. More... | |
| DragtFinnMap | conjugate (const DragtFinnMap &) const |
| Conjugate with another map. More... | |
| void | dynamicFixedPoint (FVector< double, 2 *N > &fp, DragtFinnMap &map) |
| Compute dynamic fixed point. More... | |
| void | staticFixedPoint (FVector< double, 2 *N > &fp, DragtFinnMap &map) |
| Compute static fixed point. More... | |
| void | removeDispersion (DragtFinnMap &dm, DragtFinnMap &map) |
| Split map into dispersion map and non-dispersive part. More... | |
| void | trackOrbit (FVector< double, 2 *N > &orbit, DragtFinnMap &map) |
| Track an orbit through the map. More... | |
| DragtFinnMap | transform (const FLieGenerator< double, N > &g, int topOrder) |
| Build the terminating exponential series. More... | |
Static Public Member Functions | |
| static DragtFinnMap | factorBerzForestIrwin (const FTps< double, 2 *N > &H) |
| static DragtFinnMap | factorDouglas (const FTps< double, 2 *N > &H) |
| static DragtFinnMap | factorSimple (const FTps< double, 2 *N > &H) |
Private Member Functions | |
| const double * | begin (int) const |
| double * | begin (int) |
| const double * | end (int) const |
| double * | end (int) |
| DragtFinnMap | catenateZero (const DragtFinnMap &) const |
Static Private Member Functions | |
| static FMatrix< double, 2 *N, 2 *N > | exponentiate (const FMatrix< double, 2 *N, 2 *N > &) |
| static DragtFinnMap | factorize (const FTps< double, 2 *N > &H) |
| static FMatrix< double, 2 *N, 2 *N > | makeMatrix (const FLieGenerator< double, N > &f_2) |
| static void | move_g_1 (DragtFinnMap &f, DragtFinnMap &g) |
| static int | orderModes (FMatrix< double, 2 *N, 2 *N > &, FVector< std::complex< double >, 2 *N > &) |
Private Attributes | |
| FMatrix< double, 2 *N, 2 *N > | itsMatrix |
| FTps< double, 2 *N > | itsGenerators |
A Lie algebraic map, factored according to Dragt and Finn.
Definition at line 43 of file DragtFinnMap.h.
| DragtFinnMap< N >::DragtFinnMap | ( | const DragtFinnMap< N > & | rhs | ) |
Definition at line 250 of file DragtFinnMap.h.
| DragtFinnMap< N >::~DragtFinnMap | ( | ) |
Definition at line 273 of file DragtFinnMap.h.
| DragtFinnMap< N >::DragtFinnMap | ( | ) |
Construct identity map.
Definition at line 257 of file DragtFinnMap.h.
References DragtFinnMap< N >::itsMatrix.
|
explicit |
Construct identity map with space for given order.
Definition at line 265 of file DragtFinnMap.h.
References DragtFinnMap< N >::itsMatrix.
|
explicit |
Build factored representation from a Taylor series map.
Definition at line 288 of file DragtFinnMap.h.
References DragtFinnMap< N >::itsGenerators.
|
explicit |
Build factored representation from a pseudo-Hamiltonian.
Definition at line 352 of file DragtFinnMap.h.
References assign(), DragtFinnMap< N >::assign(), DragtFinnMap< N >::catenateZero(), FTps< T, N >::filter(), DragtFinnMap< N >::getGenerator(), DragtFinnMap< N >::getGenerators(), DragtFinnMap< N >::getMatrix(), FTps< T, N >::getMaxOrder(), FTps< T, N >::substitute(), and DragtFinnMap< N >::transform().

|
explicit |
Build factored representation from a linear map.
Definition at line 300 of file DragtFinnMap.h.
References DragtFinnMap< N >::itsGenerators.
| void DragtFinnMap< N >::assign | ( | const FMatrix< double, 2 *N, 2 *N > & | mat | ) |
Assign the matrix representing the linear transform.
Definition at line 395 of file DragtFinnMap.h.
Referenced by LieMapper::applyTransform(), DragtFinnMap< N >::catenateZero(), DragtFinnMap< N >::DragtFinnMap(), DragtFinnNormalForm< N >::DragtFinnNormalForm(), DragtFinnMap< N >::factorBerzForestIrwin(), DragtFinnMap< N >::factorDouglas(), DragtFinnMap< N >::factorSimple(), DragtFinnMap< N >::inverse(), DragtFinnMap< N >::move_g_1(), DragtFinnMap< N >::removeDispersion(), DragtFinnMap< N >::reverse(), DragtFinnMap< N >::trackOrbit(), LieMapper::visitCorrector(), and LieMapper::visitSeparator().
| void DragtFinnMap< N >::assign | ( | const FTps< double, 2 *N > & | gen | ) |
Assign the complete set of generators.
Definition at line 402 of file DragtFinnMap.h.
| void DragtFinnMap< N >::assign | ( | const FLieGenerator< double, N > & | gen | ) |
Assign the generator for a selected order.
Definition at line 409 of file DragtFinnMap.h.
References FLieGenerator< T, N >::begin(), FTps< T, N >::begin(), FLieGenerator< T, N >::end(), FLieGenerator< T, N >::getOrder(), and FTps< T, N >::unique().

|
inlineprivate |
Definition at line 1058 of file DragtFinnMap.h.
References FTpsData< N >::getSize().

|
inlineprivate |
Definition at line 1051 of file DragtFinnMap.h.
References FTpsData< N >::getSize().

| DragtFinnMap< N > DragtFinnMap< N >::catenate | ( | const DragtFinnMap< N > & | rhs | ) | const |
Substitute (concatenate) with another map in beam order.
Definition at line 813 of file DragtFinnMap.h.
References DragtFinnMap< N >::catenateZero(), FTps< T, N >::filter(), and DragtFinnMap< N >::itsGenerators.
Referenced by LieMapper::applyDrift(), LieMapper::applyTransform(), DragtFinnMap< N >::conjugate(), LieMapper::visitCorrector(), LieMapper::visitMultipole(), LieMapper::visitRBend(), LieMapper::visitRFCavity(), LieMapper::visitSBend(), LieMapper::visitSeparator(), and LieMapper::visitSolenoid().

|
private |
Definition at line 1079 of file DragtFinnMap.h.
References DragtFinnMap< N >::assign(), FTps< T, N >::filter(), DragtFinnMap< N >::getGenerators(), DragtFinnMap< N >::getMatrix(), DragtFinnMap< N >::getOrder(), max(), and PoissonBracket().
Referenced by DragtFinnMap< N >::catenate(), DragtFinnMap< N >::DragtFinnMap(), and DragtFinnMap< N >::removeDispersion().

| DragtFinnMap< N > DragtFinnMap< N >::conjugate | ( | const DragtFinnMap< N > & | rhs | ) | const |
Conjugate with another map.
Definition at line 828 of file DragtFinnMap.h.
References DragtFinnMap< N >::catenate(), and DragtFinnMap< N >::inverse().
Referenced by DragtFinnMap< N >::factorBerzForestIrwin(), and DragtFinnMap< N >::removeDispersion().

| void DragtFinnMap< N >::dynamicFixedPoint | ( | FVector< double, 2 *N > & | fp, |
| DragtFinnMap< N > & | map | ||
| ) |
Compute dynamic fixed point.
Definition at line 835 of file DragtFinnMap.h.
References FLUMatrix< T, N >::backSubstitute(), euclidean_norm(), fp1(), and DragtFinnMap< N >::getMatrix().
Referenced by Dynamic::execute().

|
inlineprivate |
Definition at line 1072 of file DragtFinnMap.h.
References FTpsData< N >::getSize().

|
inlineprivate |
Definition at line 1065 of file DragtFinnMap.h.
References FTpsData< N >::getSize().

|
staticprivate |
Definition at line 1146 of file DragtFinnMap.h.
References FLUMatrix< T, N >::backSubstitute().

|
static |
Definition at line 426 of file DragtFinnMap.h.
References abs(), DragtFinnMap< N >::assign(), Physics::c, DragtFinnMap< N >::conjugate(), cos(), cosh(), FDoubleEigen< N >::eigenValues(), FTps< T, N >::filter(), FTpsData< N >::getExponents(), DragtFinnMap< N >::getGenerators(), FTps< T, N >::getMaxOrder(), imag(), FLUMatrix< T, N >::inverse(), FDoubleEigen< N >::packedEigenVectors(), pi, pow(), real(), FLieGenerator< T, N >::scale(), sin(), sinh(), FTps< T, N >::substitute(), FLieGenerator< T, N >::transform(), and DragtFinnMap< N >::transform().

|
static |
Definition at line 555 of file DragtFinnMap.h.
References DragtFinnMap< N >::assign(), FTps< T, N >::getMaxOrder(), PoissonBracket(), and Taylor< T >::sum().

|
staticprivate |
Definition at line 1130 of file DragtFinnMap.h.
References FLieGenerator< T, N >::derivative(), and FLieGenerator< T, N >::isZero().

|
static |
Definition at line 652 of file DragtFinnMap.h.
References DragtFinnMap< N >::assign(), FTps< T, N >::filter(), FTps< T, N >::getMaxOrder(), FLieGenerator< T, N >::isZero(), and FLieGenerator< T, N >::transform().
Referenced by LieMapper::applyDrift(), LieMapper::visitMultipole(), LieMapper::visitRBend(), LieMapper::visitRFCavity(), LieMapper::visitSBend(), and LieMapper::visitSolenoid().

| const FLieGenerator< double, N > DragtFinnMap< N >::getGenerator | ( | int | order | ) | const |
Return the generator for a selected order.
Definition at line 699 of file DragtFinnMap.h.
References FLieGenerator< T, N >::begin(), and FLieGenerator< T, N >::end().
Referenced by DragtFinnMap< N >::DragtFinnMap(), DragtFinnNormalForm< N >::DragtFinnNormalForm(), and DragtFinnMap< N >::move_g_1().

| const FTps< double, 2 *N > & DragtFinnMap< N >::getGenerators | ( | ) | const |
Return the complete set of generators.
Definition at line 685 of file DragtFinnMap.h.
Referenced by DragtFinnMap< N >::catenateZero(), DragtFinnMap< N >::DragtFinnMap(), DragtFinnNormalForm< N >::DragtFinnNormalForm(), DragtFinnMap< N >::factorBerzForestIrwin(), DragtFinnMap< N >::inverse(), DragtFinnMap< N >::move_g_1(), DragtFinnMap< N >::removeDispersion(), and DragtFinnMap< N >::trackOrbit().
| FTps< double, 2 *N > & DragtFinnMap< N >::getGenerators | ( | ) |
Return the complete set of generators.
Definition at line 692 of file DragtFinnMap.h.
| const FMatrix< double, 2 *N, 2 *N > & DragtFinnMap< N >::getMatrix | ( | ) | const |
Return the matrix representing the linear transform.
Definition at line 671 of file DragtFinnMap.h.
Referenced by DragtFinnMap< N >::catenateZero(), DragtFinnMap< N >::DragtFinnMap(), DragtFinnNormalForm< N >::DragtFinnNormalForm(), DragtFinnMap< N >::dynamicFixedPoint(), DragtFinnMap< N >::move_g_1(), DragtFinnMap< N >::removeDispersion(), DragtFinnMap< N >::staticFixedPoint(), LieMapper::visitCorrector(), and LieMapper::visitSeparator().
| FMatrix< double, 2 *N, 2 *N > & DragtFinnMap< N >::getMatrix | ( | ) |
Return the matrix representing the linear transform.
Definition at line 678 of file DragtFinnMap.h.
| int DragtFinnMap< N >::getOrder | ( | ) | const |
Return the order of the generators.
Definition at line 714 of file DragtFinnMap.h.
Referenced by DragtFinnMap< N >::catenateZero(), DragtFinnNormalForm< N >::DragtFinnNormalForm(), and DragtFinnMap< N >::move_g_1().
| DragtFinnMap< N > DragtFinnMap< N >::inverse | ( | ) | const |
Compute inverse map.
Definition at line 721 of file DragtFinnMap.h.
References DragtFinnMap< N >::assign(), DragtFinnMap< N >::getGenerators(), and FLUMatrix< T, N >::inverse().
Referenced by DragtFinnMap< N >::conjugate().

|
staticprivate |
Definition at line 1167 of file DragtFinnMap.h.
|
staticprivate |
Definition at line 1196 of file DragtFinnMap.h.
References DragtFinnMap< N >::assign(), FTps< T, N >::filter(), DragtFinnMap< N >::getGenerator(), DragtFinnMap< N >::getGenerators(), DragtFinnMap< N >::getMatrix(), DragtFinnMap< N >::getOrder(), PoissonBracket(), and FLieGenerator< T, N >::transform().

| DragtFinnMap< N >::operator FVps< double, 2 *N > | ( | ) | const |
Convert to Taylor series map.
Definition at line 311 of file DragtFinnMap.h.
References ExpMap(), FVps< T, N >::filter(), FTps< T, N >::filter(), and FVps< T, N >::substitute().

| DragtFinnMap< N >::operator LinearMap< double, 2 *N > | ( | ) | const |
Convert to Taylor series map.
Definition at line 336 of file DragtFinnMap.h.
References FLieGenerator< T, N >::transform().

| void DragtFinnMap< N >::operator+= | ( | const FTps< double, 2 *N > & | gen | ) |
Add to set of generators.
Definition at line 759 of file DragtFinnMap.h.
| void DragtFinnMap< N >::operator+= | ( | const FLieGenerator< double, N > & | gen | ) |
Add to generator of given order.
Definition at line 773 of file DragtFinnMap.h.
References FLieGenerator< T, N >::begin(), FTps< T, N >::begin(), FLieGenerator< T, N >::getOrder(), and FTps< T, N >::unique().

| void DragtFinnMap< N >::operator-= | ( | const FTps< double, 2 *N > & | gen | ) |
Subtract from set of generators.
Definition at line 766 of file DragtFinnMap.h.
| void DragtFinnMap< N >::operator-= | ( | const FLieGenerator< double, N > & | gen | ) |
Subtract from generator of given order.
Definition at line 793 of file DragtFinnMap.h.
References FLieGenerator< T, N >::begin(), FTps< T, N >::begin(), FLieGenerator< T, N >::getOrder(), and FTps< T, N >::unique().

| const DragtFinnMap< N > & DragtFinnMap< N >::operator= | ( | const DragtFinnMap< N > & | rhs | ) |
Definition at line 279 of file DragtFinnMap.h.
References DragtFinnMap< N >::itsGenerators, and DragtFinnMap< N >::itsMatrix.
|
staticprivate |
Definition at line 1359 of file DragtFinnMap.h.
References abs(), Physics::c, imag(), real(), sqrt(), and FArray2D< T, M, N >::swapColumns().

| void DragtFinnMap< N >::removeDispersion | ( | DragtFinnMap< N > & | dm, |
| DragtFinnMap< N > & | map | ||
| ) |
Split map into dispersion map and non-dispersive part.
Definition at line 892 of file DragtFinnMap.h.
References DragtFinnMap< N >::assign(), DragtFinnMap< N >::catenateZero(), DragtFinnMap< N >::conjugate(), DragtFinnMap< N >::getGenerators(), DragtFinnMap< N >::getMatrix(), and T.
Referenced by Static::execute().

| DragtFinnMap< N > DragtFinnMap< N >::reverse | ( | ) | const |
Compute inverse factorisation of map.
Definition at line 733 of file DragtFinnMap.h.
References DragtFinnMap< N >::assign(), PoissonBracket(), and FTps< T, N >::substitute().

| void DragtFinnMap< N >::staticFixedPoint | ( | FVector< double, 2 *N > & | fp, |
| DragtFinnMap< N > & | map | ||
| ) |
Compute static fixed point.
Definition at line 858 of file DragtFinnMap.h.
References euclidean_norm(), fp1(), DragtFinnMap< N >::getMatrix(), and X.
Referenced by Static::execute().

| void DragtFinnMap< N >::trackOrbit | ( | FVector< double, 2 *N > & | orbit, |
| DragtFinnMap< N > & | map | ||
| ) |
Track an orbit through the map.
Definition at line 966 of file DragtFinnMap.h.
References DragtFinnMap< N >::assign(), FTps< T, N >::filter(), DragtFinnMap< N >::getGenerators(), PoissonBracket(), and FLieGenerator< T, N >::transform().

| DragtFinnMap< N > DragtFinnMap< N >::transform | ( | const FLieGenerator< double, N > & | g, |
| int | topOrder | ||
| ) |
Build the terminating exponential series.
Definition at line 1029 of file DragtFinnMap.h.
References FLieGenerator< T, N >::getOrder(), and PoissonBracket().
Referenced by DragtFinnMap< N >::DragtFinnMap(), DragtFinnNormalForm< N >::DragtFinnNormalForm(), and DragtFinnMap< N >::factorBerzForestIrwin().

|
private |
Definition at line 222 of file DragtFinnMap.h.
Referenced by DragtFinnMap< N >::catenate(), DragtFinnMap< N >::DragtFinnMap(), and DragtFinnMap< N >::operator=().
|
private |
Definition at line 219 of file DragtFinnMap.h.
Referenced by DragtFinnMap< N >::DragtFinnMap(), and DragtFinnMap< N >::operator=().
1.8.5