Loading...
Searching...
No Matches
PenningTrap Class Reference

A class that simulates a Penning trap. More...

`#include <PenningTrap.hpp>`

## Public Member Functions

| PenningTrap (double B_0=T, double V_0=25.*V/1000., double d=500.)
| Set B_0, V_0 and d.
void | add_particle (Particle particle)
| Add a particle to the system.
arma::vec | external_E_field (arma::vec r)
| Calculate E at point r.
arma::vec | external_B_field (arma::vec r)
| Calculate B at point r.
arma::vec | force_on_particle (int i, int j)
| Calculate the force between 2 particles.
arma::vec | total_force_external (int i)
| Calculate the total external force on a particle.
arma::vec | total_force_particles (int i)
| Calculate the total force on a particle from other particles.
arma::vec | total_force (int i)
| calculate the total force on a particle.
void | evolve_RK4 (double dt)
| Go forward one timestep using the RK4 method.
void | evolve_forward_euler (double dt)
| Go forward one timestep using the forward Euler method.
arma::vec | get_particle (int i)
double | get_d ()

## Private Attributes

double | B_0
| Magnetic field strength.
double | V_0
| Applied potential.
double | d
| Characteristic dimension.
std::vector< Particle > | particles
| The particles in the Penning trap.

## Detailed Description

A class that simulates a Penning trap.

This class simulates a Penning trap. It can take in a number of particles and simulate how they would behave inside a Penning trap.

Definition at line 29 of file PenningTrap.hpp.

## Constructor & Destructor Documentation

## PenningTrap()

PenningTrap::PenningTrap | ( | double | B_0 = `T`,
|  | double | V_0 = `25.*V/1000.`,
|  | double | d = `500.`
| ) |  |

Set B_0, V_0 and d.

Definition at line 20 of file PenningTrap.cpp.

## Member Function Documentation

## add_particle()

void PenningTrap::add_particle | ( | Particle | particle | ) |

Add a particle to the system.

Definition at line 27 of file PenningTrap.cpp.

## evolve_forward_euler()

void PenningTrap::evolve_forward_euler | ( | double | dt | ) |

Go forward one timestep using the forward Euler method.

Definition at line 167 of file PenningTrap.cpp.

## evolve_RK4()

void PenningTrap::evolve_RK4 | ( | double | dt | ) |

Go forward one timestep using the RK4 method.

Definition at line 104 of file PenningTrap.cpp.

## external_B_field()

arma::vec PenningTrap::external_B_field | ( | arma::vec | r | ) |

Calculate B at point r.

Definition at line 43 of file PenningTrap.cpp.

## external_E_field()

arma::vec PenningTrap::external_E_field | ( | arma::vec | r | ) |

Calculate E at point r.

Definition at line 32 of file PenningTrap.cpp.

## force_on_particle()

arma::vec PenningTrap::force_on_particle | ( | int | i,
|  | int | j
| ) |  |

Calculate the force between 2 particles.

Calculate the force exhibited on particle p_i from particle p_j.

Definition at line 50 of file PenningTrap.cpp.

## get_d()

double PenningTrap::get_d | ( |  | ) |

Definition at line 188 of file PenningTrap.cpp.

## get_particle()

arma::vec PenningTrap::get_particle | ( | int | i | ) |

Definition at line 183 of file PenningTrap.cpp.

## total_force()

arma::vec PenningTrap::total_force | ( | int | i | ) |

calculate the total force on a particle.

Definition at line 99 of file PenningTrap.cpp.

## total_force_external()

arma::vec PenningTrap::total_force_external | ( | int | i | ) |

Calculate the total external force on a particle.

Calculate the total amount of force that E and B exhibits on particle p_i.

Definition at line 65 of file PenningTrap.cpp.

## total_force_particles()

arma::vec PenningTrap::total_force_particles | ( | int | i | ) |

Calculate the total force on a particle from other particles.

Definition at line 80 of file PenningTrap.cpp.

## Member Data Documentation

## B_0

double PenningTrap::B_0

private

Magnetic field strength.

Definition at line 31 of file PenningTrap.hpp.

## d

double PenningTrap::d

private

Characteristic dimension.

Definition at line 33 of file PenningTrap.hpp.

## particles

std::vector<Particle> PenningTrap::particles

private

The particles in the Penning trap.

Definition at line 34 of file PenningTrap.hpp.

## V_0

double PenningTrap::V_0

private

Applied potential.

Definition at line 32 of file PenningTrap.hpp.

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

- include/PenningTrap.hpp
- src/PenningTrap.cpp