From 5f273894db25361e50fb89f1a8a108c004db3d59 Mon Sep 17 00:00:00 2001 From: Pascal Engeler <engelerp@phys.ethz.ch> Date: Thu, 18 Jul 2024 22:29:49 +0200 Subject: [PATCH] New files --- .../bin/main_braiding_zerostate | Bin 97164 -> 0 bytes .../bin/main_nocoupling.cpp | 116 ++++++++++++++++++ .../braidingTightBinding/bin/plot_states.py | 43 +++++++ 3 files changed, 159 insertions(+) delete mode 100755 projects/braidingTightBinding/bin/main_braiding_zerostate create mode 100644 projects/braidingTightBinding/bin/main_nocoupling.cpp create mode 100644 projects/braidingTightBinding/bin/plot_states.py diff --git a/projects/braidingTightBinding/bin/main_braiding_zerostate b/projects/braidingTightBinding/bin/main_braiding_zerostate deleted file mode 100755 index 7a77e79848dd7d421fbbabef92482967b5dc509c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97164 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 Wb|6GrVSu@v!jV8bM1)N>xc(cHwyvH4 diff --git a/projects/braidingTightBinding/bin/main_nocoupling.cpp b/projects/braidingTightBinding/bin/main_nocoupling.cpp new file mode 100644 index 0000000..a2a195f --- /dev/null +++ b/projects/braidingTightBinding/bin/main_nocoupling.cpp @@ -0,0 +1,116 @@ +#include <coupler.hpp> +#include <diagonalizer.hpp> +#include <driver.hpp> +#include <drum.hpp> +#include <force.hpp> +#include <grabber.hpp> +#include <lattice_generator.hpp> +#include <rk4_buffer.hpp> +#include <rk4_stepper.hpp> +#include <system.hpp> +#include <system_parameters.hpp> +#include <vec2.hpp> +#include <coupler_const.hpp> +#include <driver_braid.hpp> +#include <drum_parameters_braid.hpp> +#include <drum_variables_braid.hpp> +#include <force_braid.hpp> +#include <matrix_element_calculator_braid.hpp> +#include <rbcomb_generator_braid.hpp> +#include <vortex.hpp> +#include <string> +#include <fstream> +#include <cassert> + +template <typename iterator_t> +void writeToFile(const std::string filename, const std::string header, int line_length, iterator_t begin, iterator_t end) noexcept +{ + //no line breaks if line_length == -1 + if(line_length == -1){ + line_length = std::distance(begin, end); + } + std::fstream file (filename, file.out); + file << header; + file << std::endl; + for(auto it = begin; it != end; ++it){ + if(std::distance(begin, it) % line_length == 0){ + file << std::endl; + } + file << *it << " "; + } + file << std::flush; + file.close(); + +} + +int main(int argc, char** argv){ + assert(argc == 2); + //shorthands + using value_t = double; + using params_t = DrumParametersBraid<value_t>; + using vars_t = DrumVariablesBraid<value_t>; + using buffer_t = RK4Buffer<value_t>; + using drum_t = Drum<value_t, params_t, vars_t, buffer_t>; + using coupler_t = CouplerConst<value_t, drum_t, params_t>; + using driver_t = DriverBraid<value_t, drum_t>; + using sysparams_t = SystemParameters<coupler_t, driver_t>; + using force_t = ForceBraid<value_t, params_t, vars_t, buffer_t>; + using stepper_t = Rk4Stepper<value_t, params_t, vars_t, buffer_t, force_t>; + using generator_t = RbcombGeneratorBraid<value_t, params_t, vars_t, buffer_t>; + using grabber_t = Grabber<value_t, drum_t>; + using matelecalc_t = MatrixElementCalculatorBraid<value_t, params_t, vars_t, drum_t>; + using system_t = System<value_t, drum_t, grabber_t, sysparams_t, force_t, coupler_t, driver_t, stepper_t, matelecalc_t>; + using vortex_t = Vortex<value_t>; + using vec2_t = Vec2<value_t>; + + value_t k0 = 24674011002.723392; + value_t k1 = 0.; + value_t k2 = 2467401100.2723393; + value_t c = 5.235987755982988; + + params_t drum_parameters (k0, k1, k2, c, vec2_t (0., 0.), 'A'); + generator_t lattice_generator (37,15); + auto lat_pair = lattice_generator(drum_parameters); + + //set initial conditions + double x_0 = 1.; + double xdot_0 = 0.; + for(drum_t& drum: lat_pair.first){ + drum.get_variables().x = x_0; + drum.get_variables().xdot = xdot_0; + } + + sysparams_t system_parameters (coupler_t(0.), driver_t(), lat_pair.second); + force_t force; + stepper_t stepper; + + //generate grabber + double period = 0.00004; + double points_per_period = 100.; + size_t save_every = 10; + std::string parameters_file = std::string(argv[1]) + "PARAMS.TXT"; + std::string adjacency_file = std::string(argv[1]) + "ADJACENCY.TXT"; + std::string dynamics_file = std::string(argv[1]) + "DYNAMICS.TXT"; + grabber_t grabber (save_every, parameters_file, adjacency_file, dynamics_file); + + system_t system (10000*period, period/points_per_period, lat_pair.first, stepper, force, system_parameters, grabber); + system.simulate(); + system.save(); + + //set up matrix element calculator + matelecalc_t mec; + + //set up diagonalizer + Diagonalizer diagonalizer; + //calculate eigenvalues + std::vector<value_t> matrix = system.get_matrix(mec); + //std::vector<value_t> evals = diagonalizer.ev(system.get_matrix(mec), lat_pair.first.size()-1); + std::pair<std::vector<value_t>, std::vector<value_t> > diag_pair = diagonalizer.evv(system.get_matrix(mec), lat_pair.first.size()-1); + + //make eigenvalues to frequencies + std::transform(diag_pair.first.begin(), diag_pair.first.end(), diag_pair.first.begin(), [](value_t x) -> value_t {return std::sqrt(x)/(2.*M_PI);}); + + //write to file + writeToFile(std::string(argv[1]) + "eigenvalues.txt", "", 1, diag_pair.first.begin(), diag_pair.first.end()); + writeToFile(std::string(argv[1]) + "eigenvectors.txt", "", diag_pair.first.size(), diag_pair.second.begin(), diag_pair.second.end()); +} diff --git a/projects/braidingTightBinding/bin/plot_states.py b/projects/braidingTightBinding/bin/plot_states.py new file mode 100644 index 0000000..70f1496 --- /dev/null +++ b/projects/braidingTightBinding/bin/plot_states.py @@ -0,0 +1,43 @@ +import matplotlib.pyplot as plt +import numpy as np +import sys + +readpath = "../results/data/zerostate/" +writepath = "../results/plots/zerostate/" + +if(len(sys.argv) < 2): + print(f"Usage: python3.9 {sys.argv[0]} mode1 mode2 mode3 ...") + +else: + num_modes = int(len(sys.argv)-1) + #eigenvalues + ev = np.loadtxt(readpath+"eigenvalues.txt") + #eigenvectors + data = np.loadtxt(readpath+"eigenvectors.txt") + pos_data = np.loadtxt(readpath+"PARAMS.txt", dtype=str) #positions are rows 4 and 5 + desired_length = len(data[0,:]) + pos_x = pos_data[0:desired_length,4].astype('float') + pos_y = pos_data[:desired_length,5].astype('float') + + plt.figure(figsize=(8,5*num_modes)) + count = 1 + for str_i in sys.argv[1:]: + i = int(str_i)-1 + plt.subplot(num_modes, 1, count) + cmax = np.amax(data[i,:]) + cmin = np.amin(data[i,:]) + if(-cmin > cmax): + cmax = -cmin + elif(-cmin <= cmax): + cmin = -cmax + plt.scatter(pos_x, pos_y, c=data[i,:], edgecolors='k', linewidth=0.1, cmap='seismic', s=16, vmin=cmin, vmax=cmax) + plt.colorbar() + plt.title(f"Mode {i+1}, ({ev[i]} Hz)") + plt.xlabel("x") + plt.ylabel("y") + count += 1 + +name = "Modes" +for str_i in sys.argv[1:]: + name += f"_{str_i}" +plt.savefig(writepath + name, dpi=500, bbox_inches='tight', pad_inches=0) -- GitLab