From ed89c89b3502f22ca2669091a11e7f454ee0afb7 Mon Sep 17 00:00:00 2001 From: Andrej Date: Thu, 6 May 2021 10:57:42 +0200 Subject: [PATCH] zacel pisati skripto z NGW algoritmom --- .s2eps.py.swp | Bin 0 -> 12288 bytes s2eps.py | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 .s2eps.py.swp create mode 100644 s2eps.py diff --git a/.s2eps.py.swp b/.s2eps.py.swp new file mode 100644 index 0000000000000000000000000000000000000000..b4391dfdae8637a7185e25d6dc134aa842b6e468 GIT binary patch literal 12288 zcmeI2J#QmL7{@0d8sGqd=pQ>0-u2shHxwZv*PKuk$w0(~5Xp+dI3D}P-Zy5()+JHM z@dYU010X6I5G9unLP0}A3mrn@D*iL;BO%h=Nmp^wjP>80eRiIg{XMghB74}|+kT(c zyD`Ifjj{2MUw``N^Xn_`CXDfXq{P(Tc>LgL=kD4&y~i)Y-OsCl(U{M4RHnQmN*(D0 z$8LH2L~p;q6YvC{n!wzQJL@;tS`xb#b+uljH(vkvsl$0kPrwuK1Uvyxz!UHUJONL@ z6L|Irm~w@kqwMFFrN6a2uUtDXFa60A@B};oPrwuK1Uvyxz!UHUJONL@6YvC{K>~cl z*u{&CWiO$4eEdr%7Xpa(BA_BZr1^b_pcY&~?qL&i6CQrfHB*@H&X>%!6q z86ylO%v|Nwe3iJG%rlW2niWdqoU%f38cHK6X_m5?w`n#Nil&0{&3=^fY&hbF6BnrO zE)vw$p&*WuC@;IEjQZ3h%+g{4<4zbhn+dJTlT7MVBDt1EEa-$+2?b7BnTnat#e@@_ zxRNI0F2N2$2Re?aMLLO*Wh;z=xMNK%7{caO=++U&7S`@#2{P-?lnM52+789l3OTkn z_)rI1A>E{S!}(P{tw;FmFSA#Hkk3w9h=?ae1r6By7{d_{nN5T-LIq9T zorz-|gkhjVa*6BpI>{5okLEeg2yG^rlfjRhVI@r^S3DC&6$@)073m31@L?k{rhm79 zZc{(pxY|?FF1j8x#*G6MQT2b&Yi}I58-$?;wwQrDxUwKfnz9v#Sk{WC&83$!Cf4YD z$Auzk%TYX^h~RBxcHxlb^vq3dTwD$6`tl$L+PsHoc5!ZI@+^ z7J?Q^8+jx*uxWUjyW}$C6Nv(GH4>>~VymzNWUy20K0zm{M!21;4Y#{(q513*tx(K4 z;ZQ0`Xco=OLStv5A2u%%C^4#@(RQm;Vu&Y4+;WMPu)a`6qE(n)hF0=U*EOo*SiP0i z{93o%OTtIyt_j966>T~yGW#m(&7e_hv>U69FzoKSLLZhOlyD{3^|V-4(xuzGANF@{ zZBwUnllDHky}Nzuy;`kyxn=(I=fL{fO2(?ls3?Wv#`ZQV@ibTVEn8ahc~%}1*LX`9 UTdhTNt)ijKqw?6?De^V;4|ipdD*ylh literal 0 HcmV?d00001 diff --git a/s2eps.py b/s2eps.py new file mode 100644 index 0000000..1d286ba --- /dev/null +++ b/s2eps.py @@ -0,0 +1,38 @@ +#!/usr/bin/python3 + +import numpy as np +from operator import itemgetter + +def s2p_to_narray(file): + """ prebere s2p file v narray. STOLPCI --> VRSTICE!!! """ + return np.loadtxt(file, comments=('!','#')).T + +def narray_to_s(narray): + """ prebran s2p narray posortiram po s parametrih. + pri tem upostevam vrstni red: + f s11 s21 s12 s22, kjer sta za vsak s parameter + dve vrstici: realni in imaginarni del """ + keys = ["s{}{}".format(j,i) for i in range(1,3) for j in range(1,3)] + s = {} + for i in range(4): + s[keys[i]] = narray[(2*i+1),:]+1j*narray[(2*i+2),:] + s['f'] = narray[0,:] + return s + +def s_to_eps(s, L): + """ izracunam eps in tand iz s parametrov in dolzin """ + s11, s21, s12, s22, f = itemgetter(*s.keys())(s) + + X = (s11**2 - s21**2 + 1)/2/s11 + G = X + np.sqrt(X**2 - 1) + if np.abs(G) > 1: + G = X - np.sqrt(X**2 - 1) + P = (s11 + s21 - G)/(1-(s11+s21)*G) + Lambda2 = - (1/2/np.pi/L * np.log(1/P))**2 #izmisli resitev za korene kompleksnega logaritma + # argument korena mora biti 2*pi*n, kjer je n=L/lambda_g + + return + +a=s2p_to_narray('20.s2p') +b = narray_to_s(a) +s_to_eps(b,0,0,0)