Difference between revisions of "RDYNLAB"
Line 10: | Line 10: | ||
<math>\frac{\vec{v}}{c}=\frac{\vec{p}c}{E}</math> | <math>\frac{\vec{v}}{c}=\frac{\vec{p}c}{E}</math> | ||
− | <math>E^2-c^2\vec{p}\cdot\vec{p}=m_0^2c^4</math> | + | <math>E^2-c^2\vec{p}\cdot\vec{p}=m_0^2c^4</math>, |
and taking the time derivatives of both, we find | and taking the time derivatives of both, we find | ||
Line 16: | Line 16: | ||
<math> \frac{1}{c}\frac{d\vec{v}}{dt}=\frac{c}{E}\frac{d\vec{p}}{dt}-c\vec{p}\frac{1}{E^2}\frac{dE}{dt}</math> | <math> \frac{1}{c}\frac{d\vec{v}}{dt}=\frac{c}{E}\frac{d\vec{p}}{dt}-c\vec{p}\frac{1}{E^2}\frac{dE}{dt}</math> | ||
− | <math> 2E\frac{dE}{dt}-2c^2\vec{p}\cdot\frac{d\vec{p}}{dt}=0</math> | + | <math> 2E\frac{dE}{dt}-2c^2\vec{p}\cdot\frac{d\vec{p}}{dt}=0</math>. |
Solving this second equation for <math>dE/dt</math> and plugging into the first, also noting that <math>d\vec{p}/dt=\vec{F}</math>, we obtain | Solving this second equation for <math>dE/dt</math> and plugging into the first, also noting that <math>d\vec{p}/dt=\vec{F}</math>, we obtain | ||
− | <math> \frac{1}{c}\frac{d\vec{v}}{dt}=\frac{c}{E}\vec{F}-\frac{c}{E^3}\vec{p}\left(c^2\vec{p}\cdot\vec{F}\right)</math> | + | <math> \frac{1}{c}\frac{d\vec{v}}{dt}=\frac{c}{E}\vec{F}-\frac{c}{E^3}\vec{p}\left(c^2\vec{p}\cdot\vec{F}\right)</math>. |
− | Noting that < | + | Noting that <math>c\vec{p}=\frac{E}{c}\vec{v}</math>, we find |
− | <math> \frac{E}{c^2}\frac{d\vec{v}}{dt}=\vec{F}-\frac{\vec{v}}{c}\left(\frac{\vec{v}}{c}\cdot\vec{F}\right)</math> | + | <math> \frac{E}{c^2}\frac{d\vec{v}}{dt}=\vec{F}-\frac{\vec{v}}{c}\left(\frac{\vec{v}}{c}\cdot\vec{F}\right)</math>. |
+ | |||
+ | We now decompose the force into pieces that are parallel and perpendicular to the velocity of the particle, i.e. | ||
+ | |||
+ | <math> \vec{F}=\vec{F}_{\parallel} + \vec{F}_{\perp} </math> | ||
+ | |||
+ | where | ||
+ | |||
+ | <math> \vec{F}_{\parallel}=\left(\vec{F}\cdot\hat{v}\right)\hat(v) </math>. | ||
Revision as of 17:29, 18 June 2009
This is a library for modeling Relativistic DYNamics in the LAB frame. It uses an eigth order Runge-Kutta algorithm to solve the relativistic dynamical equations for particle motion, including radiative power losses for charged particles, as described in this page.
The general problem of modeling relativistic particle trajectories for a given force boils down to solving the following system of six differential equations:
where
is the position of the particle, is the momentum of the particle, and is the acceleration of the particle which can be derived from the force. Classically, we would just use . Such a description, however, is not consistent with special relativity. Indeed, starting from the relativistic relations,
and taking the time derivatives of both, we find
.
Solving this second equation for
and plugging into the first, also noting that , we obtain.
Noting that
, we find.
We now decompose the force into pieces that are parallel and perpendicular to the velocity of the particle, i.e.
where
.
, is the rest energy of the particle, and is the usual relativistic factor. These equations are solved subject to an appropriate set of boundary conditions, usually the initial position and momentum of the particle.
In simple cases, such as when the fields are uniform, this set of equations can be solved analytically. However, for the "silver" permanent magnet we plan on using for the pair spectrometer, the fields are anything but uniform. In such a case, the system must be solved numerically.
I am unable to post code to the wiki, so I have copied and pasted it all here. You will need all of these files in order to compile the code. GSL must be installed before you can compile this library.
The code can be compiled into a shared object library using the autoconf, automake, and libtool tools. Optionally, you could just compile these source files into other programs.
Return to Simulating Particle Trajectories