diff --git a/Additional/SpiralLoop (version 1).xls b/Additional/SpiralLoop (version 1).xls
new file mode 100644
index 0000000..c88efbc
Binary files /dev/null and b/Additional/SpiralLoop (version 1).xls differ
diff --git a/Benchmarking/.idea/.gitignore b/Benchmarking/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/Benchmarking/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Benchmarking/.idea/Spyder.iml b/Benchmarking/.idea/Spyder.iml
new file mode 100644
index 0000000..8b8c395
--- /dev/null
+++ b/Benchmarking/.idea/Spyder.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Benchmarking/.idea/inspectionProfiles/profiles_settings.xml b/Benchmarking/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/Benchmarking/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Benchmarking/.idea/misc.xml b/Benchmarking/.idea/misc.xml
new file mode 100644
index 0000000..d1e22ec
--- /dev/null
+++ b/Benchmarking/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/Benchmarking/.idea/modules.xml b/Benchmarking/.idea/modules.xml
new file mode 100644
index 0000000..55f3dcd
--- /dev/null
+++ b/Benchmarking/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Benchmarking/.spyproject/config/codestyle.ini b/Benchmarking/.spyproject/config/codestyle.ini
new file mode 100644
index 0000000..0f54b4c
--- /dev/null
+++ b/Benchmarking/.spyproject/config/codestyle.ini
@@ -0,0 +1,8 @@
+[codestyle]
+indentation = True
+edge_line = True
+edge_line_columns = 79
+
+[main]
+version = 0.2.0
+
diff --git a/Benchmarking/.spyproject/config/defaults/defaults-codestyle-0.2.0.ini b/Benchmarking/.spyproject/config/defaults/defaults-codestyle-0.2.0.ini
new file mode 100644
index 0000000..0b95e5c
--- /dev/null
+++ b/Benchmarking/.spyproject/config/defaults/defaults-codestyle-0.2.0.ini
@@ -0,0 +1,5 @@
+[codestyle]
+indentation = True
+edge_line = True
+edge_line_columns = 79
+
diff --git a/Benchmarking/.spyproject/config/defaults/defaults-encoding-0.2.0.ini b/Benchmarking/.spyproject/config/defaults/defaults-encoding-0.2.0.ini
new file mode 100644
index 0000000..0ce193c
--- /dev/null
+++ b/Benchmarking/.spyproject/config/defaults/defaults-encoding-0.2.0.ini
@@ -0,0 +1,3 @@
+[encoding]
+text_encoding = utf-8
+
diff --git a/Benchmarking/.spyproject/config/defaults/defaults-vcs-0.2.0.ini b/Benchmarking/.spyproject/config/defaults/defaults-vcs-0.2.0.ini
new file mode 100644
index 0000000..ee25483
--- /dev/null
+++ b/Benchmarking/.spyproject/config/defaults/defaults-vcs-0.2.0.ini
@@ -0,0 +1,4 @@
+[vcs]
+use_version_control = False
+version_control_system =
+
diff --git a/Benchmarking/.spyproject/config/defaults/defaults-workspace-0.2.0.ini b/Benchmarking/.spyproject/config/defaults/defaults-workspace-0.2.0.ini
new file mode 100644
index 0000000..2a73ab7
--- /dev/null
+++ b/Benchmarking/.spyproject/config/defaults/defaults-workspace-0.2.0.ini
@@ -0,0 +1,6 @@
+[workspace]
+restore_data_on_startup = True
+save_data_on_exit = True
+save_history = True
+save_non_project_files = False
+
diff --git a/Benchmarking/.spyproject/config/encoding.ini b/Benchmarking/.spyproject/config/encoding.ini
new file mode 100644
index 0000000..a17aced
--- /dev/null
+++ b/Benchmarking/.spyproject/config/encoding.ini
@@ -0,0 +1,6 @@
+[encoding]
+text_encoding = utf-8
+
+[main]
+version = 0.2.0
+
diff --git a/Benchmarking/.spyproject/config/vcs.ini b/Benchmarking/.spyproject/config/vcs.ini
new file mode 100644
index 0000000..fd66eae
--- /dev/null
+++ b/Benchmarking/.spyproject/config/vcs.ini
@@ -0,0 +1,7 @@
+[vcs]
+use_version_control = False
+version_control_system =
+
+[main]
+version = 0.2.0
+
diff --git a/Benchmarking/.spyproject/config/workspace.ini b/Benchmarking/.spyproject/config/workspace.ini
new file mode 100644
index 0000000..e09a825
--- /dev/null
+++ b/Benchmarking/.spyproject/config/workspace.ini
@@ -0,0 +1,10 @@
+[workspace]
+restore_data_on_startup = True
+save_data_on_exit = True
+save_history = True
+save_non_project_files = False
+
+[main]
+version = 0.2.0
+recent_files = ['comparison_HH_increased_resolution.py']
+
diff --git a/Benchmarking/Simple_testing.py b/Benchmarking/Simple_testing.py
new file mode 100644
index 0000000..1da81f3
--- /dev/null
+++ b/Benchmarking/Simple_testing.py
@@ -0,0 +1,12 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Aug 16 13:45:56 2021
+
+@author: Joschka
+"""
+
+import numpy as np
+
+import matplotlib_inline as plt
+
+x =
\ No newline at end of file
diff --git a/Benchmarking/comparison_HH_increased_resolution.py b/Benchmarking/comparison_HH_increased_resolution.py
new file mode 100644
index 0000000..7c282d6
--- /dev/null
+++ b/Benchmarking/comparison_HH_increased_resolution.py
@@ -0,0 +1,182 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Aug 16 11:49:41 2021
+
+@author: Joschka
+"""
+import matplotlib.pyplot as plt
+import numpy as np
+from src import B_field_calculation as bf
+
+from src import coil_class as BC
+
+
+from IPython import get_ipython
+get_ipython().run_line_magic('matplotlib', 'qt')
+#get_ipython().run_line_magic('matplotlib', 'inline')
+
+#set up axis
+x_m = np.linspace(-0.05, 0.05, 51)
+z_m = np.linspace(-0.05, 0.05, 201)
+
+
+z = z_m*1e3
+x = x_m*1e3 #for plotting in mm
+
+#Import Values from simulation
+B_z_sim = np.loadtxt('data/B_z_HH2.txt')
+B_x_sim = np.loadtxt('data/B_x_HH2.txt')
+
+
+################# My simulation #########################
+I = 5
+HH = 1
+d_coils = 44
+R_inner = 44-3*1.7
+
+layers = 6
+windings = 2
+wire_width = 1.7
+wire_height = 2.6
+
+
+
+
+B_z, B_x = bf.B_multiple_raster_test(I,HH,R_inner,d_coils,layers,windings,wire_width, wire_height, x_m,z_m)
+#B_test = B_field_ideal_AHH(layers*windings,I,R_inner*1e-3,d_coils*1e-3,z_m)
+
+#B_x = np.concatenate((-np.flip(B_r),B_r[1:len(B_r)]))
+
+
+
+
+
+
+
+
+
+#Calculate gradients/curvature
+B_z_sim_grad = np.gradient(np.gradient(B_z_sim,z_m),z_m)/1e4
+B_x_sim_grad = np.gradient(B_x_sim,x_m)/100
+B_z_grad = np.gradient(np.gradient(B_z,z_m),z_m)/1e4
+B_x_grad = np.gradient(B_x,x_m)/100
+
+
+#Calculate relative differences in permille
+rel_diff_Bz = (B_z-B_z_sim)/B_z
+rel_diff_Bx = (B_x-B_x_sim)/B_x
+rel_diff_Bz_grad = (B_z_grad-B_z_sim_grad)/B_z_grad
+
+rel_diff_Bz_grad_mean = (B_z_grad-B_z_sim_grad)/np.mean(B_z_grad)
+rel_diff_Bx_grad = (B_x_grad-B_x_sim_grad)/B_x_grad
+
+#Plotting
+plt.figure(1,figsize=(20,18))
+
+plt.rcParams.update({'font.size': 15})
+plt.suptitle("Helmholtz coil field B_z along z-axis, comparison of simulations", fontsize=30)
+
+
+#Field plot
+##########################
+plt.subplot(3,2,1)
+plt.plot(z,B_z,linestyle = "solid", label = r"$B_z$: Result via elliptic integrals")
+plt.plot(z,B_z_sim,linestyle = "dashdot", label = r"$B_{z, sim}$: Numerical Matlab simulation")
+plt.plot(z,(B_z-B_z_sim), label = r"$B_z - B_{z, sim}$")
+#plt.xlim(-0.01,0.01)
+plt.title("B-field" ,fontsize = 30)
+
+plt.ylabel(r"$B_z$ [G]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+
+#############################
+plt.subplot(3,2,3)
+plt.plot(z,(B_z-B_z_sim), label = r"$B_z - B_{z, sim}$")
+plt.ylabel("absolute deviation [G]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+#############################
+plt.subplot(3,2,5)
+plt.plot(z,1000*rel_diff_Bz, label = "$(B_z - B_{z, sim}) / B_z$")
+plt.ylabel("relative deviation [‰]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+
+######################Gradient plot############################
+
+################
+plt.subplot(3,2,2)
+plt.plot(z,B_z_grad,linestyle = "solid", label = r"$\nabla_z^2 B_z$: Result via elliptic integrals")
+plt.plot(z,B_z_sim_grad,linestyle = "dashdot", label = r"$\nabla_z^2 B_{z, sim}$: Numerical Matlab sim.")
+plt.plot(z,(B_z_grad-B_z_sim_grad), label = r"$\nabla_z^2 B_z - \nabla_z^2 B_{z, sim}$")
+
+plt.ylabel(r"$\nabla_z^2 B_z [G/cm^2]$")
+plt.xlabel("z-axis [mm]")
+plt.title("Curvature of B-field",fontsize = 30)
+plt.legend(loc='lower right')
+
+
+#################
+
+plt.subplot(3,2,4)
+plt.plot(z,(B_z_grad-B_z_sim_grad), label = r"$\nabla_z^2 B_z - \nabla_z^2 B_{z, sim}$")
+plt.ylabel(r"absolute deviation $[G/cm^2]$")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+#####################
+plt.subplot(3,2,6)
+plt.plot(z,1000*rel_diff_Bz_grad, label = r"$(\nabla_z^2 B_z - \nabla_z^2 B_{z, sim}) / \nabla_z^2 B_z$")
+#plt.ylim(-57,10)
+plt.ylabel("relative deviation [‰]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+
+plt.savefig("output/HH_benchmark_5A_6x2.pdf")
+plt.show()
+
+############### relative deviation with averaging by the mean not the individual value ########################################
+plt.figure(2)
+
+plt.plot(z,1000*rel_diff_Bz_grad_mean, label = r"$(\nabla_z^2 B_z - \nabla_z^2 B_{z, sim}) / mean(\nabla_z^2 B_z)$")
+#plt.ylim(-57,10)
+plt.ylabel("relative deviation [‰]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+plt.savefig("output/HH_benchmark_5A_6x2_rel_deviation_via_mean.pdf")
+plt.show()
+
+##################### x-Axis #########################################################
+
+plt.figure(3)
+
+plt.rcParams.update({'font.size': 15})
+plt.suptitle("Helmholtz coil field B_x along x-axis, comparison of simulations", fontsize=30)
+
+
+#Field plot
+##########################
+
+plt.plot(x,B_x,linestyle = "solid", label = r"$B_x$: Result via elliptic integrals")
+plt.plot(x,B_x_sim,linestyle = "dashdot", label = r"$B_{x, sim}$: Numerical Matlab simulation")
+plt.plot(x,(B_x-B_x_sim), label = r"$B_x - B_{x, sim}$")
+#plt.xlim(-0.01,0.01)
+plt.title("B-field" ,fontsize = 30)
+
+plt.ylabel(r"$B_x$ [G]")
+plt.xlabel("x-axis [mm]")
+plt.legend()
+
+
+
+
+#################
+
+
+plt.savefig("output/HH_benchmark_5A_6x2_x-axis.pdf")
+plt.show()
\ No newline at end of file
diff --git a/Benchmarking/comparison_HH_increased_resolution_different_z_dimensions.py b/Benchmarking/comparison_HH_increased_resolution_different_z_dimensions.py
new file mode 100644
index 0000000..76eb620
--- /dev/null
+++ b/Benchmarking/comparison_HH_increased_resolution_different_z_dimensions.py
@@ -0,0 +1,153 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Aug 16 11:49:41 2021
+
+@author: Joschka
+"""
+import matplotlib.pyplot as plt
+import numpy as np
+import B_field_calculation as bf
+
+from IPython import get_ipython
+get_ipython().run_line_magic('matplotlib', 'qt')
+#get_ipython().run_line_magic('matplotlib', 'inline')
+
+#set up axis
+x_m = np.linspace(-0.05,0.05,51)
+z_m = np.linspace(-0.05,0.05,201)
+
+z_m_2 = np.linspace(-0.05,0.05,1001)
+
+z_2 = z_m_2*1e3
+
+z = z_m*1e3
+x = x_m*1e3 #for plotting in mm
+
+#Import Values from simulation
+B_z_sim = np.loadtxt('data/B_z_HH2.txt')
+B_x_sim = np.loadtxt('data/B_x_HH2.txt')
+
+
+################# My simulation #########################
+I = 5
+HH = 1
+d_coils = 78
+R_inner = 44-3*1.7
+
+layers = 6
+windings = 2
+wire_width = 1.7
+wire_height = 2.6
+
+
+B_z, B_x = bf.B_multiple_raster_test(I,HH,R_inner,d_coils,layers,windings,wire_width, wire_height, x_m,z_m_2)
+#B_test = B_field_ideal_AHH(layers*windings,I,R_inner*1e-3,d_coils*1e-3,z_m)
+
+#B_x = np.concatenate((-np.flip(B_r),B_r[1:len(B_r)]))
+
+
+#Calculate gradients/curvature
+B_z_sim_grad = np.gradient(np.gradient(B_z_sim,z_m),z_m)/1e4
+B_x_sim_grad = np.gradient(B_x_sim,x_m)/100
+B_z_grad = np.gradient(np.gradient(B_z,z_m_2),z_m_2)/1e4
+B_x_grad = np.gradient(B_x,x_m)/100
+
+
+#try plot
+plt.figure(1)
+plt.plot(z_2,B_z,linestyle = "solid", label = r"$B_z$: Result via elliptic integrals")
+plt.plot(z,B_z_sim,linestyle = "dashdot", label = r"$B_{z, sim}$: Numerical Matlab simulation")
+#plt.plot(z,(B_z-B_z_sim), label = r"$B_z - B_{z, sim}$")
+#plt.xlim(-0.01,0.01)
+plt.title("B-field" ,fontsize = 30)
+
+plt.ylabel(r"$B_z$ [G]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+plt.show()
+
+plt.figure(2)
+plt.plot(z_2,B_z_grad,linestyle = "solid", label = r"$\nabla_z^2 B_z$: Result via elliptic integrals")
+plt.plot(z,B_z_sim_grad,linestyle = "dashdot", label = r"$\nabla_z^2 B_{z, sim}$: Numerical Matlab sim.")
+#plt.plot(z,(B_z_grad-B_z_sim_grad), label = r"$\nabla_z^2 B_z - \nabla_z^2 B_{z, sim}$")
+
+plt.ylabel(r"$\nabla_z^2 B_z [G/cm^2]$")
+plt.xlabel("z-axis [mm]")
+plt.title("Curvature of B-field",fontsize = 30)
+plt.legend(loc='lower right')
+plt.show()
+
+
+#Calculate relative differences in permille
+rel_diff_Bz = (B_z-B_z_sim)/B_z
+rel_diff_Bx = (B_x-B_x_sim)/B_x
+rel_diff_Bz_grad = (B_z_grad-B_z_sim_grad)/B_z_grad
+rel_diff_Bx_grad = (B_x_grad-B_x_sim_grad)/B_x_grad
+
+#Plotting
+plt.figure(figsize=(20,18))
+
+plt.rcParams.update({'font.size': 15})
+plt.suptitle("Helmholtz coil field B_z along z-axis, comparison of simulations", fontsize=30)
+
+
+#Field plot
+##########################
+plt.subplot(3,2,1)
+plt.plot(z,B_z,linestyle = "solid", label = r"$B_z$: Result via elliptic integrals")
+plt.plot(z,B_z_sim,linestyle = "dashdot", label = r"$B_{z, sim}$: Numerical Matlab simulation")
+plt.plot(z,(B_z-B_z_sim), label = r"$B_z - B_{z, sim}$")
+#plt.xlim(-0.01,0.01)
+plt.title("B-field" ,fontsize = 30)
+
+plt.ylabel(r"$B_z$ [G]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+
+#############################
+plt.subplot(3,2,3)
+plt.plot(z,(B_z-B_z_sim), label = r"$B_z - B_{z, sim}$")
+plt.ylabel("absolute deviation [G]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+#############################
+plt.subplot(3,2,5)
+plt.plot(z,1000*rel_diff_Bz, label = "$(B_z - B_{z, sim}) / B_z$")
+plt.ylabel("relative deviation [‰]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+
+######################Gradient plot############################
+
+################
+plt.subplot(3,2,2)
+plt.plot(z,B_z_grad,linestyle = "solid", label = r"$\nabla_z^2 B_z$: Result via elliptic integrals")
+plt.plot(z,B_z_sim_grad,linestyle = "dashdot", label = r"$\nabla_z^2 B_{z, sim}$: Numerical Matlab sim.")
+plt.plot(z,(B_z_grad-B_z_sim_grad), label = r"$\nabla_z^2 B_z - \nabla_z^2 B_{z, sim}$")
+
+plt.ylabel(r"$\nabla_z^2 B_z [G/cm^2]$")
+plt.xlabel("z-axis [mm]")
+plt.title("Curvature of B-field",fontsize = 30)
+plt.legend(loc='lower right')
+
+
+#################
+
+plt.subplot(3,2,4)
+plt.plot(z,(B_z_grad-B_z_sim_grad), label = r"$\nabla_z^2 B_z - \nabla_z^2 B_{z, sim}$")
+plt.ylabel(r"absolute deviation $[G/cm^2]$")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+#####################
+plt.subplot(3,2,6)
+plt.plot(z,1000*rel_diff_Bz_grad, label = r"$(\nabla_z^2 B_z - \nabla_z^2 B_{z, sim}) / \nabla_z^2 B_z$")
+plt.ylim(-57,10)
+plt.ylabel("relative deviation [‰]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+plt.show()
\ No newline at end of file
diff --git a/Benchmarking/comparison_HH_increased_resolution_different_z_dimensions1.py b/Benchmarking/comparison_HH_increased_resolution_different_z_dimensions1.py
new file mode 100644
index 0000000..b33a61b
--- /dev/null
+++ b/Benchmarking/comparison_HH_increased_resolution_different_z_dimensions1.py
@@ -0,0 +1,153 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Aug 16 11:49:41 2021
+
+@author: Joschka
+"""
+import matplotlib.pyplot as plt
+import numpy as np
+import B_field_calculation as bf
+
+from IPython import get_ipython
+get_ipython().run_line_magic('matplotlib', 'qt')
+#get_ipython().run_line_magic('matplotlib', 'inline')
+
+#set up axis
+x_m = np.linspace(-0.05,0.05,51)
+z_m = np.linspace(-0.05,0.05,201)
+
+z_m_2 = np.linspace(-0.05,0.05,1001)
+
+z_2 = z_m_2*1e3
+
+z = z_m*1e3
+x = x_m*1e3 #for plotting in mm
+
+#Import Values from simulation
+B_z_sim = np.loadtxt('data/B_z_HH2.txt')
+B_x_sim = np.loadtxt('data/B_x_HH2.txt')
+
+
+################# My simulation #########################
+I = 5
+HH = 1
+d_coils = 44
+R_inner = 44-3*1.7
+
+layers = 6
+windings = 2
+wire_width = 1.7
+wire_height = 2.6
+
+
+B_z, B_x = bf.B_multiple_raster_test(I,HH,R_inner,d_coils,layers,windings,wire_width, wire_height, x_m,z_m_2)
+#B_test = B_field_ideal_AHH(layers*windings,I,R_inner*1e-3,d_coils*1e-3,z_m)
+
+#B_x = np.concatenate((-np.flip(B_r),B_r[1:len(B_r)]))
+
+
+#Calculate gradients/curvature
+B_z_sim_grad = np.gradient(np.gradient(B_z_sim,z_m),z_m)/1e4
+B_x_sim_grad = np.gradient(B_x_sim,x_m)/100
+B_z_grad = np.gradient(np.gradient(B_z,z_m_2),z_m_2)/1e4
+B_x_grad = np.gradient(B_x,x_m)/100
+
+
+#try plot
+plt.figure(1)
+plt.plot(z_2,B_z,linestyle = "solid", label = r"$B_z$: Result via elliptic integrals")
+plt.plot(z,B_z_sim,linestyle = "dashdot", label = r"$B_{z, sim}$: Numerical Matlab simulation")
+#plt.plot(z,(B_z-B_z_sim), label = r"$B_z - B_{z, sim}$")
+#plt.xlim(-0.01,0.01)
+plt.title("B-field" ,fontsize = 30)
+
+plt.ylabel(r"$B_z$ [G]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+plt.show()
+
+plt.figure(2)
+plt.plot(z_2,B_z_grad,linestyle = "solid", label = r"$\nabla_z^2 B_z$: Result via elliptic integrals")
+plt.plot(z,B_z_sim_grad,linestyle = "dashdot", label = r"$\nabla_z^2 B_{z, sim}$: Numerical Matlab sim.")
+#plt.plot(z,(B_z_grad-B_z_sim_grad), label = r"$\nabla_z^2 B_z - \nabla_z^2 B_{z, sim}$")
+
+plt.ylabel(r"$\nabla_z^2 B_z [G/cm^2]$")
+plt.xlabel("z-axis [mm]")
+plt.title("Curvature of B-field",fontsize = 30)
+plt.legend(loc='lower right')
+plt.show()
+
+
+#Calculate relative differences in permille
+rel_diff_Bz = (B_z-B_z_sim)/B_z
+rel_diff_Bx = (B_x-B_x_sim)/B_x
+rel_diff_Bz_grad = (B_z_grad-B_z_sim_grad)/B_z_grad
+rel_diff_Bx_grad = (B_x_grad-B_x_sim_grad)/B_x_grad
+
+#Plotting
+plt.figure(figsize=(20,18))
+
+plt.rcParams.update({'font.size': 15})
+plt.suptitle("Helmholtz coil field B_z along z-axis, comparison of simulations", fontsize=30)
+
+
+#Field plot
+##########################
+plt.subplot(3,2,1)
+plt.plot(z,B_z,linestyle = "solid", label = r"$B_z$: Result via elliptic integrals")
+plt.plot(z,B_z_sim,linestyle = "dashdot", label = r"$B_{z, sim}$: Numerical Matlab simulation")
+plt.plot(z,(B_z-B_z_sim), label = r"$B_z - B_{z, sim}$")
+#plt.xlim(-0.01,0.01)
+plt.title("B-field" ,fontsize = 30)
+
+plt.ylabel(r"$B_z$ [G]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+
+#############################
+plt.subplot(3,2,3)
+plt.plot(z,(B_z-B_z_sim), label = r"$B_z - B_{z, sim}$")
+plt.ylabel("absolute deviation [G]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+#############################
+plt.subplot(3,2,5)
+plt.plot(z,1000*rel_diff_Bz, label = "$(B_z - B_{z, sim}) / B_z$")
+plt.ylabel("relative deviation [‰]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+
+######################Gradient plot############################
+
+################
+plt.subplot(3,2,2)
+plt.plot(z,B_z_grad,linestyle = "solid", label = r"$\nabla_z^2 B_z$: Result via elliptic integrals")
+plt.plot(z,B_z_sim_grad,linestyle = "dashdot", label = r"$\nabla_z^2 B_{z, sim}$: Numerical Matlab sim.")
+plt.plot(z,(B_z_grad-B_z_sim_grad), label = r"$\nabla_z^2 B_z - \nabla_z^2 B_{z, sim}$")
+
+plt.ylabel(r"$\nabla_z^2 B_z [G/cm^2]$")
+plt.xlabel("z-axis [mm]")
+plt.title("Curvature of B-field",fontsize = 30)
+plt.legend(loc='lower right')
+
+
+#################
+
+plt.subplot(3,2,4)
+plt.plot(z,(B_z_grad-B_z_sim_grad), label = r"$\nabla_z^2 B_z - \nabla_z^2 B_{z, sim}$")
+plt.ylabel(r"absolute deviation $[G/cm^2]$")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+#####################
+plt.subplot(3,2,6)
+plt.plot(z,1000*rel_diff_Bz_grad, label = r"$(\nabla_z^2 B_z - \nabla_z^2 B_{z, sim}) / \nabla_z^2 B_z$")
+plt.ylim(-57,10)
+plt.ylabel("relative deviation [‰]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+plt.show()
\ No newline at end of file
diff --git a/Benchmarking/comparison_HH_normal.py b/Benchmarking/comparison_HH_normal.py
new file mode 100644
index 0000000..06f2ab9
--- /dev/null
+++ b/Benchmarking/comparison_HH_normal.py
@@ -0,0 +1,126 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Aug 16 11:49:41 2021
+
+@author: Joschka
+"""
+import matplotlib.pyplot as plt
+import numpy as np
+import B_field_calculation as bf
+
+from IPython import get_ipython
+get_ipython().run_line_magic('matplotlib', 'qt')
+#get_ipython().run_line_magic('matplotlib', 'inline')
+
+#set up axis
+x_m = np.linspace(-0.05,0.05,51)
+z_m = np.linspace(-0.05,0.05,51)
+
+
+
+z = z_m*1e3
+x = x_m*1e3 #for plotting in mm
+
+#Import Values from simulation
+B_z_sim = np.loadtxt('data/B_z_HH.txt')
+B_x_sim = np.loadtxt('data/B_x_HH.txt')
+
+
+################# My simulation #########################
+I = 5
+HH = 1
+d_coils = 44
+R_inner = 44
+
+layers = 10
+windings = 2
+wire_width = 1
+wire_height = 2.6
+
+
+B_z, B_x = bf.B_multiple(I,HH,R_inner,d_coils,layers,windings,wire_width, wire_height, x_m,z_m)
+#B_test = B_field_ideal_AHH(layers*windings,I,R_inner*1e-3,d_coils*1e-3,z_m)
+
+#B_x = np.concatenate((-np.flip(B_r),B_r[1:len(B_r)]))
+
+
+#Calculate gradients/curvature
+B_z_sim_grad = np.gradient(np.gradient(B_z_sim,z_m),z_m)/1e4
+B_x_sim_grad = np.gradient(B_x_sim,x_m)/100
+B_z_grad = np.gradient(np.gradient(B_z,z_m),z_m)/1e4
+B_x_grad = np.gradient(B_x,x_m)/100
+
+
+#Calculate relative differences in permille
+rel_diff_Bz = (B_z-B_z_sim)/B_z
+rel_diff_Bx = (B_x-B_x_sim)/B_x
+rel_diff_Bz_grad = (B_z_grad-B_z_sim_grad)/B_z_grad
+rel_diff_Bx_grad = (B_x_grad-B_x_sim_grad)/B_x_grad
+
+#Plotting
+plt.figure(figsize=(20,18))
+
+plt.rcParams.update({'font.size': 15})
+plt.suptitle("Helmholtz coil field B_z along z-axis, comparison of simulations", fontsize=30)
+
+
+#Field plot
+##########################
+plt.subplot(3,2,1)
+plt.plot(z,B_z,linestyle = "solid", label = r"$B_z$: Result via elliptic integrals")
+plt.plot(z,B_z_sim,linestyle = "dashdot", label = r"$B_{z, sim}$: Numerical Matlab simulation")
+plt.plot(z,(B_z-B_z_sim), label = r"$B_z - B_{z, sim}$")
+#plt.xlim(-0.01,0.01)
+plt.title("B-field" ,fontsize = 30)
+
+plt.ylabel(r"$B_z$ [G]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+
+#############################
+plt.subplot(3,2,3)
+plt.plot(z,(B_z-B_z_sim), label = r"$B_z - B_{z, sim}$")
+plt.ylabel("absolute deviation [G]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+#############################
+plt.subplot(3,2,5)
+plt.plot(z,1000*rel_diff_Bz, label = "$(B_z - B_{z, sim}) / B_z$")
+plt.ylabel("relative deviation [‰]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+
+######################Gradient plot############################
+
+################
+plt.subplot(3,2,2)
+plt.plot(z,B_z_grad,linestyle = "solid", label = r"$\nabla_z^2 B_z$: Result via elliptic integrals")
+plt.plot(z,B_z_sim_grad,linestyle = "dashdot", label = r"$\nabla_z^2 B_{z, sim}$: Numerical Matlab sim.")
+plt.plot(z,(B_z_grad-B_z_sim_grad), label = r"$\nabla_z^2 B_z - \nabla_z^2 B_{z, sim}$")
+
+plt.ylabel(r"$\nabla_z^2 B_z [G/cm^2]$")
+plt.xlabel("z-axis [mm]")
+plt.title("Curvature of B-field",fontsize = 30)
+plt.legend(loc='lower right')
+
+
+#################
+
+plt.subplot(3,2,4)
+plt.plot(z,(B_z_grad-B_z_sim_grad), label = r"$\nabla_z^2 B_z - \nabla_z^2 B_{z, sim}$")
+plt.ylabel(r"absolute deviation $[G/cm^2]$")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+#####################
+plt.subplot(3,2,6)
+plt.plot(z,1000*rel_diff_Bz_grad, label = r"$(\nabla_z^2 B_z - \nabla_z^2 B_{z, sim}) / \nabla_z^2 B_z$")
+plt.ylim(-57,10)
+plt.ylabel("relative deviation [‰]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+plt.show()
\ No newline at end of file
diff --git a/Benchmarking/data/B_x.txt b/Benchmarking/data/B_x.txt
new file mode 100644
index 0000000..e68a577
--- /dev/null
+++ b/Benchmarking/data/B_x.txt
@@ -0,0 +1,51 @@
+2.58228909714096
+2.62974538222051
+2.65944955784724
+2.67018023408114
+2.66129310777269
+2.63274636464909
+2.58507635240118
+2.51932891811042
+2.43695775772549
+2.33970435103465
+2.22947425589503
+2.10822224575473
+1.97785501967328
+1.84015609055015
+1.69673381785331
+1.5489908693351
+1.39811178932252
+1.24506469044685
+1.09061312356843
+0.935334651061495
+0.779643326178502
+0.623814004093807
+0.468007079187523
+0.312292808736715
+0.156674829998973
+0.00111281003184087
+-0.154455601231865
+-0.310093199262038
+-0.465841648637876
+-0.621699513490636
+-0.777599570919756
+-0.933385222755551
+-1.08878604652763
+-1.24339285381046
+-1.39663306776149
+-1.54774779802038
+-1.69577266767607
+-1.83952518780893
+-1.97760218416845
+-2.1083912972814
+-2.23010067296318
+-2.34081035784062
+-2.43854734635146
+-2.52138353563691
+-2.58755212369357
+-2.63557369709183
+-2.66437927197459
+-2.67341503397356
+-2.66271358255533
+-2.63291973763518
+-2.58526513884324
diff --git a/Benchmarking/data/B_x_HH.txt b/Benchmarking/data/B_x_HH.txt
new file mode 100644
index 0000000..15fd767
--- /dev/null
+++ b/Benchmarking/data/B_x_HH.txt
@@ -0,0 +1,51 @@
+-3.16996429106098e-16
+2.12281581202234e-16
+2.90868024110935e-16
+-1.52549847753924e-16
+-4.48460713009524e-17
+1.78201203793193e-16
+-1.79897763352699e-16
+-2.26367535827165e-16
+4.43187153642555e-17
+-2.69312350198447e-16
+2.23189522419176e-17
+-1.08999614889527e-16
+-9.00043928275807e-17
+-3.54577478489659e-17
+-2.1298587893348e-16
+-3.95274091236075e-17
+-7.6369466306403e-17
+4.99322805325164e-17
+-8.50014503228636e-18
+-3.11972669919669e-17
+-1.72431513512095e-17
+-1.660477311205e-17
+-2.46330733588707e-18
+2.02615701994091e-18
+-1.6153745008296e-17
+8.46545056276682e-19
+2.2065682614425e-17
+2.901845430614e-17
+6.85562717706034e-18
+-1.47798440153224e-17
+4.8919202022546e-17
+9.30089338879725e-17
+-8.02691246803988e-17
+3.22797344409764e-17
+-5.15143483426073e-17
+1.49547041417009e-16
+-3.49720252756924e-17
+1.31672450720544e-16
+9.14823772291129e-17
+-5.1680881796301e-17
+4.92383911421257e-17
+2.1582735598713e-16
+8.57092175010621e-17
+2.96096480667529e-16
+8.26005930321116e-17
+1.85185200507476e-16
+2.05613304160579e-16
+-1.51212375953946e-16
+-1.57651669496772e-16
+-2.41140440948584e-16
+-1.97619698383278e-17
diff --git a/Benchmarking/data/B_x_HH1.txt b/Benchmarking/data/B_x_HH1.txt
new file mode 100644
index 0000000..1079f04
--- /dev/null
+++ b/Benchmarking/data/B_x_HH1.txt
@@ -0,0 +1,51 @@
+-1.77967016123937e-16
+2.64285121565067e-16
+2.19350579366839e-16
+2.34326447134947e-16
+3.81500386836819e-17
+-2.26797747249208e-17
+-3.0069696732582e-17
+8.47620584831788e-17
+2.58543186859583e-17
+-3.27862736959617e-18
+-2.45480719085478e-16
+-3.4198685550102e-16
+4.26082780169423e-17
+5.10598507919013e-17
+-1.19383669616724e-17
+-4.75106065600528e-17
+-4.11268241684581e-17
+-2.01873240346373e-16
+-2.31967223207619e-17
+4.16680578929629e-17
+-3.89480114826313e-17
+-1.30312427515378e-17
+5.24996712769621e-17
+3.12250225675825e-19
+-1.79023462720806e-18
+-6.9111383282916e-18
+6.35602681597902e-18
+-3.19744231092045e-17
+3.92741394961149e-17
+4.92661467177413e-18
+-2.87270207621759e-17
+1.2490009027033e-18
+-7.52176099183544e-18
+-8.22675261247241e-17
+7.24420523567915e-18
+-1.27509114378199e-16
+-1.56485935320916e-16
+-1.87849735766576e-16
+7.32747196252603e-17
+1.85962356624714e-17
+4.34097202628436e-17
+-6.32827124036339e-18
+1.46660461552983e-16
+-4.40758540776187e-17
+2.40030217923959e-16
+4.31876756579186e-17
+7.31636973227978e-16
+-1.86517468137026e-16
+1.27453603226968e-16
+-1.07469588783715e-16
+6.30606677987089e-17
diff --git a/Benchmarking/data/B_x_HH2.txt b/Benchmarking/data/B_x_HH2.txt
new file mode 100644
index 0000000..44c1602
--- /dev/null
+++ b/Benchmarking/data/B_x_HH2.txt
@@ -0,0 +1,51 @@
+-1.24750904051396e-16
+2.93279289742543e-16
+2.26136817604861e-16
+3.56503021547994e-17
+-1.22107185474007e-16
+-2.02709377061794e-16
+-2.22426244089746e-17
+2.23689122780257e-16
+-1.11324144347336e-16
+-1.87964227515991e-16
+9.9704966505243e-17
+5.02584085460001e-17
+-1.34052491329584e-16
+9.60863333343553e-17
+1.57263091438153e-16
+5.76830250231808e-17
+7.78335729201274e-17
+5.30478438953708e-17
+-3.31262794972531e-17
+-7.1352646013878e-17
+3.41671135828392e-17
+-2.4980018054066e-19
+-1.02834407655905e-17
+5.13478148889135e-19
+3.49442697000768e-17
+-2.0122792321331e-18
+-1.21430643318376e-17
+-5.13478148889135e-19
+8.451572774959e-18
+1.85407245112401e-17
+2.6256774532385e-17
+4.37705427458468e-17
+2.32869279415127e-17
+-5.21527265817667e-17
+-9.9253938401489e-17
+8.98170426921752e-17
+1.01585406753202e-17
+-1.25455201782643e-17
+-9.28701560098943e-17
+-1.48658862997308e-16
+-9.35918009759007e-17
+-7.8381745538536e-17
+1.90625293328139e-16
+-2.665645482125e-16
+1.59205981731247e-16
+-1.37223565843669e-16
+2.35367281220533e-16
+1.01918473660589e-16
+9.99200722162641e-17
+7.39408534400354e-17
+-8.88178419700125e-17
diff --git a/Benchmarking/data/B_x_x10.txt b/Benchmarking/data/B_x_x10.txt
new file mode 100644
index 0000000..82f3b43
--- /dev/null
+++ b/Benchmarking/data/B_x_x10.txt
@@ -0,0 +1,51 @@
+0.315870252483617
+0.255751600481404
+0.186566907419062
+0.109579894595394
+0.0265188340157648
+-0.0605131846806727
+-0.149172561144372
+-0.237039624364386
+-0.321792991214021
+-0.401371661996773
+-0.474105051893869
+-0.538797228405318
+-0.594759769626575
+-0.641795860096254
+-0.680144730243721
+-0.710399274104225
+-0.733410476873435
+-0.750190699147325
+-0.761824833391987
+-0.769394839059607
+-0.773919932063492
+-0.776312195414932
+-0.777345741324315
+-0.777636734525558
+-0.7776314177094
+-0.777599570919756
+-0.777631417709401
+-0.777636734525557
+-0.777345741324316
+-0.776312195414932
+-0.773919932063492
+-0.769394839059607
+-0.761824833391987
+-0.750190699147325
+-0.733410476873435
+-0.710399274104225
+-0.68014473024372
+-0.641795860096254
+-0.594759769626576
+-0.538797228405317
+-0.474105051893868
+-0.401371661996773
+-0.32179299121402
+-0.237039624364387
+-0.149172561144371
+-0.0605131846806727
+0.0265188340157647
+0.109579894595394
+0.186566907419063
+0.255751600481404
+0.315870252483617
diff --git a/Benchmarking/data/B_x_x20.txt b/Benchmarking/data/B_x_x20.txt
new file mode 100644
index 0000000..d7f5520
--- /dev/null
+++ b/Benchmarking/data/B_x_x20.txt
@@ -0,0 +1,51 @@
+0.838336941886738
+0.704528329101358
+0.540869156075738
+0.35046355927954
+0.138717140535653
+-0.0869617178249859
+-0.317812922539589
+-0.544633260253625
+-0.758773254273728
+-0.953026552475999
+-1.12224822987221
+-1.26361615688701
+-1.37654277003895
+-1.46232024454193
+-1.52361931467383
+-1.56395876595001
+-1.58723193850584
+-1.59733657523226
+-1.59791936470777
+-1.59222336048851
+-1.58301538123973
+-1.57256834273773
+-1.56267637311523
+-1.55468543867366
+-1.5495271744476
+-1.54774779802038
+-1.5495271744476
+-1.55468543867366
+-1.56267637311523
+-1.57256834273773
+-1.58301538123973
+-1.59222336048851
+-1.59791936470777
+-1.59733657523226
+-1.58723193850584
+-1.56395876595
+-1.52361931467383
+-1.46232024454193
+-1.37654277003895
+-1.26361615688701
+-1.1222482298722
+-0.953026552475999
+-0.758773254273728
+-0.544633260253624
+-0.31781292253959
+-0.0869617178249862
+0.138717140535653
+0.350463559279539
+0.54086915607574
+0.704528329101358
+0.838336941886739
diff --git a/Benchmarking/data/B_z.txt b/Benchmarking/data/B_z.txt
new file mode 100644
index 0000000..f9adda9
--- /dev/null
+++ b/Benchmarking/data/B_z.txt
@@ -0,0 +1,51 @@
+-4.48637597842307
+-4.59077060562329
+-4.67041322168728
+-4.72240325284354
+-4.74436993663005
+-4.73459770750829
+-4.69211662587652
+-4.61674838668992
+-4.50910292358247
+-4.37052591912355
+-4.20300278459966
+-4.00902903659917
+-3.79145982624433
+-3.55335235560578
+-3.29781410027413
+-3.02786751635909
+-2.74633880333963
+-2.45577492365425
+-2.15838996506787
+-1.85603942975685
+-1.55021931502741
+-1.24208591874369
+-0.932492042829694
+-0.622035500630058
+-0.311116360833961
+2.24015250793741e-16
+0.311116360833964
+0.622035500630061
+0.932492042829691
+1.24208591874369
+1.55021931502741
+1.85603942975685
+2.15838996506787
+2.45577492365425
+2.74633880333963
+3.02786751635908
+3.29781410027412
+3.55335235560578
+3.79145982624433
+4.00902903659918
+4.20300278459966
+4.37052591912355
+4.50910292358246
+4.61674838668993
+4.69211662587652
+4.73459770750829
+4.74436993663004
+4.72240325284354
+4.67041322168726
+4.59077060562329
+4.48637597842307
diff --git a/Benchmarking/data/B_z_HH.txt b/Benchmarking/data/B_z_HH.txt
new file mode 100644
index 0000000..4bad2a5
--- /dev/null
+++ b/Benchmarking/data/B_z_HH.txt
@@ -0,0 +1,51 @@
+10.6536698262602
+11.2355834431335
+11.8308215916294
+12.4354708668342
+13.0449371679322
+13.6539956497498
+14.256886633848
+14.8474615439352
+15.4193788084015
+15.9663442568647
+16.4823843046589
+16.9621339792356
+17.4011166569334
+17.7959893766068
+18.1447277134393
+18.446727900502
+18.7028109839925
+18.9151233996802
+19.0869390335573
+19.2223779319734
+19.3260648763817
+19.4027560509914
+19.4569636870496
+19.4926071771896
+19.5127154666301
+19.5192004530879
+19.5127154666301
+19.4926071771896
+19.4569636870496
+19.4027560509914
+19.3260648763817
+19.2223779319735
+19.0869390335574
+18.9151233996802
+18.7028109839925
+18.446727900502
+18.1447277134393
+17.7959893766068
+17.4011166569334
+16.9621339792356
+16.4823843046588
+15.9663442568647
+15.4193788084015
+14.8474615439352
+14.256886633848
+13.6539956497498
+13.0449371679322
+12.4354708668342
+11.8308215916294
+11.2355834431335
+10.6536698262602
diff --git a/Benchmarking/data/B_z_HH1.txt b/Benchmarking/data/B_z_HH1.txt
new file mode 100644
index 0000000..e251ceb
--- /dev/null
+++ b/Benchmarking/data/B_z_HH1.txt
@@ -0,0 +1,51 @@
+10.6538828816951
+11.2391166045421
+11.8379555109104
+12.4464506538621
+13.0599583946471
+13.6731901710357
+14.2803092432835
+14.8750786818901
+15.4510606469831
+16.0018614545581
+16.5214105175275
+17.0042548219564
+17.4458452446815
+17.842787903183
+18.1930338192903
+18.4959839616112
+18.7524940110866
+18.9647730529274
+19.1361813633915
+19.2709428334617
+19.3737958295774
+19.4496114219081
+19.503009586584
+19.5380025365883
+19.5576905341118
+19.5640303243012
+19.5576905341118
+19.5380025365883
+19.503009586584
+19.4496114219081
+19.3737958295773
+19.2709428334617
+19.1361813633914
+18.9647730529273
+18.7524940110866
+18.4959839616113
+18.1930338192903
+17.842787903183
+17.4458452446815
+17.0042548219564
+16.5214105175274
+16.0018614545581
+15.4510606469831
+14.8750786818901
+14.2803092432835
+13.6731901710357
+13.0599583946472
+12.4464506538621
+11.8379555109104
+11.2391166045421
+10.6538828816952
diff --git a/Benchmarking/data/B_z_HH2.txt b/Benchmarking/data/B_z_HH2.txt
new file mode 100644
index 0000000..a3230cf
--- /dev/null
+++ b/Benchmarking/data/B_z_HH2.txt
@@ -0,0 +1,201 @@
+6.35230852280449
+6.4508404083403
+6.55032694040873
+6.65073600052855
+6.75203292053272
+6.85418042559495
+6.95713858264096
+7.06086475482941
+7.16531356281123
+7.27043685349534
+7.37618367706448
+7.48250027299654
+7.58933006585217
+7.69661367158946
+7.80428891515866
+7.9122908601168
+8.02055185097904
+8.12900156899261
+8.23756710197996
+8.34617302884779
+8.45474151929828
+8.56319244921063
+8.67144353207914
+8.7794104668038
+8.88700710202646
+8.99414561709644
+9.10073671962339
+9.20668985944886
+9.31191345872284
+9.4163151576292
+9.51980207514593
+9.62228108406875
+9.72365909936482
+9.82384337875673
+9.92274183427497
+10.0202633533537
+10.1163181278882
+10.2108179895191
+10.3036767492719
+10.3948105395441
+10.4841381563195
+10.5715813993897
+10.6570654082766
+10.740518991493
+10.8218749467367
+10.9010703695959
+10.9780469483554
+11.0527512425267
+11.1251349427846
+11.1951551100819
+11.2627743918266
+11.3279612131427
+11.3906899414002
+11.4509410223839
+11.508701086677
+11.5639630250551
+11.6167260319326
+11.6669956161455
+11.7147835786247
+11.7601079567699
+11.8029929356148
+11.8434687261295
+11.8815714112786
+11.9173427607038
+11.9508300151448
+11.9820856419403
+12.0111670631667
+12.0381363581637
+12.0630599423685
+12.0860082245301
+12.1070552445024
+12.126278293915
+12.1437575220962
+12.1595755296775
+12.1738169523319
+12.1865680371067
+12.1979162137912
+12.2079496637226
+12.2167568883724
+12.2244262799889
+12.2310456964749
+12.2367020425831
+12.2414808593984
+12.2454659239598
+12.2487388607456
+12.2513787666209
+12.2534618507152
+12.2550610905695
+12.2562459057626
+12.257081850107
+12.2576303233832
+12.257948303467
+12.2580880996032
+12.2580971274749
+12.2580177066298
+12.2578868807377
+12.2577362610823
+12.2575918936138
+12.2574741498309
+12.257397641705
+12.2573711608007
+12.257397641705
+12.2574741498309
+12.2575918936137
+12.2577362610824
+12.2578868807377
+12.2580177066298
+12.2580971274749
+12.2580880996032
+12.257948303467
+12.2576303233832
+12.257081850107
+12.2562459057626
+12.2550610905695
+12.2534618507152
+12.2513787666209
+12.2487388607456
+12.2454659239598
+12.2414808593984
+12.2367020425831
+12.2310456964749
+12.2244262799889
+12.2167568883724
+12.2079496637226
+12.1979162137912
+12.1865680371067
+12.1738169523319
+12.1595755296775
+12.1437575220962
+12.126278293915
+12.1070552445024
+12.0860082245301
+12.0630599423685
+12.0381363581637
+12.0111670631667
+11.9820856419403
+11.9508300151448
+11.9173427607038
+11.8815714112786
+11.8434687261295
+11.8029929356148
+11.7601079567699
+11.7147835786247
+11.6669956161455
+11.6167260319326
+11.5639630250551
+11.508701086677
+11.4509410223839
+11.3906899414002
+11.3279612131427
+11.2627743918267
+11.1951551100818
+11.1251349427846
+11.0527512425267
+10.9780469483554
+10.9010703695959
+10.8218749467367
+10.740518991493
+10.6570654082766
+10.5715813993897
+10.4841381563195
+10.394810539544
+10.303676749272
+10.2108179895191
+10.1163181278882
+10.0202633533537
+9.92274183427498
+9.82384337875673
+9.72365909936482
+9.62228108406874
+9.51980207514592
+9.41631515762922
+9.31191345872284
+9.20668985944886
+9.10073671962338
+8.99414561709644
+8.88700710202646
+8.77941046680378
+8.67144353207915
+8.56319244921062
+8.45474151929827
+8.34617302884779
+8.23756710197996
+8.12900156899261
+8.02055185097905
+7.9122908601168
+7.80428891515865
+7.69661367158947
+7.58933006585217
+7.48250027299655
+7.37618367706448
+7.27043685349534
+7.16531356281123
+7.0608647548294
+6.95713858264096
+6.85418042559495
+6.75203292053272
+6.65073600052855
+6.55032694040873
+6.4508404083403
+6.35230852280447
diff --git a/Benchmarking/data/B_z_x10.txt b/Benchmarking/data/B_z_x10.txt
new file mode 100644
index 0000000..8fae5bb
--- /dev/null
+++ b/Benchmarking/data/B_z_x10.txt
@@ -0,0 +1,51 @@
+-4.62220979364239
+-4.74863218780255
+-4.84784741265534
+-4.91588977139334
+-4.94947398459438
+-4.94621885573329
+-4.90481363458011
+-4.82510443951719
+-4.7080884377943
+-4.55581648023133
+-4.37121773974612
+-4.15786985177972
+-3.91974320619201
+-3.66094785676015
+-3.38550680956306
+-3.0971719531533
+-2.7992906009947
+-2.49472321949395
+-2.18580745356457
+-1.87436037319072
+-1.56170973764641
+-1.24874549123272
+-0.935984066240782
+-0.623639845575013
+-0.311699938210173
+3.06477065947774e-16
+0.311699938210175
+0.623639845575016
+0.935984066240784
+1.24874549123273
+1.56170973764642
+1.87436037319072
+2.18580745356457
+2.49472321949396
+2.7992906009947
+3.09717195315329
+3.38550680956306
+3.66094785676015
+3.91974320619202
+4.15786985177971
+4.37121773974612
+4.55581648023133
+4.7080884377943
+4.8251044395172
+4.90481363458011
+4.94621885573329
+4.94947398459438
+4.91588977139334
+4.84784741265535
+4.74863218780255
+4.62220979364239
diff --git a/Benchmarking/data/B_z_x20.txt b/Benchmarking/data/B_z_x20.txt
new file mode 100644
index 0000000..936f2e4
--- /dev/null
+++ b/Benchmarking/data/B_z_x20.txt
@@ -0,0 +1,51 @@
+-5.05333952991992
+-5.2710697587335
+-5.4538224324177
+-5.59176900495866
+-5.67627228666901
+-5.70088154813024
+-5.66214168699473
+-5.56003717220652
+-5.39796618146884
+-5.18225073408282
+-4.92129699201981
+-4.62458945768248
+-4.30171384112198
+-3.96156065061021
+-3.61178911392315
+-3.2585583414038
+-2.90648100201777
+-2.55873130299066
+-2.21723908837497
+-1.88291554820721
+-1.55587406801886
+-1.2356261677816
+-0.921244732301142
+-0.611494601598914
+-0.304934960273855
+1.29882216093336e-16
+0.304934960273854
+0.611494601598912
+0.921244732301141
+1.23562616778161
+1.55587406801886
+1.88291554820721
+2.21723908837497
+2.55873130299066
+2.90648100201777
+3.2585583414038
+3.61178911392315
+3.96156065061021
+4.30171384112198
+4.62458945768248
+4.92129699201981
+5.18225073408281
+5.39796618146885
+5.56003717220652
+5.66214168699473
+5.70088154813023
+5.67627228666901
+5.59176900495865
+5.4538224324177
+5.27106975873349
+5.05333952991991
diff --git a/Benchmarking/output/HH_benchmark_5A_6x2.pdf b/Benchmarking/output/HH_benchmark_5A_6x2.pdf
new file mode 100644
index 0000000..eb1531d
Binary files /dev/null and b/Benchmarking/output/HH_benchmark_5A_6x2.pdf differ
diff --git a/Benchmarking/output/HH_benchmark_5A_6x2_rel_deviation_via_mean.pdf b/Benchmarking/output/HH_benchmark_5A_6x2_rel_deviation_via_mean.pdf
new file mode 100644
index 0000000..d97294c
Binary files /dev/null and b/Benchmarking/output/HH_benchmark_5A_6x2_rel_deviation_via_mean.pdf differ
diff --git a/Benchmarking/output/HH_benchmark_5A_6x2_x-axis.pdf b/Benchmarking/output/HH_benchmark_5A_6x2_x-axis.pdf
new file mode 100644
index 0000000..7d7f1b1
Binary files /dev/null and b/Benchmarking/output/HH_benchmark_5A_6x2_x-axis.pdf differ
diff --git a/Coil_geometry/.ipynb_checkpoints/Untitled-checkpoint.ipynb b/Coil_geometry/.ipynb_checkpoints/Untitled-checkpoint.ipynb
new file mode 100644
index 0000000..363fcab
--- /dev/null
+++ b/Coil_geometry/.ipynb_checkpoints/Untitled-checkpoint.ipynb
@@ -0,0 +1,6 @@
+{
+ "cells": [],
+ "metadata": {},
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/Coil_geometry/00_Simple_testing.py b/Coil_geometry/00_Simple_testing.py
new file mode 100644
index 0000000..35f0ab9
--- /dev/null
+++ b/Coil_geometry/00_Simple_testing.py
@@ -0,0 +1,45 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Tue Aug 31 09:28:25 2021
+
+@author: Joschka
+"""
+import matplotlib.pyplot as plt
+import numpy as np
+from src import B_field_calculation as bf
+
+from src import coil_class as BC
+
+from IPython import get_ipython
+get_ipython().run_line_magic('matplotlib', 'qt')
+#get_ipython().run_line_magic('matplotlib', 'inline')
+
+
+x = np.linspace(-10, 10, 3001)
+z = np.linspace(-10, 10, 3001)
+print(3001//2)
+
+HH_Coil = BC.BCoil(HH = 1, distance = 54 ,radius = 48 , layers = 4, windings = 4, wire_height = 1, wire_width = 1,windings_spacing=0.25, layers_spacing = 0.25)
+
+percentage = 0.05
+absolut = 5
+diff = percentage*0.01*5+ absolut *1e-3
+print(diff)
+Bz1, Bx = HH_Coil.B_multiple(5, x, z)
+
+
+Bz2, Bx = HH_Coil.B_multiple(5+ diff, x, z)
+print(Bz2[1500]-Bz1[1500])
+print(" ")
+
+percentage = 0 #.02
+absolut = 2
+diff = percentage*0.01*5+ absolut *1e-3
+print(diff)
+
+
+Bz2, Bx = HH_Coil.B_multiple(5+ diff, x, z)
+print(Bz2[1500]-Bz1[1500])
+print((Bz2[1500]-Bz1[1500])/Bz2[1500])
+
+#Power = cs.rho_copper_20 *wire_length* I_current**2 /(self.get_wire_area())
\ No newline at end of file
diff --git a/Coil_geometry/01_geometry_HH.py b/Coil_geometry/01_geometry_HH.py
new file mode 100644
index 0000000..577639b
--- /dev/null
+++ b/Coil_geometry/01_geometry_HH.py
@@ -0,0 +1,151 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Aug 23 17:40:37 2021
+
+@author: Joschka
+"""
+
+
+import matplotlib.pyplot as plt
+import numpy as np
+from src import B_field_calculation as bf
+
+from src import coil_class as BC
+
+from IPython import get_ipython
+get_ipython().run_line_magic('matplotlib', 'qt')
+#get_ipython().run_line_magic('matplotlib', 'inline')
+
+#set up axis
+x = np.linspace(-50, 50, 301)
+z = np.linspace(-50, 50, 301)
+
+
+
+I = 5
+HH = 1
+d_coils = 44
+R_mid = 44
+
+
+layers = 6
+windings = 2
+wire_width = 1.7
+wire_height = 2.6
+
+
+#reference coil
+HH_Coil_44 = BC.BCoil(HH, 44 ,44, 6, 2, wire_width = 1.7, wire_height= 2.6)
+
+
+#Coil from first sketch
+HH_Coil_y = BC.BCoil(HH, 55.2 ,44, 6, 2, wire_width = 1.7, wire_height= 2.6)
+B_z_y, B_x_y = HH_Coil_y.B_multiple(6.5,x,z)
+B_z_y_curv = BC.BCoil.curv(B_z_y, z)
+
+d_coils_2 = 55.2
+
+#New coil
+HH_Coil_54 = BC.BCoil(HH, 54 ,48.8, 4, 4, 1,1)
+
+HH_Coil_54.cooling(5)
+
+#Compensation Coil
+HH_Coil_78 = BC.BCoil(1,54,37,4, 4, 1,1)
+
+#HH_Coil_44.Bz_plot_HH(I,x,z)
+
+
+#HH_Coil_44.Bz_plot_HH_comp(HH_Coil_54,I,x,z)
+
+B_z, B_x = HH_Coil_44.B_multiple(I,x,z)
+B_z_2, B_x_2 = HH_Coil_54.B_multiple(I,x,z)
+
+B_z_3,B_x_3 = HH_Coil_78.B_multiple(-0.72,x,z)
+
+
+
+B_z_curvature = np.gradient(np.gradient(B_z,z),z)*1e2
+B_z_curvature_2 = BC.BCoil.curv(B_z_2, z)
+
+B_z_curv_3 = BC.BCoil.curv(B_z_3, z)
+
+B_tot = B_z_2 + B_z_3
+
+B_tot_curv = BC.BCoil.curv(B_tot, z)
+plt.figure(300)
+
+
+plt.suptitle("Helmholtz coil field B_z along z-axis, comparison to field yesterday")
+
+
+#Field plot
+##########################
+plt.subplot(2,1,1)
+plt.plot(z,B_z_y,linestyle = "solid", label = r"$B_{sketch}$, B-field according to current solidworks sketch, d = 55.2 mm, R = 44 mm, 6 x 2")
+plt.plot(z,B_z_2,linestyle = "solid", label = r"$B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A, 4 x 4")
+
+#plt.xlim(-0.01,0.01)
+plt.title("B-field" )
+
+plt.ylabel(r"$B_z$ [G]")
+plt.xlabel("z-axis [mm]")
+plt.legend()
+
+plt.subplot(2,1,2)
+plt.plot(z,B_z_y_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{sketch}$, d = 55.2 mm, R = 44 mm, 6 x 2")
+plt.plot(z,B_z_curvature_2,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A")
+#plt.plot(z,B_z_curv_3,linestyle = "solid", label = r"$\nabla_z^2 B_{z,2}$, d = 54 mm, R = 37 mm, I = -0.7 A")
+#plt.plot(z,B_tot_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1} + B_{z,2}$")
+
+plt.ylabel(r"$\nabla_z^2 B_z [G/cm^2]$")
+plt.xlabel("z-axis [mm]")#plt.xlim(-10,10)
+plt.title("Curvature of B-field")
+plt.legend(loc='lower right')
+
+plt.show()
+
+
+plt.figure(200,figsize=(15,13))
+
+plt.rcParams.update({'font.size': 15})
+plt.suptitle("Helmholtz coil field B_z along z-axis")
+
+
+#Field plot
+##########################
+plt.subplot(2,1,1)
+plt.plot(z,B_z,linestyle = "solid", label = r"$B_{ref}$, reference, optimal HH-configuration d = 44 mm, R = 44 mm")
+plt.plot(z,B_z_2,linestyle = "solid", label = r"$B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A, 4 x 4")
+plt.plot(z,B_z_3,linestyle = "solid", label = r"$B_{z,2}$, d = 54 mm, R = 37 mm, I = -0.7 A, 4 x 4")
+plt.plot(z,B_tot,linestyle = "solid", label = r"$B_{z,1} + B_{z,2}$")
+#plt.xlim(-0.01,0.01)
+plt.title("B-field" )
+
+plt.ylabel(r"$B_z$ [G]")
+plt.xlabel("z-axis [mm]")
+plt.legend()#bbox_to_anchor=(1.05, 1), loc='upper left')
+
+plt.subplot(2,1,2)
+plt.plot(z,B_z_curvature,linestyle = "solid", label = r"$\nabla_z^2 B_{ref}$, d = 44 mm, R = 44 mm")
+plt.plot(z,B_z_curvature_2,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A")
+plt.plot(z,B_z_curv_3,linestyle = "solid", label = r"$\nabla_z^2 B_{z,2}$, d = 54 mm, R = 37 mm, I = -0.7 A")
+plt.plot(z,B_tot_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1} + B_{z,2}$")
+
+plt.ylabel(r"$\nabla_z^2 B_z [G/cm^2]$")
+plt.xlabel("z-axis [mm]")#plt.xlim(-10,10)
+plt.title("Curvature of B-field")
+plt.legend()#bbox_to_anchor=(1.05, 1), loc='upper left')
+
+#plt.savefig("output/first_compensation_idea.png")
+
+plt.show()
+plt.close()
+
+
+
+"""
+AHH ############################################################################
+###############################################################################
+###############################################################################
+"""
diff --git a/Coil_geometry/02_geometry_AHH_Try_inside_of_HH_for_compensation.py b/Coil_geometry/02_geometry_AHH_Try_inside_of_HH_for_compensation.py
new file mode 100644
index 0000000..a59880d
--- /dev/null
+++ b/Coil_geometry/02_geometry_AHH_Try_inside_of_HH_for_compensation.py
@@ -0,0 +1,63 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Aug 23 17:40:37 2021
+
+@author: Joschka
+"""
+
+
+import matplotlib.pyplot as plt
+import numpy as np
+from src import B_field_calculation as bf
+
+from src import coil_class as BC
+
+from IPython import get_ipython
+get_ipython().run_line_magic('matplotlib', 'qt')
+#get_ipython().run_line_magic('matplotlib', 'inline')
+
+#set up axis
+x = np.linspace(-50, 50, 300)
+z = np.linspace(-50, 50, 301)
+
+
+
+HH_Coil_78 = BC.BCoil(-1,54,37,4, 4, 1,1)
+
+
+
+B_z,B_x = HH_Coil_78.B_multiple(1,x,z)
+
+#B_x = np.concatenate((-np.flip(B_x),B_x))
+#x = np.concatenate((-np.flip(r),r))
+
+
+B_z_grad = BC.BCoil.Bgrad(B_z, z)
+B_x_grad = BC.BCoil.Bgrad(B_x,x)
+
+#plt.rcParams.update({'font.size': 15})
+plt.suptitle("Anti Helmholtz coil field, I = 1 A, d = 54 mm, R = 37 mm ", fontsize = 30)
+
+
+#Field plot
+##########################
+plt.subplot(2,1,1)
+plt.plot(z,B_z,linestyle = "solid", label = r"$B_z$, d = 54 mm, R = 37 mm")
+plt.plot(x,B_x, label = r"$B_x$, d = 54 mm, R = 37 mm")
+#plt.xlim(-0.01,0.01)
+plt.title("B-field" )
+
+plt.ylabel(r"$B$ [G]")
+plt.xlabel("z-axis / x-axis [mm]")
+plt.legend()
+
+plt.subplot(2,1,2)
+plt.plot(z,B_z_grad,linestyle = "solid", label = r"$\nabla_z B_z$, d = 54 mm, R = 37 mm")
+plt.plot(x,B_x_grad,linestyle = "solid", label = r"$\nabla_x B_x$, d = 54 mm, R = 37 mm")
+
+plt.ylabel(r"$\nabla_i B_i [G/cm]$")
+plt.xlabel("z-axis /x-axis [mm]")#plt.xlim(-10,10)
+plt.title("Gradient of B-field")
+plt.legend()
+
+plt.show()
diff --git a/Coil_geometry/04_Iterative_Testing.py b/Coil_geometry/04_Iterative_Testing.py
new file mode 100644
index 0000000..87b0799
--- /dev/null
+++ b/Coil_geometry/04_Iterative_Testing.py
@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Tue Aug 24 16:24:52 2021
+
+@author: Joschka
+"""
+
+import matplotlib.pyplot as plt
+import numpy as np
+from src import B_field_calculation as bf
+
+from src import coil_class as BC
+
+from IPython import get_ipython
+get_ipython().run_line_magic('matplotlib', 'qt')
+#get_ipython().run_line_magic('matplotlib', 'inline')
+
+x = np.linspace(-1, 1, 11)
+z = np.linspace(-1, 1, 11)
+
+I_current = 5*16
+
+HH_Coil = HH_Coil_comp = BC.BCoil(HH = 1, distance = 54 ,radius = 37,layers = 1, windings = 1,wire_width = 8, wire_height = 8)
+HH_Coil.set_R_outer(49.3)
+HH_Coil.set_d_min(49.8)
+HH_Coil.print_info()
+
+Bz, Bx = HH_Coil.B_multiple(I_current,x,z,raster = 50)
+Bz_curv = BC.BCoil.curv(Bz, z)
+HH_Coil.cooling(I_current,30)
+print(f"B_z(0) = {Bz[1]:.2f} G")
+print(f"B_z_curvature(0) = {Bz_curv[1]:.4f} G/cm^2")
+
+B = []
+Curv = []
+array_width = np.arange(0.2,11,0.1)
+#array_width = [5.7]
+for width in array_width:
+ height = 20/width
+ HH_Coil = HH_Coil_comp = BC.BCoil(HH = 1, distance = 54 ,radius = 37,layers = 1, windings = 1,wire_width = width, wire_height = height)
+ HH_Coil.set_R_outer(49.3)
+ HH_Coil.set_d_min(49.8)
+ #HH_Coil.print_info()
+
+ Bz, Bx = HH_Coil.B_multiple(I_current,x,z,raster = 30)
+ Bz_curv = BC.BCoil.curv(Bz, z)
+ HH_Coil.cooling(I_current,30)
+ B.append(Bz[5])
+ Curv.append(Bz_curv[5])
+ print(f"width = {width}mm, height = {height}mm")
+ print(f"B_z(0) = {Bz[5]:.2f} G")
+ print(f"B_z_curvature(0) = {Bz_curv[5]:.4f} G/cm^2")
+
+plt.plot(array_width,Curv)
+#plt.plot(array_width,B)
+plt.ylabel("curvature")
+plt.xlabel("total width [mm]")
+plt.show()
+
diff --git a/Coil_geometry/05_try_diff_geometry_HH1.py b/Coil_geometry/05_try_diff_geometry_HH1.py
new file mode 100644
index 0000000..8f964af
--- /dev/null
+++ b/Coil_geometry/05_try_diff_geometry_HH1.py
@@ -0,0 +1,120 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Aug 23 17:40:37 2021
+
+@author: Joschka
+"""
+
+
+import matplotlib.pyplot as plt
+import numpy as np
+from src import B_field_calculation as bf
+
+from src import coil_class as BC
+
+from IPython import get_ipython
+get_ipython().run_line_magic('matplotlib', 'qt')
+#get_ipython().run_line_magic('matplotlib', 'inline')
+
+#set up axis
+x = np.linspace(-15, 15, 30000)
+z = np.linspace(-15, 15, 30000)
+
+#New coil
+I_current = 5
+HH_Coil = BC.BCoil(HH = 1, distance = 54 ,radius = 48 , layers = 4, windings = 4, wire_height = 1, wire_width = 1,windings_spacing=0.25, layers_spacing = 0.25)
+HH_Coil.set_R_outer(49.3)
+HH_Coil.set_d_min(49.8)
+
+HH_Coil.print_info()
+Bz, Bx = HH_Coil.B_multiple(I_current,x,z,raster = 10)
+Bz_curv = BC.BCoil.curv(Bz, z)
+HH_Coil.cooling(I_current)
+
+print(f"B_z(0) = {Bz[150]:.2f} G")
+print(f"B_z_curvature(0) = {Bz_curv[150]:.4f} G/cm^2")
+
+
+print(x[500])
+
+# I_current = 5*16
+# HH_Coil = BC.BCoil(HH = 1, distance = 54 ,radius = 48 , layers = 1, windings = 1, wire_height = 10, wire_width = 6)
+# HH_Coil.set_R_outer(49.3)
+# HH_Coil.set_d_min(49.8)
+
+# HH_Coil.print_info()
+# Bz, Bx = HH_Coil.B_multiple(I_current,x,z,raster = 50)
+# Bz_curv = BC.BCoil.curv(Bz, z)
+# HH_Coil.cooling(I_current)
+
+# print(f"B_z(0) = {Bz[150]:.2f} G")
+# print(f"B_z_curvature(0) = {Bz_curv[150]:.4f} G/cm^2")
+
+
+
+#Compensation Coil
+HH_Coil_comp = BC.BCoil(HH = 1, distance = 54 ,radius = 37, layers = 4, windings = 4,wire_height = 1, wire_width = 1)
+
+
+
+#HH_Coil_44.Bz_plot_HH(I,x,z)
+
+
+#HH_Coil_44.Bz_plot_HH_comp(HH_Coil_54,I,x,z)
+I_HH = 5
+I_comp = -1.4
+
+#calculate field
+B_z, B_x = HH_Coil.B_multiple(I_HH,x,z)
+B_z_comp,B_x_comp = HH_Coil_comp.B_multiple(I_comp,x,z)
+
+#Calculate curvature
+B_z_curv = BC.BCoil.curv(B_z, z)
+B_z_comp_curv = BC.BCoil.curv(B_z_comp, z)
+
+
+B_tot = B_z + B_z_comp
+
+B_tot_curv = BC.BCoil.curv(B_tot, z)
+plt.figure(300)
+
+
+
+
+#Field plot
+##########################
+plt.subplot(2,1,1)
+plt.plot(z,B_z,linestyle = "solid", label = r"$B_{ref}$, reference, optimal HH-configuration d = 44 mm, R = 44 mm")
+plt.plot(z,B_z_comp,linestyle = "solid", label = r"$B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A, 4 x 4")
+
+plt.plot(z,B_tot,linestyle = "solid", label = r"$B_{z,1} + B_{z,2}$")
+#plt.xlim(-0.01,0.01)
+plt.title("B-field" )
+
+plt.ylabel(r"$B_z$ [G]")
+plt.xlabel("z-axis [mm]")
+plt.legend()#bbox_to_anchor=(1.05, 1), loc='upper left')
+
+plt.subplot(2,1,2)
+plt.plot(z,B_z_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{ref}$, d = 44 mm, R = 44 mm")
+plt.plot(z,B_z_comp_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A")
+
+plt.plot(z,B_tot_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1} + B_{z,2}$")
+
+plt.ylabel(r"$\nabla_z^2 B_z [G/cm^2]$")
+plt.xlabel("z-axis [mm]")#plt.xlim(-10,10)
+plt.title("Curvature of B-field")
+plt.legend()#bbox_to_anchor=(1.05, 1), loc='upper left')
+
+#plt.savefig("output/first_compensation_idea.png")
+
+plt.show()
+
+
+
+
+"""
+AHH ############################################################################
+###############################################################################
+###############################################################################
+"""
diff --git a/Coil_geometry/06_only_geometry_AHH.py b/Coil_geometry/06_only_geometry_AHH.py
new file mode 100644
index 0000000..8dd9799
--- /dev/null
+++ b/Coil_geometry/06_only_geometry_AHH.py
@@ -0,0 +1,94 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Aug 23 17:40:37 2021
+
+@author: Joschka
+"""
+
+
+import matplotlib.pyplot as plt
+import numpy as np
+#from src import B_field_calculation as bf
+
+from src import coil_class as BC
+
+from IPython import get_ipython
+get_ipython().run_line_magic('matplotlib', 'qt')
+#get_ipython().run_line_magic('matplotlib', 'inline')
+
+#set up axis
+x = np.linspace(-50, 50, 301)
+z = np.linspace(-50, 50, 301)
+
+
+
+AHH_Coil = BC.BCoil(-1,54,37,4, 4, 1,1)
+
+AHH_Coil.set_R_outer(49.3)
+
+#AHH_Coil.print_info()
+
+#B_z,B_x = AHH_Coil.B_multiple(1,x,z)
+
+#B_z_grad = BC.BCoil.Bgrad(B_z, z)
+#B_x_grad = BC.BCoil.Bgrad(B_x,x)
+
+plt.figure(1,figsize=(10,13))
+#plt.rcParams.update({'font.size': 15})
+plt.suptitle("Anti Helmholtz coil field, I = 2 A, d = 82 mm, R_inner = 46.3 mm ", fontsize = 13)
+
+#Field plot
+##########################
+
+d=82
+AHH_Coil = BC.BCoil(-1,d,47.3,4, 4, 1,1)
+
+#AHH_Coil.set_R_outer(49.3)
+
+AHH_Coil.print_info()
+#B = AHH_Coil.B_multiple_3d(10, x,z,raster=2)
+AHH_Coil.cooling(10)
+
+B_z,B_x = AHH_Coil.B_multiple(10,x,z)
+#B_z = B[:,150,1]
+#B_x = B[150,:,0]
+
+B_z_grad = BC.BCoil.Bgrad(B_z, z)
+B_x_grad = BC.BCoil.Bgrad(B_x,x)
+
+plt.subplot(2,1,1)
+
+plt.plot(z,B_z,linestyle = "solid", label = f"$B_z$, d = {d} mm")
+plt.plot(x,B_x, label = f"$B_x$, d = {d} mm")
+#plt.xlim(-0.01,0.01)
+plt.title("B-field" )
+#plt.ylim(-0.5,0.4)
+plt.ylabel(r"$B$ [G]")
+plt.xlabel("z-axis / x-axis [mm]")
+plt.legend()
+
+plt.subplot(2,1,2)
+plt.plot(z,B_z_grad,linestyle = "solid", label = r"$\nabla_z B_z$")
+plt.plot(x,B_x_grad,linestyle = "solid", label = r"$\nabla_x B_x$")
+
+plt.ylabel(r"$\nabla_i B_i [G/cm]$")
+plt.xlabel("z-axis /x-axis [mm]")#plt.xlim(-10,10)
+plt.title("Gradient of B-field")
+plt.legend()
+plt.savefig("output/AHH_field.pdf")
+plt.show()
+
+#AHH_Coil.plot_3d(2, 80, 80)
+
+"""
+print(" ")
+print(f"B_grad_z(0) = {B_z_grad[1500]} G/cm")
+print(f"B_grad_z(10 mm) = {B_z_grad[1800]} G/cm")
+print(f"Diff B_grad z 10mm - 0 mm, {-(B_z_grad[1800]-B_z_grad[1500])} G/cm, relative: {(B_z_grad[1800]-B_z_grad[1500])/-B_z_grad[1500]}")
+print(" ")
+print(f"B_grad_x(0) = {B_x_grad[1500]} G/cm")
+print(f"B_grad_x(10 mm) = {B_x_grad[1800]} G/cm")
+print(f"Diff B_grad x 10mm - 0 mm, {B_x_grad[1800]-B_x_grad[1500]} G/cm, relative: {(B_x_grad[1800]-B_x_grad[1500])/-B_x_grad[1500]}")
+"""
+
+
diff --git a/Coil_geometry/07_02_testing B_tot.py b/Coil_geometry/07_02_testing B_tot.py
new file mode 100644
index 0000000..14e0e5c
--- /dev/null
+++ b/Coil_geometry/07_02_testing B_tot.py
@@ -0,0 +1,114 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Aug 23 17:40:37 2021
+
+@author: Joschka
+"""
+
+
+import matplotlib.pyplot as plt
+import numpy as np
+#from src import B_field_calculation as bf
+
+from src import coil_class as BC
+
+from IPython import get_ipython
+get_ipython().run_line_magic('matplotlib', 'qt')
+#get_ipython().run_line_magic('matplotlib', 'inline')
+
+#set up axis
+
+axis = 30001 #30001 for -15 to 15 = 1μm
+x = np.linspace(-15, 15, axis)
+z = np.linspace(-15, 15, axis)
+
+
+#New coil
+I_current = 5
+HH_Coil = BC.BCoil(HH = 1, distance = 54 ,radius = 48 , layers = 4, windings = 4, wire_height = 1, wire_width = 1, windings_spacing=0.25, layers_spacing = 0.25)
+HH_Coil.set_R_outer(49.3)
+HH_Coil.set_d_min(49.8)
+
+HH_Coil.print_info()
+#Bz, Bx = HH_Coil.B_multiple(I_current,x,z,raster = 10)
+B_tot_z, B_tot_x = HH_Coil.B_tot_along_axis(I_current, x, z,raster = 8)
+
+Bz_curv = BC.BCoil.curv(B_tot_z, z)
+Bx_curv = BC.BCoil.curv(B_tot_x, x)
+HH_Coil.cooling(I_current,25)
+
+B_0 = B_tot_z[axis//2]
+print(f"B_tot(0,0) = {B_0} G")
+print(f"B_tot_x = {B_tot_x[15000]}")
+print(f"B_z_curvature(0) = {Bz_curv[axis//2]:.5f} G/cm^2")
+print(f"B_x_curvature(0) = {Bx_curv[axis//2]:.5f} G/cm^2")
+print("")
+print("Differences along z-axis:")
+
+print(f"B_tot_z(1 μm) = {B_tot_z[15001]}")
+print(f"B_tot_z(1 mm) = {B_tot_z[16000]}")
+
+print(f"Diff B 1 μm: {B_tot_z[15001] - B_0}, relative: {(B_tot_z[15001] - B_0)/B_0}")
+
+print(f"Diff B 1 mm: {B_tot_z[16000] - B_0}, relative: {(B_tot_z[16000] - B_0)/B_0}")
+
+print(f"Diff B 0.5 mm: {B_tot_z[15500] - B_0}, relative: {(B_tot_z[15500] - B_0)/B_0}")
+print(" ")
+
+print("Differences along x-axis:")
+print(f"B_tot_x(1 μm) = {B_tot_x[15001]}")
+print(f"B_tot_x(1 mm) = {B_tot_x[16000]}")
+
+print(f"Diff B 1 μm: {B_tot_x[15001] - B_0}, relative: {(B_tot_x[15001] - B_0)/B_0}")
+
+print(f"Diff B 1 mm: {B_tot_x[16000] - B_0}, relative: {(B_tot_x[16000] - B_0)/B_0}")
+
+print(f"Diff B 0.5 mm: {B_tot_x[15500] - B_0}, relative: {(B_tot_x[15500] - B_0)/B_0}")
+
+
+plt.figure(300)
+
+
+
+
+#Field plot
+##########################
+plt.subplot(2,1,1)
+#plt.plot(z,B_totz,linestyle = "solid", label = r"$B_z along z-axis")
+#plt.plot(x,Bx,label = "B_x along x")
+plt.plot(z,B_tot_z, label = "New B_tot along z-axis")
+plt.plot(x,B_tot_x, label = "B_tot along x-axis")
+#plt.plot(z,B_z_comp,linestyle = "solid", label = r"$B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A, 4 x 4")
+
+#plt.plot(z,B_tot,linestyle = "solid", label = r"$B_{z,1} + B_{z,2}$")
+#plt.xlim(-0.01,0.01)
+plt.title("B-field" )
+
+plt.ylabel(r"$B_z$ [G]")
+plt.xlabel("z-axis [mm]")
+plt.legend()#bbox_to_anchor=(1.05, 1), loc='upper left')
+
+plt.subplot(2,1,2)
+plt.plot(z,Bz_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{ref}$, d = 44 mm, R = 44 mm")
+plt.plot(x,Bx_curv,label = "B_x_curv")
+#plt.plot(z,B_z_comp_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A")
+
+#plt.plot(z,B_tot_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1} + B_{z,2}$")
+
+plt.ylabel(r"$\nabla_z^2 B_z [G/cm^2]$")
+plt.xlabel("z-axis [mm]")#plt.xlim(-10,10)
+plt.title("Curvature of B-field")
+plt.legend()#bbox_to_anchor=(1.05, 1), loc='upper left')
+
+#plt.savefig("output/first_compensation_idea.png")
+
+plt.show()
+
+
+
+
+"""
+AHH ############################################################################
+###############################################################################
+###############################################################################
+"""
diff --git a/Coil_geometry/08_plotting_07_HH_without_comp1.py b/Coil_geometry/08_plotting_07_HH_without_comp1.py
new file mode 100644
index 0000000..5fae7ac
--- /dev/null
+++ b/Coil_geometry/08_plotting_07_HH_without_comp1.py
@@ -0,0 +1,86 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Aug 23 17:40:37 2021
+
+@author: Joschka
+"""
+
+
+import matplotlib.pyplot as plt
+import numpy as np
+from src import B_field_calculation as bf
+
+from src import coil_class as BC
+
+from IPython import get_ipython
+get_ipython().run_line_magic('matplotlib', 'qt')
+#get_ipython().run_line_magic('matplotlib', 'inline')
+
+#set up axis
+x = np.linspace(-50, 50, 3001)
+z = np.linspace(-50, 50, 3001)
+
+#New coil
+I_current = 5
+HH_Coil = BC.BCoil(HH = 1, distance = 54 ,radius = 48 , layers = 4, windings = 4, wire_height = 1, wire_width = 1,windings_spacing=0.25, layers_spacing = 0.25)
+HH_Coil.set_R_outer(49.3)
+HH_Coil.set_d_min(49.8)
+
+HH_Coil.print_info()
+Bz, Bx = HH_Coil.B_multiple(I_current,x,z,raster = 10)
+Bz_curv = BC.BCoil.curv(Bz, z)
+HH_Coil.cooling(I_current)
+
+
+I_HH = 5
+
+#calculate field
+B_z, B_x = HH_Coil.B_multiple(I_HH,x,z)
+
+#Calculate curvature
+B_z_curv = BC.BCoil.curv(B_z, z)
+
+
+
+plt.figure(300)
+
+
+
+
+#Field plot
+##########################
+plt.subplot(2,1,1)
+plt.plot(z,B_z,linestyle = "solid", label = r"$B_{ref}$, reference, optimal HH-configuration d = 44 mm, R = 44 mm")
+#plt.plot(z,B_z_comp,linestyle = "solid", label = r"$B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A, 4 x 4")
+
+#plt.plot(z,B_tot,linestyle = "solid", label = r"$B_{z,1} + B_{z,2}$")
+#plt.xlim(-0.01,0.01)
+plt.title("B-field" )
+
+plt.ylabel(r"$B_z$ [G]")
+plt.xlabel("z-axis [mm]")
+plt.legend()#bbox_to_anchor=(1.05, 1), loc='upper left')
+
+plt.subplot(2,1,2)
+plt.plot(z,B_z_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{ref}$, d = 44 mm, R = 44 mm")
+#plt.plot(z,B_z_comp_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A")
+
+#plt.plot(z,B_tot_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1} + B_{z,2}$")
+
+plt.ylabel(r"$\nabla_z^2 B_z [G/cm^2]$")
+plt.xlabel("z-axis [mm]")#plt.xlim(-10,10)
+plt.title("Curvature of B-field")
+plt.legend()#bbox_to_anchor=(1.05, 1), loc='upper left')
+
+#plt.savefig("output/first_compensation_idea.png")
+
+plt.show()
+
+
+
+
+"""
+AHH ############################################################################
+###############################################################################
+###############################################################################
+"""
diff --git a/Coil_geometry/09_geometry_HH_check_other_axis.py b/Coil_geometry/09_geometry_HH_check_other_axis.py
new file mode 100644
index 0000000..b494990
--- /dev/null
+++ b/Coil_geometry/09_geometry_HH_check_other_axis.py
@@ -0,0 +1,108 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Aug 23 17:40:37 2021
+
+@author: Joschka
+"""
+
+
+import matplotlib.pyplot as plt
+import numpy as np
+from src import B_field_calculation as bf
+
+from src import coil_class as BC
+
+from IPython import get_ipython
+get_ipython().run_line_magic('matplotlib', 'qt')
+#get_ipython().run_line_magic('matplotlib', 'inline')
+
+#set up axis
+x = np.arange(-50, 50, 0.5)
+print(len(x)//2)
+z = np.arange(-50, 50, 0.5)
+
+#New coil
+I_current = 5
+HH_Coil = BC.BCoil(HH = 1, distance = 54 ,radius = 48 , layers = 4, windings = 4, wire_height = 1, wire_width = 1,windings_spacing=0.25, layers_spacing = 0.25)
+HH_Coil.set_R_outer(49.3)
+HH_Coil.set_d_min(49.8)
+
+HH_Coil.print_info()
+Bz, Bx = HH_Coil.B_multiple(I_current,x,z,raster = 4)
+Bz_curv = BC.BCoil.curv(Bz, z)
+
+B = HH_Coil.B_multiple_3d(I_current, x, z,raster = 2)
+B_tot = BC.BCoil.B_tot_3d(B)
+
+HH_Coil.cooling(I_current)
+
+HH_Coil.plot_3d(I_current, 80, 80)
+"""
+print(f"B_z(0) = {Bz[15000]} G")
+print(f"B_z_curvature(0) = {Bz_curv[15000]:.4f} G/cm^2")
+
+
+print(f"B_z(1 μm) = {Bz[15001]}")
+print(f"B_z(1 mm) = {Bz[16000]}")
+
+print(f"Diff B 1 μm: {Bz[15001] - Bz[15000]}, relative: {(Bz[15001] - Bz[15000])/Bz[15000]}")
+
+
+print(f"Diff B 1 mm: {Bz[16000] - Bz[15000]}, relative: {(Bz[16000] - Bz[15000])/Bz[15000]}")
+"""
+
+I_HH = 5
+
+#calculate field
+B_z, B_x = HH_Coil.B_multiple(I_HH,x,z)
+
+#Calculate curvature
+B_z_curv = BC.BCoil.curv(B_z, z)
+
+
+
+plt.figure(300)
+
+
+
+
+#Field plot
+##########################
+plt.subplot(2,1,1)
+plt.plot(z,B_z,linestyle = "solid", label = r"$B_{ref}$, reference, optimal HH-configuration d = 44 mm, R = 44 mm")
+plt.plot(z,B_tot[:,len(x)//2], label = "B_tot_z")
+plt.plot(x,B_x,label = "B_x")
+plt.plot(x,B_tot[len(z)//2,:],label = "B_tot_x")
+#plt.plot(z,B_z_comp,linestyle = "solid", label = r"$B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A, 4 x 4")
+
+#plt.plot(z,B_tot,linestyle = "solid", label = r"$B_{z,1} + B_{z,2}$")
+#plt.xlim(-0.01,0.01)
+plt.title("B-field" )
+
+plt.ylabel(r"$B_z$ [G]")
+plt.xlabel("z-axis [mm]")
+plt.legend()#bbox_to_anchor=(1.05, 1), loc='upper left')
+
+plt.subplot(2,1,2)
+plt.plot(z,B_z_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{ref}$, d = 44 mm, R = 44 mm")
+#plt.plot(z,B_z_comp_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A")
+
+#plt.plot(z,B_tot_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1} + B_{z,2}$")
+
+plt.ylabel(r"$\nabla_z^2 B_z [G/cm^2]$")
+plt.xlabel("z-axis [mm]")#plt.xlim(-10,10)
+plt.title("Curvature of B-field")
+plt.legend()#bbox_to_anchor=(1.05, 1), loc='upper left')
+
+#plt.savefig("output/first_compensation_idea.png")
+
+plt.show()
+
+
+
+
+"""
+AHH ############################################################################
+###############################################################################
+###############################################################################
+"""
diff --git a/Coil_geometry/10_comparison_Ilzh_small-bias.py b/Coil_geometry/10_comparison_Ilzh_small-bias.py
new file mode 100644
index 0000000..93d566d
--- /dev/null
+++ b/Coil_geometry/10_comparison_Ilzh_small-bias.py
@@ -0,0 +1,102 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Aug 23 17:40:37 2021
+
+@author: Joschka
+"""
+
+
+import matplotlib.pyplot as plt
+import numpy as np
+#from src import B_field_calculation as bf
+
+from src import coil_class as BC
+
+from IPython import get_ipython
+get_ipython().run_line_magic('matplotlib', 'qt')
+#get_ipython().run_line_magic('matplotlib', 'inline')
+
+#set up axis
+x = np.linspace(-15, 15, 30001)
+z = np.linspace(-15, 15, 30001)
+
+
+#New coil
+I_current = 10
+HH_Coil = BC.BCoil(HH = 1, distance = 70 ,radius = 40.5 , layers = 1, windings = 1, wire_height = 1, wire_width = 1,windings_spacing=0.25, layers_spacing = 0.25)
+HH_Coil.set_R_inner(40.5)
+
+
+HH_Coil.print_info()
+Bz, Bx = HH_Coil.B_multiple(I_current,x,z,raster = 10)
+Bz_curv = BC.BCoil.curv(Bz, z)
+HH_Coil.cooling(I_current)
+
+print(f"B_z(0) = {Bz[15000]} G")
+print(f"B_z_curvature(0) = {Bz_curv[15000]:.4f} G/cm^2")
+
+
+print(f"B_z(1 μm) = {Bz[15001]}")
+print(f"B_z(1 mm) = {Bz[16000]}")
+
+print(f"Diff B 1 μm: {Bz[15001] - Bz[15000]}, relative: {(Bz[15001] - Bz[15000])/Bz[15000]}")
+
+
+
+print(f"Diff B 1 mm: {Bz[16000] - Bz[15000]}, relative: {(Bz[16000] - Bz[15000])/Bz[15000]}")
+
+print(f"Diff B 0.5 mm: {Bz[15500] - Bz[15000]}, relative: {(Bz[15500] - Bz[15000])/Bz[15000]}")
+
+
+I_HH = 5
+
+#calculate field
+B_z, B_x = HH_Coil.B_multiple(I_HH,x,z)
+
+#Calculate curvature
+B_z_curv = BC.BCoil.curv(B_z, z)
+
+
+
+plt.figure(300)
+
+
+
+
+#Field plot
+##########################
+plt.subplot(2,1,1)
+plt.plot(z,B_z,linestyle = "solid", label = r"$B_{ref}$, reference, optimal HH-configuration d = 44 mm, R = 44 mm")
+#plt.plot(z,B_z_comp,linestyle = "solid", label = r"$B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A, 4 x 4")
+
+#plt.plot(z,B_tot,linestyle = "solid", label = r"$B_{z,1} + B_{z,2}$")
+#plt.xlim(-0.01,0.01)
+plt.title("B-field" )
+
+plt.ylabel(r"$B_z$ [G]")
+plt.xlabel("z-axis [mm]")
+plt.legend()#bbox_to_anchor=(1.05, 1), loc='upper left')
+
+plt.subplot(2,1,2)
+plt.plot(z,B_z_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{ref}$, d = 44 mm, R = 44 mm")
+#plt.plot(z,B_z_comp_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A")
+
+#plt.plot(z,B_tot_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1} + B_{z,2}$")
+
+plt.ylabel(r"$\nabla_z^2 B_z [G/cm^2]$")
+plt.xlabel("z-axis [mm]")#plt.xlim(-10,10)
+plt.title("Curvature of B-field")
+plt.legend()#bbox_to_anchor=(1.05, 1), loc='upper left')
+
+#plt.savefig("output/first_compensation_idea.png")
+
+plt.show()
+
+
+
+
+"""
+AHH ############################################################################
+###############################################################################
+###############################################################################
+"""
diff --git a/Coil_geometry/11_Final_HH.py b/Coil_geometry/11_Final_HH.py
new file mode 100644
index 0000000..029f226
--- /dev/null
+++ b/Coil_geometry/11_Final_HH.py
@@ -0,0 +1,99 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Aug 23 17:40:37 2021
+
+@author: Joschka
+"""
+
+
+import matplotlib.pyplot as plt
+import numpy as np
+#from src import B_field_calculation as bf
+
+from src import coil_class as BC
+
+from IPython import get_ipython
+get_ipython().run_line_magic('matplotlib', 'qt')
+#get_ipython().run_line_magic('matplotlib', 'inline')
+
+#set up axis
+x = np.linspace(-15, 15, 30001)
+z = np.linspace(-15, 15, 30001)
+
+
+#New coil
+I_current = 10
+HH_Coil = BC.BCoil(HH = 1, distance = 54 ,radius = 48 , layers = 4, windings = 2, wire_height = 2, wire_width = 1, windings_spacing=0.25, layers_spacing = 0.25)
+HH_Coil.set_R_inner(44.5)
+HH_Coil.set_d_min(48.8)
+print(f"height = {HH_Coil.get_coil_height()}")
+HH_Coil.print_info()
+
+Bz, Bx = HH_Coil.B_multiple(I_current,x,z,raster = 10)
+
+B_tot_z, B_tot_x = HH_Coil.B_multiple(I_current, x, z,raster = 10)
+
+Bz_curv = BC.BCoil.curv(Bz, z)
+HH_Coil.cooling(I_current,28)
+
+print(f"B_z(0) = {Bz[15000]} G")
+print(f"B_z_curvature(0) = {Bz_curv[15000]:.10f} G/cm^2")
+
+
+print(f"B_z(1 μm) = {Bz[15001]}")
+print(f"B_z(1 mm) = {Bz[16000]}")
+
+print(f"Diff B 1 μm: {Bz[15001] - Bz[15000]}, relative: {(Bz[15001] - Bz[15000])/Bz[15000]}")
+
+
+print(f"Diff B 1 mm: {Bz[16000] - Bz[15000]}, relative: {(Bz[16000] - Bz[15000])/Bz[15000]}")
+
+print(f"Diff B 0.5 mm: {Bz[15500] - Bz[15000]}, relative: {(Bz[15500] - Bz[15000])/Bz[15000]}")
+
+
+
+
+plt.figure(300)
+
+
+
+
+#Field plot
+##########################
+plt.subplot(2,1,1)
+plt.plot(z,Bz,linestyle = "solid", label = r"$B_z along z-axis")
+plt.plot(z,B_tot_z, linestyle = "dashed", label = "New B_tot along z-axis")
+#plt.plot(x,B_tot_x, label = "B_tot along x-axis")
+#plt.plot(z,B_z_comp,linestyle = "solid", label = r"$B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A, 4 x 4")
+
+#plt.plot(z,B_tot,linestyle = "solid", label = r"$B_{z,1} + B_{z,2}$")
+#plt.xlim(-0.01,0.01)
+plt.title("B-field" )
+
+plt.ylabel(r"$B_z$ [G]")
+plt.xlabel("z-axis [mm]")
+plt.legend()#bbox_to_anchor=(1.05, 1), loc='upper left')
+
+plt.subplot(2,1,2)
+plt.plot(z,Bz_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{ref}$, d = 44 mm, R = 44 mm")
+#plt.plot(z,B_z_comp_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A")
+
+#plt.plot(z,B_tot_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1} + B_{z,2}$")
+
+plt.ylabel(r"$\nabla_z^2 B_z [G/cm^2]$")
+plt.xlabel("z-axis [mm]")#plt.xlim(-10,10)
+plt.title("Curvature of B-field")
+plt.legend()#bbox_to_anchor=(1.05, 1), loc='upper left')
+
+#plt.savefig("output/first_compensation_idea.png")
+
+plt.show()
+
+
+
+
+"""
+AHH ############################################################################
+###############################################################################
+###############################################################################
+"""
diff --git a/Coil_geometry/12_Final_Plotting.py b/Coil_geometry/12_Final_Plotting.py
new file mode 100644
index 0000000..ab4916c
--- /dev/null
+++ b/Coil_geometry/12_Final_Plotting.py
@@ -0,0 +1,89 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Mon Aug 23 17:40:37 2021
+
+@author: Joschka
+"""
+
+
+import matplotlib.pyplot as plt
+import numpy as np
+#from src import B_field_calculation as bf
+
+from src import coil_class as BC
+
+from IPython import get_ipython
+get_ipython().run_line_magic('matplotlib', 'qt')
+#get_ipython().run_line_magic('matplotlib', 'inline')
+
+#set up axis
+
+axis = 3001 #30001 for -15 to 15 = 1μm
+x = np.linspace(-5, 5, axis)
+z = np.linspace(-5, 5, axis)
+
+
+#New coil
+I_current = 10
+HH_Coil = BC.BCoil(HH = 1, distance = 54 ,radius = 48 , layers = 4, windings = 2, wire_height = 2, wire_width = 1, windings_spacing=0.25, layers_spacing = 0.25)
+HH_Coil.set_R_inner(44.5)
+HH_Coil.set_d_min(48.8)
+
+print(HH_Coil.resistance(22))
+print(HH_Coil.induct_perry())
+
+HH_Coil.print_info()
+#Bz, Bx = HH_Coil.B_multiple(I_current,x,z,raster = 10)
+B_tot_z, B_tot_x = HH_Coil.B_tot_along_axis(I_current, x, z,raster = 8)
+
+Bz_curv = BC.BCoil.curv(B_tot_z, z)
+Bx_curv = BC.BCoil.curv(B_tot_x, x)
+
+B_0 = B_tot_z[axis//2]
+
+plt.figure(300)
+
+
+
+
+#Field plot
+##########################
+plt.subplot(2,1,1)
+#plt.plot(z,B_totz,linestyle = "solid", label = r"$B_z along z-axis")
+#plt.plot(x,Bx,label = "B_x along x")
+plt.plot(z,B_tot_z, label = r"$B_{{tot}}$ along z-axis")
+plt.plot(x,B_tot_x, label = r"$B_{{tot}}$ along x-axis")
+#plt.plot(z,B_z_comp,linestyle = "solid", label = r"$B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A, 4 x 4")
+
+#plt.plot(z,B_tot,linestyle = "solid", label = r"$B_{z,1} + B_{z,2}$")
+#plt.xlim(-0.01,0.01)
+plt.title("B-field" )
+
+plt.ylabel(r"$B$ [G]")
+plt.xlabel("z / x -axis [mm]")
+plt.legend()#bbox_to_anchor=(1.05, 1), loc='upper left')
+
+plt.subplot(2,1,2)
+plt.plot(z,Bz_curv,linestyle = "solid", label = r"$B_{curvature}$ along z-axis")
+plt.plot(x,Bx_curv,label = r"$B_{curvature}$ along x-axis")
+#plt.plot(z,B_z_comp_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1}$, d = 54 mm, R = 48.8 mm, I = 5 A")
+
+#plt.plot(z,B_tot_curv,linestyle = "solid", label = r"$\nabla_z^2 B_{z,1} + B_{z,2}$")
+
+plt.ylabel(r"$\nabla_{z,x}^2 B_tot [G/cm^2]$")
+plt.xlabel("z / x -axis [mm]")#plt.xlim(-10,10)
+plt.title("Curvature of B-field")
+plt.legend()#bbox_to_anchor=(1.05, 1), loc='upper left')
+
+#plt.savefig("output/first_compensation_idea.png")
+
+plt.show()
+
+
+
+
+"""
+AHH ############################################################################
+###############################################################################
+###############################################################################
+"""
diff --git a/Coil_geometry/Untitled.ipynb b/Coil_geometry/Untitled.ipynb
new file mode 100644
index 0000000..2235b31
--- /dev/null
+++ b/Coil_geometry/Untitled.ipynb
@@ -0,0 +1,147 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "672091c7",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# -*- coding: utf-8 -*-\n",
+ "\"\"\"\n",
+ "Created on Tue Aug 24 16:24:52 2021\n",
+ "\n",
+ "@author: Joschka\n",
+ "\"\"\"\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "import sys\n",
+ "sys.path.insert(0,'..\\src')\n",
+ "\n",
+ "import coil_class_jupyter as BC\n",
+ "\n",
+ "#from IPython import get_ipython\n",
+ "#get_ipython().run_line_magic('matplotlib', 'qt')\n",
+ "#get_ipython().run_line_magic('matplotlib', 'inline')\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "d3a46f0f",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "HH = 1, Distance = 57.8 mm, z_min = 24.9 mm, z_max = 32.9 mm\n",
+ "Radius = 45.29999999999999 mm, Radius_inner = 41.29999999999999 mm, Radius_outer = 49.30 mm\n",
+ "layers = 1, windings = 1, wire_width = 8.0, wire_height = 8.0 mm \n",
+ "current density = 1.25 A/mm^2\n",
+ "Power = 0.47817553461759527 W\n",
+ "B_z(0) = 13.37 G\n",
+ "B_z_curvature(0) = 0.3775 G/cm^2\n",
+ "current density = 1.2499999999999998 A/mm^2\n",
+ "Power = 0.5193429647502357 W\n",
+ "width = 0.2mm, height = 320.0mm\n",
+ "B_z(0) = 1.81 G\n",
+ "B_z_curvature(0) = 0.1083 G/cm^2\n",
+ "current density = 1.25 A/mm^2\n",
+ "Power = 0.5188151771844329 W\n",
+ "width = 0.30000000000000004mm, height = 213.33333333333331mm\n",
+ "B_z(0) = 2.59 G\n",
+ "B_z_curvature(0) = 0.1629 G/cm^2\n",
+ "current density = 1.25 A/mm^2\n",
+ "Power = 0.5182873896186297 W\n",
+ "width = 0.4000000000000001mm, height = 159.99999999999997mm\n",
+ "B_z(0) = 3.32 G\n",
+ "B_z_curvature(0) = 0.2160 G/cm^2\n",
+ "current density = 1.25 A/mm^2\n",
+ "Power = 0.5177596020528267 W\n",
+ "width = 0.5000000000000001mm, height = 127.99999999999997mm\n",
+ "B_z(0) = 4.00 G\n",
+ "B_z_curvature(0) = 0.2669 G/cm^2\n",
+ "current density = 1.25 A/mm^2\n",
+ "Power = 0.5172318144870235 W\n",
+ "width = 0.6000000000000001mm, height = 106.66666666666666mm\n",
+ "B_z(0) = 4.63 G\n",
+ "B_z_curvature(0) = 0.3147 G/cm^2\n",
+ "current density = 1.25 A/mm^2\n",
+ "Power = 0.5167040269212204 W\n",
+ "width = 0.7000000000000002mm, height = 91.4285714285714mm\n",
+ "B_z(0) = 5.20 G\n",
+ "B_z_curvature(0) = 0.3588 G/cm^2\n",
+ "current density = 1.25 A/mm^2\n",
+ "Power = 0.5161762393554175 W\n",
+ "width = 0.8000000000000003mm, height = 79.99999999999997mm\n",
+ "B_z(0) = 5.74 G\n",
+ "B_z_curvature(0) = 0.3987 G/cm^2\n",
+ "current density = 1.25 A/mm^2\n",
+ "Power = 0.5156484517896143 W\n",
+ "width = 0.9000000000000001mm, height = 71.1111111111111mm\n",
+ "B_z(0) = 6.22 G\n",
+ "B_z_curvature(0) = 0.4344 G/cm^2\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD8CAYAAAB5Pm/hAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAjh0lEQVR4nO3deXhV5bn+8e9DmAPIEEAIhBkBGUOEitahFYtDizgcEU79HWuL6EGlHlttbbV1tupRrFjkWGtPqwJVURQUFAdsaZUwDyEkDEIIU0DmKcl+fn9k49mGYFYgyR5yf66Ly+ysd2Xf2YabN2utvV5zd0REJHHVinYAERGpWip6EZEEp6IXEUlwKnoRkQSnohcRSXAqehGRBBeo6M1smJllm1mumd39DePOMrNiM7s64nMbzGy5mS0xs8zKCC0iIsHVLm+AmSUBE4GhQB6wwMxmuPuqMsY9Bswu48tc6O4FlZBXREQqKMiMfhCQ6+7r3P0oMAUYXsa4W4HXge2VmE9ERE5RuTN6IBXYFPE4DxgcOcDMUoERwHeAs0rt78AcM3PgeXefXN4TpqSkeMeOHQNEExERgIULFxa4e8uytgUpeivjc6Xvm/A0cJe7F5sdN/wcd883s1bA+2a22t3nHfckZmOAMQBpaWlkZupwvohIUGb2xYm2BTl0kwe0j3jcDsgvNSYDmGJmG4CrgefM7AoAd88P/3c7MJ2SQ0HHcffJ7p7h7hktW5b5j5KIiJyEIEW/AOhmZp3MrC4wEpgROcDdO7l7R3fvCLwG3OLub5pZspk1BjCzZOBiYEWlfgciIvKNyj104+5FZjaOkqtpkoAX3X2lmY0Nb5/0Dbu3BqaHD+fUBl5x9/dOPbaIiARlsXib4oyMDNcxehGR4MxsobtnlLVN74wVEUlwKnoRkQSnohcRSXAqehGRKHN3Ps3ZwaRP1lbJ1w/yhikREakC7s68nAImfLCGRRt3065ZA/5jSEfq10mq1OdR0YuIVDN355M1O5gwN4fFG3fT9rT6PHhFb67JaEe92pVb8qCiFxGpNu7Ox2t2MOGDHJZsKin4h0b05uqBVVPwx6joRUSqmLvzcfYOnp6bw9JNu0lt2oCHR/Th6oHtqFu76k+VquhFRKqIu/NR9nae/iCHZXl7SG3agEeu7MNV6dVT8Meo6EVEKpm78+Hq7UyYW1Lw7Zo14NEr+3BlNRf8MSp6EZFK4u58kLWdZ+bmsHzzHto3b8DvrurLiPRU6iRF72p2Fb2IyClyd95ftY0Jc3NYmb+XtOYN+d3VfRkxILoFf4yKXkTkJLk7c1ZtY8IHOazaspcOLRry+NV9uSJGCv4YFb2ISAWFQuGCn5tD1pa9dGzRkCeu6ccV/dtSO4YK/hgVvYhIQCUFv5WnP8hh9dZ9dEpJ5slr+jE8Rgv+GBW9iEg5QiHnvZVbeWZuScF3TknmqWv78f2+sV3wx6joRUROIBRy3l1RUvDZ20oK/ulr+/P9fm1JqmXRjheYil5EpJRQyJm1YgvPzM1hzbb9dG6ZzISR/bm8b3wV/DEqehGRsOKQM2t5ScHnbN9P11aN4rrgj1HRi0iNVxxyZoYLPnf7frq1asQz1w3gsj5t4rrgj1HRi0iNVRxy3lmWzzNzc1i74wDdWjXi2VEDuLR3G2olQMEfo6IXkRqnOOS8vTSfZz7MYd2OA3Rv3YiJo9K5pPfpCVXwxwQqejMbBkwAkoAX3P3RE4w7C/gXcK27v1aRfUVEqlpRcYi3l+Xz+w9zWbfjAD1Ob8xzo9MZdmZiFvwx5Ra9mSUBE4GhQB6wwMxmuPuqMsY9Bsyu6L4iIlWpqDjEjKUlBb++oKTg/zA6ne8leMEfE2RGPwjIdfd1AGY2BRgOlC7rW4HXgbNOYl8RkUpXVBzirSX5/P7DHDbsPEjPNk2Y9O/pXNyrZhT8MUGKPhXYFPE4DxgcOcDMUoERwHf4etGXu2/E1xgDjAFIS0sLEEtEpGzuznsrtvK72dmsLzhArzZNeP6HAxnas3WNKvhjghR9Wa+Kl3r8NHCXuxebfW14kH1LPuk+GZgMkJGRUeYYEZHyLN74JQ/NzCLziy/p3roRz/9wIBf3ak2pbqpRghR9HtA+4nE7IL/UmAxgSviFTAEuNbOigPuKiJyyTbsO8rvZ2by9NJ+URvV45Mo+XDOwXVzci6aqBSn6BUA3M+sEbAZGAqMiB7h7p2Mfm9lLwDvu/qaZ1S5vXxGRU7HnUCHPfZTLn/6xgVq14NbvdOWm87vQqJ6uHj+m3FfC3YvMbBwlV9MkAS+6+0ozGxvePqmi+1ZOdBGpyQqLQ7z8ry+YMDeH3YcKuXJAO+78XnfanNYg2tFijrnH3uHwjIwMz8zMjHYMEYlBx5bte/Td1awrOMCQLi345aU96Z16WrSjRZWZLXT3jLK26XcbEYkby/J289DMLD5bv4suLZP54//L4Ds9WtXoE61BqOhFJObl7z7E47Ozmb54My2S6/LAFb0ZeVb7mFqXNZap6EUkZu07XMgfPl7LH/++HgduuaALYy/oQpP6daIdLa6o6EUk5hQVh3h1wSaefn8NOw8c5Yr+bfnZsB6kNtWJ1pOhoheRmOHufJS9nYdnrSZ3+34GdWrOny7rSd92TaMdLa6p6EUkJqzM38NDM7OYv3YnnVKS9Y7WSqSiF5Go2rrnME/Myeb1RXk0bVCH33y/F6O/1UEnWiuRil5EouLAkSKe/2Qtkz9dRygEY77dmVsu7MppDXSitbKp6EWkWhWHnGmZm3hyzhoK9h/h+/3a8vPvnUH75g2jHS1hqehFpNp8smYHD8/MInvbPgZ2aMb/XD+QAWnNoh0r4anoRaTKrd66l4dmZvFpTgEdWjTkD6PTGdb7dJ1orSYqehGpMtv3Hua/31/DtMxNNK5fh19d1pPrz+5I3do60VqdVPQiUukOHi3if+at5/l5ayksDnHDOZ249TtdadqwbrSj1UgqehGpNMUh5/VFeTw5J5tte49waZ/TuWtYDzq0SI52tBpNRS8ileLvOQU8NCuLrC176d++KRNHpZPRsXm0YwkqehE5RTnb9vHwrCw+yt5Bu2YN+P11A7i8bxudaI0hKnoROSk79h3hqQ/WMOXzjSTXq80vL+3B9Wd3pH6dpGhHk1JU9CJSIYcLi/nj39fz3Ee5HCkKcf3ZHbntu91onqwTrbFKRS8igbg7by/bwiOzstiy5zAX92rN3Zf0oHPLRtGOJuVQ0YtIudYXHODXb67g77kF9E5twlPX9udbnVtEO5YEpKIXkRM6XFjMcx+vZdLHa6lXuxb3Dz+T0YM7kFRLJ1rjSaCiN7NhwAQgCXjB3R8ttX048AAQAoqA8e7+9/C2DcA+oBgoOtEq5SISW+at2cG9b61gw86DDO/flnsu60mrxvWjHUtOQrlFb2ZJwERgKJAHLDCzGe6+KmLYXGCGu7uZ9QWmAT0itl/o7gWVmFtEqsi2vYe5/51VzFy2hc4pyfz1xsGc2y0l2rHkFASZ0Q8Cct19HYCZTQGGA18VvbvvjxifDHhlhhSRqlcccv73nxt4cs4ajhaHuGNod246vzP1autyyXgXpOhTgU0Rj/OAwaUHmdkI4BGgFXBZxCYH5piZA8+7++SynsTMxgBjANLS0gKFF5HKsXTTbu55czkrNu/lvO4tuf8HZ9IxRbctSBRBir6ssy7HzdjdfTow3czOo+R4/UXhTee4e76ZtQLeN7PV7j6vjP0nA5MBMjIy9BuBSDXYc6iQx2ev5uXPNtKyUT0mjkrn0j66fXCiCVL0eUD7iMftgPwTDXb3eWbWxcxS3L3A3fPDn99uZtMpORR0XNGLSPVxd95aks+DM7PYdeAI/zGkI3cM7U7j+lrGLxEFKfoFQDcz6wRsBkYCoyIHmFlXYG34ZGw6UBfYaWbJQC133xf++GLg/kr9DkSkQnK37+fet1Ywf+1O+rVvyks3nEXv1NOiHUuqULlF7+5FZjYOmE3J5ZUvuvtKMxsb3j4JuAq43swKgUPAteHSb03J4Zxjz/WKu79XRd+LiHyDw4XFTPwol0mfrKVBnSQevKI31w1K0zXxNYC5x97h8IyMDM/MzIx2DJGE8VH2du57ayUbdx1kxIBUfnlpT1o2rhftWFKJzGzhid6npHfGiiSwrXsOc/87K5m1fCudWybzyk8GM6SLromvaVT0IgmoqDjES/M38NT7aygKOXde3J2fnKdr4msqFb1Iglm08Uvumb6CrC17ueCMltz/g96ktWgY7VgSRSp6kQSx++BRHnsvmykLNtK6cX3+MDqdYb11Tbyo6EXinrvzxqLNPDwri92HCrnxnE6MH9qdRvX011tK6CdBJI7lbt/HPdNX8Nn6XQxIa8pfruhDr7ZNoh1LYoyKXiQOHTpazO8/zOF/Pl1Hw7q1eeTKPlyb0Z5auiZeyqCiF4kzH67exr1vrSTvy0Ncld6OX1zag5RGuiZeTkxFLxIn8ncf4rdvr2T2ym10bdWIKWO+peX8JBAVvUiMKywO8ad/rOfpD3IIufPzYWfw43M7U7d2rWhHkzihoheJYQu/2MU901eweus+vtujFb/5wZm0b65r4qViVPQiMejLA0d59N3VTM3cRJvT6vP8Dwdyca/WuiZeToqKXiSGuDt/W5jHI7Oy2Hu4iDHndeb273YjWdfEyynQT49IjMjeuo9fvbmcBRu+ZGCHZjx4RW96ttE18XLqVPQiUXbwaBET5ubwx0/X06h+bR67qg/XDNQ18VJ5VPQiUfT3nALuen0Zm3cf4pqB7fjFpT1pnlw32rEkwajoRaJg3+FCHp61mlc/30jnlGSm3XQ2gzo1j3YsSVAqepFqdmwWn7/nEGPO68wdQ7tTv47uEy9VR0UvUk1Kz+JfGzuEgR2aRTuW1AAqepFq8GnODu5+fTlbNIuXKFDRi1Shr83iWybzN83iJQoC3SzDzIaZWbaZ5ZrZ3WVsH25my8xsiZllmtm5QfcVSVSf5uxg2NOfMnXBRsac15lZt31bJS9RUe6M3sySgInAUCAPWGBmM9x9VcSwucAMd3cz6wtMA3oE3FckoWgWL7EmyKGbQUCuu68DMLMpwHDgq7J29/0R45MBD7qvSCLRsXiJRUGKPhXYFPE4DxhcepCZjQAeAVoBl1VkX5F4p1m8xLIgRV/W+7D9uE+4Twemm9l5wAPARUH3BTCzMcAYgLS0tACxRGJD5Cz+pvM681PN4iXGBCn6PKB9xON2QP6JBrv7PDPrYmYpFdnX3ScDkwEyMjLK/MdAJJaUzOKzePXzTXRumcxrNw8hPU2zeIk9QYp+AdDNzDoBm4GRwKjIAWbWFVgbPhmbDtQFdgK7y9tXJB7NW7ODu19fxta9hzWLl5hXbtG7e5GZjQNmA0nAi+6+0szGhrdPAq4CrjezQuAQcK27O1DmvlX0vYhUOc3iJR5ZSR/HloyMDM/MzIx2DJGviZzF/+TbmsVLbDGzhe6eUdY2vTNWpByRs/gumsVLHFLRi3yDrx2LP78zP71Is3iJPyp6kTJoFi+JREUvUopm8ZJoVPQiYfsOF/LQzCymLNAsXhKLil4EzeIlsanopUYrPYt//eYhDNAsXhKMil5qLM3ipaZQ0UuNo1m81DQqeqlRNIuXmkhFLzXC3sOFPKxZvNRQKnpJeJ+EZ/HbNIuXGkpFLwkrchbftVUjzeKlxlLRS0KKnMWPPb8L4y/qplm81FgqekkoB48W8eDMLF75bKNm8SJhKnpJGMvz9nD71MWsLzjAmPM6c4fuFy8CqOglARSHnMnz1vHknGxSGtXj5R8PZkiXlGjHEokZKnqJa/m7D/HTqUv4bP0uLu1zOg+P6EPThnWjHUskpqjoJW69vTSfe6YvpzjkPH51X64e2A4zi3YskZijope4s+9wIffNWMkbizbTv31TJozsT4cWydGOJRKzVPQSVxZ+sYvxU5ew+ctD3Pbdbtz6na7USaoV7VgiMS3Q3xAzG2Zm2WaWa2Z3l7F9tJktC/+Zb2b9IrZtMLPlZrbEzDIrM7zUHEXFIZ56fw3XTPon7jDtprO5Y2h3lbxIAOXO6M0sCZgIDAXygAVmNsPdV0UMWw+c7+5fmtklwGRgcMT2C929oBJzSw2ycedBxk9dzKKNu7kyPZXf/uBMGtevE+1YInEjyKGbQUCuu68DMLMpwHDgq6J39/kR4/8FtKvMkFIzuTuvL9rMfW+toFYt45nrBvCDfm2jHUsk7gQp+lRgU8TjPL4+Wy/tRuDdiMcOzDEzB55398kVTik1zp6Dhfxy+nJmLt/CoE7Neera/qQ2bRDtWCJxKUjRl3W9mpc50OxCSor+3IhPn+Pu+WbWCnjfzFa7+7wy9h0DjAFIS0sLEEsS1fy1BfzXtKXs2HeEnw87g5vO60JSLV02KXKygpzJygPaRzxuB+SXHmRmfYEXgOHuvvPY5909P/zf7cB0Sg4FHcfdJ7t7hrtntGzZMvh3IAnjaFGIR97NYvQLn9GgThJv3DKEWy7oqpIXOUVBZvQLgG5m1gnYDIwERkUOMLM04A3gh+6+JuLzyUAtd98X/vhi4P7KCi+JI3f7fsZPXcyKzXu5blAav768Jw3r6upfkcpQ7t8kdy8ys3HAbCAJeNHdV5rZ2PD2ScC9QAvgufA7E4vcPQNoDUwPf6428Iq7v1cl34nEJXfn5c828uDMVTSok8TkHw7k4jNPj3YskYRi7mUebo+qjIwMz8zUJfeJbuf+I9z1+jI+yNrOt7ul8OQ1/WjVpH60Y4nEJTNbGJ5gH0e/G0tUfJy9nTv/toy9hwq59/Je/MeQjtTSsXiRKqGil2p1uLCYR99dzUvzN3BG68b85cZB9GzTJNqxRBKail6qTdaWvdw+ZTFrtu3nhnM6ctewHloYRKQaqOilyoVCzov/WM/v3svmtIZ1+POPBnF+d11CK1JdVPRSpbbtPcydf1vKpzkFXNSzNY9d1YcWjepFO5ZIjaKilyrz3oqt/OKNZRwqLOahEb0ZNShNC4OIRIGKXirdgSNFPPDOKqYs2ETv1CY8fe0AurZqFO1YIjWWil4q1dJNuxk/dQkbdh5g7PlduGNod+rW1j3jRaJJRS+VojjkTPpkLU+9v4aWjevxyo+/xdldWkQ7loigopdKkPflQe6YtpTP1+/isr5tePiKPpzWUAuDiMQKFb2ckreWbOZXb64gFHKevKYfV6an6oSrSIxR0ctJ2Xu4kPveWsn0xZtJT2vK09cOIK1Fw2jHEpEyqOilwhZs2MX4KUvYuvcw4y/qxrgLu1Jbi3SLxCwVvQRWWBzimbk5TPwol9RmDZh209kM7NAs2rFEpBwqeglkQ8EBbp+6hKWbdnNVejt+84NeNK6vE64i8UBFL+V6c/Fm7pm+nKRaxrOjBnB537bRjiQiFaCilxM6eLSI38xYybTMPM7q2IwJIwfQtmmDaMcSkQpS0UuZsrfuY9wri8jdsZ9xF3Zl/EXddMJVJE6p6OVr3J2pCzZx34yVNK5fh7/8aDDndkuJdiwROQUqevnKvsOF/HL6Ct5ems85XVvw1LX9adVYa7iKxDsVvQCwPG8P415dxKZdB7nz4u7cfEFXkrSGq0hCUNHXcO7OS/M38PCsLFIa1WPqTWdzVsfm0Y4lIpUo0Nk1MxtmZtlmlmtmd5exfbSZLQv/mW9m/YLuK9Gz++BRbvrLQn779irO69aSWbd9WyUvkoDKndGbWRIwERgK5AELzGyGu6+KGLYeON/dvzSzS4DJwOCA+0oULPziS257dTHb9x3mV5f15MZzO+lmZCIJKsihm0FArruvAzCzKcBw4Kuydvf5EeP/BbQLuq9Ur1DIeX7eOp6Yk03bpvV5bewQ+rVvGu1YIlKFghR9KrAp4nEeMPgbxt8IvFvRfc1sDDAGIC0tLUAsqaiC/Ue4Y9pS5q3ZwWV92vDIVX1ootsYiCS8IEVf1u/zXuZAswspKfpzK7qvu0+m5JAPGRkZZY6Rkzd/bQHjpyxh96FCLdQtUsMEKfo8oH3E43ZAfulBZtYXeAG4xN13VmRfqTrFIeeZuTk882EOnVKS+fOPBtGzTZNoxxKRahSk6BcA3cysE7AZGAmMihxgZmnAG8AP3X1NRfaVqrN1z2Fun7KYz9bv4qr0dtw//EyS6+mKWpGapty/9e5eZGbjgNlAEvCiu680s7Hh7ZOAe4EWwHPhwwFF7p5xon2r6HuRCB9lb+e/pi3l0NFinrimH1cPbFf+TiKSkMw99g6HZ2RkeGZmZrRjxKXC4hBPzM7m+Xnr6HF6Y54dlU7XVo2iHUtEqpiZLXT3jLK26ff4BLJp10Fum7KYxRt3M3pwGr++vBf16yRFO5aIRJmKPkG8t2ILP39tGe4wcVQ6l/VtE+1IIhIjVPRx7nBhMY/MyuLP//yCvu1O49nr0klr0TDasUQkhqjo49j6ggOMe2URK/P38uNzO/HzYT2oW1uLg4jI16no49RbSzbzyzeWU6d2LV64PoOLerWOdiQRiVEq+jhz6Ggxv5mxkqmZm7SOq4gEoqKPI2u27eM/X9Y6riJSMSr6OODuTMssWce1UT2t4yoiFaOij3H7Dhdyz/QVzNA6riJyklT0MWzF5j2Me2URG7WOq4icAhV9DHJ3/jx/Aw/PWk3z5LpMGXM2gzppiT8ROTkq+hiz52AhP3ttKXNWbeO7PVrx+DX9aJ5cN9qxRCSOqehjiNZxFZGqoKKPAaGQM/nTdTw+W+u4ikjlU9FHmdZxFZGqpqKPon+u3cntUxZrHVcRqVIq+igoDjnPfpjLhLlr6JiSzEs3DKJXW63jKiJVQ0VfzXbuP8L4qUv4NKeAEQNSefCK3lrHVUSqlBqmGmVu2MW4Vxaz6+BRHrmyDyPPaq9DNSJS5VT01cDdeeHT9Tz63mraNWvA9FuGcGbb06IdS0RqCBV9FdtzsJA7X1vK+6u2cUnv03ns6r66qkZEqlWge9ya2TAzyzazXDO7u4ztPczsn2Z2xMzuLLVtg5ktN7MlZpZZWcHjwfK8PVz+7Kd8tHo7917ei+dGp6vkRaTalTujN7MkYCIwFMgDFpjZDHdfFTFsF3AbcMUJvsyF7l5wilnjhrvz1399wQPvZJHSqC7Txp5NelqzaMcSkRoqyKGbQUCuu68DMLMpwHDgq6J39+3AdjO7rEpSxpH9R4r4xRvLeXtpPhec0ZKn/q0/zXSvGhGJoiBFnwpsinicBwyuwHM4MMfMHHje3SdXYN+4kr11Hze/vJANBQf42ffO4Obzu1BLtxUWkSgLUvRlNZVX4DnOcfd8M2sFvG9mq9193nFPYjYGGAOQlpZWgS8fG15bmMev3lxO4/p1ePnH3+LsLi2iHUlEBAh2MjYPaB/xuB2QH/QJ3D0//N/twHRKDgWVNW6yu2e4e0bLli2DfvmoO1xYzF2vLePOvy1lQPtmzLztXJW8iMSUIDP6BUA3M+sEbAZGAqOCfHEzSwZqufu+8McXA/efbNhYs77gADf/dSGrt+5j3IVd+enQ7loBSkRiTrlF7+5FZjYOmA0kAS+6+0ozGxvePsnMTgcygSZAyMzGA72AFGB6+N2ftYFX3P29KvlOqtnMZVu46/Vl1Eky/nTDWVx4RqtoRxIRKVOgN0y5+yxgVqnPTYr4eCslh3RK2wv0O5WAseZoUYiHZ2Xx0vwNDEhrysRR6bRt2iDasURETkjvjK2AvC8P8p+vLGbppt3ceG4n7hrWg7q1A73nTEQkalT0Ac3N2sYd05YSCjmT/j2dYb3bRDuSiEggKvpyFBWHeGLOGiZ9spYz2zbhudHpdGiRHO1YIiKBqei/wba9h7n11cV8vn4Xowance/lvahfJynasUREKkRFfwL/yC3g9imLOXCkmKeu7ceIAWWdaxYRiX0q+lJCIefZj3J56oM1dG3ZiFd/kk631o2jHUtE5KSp6COUXubvoRG9aVhXL5GIxDe1WFjkMn8Pj+jDdYO0zJ+IJIYaX/THlvl77L3VpDZrwBs3D6F3qpb5E5HEUaOLfs+hQu78W8kyf8POPJ3fXaNl/kQk8dTYol+et4dbXlnIlt2H+fXlvfjROR11qEZEElKNK3p356+fbeSBt1fRolFdpt50NgM7aJk/EUlcNaroD4SX+ZsRXubvv/+tP821zJ+IJLgaU/TZW/dxy8sLWa9l/kSkhqkRRf/6wjzueXM5jerV4a8/HsyQLinRjiQiUm0SuugPFxZz31srmZq5icGdmvP76wbQqkn9aMcSEalWCVv06wsOcMvLi8jaspf/vLALP72oO7WTdO94Eal5ErLoZy3fws9fW0ZtLfMnIpJYRR+5zF//9k2ZODqdVC3zJyI1XMIU/Z6DhVz/p89Zumk3PzqnE3dfomX+REQggYq+cf3adGjekLHndeaSPlrmT0TkmEBTXjMbZmbZZpZrZneXsb2Hmf3TzI6Y2Z0V2bey1KplPHPdAJW8iEgp5Ra9mSUBE4FLgF7AdWbWq9SwXcBtwBMnsa+IiFShIDP6QUCuu69z96PAFGB45AB33+7uC4DCiu4rIiJVK0jRpwKbIh7nhT8XxKnsKyIilSBI0Zd1QxgP+PUD72tmY8ws08wyd+zYEfDLi4hIeYIUfR7QPuJxOyA/4NcPvK+7T3b3DHfPaNmyZcAvLyIi5QlS9AuAbmbWyczqAiOBGQG//qnsKyIilaDc6+jdvcjMxgGzgSTgRXdfaWZjw9snmdnpQCbQBAiZ2Xigl7vvLWvfKvpeRESkDOYe9HB79cnIyPDMzMxoxxARiRtmttDdM8rcFotFb2Y7gC9OcvcUoKAS41SleMoK8ZU3nrJCfOWNp6wQX3lPJWsHdy/zBGdMFv2pMLPME/2rFmviKSvEV954ygrxlTeeskJ85a2qrLrrl4hIglPRi4gkuEQs+snRDlAB8ZQV4itvPGWF+MobT1khvvJWSdaEO0YvIiJfl4gzehERiRCXRR/g/vijzWxZ+M98M+sXjZwRecrLOzycdUn4fj/nRiNnOEug9QPM7CwzKzazq6szXxk5ynttLzCzPeHXdomZ3RuNnOEs5b624bxLzGylmX1S3RlLZSnvtf1ZxOu6Ivzz0DxGs55mZm+b2dLwa3tDNHJG5CkvbzMzmx7uhc/NrPcpPaG7x9UfSt5huxboDNQFllLyLtzIMUOAZuGPLwE+i/G8jfi/w2h9gdWxmjVi3IfALODqGH9tLwDeiVbGCmZtCqwC0sKPW8Vy3lLjvw98GKtZgV8Cj4U/bknJGhp1Yzjv48B94Y97AHNP5TnjcUYf5P748939y/DDf1FyM7VoCZJ3v4f/jwLJBL87aGULun7ArcDrwPbqDFeGeFrvIEjWUcAb7r4RStZ5qOaMkSr62l4HvFotyY4XJKsDjc3MKJlY7QKKqjfmV4Lk7QXMBXD31UBHM2t9sk8Yj0Vf0Xvc3wi8W6WJvlmgvGY2wsxWAzOBH1VTttLKzWpmqcAIYFI15jqRoD8LZ4d/ZX/XzM6snmjHCZK1O9DMzD42s4Vmdn21pTte4L9nZtYQGEbJP/7RECTrs0BPSu6euxy43d1D1RPvOEHyLgWuBDCzQUAHTmHCGo9FX5F73F9ISdHfVaWJvlmgvO4+3d17AFcAD1R1qBMIkvVp4C53L676OOUKkncRJW8N7wf8HnizqkOdQJCstYGBwGXA94Bfm1n3qg52AhVZh+L7wD/cfVcV5vkmQbJ+D1gCtAX6A8+aWZOqjXVCQfI+Ssk/+kso+Q16MafwG0i5d6+MQYHucW9mfYEXgEvcfWc1ZStLhe7n7+7zzKyLmaW4e3XfnyNI1gxgSslvwKQAl5pZkbu/WS0Jv67cvO6+N+LjWWb2XAy/tnlAgbsfAA6Y2TygH7CmeiIelyXoz+1IonfYBoJlvQF4NHyINNfM1lNy7Pvz6on4NUF/bm8ACB9uWh/+c3KicTLiFE9k1AbWAZ34vxMZZ5YakwbkAkPiJG9X/u9kbDqw+djjWMtaavxLRPdkbJDX9vSI13YQsDFWX1tKDi3MDY9tCKwAesfqaxsedxolx7uTY/zn4A/Ab8Iftw7/HUuJ4bxNCZ8sBn4C/O+pPGfczeg9wP3xgXuBFsBz4ZlnkUfppkYB814FXG9mhcAh4FoP/x+OwawxI2Deq4GbzayIktd2ZKy+tu6eZWbvAcuAEPCCu6+o7qxB84aHjgDmeMlvIVERMOsDwEtmtpySQyd3efX/VleRvD2B/zWzYkquxLrxVJ5T74wVEUlw8XgyVkREKkBFLyKS4FT0IiIJTkUvIpLgVPQiIglORS8ikuBU9CIiCU5FLyKS4P4/L6KnFj6DLFcAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "