+file frequency_narrow_sweeps_long.cpp [code]
+ Sweep of the frequencies from 1.1 to 1.7 using a small time step.
+
file main.cpp [code]
The main program for this project.
diff --git a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.js b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.js
index b85a8c3..f3209f1 100644
--- a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.js
+++ b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.js
@@ -1,6 +1,6 @@
var dir_68267d1309a1af8e8297ef4c3efbcdba =
[
- [ "scripts", "dir_634e799a3947388232110823971192a8.html", "dir_634e799a3947388232110823971192a8" ],
+ [ "frequency_narrow_sweeps_long.cpp", "frequency__narrow__sweeps__long_8cpp.html", "frequency__narrow__sweeps__long_8cpp" ],
[ "main.cpp", "main_8cpp.html", "main_8cpp" ],
[ "Particle.cpp", "Particle_8cpp.html", null ],
[ "PenningTrap.cpp", "PenningTrap_8cpp.html", null ],
diff --git a/docs/files.html b/docs/files.html
index 0176ee4..7537f24 100644
--- a/docs/files.html
+++ b/docs/files.html
@@ -102,7 +102,7 @@ $(document).ready(function(){initNavTree('files.html',''); initResizable(); });
Here is a list of all documented files with brief descriptions:
-
[detail level 1 2 3 ]
+[detail level 1 2 ]
diff --git a/docs/frequency__narrow__sweeps__long_8cpp.html b/docs/frequency__narrow__sweeps__long_8cpp.html
new file mode 100644
index 0000000..be73962
--- /dev/null
+++ b/docs/frequency__narrow__sweeps__long_8cpp.html
@@ -0,0 +1,256 @@
+
+
+
+
+
+
+
+Penning Trap Simulation: src/frequency_narrow_sweeps_long.cpp File Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Penning Trap Simulation
+
+ Simulate particle behavior inside a Penning Trap
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
Sweep of the frequencies from 1.1 to 1.7 using a small time step.
+More...
+
#include <cmath>
+
#include <complex>
+
#include <fstream>
+
#include <omp.h>
+
#include <string>
+
#include <vector>
+
#include "PenningTrap.hpp "
+
#include "constants.hpp "
+
#include "utils.hpp "
+
+
Go to the source code of this file.
+
+
+
Sweep of the frequencies from 1.1 to 1.7 using a small time step.
+
Author Cory Alexander Balaton (coryab)
+
+Janita Ovidie Sandtrøen Willumsen (janitaws)
+
Version 1.0
+
Bug: No known bugs
+
+
Definition in file frequency_narrow_sweeps_long.cpp .
+
+
+
+
+
+
+
◆ PARTICLES
+
+
+
+
+
+ #define PARTICLES 100
+
+
+
+
+
+
+
◆ main()
+
+
+
+
+
+ int main
+ (
+ )
+
+
+
+
+
+
+
◆ potential_resonance_narrow_sweep()
+
+
+
+
+
+ void potential_resonance_narrow_sweep
+ (
+ )
+
+
+
+
+
+
Simulate 100 particles over 500 \( \mu s \) using a time dependent potential.
+
The simulation sweeps over different frequencies in [1., 1.7] MHz.
+
+
Definition at line 34 of file frequency_narrow_sweeps_long.cpp .
+
+
+
+
+
◆ potential_resonance_narrow_sweep_interaction()
+
+
+
+
+
+ void potential_resonance_narrow_sweep_interaction
+ (
+ )
+
+
+
+
+
+
Simulate 100 particles over 500 \( \mu s \) using a time dependent potential.
+
The simulation sweeps over different frequencies in [1., 1.7] MHz.
+
+
Definition at line 91 of file frequency_narrow_sweeps_long.cpp .
+
+
+
+
+
+
+
+
+
diff --git a/docs/frequency__narrow__sweeps__long_8cpp.js b/docs/frequency__narrow__sweeps__long_8cpp.js
new file mode 100644
index 0000000..c5b9bb8
--- /dev/null
+++ b/docs/frequency__narrow__sweeps__long_8cpp.js
@@ -0,0 +1,5 @@
+var frequency__narrow__sweeps__long_8cpp =
+[
+ [ "potential_resonance_narrow_sweep", "frequency__narrow__sweeps__long_8cpp.html#a33d9b1c76c3c80902f89a58b1a6d96ea", null ],
+ [ "potential_resonance_narrow_sweep_interaction", "frequency__narrow__sweeps__long_8cpp.html#ac1816f70ec612edc27848ef7f0875fdb", null ]
+];
\ No newline at end of file
diff --git a/docs/frequency__narrow__sweeps__long_8cpp_source.html b/docs/frequency__narrow__sweeps__long_8cpp_source.html
new file mode 100644
index 0000000..983bcdf
--- /dev/null
+++ b/docs/frequency__narrow__sweeps__long_8cpp_source.html
@@ -0,0 +1,252 @@
+
+
+
+
+
+
+
+Penning Trap Simulation: src/frequency_narrow_sweeps_long.cpp Source File
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Penning Trap Simulation
+
+ Simulate particle behavior inside a Penning Trap
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
Go to the documentation of this file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
38 double amplitudes[]{.1, .4, .7};
+
+
40 double freq_start = 1.1;
+
41 double freq_end = 1.7;
+
42 double freq_increment = .0005;
+
43 size_t freq_iterations =
+
44 (size_t)((freq_end - freq_start) / freq_increment) + 1;
+
+
46 double res[4][freq_iterations];
+
+
48 std::string path =
"output/time_dependent_potential/" ;
+
+
+
+
+
53 #pragma omp parallel for
+
+
55 for (
size_t i = 0; i < freq_iterations; i++) {
+
56 res[0][i] = freq_start + freq_increment * i;
+
+
+
+
+
+
+
+
64 #pragma omp for collapse(2)
+
65 for (
size_t i = 0; i < 3; i++) {
+
66 for (
size_t j = 0; j < freq_iterations; j++) {
+
+
+
+
+
+
+
+
+
+
76 ofile.open(path +
"narrow_sweep_fine.txt" );
+
77 for (
size_t i = 0; i < freq_iterations; i++) {
+
78 ofile << res[0][i] <<
',' << res[1][i] <<
',' << res[2][i] <<
','
+
+
+
+
+
+
+
+
+
+
95 double amplitudes[]{.1, .4, .7};
+
+
97 double freq_start = 1.1;
+
98 double freq_end = 1.7;
+
99 double freq_increment = .0005;
+
100 size_t freq_iterations =
+
101 (size_t)((freq_end - freq_start) / freq_increment) + 1;
+
+
103 double res[4][freq_iterations];
+
+
105 std::string path =
"output/time_dependent_potential/" ;
+
+
+
+
+
110 #pragma omp parallel for
+
111 for (
size_t i = 0; i < freq_iterations; i++) {
+
112 res[0][i] = freq_start + freq_increment * i;
+
+
+
+
+
+
+
+
120 #pragma omp for collapse(2)
+
121 for (
size_t i = 0; i < 3; i++) {
+
122 for (
size_t j = 0; j < freq_iterations; j++) {
+
+
+
+
+
+
+
+
+
131 ofile.open(path +
"narrow_sweep_interactions_fine.txt" );
+
132 for (
size_t i = 0; i < freq_iterations; i++) {
+
133 ofile << res[0][i] <<
',' << res[1][i] <<
',' << res[2][i] <<
','
+
134 << res[3][i] <<
'\n' ;
+
+
+
+
+
+
+
+
+
143 start = omp_get_wtime();
+
+
+
+
+
+
149 end = omp_get_wtime();
+
+
151 std::cout <<
"Time: " << end - start <<
" seconds" << std::endl;
+
+
+
+
A class for simulating a Penning trap.
+
A class that simulates a Penning trap.
+
void reinitialize(double f, double omega_V, double t=0.)
Give all particles new positions and velocities, and change t and V_0.
+
double fraction_of_particles_left(double time, uint steps, std::string method="rk4", bool particle_interaction=true)
Simulate and calculate what fraction of particles are still left inside the Penning trap after the si...
+
+
void potential_resonance_narrow_sweep()
Simulate 100 particles over 500 using a time dependent potential.
+
void potential_resonance_narrow_sweep_interaction()
Simulate 100 particles over 500 using a time dependent potential.
+
Function prototypes and macros that are useful.
+
bool mkpath(std::string path, int mode=0777)
Make path given.
+
+
+
+
+
+
diff --git a/docs/functions.html b/docs/functions.html
index 86b463b..ff9a215 100644
--- a/docs/functions.html
+++ b/docs/functions.html
@@ -176,6 +176,7 @@ $(document).ready(function(){initNavTree('functions.html',''); initResizable();
test_total_force_particles() : PenningTrapTest
total_force() : PenningTrap
total_force_external() : PenningTrap
+total_force_no_interaction() : PenningTrap
total_force_particles() : PenningTrap
diff --git a/docs/functions_func.html b/docs/functions_func.html
index 1b82d50..e821456 100644
--- a/docs/functions_func.html
+++ b/docs/functions_func.html
@@ -119,6 +119,7 @@ $(document).ready(function(){initNavTree('functions_func.html',''); initResizabl
test_total_force_particles() : PenningTrapTest
total_force() : PenningTrap
total_force_external() : PenningTrap
+total_force_no_interaction() : PenningTrap
total_force_particles() : PenningTrap
v_func() : PenningTrap
write_simulation_to_dir() : PenningTrap
diff --git a/docs/globals.html b/docs/globals.html
index 23a1b12..98cafee 100644
--- a/docs/globals.html
+++ b/docs/globals.html
@@ -137,8 +137,8 @@ $(document).ready(function(){initNavTree('globals.html',''); initResizable(); })
- p -
diff --git a/docs/globals_func.html b/docs/globals_func.html
index 376c50c..5d664cd 100644
--- a/docs/globals_func.html
+++ b/docs/globals_func.html
@@ -103,8 +103,8 @@ $(document).ready(function(){initNavTree('globals_func.html',''); initResizable(
close_to() : utils.hpp , utils.cpp
m_assert() : utils.hpp , utils.cpp
mkpath() : utils.hpp , utils.cpp
-potential_resonance_narrow_sweep() : main.cpp
-potential_resonance_narrow_sweep_interaction() : main.cpp
+potential_resonance_narrow_sweep() : frequency_narrow_sweeps_long.cpp , main.cpp
+potential_resonance_narrow_sweep_interaction() : frequency_narrow_sweeps_long.cpp , main.cpp
potential_resonance_wide_sweep() : main.cpp
scientific_format() : utils.hpp , utils.cpp
simulate_100_particles() : main.cpp
diff --git a/docs/index.html b/docs/index.html
index b9d7673..4015ebb 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -126,6 +126,16 @@ Operating systems
+Tools
+
+
Libraries
Python
@@ -139,30 +149,65 @@ Libraries
-
+
Compiling
Compiling is as easy as running this command while being inside the src directory:
+
Running programs
-
+
C++ binaries
To run main or test_suite , just run this command while being inside src:
+
Python scripts
-
+
Install libraries
Before running the scripts, make sure that all libraries are installed. Using pip, you can install all requirements like this:
pip install -r requirements.txt
This recursively install all the packages that are listed in requirements.txt .
-
+
Running scripts
For the Python scripts, run them from the src directory like this:
python scripts/<script-name>
If you have any problems running the scripts, you might have to run this instead:
python3 scripts/<script-name>
-
+
+Batch system
+For the frequency_narrow_sweeps_long program, the is a script called job.script that comes along with it. This is to be able to run it on a batch system using Slurm if you have access to one. This is the recommended way to use this program as it takes approximately 90 minutes to complete when using 16 cores.
+If you happen to have such a system available to you, then you should clone this repo on that system, then compile it by running:
+make frequency_narrow_sweeps_long
+
You might have to load the Armadillo library before compiling.
+After compiling, you can schedule it by running:
+
+Performance
+This section aims to give an idea to the time it takes for the program to run so that you know a bit what to expect if you decide to run it for yourself.
+
+CPU
+The times mentioned here are times achieved on a computer with these specifications:
+
+CPU model
+
+Threads
+
+Clock speed
+
+
+
+Times
+All times mentioned use the evolve_RK4 method.
+Running a simulation with 100 particles without particle interactions over 40000 steps takes around 1.8 seconds. With particle interactions, it takes around 4.8 seconds.
+potential_resonance_wide_sweep takes around 56 seconds to complete.
+potential_resonance_narrow_sweep takes around 172 seconds to complete.
+potential_resonance_narrow_sweep_interaction takes around 936 seconds to complete.
+
Credits
The Doxygen theme used here is doxygen-awesome-css .
diff --git a/docs/main_8cpp.html b/docs/main_8cpp.html
index 5edc69f..dab738a 100644
--- a/docs/main_8cpp.html
+++ b/docs/main_8cpp.html
@@ -173,7 +173,7 @@ Variables
Janita Ovidie Sandtrøen Willumsen (janitaws)
Version 1.0
-Bug: No known bugs
+Bug: No known bugs
Definition in file main.cpp .
@@ -254,7 +254,7 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)
@@ -276,7 +276,7 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)
Simulate 100 particles over 500 \( \mu s \) using a time dependent potential.
The simulation sweeps over different frequencies in [1., 1.7] MHz.
-Definition at line 206 of file main.cpp .
+Definition at line 209 of file main.cpp .
@@ -298,7 +298,7 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)
Simulate 100 particles over 500 \( \mu s \) using a time dependent potential.
The simulation sweeps over different frequencies in [1., 1.7] MHz.
-Definition at line 262 of file main.cpp .
+Definition at line 266 of file main.cpp .
@@ -320,7 +320,7 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)
Simulate 100 particles over 500 \( \mu s \) using a time dependent potential.
The simulation sweeps over different frequencies in [0.2, 2.5] MHz.
-Definition at line 149 of file main.cpp .
+Definition at line 152 of file main.cpp .
@@ -341,7 +341,7 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)
Simulate 100 particles over 50 \( \mu s \).
-Definition at line 132 of file main.cpp .
+Definition at line 134 of file main.cpp .
@@ -362,7 +362,7 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)
Simulate a single particle over the period of 50 \( \mu s \).
-Definition at line 54 of file main.cpp .
+Definition at line 55 of file main.cpp .
@@ -383,7 +383,7 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)
Simulate a single particle over 50 \( \mu s \) using different amount of steps and different methods.
-Definition at line 87 of file main.cpp .
+Definition at line 88 of file main.cpp .
@@ -404,7 +404,7 @@ Janita Ovidie Sandtrøen Willumsen (janitaws)
Simulate 2 particles over the period of 50 \( \mu s \) with and without particle interactions.
-Definition at line 69 of file main.cpp .
+Definition at line 70 of file main.cpp .
diff --git a/docs/main_8cpp_source.html b/docs/main_8cpp_source.html
index ecc9633..22654cb 100644
--- a/docs/main_8cpp_source.html
+++ b/docs/main_8cpp_source.html
@@ -128,317 +128,367 @@ $(document).ready(function(){initNavTree('main_8cpp_source.html',''); initResiza
42 double w_n = (w_0 - std::sqrt(w_0 * w_0 - 2. * w_z2)) / 2.;
43 double A_p = (25. + w_n * 20.) / (w_n - w_p);
44 double A_n = -(25. + w_p * 20.) / (w_n - w_p);
- 45 std::complex<double> f =
- 46 A_p * std::exp(std::complex<double>(0., -w_p * t))
- 47 + A_n * std::exp(std::complex<double>(0., -w_n * t));
- 48 vec3 res{std::real(f), std::imag(f), 20. * std::cos(std::sqrt(w_z2) * t)};
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 79 "output/simulate_2_particles/no_interaction" , time, N,
"rk4" ,
false );
- 80 trap_with_interaction.write_simulation_to_dir(
- 81 "output/simulate_2_particles/with_interaction" , time, N);
-
-
-
-
-
-
-
-
-
- 94 std::string path =
"output/relative_error/RK4/" ;
-
- 96 #pragma omp parallel for
- 97 for (
int i = 0; i < 4; i++) {
- 98 int steps = 4000 * std::pow(2, i);
- 99 double dt = time / (double)steps;
- 100 ofile.open(path + std::to_string(steps) +
"_steps.txt" );
-
- 102 simulation_t res = trap.simulate(time, steps,
"rk4" ,
false );
- 103 for (
int i = 0; i < steps; i++) {
- 104 ofile << arma::norm(res.r_vecs[0][i]
-
-
-
-
-
-
-
- 112 path =
"output/relative_error/euler/" ;
-
- 114 #pragma omp parallel for
- 115 for (
int i = 0; i < 4; i++) {
- 116 int steps = 4000 * std::pow(2, i);
- 117 double dt = time / (double)steps;
- 118 ofile.open(path + std::to_string(steps) +
"_steps.txt" );
-
- 120 simulation_t res = trap.simulate(time, steps,
"euler" ,
false );
- 121 for (
int i = 0; i < steps; i++) {
- 122 ofile << arma::norm(res.r_vecs[0][i]
-
-
-
-
-
-
-
-
-
-
-
-
+ 45 std::cout << A_p <<
"," << A_n << std::endl;
+ 46 std::complex<double> f =
+ 47 A_p * std::exp(std::complex<double>(0., -w_p * t))
+ 48 + A_n * std::exp(std::complex<double>(0., -w_n * t));
+ 49 vec3 res{std::real(f), std::imag(f), 20. * std::cos(std::sqrt(w_z2) * t)};
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 80 "output/simulate_2_particles/no_interaction" , time, N,
"rk4" ,
false );
+ 81 trap_with_interaction.write_simulation_to_dir(
+ 82 "output/simulate_2_particles/with_interaction" , time, N);
+
+
+
+
+
+
+
+
+
+ 95 std::string path =
"output/relative_error/RK4/" ;
+
+ 97 #pragma omp parallel for private(ofile)
+ 98 for (
int i = 0; i < 4; i++) {
+ 99 int steps = 4000 * std::pow(2, i);
+ 100 std::cout << steps << std::endl;
+ 101 double dt = time / (double)steps;
+ 102 ofile.open(path + std::to_string(steps) +
"_steps.txt" );
+
+ 104 simulation_t res = trap.simulate(time, steps,
"rk4" ,
false );
+ 105 for (
int i = 0; i < steps; i++) {
+ 106 ofile << arma::norm(res.r_vecs[0][i]
+
+
+
+
+
+
+
+ 114 path =
"output/relative_error/euler/" ;
+
+ 116 #pragma omp parallel for private(ofile)
+ 117 for (
int i = 0; i < 4; i++) {
+ 118 int steps = 4000 * std::pow(2, i);
+ 119 double dt = time / (double)steps;
+ 120 ofile.open(path + std::to_string(steps) +
"_steps.txt" );
+
+ 122 simulation_t res = trap.simulate(time, steps,
"euler" ,
false );
+ 123 for (
int i = 0; i < steps; i++) {
+ 124 ofile << arma::norm(res.r_vecs[0][i]
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
- 153 double amplitudes[]{.1, .4, .7};
-
- 155 double freq_start = .2;
- 156 double freq_end = 2.5;
- 157 double freq_increment = .02;
- 158 size_t freq_iterations =
- 159 (size_t)((freq_end - freq_start) / freq_increment) + 1;
-
- 161 double res[4][freq_iterations];
-
- 163 std::string path =
"output/time_dependent_potential/" ;
-
+
+
+
+
+ 142 trap.
simulate (time, N,
"rk4" ,
true );
+
+
+
+
+
+
+ 156 double amplitudes[]{.1, .4, .7};
+
+ 158 double freq_start = .2;
+ 159 double freq_end = 2.5;
+ 160 double freq_increment = .02;
+ 161 size_t freq_iterations =
+ 162 (size_t)((freq_end - freq_start) / freq_increment) + 1;
+
+ 164 double res[4][freq_iterations];
-
-
- 168 #pragma omp parallel for
-
- 170 for (
size_t i = 0; i < freq_iterations; i++) {
- 171 res[0][i] = freq_start + freq_increment * i;
-
-
-
-
-
-
-
- 179 #pragma omp for collapse(2)
- 180 for (
size_t i = 0; i < 3; i++) {
- 181 for (
size_t j = 0; j < freq_iterations; j++) {
-
-
-
-
-
-
-
-
-
- 191 ofile.open(path +
"wide_sweep.txt" );
- 192 for (
size_t i = 0; i < freq_iterations; i++) {
- 193 ofile << res[0][i] <<
',' << res[1][i] <<
',' << res[2][i] <<
','
- 194 << res[3][i] <<
'\n' ;
-
-
-
-
-
-
-
-
- 210 double amplitudes[]{.1, .4, .7};
-
- 212 double freq_start = 1.;
- 213 double freq_end = 1.7;
- 214 double freq_increment = .002;
- 215 size_t freq_iterations = (size_t)((freq_end - freq_start) / freq_increment);
-
- 217 double res[4][freq_iterations];
-
- 219 std::string path =
"output/time_dependent_potential/" ;
-
-
-
-
- 224 #pragma omp parallel for
-
- 226 for (
size_t i = 0; i < freq_iterations; i++) {
- 227 res[0][i] = freq_start + freq_increment * i;
-
-
-
-
-
-
-
- 235 #pragma omp for collapse(2)
- 236 for (
size_t i = 0; i < 3; i++) {
- 237 for (
size_t j = 0; j < freq_iterations; j++) {
-
-
-
-
-
-
-
-
-
- 247 ofile.open(path +
"narrow_sweep.txt" );
- 248 for (
size_t i = 0; i < freq_iterations; i++) {
- 249 ofile << res[0][i] <<
',' << res[1][i] <<
',' << res[2][i] <<
','
- 250 << res[3][i] <<
'\n' ;
-
-
-
-
-
-
-
-
- 266 double amplitudes[]{.1, .4, .7};
-
- 268 double freq_start = 1.;
- 269 double freq_end = 1.7;
- 270 double freq_increment = .002;
- 271 size_t freq_iterations = (size_t)((freq_end - freq_start) / freq_increment);
-
- 273 double res[4][freq_iterations];
-
- 275 std::string path =
"output/time_dependent_potential/" ;
-
+ 166 std::string path =
"output/time_dependent_potential/" ;
+
+
+
+
+ 171 #pragma omp parallel for
+
+ 173 for (
size_t i = 0; i < freq_iterations; i++) {
+ 174 res[0][i] = freq_start + freq_increment * i;
+
+
+
+
+
+
+
+ 182 #pragma omp for collapse(2)
+ 183 for (
size_t i = 0; i < 3; i++) {
+ 184 for (
size_t j = 0; j < freq_iterations; j++) {
+
+
+
+
+
+
+
+
+
+ 194 ofile.open(path +
"wide_sweep.txt" );
+ 195 for (
size_t i = 0; i < freq_iterations; i++) {
+ 196 ofile << res[0][i] <<
',' << res[1][i] <<
',' << res[2][i] <<
','
+ 197 << res[3][i] <<
'\n' ;
+
+
+
+
+
+
+
+
+ 213 double amplitudes[]{.1, .4, .7};
+
+ 215 double freq_start = 1.1;
+ 216 double freq_end = 1.7;
+ 217 double freq_increment = .002;
+ 218 size_t freq_iterations =
+ 219 (size_t)((freq_end - freq_start) / freq_increment) + 1;
+
+ 221 double res[4][freq_iterations];
+
+ 223 std::string path =
"output/time_dependent_potential/" ;
+
+
+
+
+ 228 #pragma omp parallel for
+
+ 230 for (
size_t i = 0; i < freq_iterations; i++) {
+ 231 res[0][i] = freq_start + freq_increment * i;
+
+
+
+
+
+
+
+ 239 #pragma omp for collapse(2)
+ 240 for (
size_t i = 0; i < 3; i++) {
+ 241 for (
size_t j = 0; j < freq_iterations; j++) {
+
+
+
+
+
+
+
+
+
+ 251 ofile.open(path +
"narrow_sweep.txt" );
+ 252 for (
size_t i = 0; i < freq_iterations; i++) {
+ 253 ofile << res[0][i] <<
',' << res[1][i] <<
',' << res[2][i] <<
','
+ 254 << res[3][i] <<
'\n' ;
+
+
+
+
+
+
+
+
+ 270 double amplitudes[]{.1, .4, .7};
+
+ 272 double freq_start = 1.1;
+ 273 double freq_end = 1.7;
+ 274 double freq_increment = .002;
+ 275 size_t freq_iterations =
+ 276 (size_t)((freq_end - freq_start) / freq_increment) + 1;
-
+ 278 double res[4][freq_iterations];
- 280 #pragma omp parallel for
- 281 for (
size_t i = 0; i < freq_iterations; i++) {
- 282 res[0][i] = freq_start + freq_increment * i;
-
+ 280 std::string path =
"output/time_dependent_potential/" ;
+
+
+
-
-
-
-
-
- 290 #pragma omp for collapse(2)
- 291 for (
size_t i = 0; i < 3; i++) {
- 292 for (
size_t j = 0; j < freq_iterations; j++) {
-
-
-
-
-
-
-
-
- 301 ofile.open(path +
"narrow_sweep_interactions.txt" );
- 302 for (
size_t i = 0; i < freq_iterations; i++) {
- 303 ofile << res[0][i] <<
',' << res[1][i] <<
',' << res[2][i] <<
','
- 304 << res[3][i] <<
'\n' ;
-
-
-
-
-
-
- 311 double start, end, t1, t2;
- 312 start = omp_get_wtime();
+ 285 #pragma omp parallel for
+ 286 for (
size_t i = 0; i < freq_iterations; i++) {
+ 287 res[0][i] = freq_start + freq_increment * i;
+
+
+
+
+
+
+
+ 295 #pragma omp for collapse(2)
+ 296 for (
size_t i = 0; i < 3; i++) {
+ 297 for (
size_t j = 0; j < freq_iterations; j++) {
+
+
+
+
+
+
+
+
+ 306 ofile.open(path +
"narrow_sweep_interactions.txt" );
+ 307 for (
size_t i = 0; i < freq_iterations; i++) {
+ 308 ofile << res[0][i] <<
',' << res[1][i] <<
',' << res[2][i] <<
','
+ 309 << res[3][i] <<
'\n' ;
+
+
+
-
-
-
-
-
-
- 320 t2 = omp_get_wtime();
-
- 322 std::cout <<
"Time single and double : " << (t2 - start)
- 323 <<
" seconds" << std::endl;
-
- 325 t1 = omp_get_wtime();
-
-
-
- 329 t2 = omp_get_wtime();
-
- 331 std::cout <<
"Time 100 particles : " << (t2 - t1)
- 332 <<
" seconds" << std::endl;
-
- 334 t1 = omp_get_wtime();
-
-
-
- 338 t2 = omp_get_wtime();
-
- 340 std::cout <<
"Time wide sweep : " << (t2 - t1)
- 341 <<
" seconds" << std::endl;
-
- 343 t1 = omp_get_wtime();
-
-
-
- 347 t2 = omp_get_wtime();
-
- 349 std::cout <<
"Time narrow sweep no interaction : " << (t2 - t1)
- 350 <<
" seconds" << std::endl;
-
- 352 t1 = omp_get_wtime();
+
+
+
+
+
+
+ 320 std::cout <<
"(1) All (default)\n"
+ 321 <<
"(2) Simulate single particle\n"
+ 322 <<
"(3) simulate 2 particles\n"
+ 323 <<
"(4) Simulate single particle with different time steps\n"
+ 324 <<
"(5) Simulate 100 particles\n"
+ 325 <<
"(6) Potential resonance wide sweep\n"
+ 326 <<
"(7) Potential resonance narrow sweep without particle "
+
+ 328 <<
"(8) Potential resonance narrow sweep with particle "
+
+ 330 <<
"Select what to run: " ;
+ 331 std::cin >> std::noskipws;
+
+ 333 if (!(std::cin >> option) || option < 1 || option > 8) {
+
+ 335 std::cin.ignore(std::numeric_limits<std::streamsize>::max(),
'\n' );
+
+
+ 338 <<
"(1) All (default)\n"
+ 339 <<
"(2) Simulate single particle\n"
+ 340 <<
"(3) simulate 2 particles\n"
+ 341 <<
"(4) Simulate single particle with different time steps\n"
+ 342 <<
"(5) Simulate 100 particles\n"
+ 343 <<
"(6) Potential resonance wide sweep\n"
+ 344 <<
"(7) Potential resonance narrow sweep without particle "
+
+ 346 <<
"(8) Potential resonance narrow sweep with particle "
+
+ 348 <<
"Not a valid option, please enter a valid number: " ;
+
+
+
+
-
+
- 356 t2 = omp_get_wtime();
+
- 358 std::cout <<
"Time narrow sweep with interaction: " << (t2 - t1)
- 359 <<
" seconds" << std::endl;
-
- 361 end = omp_get_wtime();
-
- 363 std::cout <<
"Time : " << (end - start)
- 364 <<
" seconds" << std::endl;
-
-
-
+ 358 start = omp_get_wtime();
+
+
+ 361 std::cout <<
"Running simulate_single_particle\n" ;
+
+
+ 364 std::cout <<
"Running simulate_two_particles\n" ;
+
+
+ 367 std::cout <<
"Running simulate_single_particle_with_different_steps\n" ;
+
+
+ 370 std::cout <<
"Running simulate_100_particles\n" ;
+
+
+ 373 std::cout <<
"Running potential_resonance_wide_sweep\n" ;
+
+
+ 376 std::cout <<
"Running potential_resonance_narrow_sweep\n" ;
+
+
+ 379 std::cout <<
"Running potential_resonance_narrow_sweep_interaction\n" ;
+
+
+
+ 383 std::cout <<
"Running simulate_single_particle\n" ;
+
+
+
+ 387 std::cout <<
"Running simulate_two_particles\n" ;
+
+
+
+ 391 std::cout <<
"Running simulate_single_particle_with_different_steps\n" ;
+
+
+
+ 395 std::cout <<
"Running simulate_100_particles\n" ;
+
+
+
+ 399 std::cout <<
"Running potential_resonance_wide_sweep\n" ;
+
+
+
+ 403 std::cout <<
"Running potential_resonance_narrow_sweep\n" ;
+
+
+
+ 407 std::cout <<
"Running potential_resonance_narrow_sweep_interaction\n" ;
+
+
+
+ 411 end = omp_get_wtime();
+
+ 413 std::cout <<
"Time: " << end - start <<
" seconds" << std::endl;
+
+
+
A class for simulating a Penning trap.
A class that holds attributes of a particle.
A class that simulates a Penning trap.
-void reinitialize(double f, double omega_V, double t=0.)
Give all particles new positions and velocities, and change t and V_0.
-double fraction_of_particles_left(double time, uint steps, std::string method="rk4", bool particle_interaction=true)
Simulate and calculate what fraction of particles are still left inside the Penning trap after the si...
-void write_simulation_to_dir(std::string path, double time, uint steps, std::string method="rk4", bool particle_interaction=true)
Simulate and write the displacement of all particles to files.
+simulation_t simulate(double time, uint steps, std::string method="rk4", bool particle_interaction=true)
Simulate the particle system inside the Penning trap over a certain amount of time.
+void reinitialize(double f, double omega_V, double t=0.)
Give all particles new positions and velocities, and change t and V_0.
+double fraction_of_particles_left(double time, uint steps, std::string method="rk4", bool particle_interaction=true)
Simulate and calculate what fraction of particles are still left inside the Penning trap after the si...
+void write_simulation_to_dir(std::string path, double time, uint steps, std::string method="rk4", bool particle_interaction=true)
Simulate and write the displacement of all particles to files.
#define CA_MASS
Mass of a single calcium ion. unit: amu.
-void simulate_100_particles()
Simulate 100 particles over 50 .
+void simulate_100_particles()
Simulate 100 particles over 50 .
Particle p1(vec3{20., 0., 20.}, vec3{0., 25., 0.})
Particle 1.
-void potential_resonance_narrow_sweep()
Simulate 100 particles over 500 using a time dependent potential.
-void potential_resonance_wide_sweep()
Simulate 100 particles over 500 using a time dependent potential.
-void simulate_two_particles()
Simulate 2 particles over the period of 50 with and without particle interactions.
+void potential_resonance_narrow_sweep()
Simulate 100 particles over 500 using a time dependent potential.
+void potential_resonance_wide_sweep()
Simulate 100 particles over 500 using a time dependent potential.
+void simulate_two_particles()
Simulate 2 particles over the period of 50 with and without particle interactions.
vec3 analytical_solution_particle_1(double t)
The analytical solution for particle p1.
-void simulate_single_particle()
Simulate a single particle over the period of 50 .
-void potential_resonance_narrow_sweep_interaction()
Simulate 100 particles over 500 using a time dependent potential.
-void simulate_single_particle_with_different_steps()
Simulate a single particle over 50 using different amount of steps and different methods.
+void simulate_single_particle()
Simulate a single particle over the period of 50 .
+void potential_resonance_narrow_sweep_interaction()
Simulate 100 particles over 500 using a time dependent potential.
+void simulate_single_particle_with_different_steps()
Simulate a single particle over 50 using different amount of steps and different methods.
Particle p2(vec3{25., 25., 0.}, vec3{0., 40., 5.})
Particle 2.
Typedef for PenningTrap::simulation return value.
arma::vec::fixed< 3 > vec3
Typedef for a fixed 3d arma vector.
diff --git a/docs/navtreedata.js b/docs/navtreedata.js
index 6156c4d..681af00 100644
--- a/docs/navtreedata.js
+++ b/docs/navtreedata.js
@@ -27,17 +27,23 @@ var NAVTREE =
[ "Penning Trap Simulation", "index.html", [
[ "Requirements", "index.html#autotoc_md1", [
[ "Operating systems", "index.html#autotoc_md2", null ],
- [ "Libraries", "index.html#autotoc_md3", null ]
+ [ "Tools", "index.html#autotoc_md3", null ],
+ [ "Libraries", "index.html#autotoc_md4", null ]
] ],
- [ "Compiling", "index.html#autotoc_md4", null ],
- [ "Running programs", "index.html#autotoc_md5", [
- [ "C++ binaries", "index.html#autotoc_md6", null ],
- [ "Python scripts", "index.html#autotoc_md7", [
- [ "Install libraries", "index.html#autotoc_md8", null ],
- [ "Running scripts", "index.html#autotoc_md9", null ]
- ] ]
+ [ "Compiling", "index.html#autotoc_md5", null ],
+ [ "Running programs", "index.html#autotoc_md6", [
+ [ "C++ binaries", "index.html#autotoc_md7", null ],
+ [ "Python scripts", "index.html#autotoc_md8", [
+ [ "Install libraries", "index.html#autotoc_md9", null ],
+ [ "Running scripts", "index.html#autotoc_md10", null ]
+ ] ],
+ [ "Batch system", "index.html#autotoc_md11", null ]
] ],
- [ "Credits", "index.html#autotoc_md10", null ],
+ [ "Performance", "index.html#autotoc_md12", [
+ [ "CPU", "index.html#autotoc_md13", null ],
+ [ "Times", "index.html#autotoc_md14", null ]
+ ] ],
+ [ "Credits", "index.html#autotoc_md15", null ],
[ "Bug List", "bug.html", null ],
[ "Classes", "annotated.html", [
[ "Class List", "annotated.html", "annotated_dup" ],
diff --git a/docs/navtreeindex0.js b/docs/navtreeindex0.js
index 68d8951..1a1652f 100644
--- a/docs/navtreeindex0.js
+++ b/docs/navtreeindex0.js
@@ -1,134 +1,136 @@
var NAVTREEINDEX0 =
{
-"Particle_8cpp.html":[6,0,1,2],
-"Particle_8cpp_source.html":[6,0,1,2],
-"Particle_8hpp.html":[6,0,0,1],
-"Particle_8hpp_source.html":[6,0,0,1],
-"PenningTrap_8cpp.html":[6,0,1,3],
-"PenningTrap_8cpp_source.html":[6,0,1,3],
-"PenningTrap_8hpp.html":[6,0,0,2],
-"PenningTrap_8hpp_source.html":[6,0,0,2],
-"animate__100__particles_8py_source.html":[6,0,1,0,0],
-"annotated.html":[5,0],
-"bug.html":[4],
-"classParticle.html":[5,0,0],
-"classParticle.html#a1c59101411db43624828b766f87ad460":[5,0,0,4],
-"classParticle.html#a3a10400add8dd22b8031330c2aafb6fe":[5,0,0,5],
-"classParticle.html#a566dcc1de4bdc01251776948798ea8e1":[5,0,0,3],
-"classParticle.html#aa797d319549dc2a0beb06cdbfd430232":[5,0,0,1],
-"classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563":[5,0,0,2],
-"classParticle.html#af1d7535fb8311eaa77d2b7b345882ec4":[5,0,0,0],
-"classPenningTrap.html":[5,0,1],
-"classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f":[5,0,1,24],
-"classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716":[5,0,1,20],
-"classPenningTrap.html#a2c01108b52c8e2a003cf9170da9e7682":[5,0,1,15],
-"classPenningTrap.html#a2f168622587709b9e3c49077f0b9a640":[5,0,1,22],
-"classPenningTrap.html#a2fe1cefbae18fa5808155ee0d2df713c":[5,0,1,16],
-"classPenningTrap.html#a361f2c4862c90b5e8e2a2f50c6a95655":[5,0,1,6],
-"classPenningTrap.html#a36946152fd951b1f7c346c51ff900d8e":[5,0,1,5],
-"classPenningTrap.html#a3c0a44e4e0a94366ff609e81fe463fa2":[5,0,1,17],
-"classPenningTrap.html#a5846c8f75cdc543fd9cf0b2185a3ef22":[5,0,1,7],
-"classPenningTrap.html#a5b6c6d4636f3a6e279ccde59d4a345e8":[5,0,1,0],
-"classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2":[5,0,1,21],
-"classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8":[5,0,1,3],
-"classPenningTrap.html#a715329844d75ec4c04f8391421fb4e89":[5,0,1,27],
-"classPenningTrap.html#a7a1d9f0528a12308de25bc30718da20a":[5,0,1,13],
-"classPenningTrap.html#a7f210bb2768a5d79ced4b0df0df97598":[5,0,1,8],
-"classPenningTrap.html#a826b7fa8e709d481eb1dee7d0c2cdc08":[5,0,1,10],
-"classPenningTrap.html#a830be1b8cbf59664e060b6edbeaa302f":[5,0,1,1],
-"classPenningTrap.html#a869f032f37d0569ed16f224b4c4356ae":[5,0,1,19],
-"classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e":[5,0,1,26],
-"classPenningTrap.html#a9a301b0540078c36697880ef204afdf3":[5,0,1,14],
-"classPenningTrap.html#a9d1d8e90ca839b928aee1ad0cd4aff43":[5,0,1,12],
-"classPenningTrap.html#aaee129f177657455348d0c8ae1441dea":[5,0,1,11],
-"classPenningTrap.html#ab9ea97a406534bbe621a95215144875e":[5,0,1,4],
-"classPenningTrap.html#ac529aa26c288f34eae184a67e6bac41f":[5,0,1,9],
-"classPenningTrap.html#ad8bc4df7ab3eed53b16cfdff38e7760b":[5,0,1,18],
-"classPenningTrap.html#addc96789dcfec07b75156e19fee82f4f":[5,0,1,2],
-"classPenningTrap.html#ae915f6ad0eef1fb46530e836b6e071e5":[5,0,1,25],
-"classPenningTrap.html#ae9b5afdaa5cd366e94bd294452a1eed4":[5,0,1,23],
-"classPenningTrapTest.html":[5,0,2],
-"classPenningTrapTest.html#a5f4f0b150e54ce463bb29f76d49883f9":[5,0,2,2],
-"classPenningTrapTest.html#a68449d508e66205bc8b27fa5f60db508":[5,0,2,4],
-"classPenningTrapTest.html#a6a303be62039ca2ecccd8252744d4dc8":[5,0,2,1],
-"classPenningTrapTest.html#ad668d7d875bdc1909a42426bf9dead9e":[5,0,2,0],
-"classPenningTrapTest.html#ae6d0c8e0d80338fb7c7edefc97331046":[5,0,2,3],
-"classes.html":[5,1],
-"constants_8hpp.html":[6,0,0,0],
-"constants_8hpp.html#a0acb682b8260ab1c60b918599864e2e5":[6,0,0,0,3],
-"constants_8hpp.html#a2ff491cc7958ffd5e749c518a4a60ec8":[6,0,0,0,1],
-"constants_8hpp.html#a4e451456ad7e9276ed0afa42826e7ccb":[6,0,0,0,2],
-"constants_8hpp.html#af40a326b23c68a27cebe60f16634a2cb":[6,0,0,0,4],
-"constants_8hpp.html#af7602a3a314957137ad1cd719aa23789":[6,0,0,0,0],
-"constants_8hpp_source.html":[6,0,0,0],
-"dir_634e799a3947388232110823971192a8.html":[6,0,1,0],
-"dir_68267d1309a1af8e8297ef4c3efbcdba.html":[6,0,1],
-"dir_d44c64559bbebec7f509842c48db8b23.html":[6,0,0],
-"files.html":[6,0],
-"functions.html":[5,2,0],
-"functions_func.html":[5,2,1],
-"functions_rela.html":[5,2,3],
-"functions_vars.html":[5,2,2],
-"globals.html":[6,1,0],
-"globals_defs.html":[6,1,4],
-"globals_func.html":[6,1,1],
-"globals_type.html":[6,1,3],
-"globals_vars.html":[6,1,2],
+"Particle_8cpp.html":[7,0,1,2],
+"Particle_8cpp_source.html":[7,0,1,2],
+"Particle_8hpp.html":[7,0,0,1],
+"Particle_8hpp_source.html":[7,0,0,1],
+"PenningTrap_8cpp.html":[7,0,1,3],
+"PenningTrap_8cpp_source.html":[7,0,1,3],
+"PenningTrap_8hpp.html":[7,0,0,2],
+"PenningTrap_8hpp_source.html":[7,0,0,2],
+"annotated.html":[6,0],
+"bug.html":[5],
+"classParticle.html":[6,0,0],
+"classParticle.html#a1c59101411db43624828b766f87ad460":[6,0,0,4],
+"classParticle.html#a3a10400add8dd22b8031330c2aafb6fe":[6,0,0,5],
+"classParticle.html#a566dcc1de4bdc01251776948798ea8e1":[6,0,0,3],
+"classParticle.html#aa797d319549dc2a0beb06cdbfd430232":[6,0,0,1],
+"classParticle.html#aedcc7e1bc53b0e2b1a4a07c9a1b47563":[6,0,0,2],
+"classParticle.html#af1d7535fb8311eaa77d2b7b345882ec4":[6,0,0,0],
+"classPenningTrap.html":[6,0,1],
+"classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f":[6,0,1,25],
+"classPenningTrap.html#a0cac3509aa96e71a26d3b2c902e27716":[6,0,1,21],
+"classPenningTrap.html#a2c01108b52c8e2a003cf9170da9e7682":[6,0,1,15],
+"classPenningTrap.html#a2f168622587709b9e3c49077f0b9a640":[6,0,1,23],
+"classPenningTrap.html#a2fe1cefbae18fa5808155ee0d2df713c":[6,0,1,17],
+"classPenningTrap.html#a361f2c4862c90b5e8e2a2f50c6a95655":[6,0,1,6],
+"classPenningTrap.html#a36946152fd951b1f7c346c51ff900d8e":[6,0,1,5],
+"classPenningTrap.html#a3c0a44e4e0a94366ff609e81fe463fa2":[6,0,1,18],
+"classPenningTrap.html#a5846c8f75cdc543fd9cf0b2185a3ef22":[6,0,1,7],
+"classPenningTrap.html#a5b6c6d4636f3a6e279ccde59d4a345e8":[6,0,1,0],
+"classPenningTrap.html#a6069f82d8dbc7cadaebd228dbcd95018":[6,0,1,16],
+"classPenningTrap.html#a66dfe89c68716b9502927b97f59c27d2":[6,0,1,22],
+"classPenningTrap.html#a6e9776ff5b149f01080800716455d7c8":[6,0,1,3],
+"classPenningTrap.html#a715329844d75ec4c04f8391421fb4e89":[6,0,1,28],
+"classPenningTrap.html#a7a1d9f0528a12308de25bc30718da20a":[6,0,1,13],
+"classPenningTrap.html#a7f210bb2768a5d79ced4b0df0df97598":[6,0,1,8],
+"classPenningTrap.html#a826b7fa8e709d481eb1dee7d0c2cdc08":[6,0,1,10],
+"classPenningTrap.html#a830be1b8cbf59664e060b6edbeaa302f":[6,0,1,1],
+"classPenningTrap.html#a869f032f37d0569ed16f224b4c4356ae":[6,0,1,20],
+"classPenningTrap.html#a8ca4e21291f60fde619c14099d8c4e8e":[6,0,1,27],
+"classPenningTrap.html#a9a301b0540078c36697880ef204afdf3":[6,0,1,14],
+"classPenningTrap.html#a9d1d8e90ca839b928aee1ad0cd4aff43":[6,0,1,12],
+"classPenningTrap.html#aaee129f177657455348d0c8ae1441dea":[6,0,1,11],
+"classPenningTrap.html#ab9ea97a406534bbe621a95215144875e":[6,0,1,4],
+"classPenningTrap.html#ac529aa26c288f34eae184a67e6bac41f":[6,0,1,9],
+"classPenningTrap.html#ad8bc4df7ab3eed53b16cfdff38e7760b":[6,0,1,19],
+"classPenningTrap.html#addc96789dcfec07b75156e19fee82f4f":[6,0,1,2],
+"classPenningTrap.html#ae915f6ad0eef1fb46530e836b6e071e5":[6,0,1,26],
+"classPenningTrap.html#ae9b5afdaa5cd366e94bd294452a1eed4":[6,0,1,24],
+"classPenningTrapTest.html":[6,0,2],
+"classPenningTrapTest.html#a5f4f0b150e54ce463bb29f76d49883f9":[6,0,2,2],
+"classPenningTrapTest.html#a68449d508e66205bc8b27fa5f60db508":[6,0,2,4],
+"classPenningTrapTest.html#a6a303be62039ca2ecccd8252744d4dc8":[6,0,2,1],
+"classPenningTrapTest.html#ad668d7d875bdc1909a42426bf9dead9e":[6,0,2,0],
+"classPenningTrapTest.html#ae6d0c8e0d80338fb7c7edefc97331046":[6,0,2,3],
+"classes.html":[6,1],
+"constants_8hpp.html":[7,0,0,0],
+"constants_8hpp.html#a0acb682b8260ab1c60b918599864e2e5":[7,0,0,0,3],
+"constants_8hpp.html#a2ff491cc7958ffd5e749c518a4a60ec8":[7,0,0,0,1],
+"constants_8hpp.html#a4e451456ad7e9276ed0afa42826e7ccb":[7,0,0,0,2],
+"constants_8hpp.html#af40a326b23c68a27cebe60f16634a2cb":[7,0,0,0,4],
+"constants_8hpp.html#af7602a3a314957137ad1cd719aa23789":[7,0,0,0,0],
+"constants_8hpp_source.html":[7,0,0,0],
+"dir_68267d1309a1af8e8297ef4c3efbcdba.html":[7,0,1],
+"dir_d44c64559bbebec7f509842c48db8b23.html":[7,0,0],
+"files.html":[7,0],
+"frequency__narrow__sweeps__long_8cpp.html":[7,0,1,0],
+"frequency__narrow__sweeps__long_8cpp.html#a33d9b1c76c3c80902f89a58b1a6d96ea":[7,0,1,0,0],
+"frequency__narrow__sweeps__long_8cpp.html#ac1816f70ec612edc27848ef7f0875fdb":[7,0,1,0,1],
+"frequency__narrow__sweeps__long_8cpp_source.html":[7,0,1,0],
+"functions.html":[6,2,0],
+"functions_func.html":[6,2,1],
+"functions_rela.html":[6,2,3],
+"functions_vars.html":[6,2,2],
+"globals.html":[7,1,0],
+"globals_defs.html":[7,1,4],
+"globals_func.html":[7,1,1],
+"globals_type.html":[7,1,3],
+"globals_vars.html":[7,1,2],
"index.html":[],
"index.html#autotoc_md1":[0],
-"index.html#autotoc_md10":[3],
+"index.html#autotoc_md10":[2,1,1],
+"index.html#autotoc_md11":[2,2],
+"index.html#autotoc_md12":[3],
+"index.html#autotoc_md13":[3,0],
+"index.html#autotoc_md14":[3,1],
+"index.html#autotoc_md15":[4],
"index.html#autotoc_md2":[0,0],
"index.html#autotoc_md3":[0,1],
-"index.html#autotoc_md4":[1],
-"index.html#autotoc_md5":[2],
-"index.html#autotoc_md6":[2,0],
-"index.html#autotoc_md7":[2,1],
-"index.html#autotoc_md8":[2,1,0],
-"index.html#autotoc_md9":[2,1,1],
-"main_8cpp.html":[6,0,1,1],
-"main_8cpp.html#a213713d6ecc02a32b588ffd179dc7513":[6,0,1,1,4],
-"main_8cpp.html#a2efa69bb9d93049429ce4637075f1d30":[6,0,1,1,8],
-"main_8cpp.html#a33d9b1c76c3c80902f89a58b1a6d96ea":[6,0,1,1,1],
-"main_8cpp.html#a6b38b477c18e2f4268779751a88edab1":[6,0,1,1,3],
-"main_8cpp.html#a783789519f97c6430081171cacb0ffb1":[6,0,1,1,7],
-"main_8cpp.html#a8d92fb2ad085065fbd14718647551657":[6,0,1,1,0],
-"main_8cpp.html#a8fdbe2d5a872e50ef5ec1263243589d6":[6,0,1,1,5],
-"main_8cpp.html#ac1816f70ec612edc27848ef7f0875fdb":[6,0,1,1,2],
-"main_8cpp.html#ac67e0d59227856c4d42e7d01c75e0ad2":[6,0,1,1,6],
-"main_8cpp.html#ac70b61df65f4336f57ea9b4c35250df7":[6,0,1,1,9],
-"main_8cpp_source.html":[6,0,1,1],
+"index.html#autotoc_md4":[0,2],
+"index.html#autotoc_md5":[1],
+"index.html#autotoc_md6":[2],
+"index.html#autotoc_md7":[2,0],
+"index.html#autotoc_md8":[2,1],
+"index.html#autotoc_md9":[2,1,0],
+"main_8cpp.html":[7,0,1,1],
+"main_8cpp.html#a213713d6ecc02a32b588ffd179dc7513":[7,0,1,1,4],
+"main_8cpp.html#a2efa69bb9d93049429ce4637075f1d30":[7,0,1,1,8],
+"main_8cpp.html#a33d9b1c76c3c80902f89a58b1a6d96ea":[7,0,1,1,1],
+"main_8cpp.html#a6b38b477c18e2f4268779751a88edab1":[7,0,1,1,3],
+"main_8cpp.html#a783789519f97c6430081171cacb0ffb1":[7,0,1,1,7],
+"main_8cpp.html#a8d92fb2ad085065fbd14718647551657":[7,0,1,1,0],
+"main_8cpp.html#a8fdbe2d5a872e50ef5ec1263243589d6":[7,0,1,1,5],
+"main_8cpp.html#ac1816f70ec612edc27848ef7f0875fdb":[7,0,1,1,2],
+"main_8cpp.html#ac67e0d59227856c4d42e7d01c75e0ad2":[7,0,1,1,6],
+"main_8cpp.html#ac70b61df65f4336f57ea9b4c35250df7":[7,0,1,1,9],
+"main_8cpp_source.html":[7,0,1,1],
"pages.html":[],
-"plot__2__particles_8py_source.html":[6,0,1,0,1],
-"plot__3d_8py_source.html":[6,0,1,0,2],
-"plot__particles__left_8py_source.html":[6,0,1,0,3],
-"plot__phase__space_8py_source.html":[6,0,1,0,4],
-"plot__relative__error_8py_source.html":[6,0,1,0,5],
-"plot__single__particle_8py_source.html":[6,0,1,0,6],
-"structsimulation.html":[5,0,3],
-"test__suite_8cpp.html":[6,0,1,4],
-"test__suite_8cpp_source.html":[6,0,1,4],
-"typedefs_8hpp.html":[6,0,0,3],
-"typedefs_8hpp.html#a33418f31f28663b8414c8f7182998c22":[6,0,0,3,3],
-"typedefs_8hpp.html#a3bdfb73a02f88ae32b6128ef747c4aea":[6,0,0,3,5],
-"typedefs_8hpp.html#a46482a2697556c00556c9d73f461784f":[6,0,0,3,2],
-"typedefs_8hpp.html#a784799c37b5e4fb8bf4f6368e004dec6":[6,0,0,3,4],
-"typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af":[6,0,0,3,1],
-"typedefs_8hpp_source.html":[6,0,0,3],
-"utils_8cpp.html":[6,0,1,5],
-"utils_8cpp.html#a58565270b643b24e3132f38c653e0199":[6,0,1,5,3],
-"utils_8cpp.html#a6be6f938bcbb235ebb6a2ed9d08411b2":[6,0,1,5,0],
-"utils_8cpp.html#acd2a9c7a7d5a7fe9163be8c4cc110746":[6,0,1,5,4],
-"utils_8cpp.html#acf13f4e492199cb7231bfa646dbd08de":[6,0,1,5,2],
-"utils_8cpp.html#aff5e07c3c1d321709b0cc38e999f427b":[6,0,1,5,1],
-"utils_8cpp_source.html":[6,0,1,5],
-"utils_8hpp.html":[6,0,0,4],
-"utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38":[6,0,0,4,4],
-"utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168":[6,0,0,4,0],
-"utils_8hpp.html#a6fdd7217b750aff5b6295ece7cbdeffa":[6,0,0,4,5],
-"utils_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9":[6,0,0,4,1],
-"utils_8hpp.html#ab3e0cf669bddc59bd53998490ffb68b9":[6,0,0,4,3],
-"utils_8hpp.html#ad54b96a1074f9df4dc892a41d115b72d":[6,0,0,4,6],
-"utils_8hpp.html#adfb618b2fdff47ef30a4a2b62c04f384":[6,0,0,4,7],
-"utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b":[6,0,0,4,2],
-"utils_8hpp_source.html":[6,0,0,4]
+"structsimulation.html":[6,0,3],
+"test__suite_8cpp.html":[7,0,1,4],
+"test__suite_8cpp_source.html":[7,0,1,4],
+"typedefs_8hpp.html":[7,0,0,3],
+"typedefs_8hpp.html#a33418f31f28663b8414c8f7182998c22":[7,0,0,3,3],
+"typedefs_8hpp.html#a3bdfb73a02f88ae32b6128ef747c4aea":[7,0,0,3,5],
+"typedefs_8hpp.html#a46482a2697556c00556c9d73f461784f":[7,0,0,3,2],
+"typedefs_8hpp.html#a784799c37b5e4fb8bf4f6368e004dec6":[7,0,0,3,4],
+"typedefs_8hpp.html#aec69d34220fff45de238b9e01f2686af":[7,0,0,3,1],
+"typedefs_8hpp_source.html":[7,0,0,3],
+"utils_8cpp.html":[7,0,1,5],
+"utils_8cpp.html#a58565270b643b24e3132f38c653e0199":[7,0,1,5,3],
+"utils_8cpp.html#a6be6f938bcbb235ebb6a2ed9d08411b2":[7,0,1,5,0],
+"utils_8cpp.html#acd2a9c7a7d5a7fe9163be8c4cc110746":[7,0,1,5,4],
+"utils_8cpp.html#acf13f4e492199cb7231bfa646dbd08de":[7,0,1,5,2],
+"utils_8cpp.html#aff5e07c3c1d321709b0cc38e999f427b":[7,0,1,5,1],
+"utils_8cpp_source.html":[7,0,1,5],
+"utils_8hpp.html":[7,0,0,4],
+"utils_8hpp.html#a2cc3a2cdb635bac3c8b02e89d4d6af38":[7,0,0,4,4],
+"utils_8hpp.html#a60dca3177fb9cb5256609adc7af55168":[7,0,0,4,0],
+"utils_8hpp.html#a6fdd7217b750aff5b6295ece7cbdeffa":[7,0,0,4,5],
+"utils_8hpp.html#a73d4f21ad937dbc50a0c0538c78fd4f9":[7,0,0,4,1],
+"utils_8hpp.html#ab3e0cf669bddc59bd53998490ffb68b9":[7,0,0,4,3],
+"utils_8hpp.html#ad54b96a1074f9df4dc892a41d115b72d":[7,0,0,4,6],
+"utils_8hpp.html#adfb618b2fdff47ef30a4a2b62c04f384":[7,0,0,4,7],
+"utils_8hpp.html#aecc1f7a8a2493b9e021e5bff76a00a5b":[7,0,0,4,2],
+"utils_8hpp_source.html":[7,0,0,4]
};
diff --git a/docs/search/all_6.js b/docs/search/all_6.js
index e6919eb..074618b 100644
--- a/docs/search/all_6.js
+++ b/docs/search/all_6.js
@@ -1,5 +1,6 @@
var searchData=
[
['force_5fon_5fparticle_0',['force_on_particle',['../classPenningTrap.html#a7f210bb2768a5d79ced4b0df0df97598',1,'PenningTrap']]],
- ['fraction_5fof_5fparticles_5fleft_1',['fraction_of_particles_left',['../classPenningTrap.html#ac529aa26c288f34eae184a67e6bac41f',1,'PenningTrap']]]
+ ['fraction_5fof_5fparticles_5fleft_1',['fraction_of_particles_left',['../classPenningTrap.html#ac529aa26c288f34eae184a67e6bac41f',1,'PenningTrap']]],
+ ['frequency_5fnarrow_5fsweeps_5flong_2ecpp_2',['frequency_narrow_sweeps_long.cpp',['../frequency__narrow__sweeps__long_8cpp.html',1,'']]]
];
diff --git a/docs/search/all_9.js b/docs/search/all_9.js
index 8d94e1e..d2c560d 100644
--- a/docs/search/all_9.js
+++ b/docs/search/all_9.js
@@ -7,12 +7,12 @@ var searchData=
['particle_2ehpp_4',['Particle.hpp',['../Particle_8hpp.html',1,'']]],
['particles_5',['particles',['../classPenningTrap.html#a0112525d9e79a472e761f8ef402a339f',1,'PenningTrap']]],
['penning_20trap_20simulation_6',['Penning trap simulation',['../index.html',1,'']]],
- ['penningtrap_7',['PenningTrap',['../classPenningTrap.html#a5b6c6d4636f3a6e279ccde59d4a345e8',1,'PenningTrap::PenningTrap(double B_0=T, double V_0=(25. *V)/1000., double d=500., double t=0.)'],['../classPenningTrap.html#addc96789dcfec07b75156e19fee82f4f',1,'PenningTrap::PenningTrap(std::vector< Particle > particles, double B_0=T, double V_0=(25. *V)/1000., double d=500., double t=0.)'],['../classPenningTrap.html#a830be1b8cbf59664e060b6edbeaa302f',1,'PenningTrap::PenningTrap(uint i, double B_0=T, double V_0=(25. *V)/1000., double d=500., double t=0.)'],['../classParticle.html#aa797d319549dc2a0beb06cdbfd430232',1,'Particle::PenningTrap()'],['../classPenningTrap.html',1,'PenningTrap']]],
+ ['penningtrap_7',['PenningTrap',['../classPenningTrap.html#a830be1b8cbf59664e060b6edbeaa302f',1,'PenningTrap::PenningTrap(uint i, double B_0=T, double V_0=(25. *V)/1000., double d=500., double t=0.)'],['../classPenningTrap.html#addc96789dcfec07b75156e19fee82f4f',1,'PenningTrap::PenningTrap(std::vector< Particle > particles, double B_0=T, double V_0=(25. *V)/1000., double d=500., double t=0.)'],['../classPenningTrap.html#a5b6c6d4636f3a6e279ccde59d4a345e8',1,'PenningTrap::PenningTrap(double B_0=T, double V_0=(25. *V)/1000., double d=500., double t=0.)'],['../classParticle.html#aa797d319549dc2a0beb06cdbfd430232',1,'Particle::PenningTrap()'],['../classPenningTrap.html',1,'PenningTrap']]],
['penningtrap_2ecpp_8',['PenningTrap.cpp',['../PenningTrap_8cpp.html',1,'']]],
['penningtrap_2ehpp_9',['PenningTrap.hpp',['../PenningTrap_8hpp.html',1,'']]],
['penningtraptest_10',['PenningTrapTest',['../classPenningTrap.html#a869f032f37d0569ed16f224b4c4356ae',1,'PenningTrap::PenningTrapTest()'],['../classPenningTrapTest.html',1,'PenningTrapTest']]],
['perturbation_11',['perturbation',['../classPenningTrap.html#ae915f6ad0eef1fb46530e836b6e071e5',1,'PenningTrap']]],
- ['potential_5fresonance_5fnarrow_5fsweep_12',['potential_resonance_narrow_sweep',['../main_8cpp.html#a33d9b1c76c3c80902f89a58b1a6d96ea',1,'main.cpp']]],
- ['potential_5fresonance_5fnarrow_5fsweep_5finteraction_13',['potential_resonance_narrow_sweep_interaction',['../main_8cpp.html#ac1816f70ec612edc27848ef7f0875fdb',1,'main.cpp']]],
+ ['potential_5fresonance_5fnarrow_5fsweep_12',['potential_resonance_narrow_sweep',['../frequency__narrow__sweeps__long_8cpp.html#a33d9b1c76c3c80902f89a58b1a6d96ea',1,'potential_resonance_narrow_sweep(): frequency_narrow_sweeps_long.cpp'],['../main_8cpp.html#a33d9b1c76c3c80902f89a58b1a6d96ea',1,'potential_resonance_narrow_sweep(): main.cpp']]],
+ ['potential_5fresonance_5fnarrow_5fsweep_5finteraction_13',['potential_resonance_narrow_sweep_interaction',['../frequency__narrow__sweeps__long_8cpp.html#ac1816f70ec612edc27848ef7f0875fdb',1,'potential_resonance_narrow_sweep_interaction(): frequency_narrow_sweeps_long.cpp'],['../main_8cpp.html#ac1816f70ec612edc27848ef7f0875fdb',1,'potential_resonance_narrow_sweep_interaction(): main.cpp']]],
['potential_5fresonance_5fwide_5fsweep_14',['potential_resonance_wide_sweep',['../main_8cpp.html#a6b38b477c18e2f4268779751a88edab1',1,'main.cpp']]]
];
diff --git a/docs/search/all_d.js b/docs/search/all_d.js
index 4af72aa..80bb0f1 100644
--- a/docs/search/all_d.js
+++ b/docs/search/all_d.js
@@ -10,6 +10,7 @@ var searchData=
['test_5ftotal_5fforce_5fparticles_7',['test_total_force_particles',['../classPenningTrapTest.html#a68449d508e66205bc8b27fa5f60db508',1,'PenningTrapTest']]],
['total_5fforce_8',['total_force',['../classPenningTrap.html#a9a301b0540078c36697880ef204afdf3',1,'PenningTrap']]],
['total_5fforce_5fexternal_9',['total_force_external',['../classPenningTrap.html#a2c01108b52c8e2a003cf9170da9e7682',1,'PenningTrap']]],
- ['total_5fforce_5fparticles_10',['total_force_particles',['../classPenningTrap.html#a2fe1cefbae18fa5808155ee0d2df713c',1,'PenningTrap']]],
- ['typedefs_2ehpp_11',['typedefs.hpp',['../typedefs_8hpp.html',1,'']]]
+ ['total_5fforce_5fno_5finteraction_10',['total_force_no_interaction',['../classPenningTrap.html#a6069f82d8dbc7cadaebd228dbcd95018',1,'PenningTrap']]],
+ ['total_5fforce_5fparticles_11',['total_force_particles',['../classPenningTrap.html#a2fe1cefbae18fa5808155ee0d2df713c',1,'PenningTrap']]],
+ ['typedefs_2ehpp_12',['typedefs.hpp',['../typedefs_8hpp.html',1,'']]]
];
diff --git a/docs/search/files_1.js b/docs/search/files_1.js
index 695b4fd..9000051 100644
--- a/docs/search/files_1.js
+++ b/docs/search/files_1.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['main_2ecpp_0',['main.cpp',['../main_8cpp.html',1,'']]]
+ ['frequency_5fnarrow_5fsweeps_5flong_2ecpp_0',['frequency_narrow_sweeps_long.cpp',['../frequency__narrow__sweeps__long_8cpp.html',1,'']]]
];
diff --git a/docs/search/files_2.js b/docs/search/files_2.js
index 8fae0fa..695b4fd 100644
--- a/docs/search/files_2.js
+++ b/docs/search/files_2.js
@@ -1,7 +1,4 @@
var searchData=
[
- ['particle_2ecpp_0',['Particle.cpp',['../Particle_8cpp.html',1,'']]],
- ['particle_2ehpp_1',['Particle.hpp',['../Particle_8hpp.html',1,'']]],
- ['penningtrap_2ecpp_2',['PenningTrap.cpp',['../PenningTrap_8cpp.html',1,'']]],
- ['penningtrap_2ehpp_3',['PenningTrap.hpp',['../PenningTrap_8hpp.html',1,'']]]
+ ['main_2ecpp_0',['main.cpp',['../main_8cpp.html',1,'']]]
];
diff --git a/docs/search/files_3.js b/docs/search/files_3.js
index 5e3fea9..8fae0fa 100644
--- a/docs/search/files_3.js
+++ b/docs/search/files_3.js
@@ -1,5 +1,7 @@
var searchData=
[
- ['test_5fsuite_2ecpp_0',['test_suite.cpp',['../test__suite_8cpp.html',1,'']]],
- ['typedefs_2ehpp_1',['typedefs.hpp',['../typedefs_8hpp.html',1,'']]]
+ ['particle_2ecpp_0',['Particle.cpp',['../Particle_8cpp.html',1,'']]],
+ ['particle_2ehpp_1',['Particle.hpp',['../Particle_8hpp.html',1,'']]],
+ ['penningtrap_2ecpp_2',['PenningTrap.cpp',['../PenningTrap_8cpp.html',1,'']]],
+ ['penningtrap_2ehpp_3',['PenningTrap.hpp',['../PenningTrap_8hpp.html',1,'']]]
];
diff --git a/docs/search/files_4.js b/docs/search/files_4.js
index cd921db..5e3fea9 100644
--- a/docs/search/files_4.js
+++ b/docs/search/files_4.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['utils_2ecpp_0',['utils.cpp',['../utils_8cpp.html',1,'']]],
- ['utils_2ehpp_1',['utils.hpp',['../utils_8hpp.html',1,'']]]
+ ['test_5fsuite_2ecpp_0',['test_suite.cpp',['../test__suite_8cpp.html',1,'']]],
+ ['typedefs_2ehpp_1',['typedefs.hpp',['../typedefs_8hpp.html',1,'']]]
];
diff --git a/docs/search/files_5.js b/docs/search/files_5.js
new file mode 100644
index 0000000..cd921db
--- /dev/null
+++ b/docs/search/files_5.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['utils_2ecpp_0',['utils.cpp',['../utils_8cpp.html',1,'']]],
+ ['utils_2ehpp_1',['utils.hpp',['../utils_8hpp.html',1,'']]]
+];
diff --git a/docs/search/functions_5.js b/docs/search/functions_5.js
index f49bd4c..ae92b61 100644
--- a/docs/search/functions_5.js
+++ b/docs/search/functions_5.js
@@ -2,7 +2,7 @@ var searchData=
[
['particle_0',['Particle',['../classParticle.html#af1d7535fb8311eaa77d2b7b345882ec4',1,'Particle']]],
['penningtrap_1',['PenningTrap',['../classPenningTrap.html#a5b6c6d4636f3a6e279ccde59d4a345e8',1,'PenningTrap::PenningTrap(double B_0=T, double V_0=(25. *V)/1000., double d=500., double t=0.)'],['../classPenningTrap.html#a830be1b8cbf59664e060b6edbeaa302f',1,'PenningTrap::PenningTrap(uint i, double B_0=T, double V_0=(25. *V)/1000., double d=500., double t=0.)'],['../classPenningTrap.html#addc96789dcfec07b75156e19fee82f4f',1,'PenningTrap::PenningTrap(std::vector< Particle > particles, double B_0=T, double V_0=(25. *V)/1000., double d=500., double t=0.)']]],
- ['potential_5fresonance_5fnarrow_5fsweep_2',['potential_resonance_narrow_sweep',['../main_8cpp.html#a33d9b1c76c3c80902f89a58b1a6d96ea',1,'main.cpp']]],
- ['potential_5fresonance_5fnarrow_5fsweep_5finteraction_3',['potential_resonance_narrow_sweep_interaction',['../main_8cpp.html#ac1816f70ec612edc27848ef7f0875fdb',1,'main.cpp']]],
+ ['potential_5fresonance_5fnarrow_5fsweep_2',['potential_resonance_narrow_sweep',['../frequency__narrow__sweeps__long_8cpp.html#a33d9b1c76c3c80902f89a58b1a6d96ea',1,'potential_resonance_narrow_sweep(): frequency_narrow_sweeps_long.cpp'],['../main_8cpp.html#a33d9b1c76c3c80902f89a58b1a6d96ea',1,'potential_resonance_narrow_sweep(): main.cpp']]],
+ ['potential_5fresonance_5fnarrow_5fsweep_5finteraction_3',['potential_resonance_narrow_sweep_interaction',['../frequency__narrow__sweeps__long_8cpp.html#ac1816f70ec612edc27848ef7f0875fdb',1,'potential_resonance_narrow_sweep_interaction(): frequency_narrow_sweeps_long.cpp'],['../main_8cpp.html#ac1816f70ec612edc27848ef7f0875fdb',1,'potential_resonance_narrow_sweep_interaction(): main.cpp']]],
['potential_5fresonance_5fwide_5fsweep_4',['potential_resonance_wide_sweep',['../main_8cpp.html#a6b38b477c18e2f4268779751a88edab1',1,'main.cpp']]]
];
diff --git a/docs/search/functions_8.js b/docs/search/functions_8.js
index 6ad3539..14193ad 100644
--- a/docs/search/functions_8.js
+++ b/docs/search/functions_8.js
@@ -7,5 +7,6 @@ var searchData=
['test_5ftotal_5fforce_5fparticles_4',['test_total_force_particles',['../classPenningTrapTest.html#a68449d508e66205bc8b27fa5f60db508',1,'PenningTrapTest']]],
['total_5fforce_5',['total_force',['../classPenningTrap.html#a9a301b0540078c36697880ef204afdf3',1,'PenningTrap']]],
['total_5fforce_5fexternal_6',['total_force_external',['../classPenningTrap.html#a2c01108b52c8e2a003cf9170da9e7682',1,'PenningTrap']]],
- ['total_5fforce_5fparticles_7',['total_force_particles',['../classPenningTrap.html#a2fe1cefbae18fa5808155ee0d2df713c',1,'PenningTrap']]]
+ ['total_5fforce_5fno_5finteraction_7',['total_force_no_interaction',['../classPenningTrap.html#a6069f82d8dbc7cadaebd228dbcd95018',1,'PenningTrap']]],
+ ['total_5fforce_5fparticles_8',['total_force_particles',['../classPenningTrap.html#a2fe1cefbae18fa5808155ee0d2df713c',1,'PenningTrap']]]
];
diff --git a/docs/search/searchdata.js b/docs/search/searchdata.js
index 8aa7be2..dafc861 100644
--- a/docs/search/searchdata.js
+++ b/docs/search/searchdata.js
@@ -2,7 +2,7 @@ var indexSectionsWithContent =
{
0: "_abcdefkmpqrstuvw",
1: "ps",
- 2: "cmptu",
+ 2: "cfmptu",
3: "acefmprstvw",
4: "bdkmpqrtv",
5: "sv",
diff --git a/docs/test__suite_8cpp.html b/docs/test__suite_8cpp.html
index 6211476..bae411e 100644
--- a/docs/test__suite_8cpp.html
+++ b/docs/test__suite_8cpp.html
@@ -133,7 +133,7 @@ Functions
Janita Ovidie Sandtrøen Willumsen (janitaws)
Version 1.0
-Bug: No known bugs
+Bug: No known bugs
Definition in file test_suite.cpp .
diff --git a/docs/test__suite_8cpp_source.html b/docs/test__suite_8cpp_source.html
index 0e0fee5..9247504 100644
--- a/docs/test__suite_8cpp_source.html
+++ b/docs/test__suite_8cpp_source.html
@@ -239,12 +239,12 @@ $(document).ready(function(){initNavTree('test__suite_8cpp_source.html',''); ini
void test_external_B_field()
Test that the external B field gives correct values.
void test_total_force_external()
Test that the total external force returns expected results.
A class that simulates a Penning trap.
-vec3 total_force_external(uint i)
Calculate the total external force on a particle.
-vec3 total_force_particles(uint i)
Calculate the total force on a particle p_i from other particles.
-vec3 external_B_field(vec3 r)
Calculate B at point r.
-vec3 external_E_field(vec3 r)
Calculate E at point r.
-void add_particle(Particle particle)
Add a particle to the system.
-vec3 force_on_particle(uint i, uint j)
Calculate the force between 2 particles.
+vec3 total_force_external(uint i)
Calculate the total external force on a particle.
+vec3 total_force_particles(uint i)
Calculate the total force on a particle p_i from other particles.
+vec3 external_B_field(vec3 r)
Calculate B at point r.
+vec3 external_E_field(vec3 r)
Calculate E at point r.
+void add_particle(Particle particle)
Add a particle to the system.
+vec3 force_on_particle(uint i, uint j)
Calculate the force between 2 particles.
arma::vec::fixed< 3 > vec3
Typedef for a fixed 3d arma vector.
diff --git a/docs/utils_8cpp.html b/docs/utils_8cpp.html
index d94bebf..89ca470 100644
--- a/docs/utils_8cpp.html
+++ b/docs/utils_8cpp.html
@@ -134,7 +134,7 @@ Functions
Janita Ovidie Sandtrøen Willumsen (janitaws)
Version 1.0
-Bug: No known bugs
+Bug: No known bugs
Definition in file utils.cpp .