from pyscript import document, display
import js
from numpy import abs, sqrt, log, sin, arctan
small_dist = 1.00e-6
def ba_barinf(r, i): # Feynman
cn = i*1.0e-7
if abs(r) < small_dist:
return 0.0, 0.0
az = -2.0*cn*log(r)
bt = 2.0*cn/r
return bt, az
def ba_wirebar(r, i, z1, z2): # Griffiths
cn = i*1.0e-7
if abs(r) < small_dist:
return 0.0, 0.0
t1 = arctan(z1/r)
t2 = arctan(z2/r)
b = cn/r*(sin(t2) - sin(t1))
x1 = z1 + sqrt(z1**2 + r**2)
x2 = z2 + sqrt(z2**2 + r**2)
a = cn*log(x2/x1)
return b, a
def bacalc1(event):
ia = float(js.document.getElementById("current").value)*1.0e6
r = float(js.document.getElementById("radial").value)
bt, az = ba_barinf(r, ia)
js.document.getElementById("msg1").innerHTML = "Bt (T): "+ str(bt)
js.document.getElementById("msg2").innerHTML = "Az (Tm): "+ str(az)
def bacalc2(event):
ia = float(js.document.getElementById("curr2").value)*1.0e6
z1 = float(js.document.getElementById("z1").value)
z2 = float(js.document.getElementById("z2").value)
r = float(js.document.getElementById("radip").value)
bt, az = ba_wirebar(r, ia, z1, z2)
js.document.getElementById("msg4").innerHTML = "Bt (T): "+ str(bt)
js.document.getElementById("msg5").innerHTML = "Az (Tm): "+ str(az)