From bc78560ee1184f6da5652fe89c70d200545800ac Mon Sep 17 00:00:00 2001 From: "Gernot J. Kraberger" <16017581+gkraberger@users.noreply.github.com> Date: Fri, 7 Sep 2018 14:40:43 +0200 Subject: [PATCH] block_structure: add corr_to_inequiv --- python/block_structure.py | 37 ++++++++++++++++---- python/sumk_dft.py | 18 ++++++++-- test/analyse_block_structure_from_gf.ref.h5 | Bin 73312 -> 76008 bytes test/blockstructure.in.h5 | Bin 66104 -> 67352 bytes test/blockstructure.py | 3 +- test/blockstructure.ref.h5 | Bin 248384 -> 240784 bytes 6 files changed, 48 insertions(+), 10 deletions(-) diff --git a/python/block_structure.py b/python/block_structure.py index 42227c82..df0cc2e9 100644 --- a/python/block_structure.py +++ b/python/block_structure.py @@ -107,6 +107,7 @@ class BlockStructure(object): sumk_to_solver=None, solver_to_sumk_block=None, deg_shells=None, + corr_to_inequiv = None, transformation=None): self.gf_struct_sumk = gf_struct_sumk self.gf_struct_solver = gf_struct_solver @@ -114,6 +115,7 @@ class BlockStructure(object): self.sumk_to_solver = sumk_to_solver self.solver_to_sumk_block = solver_to_sumk_block self.deg_shells = deg_shells + self.corr_to_inequiv = corr_to_inequiv self.transformation = transformation @property @@ -187,6 +189,24 @@ class BlockStructure(object): return [{block: indices for block, indices in gfs} for gfs in self.gf_struct_sumk] + @property + def inequiv_to_corr(self): + if self.corr_to_inequiv is None: + return None + N_solver = len(np.unique(self.corr_to_inequiv)) + if self.gf_struct_solver is not None: + assert N_solver == len(self.gf_struct_solver) + assert sorted(np.unique(self.corr_to_inequiv)) == range(N_solver),\ + "an inequivalent shell is missing in corr_to_inequiv" + return [self.corr_to_inequiv.index(icrsh) + for icrsh in range(N_solver)] + + @inequiv_to_corr.setter + def inequiv_to_corr(self, value): + if value is None: + return + assert self.inequiv_to_corr == value, "Trying to set incompatible inequiv_to_corr" + @property def effective_transformation_sumk(self): trans = copy.deepcopy(self.transformation) @@ -285,7 +305,8 @@ class BlockStructure(object): solver_to_sumk = copy.deepcopy(solver_to_sumk), sumk_to_solver = solver_to_sumk, solver_to_sumk_block = s2sblock, - deg_shells = [[] for ish in range(len(gf_struct))]) + deg_shells = [[] for ish in range(len(gf_struct))], + corr_to_inequiv = corr_to_inequiv) def pick_gf_struct_solver(self,new_gf_struct): """ Pick selected orbitals within blocks. @@ -716,7 +737,7 @@ class BlockStructure(object): for prop in [ "gf_struct_sumk", "gf_struct_solver", "solver_to_sumk", "sumk_to_solver", "solver_to_sumk_block", - "deg_shells","transformation"]: + "deg_shells","transformation", "corr_to_inequiv"]: if not compare(getattr(self,prop),getattr(other,prop)): return False return True @@ -730,8 +751,10 @@ class BlockStructure(object): ret = {} for element in [ "gf_struct_sumk", "gf_struct_solver", "solver_to_sumk_block","deg_shells", - "transformation"]: + "transformation", "corr_to_inequiv"]: ret[element] = getattr(self,element) + if ret[element] is None: + ret[element] = 'None' if ret["transformation"] is None: ret["transformation"] = "None" @@ -761,8 +784,9 @@ class BlockStructure(object): d[ish][literal_eval(k)] = literal_eval(v) return d - if 'transformation' in D and D['transformation'] == "None": - D['transformation'] = None + for elem in D: + if D[elem]=="None": + D[elem] = None D['solver_to_sumk']=reconstruct_mapping(D['solver_to_sumk']) D['sumk_to_solver']=reconstruct_mapping(D['sumk_to_solver']) @@ -770,7 +794,8 @@ class BlockStructure(object): def __str__(self): s='' - s+= "gf_struct_sumk "+str( self.gf_struct_sumk)+'\n' + s+= "corr_to_inequiv "+str(self.corr_to_inequiv)+'\n' + s+= "gf_struct_sumk "+str(self.gf_struct_sumk)+'\n' s+= "gf_struct_solver "+str(self.gf_struct_solver)+'\n' s+= "solver_to_sumk_block "+str(self.solver_to_sumk_block)+'\n' for el in ['solver_to_sumk','sumk_to_solver']: diff --git a/python/sumk_dft.py b/python/sumk_dft.py index 1b7c3d18..854ee564 100644 --- a/python/sumk_dft.py +++ b/python/sumk_dft.py @@ -98,6 +98,8 @@ class SumkDFT(object): self.misc_data = misc_data self.h_field = h_field + self.block_structure = BlockStructure() + # Read input from HDF: things_to_read = ['energy_unit', 'n_k', 'k_dep_projection', 'SP', 'SO', 'charge_below', 'density_required', 'symm_op', 'n_shells', 'shells', 'n_corr_shells', 'corr_shells', 'use_rotations', 'rot_mat', @@ -123,8 +125,6 @@ class SumkDFT(object): self.spin_names_to_ind[iso][ self.spin_block_names[iso][isp]] = isp * self.SP - self.block_structure = BlockStructure() - # GF structure used for the local things in the k sums # Most general form allowing for all hybridisation, i.e. largest # blocks possible @@ -187,7 +187,7 @@ class SumkDFT(object): # initialise variables on all nodes to ensure mpi broadcast works at # the end for it in things_to_read: - setattr(self, it, 0) + setattr(self, it, None) subgroup_present = 0 if mpi.is_master_node(): @@ -2145,3 +2145,15 @@ class SumkDFT(object): @property def gf_struct_sumk_dict(self): return self.block_structure.gf_struct_sumk_dict + + def __get_corr_to_inequiv(self): + return self.block_structure.corr_to_inequiv + def __set_corr_to_inequiv(self, value): + self.block_structure.corr_to_inequiv = value + corr_to_inequiv = property(__get_corr_to_inequiv, __set_corr_to_inequiv) + + def __get_inequiv_to_corr(self): + return self.block_structure.inequiv_to_corr + def __set_inequiv_to_corr(self, value): + self.block_structure.inequiv_to_corr = value + inequiv_to_corr = property(__get_inequiv_to_corr, __set_inequiv_to_corr) diff --git a/test/analyse_block_structure_from_gf.ref.h5 b/test/analyse_block_structure_from_gf.ref.h5 index 7acea34d680aa13c55ebfa786da8eea4044c2812..e046860512cd1a04b2918461f2c7fecf8a0cf7ba 100644 GIT binary patch delta 6538 zcmai24RBP|6@K?FKksdR*d&H*Hoz_d62jjy#IhnfTgN(#MF?Oe1%*WfB4S*SpOs=+ zT7M!_=`N?546VBOQ&!Nrk8~s;mc^k?V6d}*LsJkNtksB&EVkkbj`rSj-rY^!IMbbh zbG~!WyZ5~FoqON8=|0e}=Xk$ZE$^u{>uz(fh-rS$AlzSfwrKRLtp|@|n9+C>!4NE7 z>*ek_aJ2tSPvB`XGRwECjg%n`#I5 zeYC;CVK>=pttnGO`}%cRIOipM(DF-+?&}wuL^w5>WP|0GS&GUMO~o8(rjfQV$q)%G z^)M;QuVEA6+#@6-mS1>7U%##=Ex)JY<^+fph2rgQSTTGC@3;w`AF@!2?}jYg)M4e* zA-oOoPvL$x+~0-=*ziCb)@@kM-Fto~;Z6Aki);?X0(0?C1yo`iFSX%8Hte$DG8-;O z{L{h$6*h-!Y`D^fWuf$bqpG-B4Id7J_@43Y&E6g+Gu${F6WuYqkZ6zXu^Jm5V#Bh| zdM`7~hGqTr9{1VsaKeQ|Uu$z1A#m?RkF?=Y0!wlf5!czUEco8za>w+>V-PPWOi*WY z7;D4hY}?^-zvyGPJkdkiCQf$c9Yk;S`UnHxDL3~` z#N)NAp2qNaHQYBSw4>Bp9gvkEe(GIA7LI~h=WS1atTSicG#YlDN^q@M5K_+*V^s1( zFng>QVt44Q3$@@Voi~h&n}0z*^kTUCx^>(|!Y#y-^^8DmG0eD6fj}`#TPnejIUn;* z@%S+C&DD8uywoyvI`2R&ENuP>I67A6Nz~H9=AINcn{mPE#qgUuZ{?XO^25M0li~JP z7RJ;1pd}BjUcG3|LyPWjUb<@S{p(=S1CKy%pAYFQ9Oy8AUNd)1BaR|dV8x{7TRLsW zf8ct`S>qIv@>G()^lXwUmre5tx7;niSeXfik$(`E3CzS0J8lGLrWtZhmos8<({`h& zDy?8@-!diX;tj>H@rkZXTA5b`OnF$pjZGH2W>Lq2`~ByQd@jO+7`!1=;YKWmGt3jWKqoNw3sL5)`{#;c< zlByxMh!{=YjXSfz3=-kH7l}wLl0h(q2$WpL*Z55VZB)65uvrF7!#-425C$PW9=`5_AHk+sX|O=&Kq}_W+^tGtVumW z{by>RkGJf!cHGP0e0;gFgF?!_gj*w%#J(}Rn|%B`;k-Dy>lia2Xw7qFyN z?|IWsoGb7;Y?(Zfr6lK$w%uCmjRt$rvIh~|h{*@G*8O7SBu8IBQr+nOJK zyrGt*iNKx%cmNhQ05X$2gc!aWC(n$Qfx$Xk#Z*Sm5az2{w8 z8Q56S>i>g5VxOCb55xX_&9~_9(3qOjZ{dc+WLG@7j`sBnSh(?+30Dn&cVVCbVaM;pWM6*rrB5q5&TXEzmHL@E`r`87$$d%5QWfF*58>cfvLYlW9bX|QvCA~zBcViW3I=S}O8#-vEohp?%dUw1c>{w^5R} zm%#^T6dSw9wui)i67P^WN^Atbk&{X`I#3gx81uubtHehVHJ`XQ_^x6Uf}O)T>8;nw1Y$r2Es02CU3<6tVWJkN4+}XbFQF$52Bn zQ<)IA2P0UikmxpRT5Ju7#%R>%V5T{gwRSt1;Vjr-L3k%WEl!cE^^RbF7B`1NVzI#o zq9)ECM+>RqJsr9(tZ!rAe!dL5%PSV#M`&5<-16s=urL_Jn`swFf>xw^gpqHpS}!@-PvH4^bq?QPX6~-!JWVN?raG^XX9*^DU#rD)&IbQ|7VKNsgMP*N|2_v=C}98-}{Q9QmE@#ZbkLaJYt} zDhZBR>RE$dD~!bNE+S_?iK8S=lQ>`AD)KyTudAAI#;=gkSwSUGfo#U)Ovt9gHA1Sy fW^g2$#ZAGHMpd%u2#!LlWK)-~No>|t&}HF&`*nIb delta 6278 zcmZWs4RBP|6@K?F!h4$t8-9}Ah0VSsC=149qd_yRomm;HTSZudKMNvVqJ=F&SWq#; zpezh+w`eh&Gnf=DvrsK7wKXpp4Wj7ESi7RO3w7v9)k!GUonUpt446_{dhb2&y-i+s zCOJR%-gD1A-+A|auW)?A;F}XVeKb<7&AZhGD_489%qIlma~$>#34h^-!ELKnqFd06 zz|iL^iNmog7P)in=p*{nG@ugNmDDakXPFHCNh#Vpx!+w=Nui)PA#h+3nFx#ROL-4nF>3dtL&v>h&k~p_>QfCrrbDba0b|Sw7WW{jo&M!+nN4- z)2EPR#sTrXq8QE@Fg$w|EzE@Boei$cY+S0MkUHj}64JCUIr>gHI~P6RIOZY^aCpwu zisO28MY@w7qPnWkGRh-6(e}CdNq47+qL?0bh(%Cj?Qqedg0H+@$=|3ihHo6#jPp?8 zDU{c5HRjmZRE7N+_5_Q~@fn3ZI=5GYGVg(oRiWO#g`QtS< z_)LpE%VK*hcD2R!T5Q!~*PvZ0Z>?oQ9ka)lm$&Lz`zmI0NR0AdZL#NAY@fxRE9|>V z0eJ6^4S0>k<`>S`@oOzMzld-g{L?bYj0(kRtt1E=Drdl8t4f2jlUg;XOJpiv&9&G( znZ{9LzEP&VC02yQia>oE37cBP)S^O5-Tk2H=@44yJta>4&q zG~(lXhx{_lqsDxpx!jjx(=u?^JTItEgh6e(opg#g@g_gbHfaYdDeY*0Q?ISEm+oE| zZf>Xk8}L4gHNmNq?Kj6PH?_Z!6^8vnO(^vXUXmB0ZQLBa3=96t!BE(n%;drGo}!p* z#Rb@LBi#N{BMFLR^7CQO58K@_{W>zj^yv1X`I>RnmR$X7zL$2;o>_2dWi!p+#*fVa zai@NOTN^R5x?Q+~zra+RlSUSb3$x`;oT#FZimj-a7bXp~^4BB{-Y4$L#QiuPfo)|~ z_EK1w*P0?}QC{8}nT2{LG`@&yyfsEqW33TeY_vwNSixK4kf~)%Ei1I%XsHqM!jt-O z$x{#>)*7_HqE@rkppg()SR3TIB3dJKm(Z9mD>T*`;9H`ajZqX)cw+>XA@;?4#S6>C z@Ltgw(d7cE!cvZu%WnZZeIFJl3)_~iPiA@{a70lI-%_}JAO!nYhUqAxRk)w$#L#l} zK7i{CwDP(=3N?{$A-35?A_A=7N}Q*nkfhb9l)wtD5@5+|1z5otjz?gn>Xgl(cdfi0 zmbbQ3*#jT8Hq%^0&x3ZhF|E6J1yRU@+!te5#hE4^W9slgef{Hv|KCJa56rsOF#H}U zZ!nAiP6&G7Qo|WK$^&swVh?eJ0Z`xy2ZbGKLz@>uOJ%}fWf}*iWwi+k4S8T~(=Ak5 zkBCSQGelM-Gcp94J4j1XYlM`hC?*|Z0No9%u5!D48}QgIdYRP6QRxvRpz{&u#Dd^} zu=mJJ@^ewC>~5n{+v>coKm;uVkLX&o6OdfTaqW6QQ4Ci*4DU+QFss0(W}1$Pvax25 zZRDDxQ>I0(v4gX#tLf3VA@;;F8uh^POP7wyHFez>togfc=Hl%6814xWfc9u@hYenDI`uO)zP&3ood> zctP#Qadtt~dEIFXkj1Q(WUnhMr~`Z{ZwM-V&vA zRtqG3C|XbiQG}U*X7h8S^E@m&?`0neo6paY?buoosIbjZTPXL@ie^Mi=rP=LPB zF0en>PNiQVBGDe0ci^F|6D7_o`7gT*rSVkwo<%#T$8@48iTK7aYIPFxMor&qmLo?L3b%ghGm05{ys4RDG9mf__s-Dcv>>lDHDJH2b*F z?h)TIrL&2~5A4I5q@QOsX?M#B3}^(1>HsF5*I488+re~*<>?psTfz%_qV07#Bur%R_n1aRPfLQKfhthz?e-0vV6$H*frZnZl^eJ3 zUbbY>;#&yg$TE&d1(quk&cG`okwBjcy{{jnq(&st*(Va|eU+hAMMU%h`5Rgc23+9)5j9w_?`JJ1U8Sd@~3!$bR6 z)s0NzM~zGZ?;4pLLXBnO|AUc9nrWEHbu}>S%;PKsXA=u*p!^GN@H_^y0wL)`(N2l1 zXs6QUAW#f`B<4hO`g8e#AnJkl$Ja8d+lddx*F11?{Jg^FXv;A2*|+@hHP?yFdXK{~ zPa`=Y@^Rz@^-F&=K15Ep*?ag;-u}=mnb=L&pH1f1S|fP6;{>lq=7Qq-%lIhL$7ri3 z4VvC_QZT>RU-bbLlJ7HAO3bh0Q`iGuG6aWVj{F6VM!JtrAWqo`3d#IpNX>1fZ5+5} zI?8sz$LUbs0L}l2&=_cGrXlfLgCK20u^Gj76gyFLF)?bOxu2bqQ9tz*3&p8lk5Cu` za=^a7F~Y~FUjjAuE|osz8#3xgW1n+E!n^cfjUavw# zh*}^W9MUTVL#K5-OxGC`kG>k%^4Wa&Wx)%%KE?GVt}z~2M*(gBuz^N;SfCL;qL}YvleIP=^7P$ZE7v&Yh)0PU-ClWj|#cO55aCd;)9z1cscP-GiAM? zLAAAlu3d*>0g6@>ZA>8X4qi5hx1u_X>GIC~1QRZDISmgfNf#p{c#=v_N+^)pHOB{wby)9ElwBOF4G@x|v znMT@OJr>F%O~L?b_edG>4h-7Zr<`p1Dk{kLq2ZZ_Xdi2emCd$5nMjO%f)cqqSx(k> z$5e8W9_6F6p|eRP&H*xoTqY26I&Il01fFvKsB8>fg0sy_#3xr^2JUO%-7*vH65f)B z?e#!+%0nvLqX;Tak)*g@5aN)(xz!BMpRJhxP&#t#uqto9q;k8JxBRstixtA(!xS bKwI2G<$xYSl>-`|#k>e;TOFg@JIMb4heS0i diff --git a/test/blockstructure.in.h5 b/test/blockstructure.in.h5 index 6e1bb46905cf3496c64e184258c9168afef997b8..7e03651c9fa5b68fa3be4e9480d8a2a236ed296c 100644 GIT binary patch delta 2473 zcmZ8iZD>*ITijrj3L0kHMTHn;lTO8E zP)62?CVfEz`;+}}i}fqlOEJ11%VZx>sf*KUs#t=>8e81dqIPa|J6|^+4cvR)=RNOv z&+|U#JvYhTis*rgumf8wwWYOHk(9i$LXsqBl)T6fk!LP>42+3gI&Uh>!@jC|?2N*9 ze7Iay-(xJQBtc3^5_uM;bEQem1k;U-_48)oDuU@_%+H^N7Z6N*?-T+S&I(Worb&$i z)wA#-U7LRl>t6NM6&1Sz{TuY)+EzQaG9B_9b&*6%;OfwM$ZoMiV4EGfdsW@J)rlZ! zvFqV&-4@iXY5yThf`v;`NQ~Bt)PNTkYUJO!%M02Ub&C6{fgZh9r-yoT2uok*A4@9Elg<> za#z9LO1nkh-oN3)_ugNN2oW|zvV{6HZ6$(4z>4LAu(Y!g_3Ia_Ef^;b!1Fh|%tei0 zX-k(90KT&qzO8P+;X``MbqhurSRd(xeZ6Lz?_fEzu)v9krqv=!&0KV`jM>Ab8Iy6A z5jzjT#Qu&}T;Q1z8ynJ03v4~am#ch`f&=9Q;sU3SN3^F9_A5$Zp>Bq_iabzrv>7>J z{m}+24QSc|1ok8C$P0UptVS+){a7QmpX8+S#|f#8qzFYRWQDEuA3-MHO0TJ8LIIi$ z$4*4FTJYEvbgGar$P&h3&B;cb9^@K(PBV>*{lyef&+rns#!ct60dgFHLFh~PZL(fo zUX#F{!GgX;7qr)TV0Vi}&m`R#XU{_WvW{h@f}{blk0EJP;N)4phYCjr8;})Nebo>- zlV)dE4AJ|3SXqhHUs)lL{rNm;HxG)zx--o<`is$1N}AnON#eDnhIrkn3t$`TTDW=p z&Yhb+-M(pyzjMcDTXsRu*yph3Ej!z(c$dIdO~z?rjYI6+58&po1Nw$NC=IuUS1ZzJY5Lr#5ahOKW7+I8O1jMo z$j|~v>qkZ#Y>r$xd5^$>I|ljuozm>7F-AUohmkKvGxD|^BahuQ zIQfT^JWl4pe6SHs@|N-D*;OfiIoVaQKPaIfOMh}in&?L@wF*IQiE4IopA?*g^W%P- z^*+Z&)4K%rPHM&ns_25<`8b}gg4U@OIQYOI?EZ^dvHL`KVvR$1q8-UFInhJz%H%`? zoXc6TJjK4HPdWL-WBx5Ie9kF(9C!v71C3~!>6Upy@AnelR5`t{zzMiAbuW@~vbHNY zpHPCx0qdrkapoCiMf)Q9x53o<+~DVA{M-gVrEP}q!y3=jEg}6<^r8A9|ErSNw` zd74rPLCy8$GUl4K(LZHy{G(#uT=>bfvA)9e;&eRJ4Mn9fks&$Rck+Pc|0#NJW* Q#_{>EcjS%3A%qhD1H0{*fdBvi delta 2443 zcmZ8iZ%kWN6o2=E?7a%Jn57~_cqR(Xrdf6C!akT_;)iZoVnMSsH6fTFc9=B%*vt=O z2_GuX*>WTh^h0r3RxyyibsG&VT8)1SLDE2+Ww_eFfGRS})QQ7o-hZ#JH>)kME)ztPsf<7%ZqT?uKn_mR#!otTma*h zjhIX~DjUz}$M=vOrRcc43)8(~dK1B%jV#D`l>CZuCBgKk^H=S{dkH4CLj{M&b~%^{ zrldMSbpgl5t1e?mZS0M8nJtIQhc6AdV?D2&Q28p=DL(?aQ!2=EC9^gWgO=ns-km6as(7m$)ODqIQatc33Z>e8!gX8EX zpFP4a{&%TgR$yscIPfX-#W85vCxfle4X2M=l;C-8?|_l&CL9gLYCp1IoIeLMAupKU zmmk;Ti}rEH)HzM7N0h^4m|*|$E@ivFm@0jNQ6U#hhu%7YCE87NLy{l zG5V6y5#gj%trdO7#mW&Pww)<5E`jdGlOT__ArGTWL@1^2MJ2WsIfam)u_Z-edG2yi z))3e?2KS%sG8xsU$w4+i(Sz7|RU0Mg4Mw5+s<+lUUMkTkurFFjv0(ytgOgQk=$fIS z3Hv7at=m_?eW3HTvO=DNmrKdx0;jKVyPoHGywoo%ur$T(HSp$SQ)nW|@?(&Y{De^e z4qUh6?Q5EL1VPkS6AMf@Fjl8n0t}*9-_(&k*p=iDO!}LznU3%@zkp{iG0Te~C0XaG z-x-~k_?A0nzb~Z4FtN^)=ZdLvbDYXEOQ<@FT2GqcZhA{u1$NAGyPgv1#x6gB9cj^e zCgUWy7a}MOQyDw<%!#(EwWUf4Tmt*&DFI28lAq@uTzqnYwZ+gp^euOp3~!d?D15wP z$Ib;oj?F*PRmY-?17x)Z;bU#EoNk1k)i(I_rWNk5T9ib(m_EEH5|S=7y0svQ2}m*l z>Y}*g$=uCS0p=x+ZO}UZ4-*i%ReVEFh6+GV7`fE|`JWt$aiBVL2tH}_qBNC(WZ23y z;p8v6gqEx>VR(g0aIZ26*m@g=M-QTP-rnj8Oip)!ZN?ArY+Ho?c#}@pJtQ0Fh zDwzTOzTQ9jx=g#L3`tdRJ@X7nx(um5+OV0!#1krZZ1Ip&n=sS*wo-UqvrY}(<#fF6 zzCT&r^Lh3<2;AX&dV59%PUQ1!E)AQ$^WuLA0jL>T?-hk?D-F4Y z!~)XR$Y(u zFZWe<3VIBat_L{>-^Iv|TOJ4%Sbj)WCcO*+iU!p(BqMoX1T`oQPAUZ`8uXD3EYlFY YMy)zZh5JfjPbmzR!Z3q_o(dHGABpst-~a#s diff --git a/test/blockstructure.py b/test/blockstructure.py index b0da8c5c..92f5f3b6 100644 --- a/test/blockstructure.py +++ b/test/blockstructure.py @@ -45,7 +45,8 @@ sk_pick1 = BlockStructure(gf_struct_sumk=SK.gf_struct_sumk, solver_to_sumk=SK.solver_to_sumk, sumk_to_solver=SK.sumk_to_solver, solver_to_sumk_block=SK.solver_to_sumk_block, - deg_shells=SK.deg_shells) + deg_shells=SK.deg_shells, + corr_to_inequiv=SK.corr_to_inequiv) assert sk_pick1 == pick1, 'constructing block structure from SumkDFT properties failed' cmp(pick1.effective_transformation_sumk, diff --git a/test/blockstructure.ref.h5 b/test/blockstructure.ref.h5 index c9eb42303698a3aad0d5067b8d916f9d52d8ea7b..d85903cf04181b46dd7763275e790d8b7ab2196d 100644 GIT binary patch literal 240784 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 H39tVT&h`6x literal 248384 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 h`X1N6xySWy?Q#9q>%}tYS&8Q9^9$