From 2115ac254b4de39180c287e1e67335578417aeb8 Mon Sep 17 00:00:00 2001 From: Sean Kavanagh Date: Mon, 20 May 2024 13:51:20 +0100 Subject: [PATCH 1/8] Plotting robustness; allow unrecognised distortion names (in case user renames), and add tests --- shakenbreak/plotting.py | 33 +-- ...ot_defect_with_unrecognised_distortion.png | Bin 0 -> 346844 bytes .../Va_O1_1/Bond_Distortion_-10.0%/CONTCAR | 167 +++++++++++++++ .../Va_O1_1/Bond_Distortion_-20.0%/CONTCAR | 167 +++++++++++++++ .../Va_O1_1/Bond_Distortion_-30.0%/CONTCAR | 167 +++++++++++++++ .../Va_O1_1/Bond_Distortion_-40.0%/CONTCAR | 167 +++++++++++++++ .../Va_O1_1/Bond_Distortion_-50.0%/CONTCAR | 167 +++++++++++++++ .../Va_O1_1/Bond_Distortion_-60.0%/CONTCAR | 167 +++++++++++++++ .../vasp/Va_O1_1/Bond_Distortion_0.0%/CONTCAR | 167 +++++++++++++++ .../Va_O1_1/Bond_Distortion_10.0%/CONTCAR | 167 +++++++++++++++ .../Va_O1_1/Bond_Distortion_20.0%/CONTCAR | 167 +++++++++++++++ .../Va_O1_1/Bond_Distortion_30.0%/CONTCAR | 167 +++++++++++++++ .../Va_O1_1/Bond_Distortion_40.0%/CONTCAR | 167 +++++++++++++++ .../Va_O1_1/Bond_Distortion_50.0%/CONTCAR | 167 +++++++++++++++ .../Va_O1_1/Bond_Distortion_60.0%/CONTCAR | 167 +++++++++++++++ .../data/vasp/Va_O1_1/Rattled_from_+2/CONTCAR | 167 +++++++++++++++ tests/data/vasp/Va_O1_1/Unperturbed/CONTCAR | 167 +++++++++++++++ tests/data/vasp/Va_O1_1/Va_O1_1.yaml | 17 ++ tests/test_plotting.py | 192 ++++++++---------- 19 files changed, 2624 insertions(+), 123 deletions(-) create mode 100644 tests/data/remote_baseline_plots/Va_O1_1_plot_defect_with_unrecognised_distortion.png create mode 100644 tests/data/vasp/Va_O1_1/Bond_Distortion_-10.0%/CONTCAR create mode 100644 tests/data/vasp/Va_O1_1/Bond_Distortion_-20.0%/CONTCAR create mode 100644 tests/data/vasp/Va_O1_1/Bond_Distortion_-30.0%/CONTCAR create mode 100644 tests/data/vasp/Va_O1_1/Bond_Distortion_-40.0%/CONTCAR create mode 100644 tests/data/vasp/Va_O1_1/Bond_Distortion_-50.0%/CONTCAR create mode 100644 tests/data/vasp/Va_O1_1/Bond_Distortion_-60.0%/CONTCAR create mode 100644 tests/data/vasp/Va_O1_1/Bond_Distortion_0.0%/CONTCAR create mode 100644 tests/data/vasp/Va_O1_1/Bond_Distortion_10.0%/CONTCAR create mode 100644 tests/data/vasp/Va_O1_1/Bond_Distortion_20.0%/CONTCAR create mode 100644 tests/data/vasp/Va_O1_1/Bond_Distortion_30.0%/CONTCAR create mode 100644 tests/data/vasp/Va_O1_1/Bond_Distortion_40.0%/CONTCAR create mode 100644 tests/data/vasp/Va_O1_1/Bond_Distortion_50.0%/CONTCAR create mode 100644 tests/data/vasp/Va_O1_1/Bond_Distortion_60.0%/CONTCAR create mode 100644 tests/data/vasp/Va_O1_1/Rattled_from_+2/CONTCAR create mode 100644 tests/data/vasp/Va_O1_1/Unperturbed/CONTCAR create mode 100644 tests/data/vasp/Va_O1_1/Va_O1_1.yaml diff --git a/shakenbreak/plotting.py b/shakenbreak/plotting.py index 8226a27..14775f0 100644 --- a/shakenbreak/plotting.py +++ b/shakenbreak/plotting.py @@ -213,7 +213,7 @@ def _purge_data_dicts( """ Purges dictionaries of displacements and energies so that they are consistent (i.e. contain data for same distortions). - To achieve this, it removes any data point from disp_dict if its energy is not + To achieve this, it removes any data point from ``disp_dict`` if its energy is not in the energy dict (this may be due to relaxation not converged). Args: @@ -334,8 +334,8 @@ def _get_displacement_dict( disp_dict, energies_dict = _purge_data_dicts( disp_dict=disp_dict, energies_dict=energies_dict, - ) # make disp and energies dict consistent by removing any data point - # if its energy is not in the energy dict and viceversa + ) # make disp and energies dict consistent by removing any data point from disp_dict + # if its energy is not in the energy dict (this may be due to relaxation not converged etc) else: warnings.warn( "Structure comparison algorithm struggled matching lattices. " @@ -389,7 +389,7 @@ def _format_datapoints_from_other_chargestates( keys.append(float(entry.split("%")[0]) / 100) elif isinstance(entry, str) and ("Rattled_from_" in entry or "Dimer_from_" in entry): keys.append(0.0) # Rattled and Dimer will be plotted at x = 0.0 - elif entry == "Rattled" or entry == "Dimer": # add 0.0 for Rattled + elif entry in ["Rattled", "Dimer"]: # add 0.0 for Rattled # (to avoid problems when sorting distortions) keys.append(0.0) else: @@ -398,7 +398,7 @@ def _format_datapoints_from_other_chargestates( if disp_dict: # Sort displacements in same order as distortions and energies, # for proper color mapping - sorted_disp = [disp_dict[k] for k in energies_dict["distortions"] if k in disp_dict] + sorted_disp = [disp_dict.get(k, None) for k in energies_dict["distortions"]] # Save the values of the displacements from *other charge states* # As the displacements will be re-sorted -> we'll need to # find the index of t @@ -720,6 +720,17 @@ def _format_colorbar( return cbar +def _parse_other_charge_state_label(distortion_key: str) -> tuple: + try: + other_charge_state = int(distortion_key.split("_")[-1]) + label = f"From {'+' if other_charge_state > 0 else ''}{other_charge_state} charge state" + except ValueError: + other_charge_state = distortion_key.split("_")[-1] + label = f"From {other_charge_state}" + + return label + + # Main plotting functions: def plot_all_defects( defect_charges_dict: dict, @@ -1364,7 +1375,6 @@ def plot_colorbar( ] ) for i, j in zip(imported_indices.keys(), range(other_charges)): - other_charge_state = int(list(energies_dict["distortions"].keys())[i].split("_")[-1]) sorted_i = imported_indices[i] # index for the sorted dicts ax.scatter( # plot any datapoints where disp could not be determined as black np.array(keys)[i], @@ -1382,8 +1392,9 @@ def plot_colorbar( cmap=(colormap if isinstance(sorted_disp[sorted_i], float) else None), norm=norm if isinstance(sorted_disp[sorted_i], float) else None, alpha=1, - label=f"From {'+' if other_charge_state > 0 else ''}{other_charge_state} " - f"charge state", + label=_parse_other_charge_state_label( + list(energies_dict["distortions"].keys())[i] + ), ) # Plot reference energy @@ -1668,7 +1679,7 @@ def plot_datasets( ) if len(sorted_distortions) > 0 and [ - key for key in dataset["distortions"] if (key != "Rattled" and key != "Dimer") + key for key in dataset["distortions"] if key not in ["Rattled", "Dimer"] ]: # more than just Rattled if imported_indices: # Exclude datapoints from other charge states non_imported_sorted_indices = [ @@ -1697,7 +1708,6 @@ def plot_datasets( ] # number of other charge states whose distortions have been imported ) for i, j in zip(imported_indices, range(other_charges)): - other_charge_state = int(list(dataset["distortions"].keys())[i].split("_")[-1]) ax.scatter( # distortions from other charge states np.array(keys)[i], list(dataset["distortions"].values())[i], @@ -1712,8 +1722,7 @@ def plot_datasets( j ], # different markers for different charge states alpha=1, - label=f"From {'+' if other_charge_state > 0 else ''}{other_charge_state} " - f"charge state", + label=_parse_other_charge_state_label(list(dataset["distortions"].keys())[i]), ) datasets[0]["Unperturbed"] = 0.0 # unperturbed energy of first dataset (our reference energy) diff --git a/tests/data/remote_baseline_plots/Va_O1_1_plot_defect_with_unrecognised_distortion.png b/tests/data/remote_baseline_plots/Va_O1_1_plot_defect_with_unrecognised_distortion.png new file mode 100644 index 0000000000000000000000000000000000000000..5b041534c0ae88b76c065d09e15802c55a26d953 GIT binary patch literal 346844 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 jnQ_mdQ(y27HTnpvG} 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
BCf!kl3_kgHXY3pq8ocOZC-l!F-=kX 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

z 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�KZ9rz#`P);+hN++a3oHpB!!s3G9NR3*$2L zS+5N88w;fcOEa;-(Z&;|XH{BZAviEC&9u#&zxONDZ!PA7_rfe7x!XJCCy=qor z-vW=;3+HbyoTxufmr+4!}%+JPC6+ z)8w+`x?Y*1!3Kv+P62k!Bc+mHTYEVONnQNDg|7mLUP@0tr{CR3(+7L z?10f`Omn`=p+j^uKJkF&A!pP203G5dro8f)yY^pzs1Ug_BR6EQOGdf z&B!j+C?q|NAx${g!8y|Z$Yc;PHE4`pcL0DIQF5?b+#nBtk*D=~t5Bt?%)U{qY{=j& z9d{qnetM5z=0jTN1HJK*HKu1C-8+@1cP_uP^MRZVVU@XU&utkYiu;zTuFGPm>k3jp z!7r>nI}PfrmMndO{}fic2Yx;KZrk>UuqX3o{NzZ|$%EF(c?-j!^Hp|$rS7dU+#{); zaI_ME?s@pP5GU(W;%-k^CnP^Sk9Fy?3vcUuUIF1H>%f@uzSw&CM8C^5vEBvFor|{l z1K5Q2bh0jSE~K%JA)%)`tj|rdd-pELdAQZ?85RD2-R1l2-|)UYSNmyImh=z#DUiuc z&kg6SnEueAfd>t63|RUx2hI6fshVEgH zKgrK*E%D2$X)r4Ian=qJN zzgZA6T}PRd=!8VR3(y}R^Vu05a!>N$r<282$g;CEW*lHgsnjZB!Fi=W`m1}TxLuVr zlxVSueirNeo{)P*QE5vt)Y``(?P~p6iuxLCQ8+*XdG=NlQOT&=I$x8W9zR)dLsg`G zV-E#5#)?H)oUuxch?5VjdSbNcRU^cI+4dkniI2ozyjo#qdM|a|T#AKv_FLxAV>yYJQ+xfl)x-;39FUrmfH_Ov2JjsL0qYET0rTzXB`G#AAhS zY7w^-yOr3TXTOR_kpiy^T)#CbtmMKQ?G59Wa19=~8Sh@76g`I|YmSQSndw5NABpFF z1Nm50Yn7L@v|j>>@w&{3@ka#{B{X;Gk9jTOEso9FH9s=ms}7Zew8tZj1JDj)Nt@;{ zY$)^^)f-ZVt$u*EFK!|tS^(7_MYBq4RX@5#mwiBR(iIk0O{>q^Nn4%_zR|}3}ysk)E94IjT_A&%{IToH+GkmG5_Y{8)DVRWp2)ab_@Ci z1GQECrG1L?Ft}8ZYQ1yPCc!npoO4!1Z??6{MQ7n>#;Qr-aK0crW`1{_GN_EWruQ=P z(;nebk22mXNaB{+$I6{0te%MQ+6i!65=4fvq&&`2-nM}*bgzpoCPiFwi?cwqvmr9i zc(C){sWlz8rJwa$kIk5rZKQgv&^P)Xo{VS0FGdoNQ65{kA&Yq78$v4`1fKnZFrdX& zj%k>~F)w43?q+*~ipqW0n|Cnc77Ezo3qqicU}Nv`a}eeRn@@^bN5otV)6HAE z80JQ&P)NT0QD>KK6z&z4s|sHS`g#&3!L}>z01rf1P#Bo$k#%Wr%|(##*i$`Z?wEPL z9(iz_)Z{^(G~Nrm%?r?{k^Y@arVy4f6`t7qJiF2RKPHk(azR%Kk;1WKGGV#XJn}fO zzjg)qfqA|mbe0N0PJBRUdhc)tk(3)-s znm4WL58Twfx(eh9AR)cyBESth{tjs)QRvHeylO0=E8Coi#?e873oDhoOVraVcNc%A&Hj>jt|}({cVWXFkX|OXvh>6|(+K6?hg&xT*%1d%ao_=10D06w zdsNzJ=DzUk3B6D$p@axU$Cz&mjJ@mbsDtp9@53!C!Xuv5yZT+Yhc1cGP~5ts-LHpJ zcR7LmhpsvI?QG%jP-EBqNBGN+i+riaX|B^XKUS!}-ve<41M=ihV^2rbLHwnGPcX;! zhtLlt#0k0^LeCMKnkHw9XgbvU_Pn;iCV_s7FV38RG}WIR9hJsAvrBrmBy_Pz2vWwM z5-QO|?q+M16|=kqBm({_1q!qzByqeBmz3%RB+Zoz7m$Y2&O%&2hUWk^(cd~xG$s+F; z>d(5%DzyTJi$Y?7=T%`@B(Hw-tMJ4Pa#1L;KWdA%*Z9xoT_?TakL|>{q01e`ONQHy zXX$ouoGV#`|2#JI88wVM)sxc9ioa?So4#(%FEPP9{oX08Zmx}=R*?5&fF;&AIJ4z@ zRg_O3vH#lreH&&0M5ttYvpRYPoCpK_R)&dCgFm-fu!>HdfMkQ_U^tp6eVGN4HQ2JRWqi z%J%8(qy!ye>Kp&7j{FV;0pspRK^G_+yYw-6jVVcpP2=#*D42K_=x!wl~r%;vs;ui_)1m~iOlKl+sl%$*MX*je5nzkSC zsWtXXZjQt2RNrInWyfJ%0da!yB|>Y-vY4PRDseL2Rz*7bg#N*jD{gkh`jUo|*UP?& zP>f1>MdvZzGYh?V*Mh6TX%lpF&b`-0<<8S9+eHSb_lOQy1zO7;Yqo+UsYv&INpf#y|P&@$*iAhG{gG5M5n^Yl|gsQ*s@?}>g}4Hbns=^-Qy z*OLbq1?|k~1GQPjcICa}^%Lk25sRrqDPy0er z(%%}>a6uvTr;{BaS4ly$DW6T>LDEfizTDy^$V?G>T54?ImT2`!`wV-L#SiR?u3hRp zNi1DtWRU*UK3v3A&-E|XABb*4Z^E=e$T>gz z5@v*z zet?QIYdRl91d>`M{ChR_AIH-jt)#{sURhjd5AWWTy_S30{Azzg1GzD=qh!_K(X@E3x6TEz(zqjspShHn(SxVAUFfHV2}TPxpfuZ=wy?PZt43E>FBKn z8AQp!bbyIdjBf*!^+d{b4$=b&@`2VIKL8%0%=t}E>uu%!KK6FjY4qiO&Bi6AeG2UL zY35zTU{Al!c~}>h`DNJq!{G|h1Y6QV=ar3D(_Tf-6T}mt#acygulKd|82-4b7(YQa z3!h+Rr__w*s1LN)U&)&04$KbDuwu=#EBzgc2;V+_d3ddL_5%$OnvEYNOsL~#hY*P! z2L`{u&EjeF2%X3n#G>YJ5Inud8Q+_{wh20p3;B_)I_UyQW6QHG6Sf4VZq!`TCY61Y zru;hb{LHU}Si)F!2-fA_v`dFiB13Et1ozya=h3uI!PyC`MglpoVdJt|BO+V;&U3u1 zr&3Rw_r!;&emgm_YE-=XmDOXL(Bhwp-n{6OP+%nX88;;+Bnvl7W+X1VHKWk{<8TAe zRX~rpY@Sz`?u%Dqo2V7lY5C!N#}JaXbIoPK#IvaW@d$A4{<@ZHE5Ders7-l74RTpH zwjNr3gfKJoGK3?r%9o~6QPH<;a>uQ`?BjL3Y9FAXZcW+>Z|7mb`QspU`egAJ{CN2K zB1ALZCu$?J`OOeb>Z*Ek#(6h7*<3qN5Se}^U~pN~cX?~hhVfT#nL8YcH~6XBU39=^ zZO@iyu@eS&6eWO5`anb`Cb=?i4yrnd?s{7WOE!RV{RmSBJX8 z*+`kFHzm0@9k%kDH)qx5JIJJPCCR}7@PYC=Eo z{QwkpdG~CF=TuU8ZHo1Tnr}-`wa*g4`T8s!txVaW=59imP;#;wE1#)Nkgy;=n&DYO zx|(%~c6(qgt6G6!vZQ-@vc8r&TEgkjt;*pz;96$ME61@tVWvUOgo%~GnwYcENJBlXp(DoW5R*CBnJD8P~K<5CTTpr3gHl(ds7OwgnS0OG6WDQ6 zo$8w_lWY^-)!zBoLb=k2E)(A8npocXkQ%D;n|C{lQV_=ITVcereX{*+lEv{w2hS0mSx)?Y6_u`>w8MTQ- zRQ6EREVkmb!SjIE1+4H)%WYeNWOUvM!bCT2c4elqz2~wik%;RySe4n+DCJU$Jf&_P z;f-ohxPR|DZFmro6sGX3B+P5xxxZ@70|1_a#lRcAT4>j);uWBBW7TZK9PN{D8U!U0Udz&>~d=u4R9-YRl^AXQv@bRdU)l zEtB}0rUir8z(IJf-)l}}QJ1EXY!BK*SKM#ZQORc2^F3a_J_VzeL8Jec z@{Set{*Z+zn(36^q1Ow$BtI}# z$7fv&?b|BPFOPys&zkXn*{Sunds|zvv?p!CzZB1$n_aSJ+4xN5DA6Af-};8>|NIq( z#K|w7!%T)qt9>{@P~%{b#@f5YID_*Z^DSS61r0R~MTA+dF8rXoJvnG;QF|@9)$U#6 zRK|Vgd6nT1{`C;N&s1nUSIJ)a|FT)GrRwaikUJlI z1!JN7d(^9^u~tRxkOvR#arR2=Qf$QmW2)?KSVSjVY?eFD=c&G+G_kVXcd_CR-rH(R zpi!ZUDF=~|R-1hb3@g4SZngsfF4G97Bl%o)Hgzl=FB@_h>r~#|)Y@#AGOT)jviL0R z_LXo+k#aREm4LK|(k0|tZFK#=g;WM?>b!}dYJR;U#pSvRO8nW=^{PkH;q9!aTMG5G z*esu1PTHRN#;JKLo9B=1UlS+ORbD06&aD*v>=z@$%TlK7r(W|LOc%WL2sB*lx{>Ak z7fbdEH!VN!MU9_j&{zQ~I-Zdc`_;V70lOE=ammD{E!o=(+Cbhl5CEY1YTwaU?p1DU zB!`~Nt>|A256bVH?5R9r+5@VCMd8xP4Y_rG3JjrAHzA9Ei0w1YgRSDEh+t=w z*OD0&)Zp&gjV#p@0*CwS$8>^RpUK*a(HCagVt!)55g3wv7 z{_Dg3b;mtx9<=IfiApo}O3h{0O?b2izRt2Ea$MR2pJ!zaNZ;qCpRGbi_Mtz2L*q;XvT%DjBgDXAshl9n*ztYFsYak<8@j^(7y)4!D~_4anIP~TLA zjJ35?)p+@9xu$y4KbM%iw9D~mLT!JOz?uFAngR%*ECs?q|vYTkub0KGEln%Z$&_4+K^?zloe) z+@vaXl+?^J{QLK#!5!;HcqbMjoPK{Nhsttnm=`ux7gMLVX?tc$Y`s96Fy_Cd>g;EW zH5popX(Md?s_*)6Xfp7xxEF^B!YQNW9e&FylAS&;*R13D!sJe}BAdA!qHj zAf+s)Rthr6;?@-|mEf>2_ycOa4~;`3R(M{rW21u7g^7*fT3{b z1?0xI5dR`?AwUPZ+pxiC4hPAtgbLP)wd%rF&|xcj?=ZT(+XMTu?D&*F^c)Xcd&!K{ zn-&WF*FE`iMGthfCjKvC(UnZd32;sle&q*j~$4LNNMS zd5MH_MF)K7A=MyeZLwsLnCW#$Qog;(CI}}=pzRfUmjqikm&zO2zK&7M>4WV#UIC&L z)CekS>wGAWVyY>`X@WU!ilT_F2Lt0sb$`iLA9ViksS!@)Ec&2Wmx>a0h z`=rgD!53c3Jj9mi;4}OMQ{kksG-NGgu6fM5rm-~Xfn!^mN#BI*Z%^Rfg@8m!;hzv& z0lc^tYB2#juCQ2(wAx0wU@Nv*Is`lgo2q%LO&t;$qhFwFmtQ@D(IW$Dt_uOUZUy!h zz>(MoYjf(7k!*8*B&TCOu5W=LoOo8=!9lIPzz(TWp9DPKETzdU(v?e`NKc8=kF&qq z@e3+Xe*p5!ay5D!I+JUxv9hq*aVK>&ec1EF=sr0X-$_c-J(!E8Ck0n4mwj(FU}z%Z z!{v|LKE2}kMTLpE_Q)SfY3zckQbi#_+f3)x&EOnO=0qo1{Q1wo-prN{e3g15^0nN& zYg+4g*3d`eob%l@Q@V^w?TP31p=;l>RU`ZU0-A<5M!HN3@!M2w8|jvsvT8Z6<`;@> zu_e?NlTm`ZKQ=yc(E-brUoMK( z9#A0xX@*JP<-S|QOPJ*;83sOD(MB6C)9imtNF{?meL|2no1v3M_nSocnHu0DpT$h_ z-}#O0(OsLY9t3HznsgDdx-m3Y=i*^e+cn8}rnJOrn7DW`s3W?{M$pP|^6=$uQ7gF| zAPkee% zJF3$doTjT7_!AbSz;NHjV)R;qS>c)TCpjGrE*py)+JFS?fO9t{@?g>u@d%da>ZMDV zcuKX9Uv$Js7DSuo&n<8=No$M}3s9&_5i4&fINz(71hQDj=@^bxJf}$=y)%;{J*9+t z91{4w{5CpQpPhgj#BnQ7gEkxHlGuS9&G5%J-s|2|XFj(YRx$KEK4<4wdBmlnZX$u% zQ61;gUb3p+7&v4SH%4$g8W4!3Bi3DK>j~BEXphFo*Fp#8>M+<8Sf3t*r8T0rX94=( zX^(sYDs!6Zd-n(!&~cKw+SL2ya21+G;l7%Ic`OLb!D66gWUd&EKCSTW!oDGYjg{ra z!mSVJel}P$CO3P;BbIw?B&D&Ux%b&6i>1W!U_*8xERm!I@@}V_+fm2v460NrD~8Wg z(7v=O9H^{uNMPmFl|I;w6a1Hm;$xQ7;1hV<-%y9bF54r~CODaR?(-4DiT<7)B>D8MSKJ>4*%wn0@ zdHq{~#5D4C<|a_Pa;EM*OJisc#w{Z^c?!pLOl(#TqA z3O5jywZ=sQxwz`*Qg$_3F=r36t6)4tA!cYDVmqMSXzZ zu-&akWIf$gS}DGFsv|R4ifQFsu{JQSSn==~!oa?GWq*gDdrMM#4k@lAd7tF(%^wcr~vlH+ySa@zim>?@J7?TOuUYq_#_ zWBRv@{Fzxa*5BP8+OeoT*-))a&C&9&v@1yQ3k85Ji1ElC3_%F=25nSi45r@j;nu_M z_fmYmJR1e7We^k@R1)+e?f2IzE}f;yA%RCgWHx{D(jXaD12o%AB^-V4D%Q{QFB-4M zf&oe>qR;ho3H&O6w&CVR%Reo;_YjS4=DSFzn1-8xDm_I?df!MryULf1s7dbewNehkFN^I%e%9FKTV;SuOl z4+tP28t#kqubzu}`w$_463Ns95$Fc!8LTm6W^~w%W*V;@py#s_$iADI&L?7)h*CK8 z5%)OLLMPWLB-p%2rzCP`5I03_L-u1d%9NzZ9D9uaMfdVI)$NAt2m zsVNxc(X2bn$h~HK7Fv)_GElV;*nztrhEB$F%a2MA=OFpG*)GI_Kr>6-i^GxPxxBoh zI!oV^OO^LMQw62I)=Ry%iA{nIaTCGv_%PPx{7tnW5h4S5SI3aH*Oj|SkxCwYGwD zt}=dpm%_v5-J>5ou#V*QQ62Y;vV*ROYh606F^*5@?9Q8hVb9=Z)(U^xA2Y_Ln|jgv zzJG#|-vd@lTbnHhDnl*k{0IE-dQ66<`f4tiF3&`6HnxJEtx}0FJRz7LA_!rv#hu@N zbOElp2&G93=X)EGtLwkz3&H_)8=f=@qufgqVc=k-WZ)T$u>Z<|Dki7@<^m{zi(F?->g!;TI)t}+m`R*h%u1JLZ??^3F1g{7Vy zTldrG&){IjIRkP-DtzWQSRJ}D^(-Zc9LuQixbiB3dWj)+ota%cCRdxS$)pKEa z&!HGv5PN6jdUCgws8=ExC($-K!^=yV37Mi8!pKnwUpT)JB@b4mq z`Q>k#$tx&ff;8tvxk1)bSd~G<@s3O0wgijrINw+*RYL)YLdTWQFBOtk0FW)@sK_=i ziKgL)f{m9nJp>+viIxGaIpZJkKlc1D5h&~4=eJ!$q%s@li14GoY1M?+Uq;13n=*)6v>k0 zE>Ls+_NvDIX&Rm(S20#Hpru!>;2O8d;)e@`0Cp=P*Pvz?aPBh|W1<*yU)~u|Xdb3~ z0xFxrZEddS-G}gxV za+flMN9O!u>Q&pN-zuxc6GBg6V%SPwS(fI;>B>ey&AW&F666(YEH3&~6}X47TrPE~ z6;U-M_TL$?cuJkNA#~39mdXdXW8o?XhWnAm6MW2z_h-9J=UpxiH@h_BKmANfOl
  • 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 z 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
    `>JU-D&+mCBFEFIvX$RQ9v)XJL8u6(@7 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 Date: Mon, 20 May 2024 15:24:59 +0100 Subject: [PATCH 2/8] Update test --- tests/test_energy_lowering_distortions.py | 412 ++++++---------------- 1 file changed, 116 insertions(+), 296 deletions(-) diff --git a/tests/test_energy_lowering_distortions.py b/tests/test_energy_lowering_distortions.py index 321dd88..48ef8c4 100644 --- a/tests/test_energy_lowering_distortions.py +++ b/tests/test_energy_lowering_distortions.py @@ -83,9 +83,7 @@ def setUp(self): self.orig_castep_0pt3_files = os.listdir( self.CASTEP_DATA_DIR + "/vac_1_Cd_0/Bond_Distortion_30.0%" ) - self.orig_cp2k_0pt3_files = os.listdir( - self.CP2K_DATA_DIR + "/vac_1_Cd_0/Bond_Distortion_30.0%" - ) + self.orig_cp2k_0pt3_files = os.listdir(self.CP2K_DATA_DIR + "/vac_1_Cd_0/Bond_Distortion_30.0%") self.orig_fhi_aims_0pt3_files = os.listdir( self.FHI_AIMS_DATA_DIR + "/vac_1_Cd_0/Bond_Distortion_30.0%" ) @@ -124,15 +122,9 @@ def tearDown(self): ): if_present_rm(os.path.join(data_dir, "vac_1_Cd_0", defect_dir)) - for file in os.listdir( - os.path.join(data_dir, "vac_1_Cd_0", "Bond_Distortion_30.0%") - ): + for file in os.listdir(os.path.join(data_dir, "vac_1_Cd_0", "Bond_Distortion_30.0%")): if file not in orig_files: - if_present_rm( - os.path.join( - data_dir, "vac_1_Cd_0", "Bond_Distortion_30.0%", file - ) - ) + if_present_rm(os.path.join(data_dir, "vac_1_Cd_0", "Bond_Distortion_30.0%", file)) def test__format_distortion_directory_name(self): self.assertEqual( @@ -191,7 +183,14 @@ def test_read_defects_directories(self): defect_charges_dict = {**defect_charges_dict_cdte, **defect_charges_dict_tio2} self.assertDictEqual( defect_charges_dict, - {"v_O_s1": [0], 'v_Ca_s0': [0], "vac_1_Ti": [0], "vac_1_Cd": [0], "v_Ge_s16": [0]} + { + "v_O_s1": [0], + "v_Ca_s0": [0], + "vac_1_Ti": [0], + "vac_1_Cd": [0], + "v_Ge_s16": [0], + "Va_O1": [1], + }, ) for i in self.defect_folders_list: @@ -208,8 +207,9 @@ def test_read_defects_directories(self): "vac_1_Cd": [0], "vac_1_Ti": [0], "v_O_s1": [0], - 'v_Ca_s0': [0], + "v_Ca_s0": [0], "v_Ge_s16": [0], + "Va_O1": [1], } self.assertEqual( defect_charges_dict.keys(), @@ -224,14 +224,10 @@ def test_get_energy_lowering_distortions(self): as write_retest_inputs and the internal functions called by get_energy_lowering_distortions() """ - with patch("builtins.print") as mock_print, warnings.catch_warnings( - record=True - ) as w: + with patch("builtins.print") as mock_print, warnings.catch_warnings(record=True) as w: warnings.filterwarnings("ignore", category=DeprecationWarning) - low_energy_defects_dict = ( - energy_lowering_distortions.get_energy_lowering_distortions( - self.defect_charges_dict, self.VASP_CDTE_DATA_DIR - ) + low_energy_defects_dict = energy_lowering_distortions.get_energy_lowering_distortions( + self.defect_charges_dict, self.VASP_CDTE_DATA_DIR ) mock_print.assert_any_call("\nvac_1_Cd") mock_print.assert_any_call( @@ -266,18 +262,14 @@ def test_get_energy_lowering_distortions(self): "No energy lowering distortion with energy difference greater than min_e_diff = " "0.05 eV found for Int_Cd_2 with charge +1." ) - mock_print.assert_any_call( - "\nComparing and pruning defect structures across charge states..." - ) + mock_print.assert_any_call("\nComparing and pruning defect structures across charge states...") mock_print.assert_any_call( "Problem parsing structures for vac_1_Cd_-1. This species will be skipped and will " "not be included in low_energy_defects (check relaxation folders with CONTCARs " "are present)." # check this is skipped if no data ) user_warnings = [warning for warning in w if warning.category == UserWarning] - self.assertEqual( - len(user_warnings), 2 - ) # No Int_Cd_2_+1 data and parsing not possible + self.assertEqual(len(user_warnings), 2) # No Int_Cd_2_+1 data and parsing not possible self.assertIn( "Energies could not be parsed for defect 'Int_Cd_2_+1' in " f"'{self.VASP_CDTE_DATA_DIR}'. If these directories are correct, " @@ -299,23 +291,17 @@ def test_get_energy_lowering_distortions(self): low_energy_defects_dict["vac_1_Cd"][0]["energy_diffs"], [-0.7551820700000178], ) - self.assertEqual( - low_energy_defects_dict["vac_1_Cd"][0]["bond_distortions"], [-0.55] - ) + self.assertEqual(low_energy_defects_dict["vac_1_Cd"][0]["bond_distortions"], [-0.55]) self.assertEqual( low_energy_defects_dict["vac_1_Cd"][0]["structures"], [self.V_Cd_minus_0pt55_structure], ) - self.assertEqual( - low_energy_defects_dict["vac_1_Cd"][0]["excluded_charges"], set() - ) + self.assertEqual(low_energy_defects_dict["vac_1_Cd"][0]["excluded_charges"], set()) # test verbose=False output: with patch("builtins.print") as mock_print: - low_energy_defects_dict = ( - energy_lowering_distortions.get_energy_lowering_distortions( - self.defect_charges_dict, self.VASP_CDTE_DATA_DIR, verbose=False - ) + low_energy_defects_dict = energy_lowering_distortions.get_energy_lowering_distortions( + self.defect_charges_dict, self.VASP_CDTE_DATA_DIR, verbose=False ) # same call as before, just with verbose=False mock_print.assert_not_called_with( "vac_1_Cd_0: Energy difference between minimum, found with -0.55 bond distortion, " @@ -327,14 +313,10 @@ def test_get_energy_lowering_distortions(self): ) # test min_e_diff kwarg: - with patch("builtins.print") as mock_print, warnings.catch_warnings( - record=True - ) as w: + with patch("builtins.print") as mock_print, warnings.catch_warnings(record=True) as w: warnings.filterwarnings("ignore", category=DeprecationWarning) - low_energy_defects_dict = ( - energy_lowering_distortions.get_energy_lowering_distortions( - self.defect_charges_dict, self.VASP_CDTE_DATA_DIR, min_e_diff=0.8 - ) + low_energy_defects_dict = energy_lowering_distortions.get_energy_lowering_distortions( + self.defect_charges_dict, self.VASP_CDTE_DATA_DIR, min_e_diff=0.8 ) mock_print.assert_any_call("\nvac_1_Cd") mock_print.assert_any_call( @@ -348,12 +330,8 @@ def test_get_energy_lowering_distortions(self): "with charge -1." ) mock_print.assert_any_call("\nInt_Cd_2") - user_warnings = [ - warning for warning in w if warning.category == UserWarning - ] - self.assertEqual( - len(user_warnings), 2 - ) # No Int_Cd_2_+1 data and parsing not possible + user_warnings = [warning for warning in w if warning.category == UserWarning] + self.assertEqual(len(user_warnings), 2) # No Int_Cd_2_+1 data and parsing not possible self.assertIn( "Energies could not be parsed for defect 'Int_Cd_2_+1' in " f"'{self.VASP_CDTE_DATA_DIR}'. If these directories are correct, " @@ -389,10 +367,8 @@ def test_get_energy_lowering_distortions(self): ) with patch("builtins.print") as mock_print: - low_energy_defects_dict = ( - energy_lowering_distortions.get_energy_lowering_distortions( - self.defect_charges_dict, self.VASP_CDTE_DATA_DIR - ) + low_energy_defects_dict = energy_lowering_distortions.get_energy_lowering_distortions( + self.defect_charges_dict, self.VASP_CDTE_DATA_DIR ) # same call as before mock_print.assert_not_called_with( "Problem parsing final, low-energy structure for -35.0% bond distortion of " @@ -421,19 +397,13 @@ def test_get_energy_lowering_distortions(self): low_energy_defects_dict["vac_1_Cd"][0]["energy_diffs"], [-0.7551820700000178], ) - self.assertEqual( - low_energy_defects_dict["vac_1_Cd"][0]["bond_distortions"], [-0.55] - ) + self.assertEqual(low_energy_defects_dict["vac_1_Cd"][0]["bond_distortions"], [-0.55]) self.assertEqual( low_energy_defects_dict["vac_1_Cd"][0]["structures"], [self.V_Cd_minus_0pt55_structure], ) - self.assertEqual( - low_energy_defects_dict["vac_1_Cd"][0]["excluded_charges"], {-1, -2} - ) - self.assertEqual( - low_energy_defects_dict["vac_1_Cd"][1]["charges"], [-2, 0, -1] - ) + self.assertEqual(low_energy_defects_dict["vac_1_Cd"][0]["excluded_charges"], {-1, -2}) + self.assertEqual(low_energy_defects_dict["vac_1_Cd"][1]["charges"], [-2, 0, -1]) np.testing.assert_almost_equal( low_energy_defects_dict["vac_1_Cd"][1]["energy_diffs"], [-0.2, 0.0, 0.0], @@ -452,9 +422,7 @@ def test_get_energy_lowering_distortions(self): low_energy_defects_dict["vac_1_Cd"][1]["structures"], [distorted_structure, unperturbed_structure, distorted_structure], ) - self.assertEqual( - low_energy_defects_dict["vac_1_Cd"][1]["excluded_charges"], set() - ) + self.assertEqual(low_energy_defects_dict["vac_1_Cd"][1]["excluded_charges"], set()) # test case where the _same_ non-spontaneous energy lowering distortion # was found for two different charge states @@ -467,19 +435,15 @@ def test_get_energy_lowering_distortions(self): os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/vac_1_Cd_-1.yaml"), ) with patch("builtins.print") as mock_print: - low_energy_defects_dict = ( - energy_lowering_distortions.get_energy_lowering_distortions( - self.defect_charges_dict, self.VASP_CDTE_DATA_DIR - ) + low_energy_defects_dict = energy_lowering_distortions.get_energy_lowering_distortions( + self.defect_charges_dict, self.VASP_CDTE_DATA_DIR ) # same call as before mock_print.assert_any_call( "Low-energy distorted structure for vac_1_Cd_-2 already found with charge states ['-1'], " "storing together." ) self.assertEqual(len(low_energy_defects_dict["vac_1_Cd"]), 2) - self.assertEqual( - low_energy_defects_dict["vac_1_Cd"][1]["charges"], [-1, -2, 0] - ) + self.assertEqual(low_energy_defects_dict["vac_1_Cd"][1]["charges"], [-1, -2, 0]) np.testing.assert_almost_equal( low_energy_defects_dict["vac_1_Cd"][1]["energy_diffs"], [-0.9, -0.2, 0.0], @@ -498,17 +462,13 @@ def test_get_energy_lowering_distortions(self): low_energy_defects_dict["vac_1_Cd"][1]["structures"], [distorted_structure, distorted_structure, unperturbed_structure], ) - self.assertEqual( - low_energy_defects_dict["vac_1_Cd"][1]["excluded_charges"], set() - ) + self.assertEqual(low_energy_defects_dict["vac_1_Cd"][1]["excluded_charges"], set()) # all print messages and potential structure matching outcomes in # `get_energy_lowering_distortions` have now been tested in the above code # test min_dist kwarg: - low_energy_defects_dict = ( - energy_lowering_distortions.get_energy_lowering_distortions( - self.defect_charges_dict, self.VASP_CDTE_DATA_DIR, min_dist=0.01 - ) + low_energy_defects_dict = energy_lowering_distortions.get_energy_lowering_distortions( + self.defect_charges_dict, self.VASP_CDTE_DATA_DIR, min_dist=0.01 ) # same call as before, but with min_dist self.assertEqual(len(low_energy_defects_dict["vac_1_Cd"]), 2) self.assertEqual( @@ -532,17 +492,13 @@ def test_get_energy_lowering_distortions(self): low_energy_defects_dict["vac_1_Cd"][1]["structures"], [distorted_structure, distorted_structure, zero_rattled_structure], ) - self.assertEqual( - low_energy_defects_dict["vac_1_Cd"][1]["excluded_charges"], set() - ) + self.assertEqual(low_energy_defects_dict["vac_1_Cd"][1]["excluded_charges"], set()) # test stol kwarg: with warnings.catch_warnings(record=True) as w: warnings.filterwarnings("ignore", category=DeprecationWarning) - low_energy_defects_dict = ( - energy_lowering_distortions.get_energy_lowering_distortions( - self.defect_charges_dict, self.VASP_CDTE_DATA_DIR, stol=0.01 - ) + low_energy_defects_dict = energy_lowering_distortions.get_energy_lowering_distortions( + self.defect_charges_dict, self.VASP_CDTE_DATA_DIR, stol=0.01 ) # same call as before, but with stol # no data parsed from Int_Cd_2_+1 (1) for warning in w: @@ -550,43 +506,33 @@ def test_get_energy_lowering_distortions(self): # test no defects specified and write_input_files = True for fake_distortion_dir in ["Bond_Distortion_-7.5%", "Unperturbed"]: - if not os.path.exists( - f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_-1/{fake_distortion_dir}" - ): + if not os.path.exists(f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_-1/{fake_distortion_dir}"): os.mkdir(f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_-1/{fake_distortion_dir}") shutil.copyfile( f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_0/Bond_Distortion_-20.0%/CONTCAR", f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_-1/{fake_distortion_dir}/CONTCAR", ) for fake_distortion_dir in ["Bond_Distortion_-35.0%", "Unperturbed"]: - if not os.path.exists( - f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_-2/{fake_distortion_dir}" - ): + if not os.path.exists(f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_-2/{fake_distortion_dir}"): os.mkdir(f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_-2/{fake_distortion_dir}") shutil.copyfile( f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_0/Bond_Distortion_-20.0%/CONTCAR", f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_-2/{fake_distortion_dir}/CONTCAR", ) - low_energy_defects_dict = ( - energy_lowering_distortions.get_energy_lowering_distortions( - output_path=self.VASP_CDTE_DATA_DIR, - write_input_files=True, - ) + low_energy_defects_dict = energy_lowering_distortions.get_energy_lowering_distortions( + output_path=self.VASP_CDTE_DATA_DIR, + write_input_files=True, ) self.assertTrue( - os.path.exists( - f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_-1/Bond_Distortion_-55.0%_from_0/POSCAR" - ) + os.path.exists(f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_-1/Bond_Distortion_-55.0%_from_0/POSCAR") ) def test_get_energy_lowering_distortions_no_energies_file(self): """Test that `io.parse_energies()` is called fine if no energies file present""" defect = "v_Ti_0" warnings.filterwarnings("ignore", category=DeprecationWarning) - low_energy_defects_dict = ( - energy_lowering_distortions.get_energy_lowering_distortions( - {"v_Ti": [0]}, self.EXAMPLE_RESULTS - ) + low_energy_defects_dict = energy_lowering_distortions.get_energy_lowering_distortions( + {"v_Ti": [0]}, self.EXAMPLE_RESULTS ) self.assertEqual(len(low_energy_defects_dict["v_Ti"]), 1) energies = loadfn(f"{self.EXAMPLE_RESULTS}/{defect}/{defect}.yaml") @@ -614,14 +560,10 @@ def test_get_energy_lowering_distortions_rattle_too_large(self): failing_V_Cd_1_dict, os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/vac_1_Cd_-1.yaml"), ) - with patch("builtins.print") as mock_print, warnings.catch_warnings( - record=True - ) as w: + with patch("builtins.print") as mock_print, warnings.catch_warnings(record=True) as w: warnings.filterwarnings("ignore", category=DeprecationWarning) - low_energy_defects_dict = ( - energy_lowering_distortions.get_energy_lowering_distortions( - self.defect_charges_dict, self.VASP_CDTE_DATA_DIR - ) + low_energy_defects_dict = energy_lowering_distortions.get_energy_lowering_distortions( + self.defect_charges_dict, self.VASP_CDTE_DATA_DIR ) mock_print.assert_any_call("\nvac_1_Cd") mock_print.assert_any_call( @@ -657,17 +599,13 @@ def test_get_energy_lowering_distortions_rattle_too_large(self): "than min_e_diff = 0.05 eV found for Int_Cd_2 " "with charge -1." ) - mock_print.assert_any_call( - "\nComparing and pruning defect structures across charge states..." - ) + mock_print.assert_any_call("\nComparing and pruning defect structures across charge states...") mock_print.assert_any_call( "Problem parsing structures for vac_1_Cd_-1. This species will be skipped and will " "not be included in low_energy_defects (check relaxation folders with CONTCARs " "are present)." # check this is skipped if no data ) - user_warnings = [ - warning for warning in w if warning.category == UserWarning - ] + user_warnings = [warning for warning in w if warning.category == UserWarning] self.assertEqual( len(user_warnings), 3 ) # No Int_Cd_2_+1 data (2) and too large rattle warnings @@ -683,11 +621,7 @@ def test_get_energy_lowering_distortions_rattle_too_large(self): f"\nThis often indicates a complex PES with multiple minima, thus energy-lowering " f"distortions particularly likely, so important to test with reduced `stdev`!" ) - self.assertTrue( - any( - str(warning.message) == warning_message for warning in user_warnings - ) - ) + self.assertTrue(any(str(warning.message) == warning_message for warning in user_warnings)) def test_get_energy_lowering_distortions_metastable(self): """Test get_energy_lowering_distortions() function when @@ -722,9 +656,7 @@ def test_get_energy_lowering_distortions_metastable(self): f"{self.VASP_CDTE_DATA_DIR}/{defect}/Bond_Distortion_-10.0%/CONTCAR", f"{self.VASP_CDTE_DATA_DIR}/{defect}/Bond_Distortion_-10.0%/CONTCAR_original", ) - struct = Structure.from_file( - f"{self.VASP_CDTE_DATA_DIR}/{defect}/Bond_Distortion_-10.0%/CONTCAR" - ) + struct = Structure.from_file(f"{self.VASP_CDTE_DATA_DIR}/{defect}/Bond_Distortion_-10.0%/CONTCAR") struct_rattled = distortions.rattle(struct, stdev=0.35) struct_rattled.to( fmt="POSCAR", @@ -737,12 +669,10 @@ def test_get_energy_lowering_distortions_metastable(self): -1, ], } - low_energy_defects_met = ( - energy_lowering_distortions.get_energy_lowering_distortions( - defect_charges_dict, - output_path=self.VASP_CDTE_DATA_DIR, - metastable=True, - ) + low_energy_defects_met = energy_lowering_distortions.get_energy_lowering_distortions( + defect_charges_dict, + output_path=self.VASP_CDTE_DATA_DIR, + metastable=True, ) self.assertTrue(2, len(low_energy_defects_met["vac_1_Cd"])) metastable_entry = { @@ -785,24 +715,16 @@ def test_get_energy_lowering_distortions_with_already_imported_strucs(self): os.mkdir(os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/Rattled_from_-2")) os.mkdir(os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/Rattled")) shutil.copy( - os.path.join( - self.VASP_CDTE_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_0.0%/CONTCAR" - ), - os.path.join( - self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/Rattled_from_-2/CONTCAR" - ), + os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_0.0%/CONTCAR"), + os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/Rattled_from_-2/CONTCAR"), ) shutil.copy( - os.path.join( - self.VASP_CDTE_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_0.0%/CONTCAR" - ), + os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_0.0%/CONTCAR"), os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/Rattled/CONTCAR"), ) os.mkdir(os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-2/Rattled")) shutil.copy( - os.path.join( - self.VASP_CDTE_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_-55.0%/CONTCAR" - ), + os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_-55.0%/CONTCAR"), os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-2/Rattled/CONTCAR"), ) # structure doesn't match Rattled_from_-2, but still shouldn't be added to @@ -815,13 +737,11 @@ def test_get_energy_lowering_distortions_with_already_imported_strucs(self): ) with patch("builtins.print") as mock_print: - low_energy_defects_dict = ( - energy_lowering_distortions.get_energy_lowering_distortions( - { - "vac_1_Cd": [-1, -2], - }, - self.VASP_CDTE_DATA_DIR, - ) + low_energy_defects_dict = energy_lowering_distortions.get_energy_lowering_distortions( + { + "vac_1_Cd": [-1, -2], + }, + self.VASP_CDTE_DATA_DIR, ) mock_print.assert_any_call("\nvac_1_Cd") mock_print.assert_any_call( @@ -839,16 +759,10 @@ def test_get_energy_lowering_distortions_with_already_imported_strucs(self): # "has also been found" not in any mock_print call (i.e. Rattled_from_-2 in # `vac_1_Cd_-1` directory not compared to Rattled in `vac_1_Cd_-2` directory) - self.assertFalse( - any( - "has also been found" in str(call) for call in mock_print.call_args_list - ) - ) + self.assertFalse(any("has also been found" in str(call) for call in mock_print.call_args_list)) self.assertEqual(len(low_energy_defects_dict), 1) # only vac_1_Cd self.assertIn("vac_1_Cd", low_energy_defects_dict) - self.assertEqual( - len(low_energy_defects_dict["vac_1_Cd"]), 2 - ) # different -1 and -2 + self.assertEqual(len(low_energy_defects_dict["vac_1_Cd"]), 2) # different -1 and -2 # structures self.assertEqual(low_energy_defects_dict["vac_1_Cd"][0]["charges"], [-1]) np.testing.assert_almost_equal( @@ -877,13 +791,11 @@ def test_get_energy_lowering_distortions_with_already_imported_strucs(self): os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-3/vac_1_Cd_-3.yaml"), ) with patch("builtins.print") as mock_print: - low_energy_defects_dict = ( - energy_lowering_distortions.get_energy_lowering_distortions( - { - "vac_1_Cd": [-2, -3], - }, - self.VASP_CDTE_DATA_DIR, - ) + low_energy_defects_dict = energy_lowering_distortions.get_energy_lowering_distortions( + { + "vac_1_Cd": [-2, -3], + }, + self.VASP_CDTE_DATA_DIR, ) mock_print.assert_any_call("\nvac_1_Cd") mock_print.assert_any_call( @@ -892,16 +804,10 @@ def test_get_energy_lowering_distortions_with_already_imported_strucs(self): ) # "has also been found" not in any mock_print call (i.e. Rattled_from_-2 in # `vac_1_Cd_-1`directory not compared to Rattled in `vac_1_Cd_-2` directory) - self.assertFalse( - any( - "has also been found" in str(call) for call in mock_print.call_args_list - ) - ) + self.assertFalse(any("has also been found" in str(call) for call in mock_print.call_args_list)) self.assertEqual(len(low_energy_defects_dict), 1) # only vac_1_Cd self.assertIn("vac_1_Cd", low_energy_defects_dict) - self.assertEqual( - len(low_energy_defects_dict["vac_1_Cd"]), 2 - ) # different -3 and -2 + self.assertEqual(len(low_energy_defects_dict["vac_1_Cd"]), 2) # different -3 and -2 # structures self.assertEqual(low_energy_defects_dict["vac_1_Cd"][0]["charges"], [-2]) np.testing.assert_almost_equal( @@ -914,12 +820,10 @@ def test_get_energy_lowering_distortions_with_already_imported_strucs(self): ) self.assertEqual( low_energy_defects_dict["vac_1_Cd"][0]["excluded_charges"], - {-3} + {-3}, # -3 in the -2 dict but not other way around ) - self.assertEqual( - low_energy_defects_dict["vac_1_Cd"][1]["excluded_charges"], set() - ) + self.assertEqual(low_energy_defects_dict["vac_1_Cd"][1]["excluded_charges"], set()) def test_compare_struct_to_distortions(self): # test case where matching distortion is "Rattled_from_..." @@ -938,17 +842,11 @@ def test_compare_struct_to_distortions(self): os.mkdir(os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/Rattled")) os.mkdir(os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/Unperturbed")) shutil.copy( - os.path.join( - self.VASP_CDTE_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_-55.0%/CONTCAR" - ), - os.path.join( - self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/Rattled_from_+1/CONTCAR" - ), + os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_-55.0%/CONTCAR"), + os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/Rattled_from_+1/CONTCAR"), ) shutil.copy( - os.path.join( - self.VASP_CDTE_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_-10.0%/CONTCAR" - ), + os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_-10.0%/CONTCAR"), os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/Rattled/CONTCAR"), ) shutil.copy( @@ -969,18 +867,14 @@ def test_compare_struct_to_distortions(self): def test_write_retest_inputs(self): """Test write_retest_inputs().""" for fake_distortion_dir in ["Bond_Distortion_-7.5%", "Unperturbed"]: - if not os.path.exists( - f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_-1/{fake_distortion_dir}" - ): + if not os.path.exists(f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_-1/{fake_distortion_dir}"): os.mkdir(f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_-1/{fake_distortion_dir}") shutil.copyfile( f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_0/Bond_Distortion_-20.0%/CONTCAR", f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_-1/{fake_distortion_dir}/CONTCAR", ) for fake_distortion_dir in ["Bond_Distortion_-35.0%", "Unperturbed"]: - if not os.path.exists( - f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_-2/{fake_distortion_dir}" - ): + if not os.path.exists(f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_-2/{fake_distortion_dir}"): os.mkdir(f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_-2/{fake_distortion_dir}") shutil.copyfile( f"{self.VASP_CDTE_DATA_DIR}/vac_1_Cd_0/Bond_Distortion_-20.0%/CONTCAR", @@ -997,10 +891,8 @@ def test_write_retest_inputs(self): os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/vac_1_Cd_-1.yaml"), ) - low_energy_defects_dict = ( - energy_lowering_distortions.get_energy_lowering_distortions( - self.defect_charges_dict, self.VASP_CDTE_DATA_DIR - ) + low_energy_defects_dict = energy_lowering_distortions.get_energy_lowering_distortions( + self.defect_charges_dict, self.VASP_CDTE_DATA_DIR ) with patch("builtins.print") as mock_print: with warnings.catch_warnings(record=True) as w: @@ -1040,19 +932,11 @@ def test_write_retest_inputs(self): # Test for copying over VASP input files (INCAR, KPOINTS and (empty) # POTCAR files) - if_present_rm( - os.path.join( - self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/Bond_Distortion_-55.0%_from_0" - ) - ) - if not os.path.exists( - os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/Unperturbed/") - ): + if_present_rm(os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/Bond_Distortion_-55.0%_from_0")) + if not os.path.exists(os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/Unperturbed/")): os.mkdir(os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/Unperturbed")) # Write VASP input files to Unperturbed directory - with open( - os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/Unperturbed/INCAR"), "w" - ) as fp: + with open(os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/Unperturbed/INCAR"), "w") as fp: incar = "NCORE = 12\nISYM = 0\nIBRION = 2\n" fp.write(incar) with open( @@ -1061,17 +945,13 @@ def test_write_retest_inputs(self): ) as fp: kpoints = "0\nGamma\n1 1 1\n0.00 0.00 0.00\n" fp.write(kpoints) - with open( - os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/Unperturbed/POTCAR"), "w" - ) as fp: + with open(os.path.join(self.VASP_CDTE_DATA_DIR, "vac_1_Cd_-1/Unperturbed/POTCAR"), "w") as fp: potcar = f" " fp.write(potcar) # empty POTCAR file # Test if VASP input files are copied over - low_energy_defects_dict = ( - energy_lowering_distortions.get_energy_lowering_distortions( - output_path=self.VASP_CDTE_DATA_DIR - ) + low_energy_defects_dict = energy_lowering_distortions.get_energy_lowering_distortions( + output_path=self.VASP_CDTE_DATA_DIR ) energy_lowering_distortions.write_retest_inputs( low_energy_defects=low_energy_defects_dict, @@ -1101,27 +981,17 @@ def test_write_retest_inputs(self): # Test CP2K input files for i in os.listdir(self.VASP_CDTE_DATA_DIR): - if i.startswith("vac_1_Cd") and os.path.isdir( - os.path.join(self.VASP_CDTE_DATA_DIR, i) - ): + if i.startswith("vac_1_Cd") and os.path.isdir(os.path.join(self.VASP_CDTE_DATA_DIR, i)): shutil.copytree( os.path.join(self.VASP_CDTE_DATA_DIR, i), os.path.join(self.CP2K_DATA_DIR, i), dirs_exist_ok=True, ) for filename in ["KPOINTS", "INCAR", "POTCAR"]: - if_present_rm( - os.path.join(self.CP2K_DATA_DIR, f"vac_1_Cd_-1/Unperturbed/{filename}") - ) - if_present_rm( - os.path.join( - self.CP2K_DATA_DIR, "vac_1_Cd_-1/Bond_Distortion_-55.0%_from_0" - ) - ) + if_present_rm(os.path.join(self.CP2K_DATA_DIR, f"vac_1_Cd_-1/Unperturbed/{filename}")) + if_present_rm(os.path.join(self.CP2K_DATA_DIR, "vac_1_Cd_-1/Bond_Distortion_-55.0%_from_0")) shutil.copy( - os.path.join( - self.CP2K_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_30.0%/cp2k_input.inp" - ), + os.path.join(self.CP2K_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_30.0%/cp2k_input.inp"), os.path.join(self.CP2K_DATA_DIR, "vac_1_Cd_-1/Unperturbed/cp2k_input.inp"), ) # Copy over CP2K input file energy_lowering_distortions.write_retest_inputs( @@ -1144,10 +1014,7 @@ def test_write_retest_inputs(self): "vac_1_Cd_-1/Bond_Distortion_-55.0%_from_0/structure.cif", ) ) - self.assertTrue( - analysis._calculate_atomic_disp(struct, self.V_Cd_minus_0pt55_structure)[0] - < 0.01 - ) + self.assertTrue(analysis._calculate_atomic_disp(struct, self.V_Cd_minus_0pt55_structure)[0] < 0.01) # Test copying over Quantum Espresso input files shutil.move( # avoid overwriting yaml file @@ -1155,9 +1022,7 @@ def test_write_retest_inputs(self): f"{self.CP2K_DATA_DIR}/test_vac_1_Cd_0.yaml", ) for i in os.listdir(self.CP2K_DATA_DIR): - if i.startswith("vac_1_Cd") and os.path.isdir( - os.path.join(self.CP2K_DATA_DIR, i) - ): + if i.startswith("vac_1_Cd") and os.path.isdir(os.path.join(self.CP2K_DATA_DIR, i)): shutil.copytree( os.path.join(self.CP2K_DATA_DIR, i), os.path.join(self.ESPRESSO_DATA_DIR, i), @@ -1167,27 +1032,15 @@ def test_write_retest_inputs(self): f"{self.CP2K_DATA_DIR}/test_vac_1_Cd_0.yaml", f"{self.CP2K_DATA_DIR}/vac_1_Cd_0/test_vac_1_Cd_0.yaml", ) - if_present_rm( - os.path.join( - self.ESPRESSO_DATA_DIR, "vac_1_Cd_-1/Bond_Distortion_-55.0%_from_0" - ) - ) + if_present_rm(os.path.join(self.ESPRESSO_DATA_DIR, "vac_1_Cd_-1/Bond_Distortion_-55.0%_from_0")) shutil.copy( - os.path.join( - self.ESPRESSO_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_30.0%/espresso.pwi" - ), - os.path.join( - self.ESPRESSO_DATA_DIR, "vac_1_Cd_-1/Unperturbed/espresso.pwi" - ), + os.path.join(self.ESPRESSO_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_30.0%/espresso.pwi"), + os.path.join(self.ESPRESSO_DATA_DIR, "vac_1_Cd_-1/Unperturbed/espresso.pwi"), ) # Copy over Quantum Espresso input file for filename in [ "cp2k_input.inp", ]: - if_present_rm( - os.path.join( - self.ESPRESSO_DATA_DIR, f"vac_1_Cd_-1/Unperturbed/{filename}" - ) - ) + if_present_rm(os.path.join(self.ESPRESSO_DATA_DIR, f"vac_1_Cd_-1/Unperturbed/{filename}")) energy_lowering_distortions.write_retest_inputs( low_energy_defects=low_energy_defects_dict, output_path=self.ESPRESSO_DATA_DIR, @@ -1212,10 +1065,7 @@ def test_write_retest_inputs(self): atoms = ase.io.espresso.read_espresso_in(f) aaa = AseAtomsAdaptor() struct = aaa.get_structure(atoms) - self.assertTrue( - analysis._calculate_atomic_disp(struct, self.V_Cd_minus_0pt55_structure)[0] - < 0.01 - ) + self.assertTrue(analysis._calculate_atomic_disp(struct, self.V_Cd_minus_0pt55_structure)[0] < 0.01) # Test copying over FHI-aims input files when the input files are only # present in one distortion directory (different from Unperturbed) @@ -1225,9 +1075,7 @@ def test_write_retest_inputs(self): f"{self.ESPRESSO_DATA_DIR}/test_vac_1_Cd_0.yaml", ) for i in os.listdir(self.ESPRESSO_DATA_DIR): - if i.startswith("vac_1_Cd") and os.path.isdir( - os.path.join(self.ESPRESSO_DATA_DIR, i) - ): + if i.startswith("vac_1_Cd") and os.path.isdir(os.path.join(self.ESPRESSO_DATA_DIR, i)): shutil.copytree( os.path.join(self.ESPRESSO_DATA_DIR, i), os.path.join(self.FHI_AIMS_DATA_DIR, i), @@ -1237,27 +1085,15 @@ def test_write_retest_inputs(self): f"{self.ESPRESSO_DATA_DIR}/test_vac_1_Cd_0.yaml", f"{self.ESPRESSO_DATA_DIR}/vac_1_Cd_0/test_vac_1_Cd_0.yaml", ) - if_present_rm( - os.path.join( - self.FHI_AIMS_DATA_DIR, "vac_1_Cd_-1/Bond_Distortion_-55.0%_from_0" - ) - ) + if_present_rm(os.path.join(self.FHI_AIMS_DATA_DIR, "vac_1_Cd_-1/Bond_Distortion_-55.0%_from_0")) shutil.copy( - os.path.join( - self.FHI_AIMS_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_30.0%/control.in" - ), - os.path.join( - self.FHI_AIMS_DATA_DIR, "vac_1_Cd_-1/Bond_Distortion_-7.5%/control.in" - ), + os.path.join(self.FHI_AIMS_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_30.0%/control.in"), + os.path.join(self.FHI_AIMS_DATA_DIR, "vac_1_Cd_-1/Bond_Distortion_-7.5%/control.in"), ) # Copy over FHI-aims input file for filename in [ "espresso.pwi", ]: - if_present_rm( - os.path.join( - self.FHI_AIMS_DATA_DIR, f"vac_1_Cd_-1/Unperturbed/{filename}" - ) - ) + if_present_rm(os.path.join(self.FHI_AIMS_DATA_DIR, f"vac_1_Cd_-1/Unperturbed/{filename}")) energy_lowering_distortions.write_retest_inputs( low_energy_defects=low_energy_defects_dict, output_path=self.FHI_AIMS_DATA_DIR, @@ -1278,10 +1114,7 @@ def test_write_retest_inputs(self): "vac_1_Cd_-1/Bond_Distortion_-55.0%_from_0/geometry.in", ) ) - self.assertTrue( - analysis._calculate_atomic_disp(struct, self.V_Cd_minus_0pt55_structure)[0] - < 0.01 - ) + self.assertTrue(analysis._calculate_atomic_disp(struct, self.V_Cd_minus_0pt55_structure)[0] < 0.01) # Test CASTEP input files shutil.move( # avoid overwriting yaml file @@ -1289,9 +1122,7 @@ def test_write_retest_inputs(self): f"{self.FHI_AIMS_DATA_DIR}/test_vac_1_Cd_0.yaml", ) for i in os.listdir(self.FHI_AIMS_DATA_DIR): - if i.startswith("vac_1_Cd") and os.path.isdir( - os.path.join(self.FHI_AIMS_DATA_DIR, i) - ): + if i.startswith("vac_1_Cd") and os.path.isdir(os.path.join(self.FHI_AIMS_DATA_DIR, i)): shutil.copytree( os.path.join(self.FHI_AIMS_DATA_DIR, i), os.path.join(self.CASTEP_DATA_DIR, i), @@ -1301,18 +1132,10 @@ def test_write_retest_inputs(self): f"{self.FHI_AIMS_DATA_DIR}/test_vac_1_Cd_0.yaml", f"{self.FHI_AIMS_DATA_DIR}/vac_1_Cd_0/test_vac_1_Cd_0.yaml", ) - if_present_rm( - os.path.join( - self.CASTEP_DATA_DIR, "vac_1_Cd_-1/Bond_Distortion_-55.0%_from_0" - ) - ) + if_present_rm(os.path.join(self.CASTEP_DATA_DIR, "vac_1_Cd_-1/Bond_Distortion_-55.0%_from_0")) shutil.copy( - os.path.join( - self.CASTEP_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_30.0%/castep.param" - ), - os.path.join( - self.CASTEP_DATA_DIR, "vac_1_Cd_-1/Bond_Distortion_-7.5%/castep.param" - ), + os.path.join(self.CASTEP_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_30.0%/castep.param"), + os.path.join(self.CASTEP_DATA_DIR, "vac_1_Cd_-1/Bond_Distortion_-7.5%/castep.param"), ) # Copy over CASTEP input file for filename in [ "control.in", @@ -1345,10 +1168,7 @@ def test_write_retest_inputs(self): ) ) ) - self.assertTrue( - analysis._calculate_atomic_disp(struct, self.V_Cd_minus_0pt55_structure)[0] - < 0.01 - ) + self.assertTrue(analysis._calculate_atomic_disp(struct, self.V_Cd_minus_0pt55_structure)[0] < 0.01) if __name__ == "__main__": From 3736b3d6eddb570240db09c9cd6da7fb1aac03e5 Mon Sep 17 00:00:00 2001 From: Sean Kavanagh Date: Fri, 31 May 2024 16:52:35 -0400 Subject: [PATCH 3/8] Update troubleshooting tip about updating `pymatgen`/`monty` etc if any issues --- docs/Tips.rst | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/Tips.rst b/docs/Tips.rst index 095d979..9073038 100644 --- a/docs/Tips.rst +++ b/docs/Tips.rst @@ -207,6 +207,21 @@ see `docs here `_ page, or by email. + - A current known issue with ``numpy``/``pymatgen`` is that it might give an error similar to this: .. code:: python From 3a7a18569aeef7ac41265b0a4d8565f46e3c58e9 Mon Sep 17 00:00:00 2001 From: Sean Kavanagh Date: Fri, 31 May 2024 17:05:54 -0400 Subject: [PATCH 4/8] Remove user potcar functional typing import (moved to `TYPE_CHECKING` block in new `pymatgen`) --- shakenbreak/input.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/shakenbreak/input.py b/shakenbreak/input.py index bde74f1..42aed36 100644 --- a/shakenbreak/input.py +++ b/shakenbreak/input.py @@ -43,7 +43,7 @@ from pymatgen.io.ase import AseAtomsAdaptor from pymatgen.io.cp2k.inputs import Cp2kInput from pymatgen.io.vasp.inputs import Kpoints -from pymatgen.io.vasp.sets import BadInputSetWarning, UserPotcarFunctional +from pymatgen.io.vasp.sets import BadInputSetWarning from scipy.cluster.hierarchy import fcluster, linkage from scipy.spatial import Voronoi from scipy.spatial.distance import squareform @@ -293,7 +293,7 @@ def _create_vasp_input( defect_name: str, distorted_defect_dict: dict, user_incar_settings: Optional[dict] = None, - user_potcar_functional: Optional[UserPotcarFunctional] = "PBE", + user_potcar_functional: Optional[str] = "PBE", user_potcar_settings: Optional[dict] = None, output_path: str = ".", **kwargs, @@ -2523,7 +2523,7 @@ def _prepare_distorted_defect_inputs( def write_vasp_files( self, user_incar_settings: Optional[dict] = None, - user_potcar_functional: Optional[UserPotcarFunctional] = "PBE", + user_potcar_functional: Optional[str] = "PBE", user_potcar_settings: Optional[dict] = None, output_path: str = ".", verbose: bool = False, From ab4be67e24de0b937e5234b35f2994250c072038 Mon Sep 17 00:00:00 2001 From: Sean Kavanagh Date: Mon, 3 Jun 2024 11:15:56 -0400 Subject: [PATCH 5/8] Make oxi state guessing more efficient, refactoring, use updated doped function --- shakenbreak/cli.py | 38 +++---- shakenbreak/distortions.py | 5 +- shakenbreak/energy_lowering_distortions.py | 2 +- shakenbreak/input.py | 126 ++++++++++----------- 4 files changed, 80 insertions(+), 91 deletions(-) diff --git a/shakenbreak/cli.py b/shakenbreak/cli.py index 13baaaf..17e16d1 100644 --- a/shakenbreak/cli.py +++ b/shakenbreak/cli.py @@ -9,7 +9,7 @@ from subprocess import call import click -from doped.core import _guess_and_set_oxi_states_with_timeout, _rough_oxi_state_cost_from_comp +from doped.core import guess_and_set_oxi_states_with_timeout from doped.generation import get_defect_name_from_entry from doped.utils.parsing import get_outcar from doped.utils.plotting import format_defect_name @@ -240,14 +240,14 @@ def generate( if key not in valid_args: user_settings.pop(key) - defect_struc = Structure.from_file(defect) - bulk_struc = Structure.from_file(bulk) + defect_struct = Structure.from_file(defect) + bulk_struct = Structure.from_file(bulk) # Note that here the Defect.defect_structure is the defect `supercell` # structure, not the defect `primitive` structure. defect_object = input.identify_defect( - defect_structure=defect_struc, - bulk_structure=bulk_struc, + defect_structure=defect_struct, + bulk_structure=bulk_struct, defect_index=defect_index, defect_coords=defect_coords, ) @@ -464,22 +464,14 @@ def generate_all( Generate the trial distortions and input files for structure-searching for all defects in a given directory. """ - bulk_struc = Structure.from_file(bulk) + bulk_struct = Structure.from_file(bulk) # try parsing the bulk oxidation states first, for later assigning defect "oxi_state"s (i.e. # fully ionised charge states): - # First check if the cost of guessing oxidation states is too high: - if _rough_oxi_state_cost_from_comp(bulk_struc.composition) > 1e6: - # If the cost is too high, avoid setting oxidation states as it will take too long - _bulk_oxi_states = False # will take very long to guess oxi_state - else: - # Otherwise, proceed with setting oxidation states using a separate process to allow timeouts - from multiprocessing import Queue # only import when necessary - - queue = Queue() - _bulk_oxi_states = _guess_and_set_oxi_states_with_timeout(bulk_struc, queue=queue) - if _bulk_oxi_states: # Retrieve the oxidation states if successfully guessed and set - bulk_struc = queue.get() # oxi-state decorated structure - _bulk_oxi_states = {el.symbol: el.oxi_state for el in bulk_struc.composition.elements} + if bulk_struct_w_oxi := guess_and_set_oxi_states_with_timeout( + bulk_struct, break_early_if_expensive=True + ): + bulk_struct = bulk_struct_w_oxi + _bulk_oxi_states = {el.symbol: el.oxi_state for el in bulk_struct.composition.elements} defects_dirs = os.listdir(defects) if config is not None: @@ -595,7 +587,7 @@ def parse_defect_position(defect_name, defect_settings): for defect in defects_dirs: # file or directory if os.path.isfile(f"{defects}/{defect}"): try: # try to parse structure from it - defect_struc = Structure.from_file(f"{defects}/{defect}") + defect_struct = Structure.from_file(f"{defects}/{defect}") defect_name = parse_defect_name(defect, defect_settings) # None if not recognised except Exception: @@ -624,7 +616,7 @@ def parse_defect_position(defect_name, defect_settings): ) continue if defect_file: - defect_struc = Structure.from_file(os.path.join(defects, defect, defect_file)) + defect_struct = Structure.from_file(os.path.join(defects, defect, defect_file)) defect_name = parse_defect_name(defect, defect_settings) else: warnings.warn(f"Could not parse {defects}/{defect} as a defect, skipping.") @@ -633,8 +625,8 @@ def parse_defect_position(defect_name, defect_settings): # Check if indices are provided in config file defect_index, defect_coords = parse_defect_position(defect_name, defect_settings) defect_object = input.identify_defect( - defect_structure=defect_struc, - bulk_structure=bulk_struc, + defect_structure=defect_struct, + bulk_structure=bulk_struct, defect_index=defect_index, defect_coords=defect_coords, oxi_state=( diff --git a/shakenbreak/distortions.py b/shakenbreak/distortions.py index c3aface..e2c4016 100644 --- a/shakenbreak/distortions.py +++ b/shakenbreak/distortions.py @@ -10,7 +10,10 @@ from hiphive.structure_generation.rattle import _probability_mc_rattle, generate_mc_rattled_structures from pymatgen.analysis.local_env import CrystalNN, MinimumDistanceNN from pymatgen.core.structure import Structure -from pymatgen.io.ase import AseAtomsAdaptor +from pymatgen.io.ase import AseAtomsAdaptor # could be removed to use the Structure.to/from_ase_atoms() + +# methods added in pymatgen 2024.5.31, but then not backwards compatible. Will refactor to this if/when +# pymatgen>=2024.5.31 is a necessary requirement. def _warning_on_one_line(message, category, filename, lineno, file=None, line=None): diff --git a/shakenbreak/energy_lowering_distortions.py b/shakenbreak/energy_lowering_distortions.py index 17e073c..8da1a2a 100644 --- a/shakenbreak/energy_lowering_distortions.py +++ b/shakenbreak/energy_lowering_distortions.py @@ -832,7 +832,7 @@ def write_retest_inputs( code (:obj:`str`): Code used for the geometry relaxations. The supported codes include "vasp", "cp2k", "espresso", "castep" and "fhi-aims" - (case insensitive). + (case-insensitive). (Default: "vasp") input_filename (:obj:`str`): Name of the code input file if different from `ShakeNBreak` diff --git a/shakenbreak/input.py b/shakenbreak/input.py index 42aed36..ae01f7c 100644 --- a/shakenbreak/input.py +++ b/shakenbreak/input.py @@ -12,7 +12,6 @@ import shutil import warnings from importlib.metadata import version -from multiprocessing import Queue from typing import Optional, Tuple, Union import ase @@ -21,12 +20,7 @@ from ase.calculators.castep import Castep from ase.calculators.espresso import Espresso from doped import _ignore_pmg_warnings -from doped.core import ( - Defect, - DefectEntry, - _guess_and_set_oxi_states_with_timeout, - _rough_oxi_state_cost_from_comp, -) +from doped.core import Defect, DefectEntry, guess_and_set_oxi_states_with_timeout from doped.generation import DefectsGenerator, name_defect_entries from doped.utils.parsing import ( get_defect_site_idxs_and_unrelaxed_structure, @@ -375,13 +369,15 @@ def _create_vasp_input( for dir in matching_dirs: with contextlib.suppress(Exception): # if Unperturbed structure could not be parsed / # compared to distorted_defect_dict, then pass - prev_unperturbed_struc = Structure.from_file(f"{output_path}/{dir}/Unperturbed/POSCAR") - current_unperturbed_struc = distorted_defect_dict["Unperturbed"][ + prev_unperturbed_struct = Structure.from_file( + f"{output_path}/{dir}/Unperturbed/POSCAR" + ) + current_unperturbed_struct = distorted_defect_dict["Unperturbed"][ "Defect Structure" ].copy() - for i in [prev_unperturbed_struc, current_unperturbed_struc]: + for i in [prev_unperturbed_struct, current_unperturbed_struct]: i.remove_oxidation_states() - if prev_unperturbed_struc == current_unperturbed_struc: + if prev_unperturbed_struct == current_unperturbed_struct: warnings.warn( f"The previously-generated defect distortions folder {dir} in " f"{os.path.basename(os.path.abspath(output_path))} " @@ -779,17 +775,17 @@ def _get_voronoi_nodes( # map back to the supercell sm = StructureMatcher(primitive_cell=False, attempt_supercell=True) mapping = sm.get_supercell_matrix(structure, prim_structure) - voronoi_struc = Structure.from_sites(vnodes) # Structure object with Voronoi nodes as sites - voronoi_struc.make_supercell(mapping) # Map back to the supercell + voronoi_struct = Structure.from_sites(vnodes) # Structure object with Voronoi nodes as sites + voronoi_struct.make_supercell(mapping) # Map back to the supercell # check if there was an origin shift between primitive and supercell regenerated_supercell = prim_structure.copy() regenerated_supercell.make_supercell(mapping) fractional_shift = sm.get_transformation(structure, regenerated_supercell)[1] if not np.allclose(fractional_shift, 0): - voronoi_struc.translate_sites(range(len(voronoi_struc)), fractional_shift, frac_coords=True) + voronoi_struct.translate_sites(range(len(voronoi_struct)), fractional_shift, frac_coords=True) - return voronoi_struc.sites + return voronoi_struct.sites def _get_voronoi_multiplicity(site, structure): @@ -868,38 +864,36 @@ def identify_defect( ) from exc # remove oxidation states before site-matching - defect_struc = defect_structure.copy() # copy to prevent overwriting original structures - bulk_struc = bulk_structure.copy() - defect_struc.remove_oxidation_states() + defect_struct = defect_structure.copy() # copy to prevent overwriting original structures + bulk_struct = bulk_structure.copy() + defect_struct.remove_oxidation_states() + bulk_struct.remove_oxidation_states() _bulk_oxi_states = False if oxi_state is None: - if all(hasattr(site.specie, "oxi_state") for site in bulk_struc.sites) and all( - isinstance(site.specie.oxi_state, (int, float)) for site in bulk_struc.sites + if all(hasattr(site.specie, "oxi_state") for site in bulk_struct.sites) and all( + isinstance(site.specie.oxi_state, (int, float)) for site in bulk_struct.sites ): - _bulk_oxi_states = {el.symbol: el.oxi_state for el in bulk_struc.composition.elements} + _bulk_oxi_states = {el.symbol: el.oxi_state for el in bulk_struct.composition.elements} else: # try guessing bulk oxi states now, before Defect initialisation: - if _rough_oxi_state_cost_from_comp(bulk_struc.composition) < 1e6: - # otherwise will take very long to guess oxi_state - queue = Queue() - _bulk_oxi_states = _guess_and_set_oxi_states_with_timeout(bulk_struc, queue=queue) - if _bulk_oxi_states: - bulk_struc = queue.get() # oxi-state decorated structure - _bulk_oxi_states = {el.symbol: el.oxi_state for el in bulk_struc.composition.elements} - - bulk_struc.remove_oxidation_states() + if bulk_struct_w_oxi := guess_and_set_oxi_states_with_timeout( + bulk_struct, break_early_if_expensive=True + ): + _bulk_oxi_states = { + el.symbol: el.oxi_state for el in bulk_struct_w_oxi.composition.elements + } bulk_site_index = None defect_site_index = None - if defect_type == "vacancy" and defect_index: # defect_index should correspond to bulk struc + if defect_type == "vacancy" and defect_index: # defect_index should correspond to bulk struct bulk_site_index = defect_index - elif defect_index: # defect_index should correspond to defect struc + elif defect_index: # defect_index should correspond to defect struct if defect_type == "interstitial": defect_site_index = defect_index if defect_type == "substitution": # also want bulk site index for substitutions, # so use defect index coordinates - defect_coords = defect_struc[defect_index].frac_coords + defect_coords = defect_struct[defect_index].frac_coords if defect_coords is not None: if bulk_site_index is None and defect_site_index is None: @@ -919,17 +913,17 @@ def _possible_sites_in_sphere(structure, frac_coords, tol): key=lambda x: x[1], ) - max_possible_defect_sites_in_bulk_struc = _possible_sites_in_sphere( - bulk_struc, defect_coords, 2.5 + max_possible_defect_sites_in_bulk_struct = _possible_sites_in_sphere( + bulk_struct, defect_coords, 2.5 ) - max_possible_defect_sites_in_defect_struc = _possible_sites_in_sphere( - defect_struc, defect_coords, 2.5 + max_possible_defect_sites_in_defect_struct = _possible_sites_in_sphere( + defect_struct, defect_coords, 2.5 ) - expanded_possible_defect_sites_in_bulk_struc = _possible_sites_in_sphere( - bulk_struc, defect_coords, 3.0 + expanded_possible_defect_sites_in_bulk_struct = _possible_sites_in_sphere( + bulk_struct, defect_coords, 3.0 ) - expanded_possible_defect_sites_in_defect_struc = _possible_sites_in_sphere( - defect_struc, defect_coords, 3.0 + expanded_possible_defect_sites_in_defect_struct = _possible_sites_in_sphere( + defect_struct, defect_coords, 3.0 ) # there should be one site (including specie identity) which does not match between @@ -951,12 +945,12 @@ def _remove_matching_sites(bulk_site_list, defect_site_list): return bulk_sites_list, defect_sites_list non_matching_bulk_sites, _ = _remove_matching_sites( - max_possible_defect_sites_in_bulk_struc, - expanded_possible_defect_sites_in_defect_struc, + max_possible_defect_sites_in_bulk_struct, + expanded_possible_defect_sites_in_defect_struct, ) _, non_matching_defect_sites = _remove_matching_sites( - expanded_possible_defect_sites_in_bulk_struc, - max_possible_defect_sites_in_defect_struc, + expanded_possible_defect_sites_in_bulk_struct, + max_possible_defect_sites_in_defect_struct, ) if len(non_matching_bulk_sites) == 0 and len(non_matching_defect_sites) == 0: @@ -975,18 +969,18 @@ def _remove_matching_sites(bulk_site_list, defect_site_list): searched = "bulk or defect" possible_defects = [] while site_displacement_tol < 5: # loop over distance tolerances - possible_defect_sites_in_bulk_struc = _possible_sites_in_sphere( - bulk_struc, defect_coords, site_displacement_tol + possible_defect_sites_in_bulk_struct = _possible_sites_in_sphere( + bulk_struct, defect_coords, site_displacement_tol ) - possible_defect_sites_in_defect_struc = _possible_sites_in_sphere( - defect_struc, defect_coords, site_displacement_tol + possible_defect_sites_in_defect_struct = _possible_sites_in_sphere( + defect_struct, defect_coords, site_displacement_tol ) if ( defect_type == "vacancy" ): # defect site should be in bulk structure but not defect structure possible_defects, _ = _remove_matching_sites( - possible_defect_sites_in_bulk_struc, - expanded_possible_defect_sites_in_defect_struc, + possible_defect_sites_in_bulk_struct, + expanded_possible_defect_sites_in_defect_struct, ) searched = "bulk" if len(possible_defects) == 1: @@ -996,15 +990,15 @@ def _remove_matching_sites(bulk_site_list, defect_site_list): else: # interstitial or substitution # defect site should be in defect structure but not bulk structure _, possible_defects = _remove_matching_sites( - expanded_possible_defect_sites_in_bulk_struc, - possible_defect_sites_in_defect_struc, + expanded_possible_defect_sites_in_bulk_struct, + possible_defect_sites_in_defect_struct, ) searched = "defect" if len(possible_defects) == 1: if defect_type == "substitution": possible_defects_in_bulk, _ = _remove_matching_sites( - possible_defect_sites_in_bulk_struc, - expanded_possible_defect_sites_in_defect_struc, + possible_defect_sites_in_bulk_struct, + expanded_possible_defect_sites_in_defect_struct, ) if len(possible_defects_in_bulk) == 1: bulk_site_index = possible_defects_in_bulk[0][2] @@ -1075,16 +1069,16 @@ def _remove_matching_sites(bulk_site_list, defect_site_list): defect_site_index = auto_matching_defect_site_index if defect_type == "vacancy": - defect_site = bulk_struc[bulk_site_index] + defect_site = bulk_struct[bulk_site_index] elif defect_type == "substitution": - defect_site_in_bulk = bulk_struc[bulk_site_index] + defect_site_in_bulk = bulk_struct[bulk_site_index] defect_site = PeriodicSite( - defect_struc[defect_site_index].specie, + defect_struct[defect_site_index].specie, defect_site_in_bulk.frac_coords, - bulk_struc.lattice, + bulk_struct.lattice, ) else: - defect_site = defect_struc[defect_site_index] + defect_site = defect_struct[defect_site_index] if (defect_index is not None or defect_coords is not None) and ( auto_matching_defect_site_index is not None or auto_matching_bulk_site_index is not None @@ -1098,9 +1092,9 @@ def _remove_matching_sites(bulk_site_list, defect_site_list): ) if user_index != auto_index: if defect_type == "vacancy": - auto_matching_defect_site = bulk_struc[auto_index] + auto_matching_defect_site = bulk_struct[auto_index] else: - auto_matching_defect_site = defect_struc[auto_index] + auto_matching_defect_site = defect_struct[auto_index] def _site_info(site): return ( @@ -3106,10 +3100,10 @@ def from_structures( ): # Generate a defect entry for each charge state defect.user_charges = defect.get_charge_states(padding=padding) - for charge in defect.user_charges: - defect_entries.append( - _get_defect_entry_from_defect(defect=defect, charge_state=charge) - ) + defect_entries.extend( + _get_defect_entry_from_defect(defect=defect, charge_state=charge) + for charge in defect.user_charges + ) # Check if user gives dict with structure and defect_coords/defect_index elif isinstance(defect_structure, (tuple, list)): From a818ea8d898192e1ae3d2bec0f988248313c1f9a Mon Sep 17 00:00:00 2001 From: Sean Kavanagh Date: Mon, 3 Jun 2024 11:16:14 -0400 Subject: [PATCH 6/8] Update tests --- .../vac_1_Cd_0/Bond_Distortion_30.0%/castep.cell | 7 +------ tests/test_energy_lowering_distortions.py | 4 +--- tests/test_input.py | 12 ++++-------- 3 files changed, 6 insertions(+), 17 deletions(-) diff --git a/tests/data/castep/vac_1_Cd_0/Bond_Distortion_30.0%/castep.cell b/tests/data/castep/vac_1_Cd_0/Bond_Distortion_30.0%/castep.cell index 31de2af..f4936f4 100644 --- a/tests/data/castep/vac_1_Cd_0/Bond_Distortion_30.0%/castep.cell +++ b/tests/data/castep/vac_1_Cd_0/Bond_Distortion_30.0%/castep.cell @@ -1,7 +1,4 @@ -####################################################### -#CASTEP cell file: /home/ireaml/Python_Modules/vac_1_Cd_0/Bond_Distortion_30.0%/castep.cell -#Created using the Atomic Simulation Environment (ASE)# -####################################################### +# written by ASE %BLOCK LATTICE_CART 13.086768 0.000000 0.000000 @@ -75,5 +72,3 @@ Te 11.559529 11.895370 4.746923 Te 11.072262 11.648637 11.378040 %ENDBLOCK POSITIONS_ABS -KPOINT_MP_GRID: 1 1 1 -KPOINT_MP_OFFSET: 0.000000 0.000000 0.000000 diff --git a/tests/test_energy_lowering_distortions.py b/tests/test_energy_lowering_distortions.py index 48ef8c4..2057c81 100644 --- a/tests/test_energy_lowering_distortions.py +++ b/tests/test_energy_lowering_distortions.py @@ -8,7 +8,6 @@ import numpy as np from monty.serialization import dumpfn, loadfn from pymatgen.core.structure import Structure -from pymatgen.io.ase import AseAtomsAdaptor from shakenbreak import analysis, distortions, energy_lowering_distortions, io @@ -1063,8 +1062,7 @@ def test_write_retest_inputs(self): "r", ) as f: atoms = ase.io.espresso.read_espresso_in(f) - aaa = AseAtomsAdaptor() - struct = aaa.get_structure(atoms) + struct = Structure.from_ase_atoms(atoms) self.assertTrue(analysis._calculate_atomic_disp(struct, self.V_Cd_minus_0pt55_structure)[0] < 0.01) # Test copying over FHI-aims input files when the input files are only diff --git a/tests/test_input.py b/tests/test_input.py index 2616d72..242f37a 100644 --- a/tests/test_input.py +++ b/tests/test_input.py @@ -2830,8 +2830,7 @@ def test_write_vasp_files_from_list(self): self.assertFalse(os.path.exists("v_Te_Td_Cd2.83_+4")) self.tearDown() - @patch("builtins.print") - def test_write_espresso_files(self, mock_print): + def test_write_espresso_files(self): """Test method write_espresso_files""" oxidation_states = {"Cd": +2, "Te": -2} bond_distortions = [ @@ -2909,8 +2908,7 @@ def test_write_espresso_files(self, mock_print): # The input_file option is tested through the test for `generate_all()` # (in `test_cli.py`) - @patch("builtins.print") - def test_write_cp2k_files(self, mock_print): + def test_write_cp2k_files(self): """Test method write_cp2k_files""" oxidation_states = {"Cd": +2, "Te": -2} bond_distortions = [ @@ -2984,8 +2982,7 @@ def test_write_cp2k_files(self, mock_print): # The input_file option is tested through the test for `generate_all()` # (in `test_cli.py`) - @patch("builtins.print") - def test_write_castep_files(self, mock_print): + def test_write_castep_files(self): """Test method write_castep_files""" oxidation_states = {"Cd": +2, "Te": -2} bond_distortions = [ @@ -3057,8 +3054,7 @@ def test_write_castep_files(self, mock_print): # The input_file option is tested through the test for `generate_all()` # (in `test_cli.py`) - @patch("builtins.print") - def test_write_fhi_aims_files(self, mock_print): + def test_write_fhi_aims_files(self): """Test method write_fhi_aims_files""" oxidation_states = {"Cd": +2, "Te": -2} bond_distortions = [ From 681593ec1e97165de081882489deaf6302bd24c7 Mon Sep 17 00:00:00 2001 From: Sean Kavanagh Date: Wed, 5 Jun 2024 11:36:21 -0400 Subject: [PATCH 7/8] Update espresso and aims file writing functions to work with new ASE (checked both forwards and backwards compatible) --- shakenbreak/energy_lowering_distortions.py | 9 + shakenbreak/input.py | 161 ++++++++++++------ .../Bond_Distortion_30.0%/espresso.pwi | 132 +++++++------- .../espresso_structure.pwi | 135 ++++++++------- .../espresso_user_parameters.pwi | 132 +++++++------- tests/test_energy_lowering_distortions.py | 2 +- tests/test_input.py | 116 +++++++------ 7 files changed, 387 insertions(+), 300 deletions(-) diff --git a/shakenbreak/energy_lowering_distortions.py b/shakenbreak/energy_lowering_distortions.py index 8da1a2a..51feeea 100644 --- a/shakenbreak/energy_lowering_distortions.py +++ b/shakenbreak/energy_lowering_distortions.py @@ -1000,6 +1000,9 @@ def _copy_espresso_files( filename=f"{distorted_dir}/{input_filename}", images=atoms, format="espresso-in", + pseudopotentials={ # doesn't matter, is rewritten below to use same as before + atom: "N/A" for atom in set(atoms.get_chemical_symbols()) + }, ) with open(f"{distorted_dir}/{input_filename}") as f: new_struct = f.read() @@ -1027,6 +1030,9 @@ def _copy_espresso_files( filename=f"{distorted_dir}/{input_filename}", images=atoms, format="espresso-in", + pseudopotentials={ # doesn't matter, is rewritten below to use same as before + atom: "N/A" for atom in set(atoms.get_chemical_symbols()) + }, ) with open(f"{distorted_dir}/{input_filename}") as f: new_struct = f.read() @@ -1048,6 +1054,9 @@ def _copy_espresso_files( filename=f"{distorted_dir}/{input_filename}", images=atoms, format="espresso-in", + pseudopotentials={ + atom: "Pseudopotentials not specified" for atom in set(atoms.get_chemical_symbols()) + }, ) diff --git a/shakenbreak/input.py b/shakenbreak/input.py index ae01f7c..a2aa93a 100644 --- a/shakenbreak/input.py +++ b/shakenbreak/input.py @@ -12,13 +12,12 @@ import shutil import warnings from importlib.metadata import version +from pathlib import Path from typing import Optional, Tuple, Union import ase import numpy as np -from ase.calculators.aims import Aims from ase.calculators.castep import Castep -from ase.calculators.espresso import Espresso from doped import _ignore_pmg_warnings from doped.core import Defect, DefectEntry, guess_and_set_oxi_states_with_timeout from doped.generation import DefectsGenerator, name_defect_entries @@ -2628,6 +2627,7 @@ def write_espresso_files( write_structures_only: Optional[bool] = False, output_path: str = ".", verbose: Optional[bool] = False, + profile=None, ) -> Tuple[dict, dict]: """ Generates input files for Quantum Espresso relaxations of all output @@ -2647,6 +2647,7 @@ def write_espresso_files( `shakenbreak` default ones (see `SnB_input_files/qe_input.yaml`). If both `input_parameters` and `input_file` are provided, the input_parameters will be used. + (Default: None) write_structures_only (:obj:`bool`, optional): Whether to only write the structure files (in CIF format) (without calculation inputs). @@ -2659,12 +2660,24 @@ def write_espresso_files( Whether to print distortion information (bond atoms and distances). (Default: False) + profile (:obj:`BaseProfile`, optional): + ASE profile object to use for the ``Espresso()`` calculator + class, if using ase>=3.23. If ``None`` (default), set to + ``EspressoProfile(command="pw.x", pseudo_dir=".")``. Returns: :obj:`tuple`: Tuple of dictionaries with new defects_dict (containing the distorted structures) and defect distortion parameters. """ + try: + old_ase = False # >=3.23 + from ase.calculators.espresso import EspressoProfile, EspressoTemplate + except ImportError: + old_ase = True + from ase.calculators.espresso import Espresso + if not old_ase: + profile = profile or EspressoProfile(command="pw.x", pseudo_dir=".") distorted_defects_dict, self.distortion_metadata = self.apply_distortions( verbose=verbose, ) @@ -2698,30 +2711,49 @@ def write_espresso_files( if not pseudopotentials or write_structures_only: # only write structures warnings.warn( - "Since `pseudopotentials` have not been specified, " - "will only write input structures." + "Since `pseudopotentials` have not been specified, will only write input structures." ) ase.io.write( filename=f"{folder_path}/espresso.pwi", images=atoms, format="espresso-in", + pseudopotentials={ + atom: "Pseudopotential not specified" for atom in set(atoms.get_chemical_symbols()) + }, ) else: # write complete input file default_input_parameters["SYSTEM"]["tot_charge"] = charge # Update defect charge + if old_ase: + calc = Espresso( + pseudopotentials=pseudopotentials, + tstress=False, + tprnfor=True, + kpts=(1, 1, 1), + input_data=default_input_parameters, + ) + calc.write_input(atoms) + os.replace( + "./espresso.pwi", + f"{folder_path}/espresso.pwi", + ) + + else: # ase >= 3.23 + template = EspressoTemplate() + template.write_input( + profile=profile, + directory=Path(folder_path), + atoms=atoms, + parameters={ + "tstress": False, + "tprnfor": True, + "pseudopotentials": pseudopotentials, + "kpts": (1, 1, 1), + "input_data": default_input_parameters, + }, + properties=None, + ) - calc = Espresso( - pseudopotentials=pseudopotentials, - tstress=False, - tprnfor=True, - kpts=(1, 1, 1), - input_data=default_input_parameters, - ) - calc.write_input(atoms) - os.replace( - "./espresso.pwi", - f"{folder_path}/espresso.pwi", - ) return distorted_defects_dict, self.distortion_metadata def write_cp2k_files( @@ -2866,29 +2898,34 @@ def write_castep_files( def write_fhi_aims_files( self, input_file: Optional[str] = None, - ase_calculator: Optional[Aims] = None, + ase_calculator=None, # Aims or AimsTemplate write_structures_only: Optional[bool] = False, output_path: str = ".", verbose: Optional[bool] = False, + profile=None, ) -> Tuple[dict, dict]: """ Generates input geometry and control files for FHI-aims relaxations of all output structures. + Note that if using ASE >= 3.23 and not ``write_structures_only``, the + ``$AIMS_SPECIES_DIR`` environment variable must be set. + Args: input_file (:obj:`str`, optional): Path to FHI-aims input file, to overwrite/update `shakenbreak` default ones. If both `input_file` and `ase_calculator` are provided, the ase_calculator will be used. - ase_calculator (:obj:`ase.calculators.aims.Aims`, optional): - ASE calculator object to use for FHI-aims calculations. - If not set, `shakenbreak` default values will be used. - Recommended to check these. + ase_calculator (:obj:`Aims`, :obj:`AimsTemplate`, optional): + Either an ``Aims`` (ASE calculator) or ``AimsTemplate`` object + to obtain parameters from, for FHI-aims calculations. + If not set, ``ShakeNBreak`` default values will be used. + Recommended to check these! (Default: None) write_structures_only (:obj:`bool`, optional): - Whether to only write the structure files (in `geometry.in` - format), (without the contro-in file). + Whether to only write the structure files (in ``geometry.in`` + format), without the ``control.in`` file. output_path (:obj:`str`, optional): Path to directory in which to write distorted defect structures and calculation inputs. @@ -2897,36 +2934,52 @@ def write_fhi_aims_files( Whether to print distortion information (bond atoms and distances). (Default: False) + profile (:obj:`BaseProfile`, optional): + ASE profile object to use for the ``Aims()`` calculator + class, if using ase>=3.23. If ``None`` (default), set to + ``AimsProfile(command="fhiaims.x")``. Returns: :obj:`tuple`: Tuple of dictionaries with new defects_dict (containing the distorted structures) and defect distortion parameters. """ + try: + old_ase = False # >=3.23 + from ase.calculators.aims import AimsProfile, AimsTemplate + except ImportError: + old_ase = True + from ase.calculators.aims import Aims + + if not old_ase: + profile = profile or AimsProfile(command="fhiaims.x") + template = AimsTemplate() + distorted_defects_dict, self.distortion_metadata = self.apply_distortions( verbose=verbose, ) aaa = AseAtomsAdaptor() + parameters = {} if input_file and not ase_calculator: - params = io.parse_fhi_aims_input(input_file) - ase_calculator = Aims( - k_grid=(1, 1, 1), - **params, - ) - # params is in the format key: (value, value) - - if not ase_calculator and not write_structures_only: - ase_calculator = Aims( - k_grid=(1, 1, 1), - relax_geometry=("bfgs", 5e-3), - xc=("hse06", 0.11), - hse_unit="A", # Angstrom - spin="collinear", # Spin polarized - default_initial_moment=0, # Needs to be set - hybrid_xc_coeff=0.25, + parameters = io.parse_fhi_aims_input(input_file) + parameters.update({"k_grid": (1, 1, 1)}) + + if not parameters and not write_structures_only: + parameters = { + "k_grid": (1, 1, 1), + "relax_geometry": ("bfgs", 5e-3), + "xc": ("hse06", 0.11), + "hse_unit": "A", # Angstrom + "spin": "collinear", # Spin polarized + "default_initial_moment": 0, # Needs to be set + "hybrid_xc_coeff": 0.25, # By default symmetry is not preserved - ) + } + + if ase_calculator: + parameters = ase_calculator.parameters + # loop for each defect in dict for folder_path, ( struct, @@ -2934,17 +2987,17 @@ def write_fhi_aims_files( ) in self._prepare_distorted_defect_inputs( distorted_defects_dict, output_path, include_charge_state=True ).items(): - if isinstance(ase_calculator, Aims) and not write_structures_only: - ase_calculator.set(charge=charge) # Defect charge state + if not write_structures_only: + parameters["charge"] = charge # Defect charge state # Total number of electrons for net spin initialization # Must set initial spin moments (otherwise FHI-aims will # lead to 0 final spin) if struct.composition.total_electrons % 2 == 0: # Even number of electrons -> net spin is 0 - ase_calculator.set(default_initial_moment=0) + parameters["default_initial_moment"] = 0 else: - ase_calculator.set(default_initial_moment=1) + parameters["default_initial_moment"] = 1 atoms = aaa.get_atoms(struct) dist = folder_path.split("/")[-1] @@ -2956,11 +3009,21 @@ def write_fhi_aims_files( info_str=dist, ) # write input structure file - if isinstance(ase_calculator, Aims) and not write_structures_only: - ase_calculator.write_control( - filename=f"{folder_path}/control.in", - atoms=atoms, - ) # write parameters file + if not write_structures_only: + if old_ase: + ase_calculator = Aims(**parameters) # parameters is in the format key: (value, value) + ase_calculator.write_control( + filename=f"{folder_path}/control.in", + atoms=atoms, + ) # write parameters file + else: + template.write_input( + profile=profile, + directory=Path(folder_path), + atoms=atoms, + parameters=parameters, + properties=[], + ) return distorted_defects_dict, self.distortion_metadata diff --git a/tests/data/quantum_espresso/vac_1_Cd_0/Bond_Distortion_30.0%/espresso.pwi b/tests/data/quantum_espresso/vac_1_Cd_0/Bond_Distortion_30.0%/espresso.pwi index b66e1c0..9f2d158 100644 --- a/tests/data/quantum_espresso/vac_1_Cd_0/Bond_Distortion_30.0%/espresso.pwi +++ b/tests/data/quantum_espresso/vac_1_Cd_0/Bond_Distortion_30.0%/espresso.pwi @@ -4,6 +4,7 @@ nstep = 300 tstress = .false. tprnfor = .true. + pseudo_dir = '.' / &SYSTEM ibrav = 0 @@ -27,7 +28,10 @@ / &CELL / - +&FCP +/ +&RISM +/ ATOMIC_SPECIES Cd 112.414 Cd_pbe_v1.uspp.F.UPF Te 127.6 Te.pbe-n-rrkjus_psl.1.0.0.UPF @@ -41,67 +45,67 @@ CELL_PARAMETERS angstrom 0.00000000000000 0.00000000000000 13.08676800000000 ATOMIC_POSITIONS angstrom -Cd 0.2052936933 0.2205109577 6.5612600102 -Cd 0.3553059026 6.4874540930 0.1311618230 -Cd -0.0189701912 6.5181677929 6.2570352666 -Cd 6.1796951708 0.2623979357 -0.2390850836 -Cd 6.3936521122 -0.0705098423 6.3047768912 -Cd 6.6170390438 6.7871616780 -0.3530104837 -Cd 6.2838583436 6.8800332033 6.8680083180 -Cd -0.4558335511 3.5713061158 3.1244141346 -Cd -0.1383866466 3.4883477927 9.4875198666 -Cd -0.0990547023 9.2565757916 3.3244344470 -Cd -0.0666252559 9.6258716381 10.0500411859 -Cd 6.5509957445 3.6911705273 3.0562876062 -Cd 6.7586762218 3.3272456174 9.5832095081 -Cd 6.6360757260 9.8497071995 3.7883128703 -Cd 6.6082747313 10.0528258949 9.9353986711 -Cd 3.0288526343 -0.1828111303 3.5476901542 -Cd 3.1098991492 0.0702601671 9.6601980421 -Cd 3.5574730475 6.4424748675 3.2085931359 -Cd 3.4325905045 6.7705044623 9.5012728266 -Cd 9.7117087314 -0.4834176905 3.4040015301 -Cd 10.0022302059 0.1080439952 9.6516807338 -Cd 10.1714269096 6.6241789285 3.1655379298 -Cd 9.3085127617 6.4018087674 9.7533878631 -Cd 3.3994529298 3.4742102051 -0.1808313195 -Cd 3.7387736554 3.4910359408 6.3135534511 -Cd 3.3414555872 9.5849079909 -0.3544370839 -Cd 3.7662073052 9.4368196528 6.4918174678 -Cd 10.1502177203 3.5291627195 -0.1238205694 -Cd 10.0435753234 3.1852362330 6.9917138830 -Cd 10.0242116925 9.9364450730 0.1104867397 -Cd 9.7510717928 9.8455033094 6.4614014274 -Te 1.5541433257 1.9734023807 4.9233741105 -Te 2.1266235285 2.1266235285 10.9601444715 -Te 1.7174543391 8.2820291303 5.4998426799 -Te 1.4773444045 8.0914853904 11.0884702149 -Te 8.2653380643 1.6043581688 4.8425490397 -Te 8.2235256058 1.4452015063 11.0741478414 -Te 8.1546704364 8.4171284306 4.9777313383 -Te 8.0256553870 8.4325657640 11.6792998138 -Te 1.4910276874 4.8183441414 1.9865939846 -Te 1.6638992716 4.7990204335 7.8885361462 -Te 2.1266235285 10.9601444715 2.1266235285 -Te 1.6668981429 11.6722305551 8.4278363781 -Te 8.0376589517 4.8618654142 1.4752211561 -Te 8.0790002588 5.0654924940 7.4357907467 -Te 7.9596934547 11.5680055313 1.4782538461 -Te 8.8231704737 11.9196722252 7.9344010692 -Te 4.7195900981 1.6713004379 2.1131884631 -Te 4.9108364207 1.4911526347 7.7655524265 -Te 5.3144600671 7.9555627306 1.4579927881 -Te 4.9770661164 8.4098758849 8.3701434731 -Te 11.7092924228 1.8306059845 1.2709266515 -Te 11.8438048907 1.6704836593 7.7841269954 -Te 11.7239819196 8.1712888360 1.3776519156 -Te 11.7745596756 8.1926838545 8.2275328558 -Te 5.1085924827 4.9075909233 4.8337724420 -Te 5.0266100925 4.9282115846 11.3880729444 -Te 4.9662022261 11.5870664745 4.8091737486 -Te 5.1264044323 11.1805616712 11.4958783517 -Te 11.5396180648 4.9906961842 5.2762497808 -Te 11.5086458777 5.1651153635 11.4600915357 -Te 11.5595291122 11.8953695735 4.7469231033 -Te 11.0722618437 11.6486366009 11.3780396955 +Cd 0.2052936933 0.2205109577 6.5612600102 +Cd 0.3553059026 6.4874540930 0.1311618230 +Cd -0.0189701912 6.5181677929 6.2570352666 +Cd 6.1796951708 0.2623979357 -0.2390850836 +Cd 6.3936521122 -0.0705098423 6.3047768912 +Cd 6.6170390438 6.7871616780 -0.3530104837 +Cd 6.2838583436 6.8800332033 6.8680083180 +Cd -0.4558335511 3.5713061158 3.1244141346 +Cd -0.1383866466 3.4883477927 9.4875198666 +Cd -0.0990547023 9.2565757916 3.3244344470 +Cd -0.0666252559 9.6258716381 10.0500411859 +Cd 6.5509957445 3.6911705273 3.0562876062 +Cd 6.7586762218 3.3272456174 9.5832095081 +Cd 6.6360757260 9.8497071995 3.7883128703 +Cd 6.6082747313 10.0528258949 9.9353986711 +Cd 3.0288526343 -0.1828111303 3.5476901542 +Cd 3.1098991492 0.0702601671 9.6601980421 +Cd 3.5574730475 6.4424748675 3.2085931359 +Cd 3.4325905045 6.7705044623 9.5012728266 +Cd 9.7117087314 -0.4834176905 3.4040015301 +Cd 10.0022302059 0.1080439952 9.6516807338 +Cd 10.1714269096 6.6241789285 3.1655379298 +Cd 9.3085127617 6.4018087674 9.7533878631 +Cd 3.3994529298 3.4742102051 -0.1808313195 +Cd 3.7387736554 3.4910359408 6.3135534511 +Cd 3.3414555872 9.5849079909 -0.3544370839 +Cd 3.7662073052 9.4368196528 6.4918174678 +Cd 10.1502177203 3.5291627195 -0.1238205694 +Cd 10.0435753234 3.1852362330 6.9917138830 +Cd 10.0242116925 9.9364450730 0.1104867397 +Cd 9.7510717928 9.8455033094 6.4614014274 +Te 1.5541433257 1.9734023807 4.9233741105 +Te 2.1266235285 2.1266235285 10.9601444715 +Te 1.7174543391 8.2820291303 5.4998426799 +Te 1.4773444045 8.0914853904 11.0884702149 +Te 8.2653380643 1.6043581688 4.8425490397 +Te 8.2235256058 1.4452015063 11.0741478414 +Te 8.1546704364 8.4171284306 4.9777313383 +Te 8.0256553870 8.4325657640 11.6792998138 +Te 1.4910276874 4.8183441414 1.9865939846 +Te 1.6638992716 4.7990204335 7.8885361462 +Te 2.1266235285 10.9601444715 2.1266235285 +Te 1.6668981429 11.6722305551 8.4278363781 +Te 8.0376589517 4.8618654142 1.4752211561 +Te 8.0790002588 5.0654924940 7.4357907467 +Te 7.9596934547 11.5680055313 1.4782538461 +Te 8.8231704737 11.9196722252 7.9344010692 +Te 4.7195900981 1.6713004379 2.1131884631 +Te 4.9108364207 1.4911526347 7.7655524265 +Te 5.3144600671 7.9555627306 1.4579927881 +Te 4.9770661164 8.4098758849 8.3701434731 +Te 11.7092924228 1.8306059845 1.2709266515 +Te 11.8438048907 1.6704836593 7.7841269954 +Te 11.7239819196 8.1712888360 1.3776519156 +Te 11.7745596756 8.1926838545 8.2275328558 +Te 5.1085924827 4.9075909233 4.8337724420 +Te 5.0266100925 4.9282115846 11.3880729444 +Te 4.9662022261 11.5870664745 4.8091737486 +Te 5.1264044323 11.1805616712 11.4958783517 +Te 11.5396180648 4.9906961842 5.2762497808 +Te 11.5086458777 5.1651153635 11.4600915357 +Te 11.5595291122 11.8953695735 4.7469231033 +Te 11.0722618437 11.6486366009 11.3780396955 diff --git a/tests/data/quantum_espresso/vac_1_Cd_0/Bond_Distortion_30.0%/espresso_structure.pwi b/tests/data/quantum_espresso/vac_1_Cd_0/Bond_Distortion_30.0%/espresso_structure.pwi index 80cd6f2..0dadcd2 100644 --- a/tests/data/quantum_espresso/vac_1_Cd_0/Bond_Distortion_30.0%/espresso_structure.pwi +++ b/tests/data/quantum_espresso/vac_1_Cd_0/Bond_Distortion_30.0%/espresso_structure.pwi @@ -11,10 +11,13 @@ / &CELL / - +&FCP +/ +&RISM +/ ATOMIC_SPECIES -Cd 112.414 None -Te 127.6 None +Cd 112.414 Pseudopotential not specified +Te 127.6 Pseudopotential not specified K_POINTS gamma @@ -24,67 +27,67 @@ CELL_PARAMETERS angstrom 0.00000000000000 0.00000000000000 13.08676800000000 ATOMIC_POSITIONS angstrom -Cd 0.2052936933 0.2205109577 6.5612600102 -Cd 0.3553059026 6.4874540930 0.1311618230 -Cd -0.0189701912 6.5181677929 6.2570352666 -Cd 6.1796951708 0.2623979357 -0.2390850836 -Cd 6.3936521122 -0.0705098423 6.3047768912 -Cd 6.6170390438 6.7871616780 -0.3530104837 -Cd 6.2838583436 6.8800332033 6.8680083180 -Cd -0.4558335511 3.5713061158 3.1244141346 -Cd -0.1383866466 3.4883477927 9.4875198666 -Cd -0.0990547023 9.2565757916 3.3244344470 -Cd -0.0666252559 9.6258716381 10.0500411859 -Cd 6.5509957445 3.6911705273 3.0562876062 -Cd 6.7586762218 3.3272456174 9.5832095081 -Cd 6.6360757260 9.8497071995 3.7883128703 -Cd 6.6082747313 10.0528258949 9.9353986711 -Cd 3.0288526343 -0.1828111303 3.5476901542 -Cd 3.1098991492 0.0702601671 9.6601980421 -Cd 3.5574730475 6.4424748675 3.2085931359 -Cd 3.4325905045 6.7705044623 9.5012728266 -Cd 9.7117087314 -0.4834176905 3.4040015301 -Cd 10.0022302059 0.1080439952 9.6516807338 -Cd 10.1714269096 6.6241789285 3.1655379298 -Cd 9.3085127617 6.4018087674 9.7533878631 -Cd 3.3994529298 3.4742102051 -0.1808313195 -Cd 3.7387736554 3.4910359408 6.3135534511 -Cd 3.3414555872 9.5849079909 -0.3544370839 -Cd 3.7662073052 9.4368196528 6.4918174678 -Cd 10.1502177203 3.5291627195 -0.1238205694 -Cd 10.0435753234 3.1852362330 6.9917138830 -Cd 10.0242116925 9.9364450730 0.1104867397 -Cd 9.7510717928 9.8455033094 6.4614014274 -Te 1.5541433257 1.9734023807 4.9233741105 -Te 2.1266235285 2.1266235285 10.9601444715 -Te 1.7174543391 8.2820291303 5.4998426799 -Te 1.4773444045 8.0914853904 11.0884702149 -Te 8.2653380643 1.6043581688 4.8425490397 -Te 8.2235256058 1.4452015063 11.0741478414 -Te 8.1546704364 8.4171284306 4.9777313383 -Te 8.0256553870 8.4325657640 11.6792998138 -Te 1.4910276874 4.8183441414 1.9865939846 -Te 1.6638992716 4.7990204335 7.8885361462 -Te 2.1266235285 10.9601444715 2.1266235285 -Te 1.6668981429 11.6722305551 8.4278363781 -Te 8.0376589517 4.8618654142 1.4752211561 -Te 8.0790002588 5.0654924940 7.4357907467 -Te 7.9596934547 11.5680055313 1.4782538461 -Te 8.8231704737 11.9196722252 7.9344010692 -Te 4.7195900981 1.6713004379 2.1131884631 -Te 4.9108364207 1.4911526347 7.7655524265 -Te 5.3144600671 7.9555627306 1.4579927881 -Te 4.9770661164 8.4098758849 8.3701434731 -Te 11.7092924228 1.8306059845 1.2709266515 -Te 11.8438048907 1.6704836593 7.7841269954 -Te 11.7239819196 8.1712888360 1.3776519156 -Te 11.7745596756 8.1926838545 8.2275328558 -Te 5.1085924827 4.9075909233 4.8337724420 -Te 5.0266100925 4.9282115846 11.3880729444 -Te 4.9662022261 11.5870664745 4.8091737486 -Te 5.1264044323 11.1805616712 11.4958783517 -Te 11.5396180648 4.9906961842 5.2762497808 -Te 11.5086458777 5.1651153635 11.4600915357 -Te 11.5595291122 11.8953695735 4.7469231033 -Te 11.0722618437 11.6486366009 11.3780396955 +Cd 0.2052936933 0.2205109577 6.5612600102 +Cd 0.3553059026 6.4874540930 0.1311618230 +Cd -0.0189701912 6.5181677929 6.2570352666 +Cd 6.1796951708 0.2623979357 -0.2390850836 +Cd 6.3936521122 -0.0705098423 6.3047768912 +Cd 6.6170390438 6.7871616780 -0.3530104837 +Cd 6.2838583436 6.8800332033 6.8680083180 +Cd -0.4558335511 3.5713061158 3.1244141346 +Cd -0.1383866466 3.4883477927 9.4875198666 +Cd -0.0990547023 9.2565757916 3.3244344470 +Cd -0.0666252559 9.6258716381 10.0500411859 +Cd 6.5509957445 3.6911705273 3.0562876062 +Cd 6.7586762218 3.3272456174 9.5832095081 +Cd 6.6360757260 9.8497071995 3.7883128703 +Cd 6.6082747313 10.0528258949 9.9353986711 +Cd 3.0288526343 -0.1828111303 3.5476901542 +Cd 3.1098991492 0.0702601671 9.6601980421 +Cd 3.5574730475 6.4424748675 3.2085931359 +Cd 3.4325905045 6.7705044623 9.5012728266 +Cd 9.7117087314 -0.4834176905 3.4040015301 +Cd 10.0022302059 0.1080439952 9.6516807338 +Cd 10.1714269096 6.6241789285 3.1655379298 +Cd 9.3085127617 6.4018087674 9.7533878631 +Cd 3.3994529298 3.4742102051 -0.1808313195 +Cd 3.7387736554 3.4910359408 6.3135534511 +Cd 3.3414555872 9.5849079909 -0.3544370839 +Cd 3.7662073052 9.4368196528 6.4918174678 +Cd 10.1502177203 3.5291627195 -0.1238205694 +Cd 10.0435753234 3.1852362330 6.9917138830 +Cd 10.0242116925 9.9364450730 0.1104867397 +Cd 9.7510717928 9.8455033094 6.4614014274 +Te 1.5541433257 1.9734023807 4.9233741105 +Te 2.1266235285 2.1266235285 10.9601444715 +Te 1.7174543391 8.2820291303 5.4998426799 +Te 1.4773444045 8.0914853904 11.0884702149 +Te 8.2653380643 1.6043581688 4.8425490397 +Te 8.2235256058 1.4452015063 11.0741478414 +Te 8.1546704364 8.4171284306 4.9777313383 +Te 8.0256553870 8.4325657640 11.6792998138 +Te 1.4910276874 4.8183441414 1.9865939846 +Te 1.6638992716 4.7990204335 7.8885361462 +Te 2.1266235285 10.9601444715 2.1266235285 +Te 1.6668981429 11.6722305551 8.4278363781 +Te 8.0376589517 4.8618654142 1.4752211561 +Te 8.0790002588 5.0654924940 7.4357907467 +Te 7.9596934547 11.5680055313 1.4782538461 +Te 8.8231704737 11.9196722252 7.9344010692 +Te 4.7195900981 1.6713004379 2.1131884631 +Te 4.9108364207 1.4911526347 7.7655524265 +Te 5.3144600671 7.9555627306 1.4579927881 +Te 4.9770661164 8.4098758849 8.3701434731 +Te 11.7092924228 1.8306059845 1.2709266515 +Te 11.8438048907 1.6704836593 7.7841269954 +Te 11.7239819196 8.1712888360 1.3776519156 +Te 11.7745596756 8.1926838545 8.2275328558 +Te 5.1085924827 4.9075909233 4.8337724420 +Te 5.0266100925 4.9282115846 11.3880729444 +Te 4.9662022261 11.5870664745 4.8091737486 +Te 5.1264044323 11.1805616712 11.4958783517 +Te 11.5396180648 4.9906961842 5.2762497808 +Te 11.5086458777 5.1651153635 11.4600915357 +Te 11.5595291122 11.8953695735 4.7469231033 +Te 11.0722618437 11.6486366009 11.3780396955 diff --git a/tests/data/quantum_espresso/vac_1_Cd_0/Bond_Distortion_30.0%/espresso_user_parameters.pwi b/tests/data/quantum_espresso/vac_1_Cd_0/Bond_Distortion_30.0%/espresso_user_parameters.pwi index 38c251b..aaff0b3 100644 --- a/tests/data/quantum_espresso/vac_1_Cd_0/Bond_Distortion_30.0%/espresso_user_parameters.pwi +++ b/tests/data/quantum_espresso/vac_1_Cd_0/Bond_Distortion_30.0%/espresso_user_parameters.pwi @@ -4,6 +4,7 @@ nstep = 300 tstress = .false. tprnfor = .true. + pseudo_dir = '.' / &SYSTEM ibrav = 0 @@ -25,7 +26,10 @@ / &CELL / - +&FCP +/ +&RISM +/ ATOMIC_SPECIES Cd 112.414 Cd_pbe_v1.uspp.F.UPF Te 127.6 Te.pbe-n-rrkjus_psl.1.0.0.UPF @@ -39,67 +43,67 @@ CELL_PARAMETERS angstrom 0.00000000000000 0.00000000000000 13.08676800000000 ATOMIC_POSITIONS angstrom -Cd 0.2052936933 0.2205109577 6.5612600102 -Cd 0.3553059026 6.4874540930 0.1311618230 -Cd -0.0189701912 6.5181677929 6.2570352666 -Cd 6.1796951708 0.2623979357 -0.2390850836 -Cd 6.3936521122 -0.0705098423 6.3047768912 -Cd 6.6170390438 6.7871616780 -0.3530104837 -Cd 6.2838583436 6.8800332033 6.8680083180 -Cd -0.4558335511 3.5713061158 3.1244141346 -Cd -0.1383866466 3.4883477927 9.4875198666 -Cd -0.0990547023 9.2565757916 3.3244344470 -Cd -0.0666252559 9.6258716381 10.0500411859 -Cd 6.5509957445 3.6911705273 3.0562876062 -Cd 6.7586762218 3.3272456174 9.5832095081 -Cd 6.6360757260 9.8497071995 3.7883128703 -Cd 6.6082747313 10.0528258949 9.9353986711 -Cd 3.0288526343 -0.1828111303 3.5476901542 -Cd 3.1098991492 0.0702601671 9.6601980421 -Cd 3.5574730475 6.4424748675 3.2085931359 -Cd 3.4325905045 6.7705044623 9.5012728266 -Cd 9.7117087314 -0.4834176905 3.4040015301 -Cd 10.0022302059 0.1080439952 9.6516807338 -Cd 10.1714269096 6.6241789285 3.1655379298 -Cd 9.3085127617 6.4018087674 9.7533878631 -Cd 3.3994529298 3.4742102051 -0.1808313195 -Cd 3.7387736554 3.4910359408 6.3135534511 -Cd 3.3414555872 9.5849079909 -0.3544370839 -Cd 3.7662073052 9.4368196528 6.4918174678 -Cd 10.1502177203 3.5291627195 -0.1238205694 -Cd 10.0435753234 3.1852362330 6.9917138830 -Cd 10.0242116925 9.9364450730 0.1104867397 -Cd 9.7510717928 9.8455033094 6.4614014274 -Te 1.5541433257 1.9734023807 4.9233741105 -Te 2.1266235285 2.1266235285 10.9601444715 -Te 1.7174543391 8.2820291303 5.4998426799 -Te 1.4773444045 8.0914853904 11.0884702149 -Te 8.2653380643 1.6043581688 4.8425490397 -Te 8.2235256058 1.4452015063 11.0741478414 -Te 8.1546704364 8.4171284306 4.9777313383 -Te 8.0256553870 8.4325657640 11.6792998138 -Te 1.4910276874 4.8183441414 1.9865939846 -Te 1.6638992716 4.7990204335 7.8885361462 -Te 2.1266235285 10.9601444715 2.1266235285 -Te 1.6668981429 11.6722305551 8.4278363781 -Te 8.0376589517 4.8618654142 1.4752211561 -Te 8.0790002588 5.0654924940 7.4357907467 -Te 7.9596934547 11.5680055313 1.4782538461 -Te 8.8231704737 11.9196722252 7.9344010692 -Te 4.7195900981 1.6713004379 2.1131884631 -Te 4.9108364207 1.4911526347 7.7655524265 -Te 5.3144600671 7.9555627306 1.4579927881 -Te 4.9770661164 8.4098758849 8.3701434731 -Te 11.7092924228 1.8306059845 1.2709266515 -Te 11.8438048907 1.6704836593 7.7841269954 -Te 11.7239819196 8.1712888360 1.3776519156 -Te 11.7745596756 8.1926838545 8.2275328558 -Te 5.1085924827 4.9075909233 4.8337724420 -Te 5.0266100925 4.9282115846 11.3880729444 -Te 4.9662022261 11.5870664745 4.8091737486 -Te 5.1264044323 11.1805616712 11.4958783517 -Te 11.5396180648 4.9906961842 5.2762497808 -Te 11.5086458777 5.1651153635 11.4600915357 -Te 11.5595291122 11.8953695735 4.7469231033 -Te 11.0722618437 11.6486366009 11.3780396955 +Cd 0.2052936933 0.2205109577 6.5612600102 +Cd 0.3553059026 6.4874540930 0.1311618230 +Cd -0.0189701912 6.5181677929 6.2570352666 +Cd 6.1796951708 0.2623979357 -0.2390850836 +Cd 6.3936521122 -0.0705098423 6.3047768912 +Cd 6.6170390438 6.7871616780 -0.3530104837 +Cd 6.2838583436 6.8800332033 6.8680083180 +Cd -0.4558335511 3.5713061158 3.1244141346 +Cd -0.1383866466 3.4883477927 9.4875198666 +Cd -0.0990547023 9.2565757916 3.3244344470 +Cd -0.0666252559 9.6258716381 10.0500411859 +Cd 6.5509957445 3.6911705273 3.0562876062 +Cd 6.7586762218 3.3272456174 9.5832095081 +Cd 6.6360757260 9.8497071995 3.7883128703 +Cd 6.6082747313 10.0528258949 9.9353986711 +Cd 3.0288526343 -0.1828111303 3.5476901542 +Cd 3.1098991492 0.0702601671 9.6601980421 +Cd 3.5574730475 6.4424748675 3.2085931359 +Cd 3.4325905045 6.7705044623 9.5012728266 +Cd 9.7117087314 -0.4834176905 3.4040015301 +Cd 10.0022302059 0.1080439952 9.6516807338 +Cd 10.1714269096 6.6241789285 3.1655379298 +Cd 9.3085127617 6.4018087674 9.7533878631 +Cd 3.3994529298 3.4742102051 -0.1808313195 +Cd 3.7387736554 3.4910359408 6.3135534511 +Cd 3.3414555872 9.5849079909 -0.3544370839 +Cd 3.7662073052 9.4368196528 6.4918174678 +Cd 10.1502177203 3.5291627195 -0.1238205694 +Cd 10.0435753234 3.1852362330 6.9917138830 +Cd 10.0242116925 9.9364450730 0.1104867397 +Cd 9.7510717928 9.8455033094 6.4614014274 +Te 1.5541433257 1.9734023807 4.9233741105 +Te 2.1266235285 2.1266235285 10.9601444715 +Te 1.7174543391 8.2820291303 5.4998426799 +Te 1.4773444045 8.0914853904 11.0884702149 +Te 8.2653380643 1.6043581688 4.8425490397 +Te 8.2235256058 1.4452015063 11.0741478414 +Te 8.1546704364 8.4171284306 4.9777313383 +Te 8.0256553870 8.4325657640 11.6792998138 +Te 1.4910276874 4.8183441414 1.9865939846 +Te 1.6638992716 4.7990204335 7.8885361462 +Te 2.1266235285 10.9601444715 2.1266235285 +Te 1.6668981429 11.6722305551 8.4278363781 +Te 8.0376589517 4.8618654142 1.4752211561 +Te 8.0790002588 5.0654924940 7.4357907467 +Te 7.9596934547 11.5680055313 1.4782538461 +Te 8.8231704737 11.9196722252 7.9344010692 +Te 4.7195900981 1.6713004379 2.1131884631 +Te 4.9108364207 1.4911526347 7.7655524265 +Te 5.3144600671 7.9555627306 1.4579927881 +Te 4.9770661164 8.4098758849 8.3701434731 +Te 11.7092924228 1.8306059845 1.2709266515 +Te 11.8438048907 1.6704836593 7.7841269954 +Te 11.7239819196 8.1712888360 1.3776519156 +Te 11.7745596756 8.1926838545 8.2275328558 +Te 5.1085924827 4.9075909233 4.8337724420 +Te 5.0266100925 4.9282115846 11.3880729444 +Te 4.9662022261 11.5870664745 4.8091737486 +Te 5.1264044323 11.1805616712 11.4958783517 +Te 11.5396180648 4.9906961842 5.2762497808 +Te 11.5086458777 5.1651153635 11.4600915357 +Te 11.5595291122 11.8953695735 4.7469231033 +Te 11.0722618437 11.6486366009 11.3780396955 diff --git a/tests/test_energy_lowering_distortions.py b/tests/test_energy_lowering_distortions.py index 2057c81..d00f118 100644 --- a/tests/test_energy_lowering_distortions.py +++ b/tests/test_energy_lowering_distortions.py @@ -1158,7 +1158,7 @@ def test_write_retest_inputs(self): ) ) # Check structure - struct = aaa.get_structure( + struct = Structure.from_ase_atoms( ase.io.read( os.path.join( self.CASTEP_DATA_DIR, diff --git a/tests/test_input.py b/tests/test_input.py index 242f37a..1480fb8 100644 --- a/tests/test_input.py +++ b/tests/test_input.py @@ -3,6 +3,7 @@ import datetime import locale import os +import pathlib import shutil import unittest import warnings @@ -2857,30 +2858,31 @@ def test_write_espresso_files(self): pseudopotentials=pseudopotentials, ) self.assertTrue(os.path.exists("vac_1_Cd_0/Unperturbed")) - with open( + test_input = pathlib.Path( os.path.join( - self.ESPRESSO_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_30.0%/espresso.pwi" + self.ESPRESSO_DATA_DIR, + "vac_1_Cd_0/Bond_Distortion_30.0%/espresso.pwi", ) - ) as f: - test_input = f.read() - with open("vac_1_Cd_0/Bond_Distortion_30.0%/espresso.pwi") as f: - generated_input = f.read() - self.assertEqual(test_input, generated_input) + ).read_text() + generated_input = pathlib.Path( + "vac_1_Cd_0/Bond_Distortion_30.0%/espresso.pwi" + ).read_text() + self.assertEqual(test_input, generated_input) # Test parameter file is not written if write_structures_only = True for i in self.cdte_defect_folders_old_names: if_present_rm(i) # remove test-generated defect folders _, _ = Dist.write_espresso_files(write_structures_only=True) - with open( + test_input = pathlib.Path( os.path.join( self.ESPRESSO_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_30.0%/espresso_structure.pwi", ) - ) as f: - test_input = f.read() - with open("vac_1_Cd_0/Bond_Distortion_30.0%/espresso.pwi") as f: - generated_input = f.read() - self.assertEqual(test_input, generated_input) + ).read_text() + generated_input = pathlib.Path( + "vac_1_Cd_0/Bond_Distortion_30.0%/espresso.pwi" + ).read_text() + self.assertEqual(test_input, generated_input) # Test user defined parameters _, _ = Dist.write_espresso_files( @@ -2895,18 +2897,16 @@ def test_write_espresso_files(self): } }, ) - with open( + test_input = pathlib.Path( os.path.join( self.ESPRESSO_DATA_DIR, "vac_1_Cd_0/Bond_Distortion_30.0%/espresso_user_parameters.pwi", ) - ) as f: - test_input = f.read() - with open("vac_1_Cd_0/Bond_Distortion_30.0%/espresso.pwi") as f: - generated_input = f.read() + ).read_text() + generated_input = pathlib.Path( + "vac_1_Cd_0/Bond_Distortion_30.0%/espresso.pwi" + ).read_text() self.assertEqual(test_input, generated_input) - # The input_file option is tested through the test for `generate_all()` - # (in `test_cli.py`) def test_write_cp2k_files(self): """Test method write_cp2k_files""" @@ -3072,19 +3072,9 @@ def test_write_fhi_aims_files(self): # Test `write_fhi_aims_files` method for i in self.cdte_defect_folders_old_names: if_present_rm(i) # remove test-generated defect folders - _, _ = Dist.write_fhi_aims_files() + _, _ = Dist.write_fhi_aims_files(write_structures_only=True) self.assertTrue(os.path.exists("vac_1_Cd_0/Unperturbed")) - # Test input parameter file - with open( - os.path.join( - self.FHI_AIMS_DATA_DIR, - "vac_1_Cd_0/Bond_Distortion_30.0%/control.in", - ) - ) as f: - test_input = f.readlines()[6:] # First 5 lines contain irrelevant info - with open("vac_1_Cd_0/Bond_Distortion_30.0%/control.in") as f: - generated_input = f.readlines()[6:] - self.assertEqual(test_input, generated_input) + # Test input structure file test_atoms = read(os.path.join( self.FHI_AIMS_DATA_DIR, @@ -3094,6 +3084,19 @@ def test_write_fhi_aims_files(self): for array_tuple in zip(test_atoms.get_positions(), generated_atoms.get_positions()): np.testing.assert_array_almost_equal(array_tuple[0], array_tuple[1], decimal=3) + # old tests with ASE <= 3.23: + # # Test input parameter file + # with open( + # os.path.join( + # self.FHI_AIMS_DATA_DIR, + # "vac_1_Cd_0/Bond_Distortion_30.0%/control.in", + # ) + # ) as f: + # test_input = f.readlines()[6:] # First 5 lines contain irrelevant info + # with open("vac_1_Cd_0/Bond_Distortion_30.0%/control.in") as f: + # generated_input = f.readlines()[6:] + # self.assertEqual(test_input, generated_input) + # Test parameter file not written if write_structures_only = True for i in self.cdte_defect_folders_old_names: if_present_rm(i) # remove test-generated defect folders @@ -3101,30 +3104,31 @@ def test_write_fhi_aims_files(self): self.assertFalse(os.path.exists("vac_1_Cd_0/Bond_Distortion_30.0%/control.in")) self.assertTrue(os.path.exists("vac_1_Cd_0/Bond_Distortion_30.0%/geometry.in")) - # User defined parameters - for i in self.cdte_defect_folders_old_names: - if_present_rm(i) # remove test-generated defect folders - ase_calculator = Aims( - k_grid=(1, 1, 1), - relax_geometry=("bfgs", 5e-4), - xc=("hse06", 0.11), - hse_unit="A", # Angstrom - spin="collinear", # Spin polarized - default_initial_moment=0, # Needs to be set - hybrid_xc_coeff=0.15, - # By default symmetry is not preserved - ) - _, _ = Dist.write_fhi_aims_files(ase_calculator=ase_calculator) - with open( - os.path.join( - self.FHI_AIMS_DATA_DIR, - "vac_1_Cd_0/Bond_Distortion_30.0%/control_user_parameters.in", - ) - ) as f: - test_input = f.readlines()[6:] # First 5 lines contain irrelevant info - with open("vac_1_Cd_0/Bond_Distortion_30.0%/control.in") as f: - generated_input = f.readlines()[6:] - self.assertEqual(test_input, generated_input) + # old tests with ASE <= 3.23: + # # User defined parameters + # for i in self.cdte_defect_folders_old_names: + # if_present_rm(i) # remove test-generated defect folders + # ase_calculator = Aims( + # k_grid=(1, 1, 1), + # relax_geometry=("bfgs", 5e-4), + # xc=("hse06", 0.11), + # hse_unit="A", # Angstrom + # spin="collinear", # Spin polarized + # default_initial_moment=0, # Needs to be set + # hybrid_xc_coeff=0.15, + # # By default symmetry is not preserved + # ) + # _, _ = Dist.write_fhi_aims_files(ase_calculator=ase_calculator) + # with open( + # os.path.join( + # self.FHI_AIMS_DATA_DIR, + # "vac_1_Cd_0/Bond_Distortion_30.0%/control_user_parameters.in", + # ) + # ) as f: + # test_input = f.readlines()[6:] # First 5 lines contain irrelevant info + # with open("vac_1_Cd_0/Bond_Distortion_30.0%/control.in") as f: + # generated_input = f.readlines()[6:] + # self.assertEqual(test_input, generated_input) # The input_file option is tested through the test for `generate_all()` # (in `test_cli.py`) From 40545a8c249e747e324d718248f62f08a2899f83 Mon Sep 17 00:00:00 2001 From: Sean Kavanagh Date: Wed, 5 Jun 2024 12:18:48 -0400 Subject: [PATCH 8/8] Bump changelog and version number for release --- CHANGELOG.rst | 7 +++++++ docs/conf.py | 2 +- setup.py | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 50890f4..28369b1 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,6 +1,13 @@ Change Log ========== +v3.3.4 +---------- +- Make oxidation state guessing more efficient. +- Update Quantum Espresso and FHI-aims IO functions to work with new (and old) ASE release. +- Minor updates to ensure compatibility with recent ``pymatgen`` release. +- Allow unrecognised defect names when plotting. + v3.3.3 ---------- - Add ``verbose`` option to more parsing/plotting functions for better control of output detail. diff --git a/docs/conf.py b/docs/conf.py index 80d6662..f2a3a6c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -25,7 +25,7 @@ author = 'Irea Mosquera-Lois, Seán R. Kavanagh' # The full version, including alpha/beta/rc tags -release = '3.3.3' +release = '3.3.4' # -- General configuration --------------------------------------------------- diff --git a/setup.py b/setup.py index 336fa1d..f583320 100644 --- a/setup.py +++ b/setup.py @@ -131,7 +131,7 @@ def package_files(directory): setup( name="shakenbreak", - version="3.3.3", + version="3.3.4", description="Package to generate and analyse distorted defect structures, in order to " "identify ground-state and metastable defect configurations.", long_description=long_description,