//Fundamental constants (in SI units)
var e0 = 1.602177e-19;
var eps0 = 8.85419e-12;
var mu0 = 1.25664e-6;
var m0 = 9.109389e-31;
var h = 6.626068e-34;
var hbar = 1.05457e-34;
var kb = 1.380658e-23;
var c = 299792458;
var mb = 9.27400899e-24;
var pi = 3.14159265;
//Sample parameters(in SI units)
//var ne = 4.8e15;
//var mu = 5e2;
//var gamma = 2.0;
//var me = 0.064;
//var w = 100e-6;
//var tau_q = 20e-12;

var g0=-0.44;
var eps_lo=12.9;
var eps_hi=10.9;
var eps_eff=6.8; 
//var v_s=5.9e3;
//acoustic wave speeds
var v100L=4.73e3;
var v110L=5.25e3;
var vT1=3.35e3;
var vT2=2.48e3;

function GetAll()
{
//input information
    var B = parseFloat(document.getElementById('B').value)/10;
	var f = parseFloat(document.getElementById('f').value)*Math.pow(10,9);
	var I = parseFloat(document.getElementById('I').value)/Math.pow(10,6);
	var T = parseFloat(document.getElementById('T').value);
	var P = parseFloat(document.getElementById('P').value)/Math.pow(10,3);
	var angle = parseFloat(document.getElementById('angle').value)*pi/180;
	
	var ne = parseFloat(document.getElementById('ne').value)*Math.pow(10,15);
	var mu = parseFloat(document.getElementById('mu').value)*Math.pow(10,2);
	var gamma = parseFloat(document.getElementById('gamma').value);
	var me = parseFloat(document.getElementById('me').value);
	var w = parseFloat(document.getElementById('w').value)/Math.pow(10,6);
	var tau_q = parseFloat(document.getElementById('tau_q').value)/Math.pow(10,12);
	var v_s = parseFloat(document.getElementById('v_s').value)*Math.pow(10,3);
	var ww = parseFloat(document.getElementById('ww').value)/Math.pow(10,9);
//calculation in SI units
    //Perpendicular and paralell components of the magnetic field
     B_perp=B*Math.cos(angle);
     B_par=B*Math.sin(angle);

	//GetTime
	tau_tr = me*m0*mu/e0;
    T_c = 2*pi*me*m0/e0/B_perp;
    T_mw = 1/f;
    T_ph = pi/Math.sqrt(2*pi*ne)/v_s;
	
	//GetLength
	a_ee = Math.sqrt(1/ne); 
	l_0 = mu*hbar*Math.sqrt(2*pi*ne)/e0;
	l_ph = h*v_s/kb/T;
	l_ph_2 = pi/Math.sqrt(2*pi*ne);
	l_F= 2*pi/Math.sqrt(2*pi*ne); 
    l_B = Math.sqrt(hbar/e0/B_perp);
    tR_c= 2*Math.sqrt(2*pi*ne)*hbar/e0/B_perp;
    dY_LL = hbar*ne*w*e0/me/m0/I; 
    w_LL = hbar*ne*w/tau_q/I/B_perp;
	lambda_FS = c/f;
	a = 0.28*0.025;// waveguide dimension of cross section
    l_mw  = lambda_FS/Math.sqrt(1-Math.pow(lambda_FS/2/a,2));
	
	//GetEnergy
	eps_eff=(eps_hi+1)/2;
    q=kb/h;
    G=hbar/tau_q/kb;
    Eqa=(1/4/pi/eps0/eps_lo)*e0*e0/Math.sqrt(1/ne)/kb; 
    Eq2=(1/4/pi/eps0/eps_lo)*e0*e0/Math.sqrt(hbar/e0/B_perp)/kb; 
    Eq3=(1/4/pi/eps0/eps_lo)*e0*e0/(2*Math.sqrt(2*pi*ne)*hbar/e0/B_perp)/kb;
    EF=pi*hbar*hbar*ne/me/m0/kb; 
    EL=hbar*e0*B_perp/me/m0/kb; 
    EZ=Math.abs(g0*mb*B)/kb; 
    Eac=h*f/kb; 
    Edc=(I/ne/w)*2*Math.sqrt(2*pi*ne)*hbar/e0/kb; 
    EHW= I*B_perp/ne/kb;
    EHLB=(I*B_perp/ne/w)*Math.sqrt(hbar/e0/B_perp)/kb; 
    Eph= 2*hbar*Math.sqrt(2*pi*ne)*v_s/kb; 
    Epl=hbar*Math.sqrt(ne*Math.pow(e0,2)*pi/2/eps_eff/eps0/me/m0/w )/kb;
    Emp=Math.sqrt(Math.pow(Epl,2)+Math.pow(EL,2));
    E_1=pi*pi*hbar*hbar/2/m0/me/ww/ww/kb;
    E_2=E_1*4;
	
    //GetVelocity
	vF = hbar*Math.sqrt(2*pi*ne)/me/m0;
    vS = v_s;
    vD = I/ne/w/e0;
	
	//GetFields
    bb = 0.14*0.025;
    w10=pi*c/a;
    o=2*pi*f;
    factor = 0.25*c*mu0*Math.pow(o/w10,2)*Math.sqrt(1-w10*w10/o/o)*a*bb;
    HH0=Math.sqrt(P/factor)
    Emax=o*a*mu0*HH0/pi;
    eac = 2*pi*f*me*m0/e0/B_perp;
    E_H= I*B_perp/ne/w/e0; 
    E_b1_a= hbar*B_perp/me/m0/w;
    E_b1_b= hbar/tau_q/e0/w;
    E_b1_c= hbar/tau_q/e0/Math.sqrt(hbar/e0/B_perp);
    E_b2 = (eac-Math.floor(eac))*hbar*2*pi*f/e0/Math.sqrt(hbar/e0/B_perp);
    E_c =  hbar*B_perp/me/m0/Math.sqrt(hbar/e0/B_perp); 
    E_s =  v_s*B_perp;
    E_mw =  Emax; 
    
    B_tr=m0*me/e0/tau_tr;
    B_q=m0*me/e0/tau_q;
    B_ac=2*pi*f*m0*me/e0;
    B_dc=m0*me/e0*gamma*Math.sqrt(2*pi/ne)*I/e0/w;
    B_ph=m0*me/e0*4*pi*v_s/l_F;
    B_mpr=m0*me*kb/hbar/e0*Math.sqrt(Math.pow(Eac,2)-Math.pow(Epl,2));
    
	
	//GetPars
    nu = ne*h/e0/B_perp; 
    N = ne*h/e0/B_perp/2-(ne*h/e0/B_perp/2-Math.floor(ne*h/e0/B_perp/2));
    e_ac = Eac/EL;
    e_dc = Edc/EL;
    e_ph = Eph/EL;
    e_mp= Eac/Emp;
	
//Units conversion
    //GetTime
	tau_tr = tau_tr*Math.pow(10,12);
	tau_q = tau_q*Math.pow(10,12);
	T_c = T_c*Math.pow(10,12);
	T_mw = T_mw*Math.pow(10,12);
	T_ph = T_ph*Math.pow(10,12);
	//GetLength
	a_ee = a_ee*Math.pow(10,6);
	l_0 = (l_0)*Math.pow(10,6);
	l_ph = (l_ph)*Math.pow(10,6);
	l_ph_2= (l_ph_2)*Math.pow(10,6);
	l_F =(l_F)*Math.pow(10,6);
	l_B = (l_B)*Math.pow(10,6);
	tR_c = (tR_c)*Math.pow(10,6);
	dY_LL = (dY_LL)*Math.pow(10,6);
	w_LL = (w_LL)*Math.pow(10,6);
	l_mw = (l_mw)*Math.pow(10,6);
	//GetEnergy
	G = G*Math.pow(10,0);
	EZ = EZ*Math.pow(10,0);
	Edc= Edc*1;
	EHLB = EHLB*Math.pow(10,0);
	//GetVelocity
	vF = vF/1000;
	vS = vS/1000;
    vD = vD/1000;
	//GetField
	E_H=E_H/100;
	E_b1_a=E_b1_a/100;
	E_b1_b=E_b1_b/100;
	E_b1_c=E_b1_c/100;
	E_b2=E_b2/100;
	E_c=E_c/100;
	E_s=E_s/100; 
	E_mw=E_mw/100;
	
	B_tr=B_tr*10;
	B_q=B_q*10;
	B_ac=B_ac*10;
	B_dc=B_dc*10;
	B_ph=B_ph*10;
	B_mpr=B_mpr*10;
	B_perp=B_perp*10;
	B_par=B_par*10;
	
	//output(in ps)			
		document.getElementById('tau_tr').value = tau_tr.toPrecision(3);
		document.getElementById('tau_q1').value = tau_q.toPrecision(3);
		document.getElementById('T_c').value = T_c.toPrecision(3);
		document.getElementById('T_mw').value = T_mw.toPrecision(3);
		document.getElementById('T_ph').value = T_ph.toPrecision(3);
		
		document.getElementById('a_ee').value = a_ee.toPrecision(3);
		document.getElementById('l_0').value = l_0.toPrecision(3);
		document.getElementById('l_ph').value = l_ph.toPrecision(3);
		document.getElementById('l_ph_2').value = l_ph_2.toPrecision(3);
		document.getElementById('l_F').value = l_F.toPrecision(3);
		document.getElementById('l_B').value = l_B.toPrecision(3);
		document.getElementById('tR_c').value = tR_c.toPrecision(3);
		document.getElementById('dY_LL').value = dY_LL.toPrecision(3);
		document.getElementById('w_LL').value = w_LL.toPrecision(3);
		document.getElementById('l_mw').value = l_mw.toPrecision(3);
		
		document.getElementById('T1').value = T.toPrecision(3);
		document.getElementById('G').value = G.toPrecision(3);
		document.getElementById('EF').value = EF.toPrecision(3);
		document.getElementById('EZ').value = EZ.toPrecision(3);
		document.getElementById('EL').value = EL.toPrecision(3);
		document.getElementById('Eac').value = Eac.toPrecision(3);
		document.getElementById('Edc').value = Edc.toPrecision(3);
		document.getElementById('Eph').value = Eph.toPrecision(3);
		document.getElementById('Emp').value = Emp.toPrecision(3);
		document.getElementById('Epl').value = Epl.toPrecision(3);
		document.getElementById('EHW').value = EHW.toPrecision(3);
		document.getElementById('EHLB').value = EHLB.toPrecision(3);
		document.getElementById('Eqa').value = Eqa.toPrecision(3);
		document.getElementById('Eq2').value = Eq2.toPrecision(3);
		document.getElementById('Eq3').value = Eq3.toPrecision(3);
		document.getElementById('E_1').value = E_1.toPrecision(3);
		document.getElementById('E_2').value = E_2.toPrecision(3);
		
		document.getElementById('vF').value = vF.toPrecision(3);
		document.getElementById('vS').value = vS.toPrecision(3);
		document.getElementById('vD').value = vD.toPrecision(3);
		
		document.getElementById('E_H').value = E_H.toPrecision(3);
		document.getElementById('E_b1_a').value = E_b1_a.toPrecision(3);
		document.getElementById('E_b1_b').value = E_b1_b.toPrecision(3);
		document.getElementById('E_b1_c').value = E_b1_c.toPrecision(3);
		document.getElementById('E_b2').value = E_b2.toPrecision(3);
		document.getElementById('E_c').value = E_c.toPrecision(3);
		document.getElementById('E_s').value = E_s.toPrecision(3);
		document.getElementById('E_mw').value = E_mw.toPrecision(3);
		
		document.getElementById('B_tr').value = B_tr.toPrecision(3);
		document.getElementById('B_q').value = B_q.toPrecision(3);
		document.getElementById('B_ac').value = B_ac.toPrecision(3);
		document.getElementById('B_dc').value = B_dc.toPrecision(3);
		document.getElementById('B_ph').value = B_ph.toPrecision(3);
		document.getElementById('B_mpr').value = B_mpr.toPrecision(3);
		document.getElementById('B_perp').value = B_perp.toPrecision(3);
		document.getElementById('B_par').value = B_par.toPrecision(3);
		
		document.getElementById('nu').value = nu.toPrecision(3);
		document.getElementById('N').value = N.toPrecision(3);
		document.getElementById('e_ac').value = e_ac.toPrecision(3);
		document.getElementById('e_dc').value = e_dc.toPrecision(3);
		document.getElementById('e_ph').value = e_ph.toPrecision(3);
		document.getElementById('e_mp').value = e_mp.toPrecision(3);
		
}


