OPAL (Object Oriented Parallel Accelerator Library)
2021.1.99
OPAL
|
This class generates the matrices for the one turn matrix of a cyclotron. More...
#include <MapGenerator.h>
Public Types | |
typedef Value_type | value_type |
Type of variables. More... | |
typedef Size_type | size_type |
Type for specifying sizes. More... | |
typedef Series_type | series_type |
Type of truncated power series. More... | |
typedef Map_type | map_type |
Type of a map. More... | |
typedef Hamiltonian_type | hamiltonian_type |
Type of the Hamiltonian. More... | |
typedef Space_charge_type | space_charge_type |
Type of the Hamiltonian representing the space charge. More... | |
typedef boost::numeric::ublas::matrix< value_type > | matrix_type |
Type for specifying matrices. More... | |
typedef std::vector< value_type > | vector_type |
Type for specifying vectors. More... | |
Public Member Functions | |
MapGenerator (size_type) | |
Initialize. More... | |
matrix_type | generateMap (const series_type &, value_type, size_type) |
Generates a map based on the Hamiltonian for a given angle. More... | |
void | combine (std::vector< matrix_type > &, std::vector< matrix_type > &) |
Combine given maps. More... | |
matrix_type | combine (std::vector< matrix_type > &maps) |
matrix_type | getMap () |
Returns the one turn map. More... | |
std::pair< value_type, value_type > | computeTunes (const matrix_type &map) |
Private Attributes | |
size_type | nMaps_m |
Number of maps. More... | |
matrix_type | Mturn_m |
One-turn matrix. More... | |
This class generates the matrices for the one turn matrix of a cyclotron.
Definition at line 30 of file MapGenerator.h.
typedef Hamiltonian_type MapGenerator< Value_type, Size_type, Series_type, Map_type, Hamiltonian_type, Space_charge_type >::hamiltonian_type |
Type of the Hamiltonian.
Definition at line 42 of file MapGenerator.h.
typedef Map_type MapGenerator< Value_type, Size_type, Series_type, Map_type, Hamiltonian_type, Space_charge_type >::map_type |
Type of a map.
Definition at line 40 of file MapGenerator.h.
typedef boost::numeric::ublas::matrix<value_type> MapGenerator< Value_type, Size_type, Series_type, Map_type, Hamiltonian_type, Space_charge_type >::matrix_type |
Type for specifying matrices.
Definition at line 47 of file MapGenerator.h.
typedef Series_type MapGenerator< Value_type, Size_type, Series_type, Map_type, Hamiltonian_type, Space_charge_type >::series_type |
Type of truncated power series.
Definition at line 38 of file MapGenerator.h.
typedef Size_type MapGenerator< Value_type, Size_type, Series_type, Map_type, Hamiltonian_type, Space_charge_type >::size_type |
Type for specifying sizes.
Definition at line 36 of file MapGenerator.h.
typedef Space_charge_type MapGenerator< Value_type, Size_type, Series_type, Map_type, Hamiltonian_type, Space_charge_type >::space_charge_type |
Type of the Hamiltonian representing the space charge.
Definition at line 44 of file MapGenerator.h.
typedef Value_type MapGenerator< Value_type, Size_type, Series_type, Map_type, Hamiltonian_type, Space_charge_type >::value_type |
Type of variables.
Definition at line 34 of file MapGenerator.h.
typedef std::vector<value_type> MapGenerator< Value_type, Size_type, Series_type, Map_type, Hamiltonian_type, Space_charge_type >::vector_type |
Type for specifying vectors.
Definition at line 49 of file MapGenerator.h.
MapGenerator< Value_type, Size_type, Series_type, Map_type, Hamiltonian_type, Space_charge_type >::MapGenerator | ( | size_type | nMaps | ) |
void MapGenerator< Value_type, Size_type, Series_type, Map_type, Hamiltonian_type, Space_charge_type >::combine | ( | std::vector< matrix_type > & | Mscs, |
std::vector< matrix_type > & | Mcycs | ||
) |
Combine given maps.
Combines the space charge maps (for each angle one) and the cyclotron maps (for each angle one) to the ont turn map, taking lists of maps
Mscs | is a list of space charge maps (the higher the index, the higher the angle) |
Mcycs | is a list of cyclotron maps (the higher the index, the higher the angle) |
Definition at line 168 of file MapGenerator.h.
MapGenerator< Value_type, Size_type, Series_type, Map_type, Hamiltonian_type, Space_charge_type >::matrix_type MapGenerator< Value_type, Size_type, Series_type, Map_type, Hamiltonian_type, Space_charge_type >::combine | ( | std::vector< matrix_type > & | maps | ) |
Combine given container of maps.
maps | to be combined. |
Definition at line 197 of file MapGenerator.h.
References prod().
std::pair< Value_type, Value_type > MapGenerator< Value_type, Size_type, Series_type, Map_type, Hamiltonian_type, Space_charge_type >::computeTunes | ( | const matrix_type & | map | ) |
Compute the radial and vertical tune from the map.
map | from where to compute the tunes. |
Definition at line 246 of file MapGenerator.h.
References abs(), acos(), arg(), Physics::u_two_pi, and value_type().
MapGenerator< Value_type, Size_type, Series_type, Map_type, Hamiltonian_type, Space_charge_type >::matrix_type MapGenerator< Value_type, Size_type, Series_type, Map_type, Hamiltonian_type, Space_charge_type >::generateMap | ( | const series_type & | H, |
value_type | ds, | ||
size_type | order | ||
) |
Generates a map based on the Hamiltonian for a given angle.
H | represents the Hamiltonian |
ds | is the step size (angle dependent) |
order | is the truncation order of the Taylor series of the exponential function |
Definition at line 136 of file MapGenerator.h.
References ExpMap().
MapGenerator< Value_type, Size_type, Series_type, Map_type, Hamiltonian_type, Space_charge_type >::matrix_type MapGenerator< Value_type, Size_type, Series_type, Map_type, Hamiltonian_type, Space_charge_type >::getMap |
Returns the one turn map.
Definition at line 228 of file MapGenerator.h.
|
private |
One-turn matrix.
Definition at line 94 of file MapGenerator.h.
|
private |
Number of maps.
Definition at line 92 of file MapGenerator.h.