# -*- 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 = 2, windings = 6, wire_height = 2, 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_field(I_current, x, z, raster = 10)
Bz_curv = BC.BCoil.curv(Bz, z)
HH_Coil.cooling(I_current)

print(f"Bz(0) = {Bz[15000]} G")
print(f"B_z_curvature(0) = {Bz_curv[15000]:.4f} G/cm^2")


print(f"Bz(1 μm) = {Bz[15001]}")
print(f"Bz(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 = I_current

#calculate field
B_z, B_x = HH_Coil.B_field(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"$Bz$ [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 Bz [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 ############################################################################
###############################################################################
###############################################################################
"""
