Minimum, messy code

This commit is contained in:
2023-12-17 13:33:06 +01:00
parent cc6a6e4a9e
commit 54de6d68b1
9 changed files with 427 additions and 12 deletions

View File

@@ -0,0 +1,120 @@
/** @file main.cpp
*
* @author Cory Alexander Balaton (coryab)
* @author Janita Ovidie Sandtrøen Willumsen (janitaws)
*
* @version 1.0
*
* @brief Implementation of the testing library
*
* @bug No known bugs
* */
#include "WaveSimulation.hpp"
#include "utils.hpp"
void probability_deviation()
{
WaveSimulation sim_narrow(.005, 2.5e-5, .008);
sim_narrow.initialize_U(.25, .5, .05, .05, 200., 0.);
sim_narrow.build_A();
sim_narrow.build_B();
WaveSimulation sim_wide(.005, 2.5e-5, .008);
sim_wide.build_V(.02, .5, .05, .05, 2);
sim_wide.initialize_U(.25, .5, .05, .10, 200., 0.);
sim_wide.build_A();
sim_wide.build_B();
std::ofstream ofile;
utils::mkpath("data");
ofile.open("data/probability_deviation.txt");
double sum_narrow, sum_wide;
for (size_t i = 0; i < 320; i++) {
sum_narrow = 0;
sum_wide = 0;
for (size_t j = 0; j < sim_narrow.U.n_elem; j++) {
sum_narrow += (sim_narrow.U(j) * std::conj(sim_narrow.U(j))).real();
sum_wide += (sim_wide.U(j) * std::conj(sim_wide.U(j))).real();
}
sim_narrow.step();
sim_wide.step();
ofile << i << ',' << sum_narrow << ',' << sum_wide << '\n';
}
ofile.close();
}
void color_map()
{
WaveSimulation sim(.005, 2.5e-5, .008);
sim.build_V(.02, .5, .05, .05, 2);
sim.initialize_U(.25, .5, .05, .10, 200., 0.);
sim.build_A();
sim.build_B();
std::ofstream ofile;
ofile.open("data/color_map.txt");
ofile << sim.N << '\n';
sim.write_U(ofile);
for (size_t i = 0; i < 40; i++) {
sim.step();
}
sim.write_U(ofile);
for (size_t i = 0; i < 40; i++) {
sim.step();
}
sim.write_U(ofile);
ofile.close();
}
void detector_screen()
{
WaveSimulation sim(.005, 2.5e-5, .008);
sim.build_V(.02, .5, .05, .05, 1);
sim.initialize_U(.25, .5, .05, .10, 200., 0.);
sim.build_A();
sim.build_B();
std::ofstream ofile;
ofile.open("data/screen/single_slit.txt");
ofile << sim.N << '\n';
for (size_t i = 0; i < 80; i++) {
sim.step();
}
sim.write_U(ofile);
ofile.close();
sim.build_V(.02, .5, .05, .05, 2);
sim.initialize_U(.25, .5, .05, .10, 200., 0.);
ofile.open("data/screen/double_slit.txt");
ofile << sim.N << '\n';
for (size_t i = 0; i < 80; i++) {
sim.step();
}
sim.write_U(ofile);
ofile.close();
sim.build_V(.02, .5, .05, .05, 3);
sim.initialize_U(.25, .5, .05, .10, 200., 0.);
ofile.open("data/screen/triple_slit.txt");
ofile << sim.N << '\n';
for (size_t i = 0; i < 80; i++) {
sim.step();
}
sim.write_U(ofile);
ofile.close();
}
int main()
{
probability_deviation();
color_map();
detector_screen();
return 0;
}

View File

@@ -0,0 +1,4 @@
int main()
{
return 0;
}