From 352fd8750299dbedf941114fc6b56f969de70b24 Mon Sep 17 00:00:00 2001 From: Aggie Branczyk Date: Tue, 2 Jan 2024 07:14:36 -0500 Subject: [PATCH 1/7] relable k to k_array for clarity --- custom_poling/utils/pmf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom_poling/utils/pmf.py b/custom_poling/utils/pmf.py index 14dc07a..df1f1d5 100644 --- a/custom_poling/utils/pmf.py +++ b/custom_poling/utils/pmf.py @@ -1,7 +1,7 @@ import numpy as np -def pmf(domain_walls, domain_configuration, k): - pmf_one_domain = lambda z1,z2:2*np.pi*1j*(np.exp(1j*k*z1)-np.exp(1j*k*z2))/(k*2*np.pi) +def pmf(domain_walls, domain_configuration, k_array): + pmf_one_domain = lambda z1,z2:2*np.pi*1j*(np.exp(1j*k_array*z1)-np.exp(1j*k_array*z2))/(k_array*2*np.pi) pmf = 0 for idx in range(len(domain_configuration)): pmf = pmf + domain_configuration[idx]*pmf_one_domain(domain_walls[idx],domain_walls[idx+1]) From 039f7d3c602f5a203733e887dab1d7218f9c26d7 Mon Sep 17 00:00:00 2001 From: Aggie Branczyk Date: Tue, 2 Jan 2024 07:50:33 -0500 Subject: [PATCH 2/7] added value error for k_array elements --- custom_poling/utils/pmf.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/custom_poling/utils/pmf.py b/custom_poling/utils/pmf.py index df1f1d5..3405ae4 100644 --- a/custom_poling/utils/pmf.py +++ b/custom_poling/utils/pmf.py @@ -1,6 +1,9 @@ import numpy as np def pmf(domain_walls, domain_configuration, k_array): + """Returns the phasematching function (PMF) as a function of k for a given domain_configuration.""" + if np.any(k_array==0.): + raise ValueError('all k_array elements must be non-zero') pmf_one_domain = lambda z1,z2:2*np.pi*1j*(np.exp(1j*k_array*z1)-np.exp(1j*k_array*z2))/(k_array*2*np.pi) pmf = 0 for idx in range(len(domain_configuration)): From 7b9da0d4abe6e79a6d7716c22bccb1f0995ee758 Mon Sep 17 00:00:00 2001 From: Aggie Branczyk Date: Tue, 2 Jan 2024 08:26:41 -0500 Subject: [PATCH 3/7] updated ValueError --- custom_poling/utils/pmf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_poling/utils/pmf.py b/custom_poling/utils/pmf.py index 3405ae4..a9296b0 100644 --- a/custom_poling/utils/pmf.py +++ b/custom_poling/utils/pmf.py @@ -3,7 +3,7 @@ def pmf(domain_walls, domain_configuration, k_array): """Returns the phasematching function (PMF) as a function of k for a given domain_configuration.""" if np.any(k_array==0.): - raise ValueError('all k_array elements must be non-zero') + raise ValueError('Sorry, no numbers equal to zero inside k_array') pmf_one_domain = lambda z1,z2:2*np.pi*1j*(np.exp(1j*k_array*z1)-np.exp(1j*k_array*z2))/(k_array*2*np.pi) pmf = 0 for idx in range(len(domain_configuration)): From 8533e7f1f713ec5e5962fb6770482ec12a471b5b Mon Sep 17 00:00:00 2001 From: Aggie Branczyk Date: Tue, 2 Jan 2024 08:40:59 -0500 Subject: [PATCH 4/7] added pycache files --- .gitignore | 2 ++ .../core/__pycache__/__init__.cpython-38.pyc | Bin 160 -> 0 bytes .../core/__pycache__/crystal.cpython-38.pyc | Bin 2236 -> 0 bytes .../core/__pycache__/crystal.cpython-39.pyc | Bin 3081 -> 0 bytes .../__pycache__/custom_crystal.cpython-38.pyc | Bin 2567 -> 0 bytes .../__pycache__/custom_crystal.cpython-39.pyc | Bin 2593 -> 0 bytes .../core/__pycache__/target.cpython-38.pyc | Bin 2598 -> 0 bytes .../core/__pycache__/target.cpython-39.pyc | Bin 2620 -> 0 bytes .../utils/__pycache__/__init__.cpython-38.pyc | Bin 161 -> 0 bytes .../__pycache__/func_to_matrix.cpython-38.pyc | Bin 383 -> 0 bytes .../utils/__pycache__/mat_func.cpython-38.pyc | Bin 399 -> 0 bytes .../utils/__pycache__/pmf.cpython-38.pyc | Bin 653 -> 0 bytes .../utils/__pycache__/pmf.cpython-39.pyc | Bin 675 -> 0 bytes .../utils/__pycache__/sellmeier.cpython-38.pyc | Bin 729 -> 0 bytes 14 files changed, 2 insertions(+) delete mode 100644 custom_poling/core/__pycache__/__init__.cpython-38.pyc delete mode 100644 custom_poling/core/__pycache__/crystal.cpython-38.pyc delete mode 100644 custom_poling/core/__pycache__/crystal.cpython-39.pyc delete mode 100644 custom_poling/core/__pycache__/custom_crystal.cpython-38.pyc delete mode 100644 custom_poling/core/__pycache__/custom_crystal.cpython-39.pyc delete mode 100644 custom_poling/core/__pycache__/target.cpython-38.pyc delete mode 100644 custom_poling/core/__pycache__/target.cpython-39.pyc delete mode 100644 custom_poling/utils/__pycache__/__init__.cpython-38.pyc delete mode 100644 custom_poling/utils/__pycache__/func_to_matrix.cpython-38.pyc delete mode 100644 custom_poling/utils/__pycache__/mat_func.cpython-38.pyc delete mode 100644 custom_poling/utils/__pycache__/pmf.cpython-38.pyc delete mode 100644 custom_poling/utils/__pycache__/pmf.cpython-39.pyc delete mode 100644 custom_poling/utils/__pycache__/sellmeier.cpython-38.pyc diff --git a/.gitignore b/.gitignore index 3c826ba..36fe804 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,8 @@ __pycache__ custom-poling/__pycache__/ custom_poling/__pycache__/__init__.cpython-38.pyc custom_poling/__pycache__/__init__.cpython-39.pyc +custom_poling/core/__pycache__ +custom_poling/utils/__pycache__ .DS_Store .python-version diff --git a/custom_poling/core/__pycache__/__init__.cpython-38.pyc b/custom_poling/core/__pycache__/__init__.cpython-38.pyc deleted file mode 100644 index 4ff1defb1d9fb65e16d9588bde8405300133d30b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160 zcmWIL<>g`kg4e7I5<&E15P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HkerR!OQL%nv zQc+@Fa#dxvzDrSlK~jE&esXDXNq(+wL4HnVUOJQ)598$*rRvAWXXa&=#K-FuRNmsS R$<0qG%}KQb8UGoG835;7C=LJs diff --git a/custom_poling/core/__pycache__/crystal.cpython-38.pyc b/custom_poling/core/__pycache__/crystal.cpython-38.pyc deleted file mode 100644 index 84cf3c49f5f8e2b0ce581368b4350cc84248da3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2236 zcmZ`)JCEEp5GEz9w70vrejQ*qX$S)jPELGhC!LXp4I3Av$iay1MvcM~wR^hNV?%Q7 zTR~Ty6Qs$1@Re!v2LdF0ij-G1G@JYhB#9w{hjtoya`ll4t6|sVG}KdCjr7@D3N9Xq(RKZWt!u#W1`I zHq`(K@mz}Eklv)_<<_S=i)|6+*rH+7v74yh1ZFkr8Y7PJ#n{qQ`vjs5aijbexbT}; z&t$Gl*rtbE#TnPpAzYV@W_hHOB4^uAzTWd0SCAu1SutXhHgCqsi#T6|FDmj;GM-6} znmfHE{vXQm+vB~az_!ywX$HoVT>JM~oW@z4YlRZCl7U0nLCik9#~^3#+*{g5piDw8 zC7-kHW&oX0T5zrWi)*y6T}K`~&%7>YZzwLU0|2&KNUYtr_S!S0!Qm!2-go2>28mIW z*MJ25Hpn4VG6R@~T!yu}9~Iejrej=VAW#S{(!;1jIfb2-Eqbu)H`ry?DqH>m{3YBc2q3k;Z&JLbW$BE!OMm={X@CE^V7_>Eeg~co zzl*Lcw836^!O;qjZ`4n`NmbItg6gZ>qL}{Vox-*pkU9fUky!5*lPzXACnDJwI z3yuzqQpi=XF-nd@V>57%Lw=m7z@3}%O`r^>X`vTCm|ZZUJ^(@hCtL6h%-5qms1@Co z$FU2aL(8oNj#iEM)Hv0508x9shxI4tSsaFSFATFn%u?hBVffvQr|pUt!WE)0lvm(v zxrGF;v2s}~h!UYKu{e76>aP0&P*q%+QD2hIfuu*?fkm?Y4eEB@js#PCg2fkVEqr%l|Zuq diff --git a/custom_poling/core/__pycache__/crystal.cpython-39.pyc b/custom_poling/core/__pycache__/crystal.cpython-39.pyc deleted file mode 100644 index 3a6cc267ccb5af6f32e2d64a9a2668c4f42fd728..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3081 zcmd^B&5ztP6pxckW_D)wt6eB<0R?Db)3Uq$kT_IOTD4jPh*d?)WrP&Gv1c|r`Iy?C zc4w4c*dlT1|FCtV|ahDmUPjAAsO`=#I%q$6^b5DAKW6jX95vPK_bxuaUQ>2g(;_y>oMXDR+v^$jxMsJFt?Z$B(@*;`zdC zs69KkC6BtIjuh`_xsV%l8^#L8qyENikq)-gy^Xu~hn$ZARRB1} zr8}SlE;fRpRB5~hcngzWS@Ww}D)>f)!NDkR_C4$>;jwDE>Ffs2=#p`1Rc4n#Rq)4QA(Bcj+asX z?JOqY_w?T-?sJZl(E%DOC0J(Go7c-Zg+}N+1mCm7B7DS26e}nYJ%v~XEpG*BJQynO z!{O(GK_b$OCT{i$8K11SdaBpG&6jik5Aan5(@kX^*s#mBLtr>FpIBtN1-Xqaz-wrO zQ+mp)K545}Z3hkJ91`qxFvsep);u(bky)(KH^sN$-@@bf3HEAd<~~vLVE+L;7BaK+ zSVRxC#9Eno%GigV8DVYc^%L~cZ5a{2gT9RY*gT+efvy88??fr=Ivz6rS4=_x5cL%{ zXPH+3eFD$iqT3SkX)U7LJQ|y8Yq>2rjdDATX>Z&-_w{WaDeCsmbu1Y0-q9MM<|)Y= zB83wRi27{#E`0z8n5HfVGF)>vx4aXOpd*#r16WG|1}^mFrf3iL@$6#>rv&7gT^6 z#v@0O0~4T2P8&UvkuJddQ9U!6(YM5A2E@ypebP5TcNob`Oq`FL46Zw+Uf1atEQco0 z!9H+UK@j_(&MZw88wdyYnx3|2aK8bPe6Q?XARlXJiZwGEDAoe|k1#?zvrE5uO|b0FwV@!0OIj=kPhUHxli6B={h&zrsFj|mQQKmy(BgXe6V0$_a9DFS!9iVNkM+pYD0~PI{*wo4PYwC2|1$` zt*nZjGrZ+vazXcomUh%+982wUp5#f%`Owz3iqiw#6Gav#Ie(Fe@@cS~PqO`3@|vi$ zHT~p*>JH~o8Y;#41^N5yohK@mYA4*6VIED74|jHDG2SnZb|Pc#$KxVR@=>$n?XHk< zONwfLZjXj({VVc5&pUyNg21{)&rut1rwn*d_G;K1Nd$M)}`wJtIgcArtdCB${Ug* z6Hh1!2D%AT1=smBAdq`gCKoNHV!F%qw? zBj17TZ2*PJ2pBuvdb^Pzb?>`J5o&A);+PD^#v6b%scdY-bgt}kr%vbvOMBzAC|m#4 zraJYDIyuk6Bgpcn#S87J@W+^kN_P&DBVH!ap?cH$_dw|#fHoCxEZRP=XCWQ&(a<-> z@>PgYQ`VsLo%%B-*vuAegn?|5a^_%ajwqz1RWiWs6MBMa`}+(7-KjibZ;&nI1$>J@ zy7`q~SxCJ}W*tcLZt0!@S4}&&;NRWZQp;a0Rh9ysJyiX0EdjOF&boLg)5knKB>>5Db zt7r*M89;X$z_Xu0&-j@PNCgzALRWjBozqR2MZ=F=H=)8~Z9t*N0CVH@XD#8Un)>=z z2;+6YwKYyOi;u?87_8}CfO{8IZoqX4Rc!KGSW zV=C0zfA07poHaG7XKIuS)oGn>QrryyyA9YKSg+IR`~TywA+0O94b|XLyXjz)&ciI` zTz5Io3Nc9$?{WTo5~lTuX`J#V+KE+1V)Dv+FzJ5NtD`tgIj`?y%C0F^cqxhH32TkQ zxA3iH=5O}wWoGEZu6DrN(3;I_tYu+|nV%;6(5?~FZnLs+S_U^F)AO4yza2rB-)`Ew r#E=X&78xdGlB#X2s#q?J#yJy>oyPC}{rcVyu;(c(FFx&AJ%E1!tG#7- diff --git a/custom_poling/core/__pycache__/custom_crystal.cpython-39.pyc b/custom_poling/core/__pycache__/custom_crystal.cpython-39.pyc deleted file mode 100644 index 1e5681a0901d08269a5d4a539c73bf9d6d2404e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2593 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 diff --git a/custom_poling/utils/__pycache__/__init__.cpython-38.pyc b/custom_poling/utils/__pycache__/__init__.cpython-38.pyc deleted file mode 100644 index 4b5d62c1009874d8d52f25b56a4467e6983e5254..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmWIL<>g`kg4e7I5<&E15P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HUerR!OQL%nv zQc+@Fa#dxvzDrSlK~jE&esXDXNq(+wL4HnVUOJQ)59O7XWabp>$H!;pWtPOp>lIYq T;;_lhPbtkwwF8;|8HgDG7t$z~ diff --git a/custom_poling/utils/__pycache__/func_to_matrix.cpython-38.pyc b/custom_poling/utils/__pycache__/func_to_matrix.cpython-38.pyc deleted file mode 100644 index ef8df1e59f382450d70212559cb18a2c743c79fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 383 zcmY*Tze>YE7{ANq(x7bz=}QFEU>89|EOwMGrAt7i+GBo+08-`|7pyVYoPfM7o8D|-jswc+m=5Uv4g2*eS`FUUjOSR#jn1gf7IfUy8K z0CfQrp_*tsM|a1y37%>L{G_%t)kvG#dNv|_4*h1LiKd+=8(S0Dj2Can8F+^YO9RgQ z`!WkXn#8I&>t)*DS!2e$f;{u3c=XyZl^D);^mXg5)LJT+1(Idq)AqrgOOXena>G&; zB0b4P5@*pq`TJBBaiZMzoL>k(Wrd8Z(|p^E|5xo9H3mZ1#CC@xJj9Yhvv7L-{Y&pm Scx&v-RPZucU$q-P0q7gac2~gw diff --git a/custom_poling/utils/__pycache__/mat_func.cpython-38.pyc b/custom_poling/utils/__pycache__/mat_func.cpython-38.pyc deleted file mode 100644 index 577ac66c4dfbb078255b5a6f3c133f7b569296a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399 zcmYjLO-sW-5Z%otZLuE*=?~~Npay#pM8slmLNBG4poDF9Ex{z4>~63vo0I+-|BC*D zT>S~&JUK}!I`H1S_XcKWH5?uxsQ&vM{eb>ioBw5jxdEsF5JL>VA|EkpiChvAh<>XJ zq64@Es7s&?Dv7~!^l(zzpdDj@9+w^C7-VeId9gP50`h!ph;bTC@}42E886 zt+&hz&i9;6l%|@iNk%g+y|7SPB&V5(qjYm{!NCS^vSC*Bt`fnDm|xc$z5wV4*@s;% diff --git a/custom_poling/utils/__pycache__/pmf.cpython-38.pyc b/custom_poling/utils/__pycache__/pmf.cpython-38.pyc deleted file mode 100644 index 6d8cbd237f50f64dab5a1912bae552cb1dc532cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 653 zcmYjPPiqu06n{x(%Brmhj?|(@5%!>ip37RH2TzM2y)4L*oy;y{Gs&3D;O;UDLJRg| zw8wr5zelc~7B2;Fo_ue1D}CYplHYrIfAZ&KZ|^>!{Ejc>M+WeV$X($`j!=Dqpg=JV zBc`|#=P=@meS&_pMh^@#LDN=taPFa!&3{1n0aKMpV&09Kab*U>{b|*XM17)#71BE!_&Osn}ywe}te|4PRIS3d3r+#6~Y5 zffg-S==smlcEz3|USI_6q?l(w#~H3E=>qkR+`PLreBW4ae)dJ+rV6|&g2?App9j8t zgZlQG1$KH3f8VDkK6gHq6DLi!T%4xI&Q=pUPqW6?wtQ7tU6|RHjkm0+3+>aYoW8CW zp?9cdIZ<*DVbwoWdHIA~huUUR`vERCeur-dYXa;e#(J|n2%Ve$PS{npl!Y08lUn2;@N&YVPQZIC@X_fPgN$d)e;muw53hN9+ab j?074&Y07HhXh&z-gm*bQpd5Iz(yB)11M1n+jraIJxcH5I diff --git a/custom_poling/utils/__pycache__/pmf.cpython-39.pyc b/custom_poling/utils/__pycache__/pmf.cpython-39.pyc deleted file mode 100644 index 4a9c21e7d48a5700b08720c5c77ccad127704c64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 675 zcmYjPPiqrF6o0dSO4L>ax5T1{9z@7N7d@BQLl1%wgd##f!enO>*3RxsXLd0O8z{73 zKZZH>Q}{jR>M6H^H&4E|Nu_UjznS0rH*fY0-`jf#DBaaZ{)qwnCURc_B*&;OK@cFA zf*})u2(Mrm2zCm+XpJ5iWFakE*}=7gN;dZa;Rj5Zz`U!@G8Ex5s-R*GyTtDVzP?(< zP1LX^K7b}{pj{C~)P)1M3=-(VGCF_JM0i>}$f%_|p*1QXcOZnLHGF!~g(i5xASkKba^IFP<6o; zDt)MA+1v5ELKi$QN8h-z>2i`!Ys;%#m-YcB4j*IXkuK$E6XHYUKFr0;(!;Sd zW&4PLM$pc?eNb$dMeGTC$yz)9tGKKSGq)7cnl|ZejTWc|-mK7~R&qOw0p*cm9U z#2qMc%ST+Xa|pd>yoX^z{8l&`#|XQPlwzy`ictIxMnVaSbZh6S)_IzxCh^g0DWrP{ zYQcU*YT*VXv<#WG9GSNQSAipIrOWE3yyT0k5xQa!`gol zFx~$@sJ@h0k=0W6k93*D+73{eyNA9B(AiL!q2-!SNRAbukG-e*@}q0BL5{0LJ@O8g z`Dp>R`$gEw;+bx~Z)1pS#F!$^Qz_lLlzFKdP5OqES52(vH)fM6bhTcI3K|-4w`fuV d*4d$Oe$nLB#84OA(MPd3sd=>lE!cJm_zO07ntA{L From eeda25a60333554acccda1f7ba18d37309be96c7 Mon Sep 17 00:00:00 2001 From: Aggie Branczyk Date: Tue, 2 Jan 2024 08:42:49 -0500 Subject: [PATCH 5/7] added coverage files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 36fe804..b337919 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ custom_poling/core/__pycache__ custom_poling/utils/__pycache__ .DS_Store .python-version +.coverage # Distribution / packaging pyproject.toml From 5c81e73caf57a58011211f50f65535a7c9605041 Mon Sep 17 00:00:00 2001 From: Aggie Branczyk Date: Tue, 2 Jan 2024 08:45:03 -0500 Subject: [PATCH 6/7] added first unit tests --- tests/__init__.py | 0 tests/test_crystal.py | 69 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 tests/__init__.py create mode 100644 tests/test_crystal.py diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_crystal.py b/tests/test_crystal.py new file mode 100644 index 0000000..79f41ae --- /dev/null +++ b/tests/test_crystal.py @@ -0,0 +1,69 @@ +import numpy as np +import os +import pytest + +from custom_poling.core.custom_crystal import Crystal + +def test_crystal_attributes() -> None: + domain_width = 1 + number_domains = 10 + z0 = 0 + crystal = Crystal(domain_width, number_domains, z0) + assert crystal.domain_width == domain_width + assert crystal.number_domains == number_domains + assert crystal.z0 == z0 + assert crystal.length == domain_width * number_domains + assert np.array_equal(crystal.domain_walls, np.arange(z0, z0 + (number_domains + 1) * domain_width, domain_width)) + assert np.array_equal(crystal.domain_middles, (crystal.domain_walls + domain_width/2)[0:-1]) + +def test_crystal_compute_pmf_array_length() -> None: + domain_width = 1 + number_domains = 10 + z0 = 0 + crystal = Crystal(domain_width, number_domains, z0) + domain_configuration = [1, -1, 1, -1, 1, -1, 1, -1, 1, -1] + k_array = np.linspace(-1, 1, 100) + crystal_pmf = crystal.compute_pmf(domain_configuration, k_array) + assert len(crystal_pmf) == len(k_array) + +def test_crystal_compute_pmf_array_values() -> None: + domain_width = 1 + number_domains = 10 + z0 = 0 + crystal = Crystal(domain_width, number_domains, z0) + domain_configuration = [1, -1, 1, -1, 1, -1, 1, -1, 1, -1] + k_array = np.linspace(-1, 1, 6) + crystal_pmf = crystal.compute_pmf(domain_configuration, k_array) + expected_crystal_pmf=np.array([1.00468936-0.29720009j, 0.02053462-0.14405557j, + 0.71044314+0.4561703j , 0.71044314-0.4561703j , + 0.02053462+0.14405557j, 1.00468936+0.29720009j]) + assert np.allclose(crystal_pmf,expected_crystal_pmf,rtol=1e-07) + +def test_crystal_compute_pmf_invalid_karray() -> None: + with pytest.raises(ValueError): + domain_width = 1 + number_domains = 10 + z0 = 0 + crystal = Crystal(domain_width, number_domains, z0) + domain_configuration = [1, -1, 1, -1, 1, -1, 1, -1, 1, -1] + k_array = np.linspace(-1, 1, 5) + crystal.compute_pmf(domain_configuration, k_array) + +def test_crystal_plot_domains_and_save() -> None: + domain_width = 1 + number_domains = 10 + z0 = 0 + crystal = Crystal(domain_width, number_domains, z0) + domain_configuration = [1, -1, 1, -1, 1, -1, 1, -1, 1, -1] + crystal.plot_domains(domain_configuration, n_max=5, show=False, save_as='test_crystal.png', fix_ticks=True) + assert os.path.isfile('test_crystal.png') + os.remove('test_crystal.png') + +# def test_crystal_plot_domains_and_show() -> None: +# domain_width = 1 +# number_domains = 10 +# z0 = 0 +# crystal = Crystal(domain_width, number_domains, z0) +# domain_configuration = [1, -1, 1, -1, 1, -1, 1, -1, 1, -1] +# crystal.plot_domains(domain_configuration, n_max=5, show=True, save_as='test_crystal.png', fix_ticks=True) +# # TBD From 80fa5e5fa4b1e2fb6b5694253e51c9828c3cadf0 Mon Sep 17 00:00:00 2001 From: Aggie Branczyk Date: Tue, 2 Jan 2024 08:55:28 -0500 Subject: [PATCH 7/7] update docstring --- custom_poling/core/crystal.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom_poling/core/crystal.py b/custom_poling/core/crystal.py index 04cc697..eb9413a 100644 --- a/custom_poling/core/crystal.py +++ b/custom_poling/core/crystal.py @@ -34,13 +34,13 @@ def compute_pmf(self, domain_configuration, k_array): Args: domain_configuration (list of int): elements of list must be +1 or -1 - k_array (array of floats) + k_array (array of floats): k values for which to compute the PMF Returns: PMF as an array of floats """ self.domain_configuration = domain_configuration - self.k_array = k_array + self.k_array = k_array crystal_pmf = pmf(self.domain_walls, self.domain_configuration, self.k_array) return crystal_pmf