From cba479bf6ea8dae4c262083444b9a1edd946bf41 Mon Sep 17 00:00:00 2001 From: Giacomo Fiorin Date: Tue, 8 Apr 2025 12:18:07 -0400 Subject: [PATCH] Update Colvars library to version 2025-04-18 The following is a list of pull requests relevant to LAMMPS in the Colvars repository since 2024-08-06: - 752 New tool poisson_integrator_conv https://github.com/Colvars/colvars/pull/752 (@jhenin) - 733 Custom grids for all biases https://github.com/Colvars/colvars/pull/733 (@giacomofiorin, @jhenin) - 776 Avoid error in acos and asin with fast-math https://github.com/Colvars/colvars/pull/776 (@jhenin) - 773 fix: fix the clang build test failure of OPES https://github.com/Colvars/colvars/pull/773 (@HanatoK) - 768 fix: clamp the input values of asin and acos in case of fast math on aarch64 https://github.com/Colvars/colvars/pull/768 (@HanatoK) - 761 Add debug code for the Jacobi failure https://github.com/Colvars/colvars/pull/761 (@HanatoK) - 759 min_image fix; Saves long runs from crashes; https://github.com/Colvars/colvars/pull/759 (@PolyachenkoYA) - 757 Fix MSVC OpenMP issue https://github.com/Colvars/colvars/pull/757 (@HanatoK) - 755 Fix indentation of 'Init CVC' message in standard output https://github.com/Colvars/colvars/pull/755 (@jhenin) - 750 Optimize and simplify the calculation of dihedral gradients https://github.com/Colvars/colvars/pull/750 (@HanatoK) - 749 Add references to new Colvars paper https://github.com/Colvars/colvars/pull/749 (@jhenin, @giacomofiorin) - 740 Report the specific C++ standard at init time, stop warning about C++97/03 https://github.com/Colvars/colvars/pull/740 (@giacomofiorin) - 731 Improve detection of hard/mathematical boundaries https://github.com/Colvars/colvars/pull/731 (@giacomofiorin) - 729 Optimize the fit gradients https://github.com/Colvars/colvars/pull/729 (@HanatoK, @jhenin) - 728 Fix undefined behavior when getting the current working directory from std::filesystem https://github.com/Colvars/colvars/pull/728 (@giacomofiorin) - 727 Add patchversion scripting command https://github.com/Colvars/colvars/pull/727 (@giacomofiorin) - 724 Fix gradients and metric functions of distanceDir https://github.com/Colvars/colvars/pull/724 (@giacomofiorin) - 715 Add missing rotation in orientation component https://github.com/Colvars/colvars/pull/715 (@giacomofiorin) - 713 fix: try to solve #87 for non-scala components https://github.com/Colvars/colvars/pull/713 (@HanatoK) - 709 Implementation of OPES in Colvars https://github.com/Colvars/colvars/pull/709 (@HanatoK, @giacomofiorin, @jhenin) - 706 BUGFIX for Segmentation fault in colvarbias_meta::calc_energy() with useGrids off https://github.com/Colvars/colvars/pull/706 (@alphataubio) - 570 enable use of CVs defined by PyTorch neural network models https://github.com/Colvars/colvars/pull/570 (@zwpku, @giacomofiorin, @HanatoK, @jhenin) Authors: @alphataubio, @EzryStIago, @giacomofiorin, @HanatoK, @jhenin, @PolyachenkoYA, @zwpku --- cmake/Modules/Packages/COLVARS.cmake | 5 + doc/src/PDF/colvars-refman-lammps.pdf | Bin 1632360 -> 1681941 bytes lib/colvars/Makefile.common | 2 + lib/colvars/Makefile.deps | 16 +- lib/colvars/colvar.cpp | 231 +- lib/colvars/colvar.h | 15 +- lib/colvars/colvar_rotation_derivative.h | 102 +- lib/colvars/colvaratoms.cpp | 144 +- lib/colvars/colvaratoms.h | 109 +- lib/colvars/colvarbias.cpp | 57 +- lib/colvars/colvarbias.h | 7 +- lib/colvars/colvarbias_abf.cpp | 120 +- lib/colvars/colvarbias_histogram.cpp | 6 +- lib/colvars/colvarbias_histogram.h | 1 + .../colvarbias_histogram_reweight_amd.cpp | 60 +- .../colvarbias_histogram_reweight_amd.h | 14 +- lib/colvars/colvarbias_meta.cpp | 215 +- lib/colvars/colvarbias_meta.h | 26 +- lib/colvars/colvarbias_opes.cpp | 1996 +++++++++++++++++ lib/colvars/colvarbias_opes.h | 176 ++ lib/colvars/colvarcomp.cpp | 9 +- lib/colvars/colvarcomp.h | 12 +- lib/colvars/colvarcomp_alchlambda.cpp | 49 +- lib/colvars/colvarcomp_angles.cpp | 76 +- lib/colvars/colvarcomp_distances.cpp | 33 +- lib/colvars/colvarcomp_protein.cpp | 203 +- lib/colvars/colvarcomp_rotations.cpp | 25 +- lib/colvars/colvarcomp_torchann.cpp | 233 ++ lib/colvars/colvarcomp_torchann.h | 63 + lib/colvars/colvardeps.cpp | 46 +- lib/colvars/colvardeps.h | 22 +- lib/colvars/colvargrid.cpp | 124 +- lib/colvars/colvargrid.h | 170 +- lib/colvars/colvargrid_def.h | 64 +- lib/colvars/colvarmodule.cpp | 80 +- lib/colvars/colvarmodule.h | 53 +- lib/colvars/colvarmodule_refs.h | 151 +- lib/colvars/colvarparse.cpp | 5 +- lib/colvars/colvarproxy.cpp | 56 +- lib/colvars/colvarproxy.h | 52 +- lib/colvars/colvarproxy_io.cpp | 69 +- lib/colvars/colvarproxy_io.h | 6 + lib/colvars/colvarproxy_replicas.cpp | 83 +- lib/colvars/colvarproxy_replicas.h | 66 + lib/colvars/colvarproxy_system.h | 6 + lib/colvars/colvars_memstream.h | 3 + lib/colvars/colvars_version.h | 2 +- lib/colvars/colvarscript_commands.h | 13 +- lib/colvars/colvarscript_commands_colvar.h | 1 + lib/colvars/colvartypes.cpp | 89 +- lib/colvars/colvartypes.h | 59 +- lib/colvars/colvarvalue.cpp | 139 +- lib/colvars/colvarvalue.h | 86 - src/COLVARS/colvarproxy_lammps.cpp | 72 - src/COLVARS/colvarproxy_lammps.h | 17 +- src/COLVARS/colvarproxy_lammps_version.h | 2 +- src/COLVARS/fix_colvars.cpp | 4 +- 57 files changed, 4346 insertions(+), 1199 deletions(-) create mode 100644 lib/colvars/colvarbias_opes.cpp create mode 100644 lib/colvars/colvarbias_opes.h create mode 100644 lib/colvars/colvarcomp_torchann.cpp create mode 100644 lib/colvars/colvarcomp_torchann.h create mode 100644 lib/colvars/colvarproxy_replicas.h diff --git a/cmake/Modules/Packages/COLVARS.cmake b/cmake/Modules/Packages/COLVARS.cmake index 8fa0d84f01..b4dc738626 100644 --- a/cmake/Modules/Packages/COLVARS.cmake +++ b/cmake/Modules/Packages/COLVARS.cmake @@ -26,6 +26,11 @@ if(BUILD_OMP) target_link_libraries(colvars PRIVATE OpenMP::OpenMP_CXX) endif() +if(BUILD_MPI) + target_compile_definitions(colvars PUBLIC -DCOLVARS_MPI) + target_link_libraries(colvars PUBLIC MPI::MPI_CXX) +endif() + if(COLVARS_DEBUG) # Need to export the define publicly to be valid in interface code target_compile_definitions(colvars PUBLIC -DCOLVARS_DEBUG) diff --git a/doc/src/PDF/colvars-refman-lammps.pdf b/doc/src/PDF/colvars-refman-lammps.pdf index b8f049ce019f6d2d9555a87a1f0b2bfde8e88bf7..76d94f8e3af70e53b0dddc6b6d060d5ec5913da2 100644 GIT binary patch delta 509526 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/XsC*=Hl(vc#IW3dU?4qZMHva>WG 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%0AXOgS24l9Xx7npV6*Bd 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

@(2n+ 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

o_W_ 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�HWLt9j=0Plzd-2R><@74 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�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 W=nerHIvi+<_{Gm$# delta 460211 zcmZU)b8se1)IAv6wr$%sCbn%mPbRjLCzx0h+qP}nwkP|3-)`;J)~~9o`qb&F{;T_* z+o$hMTe3WxGpoaeL12etRX++tV>++UAUhD=1C`wV9nXQBkgvX3Lu z-;J_q&`?2IP3+eikJ!91W~9AUW}@KX!9fq)$c~3HK&1Q%-W!sU8xG}y++tP0i4V3Y zWFP>fM2GCD1YyISsnL1sW6%UK!Pm+`CRB?Sm`C&5(`2HdafDdNrJ>#6aG*ohtp+oq z+5gfkA~7aGYq|h~FbK}qDe!b4fa&C-q(^wMr+{g}kv&s(YZ}EtapoCeW5nF5CxD0v zHr_D4Z86?3z13tVM`5}Y5$UoYkM+!7m$d}MLQFfax_WEy4OXGhXj^)jG4sOky!>LZ ztFJ{fZo%RJX05wY^PIGSOk0c-^noVIphUYCx0%jdiLjCIfPk#g`@pV&1eB-*AwFr@ ziWq|aro<}^>R*7xAb^3vXB*=+jlpnr6yg}W+ppM$nW6LYNtVF8gPEuV`JL4;!fhYeEe`-=h@ zk4yu3i$14RM2rXj!NFH}JO}**&IH>+n~zChCN*J9OxXiJBxZHC+Q%RhR0d|-U)$$; zB`rf?1ln#4hkd4WwvI;`kvv#-c8vuvrCG#kFXtX6v>&N%Lzo5=jLc<{d2-R0~Wn(P?;)U)-81Kt-A)n(zVWVZTWH#2?j z?Ys${1}?!n4U}l9NZz$xQW88Z1B_IgTU}R#e{PB7@i^QKy-!js749E^fRa+{M6G}K zhxX)4jhTB74#DX`I}=`dUY~$y!WiwJi3C8BG3VyCD8#2T;c9K3D%^~d(582o)l!HU z^`dpOQg@B#?C3XputJ!kkK{b4>{k}E9#RP z-!Q%lL&DF>XvD?uae)-cDf4UckAr`TDSGD7?OLz*GqSFU#I!CSTU z3o@*`(&lKI^w{n$&auR>uFnn79gpx`l#%RccY(~Ecg*dTtNhZ5v+){aExz2%VR5pY zTsJEM?h0CJ9?_$R@7f>WO)vEA9O=`hU+Nk^Dp+JN)Z=*}iqzj^vM*rU`$WEhcqh(r z!_H?8Hd^A;tvDDUg$|f`LW%(a>Ov^k1lk$*=HH0*!J&G|UGE|o0U5ipE;S>>uRcE9 z7D_69aHr|@Y}GR$rT_I0WNS!!uW+E9fa+5(1r(O5pA#l|vR{rhhj8Y7<+;QoB5HQ0 zUv*o0;0}IIckU(>c7S8X-0D{n@i%@g$EKx>4Pki$F4iO~y=YV?Xa`*aZS_hRt?$ zHmIeARlMcl(De`|Ay`a!BHZ7~c=0!1<^rF6fje(>a>bpwflfyF&5M~&@h|(s{s?%M zLJ`$ym6KD>et_XQGPQN{%Sv&)Pkhkte|K)V8QmHO{lQpn<~cg=l6QPS!VNB=ix-m? z$ijfds)*8w{2ytVEY>$KcrQ!qk%_+d@8grnc0yGpHzuS=5?JD=LxZLly?|2|lnfbE=JOlXE@cnV*LLo6 z(-*ROR?LxS6Q}!=j(*tHtvnguZS_J)Y_zDoe>0skp;9;p)Yp`sdBqEn(lw5?*SntMc^-)Gu{J*hTvAt7 zj>$6xRC>HMPR0%aWAeVCrqX?v7zjU%78lF2hXB%>`0YJ|B$?WIJq7(1^0QMT#G&FL zB2Q))vl{LckMS`xEI|@={-W$J(0QcP9O6PV)3;JpJSD^dgB9NulWqEe$~m#+eh#aO zXs0GM)=9wNs~A~6Gv(zDi$t9cj)d8k-~u(BYajW(%FgTPR*KJ5NkYqssZed7+G%6g zbO5|Bq4e|z5fH}tNPF{=#q%NoTUP>AnjU3hm! z{k}2#P{4lk$nRSx-wIoCVH3{DOHbimXuUm{kSU0~0L@`;=KzimZ0qCmzbUBb=%5_H z0%i>KMl}>NPzZtxUiC&F)KpLi`CbjP|5*lO=LKHQBeRBRp|@(GgQ5n5aqdUj>7}YwUZo z&82XeITXnLV*mVxiPq_pISu!}-&atCPKVdmR)QYEV2z1#0+d@0jxSLT`Fo8oj$?p5 zvK^tzOgk;No@?NQicSuzca>8mF}|{u`tD(%#;8amNk0$)N=%4G9>+1(oozgPYHy}lwX&@htlP(~g;KHjFYUy1o+hLKzp{W`zr zO20`OS;)gPEL0CFh>g=MG30;9kshmjW>@ISwJqGjs+UzpxvIxg!RlN{Yc{{{WDWVQ zaMjPA%f5YSUDOouWj7}NU{3wWf!;mjRXUYKCUcDO0l3i%cbuks+qf;_)2144sHVOa zeyg(USLZ0u2$=b@_M6&$*lOq6U!76lwMxTCAwx}fBjFWlp3`j{(P5jgKa$U`21PIP zfW(XEbwLn{D8jq|jhjCq$5x}T-N_|S(uDS0^%B=evX2dC^cvAw1(r9eL$gzz%G;~R zOh&af0dM!l{b-Z*w~zMS!rcNo;XVF@-tDVBgqCM@1lvdz&bvGzjAR8p_ohyU?9Y-| z1K$EwPsJ3)O_T=tV`iZ+O-35%G4H zAaD*pPeY}hO}UeEzZQMYEDRu+%$1dF%ppYm0P6W`k?`YT@sOh4xKLr(*8_5}flsNW z-|MhRKHIVZcl2u3xDOO5l{~LKm47G?;Y=u-D_w9AJoin;AI&qQ~%C+?c*)IBr4SAW>IggpK z_UB!;Nt5nxXBK zSyPdiQ~n`7XI!BhF}dJ^p-S{2tIptIrr;RVwR-6#hqdNYsDg?EsuST6`w2M119A2U0M%XYFg5APE?)&6`gyi zZW7_acZeV360a%BShC5@elOUPSFaxAe*#{|OkzxTv*_m?j@KdJ(95Vl zflRROTE_yk2Yq(-vMvzt0}B${P#~eoY1G@64xTvUO|pG88=FwoL{~=Px>Gv`e9sy3@n+3x@*KlkpFvX2i8Xd>bY!LYd+8< zS0MCTSsh2gE;`AWPr9-CARHeJ2t%hNR<*kHtx3zQ4pa7FevSf(#lu6twpVs`1Q1-3GN?@5GdONDW#H?)OA9Lk}9bUeij4SC@v2 zr5s~PlE0})kR}Uv;dZG5R$qB?Uj?c6cNWPlBXTO*4}Wp8QD{8M4L*+(@M5`Z%b&PD zVOcQ$nu*|r6(ep=lU_HTsAB=U#xqfIZIvSn?3%{tCbBA{_2kX$IAFTn$j&;7VL{Yg zq;4Bc#aQ6~y?)y>UdQ3sAF>n!MJyz7G$|2Zn%A}lsi}z*Nd zx&`IULrDV8VCf5C`#Nmsqt%wWTVFB-w&`fhJ$P*;M`iubtC17vvtEQ ze@gObPwynCq)$9bCKNgita;9TH-@dAQi_;b+W=P*ijH%4uR+KozT^~d7MQ+yVF{B{ z)W!Vu7$SfPO|F-;MV|T&zmIu)kFca>pmZ(4)~21Eqln4 z*OC!RwGuCT3R+8^l6wM;9XsM|Jf1H$i$fw^<~+gO2tY?@vSfv8^`Q7p;{(r#LR%2qq)Mj18Z43|U%<>lX3NBZ zHDINO5K2eF%cJqr#IeLolnu}XT?d<7n8GS;)cgfb9xxPuGYe(Co%|eHpvRII#Dn$X zwtLl`|ObLVWpH%)B*BPOAgJIu5_{H3tkWXKA%`+-03cI0g=4(w5AAkFiQP9u zqRXGMq`|UR+bWX_55)*(Wj{u=MjtSSQ(Sv=KH06p{k*d~-Y8wQb_Ju!716>w%H|8y zlro8gh5SG^-RjZL@VDB9?!cN^n_oj_t0~1NK1}as5eboG=Lf1{!sR#P*MgbnNMKjFtYB~KbqJ3J+LVyxN$cdH3}1 zlj^i?H1qUX*IX~z!jv)~GuoIz&z4wj(FiFN8{MYh>OwtEc!Nrzn;&$9R;!($iK-F)-UR%ZkGyb@lolPY29y>12$ zyPXSZWjL->`pS*AqZHytVKHuTKc8}X`^0lShuUlZy0_4@-C_PK&&T6|7HA=iM)AQY z_d|)y4@l{XwYB`?BR`Tu9ji*j%x}Ha40+7wvF-F%vL_ynFwj2LZBn4#$@OooVoB#c z&nnhNZ%p9L0}Pv!PR@6@(C0fHVeQ-{S*@Yk_x2I!t8d7W)@H?$=*>xte~F;A#iZ_o zo%M_>;?^-~!MKOwaa}T>umh9u2jYH@m|o7eIUq)Apj8@}cE+>gaU`p6mU3CkJ5?8; zahn>3k^KU?&E>Rh-AegIwi{Seygc7R_U0ik$~$IeizPAZx|BAzUJX~lN!`2449#7> zO17(Fcsi2jj&S~~<+y7#YD2?up0o0WuXV|y2&>n2_f6>^ps6^w6W*G>TdVNft=awV z6`-DGi0;=p!?wO>^U65cSziB{{%zN5@l(%9Rl&($@00aPHcE7yHqvlExNQ+bWt)u6 zXw%WM)2|d9NNFHHt-}1m1_MalIL&OJ0xYB0Ct?%O>n(g(4Z6t3dk<-w2yeZ8T56KS z>n(NkNSyb1G}^s2_rg1hI;iV4j>z4f0xF+73Q9ONHe7mGwRON_UId3Mi1fnsiZy@u z%cXfwXm(weTsg$INVKNfC_}5ttvu1Czcw6(c6A-FF9U(=DC)WsH;w+6I=A*hUK`X1 zn~g^TT1G8PqwnZ3K7Ri)YA2KMhhny0bc&{rkJN+~-F@0cdx_8Hi;T;vcyJkK0a1hd zCbix_$DU)+Uf-7{wLH0sz`=9Z{wmd_My)?c*o~d<#%(mj?CHQABxdPvt;X4_kUmIi z%tzInR}j`w?WafN@A%S1+rIbLV>(jHd{)iT5ry5Bc#*g zKL=fJCEjWThcV_4f3%U(uR_?O0rb9_co45_b8a?FXD+5o`qu9Jot@fX4R0PC-|7T} zMCs@l(j^+vjR(YKPG^sU)2=?9Z}l`#jrRe7p1swgu@k{mgjUMG zr#)Yx>?dgWKtG>nu&F$0L---d`_Qgtecn#5hr@s7uAkLgIR{U5FG;@cfIqo+x7i;} z!tGyN2U6CKdET-0;rNY!6Zt;GQ|{K?u^m|@{fl+pF7Njq4rf2pkmf1k}~I z{b)m-g2EsEwvTC7w!ndJ8~v|uBLE9?W@|2V+1it%fRNE9vWs$5*Q|0LP&kkAbCT3W zD1h1p?ZjO#$BFX0^O~1|BhUYw!HSPU!`V_WzeE z7=Xt#{Cg)BhE3O{vL6P=tnU54)K=p0{>6nrxMkfr^AcVcdP zq+}^V2VuR(^Y~z?c^LyujhJCIqt_ksDFIf-=9t)ZZkUu{KG~w^BM89rFLvx50AJ^9 zyI#b7;0Y}kJsH}fRc*cCcX6oj+~@C|hai<&GC3AsQWl7sF1<<0qDFakO0jr2z3JEy zwq%U*Hmx3V;$~Coe)$BG zcF;H#%TnA0;;Grc`TEcpSPNj%iVxa)dq6-ZFkrJ1$@t?haT8?bNhpN0uX;Lz0^4|m zLy9c!!D7?NS$rG$#h&4$-d)X=W_G*0J?;-8^29lUNg_oNq_MTgVO&IL2w72}gZ|3L z%;%Y*%>h6Z|Mk3SG$UnKv(A@QG*;-4E>vcwz8|z+Z?x=O@|%mw40Jpvq|j2C3#@We z;4-6UDwak{9@>NTdw2F=wEF;PC+q@bVK#$+t_B&4m&N*&&lYal7cK2uj#L@(;NOCt z5K;i8BACB1YH+^D*Z3fWW?f#*@U9$TAdu=V*#Nr0)S=d`JC@dE`pp0QC>4ypzlipn z{l@-{W5*3AF6B;MMQlzMDfsRxCM-84Vh7$qYc@!uE(r*QSTD|Oam#MA=2_7`nf|#X zd{|Hex~UU27@_8dO~UBI`>O(@;z=J|W}@LEVDloI4t_LXJObbk9{af8`sc8eu1V7l(D*tO z8-(qra8ma+-iowpHC$|cXN=6nvB0oHV9bPl`-iTlrxScnlaZ?7`g=DTQ%B+uXyHDI zA>JI!a`lO8cT#5XN&pcQaihh8$?cR33Sj@QT{h8<4#mWLpr)h5$xMDY7{~@y$M~`I zwf9Bh3PDW{z0%2vKQ?F>qOGfNKJKkXfRG1?@sT;nplG5C&d^+c5`vrl&JooZKMC43 zU*U_uYC#NhvO_(xs)zb_SxjpY$ji?r{y&+}o@T_xeHrM~f_f%jzF47g2}7zaNdVEP zsC05#!%_Kj-NQ=E3W0|c-P-T^n+J+7RPltQHdj2J*v_FrlY8$}Em%G(8^PbHo$>uesrn>Y|GrHoBow%y$Q zZa!=i7~w{f@j)i9`BSK13tVmt)s-T?D86QPdg zHH!5~p_D=r<2U0J*U-2U#$Q{wyiMwmPo&$mlSC0V(i|{Rg9L)bwwc8xUX*)EpPSN5 z4u6ftOQvi!R3;8bf~6!{-Jt*EdAh1iPk^dNna z+isd--eFeYZieMjXQpDpK>?P3!(JI^Pb<|PE#5$*kbw4PIQe4*Ib=p|j9=5wudwQk zxymRwMtL~&afMEnEk|{+CfIjm*(@Bt8NA0CtK|cHvWqY3fu5qGMzY8H#6mhOm~=MS zRwtWl?F>O8Z zw4!{rg;}Wn_FA@ZK>?6%8ECRtQbl)wq)lvSJif><4H<#tR~ZV*HHZ^N8t861r=@OZ zhKL^gw!xE{m@d$ihz_uPd)N(OS$=FGJSNUaG^8JD8?6`!aps(!ATLwa&>VWq)HkBi z5G-z8!&oF4aPaSqbXU9W&InkWO|>=k6PX@ewqJ^{jBmy*M*}n(lu5QKEpUHlM6{~i zr|`)5P`pa@OqqXVY7HmsIM7#tMu~KVgf6#-7boDMh5rSWH99`2)6}G1nuMS$t3+1` zP_?FgwkSGvgRHVO$}qezr2o_~lGh1+C-a;2;no}&b4zNSZ3v&dS<&PRmkbc>#1r2g zj!t=d@$Go=qX0y&6^UIb)tcpPghjzYllZ7n#Hsjtb+ ze9Jmin{fOqjk+eFOHU?>o)n0tV-PYvv~u+#clp|KVG0PIE$gJ(aJ)V3Y;8nd-kDXh z_!HnYZ&mjJ&ZilPu>4A&yE<|w8)08yrm{mGsx4U?6`&hTt*7kF+*jHe7GeZdZ5f+z?n``l~yzsnfxA5eb++COj>j^=Let`;T^ z|AU-NZQ;0h*?}ftnCM_!tUy*|wExK@^qh)#aKdjt>Dxl#*|^rAUTQ{ht6MfI&}~X` z460$;$~g%dMEIt^KAP)uLdCQD)Hf({vc+hIPVO&n%})oP{vqK#J|N(@f#VRbN{{`3 z6=mQ*9Q`|7AAY(TMEnf}kpcoSmm!3cYvxUo0Wu^!Jc5m`=NXjvo=L?~p$*__wI6+) zuA5j~`0)F<{FsbmZn;Fk$r!4v^};`7k6h?@*f5n!BmtPQC)nz5!F+!> zfXcgR2i+HR1@z&g zTqBkys3Tev)i$s!qX%1HriJ{%uk^js-6k0VSe=ZCgHNN*3+)LYVPjUFhGlUgB5sXk z4qK_O?j9Iy3pyNmV*^~Fl|$!R5wS-NFE`0g-iPBnYk!z@M8mjgvRkMpQuvTIhzKqE zi?d;@$Y|uOt;jwgh}ihp^sAchBhcTUw=N%rTOxhFz@#?J8m?+jbp5k%S;#Yl!3%`nM-UvXjCVIR)>z$)$SU)W2 z_}7Sl$r2$>?03=rafm_Jl>>c8L22;$Gr4s@TH_jK#rh&wm zu(`K$B=m-9nZev~-s!8Hp2hI5+&%2+zINYY=D&5-yt{%6xR?AP7;P_yG7-vKu#Y4h z8!(Ew+b3Hdk4FG8)b3U%?%P?QFidEKR(@WpZ{MZM2ZPyTmlqk;BQj@p7Ai1gfJ%fb-k>IS!JG9vo9QS>&#w;4xV zz}=rDUh*W?(=wISG`Ss^W*}rz(B> zs2u5%e0p77Pq!|FEaM@ z*jUK|^63MEq}c&ndF>L-0W+#E@3`91R*c{#FK;gxrFFXG)-@DuYQ!(4g+>$PF+HNS zM`0VH#)!0z*86In43ePdZq?jU6Rb@E)e=BX7Wwn46^l+^CMnG_}dVv&9R}HIo|WS2!?SX^y~v*%o)(Od-rI6~fbhaudKZwQux*Yq zimTIGiv+e7WFcg?TvoSVyo37OA0U@NQH1=bso1n@A%%|UpshlK^PNUk(0SEag-(Ph zI>naOmf|{I8bQ_)lc$K9;J%7A84?C6*D9_GzK0zIM^cTkpFX_;u69X%`VbA$>GI7q zRVM9DRky<7PEOh5tPhq*&A1B1`4?!sj4Qk$sKFN!wJ}P3XJ{#2AnfmJDF9=em)*HHblu<>NeZk=K4X?;6!DZpHI_Q-do+CYBW2JAyj9!+Yt4)%maJwo?3Pw_L z!{_m!q@D55nR(;AptoKAbKnzj!I2SSGgHyN(V7nxq6~7ZAfRh72A#laNRQhv|3D(U z<3S;5zG>FDb0QEaQrzJQEV)E1&F}|N*L_kF%uvQzK7}_b?KorYz%73EW%kK}_fUFc zv%q{fI*9aJN4tiC$HN1l=osOUBOcA{leJm9CH8Qs+?jb&GhF_F%>wG=pa=7#=jjXg zad9a0!8_Jyx<+7sy`78}qw_(Q=BO8Cn@F&t>U9hFdA9d_oC-TGJWsyfI^8m@0`q!$ z`GtP&M_&QG`n?_BcZ1UrtB{SYUG4w=eMDTY)*in(w+DJX-Y|8CH@gmJhZr(tv|VJK zZ)w`K{H_hi%oUVh1p>}LuCFUM-M^{6PY%m&-$OP5T>*KFuUEZ_M*c4Sv$dy-6xiM+ zY3cN3?LLmh)a0+$Kbf=Uzh=$m^|%m{ktT7}(t;yW)XgtnVx)Zbl8*hUy3HXl);;xcQd-lmhF`@3@q+yd}5}F8x$TMZRsQK8i*Ep;u{{8xRoLWQv=Da))bOpXb zq`1zz{cJ4~U^1R?-kPD-A5GvFWPNjA+q|r=27e3BS$4;On_Uq!Y@l zKI01>kn%*?Q~=Y_zu+Os{cXlsJVx!Mk!A=nwH*{R$F`ATGz=)3Oj?Sz#uz-RA@!-W znU1*Zljg$LNf_*<%gO~Nsug>3H z67`jlTh7bX!!JbA*Zwn&EC4n25ky{1`Rm8uHXy~2KMPQm+#|m#{BvAuEpZ3#C86p6 zb6%FWBjA7QCA=H(`EYZ+J>6)vscHQspXk@!ekxRifAK9Cq{i z{KA;!&~Ts;Oa#Lp%w(8}M!Y9 z4c}A4kEUx{Z*DTIPhik0b;UmF#b@{hw4~t!G6#Sk?OtD%_ z)@cTN{Bf6d;H0`(unuDeCoBMkAQj0$PA~|<;Rq(QiqlCCg_FVf<_n@TAN|Ix@1J)8 zJeheh)d)~N>@OO>Ck-Kd*K*Yt9102L@O})7!evRZdeQYE3DL?Be>mlEaM%QRvfNa} zEEG)S3U9Y2_a}Y(YE+5(Ch<{mBUM{J0wzJerIrcnh(zh@5RWf}`3(TeqeJFA5@qcG zXM3$BlugM;Jx)o#b%?H0aO@6}kF|=f1pJZ%Y0(5!w;^5w@2QSxQ1K01t#(0!Xf5-d zLCM2JAT%VjWCAALX)QKf)qIjLW;Y4Yz1g|g{P!dhYh>~$2&{CpV^VR*QlT$3|BJT_ zPI8;G6J9X#>tKO95j|j2aYm~Y0(L8L4YHuEoG4qctL7*I5sX6@R(JvIBvEDgiiQiz zoQ)UIFN?9j3NnrgPf%UA0}bG%@uR2|2i^Rbs7A?Y zl~mm;rX;8%+70v*R#Un4nEMeGJ>JO||1XL^y{mut(*+2ni38qt)R6+{BL0JU69vl0 zEL4UHT^Zi2_ofHKLord<=*<5^aNTbV*`e1e{{O)xdaZJo(EZ2I{{sO34^o{`m$1rv zC5ePB`2;Y!wpXWAPE;R{FFtt>4R_|=EvRS_L9x^xM~W1-1=ViCmX?-_<=zr$ ziOA@%HEa1oyOV>D_@5Hhq4=fv?hdxA-b%z_$M}0%TmF%}Bm37ZvgkLjCV>T;v-`mB z4TBv?Xwq6&^*cu_@8yKim#hnW#_X)I9e)WCRmOdss|8?Isup#!L2b$Rn!xMo5x~be z9Bxt}9&h?5JEA5@sS@JuuUybfBrpi-^>H}kkdY?rMq2u9Jc|y%D5Y{1* zH_Z)p`B{AG_iTPgw4_*zxLoKVmN1q@<@T+S?E)6;GT|?>3EU_AFY=Q4HnrVHZK|fh z^7a9}gExR5WzB}VsDbkgR%mE2cRw7UGP!3bI2qn1P4a0owi;v~B+u!w0H zM;SVwurx|^n-|v>(VMkR*3nMKbdpQbt?VY2~|zO(~d+Yr4JqWPzcd@vis@0MkNhta#z;VNXwjP#-UG; zi1=H8pTPz&w{Y15 zv#VOYO4*0=-W4_j{5VBm9^d{RTGa=wzYP#3NdZYgz>eii{ww+oS+BT$BJAX;6^#;| zi7FppUjV9CzJ|T8SmSMm9^;xViPXgUu8MVEa+Ehn_A{lWS(Q8V(eR#zX{3)6Dk)Hz zS(|I75Exr8AlpC8g!^fcT^}9AJfi)=8+*SyvQ}I#_LlML7(;M#(HF<5)tyLIfGLs77-96vHY2yEX@s zsP&Zs&yVApxHF)s4O!pwoO^MD>7bI#k2Q5vbee!F94GmufMd26D^ z11w>WrM0zIGQ3}0$3`q~B)h@Q*BDEO*VzEO%Y94q*>ygXV6Q&vf4wg28qqkQ1=|Pe z>U*ef3rwU3a_MFROmbsaB$Iwai?(yWK{*%B*q++JHDvNtJ%lja(j%{^K-o{_D^<}Z z%5;5{IMe8LjKxHSW=q|t9HAs>GGiLP01}cdIW=`UK}@)AQ-3K#o|hL=-)2B`=r{n5 z-?l^wb|dYfA-Xnaf9jVDZC%}OuiYzz=G{%Unbm_s-wgm%*w+39bBV+ zE3@EwcKx?ttm&i$uZ(sM{GLTdl*!XzP*s(8;VgL(4!X~o!(hJJa9!Bc>kFizz-P-i zNNT1h@PK8LB@>xE54-+lqb0mGI$VGs|F3YZ*V9IH=5#foOFx0kk0bOx(O&&#QL?{c zFMp_U;ax%=?Gf)i^L}eC9S18IzwlaD?bYXU+=#lVCcc?C)s&jJXeh$(UIjfj&pDrF zQr~XUqTy(jUPEh5!8?f*W}qLGuZ2r`ZKUYteeBGKh*hE)My62`KwX8ykmdm9NV5Y& zwG`kr6PiMQ4TV7)Pc1Bbu|G2l+tQ zGns_Yw^f$o+Fqi#3oCK#(Y3jrk|D7bW>@U~qzj66|W&rt92+|Yyyb*y3h{)QI zj){?~j_^<$yFB@Hs=rYh2aT=}^TTo9q|-$r5TT-a)T?jjj#g2sD7OQswnM?@!%ls8 z#MDS-u`LAZ&r5-<@AjU1^?^heFDfNgRw5JgRA?cpoYLe*Q%vLk`s1L$x zlGr{<;wq=@okNk-ZJrB2=XSbcnSs~Sm}I0$C=W%W=T6yC&UW%3hHcRH96b=*#V=&i zDsLNS%#gv@%e9IHYqMVX21iP2)x0S&+mdo4r9K-`^ca61xo39!sRmbXTpNEEEL4N@ zW2FuIG%z&V#>TZJ#a?-fpvA)SuW8qh!p!n7IBIDUPl|y(75#{OCfVMdtTt{K9OlZgNPLY>)c8F zG*+7DY@B$N=&c$6D0>sP=J^m77v760p>wyMwr3BHeJC0(A6U+ka?oaX zw~8au;AnPJ=~RV2rR0@Hysu>&pSl-h`2Ipq5ZmymTacE6tay zM6ekjV`OjqNCf3Y#2c6EoHOURBU#SHMdriUO4{mMIA~E{O!kwtySt0#_gI2 z1{TpI5>BY_(*R095=SoUkt~kd_YqsyTK!f4a!W66>zR7n%9p{#VL(PSEvO1$EVnL( z;D5suV4fKehupE5}Kw|c)ONgLhxRm{aPPsL>xHx2;iN09y3Y06N$108<;9jn0 z*jP*;$Bx6{Hbo39`~zwAhVhd6M47Us4*b0UY6Q5*IvG<%P@;c`9s|0k)lp0fjQ9e% zH#cOtOb24XK^xazRf3ZOF+QYtH4^7AWEgw3-JJ;<3x1Jiny?+k2wk;6(Tf?as|50H zB>U$|5Bjq-z1Bk7N*6w+Ty`rlNgr=qcD()B{p(8E2FG$3))?^op3^Q<10 zQ2{D>V`|EF8?=*xs1EOcOL)Aut9Zul8gQD_ir+_4&OdS4Ya-aY32yz9;6-6iQU7p* z7VhjT82A?>-PO0Oar91BQ{}UV3f)EcRNJ(r!wj#H#3&C!@}3+X`b$A7B)ZOCSO|5W z=<5=VU3V~k>DIehg40w0?~PH><4S1=0t28)_GF%dKqQjxTnJZ=uv*6+6CiFSi>gqP ze@u^6`d92tdv96srf)@sL&OzMC;)`0NBk=_jzNi9+RHNTF}@Y85yYN zU>q}Vys{IjG(2Bwd*bL<{i$JTqxx=e{$WH-E&Q0**8Dfd+j`zNsQ6p*@;?_t4syVNkzp_3 zXHt3>w8fzB)?sb@H+8`Pd&36Mz@;7+TSQ+P4?HH{uoAMf$^)r(^Wa+ zR%zq8((?{u2cA3vOL=X}ojL@zug766VL`_|=yX8dt9Y%GsAUhVrG->b*SsmH!lZ3@ zg16R-pB){@HlCH=81=`HLImL2#ymdK9d9EBwe@X9pXUu!Nh znX~J#pT$iQ=@xv$Muz{Y>N-XPMUdBvgvhb4N4=)`%*LQ{xL$qJIo$I7ElH#=pWB0! zV9+)izs6YdFk4dT8L${s1O`pXQ}*I}z-PhNJp9KBc6Cj4D`~gy_!+Qq#n!t0X8tF< zTowz)s_Y{xf^pq!sx7sV00G(2=IO`ys*Kt*cR#?T&Jeax2oocH(xp9rQB~B~OXYt5 z!G@MCooZZNnVFCNYZ7MQJh>8#I3I177@Xs%*M?s=);H)S%(RAlx^QTC#YP0s*#0RTkECb*e@1O?_Wy0N14^!f3IOuRbn+v( ztihTj=b`-M{pKbbs>RX?WN*l5UV5#@lFY{oRy{W+7YO3Q*_|wjq(49Qzi$~fTHx^< z$nm=ISBZ(SYImswOjEUOb)M>?I1)ITL*>@0i;!Kqb!tL6Ts9bW^l$aHVD&pTs`)f) zjTP0mu3a&jd^EM})IU<_Isjjn`=_f;&3|%-ib-^JoQH^;ZanOZqn4K{X~@!|HDf8r zL>c3C-SQ}tq$JQ8d6M_{6MSBq%sFP(nd|-^s#(3MdrZ6Hgibh`hF;q>fy3$E`CsD*1#mmAm>eFZ0 zB|;=k{x7!9DL50L+uF$++qOBeZQFJ-v8^|@Cbn%S6Ppv;nAkSXoby%vH~&}FRejTa zyQ_QcXRRH{e%1pPOi>V7XyI)%M{56Qnue*~GqUwJap5KD-EP0TD#>&WBm7QP*-p6t z?`DLhve);AxU$AE9(2@CAVjhPH46iqbUU_*584E@7~=sA8Qrw@$0hUt8*?f&KXoHA zNP-?eWt)A_+F^*5U%Y7GpJ`dML=B%S`Mbj2^c91@DGL!AEWd^*e{RhkT$0Rm?B`Kv zIvI4(Lp#;X33yUSuMThTw_g9~CrK-5%jK}-lbxK`jNy%NL6KuT1d36bdN(mC;&=r` zxkOU>Sq((B98Fi9Tj;Aazk{XCx0Nd?|7xFb=6goimHz(uW$kLmw3?ivXq8KsFkkk+6PM!% zMG%%`OZUrqTDi$29<`NUMj9@?MiIMA_c^wXsqb73Ikmq*7*<q24+H=v6EQEBx?}fV?J{Y z*GI=d-Ula+cZVF&zjtvjSgkEnTN@GEF8A07Z(nAA4ERlS{o39^ zZv%>A4NKA0|E+Rsn5n{SUO?rIcFISgJo0U$Td&>b*%*`cq5s#hfTX4fX}D=&#!%U( z-S~t+D?>S+0@f)E|w z=O?$pysLfjUGepjNIZY!o{LQTxeLkdE_qlM7PwQx=w9Ec?F0-A4`>e&6Cc;3c!IOL zqWR;Ok|xt}PsNrtw{IjDk=P$-gp4hbHlkIdMMnFcmnkH+AFywu_-V({7B7<);0&l( zq3L|jLqMiTv-;N$!NJ`)-QR(U!-fcu}bGATeO#%x7i{GJY);D%|S611<| zS3f}W^QWCfeaN2n>nXKvfT#_>TqKL6CzLIzKPM8EGNM0 z6{U*C&;@;jl#1nE8Qqh9p~@OE_8zj73Gs?i>AH=nK6{?BYC9%)Ua6##7Nh+JVm6TV5_QMD96+gEXRcQ=2Q*iG!$fDj)f>RbQ>4k6-c~yt;PV znY%cp0>>fL5Ql?*3JyD4|CmLB%EQ6PMaE?C6oqCSWKQvG6;qEEI=|;)mPSf%b%R*X z_C}804;Ygqg}l4jKGZDJadk5WqK=)8st2{e=%{(8UhdS8r+)QilH|rkN~spkh$l3( z*qP=PGj$JV4a7b2rT@!lxssyk6EUa3C6aWX1S@kwHumhO-r948PNyR+lDQ?=L)+X3 zA11m`{^(CM23Wx%9pNmj`Tix?5QhKpi^$_XUBNIJVgi>iY^LlcWV%KKhyocidXtP) zc1To@LEquo8vNKb-uG^!AtxhgWj%?5+##L_UqV#PEj9w^#fhfq1wIw~vc!@EqQcTc z-^u+Nq9-JYO1ZXP$2u_z!3{>ErZ>2QYR_GyZae!a!(zJ^p9C-AZOiE^-0E&)RdJBL zj7z7AYmDuRg-iPCG%iUBLy&L%>ucaZ)&8qLAg`@W(d(o{W z=uAy3i$H<}0?v)>R2c_2kMNH^%G0KL^g~-u3QHb#%zWiYbdS9NH_5 zfmJ6>n=6!zE$m1@D8F?Gjt!Tua6bi~E$ir2r-@$iS;ic<*zdr9PS&7=b_~gS+M5z& z--^J$>7kLK+I+Q@p%*J&WA>WOSI-!dE-{Mb+2>KWsBmZ!(_ihN*5wChCS7u*pkBvB z$}xEjtmuDL0~$^$O}Z9Il%&4nO+Gxz51ym{S)oZ~V(CVJbPOZBfBUlDO?DjOk)BqH zK0$w9)>d{%?p|A`c9)~G?l-+L`~F<}BO!t2&66_rR;r;*7dI2e*G;QK1pb!9Heagr?=u^&wBw|ce*XTDS zRc>W=NC;cf3|I9^6=Q0Km7KeN$;fVFy>Wa$VjL@w9KZ*dfJ!!0Q-#J7>C z5X4TrSh7FfMLr=oZ3KSY92=~zpgs*P#d9JSnSacsZ-LuVU<1>fHe}ID4PtZgFMuOK zR|NLFb;x00S8Z!9?m)g2{y;dB`Hua>wCYM^G#OEcCqiv#&p4^pQ|Y7m%+@Sj!xWL? zCz%bK96)bf3ye?KWZS!0ntvXeDr4Hu-eNw?@7ztDf!nn<0swMEhNywO9+(24Kx#zJJR4u3 z>-(WoI*@`9cIFDenyBhtPq&1E(7S`k(p#;>im?;Y?kLC&(!B-5vA&OQ`nvE4si{Jz z4gq|QI1r+|v3@wCJ+_EQOibXOO!cc2o&hG>0d*%#f!WFE`M;)%q(Xg}zlIb7$az8i zbB8eDt$+y8F@t*CQL%iryXHYZk$!IOx(<(Z!}3r%U=iRo_#H8{0JfDKQYd4_9_p=w zRy19)&xolQ3XQpB(XDR~0vDo@O>2p~&9s+3%(=fS25PLY+enfz@pCG!GtaTK7P50* zKzzaB`@=sI35~iFf-8?Uhpqd`v*Kk4??1YGf`P%@D`Xsp#=$q>=tJEpG>{5vF&&F& zMi4=mqr5wDlNd!ZBLx@UnCti}a8{TalP&%g#(8cuOP)b`cLp}K!pOTYSzx(pGsJe8scftTtLP*8PwUeDtTIz~ zc)->ep_0r3Gh5?ie9P(VC}eQ95Lh_AcONFHVHWCYRDzACo+t1}L?}#&RS1};2Bt4R z{AU@E?5VoP!zZjv)!udrm0$XC?tlLffsq`-K@!(DZg{17K$x)&TM4}9EOdntXcW5} z5Y3YQ*p!sN#|6Ye@}ZP^)Do@VJ;0oSeFNK{(}I-2?aSpIb5!-X$5MA!x{uX)Q}nTJ zw{;k~#+kl#_F#Po@ctIIBPN3rXa{ z=A0>N1_$U@!3`1*4t0307S|_EE~seNgA5h4a=R|xFtww(Mk~0&)&dav6Z_cj7=gd{ z>(>5E27!5zLVAGJ?%GEQL!p{_=thjry*4vQc!3#6M8@I*vgiK28%F7kO*T@%99|@T zUQkFQGxj@(PT-$5;3!OJa4RU^xOq2+hE?j0r4&dcRbdd+x(o+{DicidCnZ?9{=QBR z^l2tc{ULI6Uz+EdR&`fvgLs@vkqqR|CI@q~?tqP53arzG0~77BGu??A1sP8RGnUUc zu9&z&@h~Y(WYB`klhiUVY&XmMaewLO^6*J9Y7)MThJwXz#yP%(?VHHQlco9o9vH}0 zq66LIaZHAyxR_~y*0^%^kf1$v2DNj)U&et8S7AXTfQ8eyv}a#ypUOd>%>&HA;}A^S z79!;q#U=5w*2r?%K&1~_7Hy)*aA{mCmn=UJPBW6T&Ac$QZKta^5O;8$jW3!D4GGyS z{kh_)&%W3mwvmjWF>*2;rx@Eaw2z4azRX@br_b8+M_Wvkyt2^h282a_s%!$0H^fWRK!B*p0t% z@n?d{4io}*7iHqY<^uoELgZnUEjvDpy`^i z`I56Br@>H~tsm*0x=fvM`F+*$m}FVnwUzU3;H)vSXp1U$X}cRmy3pEK;Zu}|VMHT{ zVb`iq!H1}_zr&5EPT&W6t%QotCUFPkxh(g23F5X}{4+whm~6?vOGiylp2W*>7Ja@u zD)Z7t(ZcFWm}*Is4irBqjoh_5Y_q8t<6{$s)4uOO>)^(z@av1d!H^KOm(p4XK>t~s zxYL|!L21&$zd%udq!lh`;EwyO5y4a5A7)U25+={H%Cg-&?(WMsKt+tI@>I67#|soN zn}%_dTU!4|b*J2|E?*MP@GII?e2)I3jobH?tg4?oL)K(qzaTO;H!nD~Db)%&r4u5F zLo%K3?^_*eJ$NEo%UXY@&ONpKKu~}1(0kEU?e5W-<8a^wR&sG1Dmne_zPzqS5B_M` z#HGa&-N@`9!f09H4gKs8cuw*1Vd}AsqeA}G&v6~TOxMH8o)R{_3`Kji^4;^wTWwF( z5-|{?;mG!>uQ~uN4QsjwqE#77!)s{u+wAHIqCUJ1IN_<7Pug3uHQ>j*__Sk#A%yew>=#-$Uic4Lu%-xd+Z@DKrF`C1ExwipHcVkuU_TBwzt8)Tpb>-ncV8o`PmD1*oRu^(*5^_$VMY4GiUJ>E3pDAWTZj`i0H>k01oc;#*3e8;<*;j4B@>#? zIF%eU7P+vf`*MOo`dHEQF9mUAa-v2Gm+B-um>kkolxES`VfmP69*g2W*3f7|@QplZ zRcHcujE=&VGXLr}H-~jU14p`ja{vCJH%z;FUX5JvL-{$M%NXH!qhV9_Lgn&@rzIn74Y^46i7gsi;pV;) z;G4Ius-Hq0(D!u^iP689l8b3RurDgsv!Q=2W-@yIl2PWAJzd3#SdC*JodGVb8KA<0 zW=!8rd;(|1^gzP}w=Puv@j+w7wEK~*X! zg;zH>VEoom=gYe+=L&u;C1Nw)1cl*Q5Cm^5E5|Fi9PjLivvmO@HH$_U{yRUzW0SeY zs?;OxfkQ3=STL-Ao$s1%=WZ{4?WTNO0Feb?A?a8~Skj&{aG1?5mi}*(>*dlH?J9nxufvygdyU5zf>m$xs*sNoXRTA*aG)o1TO7u6Er} zcc!F^3V8HBer)sTBhR63s+r4Iwy$<`B0<;EhlhZk5ocep!%_=oKKoGwYSet9=XQLR z^{G9tCa^nnX)U5FZr?3iOgU6&OYlF3!)ywwG@InvQn(J`sxaFf#WHumxh13W%Rf2= zmltUVe>xJO3kPny6usbVmZCuqsqy8j8@IUFSKB9t@RA2V z^{ai}@&8b#3dDgCv>h=>Rz9xJ7w*?MoLD2$8TFp@t8 zu*Z4pfhaeC5HL@8eg&EXb-I&I-k{(aBRnkA<5|hj3v23VJ*=N|h&CJrMWD;?BorU( z-|-(s&>FG>p^$BuZ#e&g7D;z_vI^!(6dqsTXtJqw4_j+C5jOB7X05n%=9xkH7H<*#vefpIUL z7WmC(s^om$WhjCIgr5%Fg|p%Li~a=@Oqr(!2yEJMQMu<0XZITYg^>=6f1db$-}eYg zmPAa^789zv&D|Sn9@5JsWf7PynxbDga}$=hDJOHUI|P#^(%-twr3Z!xc`G4}n==F! z@BGtNc6hwYcSqHRN9$)#mIzKBwLLtkMk(W{eI)eYZL`2P5FrNPNHb$cGnlH_a*fT` z^zwQ6FjYn7SH+*>Qw5MM#Dn}1!uZnWU5zRzkTDPsX{xoS$;M_et@d2?+N)I&kMLWb zhN%n~>)phE|JA6UX->59q&-5B$k?YBtJil6;}nl(Cy5QIlXYRGoLKT4IVD^86y~F+ zJiJ7au;Y>w!03K@BTeMkhM|V$Dlt^ms#~(eP%t^$t|DB)@9YtR&mU^?`=7@GGsdqn z0Tm!TjM$`W)Kn?zs32uzdExd9(*do03q?sny2W|qZU;pw^K?i1`J4?3{9y9OE zl+ndTj#yr~h}2_b_{FGdBEu9O`g@o4q}Q+DQ<5s(N^-f~q>#o6bgKg65&V(r5P3-w zlU))B)yHM8NeYV+Av_PVF-lc}**ECJ|3-?%AsNOV;*(5aydAw<*sZWKzkF~me(`?x z)dC=xfUTQ61u3B0(%ie-7ngw(dBz3^?84{rS>JC65~aJ%gchQ}R_IY;cvb8og^H0* zuyJfA2AsKnL>B?o!yCY`^rn_$n`1L`0cx`Vj?b3WbqQ<a*$7dxq{t zjaswAT8BNx+$24h5KU!V$rrm#h_Dchy?ew9j56T@t3YFt$d^}r=7%dFJ;q^o22(vi zlyxKioGiozqb_$@gzj-$P&F1*vu6ajDY*aLwO7pdEBDczdXUCGG&;{Tgrh;>wW%A2 zyNBMrr6#{avYv$)SX^j{`)JO}JRzMxiwv@jbc^tNW6jcBXe*~jGFnW^7G5I!I!-oJye}+6RD;tU z;*5Ee`%_<8|`}3r|wy-jrB9s+?ZgTV7qL>I79>Lc#M}uPYNrAaV&Q zVq(P_FFw3RjUWa~Y*|0(H#^7;^UcOM{CbbapJc28VRM@}ZtuZVf1dVVUo!~J(SC4< zKbtcj{%*h(`rJu$i{e-oJdn2DY@Mc7Y7cMvn)C46`KKEK1Bx`|J46&TN7i(ylUwN^ zqtMxVOi`t0xZIue-aIQ`+z@SPO=A{Z_Q$OXkwiFCn64!!EFu1x4QuT?G}H?D48sD< zg1`-D4H<}wDAY@}C`R}twbHm98V@?p9iHOM&6%}81zIR*DrPJi`~1J5wh(JI{)@iD znTCRkiq`fD189Z@WlpO_1^gsjgU0c_jZ*~f4Ys}jlX}5Nh?B}eE&##X-x5 zo*51yp|Bj@;NOrvVGYa)$xLDi0JHQkd|S+UJGyvNAXbQCrAZl~96wtzNJo_UX2vc< zUgJEnhZ!ZhHNL*maKL)0uBzQ;s@I_oJ<5%7a+&K-^(Uoe4N@5`5D8rDbEjmFgP*K5 zXyynO25Fc$q$D!goaJ!|)-7G=`Z-La~!v(4J}QQ0MDF^cP-kE?lGhBt#|! zsgj$ED|M;R=yyZ!$Polp>QIrIJS&=m4iOxfY;*XchPH{6g zt`1!3@fX*hEW^2=DBQ4n!92|8Q;fw&`onNbS^FU}b zgEdnA=_Sy?CFVH@PK8iM1&wh1T^~_Km5M!fc=R@?xt57{2j9{VN+`WPCLFa@;YqsP z3ChP(v(>+k3NR+rN5c}7m=>Bq#bp{Gaqi1%#Rl^lf`7|VrgI3aKp@^c;li0PESjQx znoSRh=qFshp$$S+jU;iVUO3~rgr*WVII{D&UNXC6iX`r^RdCeO2wZvau((?4PYEdE z5qdAt8~q#N#O`8F2FSlX!Jy6h)!O7p5KlJJlAUrs-FEh>HyS9I^zvQM*dUYmbXwMY zIvE8A3m?%)5+e`9!1h#4$XMLM378elQ2+6GHxjF|&@Aa11ID|s#p@_DL}X78u#TuM zGdH)LbP--8-?rYoHGS1RNcKzLLQq(|8PB&X=@7!1RKXZF2F{8oUC4T3(`bF?&F#|} z>ep}UEHacQ=vlw_zZ+qxB%^s<5|2wobZR?u?elZWc3?q3!W9mU z6}m+4Asyo1-_*^Vw;(Y)9XY&@#l7eL2B62%R`YXod>N89miTv&lkYc{z@0$$p&=&6 z^1Ef4U&5q7p$v#pa$mKE+5r2?FlT@nnG8s$Ncun!E~OAMi5n3=B?4+=!ZXeMywJWo zO{{P?;BlCG8#X}b4uWmuw}oC0AQqwJ@&LAas0dD*9z_oFK5_Mx!w)nP0w9;ECt`AP zzRD@6zaXV;>M=&T65tQ#d-1Wi;^6;!>3ugE%Zy3~;d@5@lxo};RGWKXaziV0m<5O9*^==lFJq3$JwLvv*`V4W`0>n`_tiEG-$gk;)C0LVaQ&-3 z3=BIR4oabGH#};%7@739lM6|9_SgVyYFpyG;)3UoYZI1tA@pSFGobm$n6S76*Xm>~ zW4N&hf8SmK4{?yZTbRrNnlZ||4o)MA>L-qPX$(6Zg+dhkHc3j5rqVlQm?d@&8c%TUwZ}o1yM8Oc8DE z8iqql3AL!psUI$;T!6j678WU{pF|fkSR<|SP#5o`=UCs&7L2o?5<2fr)gG^V5V5a1 zRXHKyn~#U~-}??fXZ4WP9{lK=iB5-5#aCg)%px2TmZW5KJ4)NcUm|oRwZM8$v6y2} zr9QZ{nX+;%9$XGcQ{IFV_=GDrj3*|NRabdWyzt5W$%{ev&wzh>k?fQ&g$qc3dDd;b z`9Tuq@^HJ)YCf;VcVEMsRA2~+?H&e?>3k8j36Vbz4jGGrDGyYC>stlD0HwU981YZm3Ii z7`$MPrxPaCVg>$;5P_qvsWNWv>zmmv*&QLBH)As8V&=V=*bZvw=i6~?aCT2Ka!1jc zhRyL0W4y8HGZMPh)ZH8fY}UC*J6NqL!N$SvjTd0EQOik$N9Qz-JBwIdAP;R5b^Fgl zS)Y#1!{lBFfG~+4Ay+k zlHpw`4)Gq)NZN=OtP`|HG5Z%Hp`QQQqoB<8bc^l? zCd+?Chz}GcWJUYgkOVKi;%I-FhwusT-Tt6_KS2H$Z%_=1Ue)(I_5dQlW{*A%*XLpk zYr;kilNy-z_oNV32OZDxOx13ksPfjHnLzyZ)HIY@o|55);*9EV8A8&5=%Z$YY2K&+ zb{}YfWOcVV`io3)+2*k53^kcx+_cMY(4oB5p;5>RGI#n4WPl7#PCv3eH30UliQ#c? zbUDyJP->Y_&DL{PiB3?Na!pf!n$S`m1ZGElWeJFWJ0(n`1O3m2_I7aeR34n~ev_3p z$V2La%V)z_yu(jhD>O_%=q8-7RRW+V%BNQUbA-W=5G38!4BpJbns^JA)6I@@kq0h% zV=ux}_SUdIZ$Tn-I!I=xP{WlktPSeI-0UUZAn@o=83Sf{;d%+(Q#4`y&hlHyQjS0n zr5t!Oe#+HAAO;$sahPN$>Ry(3L#>(q{IMdq5yC*suWJGL7!FY)cl&dbPg1rKf3Vri zG7Dk~EkV~l7k{8i`+&Ch5nMrT8 z4bbp5b%5{QG&P@4u1dmkZ<}a1CN_l9{!pFU5O2z5Sg^zWVRzh4t1ePqp|EJqyh9D} zUqsW98+uV3>`+Fo2#kM-(<+8h#p-39hyUAJC$V+OLx{8-^^GTw ztvR2%s|sk#Y4JSYd-xrri+n7(W`ck@;?>oAW^XKXS6-z&u5Ml+ZK4$bc%ynv_D%oG ze8*i-XU+{ONciC@Fd=LxwpLs9upyCzp$rI_{oj20BNdrlZ87$0sHTTdzwU`L`d2$S z1ov!{T|r)lXQ6Q+#;@;9$cCZ>$bDvzVr?w)pzy#FO!M=w@MbX2UU$od;>Cd2ei&R9 z5Tv9Ehg1{XM&qZdQH*xLp!t6rvilogs8!upSw%p@S9*?=s zO}utqovY>K@83p3G;(CG+?aUfKBy<*n##HrP?n|c-YbezM|+@Op?m+7$ZO*Z(9>&t z1xrv5lno#0r>^UQ)m|83v&Q^00*K{D04eQ|Veoe&_E6l}(sU^H)n5OT0Z%TyDN< z+|m6=RRg^R4!Nw_R+G!_Iu=4B>VXVM7t0Sp&~$^8dz(p5mI7T@?PUl|00{)YSubm2 z{~z$rqSJ50ahB!vZHeUeAAg7IXSW60y}5ym?#rJ%uB2XSt4GM6 znHebC$6&72EK{0Cy+zh3YONMp7tzB@Bw`Kbrc3d~n6yv0*!_2eO!J4JSg>?hu=icB z@vxx|GUIP_f-T}=io ztoY+ap2j$qC&(_M(t?)19Hypg-2ltDzPhx-vxPCbb>D#)&)csxU=M5$VNHoEN%p%B zsv*Hz)lMO}WhE4YJen3|1LF@Z376p$HR-@|@*X}~disXjlN~0lY3xZ=tPWB8=Gv^f zF1>7tZY#RlnO02Ke}pn$N7>7!{6^O?lsm#QlF1_S5MVQ+Z?g)z#T%#Z^*e49k~OWm z1e7?9-U@(^$i?>mra7^&vHmA#s9R^p0q-}8|B7M%XlJ;y^mGC%eGEuXaS!1vK;i;m z7tF^Mmw@e7yqH+Wz5Dgz-(+A&KAFe?dr3U*tf_bR_v0gMlXMtDQ%sM1SY2PFQ_2lL znhsZQ8fWE1rp3m2!jkTHMP$Nld#E@g6AhBrvZL*Q=l1Km$ zX=HR}3z-neA<_iMV|*qCpnoI##%eW;i|M6SWOuG!oK`xBsR9R@@a(t-#HmG01QkwU z_$GwxG)Gqg7f5MjdZ|b~)ly0XCpffB(EJd%LOKpAwc2cG0W4xEoL-Y#s18ntSXtt@ zLEu-DiI!@!JgJ_%UxG3Rv!sm}S~|Nej#5^-H8wWI-!KS-teS@$;9Pw_xv6W77byi7 z!ZJ?uisfWTdP+V44Fp0=6a=mCsR}ryMSDJnxh@)8C61#w6FhQZAk~W>X}dClMRPkY zhcO!yd~^O1I9%r}EGtI3dn^Z8{j!-+{eTP;7btN$S+39~yKHVg0{>b}P}mQ6NS#YT z=E*uHQsxDuehotyV2!0n#S^`-PhUJ_DSFeRkW%}=n~4!kQc;n#$JfSj#d+M%rdQ|r zoUI<+r)OYi=I77(Pqtn!!EP_K-Sj=X=as9ptHZ3-9l4H`g~<}1qJ0?W!eYYh&^ad? zcLIJ2i8@mc*Mkn$l}|pwyw0nXcVnk_`#{aQBUZz%j}wC~VEV2DFS+u+{+#knCOqmD z+GTj*WdZoz(txtO0BgS3<|K5*;*nC~S&j+0CpJy!Zgldel!+yh_^R%r0=KvLhfwwd z53Hh!UtSC>TdD+^jAB5tWd$Qx1D)(d1_ z;2?0qQ&usVR3v8@@5v1~mXvzrg9H&IgetNS3=N7yFC;-MefjI)LORwjQu8JhTB<{k zLRvPuyA8FN^aQLQqJTgHHG}W68O1K11l_Rjwy<#q$WJFaaMX-8tb^-)xSgEI^kB2{ zd2jd)3B!7H7<({nUst!Y{rotY}7Bg2*IeyuU@ zz8HJ(kB4clQU0I9FG#tj?X6Y1GS2(SCK`>u9Si@04|wzZwL99*0X*F=OgXNM%rCC3 zdI8azK%cFl`t+S`Jq0X&{%fL7zqhZm{jyiA6}Vb#j4H~gg=oAkIBd~ggCn>OA4Ck%v%FPqHH3_a_n%3Q+8L#sYy*w^dY8U`H?L#<1%kLOM&eUwfdz;3sc>5bD7f z*3Ai%k-#Zk`x}2NC5>P+J6#fD6FVIaLbQ5}hbC?I6J^q4L z;AW&rEL=lbs~JiLxR6rEJ2)?BXs8N2QMQ-dmOAbPWF#gf&XOnHogGPD^+es0%~nmp zCZf1ZehDa(P})1G0G^k4Zqh-?5ehA79k1nBYd)c-ExC8?8x%mr)Yu%NzrNgGeyc%T zsFU}q?0UKb*!4C1^?Bp;`=jf{Wkuf*===8IwTFepDu(=R{AKg(@4x2Pp0VSv(DZEh zF?v{bPNX|tXOUbw23cRUeqHRfAt!2;I=DR_^Ent|_HJm3I-bEprudN;a9}4mDKSOFDw{ZeBmGS$?SVJfTblXr18! z*<+oF(5kQF#EgPtCqIKBZ*tT#LJvR;&L?Fu97Lx-yYdKMMTTWAY9Bm+Fy_$mjZF=L zC3Y(Q8T)WVgu&cG?#b6os2rG;kN{EQdk-1MO*}jTF^ns_DFeUKz6<+lqwE3g@PX{)!8JQj|QKCIpH52^geL#@fSbCI&Pkvo&KPr zFR9)L9fdlJ4%PahLS;s%qS)_A;s=aTQJ^q+SyDKzTSW7YIG8Ym zwj4TGiiTLvAtH$qAQous#pdGvi~#xX5;fbu^y{|*rHJDS^Dx;hA(H8)|MDX!(6hsIE}NcNhLZFCJKoy<@UG4;e*eckw3Czna^ zOor2M)mM;YBHbj@Oy)nHYC_xY{ik96Sc0df9y{*hrtTz(011`i8raTy>0oX|30hj_ zT%Rin0m8SMaD1ZrHSQnFL`-8G&%le5$?Tfh_K@E7Yk^2Iu8qKv@*e2jf~%{jm+5@g z>c%!An0AQ-3G)e^0IkWz^UlSp0#gbdd|YC3d&r14c~BE^A=Hsmrr8Ve*W4SeZF&T9Rji3-qo(1yD9hW!<(c3wVWUy=$B@D{CtL@)la%8 z@E*O(`Vb3V%1J|D^_3-Qjnl;-h?zxrj%T}Ki0kwV*mBZn-(*E88l|}4!Kq)na zG^GahR0NU&ptzCcScqKBt9^}G;G zswR^??a;Pw#8h-MGkmWMvLQ>_vX!;3pN_XygYg=rI zg{3v54{YxSzCMj=d9xsECrDqrpO@6vQQz(V!(%c%+wiV?dr)PDs#@TK`hY*Jn-T+i z>CU&T2`DS_IMvk;{JacjKR;>VeHT)X5J%PNyXoXLU8}ygzF4LaRm00vZGM%^>sDz| zGqvWthLduNLeVC}=fGOZ0#)&&y+!XzYjexltBZj^TkDRs^lhc8>i5D>b1{EATJIi* z@~WMtyEb_UxOk&IzQKYucnlAJ_`-bjVHt@Yt(um&3zzySDgy+Ys;pc*@rM3xZyTIw zxnW0j(s`WAiHE6zKgPlZfOGcC(rWp5UO3T9hm9j4{a*j?tF3n=rnZl;j)`0z8Nv=a z>s2fu_L`a{=mo9Z=#Nbj#EA_+a+9qgzSMd%IZhnj)zYeNtG)W;C^57LSjDw06RkZ} zx&wGCUhteX+Z5W?!(qQREh6dnXbS9w>#FANR1r5m9WVG($vn94cxF$zcAy{CEEgMr zVgiz#?xL^gbp`H4`Km)})94F-(4d5Xx3Lt^AVQzW*rgrCvHNB5QLWfmljLIN>b&7V z80|Y*B_z__R4C=>5znB#qHj5??6Fkn@6t3xzHG7c5txrCp_irgIV>`%-Q1(uHELTF z>4SM!s;^-dm}Seq~zPg zgsSHV-fMW)tcAX?Co9O(To~=iQvXUu>Dx*lip{-DrLQPfBBC3=yXzrnky$x(T6Oh~ zuF}wU50^?bdCUa0kQxIAbg32i*Hi^WIJSl#rwHJ^fHM0N<2&?WCM2sX=g;e4V9W`(U0`ryc za88@lESq07H-u)UE_N-(c69OMjVBoA!vCWFbkzOffb}J+4Swgbw2P4wtT7&LETNFy z&l0hm6Y}ZKwb_*f(Fzv1fmLL(8Ny9i>Ve}Hps0;z9E2ZrMP#!Lb+&$g6TG%$E@?;Fv)(Ma==Db`*g@xjHfBQG`&)FI zAE)xtn}87iaj(y2wV2L$!FWNFp71_jMNt9eWQ-xfj4*|VS*=nEIsgWxTLJEM5Fu6a zZTXSI;|}Vq;y$mm4k#+eBH7p1B;p{!GBe$hWPg*TBH; zD%FIcn9U5`{3@ArFV)Kd*+3&1H}zV_9`%`HSlR{B@p;C-u;GPm+RCI^KkgM+obv1I zMKi6*oW1q5MuGQ-zQ6(Q;)+}(AU_eCgac*RMmM;V5LC>sQJT2;Erx$VMuE=hQ}DO% zak$8zOROHfT;%B4eSdE{ND4@y_b-SdB2G=}&`@NexPIFUW!o(~sRA$btT6HxcSY^?*EBUKc~(@iiyjMQ&AR_`qoh;!=Z+0bq<=MQ63%L=PLe$Zi1b zZ)Y*^Kf(LMv;kZ1LGjUF}SUzPAXU^mw_beAUhYJ`4u^6w8 zln^HCiOBMg1VC{M7Ve2Z>Duhvzq`0{vn?86BJu7w2YZ~r^!Ojxnj`Nwu@+ED@DsPy&5gT4ifx?W33a7ct{&%2b+_ z(Fc%7kw->JgMyDL$jFLSrZguPROK>rG;&lKmI|lP@EGBWPI5Lz9_^PbQKqXlT{KS`z07+ft>soS1ig(eA$imVGl^mHi91f#M z*hd+^TonTr;_uro155zEA=objaE4x-fqnNA9KeREf*$>s)W&6<9O9lMBxULx6O0G0 z-C>33AV>bpxLKsP*OwrZ!OT-+fssp@H!ZIL!Z6=AzNE^B$0cEU)ktfcW6N8zi#qkb zWmVy$8E5>*o(XO=P{z52alxpv@KW<_ABWyM`UBLPGo~d~$S5?`ilfKhBKaTM&0H&a zu0Rx#d^noJ?-n*E$jwvjz;{S+uFrZ#oo)Usl1CbCt>?zbx#>_c+gk+5RZ~(KgPTGX zqXZVD8HN4NYhBIzObtF5jy{2kHAy!&Hv&WT^V7$3&9Af4?i&qGI)}&M;2p&}#$18; zhlyvkvy!i~w|bdw^^1}TxLupxH~-Jz<-NoB6+=Xue@8yofPfNHFfz9Hs>wdx!ARa{HQXj5V#!%;avBdDH2-hPh z=18O?xvhn+S{Lf_FP7O5B0j}5?zTuuLc=L^Tz6uOZOfVuYJsAss%y@I-W$6NYYYzhI#`sn zPa;)ro&?Gr6}>za6=Oreur>rtaF*n=&@-qUJ@dh@-^a?yf{^3s=?H|< zD`j0KXz95bf-`pKKKad&-;!}dn&G&jS=Ul$KrSWC%_Rb1$q-I=39hK;Nk8pLe&+zA zPsnSZtK__TE2|sI_2}c3KMbw(Yo)ITkc(A+cUWe0td^T8*w)cx!81EeDM`Wp90fla9KYa{Lw8vk58seWAc_nFX zjm?E`+CFU9Kb;GgQc6vaErL6nWdo)WfcPXl^5+=!|K=1|-Q{X-9^vTR7chDq)Drv9 z(taHNRmI&(P>~}I0Hog2n>HyGR9y%Ac}Oxmqs)TBr65Z^FIgD@ejUJ=XR@xQrd*rNCh&=+*xXq(jzl3L?YA>r1AT zqUxE-W@+ZUb0(##5kZ?ibT#;31y(==-VK5h!J>;TOe=rGa3s{7cu3x=sp|H{iIkd| z>&hy&FuLPN8J&WQ6afeX5pBDLlFQbXP8NSS;5*#4`7sYy{>`-07wxNTcL3LB3%i=N zlAytkAcQ{p z9Frv!2R^HccHASXX@vyDRZFms8gnsMgfi#K7#(Nm+$`lxm}urRin7QeSM{Hm+vX*; zS_Dw)Ui}YS=M@_Br?Uyw%%&s4=SM zUTe;8p4)tVj(e$_svijGcq02PAq9dz71@j+#1+gM_N$ZQr%HyJDrzwmbET;ic1OwN8`xmr#y6<~SmBDOnWCRk41AnK zwDv)&#STN9no6wnSxtsuOjhM)eMf13lnrPY={c({Pm6iH@~JL5+KDfs$k2#{8KNrk zmB&q)pTF0`74DPa(CklCI_7qJl8Tp<+H6xL)6C+NF_WukrE6=eSR2h|7t;2HL*OQu zpN)7Y&Pw%A_@dDPUW>-+rFm7Ok{_?Ne!WUApo5F*5J0~5fj^ffacIew80REc`YPHp zK#v5+G}_a<(xvO6_If0n6sA(r7Jt>fAz@qmTH?q>J$<-3e9>6rT|Zm?9jr}q`!!@O z19Jc8K6_df$7SE~rzXCS>1{hd)e~j|MG~!BXkzcV*MW2*U`d~X2nU07*sq|D-e-a3 zWex1o&EdqzkVPUR(n9!9f8GT&_%Gw}Qk<}dMgf;6Sy|JuiUtWQUJ+S0%AHQW6n74^ zc`%RBBJIoZ0al(p`6BnWNKa)pO8;0`uSO#6aa#lK0Ayu{Wget;XL!^NM0;y5FdWnHNRnY#lEv#yd%8k=0Q~o&6vH zIQ!-Hczs;rfnFWqyiu>!D-LKdutJa6HuGZ9+}WKc2%};FXq6F`rR2bw1|iyXR=2m?iIbr2W46htUTC!OM0AjJ{_%?fw0 zCrrXKI2zoXFXBP?jrw~k7l|afuYhFd&q$=cr`vAVuPyOjUz&O!D49ywIvxb(N!P`aBa-+=<=V6PM0Y`Z~!4lc+{nYz`?g| z`&9Otw}K|#@hwS%=Y~T;z>tLoA^0@XF}JGCygWVq%Ly)HW^i@=Iu*Aw6FP86lL4~1 z2HV-E5!8Pe^M|!^^U)=NkbZg=<>lf>p0Vl=^SA!S#JC^@)LS3fQdQ@7JNZ+T3W$C@ zKvfbjcz#x(iio(O$Aj1SIOY{gQ)$#G2_>U_yfnecgu9_VEyWZdv@|gU4lcwS7Xf)m zBMA?x-!LC3Acir!TS*2wJeO-3VpR~4Y=q)FgsJMKhEuA`7gR&V%+|tj2H3PjvF$YR zb&6bYbFO3Cx0qw1^oXvNvOn6szI$VPDzvw5hJXP3frN}5Y}M>hGWl* zL3BmXs&bJ-VbZj6c?05lVU$b!B6JB3_|oQ&D-M>1c;YQR{+k>{OW#EwiXYTxdViCpL4|F)YO{H5IwIw`X;B<3Ux zgyQ<9hJYq!QDNtIYpCy%{GsXuILrC2Jpj)ki6zD){@ecIq@~Uw`3*(Z?v9qJ^H%})W{=(wYtgNGJvBOsg60%6a{(WjpbE}$Cw9k+5 z8LSimsaAvh%GMhOzD1~NGUA_Cen-qcRvJs26#B2m{#%J0ry8g8y&y9HpmBx^PtW33 zfqjo0JGYW;X#6^c|TeXTD|LxN{jO~6mZ3}5r$MQ1Ub1F8YTzL&5DI#Mg9Q}XEVek zG=6fA^N^Ri4`v#cgMQ`!C{o3+(&g#@5es)7M11KijZcWsDdNPi<@q@rN^kx2_hUMG zj^V8`w3RpNC%O5Qa%E}eVfdy(M%V@RcGhcV*Tn0sIj!Z4Sy9dNWS%jIkI53qq%_)2 zU+yTv?ejOJ(_B8-{}`3Bv5~Nl{HIa}$gPBq2pm5|rEBGq273erj7(A^xU%(3!>{3A zoqPCWt+0C)%+E+WZjh^WR}uX75`HELW*hEn|0`0F*2FD zFSldbGT$ZlmDW11x9%N*|_f_&jsxr zbM!as&%K9tGI!2+J&qgZd%i#qvU5W!DEk=DY-W66EkwHqgsd6RrH}z51$-x^yTxkA z?*xtJtUD9=Vj*YV#)SI#R5#m`=%J{^SXhm8TOpl=X`NwVWR}ZQaT_fMa(9q}bpmN< z^`_ab*AAy@1aeOtwA6vQO7uN^WZp{(1sMr=lq1B$uoPECrlgqF;MX14+bdKhnqvOj zs_gx*1LaTv2bK4ziu2rLa3r0ptlZ@)3G@I^Lu&t9J^wgz z_3LJ^^@O2eW*toG>X@z)#Yw2uWV?)F*~nO{r`pW`7^s|JWI-%%@J6L@2%i61b_6h_ z<2G#byC1OzPV%ZhqJ8B#V$9Q{7X)cm8#-|-|09w8)fn^MSwTqb$nl9aD)6U&VzEWp z6V9kAfgT~YGs(#6sMFFaGK(~z>rE`|zo5#1a#JMe@Ms)4S@gem5T8Yo>zz#Hvf2p5 zjkq=gJh)$BWb*|*k>$y8LJsAidV!`J@Nz z8VZ)DA#FfZd=qfzMc^;o8!&^h7&sQ2Z?{I$p^O7FBiBZ};#{mPgxge&a< zPVfUfYr{pCH)}(>cP|(dmcnC?O z`mb;rf+q$-`*?nFTC{R&Hh3oNwY0}PED_x{j2ZEV=p`MbB$$TjL977c-%a@E#`d93 zfD9JZzqfV0@y)iykq&F0o>2^7YLm~Q@J$ishE z5hC0wLU%Oy>I+fQxY$_!d4qZ_;tM{9eE(APePKm4g~p;LY)l9AJ!V$(eqYWQ$>fec zKs9Wc=7m9YV~_Ph`;Kk71p%4BoX!mdbpANYtIrMS#O=ysl~Y$NuT~t&B!OfS!S*Q; zK+bD3+bJeCE7XPr*{3GM9ZNsgcN$ynBxxKL9_;CTz=v-cAtvS~TtRrLGcT0@*L5Jh z7t>(eMpIfZYOOQ}McwKQ8nKm-NC~6u2I-R@_*wjnfHv^E!mP(}Rc`^Nf%28gc0g+0 zxv#x~diD@AiF9bdSh|ztO@Bl zR%9hGL`Y%=D1a;A!4YTgX6Ao2c5pNaf# z$w#k2+{8c}Q4;USe>rRlGBYj%0h8?r-e~Q;A&Vc%6EIKPXi&-nuPeh8GGKGi_gUda zeJqGqP%7N!ec%NF_*ui$C`|VlzjXOWy~58~i8=3vtk*&W6bI^zA$V&WZ@a5SzLor8 zNLtM#cha*oQ~=NUdd?7`;4_87&)u0i9F!w9p4*Mejav=iML1heEmfC*tzw+BO^dZF zr81=eW&NUb*V6+ z&TYVoG>5vRV#vZ8(`}%cGN>vGqAMcChJuJRkoM zrynU>o9~;Fl_i+%nd8L_>fvU|t1+Lb7J5POwI1xWf7H~ATf-q#i7%dsE6b7O3cKlK z&jpnzUp@l5Bj?8cf@mu}sK-!dgj=>u7v+n2cQV%~7tqa)3id;|S zE>O!OfC4dhrd=teRPbowh@<`v63OpALt0I*sN1LL;5W?02qKgB+j#?;`H-V^rOVVt z5!1juQ4Lh>UXKm`7J6+3t*B4g7Bvj8LROfmV)*X?lSm19|GcuqR8{_Q-d+7Z_{_> zjq%&MQ-&($lurg!gGu)J4}K;0^GQk^DN4L448&hrh)7s|?+&`yK2wC)akt6I?Biqf z$w}%>VD)CHgJ)DlxyK0OIu5@~jOdUO7C`9k-f{#^!cc%wfByPU2?u^d3dM&quDS(X z=CZ=g`41rUuaxz)Pc=N1B2CKJ(-4+8QhCfis%6*qTRz`#72$rPtYXvUBUoGxF~DRu z2=5*aua6`BrjWDYO$A-aHI#SfR8#^j8oA;gyvog&*}`NZ$a7Bi0&a*gJf|{Wi6Wxi ztf%C0ChV_=pM+7Nc7yw_O%z*{@x7+tDOOOCsJ_Vo>U1BgeUkM1M%x<#{Q|lj5L0&g z*aFZ~mj4XuDFSObc4)`7MI@vO(*W&-s6D+44K9vy^uNCb@7CHNMsJ?_;t?KLltfGG zNp{ldU5!>BhTk^Xy4n&|Bh2K5EX*A!mtY7)dH0+S!Vr|j_(71h3()&63^YECx+gCJ zI$Dzo9+QbI2HUUt_r%lF0 zz;V=YOK?-;|7=g*xRVoe?KUxvamT1I@W33L=DgpfSQ8zmF1g|mw^waf?ZgBY)*EeZ zNpVWO-%OK@c+k6Oe|pdMhq#1FrX+obDZw%;g>K(pIv=jE6ftjY`Aq!i zIhLKKSiY{Sx)L$Qh13AcN2w`pm|ONca}#pagvI6W301wuX1wI*jL^aOyaB9W_Or3b@1&$uk;93jJka#H2e$%o@%e-`%MGXR4i^CFfu=k=YIu9mG7lw*2tItoBnQvh zlX0}lD7PIyT5rz^8&9GW1-EPhHSqTKtWYWWb$SJvwOQYxLYGXrypL?3Av+2LvDbIUa#e$ugeshOBv96`oIr>icnxKJ-{$C5p} z@I6Hr&T!)(uAxF2n^@Ubwc#a?IAwc!&w|N{R*@E=>i&_Bc1HBVVX7@uXfj2So@ayf`1T?Y;S4!bp0t7p1*ra~f+u!d| zQQTvjjc8kf|Lt!6Wt0t+JWf1$oJIkWjm6<tCFYrrL32b6cLE>Hzfpy$e~2%RHUeCo z%`q$?L#vaq#ns=Hl-y^Rjj@oWnt$YcfGDNz3+@(26j8AL-Bz-F4#K-7)r}P zK|7(%I-+^CM{@SAl1-Zc(^*G7t|r&pyfUO7je2n}4hXNX(GVSdHurl@t8~(QR%yz) zdB++mIBd8XOlgrqCL;@wOVe*Rge4-bG>Q3;v<1x|3k~^g!aM$ZvB%CPkx_+bg_&w0 zCgk^uD%&)N{R>HPj>$*I%B?&$KyD!^>rNfA{FmSSAV+fYmy4W>yl|A_Jybhw@j=Jh z=G6iyte(X0;Z+&xTJp35s=ayzH9xwIST_<|6s_Jd84E3@;pn7y{r2^F!rKJrEWzK2 za4-vzJ`P!H-f~GN?kx+1mnGuXT5+g3f%AnjHQE)6=Y{$=x0m97NTkyK703sqaKwaH zz^Jv6oNb=wpvb)Lk!Y=B3*>KAQN$5j^)w?Db886b@yUb^5-s-7UVsTtIKF~S->(q& zJ}?9Y>?JFiZ!Y=h`cx^=ztDD}z>kjR;U!5OsnK?MzrPt`Yu*5SUKeMvU!pa?zpnm- zKd)kIuFBQYQgC-uq-&MU5FO4uv7h7P!Q=fYG5E%gS#0souk!J++)O$7A*Rm)%rgd~ z2FS<#BY-?XIweReW8R_>k|uZOlIWww1Jkxv^Gf(-g-BDI9#{^7dw5c;6EZ69E zaC)cm7H}UCW;(vZq2EVYYIs@bo+x#)Mp#*n$dSEM(_7N6GY!93*lw(98DP-uo35Bu zgaIu({QS5>p{nxtzIN4P+CQ7Df@0hKHJ2a+)@l7Qk8EY+fMgws41BMTSlaM-%^0g3 zY!)z=VikL_WG!=sZzz={DgE4RYVYx2WdtGZI3o~;E(zpgrc>zis)ag=S$GGtWN5-! z-yVPLp<82a{V5Oh_v6-sg^e=}|9JbH^#Mk$ZZ|)f;*loeT!YN-uIej3sMP%%3MO7X zJR}cCvjyhMq9VmpspT!lhx&r}2+;(O;QSmCJ#*pd)6nLkyAto@W8D)V-J@jlTvK6Q zL(t?Gp~sVDu@<09mrje2T^p0NXYP-_>*P|rKt=ansX9Zt=*BJGy|%H4nX~nC%mK+@ zE;i|kO^9n9Vg@?8e-)dPVN+q{vOvyeC3*e>W8vArPBSUPIRG{08-8HYw{Exlfi_Sy z26gvDf#MhzZ&L@+y|acOw4tz@<${&NZ?2*2duNyYMoH&K1{?a9`^RopNQWmTHZgVz z%vPR^MRc1u@=I=p*T7>FmN3Rd7r=-$hR;YI_o)24s`B0gp*yt&o5%ykH{KtNS*8W! zdk^PZc!v+fGT0;F8S#$_*H^!-t^S{V_4a({lM4`4lw#W6FA^X=k-z~J&3cSbd;|R! zzqk(saYl_H@rDJsc4AT#U-1r;ISpi6aX1q9ze{!;>sF(09Db`i%pKRm6djj)5_+*ZcWofrm864(udGDt&ps?m*SMb)8-~!)whN zxX3K4+0ul@Eu@YZztKQh4S{(XFPs>g0d^~5?UxwnFM^X>juVg_Nl7{!3d>I}-Bt>7 zWt{!!)c^!)P_wy)hYVV^H8xWk>Uw1)+iB)tda8gHm8Xget9T8WQnrD=%{!duaA8$M zWZ1FG1$mo|16g^b2|a6Ot){I?h)SJ|cFTd^=3uk{6AOX#l969Fe_Z#1lf&V#KlJEm zzJiXevFQ?!g061svs4DYo)0Eil--jI zoyUhW($6(G;RVOw0{-)&D|b2_?X>l!fBlEUS2EUjbhbz!VzA8v10OC2V$p}d{X0)0iXby!*3;S!o3e( z!h&d`?_!qLL_N`Sp=6w+-s!e<-W?@5bvb;$0U}6wO$u-O# z{r8@NSRw{tOd7G~Ad z%Jp0@pxW+cr-^jYU@sGypX#b>$;0?AQw{Hp$Ml_pRA+g7@OV`>1j;H;kere%T)8E{ z71aUU#O`Kt=0O}6o57dqC57#?NfGqW@a_* zHJ)7rYjtYFm@k1Cok|9yA?bUfx9`M!%tc=RL(Xyj7nT9W&h_8467W_F69TX)jpYAa zYgGIcSb^vEc9hU6PbD*by~dX5X79x%Q*0I4qD7v7mx#CdaDi>buB6g%utEJ4C|Nk) z2hINS_O|Fa&{@me=5gbEbJ+hJ2M=m^4a=NtfHK6uIw04I?H)Z`e~(}(I%<&O<$?Xp z-)x|LuPh$@P9iE%ppT_qk!&;XJd)x+&o z{-aUWTh6GYw7m$sssTcA`=izKJ){-#7d3EeehK-O_zu}6K~~{ zE1R6ugv+0M)Y^X@4!qmR?8$~RoZ0ElectL2+V>h7%sn4cFRj!99i8tw0o}OO2hsSq z)Uerbgq0V5Z~vll-j@VWQ(EIrb{qK?puq50@2so*OoT83knHZ?gR zG{qbYhqhr_Er71lKoVPw&`t zEcsE9(My}ubmPElE3|l<^3eO?d(L{KXhPv4{%MAeKqN83*PEnY3a-x)er1e*5(ny* z`x6Ky#fb1;*c7(}am4ou z?h9t1-~dr!tX8ONJ?ni#W{69rO{El*8~B>Ia^<+?HCsA_FjBfR1yH_hT%L*WE^W1_ zUm!6X8CWfIW8T}4Um0Y$4R!Zgj~ioh7q+bqQ5f$X`3Cr8;Jp*>m?)SIU^P`%_sRdL z7}lc*O$dqcJO3)%c(|;^D(ssY#OU8mb1};=QUD(I5fsR-*}obM-BJ-e5G{Xf2{ru; zkLxW^0&%WlK^Kh~X;>zSRybgC_b0(C_(^^dwjZc;Xa}%u3u%HHTvfEZI^y z!~`+P{n*;tQU)gg;&JAgntnD_$OZ&x8lJMakPyipcTF-i1$&_U)~fd|%I|dx>IS?~ z_J(&GWGhyY;ES1q$~H*LZroWuue}^!9UnUqt|0C*1xH{AJX>X$;0yY}Y%(Y+8T_87 zh?WRI9zSz-L&*l0p6`RpF4cXMUK-u9RjOx!@qwsk;Z+paya~K`h)9=KvctHFtmIayNPTz_Wvn3`~ygiBvSj!W; zoE_N(yr$AwAb3D;+Z(eg+efn^v@sNr{vrwYl~jw0gB~le>F$AJ?5G|V-w>K#ioC$_ z6caMQI6-64Xda-uenbbd69XJtsC}}GOZs0QAEx?XmLmQIFTH+8$Pgl?e{xL9Z%7@p zO(~a7mBs5Rl{GG5p``dq+V^YQ@C{dK>N=%vDBd;Lz=u!8mfNSUW0V!u!R|}jYk9*4 zeX&tPz655qstBmG;Qn@YQ(w1HTz@MHs_BtiXWnzu`}f>X8%vY<2XI$rw@s-Ze2|!f z0rbqZ(<3Zr9M|$#24k3U3U6PdxrF!jiAwwJ=i7UL{V+y=ri3{fY;>ft=`tG+A4=5P zpfz1VASzqcNw(^h8b6y2W8kwdy$c;KySkp5^S%~rm&Vd8K%7%9w@dZUu2HwT2=tQ_l=|1P1ksirN2F@`mf}L=#ZkuDk?}LtfP7f4ojPc zsEkKu(GL3J2iIC#1$?#_0hc8mf~I*=cX~JFSiQn2DeMa3PXLZ`LGkVL!d#2<2o-&c z%IbUdGGV-NIWn~4c99&xo`S@mVKOz5B0~%=_6FwrlAk{|3{tkKm*G^|TT_}P%z9?R z;H!cV_*D*NLX@6=LWXsDWqf^~1H2J)Wuz+Q9Q7-fj_a!5iMn#3Fa@MjT{Ke$&@_IO zdk6q|maR1?W&mXqZ_^YUIUnL;N1>j<=jQLbDBnUSPdA6^3*|_w=^Zj!)UBb>TWbp=bqLqm zx0&P!vj0uqT3f1kzshNN(zx}A^N`i*J1tP-BKFqbg=V*_n;{54KWi;uTa}0TaMW}?c7ZuZ! z75NE@A#2DOKunx!Vlcit-U?xp;ep>8K_JW$U3om_d`l^@4<+l4yyq>CFr;os^$-*{ zL$QBSM&i9pz?+nLaq;lEJoX4OJ?b*BU2Dl?ssSsCH3(z|1XUlW_&=w|t=Pc>sI7HbUMF`h#BIx5=Jpz#ObUr)*U;8`bo zeG$e`cp4MYj0d%V_xGwr+kz!6u(f@dekin{Y6t}UH*tPP6}vU(tIL!=f5TcKeOcv$ z8r?h{Wk8{IzpQU3#J336FTLZ7=G+V}|4;854L$6}tC}=mK;@kZd>RXbnmYr7k?^wD zrfYBY|fpuY`j$LKm*LD9*E47?P1{cV=fjNJFFe@d8 za6%7Vqc*OZ>26CwWvpk_yYdUQFHGShBo!}d5x|&&GxE~~N@PrVK$Q`RzK9xzC!-3p z4zYfZUYu3Yvv4mN%v488M-13fBtEQ~8bIzma~Rj@BJxJQX}9yr9c)o=*m~S$aKp7j zNJ1WHA>zs%GN z1^}UiUL9NYh=Df%JN()GgwiU=)Rqj3I2#pS_(2<%fauTgoH7YTG*QfVRzh$Qu*zh} zO-v8PWIRU6es`cBe|x%<>8t2)&gCLW%M)d5NPP770gC52$!}p~YX4};L60Y|e_SWJ zto;ycRSWH?WbD&M5MdS`dCwM{d9_7P7|>BY*Z9C8Qk7>`F5n{HkU3IZv2T*EB~!ml zb>|*O!yUiUMs$2=D$4uTij0CYiAT~W1p!?9Zt$4jeq(?p4M%fZkTB8m(`0^f#cntL z&2+LqcC!OGJF)R^Xp2NlT3mp8^$~OJZ@VAXPjQ^^a^10c>sgi_Ys~uxEyw000eD?< z8B&NuptI9h>+_FF=#i>b3DEs%zU$jWpev%BVsbfrv0tw#`{}ruqYj*k z1R*_N+OYGU@FTdpj7>y>WU4=0z&9d#cnT?@DR_oDvU;+D{n!F7s6RF&p4?B*wJzKl?ONNWe1L8l2r8+aKC2PP z0L@ZQ$aQD@Zf&qgR3$FTuW9b(S|;8N4wH~aJMo`I4&|jzm8XS0E}OknZDipt-zo3_-OCAY z(4PucGSjNYhM?eT#DMzv@)ruEE-LE!LQn5Vg?HKPBiu5847C^3z2S;XPh#LhmKl|& zMQq};e6bF}GZijyw3`>c4@s8q6OoX$o$H!_wGoQO7Dg6^f6tU`@oR1Tm| zMf|tR0t2PU=r^;KqV*pDKsEcrEhc=89>QE}B0wvQk;d*Rn#-p(Pf@(}ybw^>6m-Xm zgBSaF_rA%`;Zoz1^Dnd-v5UUP^xY>L2bRQmvAjN?*~`P?wBnXu4aFu2p`zZ)lWomh z(FpBROXrFI0Q|;YY7h{cJSqaG%>AVbS&|L60GKxH-#s0N8~FI_d5u!siIh!FNCN02FiE z`NV{6v}HNPzLDr$q*@tc`|V=u@-&3}jyTGb!L5a|=JI3XQGsgDg{qZp<6N7~d@)PG zwt`lRDm3hp)LB*v69}=bpm}54_GC>#5kU?mBu?Yd*9;T!A4PnJ0)jC_nhPj6iGOwN z-zWCI0JgHv<=IWnamX+IoRSlF&?DC~_157!S~pR(3oPpi@|a12H3$YdRtBs$SdHR) z#RU=B=`Kru8?x+2&%V-kv$;!XAkIWM-^+#O8m~3tBDH zr}j|DtvGSVcKG)-bo?+MN5foKP@~N=sKo|x0l#zFoXKvMMEwco;N3aw>x)-p5Mj$C z8wT|!$T`>#ew1b7_8?A7QLJ?z83zbV_V<=iJ1isw#mxA`jl@?Xub~uz8IUEN9z)4D6m7& z4+OZ6t>{T$hZcHDIhI0W1qKHse0;Tbd>5&=#da0INf|!XAen@1Qz@MOCDm1bye z;Uc21uAm@;@Q~E9q*BgVw43S*S8x7|e{NWJsG)-(%Tc!F^v}$?Es*6GVg#~4rAN%A zV_fv@?6@QHw3}L{FL2e@)hal1U=chz%D*rfYB2@|1SQv$Od?yZx%p5inxEao;MZ?PyxtUbw5Kwydw$L9b-q9hF^Dvg>!RxLI;N zVN7Z-Y5Dnna#I;ox9^OfpEjRE^bCJ`A27M^j{H(|Pr&(5w|@8Qe1cHdvFUkz*M^K2 zi-YJB=XWGl4$LQTZk5iKc~f8-gK_?*vc;CHaZkxP`cR^qd?4=I6M!B5hHm}g&gjJr zh0NG#@~nkDYO@*EdV5TdFnWg#X7TdJx3^$q_QtTU$~-KcWm_&M6{d^*CbZw{$r|yJ z4hcIsBZLba+IYFr!=Z#ch@PrFJZ4}$mpsOR=Y$ZMB8>KQKXQsrN*z;Wx_O!&U)68|}7+TP^*@Ta^jrlUC&DM*lrE&@2*6 zfc>6~D&<3rmrY24m3m3tQaJ(C&L#IV-Z#j+ef&L`xI({G$suzv_NkMftoIuAZJgYS zuNn9+(ZC6D(>X{EM2-UE1Wf`;Mu9O>sJ4QG2Esvlpd(++=DuWvz?Y#=WWx=pDq47) zHf$xkdG!E_fWRoQAE1H2@hC7_?dt zkY8PZhzWu&J(-nsj(7+NG>QgO1_%YDiInEf;u7pVvV{~!m@YhVr{1dL>BVz?&*s26 zP(wjswDwCSSd#5v4v8mir-loH_Bo^BM7Nf@=;oW!`ZzErCeWCfH@4(cqMil1|I%ea z$k)*{GDt*8{>!syI`m)|F7bzNT&DQAX^8s*nl?}E8W%@h%eMc1Yxd)|2f*Oo-vx2x zT&kv>g_;|XgkyYoV=t3*)zd)^2n-&^;`r3ecxzaRA}}J?+*P@%H81U!y}Ej^Vb1;O z^YF8IHV|}hlI0I5R|9#^BZEH)^Y*CS^fAbeIhT3wZ)tEWl*ASB33C3UA2ujoqhheA z63LwlQ+PkZYYbJa%)P(}0|605o6!8BE9^&uQ-q^IRQ=32gRwfu@2s)&Nn=p+>-#w7 z-Jf;{4|!Z6UQwA0bnNOWs4Zsvb7_)P80gkC^um! z(NJ$Xpe^-F%Ia>>Sf{^TO{}F*Wr>yd=eCP?!nEo&7slC=(dBPRc>vvVE@01yX_qmySBYnUYL|GysuNhwj`vvwIRH)t~q<2=M_gN+e_v)~& zq`<$R!Yj%VP-!;oWgdAuj?+a6(qM7t|H>pXpuT|D7&mTXKYl8oqK^PVM7P-uGRnJW z8u!}WW^HgHYEbSuGlXxyBxE0f3Y!8%vQ{=^2(6K@Q9n3+<0IdXSLoFOBJ%f@m*JHxSS%6g!1KHqnOl2F z)a6{&)8ARnJS+;#=i*!m7A0D%b{2J>1&llJbFx7%DF=Ow*Tz+=D|tbm(C`6@=&%gv z8SvT;P7)`o6NpCz)E*!T|B@oF_k>Z)a8NiI&j)Ui|1pF4FOD7^{0H}s|2IsvCW3JR4vx2E z{E5p;OK)}}&ng5C=6?sT(yoHkD! z+2(!MI?`_(X@5zD+I3~BEXdBz{o;KArFPl;ZNY>&ucu9wud_3H?)D>--u?in@aRRQ zkX5ZqFt=w8wF0d);Ug+@FD`o1zRzXup}>ZV*pexi{2Ej*4CBrRv5%kzp#8U&wd84o z1Xc~2_36&xh9X8W852WbI?;~lz!zi7P&zB9Z0*;PSeSZw_|XLjR*yx)Bh@a+gHXrSsFgK5vHdWV`CY0PJD^ zQ2fIrNL`zGV)oc1>E{|Yiavg7S5@azT1aGvmSKun%=AfE)XS{5N|lWHdK2MzvzLl# zGKmJK-!HA3pUc1WwG9)rZulx2|2*BWFdSTOFjLAS$UzoJnoz6vlI>4%0Sm_@>0cfrK#KZ|Z;+#k zN)FM$NS5uPpX?z1%L6u>BIyKv(B+-K=3cavy8gw>Jgrhcd zof0%yHcqAlTA({ibw9hbwS($lvocvb8+=xF8DV2|y;z$1K)buhu|kgJ7`XP&?E%sw zA~OOb2qIPL0obsS2y15&sr$Wq8?o?JbX0lixB!Da-pX43Au&sUHq%LnU?xeb55K$f z=_|67U7kMk^}+jbk!Un|3!r{(&7RVpgN&|ldkE$E%#Xgp9YLa7%v+*U_h=a> zcCCY>UQu8BeFp@zUBWvLvTMXn3{m$uNngl)m%DD%Z;@qy0M30gDnr5n0Os|iSNKDJ z=|u-pv5YhyBOhVnhyAcX*hVDIj^M;G8Fk8j^9_r3Nm!tP&p$VN#(eO_Z`)XB7?>HYX)V9F$ zU-Hq+EllqK*c%ZSFxl3cZb+_T3lWofP~*gYvI|H4@i+DIfg0X>Pi1v1wN)(hTM5ETwo3D zF#Q2!~xI#9B1s%T|PEq%?^(XrDOU>_(o+MsP$VIq$Y(|)^S1eS1B!zO~K zT7=*LXR0MfUAy%jvjgp3^RFI3BswsaAj745doGi;3*EtyyZLMTZ(2Y-L@F+A?>KgN z+QmBH0MuL{ivgr2U1ku=^Xr3W=PvQZWt*WqwDuc$AA2@@9~)VIy-lwMPl<%^(eS_> z-8sI9Sfn%4?sgB-_k#MZi@?{6_zrv48QRe}wQzVJTJ7m>?Yr*^!Vmaz$DT~rHG^-;+>EqL@}JyO`CJ6P~Ym+!VJ1blcOn`X+(`{{Bd&Le}o&? zwcF~2+yyL*h108wB{~z(Df!~379&$UPR~P0>s|GtVkWMAq%MGhQU>LzbW=^Kcq7cz zFRDIfip`Cf?|T!y5lU$*SzX+KCwn;00QzPXLAPMI!wKc5;qoRnC7fqfgrHf%X?7p) zYpil|Lbefe_1th;B`XwKV;KhN7+0*?2Sp*o828e8@IN~?g zf5Y%AQcK_`@7!`B3Y@mdclA3JO)1J+1q7-QDMmmeqp2F94iGY;@66NIFi{eGAm(4( zQ#V<)=RI$wnKX{wk+Hb)gFSL2M}o4ZKAy7UMp>{=(y& zPn#Nz_Nk@@v9s?I5_({O#;*|u%hFWXZy*|uGiF>iL0ZQHgz zX|k=!HPz&=|5_XC`1an-ck6kc=mZ0DDzW>4Jj7(nT@~ z@QN7iFEfL`JJ>zXPxDIIWh2%4TUxn*MKWyObVmW7KG z7yk&`3Kb$mpf}n-(IWa;)5FT@+j~(fCx9y6=^b0v zMJG*6CgMs$-xr@rJq3dQ{I-LUMj672hL%!XmmW{Jrg{btr~fQ$%H2a~Sa=Ny)g-*Nkd$_5*vG&j%ly~hdZEBTT(4MYe| zX$VVIUull`IY7pwA{K~;MbG9-pe;ez>fa_udgsE=WekOZqHfnun&ol4L%<2YKALVlhw)5_UQb(Kzis*;sV;u9b*k(Vz z?7v(fw4eB7DvUN=G4FWlXpKdSCh~934~cy8I8`@)AHuw~`M*QDdwCg6fqzN-2aZmS zlw_|pSPF6~q_)0FQ7i5DSNHw4d9VtIlRQ%b>-c297inbs%y{8DQGQp6Y0j!~!qEF8 z)N`r>!HE-0uf%K3Qt1IOQlXO;!}atWP^A=2_IP-0Eb&qm16CzL4EcpuF#Us#WsNQ? z%JIeq5o!KHa#aOzj0xmg7hQzPC-o>}#!&@ZVq6Qcy6Y-Nr_XP9VWxp?w+`j}^&R$M(zoDahQxQ*2}v;dA`&gR(;N`_1%QW5lO=du9 zz+{JACZ5Y3@w3!b=1_)-Z3Ky(cx_WkV>YWyehBmkGRkDpagn3&AsM{zewpKG@6VY$lg7f9_5e7`CM6`b;`Pt|) z=rwde`^#qOg8gE50_VH;TCkf);}q5^r(1?eu*S>Xd>lPKd z@nQ9yR>PotaL+&gn|kh8TH!HFI9TO*!Vr37hrnBUV?o7<$pO4OZ-9ni+%<eRRbvEUH7b1veuOC?@2gy!bQLueHpO|;b+(N2P#U(zuv0K04L*v- z1ip7D+?f&1NZf&0asW2;fZTym>4WYknpY9CrT}S6#l;$mP-%c^RzIE>iZxf zNeK%{h=rMplhqv((Qz7jTcn$l6DzeWzZ}g9-khmF7HVBO**q7=hBS@aUxpjKot2pl z2%(C+RA0OQwR^s=wU9~=PugshEpvNa>>Q=Z5=NiVSuy6PyTZYnjQ%;1!LC)iQT5ZP z+zWX&){X&)006I7zvgJs149go4w{owPLOisZuc#Bsr|Ne|j8*K1zlW8~p?kzCcGJtOAmBP~j7R)XnBE5qzE)Bmk{NLWN>{078c!c>faj-`V%Kp9Ghd`mG$K&EbnO- zpDU>uSNkDL4yZe$^d3z%CoVnYR#a2g90X;JgN2$CVYnXc)}fj$&Ugc zl+$kZn@0H0x;=vis&sx5G!?_aLQCHZLaCn)Qt@{$((#SU$_E>e%C5Ly=PKws(YeJ+ zTZn=<^Lr&E3P2@~t7M;6BGO0Z^C;8$QeS=tWt}dD_orLSr^msUl5|#pDbl7yMBzv7 zFLR*|13jGE@_)@aLVSj5hgXTKhwFzxmn1VD!>?K7fsZ`SD)@~}#BQ|P*r-m>SWfG( z_0xfiPVVPo!*a8YR|_2=psn_yuikiboEd*C-aEFQbhZ;AEd6bH;Tujem6Nv?&f8DQ zq6$fYL#AiQK}hV(>gNV*d|mM1OYE+fJhq#6jWo|rkFY?1;LBqR}-opN#i*oIegZqtauVYO~P>75XPD?CSGzL5a zt_#%Gj<_XPv)B)j_TtR?9UqQjWRjqC+gV=r zI{?}d_C~c4oW-`$^#-&ANs<@PkK8{#LW+kQUYG0uJ@h56J~8UWp5=#8C5EfrI@nUf zqg4#}ve+aQ4pplBZ_IKJmGl9yN#;V|!5rNi=k9 z3&#Bt+OEVCb7j+{O*hQ!`IwBQedcCMvpSkvhxJcR@tuvU`h7RibW z*TvE`w{(cBid<*&e7M~&X@u(lRhA5a_L%_w25S#?aYb}E?ZL9~T)QAY~> zbUSr_&6vb&-^%XulEKccQG?S!$K@{^Z@-62HfmTdP*#0ZCy5(K+zh61yvGTs`VA6T zWGFMA#|spjVAZ#MKudsMm+N*HmLu+l)x*@cg+ubapq0|ZAH0^>-Sha&A@jfCzksd4 ze(>JHUwWxeYaFTt*%>77o39rI_}0|ag*Lp6cs9pDV@Lhb56N`CKX_&w?i_FOzO6CP zOP*>dE(0JmiGP-O7s>P`DYeL(VDs9{!Y7nDwI~jx{bH$5q*VfLEtE!bxCGbU#qdd$ zudd?mFMgg>@8WgcoK`nxP3K|6ra2obWmSM1tFa{2qHujm)P#HQBv&EH(% zR--cAV_&!_e*Wv9pRj(b*AcALY>aYYC;Q@R@~QXcJEwR8E@Z*Hl7sk?48FdT#|SI1 zWIRH`Bn2oQXh8;;&F+T=_qn+AM2i-}#_np|J#Dtc+a$Ibnr|fOUY(RKkT5(ZP~%OH zI5yz6Yp=INE-e{EADCh~rh=N8x8g_x z^c~YAu`ud@m#bVbJ0$V@gHcJHAO05jvgnLI(O-E&uXOu;my~~u&7ES<{efDW)5Y}x zE%08VG`~rhAa3a{*q<4BV*b;;smF$1KOTK_cxbc+a6M(}4%RO;wmLWWd{=0Cv;69n zzOQ%W1kT|zKDzw;{T_D`-}#!Fc=Yy1FZQgm;7l#j+Cj09_seLYg59cG)TOrS^1L~F z?$Xq{!ijw&9WZ}41L!A_e*9+A$PBZ9DBEbP9FIM*aha(((#@*-A$5^sHL;wwDXGfs zY{+@Ya_ElWa_JqtagX;zV85DnY13JGRzoN>@&N|tK9)KM4}l5E$H|>)41tZ6dN+c_ z@L8DGZOr6G`ytXB_ywfOxJQ9>s`|Sq-JNDU9aE7ebsiSqObIrQafnYA@S~=(3$oYK z^X2ek$89v}-E>S$CK8?n)2TOciilb%C+%$_OKkFypt{~S+8Rq@>hv^rI_pFtetS+o1$LxqrO zd0L?+xwsCl=2GD#;bYlV$7+#wq>`mooIhl6B$eaZbly}OuYGIJ;KHlh-ZLfYL>(WzR3EXbgr zr#l~Oj~Vsii(Z7E^5#+J2f!Up6m((R_~!simZ24E!J3YRU3hO*g7+k}%Vgi! zVp7eEuW&Mlddsyy&sqWMJD7a!;ogsizc_JFRC!Z3-C{s1h!dIZreeJJeta0L%(mHF ztQohGlB`{Nw0*Xd^+AE#jJPMr=Ws*y-sjcn&socN2+5e>h(Yxy1~v;WuZ+y)a!hbX zc&UpoTUe8{gevzb;j-Yemu_Iewc@}2x*~TScKV(hN~R3;YP1JGVi4`19&I);iujzS z-n20+vzqGx>D6ZlHUDoeHmTBvUUdF<`P%I5tHHHVTZmCzHPyQH#DK({++u(lB86%B z7DZ)d;3*|HsSaAtBMXspALnRqr;c68sl& zt#y`wxl>@0d^pWvQC>UV_B?9GVto3}{iGJm2W<26Ux8(XSPe&SlEm2#T+()vyP0wP z!?ewRTu_yE{CcyyQxT;Z764d3!m3?|LS?h7l*(&v|8ss-J`hnk;Qz+K(i=09PEf;_ z{Lx}Fi#Lp4DFeW;evkFPy6?DwJyp}C9S%+YEz#&;!fCc@!>J$%`jBYUs2J9YQ9;Xk zGegk2Xt#0p)!5S8@1j|}bI2e9gZ$vXyNRVDscjAY^1dG${n7i(w|08CF0#9&bm>l6ja(bHv)u!@%fKB~c zQTtECnYwF>g9$~(!NZ#x;P82X>1Zdex1oP7z3otzP6RsNG%zMJ)b3YL4W{hNF=Vd1 zh$_bo1yeK&y1T#ob?r{|O#A6@4v%6ZLBW>Mww~+Ih6A-K(mcIe?`|8EJFKW{5~4vfB75k-%{d$mCbY=v zo7C1r3FDo&`&fd_kaht@@A1Wy^f=S&o3wO3{c}n8s!Vq96iKdi+T&C?lhtJy(T@c| zSI+Y*srjbPhH2xUIDUudwQ_zZv5xUkJfxUH)GWysDwa9VGffuLWJspeuL(VZbF0=X z+u_$%R(jiTBq*iT+H9X|$rwLTxjCY=mAQIARQ|(<9PU^4Td+Dbsdch}2tq4`jOR}f`DOYID zIm4>0D?J{MtRcOP+!CUv4X5R#OTe=#MntC3j;mwZ9YWqG8X^}3ViX7hHHv*L!kH!; zj2iwh9=pVt!5|K|q9@sg7N^6IPr(T<6#v3f<#1Vx?uq5jY=QbV`O@IE!D9-~GmhiE z5vc8;#NFMv5USt;W8;8@`oY^;a`x+IiA(837Kwy@M|CgqPPr9|vKA#PDwYGhO%fvI zwk(w@f6n>?Gk<;xz;J#wW5uOoW2?u@<;Lhs%B0H6VC#L!sr z<-KB!DOB{e)=GYKr9^K;LNWq}p#-6$W*gnDMckdU z7c;?3=7taa$@$SKkTM(}y3TPm@ys?F)iquDQsauim;Sy2oNs)K7l5{l(e)A5EM8@| z>@+!YXVm+^ylPU0FzXyGl@w6#?IXP?5y*hS|1GIbG4SSv?FOE{Ka{zp=(83#5B`$R zQgyQ?t0pjo34RDKqs7Vxu4tg~gtN^cVLP(D46p&352Nus zNI|@Uq}3s==Emx<$7Ee@%YN$}^$8IoP+`oWeOD#qa={WuZIvHf^&XT@}z|B zbo12Q0lY$41r(?-fID4eKXouh%g>B)vhXCljM*>BFbf&4^rtdSvL!vW7> z%mPP`;n$QK#ga&BlW24G@0M$iQ%YAZa+Yf^qj&hTrh=iq3p=0)gcO?JSA^5YxbsZ< zmt}=W5V;wXIeH-!klNfGmrS98t~|X@h08Ez073q^{ok=7NcF5n16WYuah|2wmKexw zas51pVCoNB+{mn^z}jC!J&UTEt81RIb%8aBA8Ah~{<5M4WOex$I@4A{)!-%EsD4vo z<9JWWq0#p;Kfy@U{?%ofV)%>Hxa>18>0^69Y;i6D#xqc|*QF`1gZ?mfmyzG9zLS%$ z0jvZ1sz{~m_YJDZWPi4pMKZXS#o=4R10pH^?J4W2z!;bIrFR}~OoX7(1((>t(iN`(6khk`#Um&WjgSp)s`^nG;D$S4m_o0>|_Z^WXmT`6c*AP50+}!crY(g|+g~106N%Q5^NR?qF0!4h?&deb;{D`|_WJgCLyP5rC1QzDHDO-ho}4j9(7o0`&`$|}m>QZ%W+t^yU)PuCXdtj>8#8yN9Vf?41-Hx4f-p`rMt~Qb#RsP&>&8b zWgZj>&CU%iq5URAd^JIM6`$r8YVjRAiXo1#bB*rmtdH)+I%VH?=4AZ+t@W$ChAfP1 zj>ysG1bd{l@Y3Q(KD5y`s8hDjfX4M5sv_K!ae!;7dOaq2hLrIwB>YsS7pTgw|LVLn z+a}GXV{66aSfSc%XI14PTttv;ig__sx}CS$HPDgbuV2*(rZYHK9rnAkh$KM~+AJ&J z7FSlqYXX%!poxVel;K()VVDh&6&mK;Z1&>u)J490*l<;)q93!f`*xAp!Y0DA!yfx6 zE{2)flV1HT09*CND3V=p5BO7YI%HJyypGjgLE3l4l)>=3xC^yAx>(RJ{!mctTE(-_ zAZrT=%ZS@Jz!~22V4<3?Y7g}qlm4Unf~Z)yi50&o-vt{tk`)&VWEpzDd%Tx@b>IPcLOLxg@tlBDsz1M>Hto4L8lDImiL8ewpI#lekd zJ8{(RDz*YVsT$4ms)$EjHG~}kharP_5MRAE` zV@5g86N0*nn3>UL|8@x~VAxM8PIbkp(~wF#A9_x}6p{B%*_oDrf&B|J7!O}ip@&K| zLsR#ALUVOkrC2VD@z;7soY@&W$4B8^_Ky9sS`cfIp0>HzIFO#xm}pJse&hZiW!XI6 zDa%npRRA%zntDmfvb)T;rKhDM$_Lt0-mKy;wTO(h?WvjzrD7xK6>`Wd;b{N(2`($H zI90yo7v`@U*dGgDU;DmHH)^xi_2hQHX4ES8WP2u?oB5@Oe(L_SuJG+OaQd%t1_8^n9@oyTTPo&`f5 zibh-8|((BG5ird3YFOleos zC3z^F@}SOdC}gH_?4ehX-&cznK^D;KOgCzU+J^L+I>2|E=f%+JcKULP;J}$%n3*h+ zf5Ri(Ge*7>Q7wD{@_{lj$DA7bJS18w2hDFw0sGbKOWBpb<#)leDVw0|HtdtaN?ADyrNT@V2PI@rd3#PL**&W5d-v-}w-A7Usk&M3yRvuD%4tYL*{Pi^;ODOdbhWLYYN=f10arWek_n~Ygue}VB zADqSf&3<8bngjl8qgd+FuNg2>}BA->aA&xX}5QxZi@_ zGgG^xT+v`8C~Lx6u20*UthUE%d$`w(ngnHyr&=VZLZVoFyFDKRORcof<-Y8k{G9@v z+h4lyLC9dOGp`edGbXTB?8!ok>wA z(a!PxX4cbq7?gtfwUI3hkfY9*duks^jMLj=6s9R5D90>G;6v9F5+mPGl2-A{AnPp{ z9oC}WU@tn8$)KLJPZ;b;`ubatnsX-MkmiXkQ4)>&!}tjoO<^V^ zgn~)JuWF^_{JFq@kQHB^5j&qBF`@Pdk^Iok{?As^cLmERi_T9EnLdxAwMP5j*1T|jv%^DJ2~1)ejf2nh z$uE0i{%2j*lV?H^Kz;jsa~;J;w`nA+d=)qGc(`wQsIHUvYhyVwGgaExAV}skvadF@ zh6|aDH2Z=%Ns96eP~+`zE@l(*I0&zjH=e7#f$19oJi3psb331n2UacG71zY$1Wf3; z6V2BghBf>vb*V+JC2Kw2=FXw+F2Ezvw+@Kj1J|!&nhP+Dl36; zI38FVnrc{0@>^YyI=t}c(|`>%s@?04iq=tO<_)v_gFNEZ1*4@wjz#lOyh-gm`cf+M zYV8$jtb>^Yu466x+YZbuUsj=?wGX#%9wJnz$3564K8j-k9(G%X9$IVO^br_2z*Ru* zm>~b#Z<78U7-G7$b+Tmkiu2ZO=`Re+iy116*rn-p)58o}cZ8T_$1U-Jk`#-+o!M?-cNzIAYChbZ zEK1dyi2@M$2XEnu)fVZ`H%Ppr)qrlVAA~jFv80G_`XrOoi(6?ubd}pgknv7@lZwOO zV7U3hUknoU5{OiyH#c#n-rVk{GHZnaj`aKv9YNOAw?;&sF7?mr@=H@%BZ6p}yAx6F z)PuSH<;|IMFWuwt^pI4z14pTIafHk$&m?TOm1zeT6AFq72}~~GmyUaHa66VM^YeSw z$yCZZO{8hVk)F1uvP!{dti?I*)hezx^q69c=3(u_IozBOAEFGDnp70`jkGmj)j32% z8lE#+V)!QC*{FY&en!1y>%P@tww~pM{sNmedIFRQ5=Ds*ZLIbvmWRk2X>kLCi26gv zRVdubyiaD+S}ZHO)xTC*g%*!4P}6*%V=y4h{~fJiX+THC$kVl$6}pYl`2l^SIE^7fFZ;vA1VdPh+`M{Dv3eK z!sYIE?S#QYlTo9rY~%aGrr_ra@Xib*ccr+oy_pP%f#T^(mW!r>&q0;%?~|6-Z3JxU zGViN*{dbjeG7!V8ho({oL|g3*Qf6SaVNqj5m%W&}K1Gp8u)u_SAwvV&URPxF)WD-O zo{JTse|SF~j+nUdsyHCZ-`UB$OhU9IbwQ(z|9BpKBP4Yk7jqNsFCZPhv(h?gj`RIa zbZhrej&x^88Gn5u<~^?(KsyN@fVk!N04IHyQi6^NnPYKpDbpw$@%H>jM_q4_z|t} z_d`VUwdY5Tk(V^xfle;x=ZQEYJX#%T{k80NeI3{QE&h>yfz!vr8cox0RS~=IFP6FU z;#KRD>ad6EGox4oCvY$ti51)w8D)7@gFoK0MV|YJL<3MUdLVH8#!5+b-9fupxJ|zo zU`5AsE{l$-L_-n}-FIGzQ|@&ibK+Izo3)rFpSib$$FG6M-q4-06X7=Do!hg<4&SZX zioHGjW&#WRko_XHx-D@oxa?kiTN*~9|4H2DsS zBJJX}7`bBobjpnQ6J^(@HwRlnXeR2*bg{^c(OYk~X0f6(E$HUHu{#tod_&NjUM zMMit14SYTx%)@BwcV)vnCBb8=R@aB`s zc76AAN_c3oyJmnK4IbN}4B7cta1F8v|9jomMb9XLE-Vv4O*h__K0$r8c)(AcNC6+hTbFV zK}wJR?D@+8XJjAtgIWq|3F+WVOWygDwtH|aFF2dqsMz4IM={Y>l~*zLM#<^IL>mie zcBD{7CAVUEB*(eAXAKOMnQ@wV3x^R+1H-=H_=PJw3NELK2!iKP1r~1K&%1)_=uM?l{lJ`v=@4gK;ivW;vvDL z(Kb>ij|78B5?>biY3W!T-uk&QW5R>XucBD-{%2!4PY((2nSc{xC^df$7PicF@6G|T zy!2R%jG1ktti-zp`=|+#aYB*8?oF(a-t*SR8&x!`nX6l59lNcLHVDPq>2}Amf2>Qy z?e)S9-U2b!wBAKHoy{4 z0MM=PH8|Ak4;;<>nJV}vL$%{cs@@h3t*2mn>*n7;PMB13+CqEQ7^tZF5$!{q=^$4#+(O6H( zdLk~b#+mh9PvqmWmDE~ktQs42Fa@v;EI-tg?_O)!Ws!_uH<`!Q^kVDdGMne>*{orm zaQiW@ZL{)nv^+jkOa?2>mq#Bd6e{S0FW0N>>QsA1_mi+Z`_z9JPNFG2crmPht3m-7 z5VD7BHHturL}Z8YQCV~5A6}QAa}a8&90=Y(P1an(uE4lberD-bbRR*Gq3xcjiTpHj z-jmvs!<_ez{;DgJJvw@1)+TIe=zwn}ewi#_hQMKF+-7R_Yw5EMBh1Q^sYDP`DUUd) zuc-ZFzt9l|p83RL6><*lHTNqQ*(ebZFMzKf;0bFB{<8dz&5|`hsew`AbJ3+(4mtaT zrbPVpAu43fBjoM&2NGB(JWcn6K%6{ySK%%3D@!2x(xeOewJ$A5m?a|~E5OH)RF{RK zj*kQ50E*C%av?OP{zt1gB&^;f;)dk7r6DRN z-qO2tat~+o!z@$*m*sI9a9RtXEOD=>tr6S*&RV2Zx163RFTCG|M|zdS3|DCjZqCwM zx@!2ZBHs13`7?aP+~a_JDiK&WJ27&3{(>>XYz78-Tmf79U>q5jaVcd;o$M(ko_GM1 zQXM38V_1B4EH;(W*G5!jStPdtJDB00(6Jae4W%ebUodvqBPg+r@iQTSao`p7D+Z2H ze#odx5t6Aqb$zjAbsnQm3RVaYIWS1o z-!AJ8MHp-RmQ*Q!0scnc<9s_f?t^MZ4EzTwY{l02A83?XKdX}tS@}<%qN0!TT&BeL z@ncG%D^&isonm4IC%sMJWQ!GNSbyCWR+t>8{r7MP6ir{Qex)52rU9j62qZpB_>XqVtnRjr0#JM}qSAK6hSdTC|{n`Y@tzXIaa*vN&;J0)%+8bYBnA zZ2k5D7>Yh>B6K1^Al1EOSGh|qzcU0=uxq5!;k-aT9BmzDy+)|MXxL0io484=uChP2 z17&$_nN_A6#gya=CAK5!MyyW1z@>ln-FaMVAWWV^a5U-a;k(em2Fc&WvPpi17>_a8 z0c-)51F2rP32?H9i4*YOoRtP_(F9tTKc!wUnJ`Nymsy+u@qb4(X+gb{2Q~N-SgNY+ zz7+ag_iw`@;TPqw^f)s>$~YM^6Yttx~>i~jLMDmyW)hF1YcOUyO zbAQrvOa75vGG4OP`7q+9uf~f1_K#FUvIACYjcGZEVYIjjpRs70h$BTr1a}ny1#^DL zM#HvKLHC7zQZ6eRlHGr4=Al*-y(FX`BE+PiYsgn1`FDA2Z2Ip@Tn59L*xsVM{UA#e z{M^4w^@^iEg&mx*JKm{Aks)b`v4@E-3Q-YBXeM{RLqvV}nueM}c)hasZ%0X06oMbg zg{h8QZyUa>zpkt^Mj91YUpWQ?N4KT0>zzmMKShc_*A0l!U$0Qkx)5WK_j>IVu=M^D zai)g4K%juLCtkzSBXj+)y3Wn{-;{G$*Zz}_{eSKC{@4rLNYJ2WAKOl<0YM%-%0s@4 z$-f|%*7`*QD$U>R+&iS(mUK1K$7_}M=7&(@@tqW5Gbmx8nK(I?e%{1yoCnQvq2EQ* zV=S4Y;Mp_wvSby$aq#gb*?pa}WS1;RHVMa^Lg14SHan%JC5GT`MY|i{$8}Dr{d7dNvlNU~U}Ct}uegxSM`cCF6Zl zaB-u7Wiz#|o90d^%y4r23ILv{S)QX`pxO*m+`g(pzD)Fr9MbW|N|l1m$FV>a8`6WS ztjLoi-i^su3c~Tz+`k^(Hhb`e%fs%N6H?(@`h;~-C>>Sn@Pex*$yLivwi#b%h0FBM$1+j>4wAsV*L znW^~iG$C==;gdEYdIIH(PkDeWfKW`am|O5u^7)&ZSFs~LnlOfJjs@UFd&R88ss(jNwL4~Ce z7S-Y|>d}!O1T^VXdo(`XWg2?iKaox@_FCSJo=vH@dhOPwY)(FHA8*g(cI7>@Ws01! zcpO1v*|_ESIi(oEV5}TL1;yA=!Z!JskqENg9b3F_KAYGd0g6+GEj+yrb6)KR+K#8S zN4tag@1G`s9UCU>DuM`ZDPM=^r9p*m)}>-r(lBha#JM1chZDaf%~O;te1l|kTY*#^KhC^AyhCZUJ~~$X{F?%wRuJnI!PwKD zI!`7b0v_tnyiVc2q`ZLCa`w6X-dgQj((|0(sl!52yPa;siynn%2a)2`vy#WUcIek> z^IbQ(!d0oBj~?{W`3foz-CMQv-RGHKV5kQQ@F&27S|?Ua z;Biv;U?y4TgTy4|Cw9=-3ph@xmd5dzMBW62@FbDLxW4S@BW2+Ak3u}LTlE-rXOp0W z5U53<|5||NNQ;}1aKfq7T%OmJqf5gA>NeqYAD+gjx-VlRA4%G zECwE(!+))aj%bU6E}&MLEcqjkUhiF8n1oGTI0fvr1nHm)meEo!k2(a9ab~HIN8gyd zR+^Ivl@vg-21zBre6@-1@7KFFlNMSfB;I_L2uPeX5XO_(L{I27spF4aq9`mpBt7I3 zgrbqbq()L#pY_Y&a+mf{ffJ&o&Qu%Oo>-NnY7HP3Tdi%QUZeqO5u3y_v>!YiO}?PT9?a zf3e|Zr&Kxsjk*e?bc>=U?Z^sP-PGfhd2+dY@j(Q8%$PKIDD9jy+E11qe0)T_c(+gf zFiV&dWv>sXE_bIXD!uX?pWu6ST~@;t`}QmDuP7g_F$sq~>vTQ#y8l}2ch_5_Y}T>L z?Ny6fV&E ztRHGt-R#5=++rZx0iHw|DdWZjf9}`!dhZ&1w443B+Af2S)^$OH?W!7_%tuU;B&g<1 zPp~3jZJdGpnazaM%xg#y-qr|Dc z8#TmY|KLh~nd|A+HnAhOF79KLWr_L4w(N%kMWH`iOjlw&tg)o8p~s^4*ZvF)OUg}y zA6Z^2kIQ~2UC)M!%va*q{PhzS?xiOIZ}q(#J1SJo5IE*}JRmrb5vC@*&lwO}m9`Ee zyEwaF8tt(=FE|&eFnF@U{=>MTSycP42jltcIb(V4L61tw0d3u?_W%)>{(uK)P$AA0 z_#&S=qL-fb+rB?cV7ygpM+INljWb2ouk5H{pw&oaE3tUa$ZX*HjL79pmu;X2Bl*UN zhKlCk;gJ$TFK0cmk)yTg8r%(9Y8h zE@Ywi7QqOSDStH(*+O<3qf~F=wl+^$qAduzJ54nnMu5mp0VC^62hJ4Lwob^jqsx&X zzJSiN{=b(Ff@zp-0zy4b^rWxECzZ@ky6v5i2zYh#8{J<5?okXL)iq=O+%K{N2Tu;4 zaH$yKbzYq8cBdlte-23PG-;!RD*pCE`^d)K;W1v45>*m=@uWrc$(Z=7c~UC@1~=EH9)Ntsf_1Sh z5l^A1HpvmTC#WOVw^wI%k*_&m6uO0%lcIwQD>l-$N9$C zojBQJCnM5;RTR>OA346SsQMKV9REp&A=tS8!{mkJ-~^@KL_&UcPj$Z&wqk##!z(@U zAez84lU=zIkab2h$ePA&p=aes-Z*wQN_%AjW2ZvtM>i>pPd`S2)oMa%wL#MgwUd+6 zUGv_e z!3lceP&m$(<@I~3AQ6-0YM`<#0u39Q(S&CT8?&?YuRJwZJI9BqMe1+FidF^fr$@|Z z_goOBNm4_e329`|S3J~rAq)rS+O{)=2&{pJ4;4sPlYXbLyzf0-X^8x`9g3ZNg^iW= zy7E-ksR3UAk+eo_o)4${XXYZp6D}crk(Jai92ZL)jcS~1y6*{7;@myG%a2M_&huGUw7uMSR5;&slkuL8BuEA200%jkI|cr{`~( z4G%tEj4n$?t-6}H3V3J;zc{Y%I_$P})02LnXFe?hBOm+*zn>LNt=FGEO$v|ZU;7s( z#j=mkF%r%;N3Sr8I(>zXU0Xs{+7Arg^&(eMFoN;ARXn0>S~r3XHRSCzJx>=j-hWuT zT`Q)&FHZmI@98RvG+12!-6Bs*8naTra9Ka7TQ-jz~v zhFpBCYIwd1NMHyzkJGkR8+m9^(0mj05&pT+rc{g*N{5EhZlG!Z85;F|JI>R1Roov& zl+P~130HeKh5l>^z*1G(q5Rq~>K)%hol#5&ZjSGipE*LEm>Y=xqA`UE8%CyJOq7ZQHhOb#%nGZQC8&w$*XRHlCbU-EX~B>%*+|1LoW@ z#x|Z~opo@hsHR|A6Pf~1#rR|X5eR)y8V6}md7~WYdMgp6b{blp-;tGc)do6fw`8CB z(d%U#;JWg0a8V&9NkHVms0SVj%QksT08D}Jc_+43e8^V@OMYlH1gFtikn9A>0C`bi z=x2NW2|@uHzUlpELw=bT+a{}8_^%c_Wv``B$y=u5fcgntrl*jHVC8zCLA?}dtVkxx z$Ryp!*{X6}zZnrE*rLxC>&g4l7N_{>ofx&w6uOa(HdCM3 zLXrnTuuG`msrl@_nwv*_9a&8{lZgaW@Wh^xv)A23%Yw{lE@;m9vsi}!2-tCAE!|H+E`f>=93CJcQct(yk~QF((%H$z_mzlo9s z#SzOkSv|b|ta3I$aFZAK@%hCRsE-gEvWNAE=HBKzfsof4?A~+-PqzA=VZY1{HXux= zK-;;@u$!+&*47}D#y1TU07~+hGp0f8n8KpjpHYZ+*U3plp=hOPVGhZeDZU?}2i7|! zD68)_n;~y?-G~=i7=d_VmJ!DyOXAmXSwh#kH9KI^RcgQ2AsTB0GTbDB?*fPY{v~A< z!^s9TEquN1ZJvH^w2m*aXZwYo>s=ZO`Y2OIrHUf3O~q(IkwsBK07xViMfi#zq2uL( z8+oNt)kP=wO>Q$OfC(i{1Oq!Rl5I=kxGgcWj!AIGVD7Ze$+{ReX>4|_)giSQK1IMR z#WBT6bMkeO;8<_d`!#VH#KozN9rp{O;4MU)*xY@I!@Q1g6pw6G-A~i;c>$^(4=Suo znQx0I5uA;N*W>5p#KJk7TRoj(FLca%4N_jf)r#lMVe^VRew z_`ioe2PyRPuB)D6@^t1fr->FGZvWXyuY=eD=iLyXj1#%B6(HTml1%t8LNI`$Xebx| zNjr%(aI30F_IkMmtvE0}2YismdkuJLpb91;s$9 zvYS4Ts5^>szgzb5mEXIvft zKOlW4RBBZKdb#Dm4BpSbd2^aqXvKLvQD+|2p%Otm?!d^q#ezbM$IhgJLcMh@H#qDZ z5QO2&p+-A^dmaW8GnWFMT|s&e5*;%rIpybH$66p7WUe>>3>$f|w<6ox?3!WF{j7e2Q^3M9vJfDVBGtjPLdT&FtXEFNoW&K6N)z=NKl zn}=42(-Ty1&43`CSAA(XwI#zDkfA`BVV6--iK%aD3Qtbeb^!<|=#FNNCWv{3__z_b z*wh9T<(m9nD2G&peQi3%17a0SnEn^&Csh4Jj9}0B=kcu2IQbGDw*)yE>Le=%Kr^s0 zk?`ICLM*Ez;+rT9R-J=U0wfbMy7^X(c__yjZCYbEz0AH986vd-L&Z^@>>=`5!5Zn)tWNh3 z`G%SXp|QXGTboPk$xX5&y6%~Tk_`zgV?s)Rl$-8bUUpQjmN?oS#}*z%PH1Y#4HK;f zqjd=U^&}*^z{O9ZeuTroC-Z=Pg$9z)DL1(7Gv-}VG0x2RXmZ*=_GU^oTSpB&vHK!; zq$$BwYha)$>5QYJGr`J?5!hc&@usxPQfEY&V&zr8#zCA`4A4z&vxRTCP38YkhVqiJ*$^fY7sMm=&WOt-|Dz#-p|I`Ays|5vL058a0f z!uSJ3`b7EBLuyGmY>K1yyldQ00{?Y=DoG=@N-7kaCv#J7X0;-v-_^*_TF$E_R39KuQKnf_gKn0(UYaDrDJFBN_ldK zw$gJ`Q;{fX{aPYKSBrBPvr&+sbDo^+x%pg@$KT zPV3S|jDeT~Gz+4>pexsKI5rmiOMmVxRxVnn+w&!_MfR+zVdR-8Jmw)|`c)Q{3mAYd z%4k?@F)*wysS z-z&G;Pxr{Z>`9i5H&yhm#Z+8d;T8cFLJV@fmFbK6KAT*?A#_z<5yxDsw(cEwx4`x= z8DPj#vV=$aErLN064f5Dq(n`}yl|5@sWTNZ}sYHATE(Qdk1I0*G zJuU%n0}@DmAhME-%5;m!r9zoMWjw>{!F9ZP{EV@?%T&wd{_DND?MVYiubtB->#;V< zKxozQX;TxmCh~MItFo5e-u=&bm0ZIGi{mxau3S4Q8llGTbW$A~2YBxiI}AroOi4E; zuxF zmr;Zk9tNsWA^ZUMePQrl!VRx~zLUSQ9kS$9lcj>i(GF9H6#i17qcOX-g}CTR%t_FA zJanwl_d5+zie9&JyC7NMm4$H+%^Ik0Pgsti8?EV%lmJ|N#UQG>T$Ut=pj#z7M4qh7qC$R z)cd+SM!_nOc=)I!A2jbsFau$sC0{kKs7`G#+Z(m~xlF40B}lCff$PHLgcS|^8J{zq zN)XK(vIDJu;li2ldh0U)R$FtHmfWySMjANw;YF0jV%0G%YH5j|3+j`zgbWC!ZjwwM zhMOTk-r(QfTmy8KR)xATmqW;u#o^9`O&i-0!^;c&sk7-18iUD0R)i6RIMG9mTAnvq zHuW}oV$aoea7NQ~Fj({d+RaawP^R;$EVPh^_t%(oHLK8yNT#R)N@-65%h!9M3ckr{ zlmZ@lfDxRkwc18`+9C*j5l&^8UR+$gyaHocD~R4r$#?$H9pYrp$B}n?qPajV^9~ zNUMw~bW!W_?zvBWzg^(T_ZV!<;YJEfBQ(}E0N1M9JU*5NM3HdQ*XC}w2KkJjvu_~F z6?C~3rEhS$GUZBRQNypM{(gN;oY$HEQ}iTk#8Alqn#D*=$Ql_Yp@20U&-tL%e77^d z2nqBzR#1az*pi5Vz^zD^P^t&DTt+W~=x{I#fenPpD!1=>b_pdJJo-#x4n>q@c=X?= zl$=B*bYguVK=$+ITT*vTF_`z0gv~zXk{< zKu=Y#9~N_70+dn|hcvni0f_AA7)a1a6&E}o@wobn9%!Nr_Rt+D1j;gP8Q5Rg0a9_| ztWaz7WVN4i4-+%X#3*^LBPJmEb?#l%+k>LC#$f&(AdU9cgA}2Yk10Y#ntqUv34)y2 z^)c-a2j&)X#O4o|a)B6MkQjDM5Q+edMXi<$B6|Uh^^E4_I}X_fJQ53JD!7Y?aSa}i zG!|W%AtgwD0_UY#f?R!stqXA%uMRzaev9enKk7(@!W+5>73yg11>D|%8W({xTfNEh zc(M#^NGgg)M0@$&|J;kEey|8akcPN-AnPz^zxK)CWD;fEy;ie5tH?T=f&@DR}NN(eg@6!WqUJr#98j{d;>ZE-CaVi1*-K0xERO%-+%@c zm?`a+0vQ#AnKcb@1%wW;$&UR086dg{dWsV-Mp|^FR-BR-NmKSElZP5bt;MKgZD_vv zwt*xgP}x{=Zz;1(<-vsV=i?A!Mkuzs>5Q>Vvm-<2!P(l|PkWEA)j_bHvLiO*DU&}+J`YnCN7 z>6azXsc4F=HKi2$#<@%j0p*Dw|LG+0Lve}$Dx7GG^PI%PqkSd=U?kFCMo!9^m^1W<6w|5%P5?_D#cW;wN^DC}>QTOrjC z;q||lm(3RL>E80@XS9r4I(%BuHv(j#PXos>1TNT;4&$qh%3vNz=Zr%!*W7m6z(@8s z@1`*f_>mRMYfn{}r1s9S;Uku%)= z^4kVDkiU}au}j7@)bZm)@@vF~&&(T`tz!{VtRlTF!=YPPCp++c@G#yA^SS~t`Q=H= z%EqS^s(dHVjey9m)tzgI^rb{Anq$XAHb&LHTo4Z3h)VT!+Q|rs+9-4-EY4Hsf&gM@yHCZedaZ7Jg>TfsTt|WhCv>x`H;ADSmga;9 zKD1T^Ze^qh1$AkU_3Rlxd)7i{>cw>7rhax}p!N9crjxLVAYB9%7HCV%nV=jtTvi3J z9YcqY1wDDT%b+wD|0W6kU~jIXCHz;v>!4Wm6F@S`Gq==m{4!Q~ler&M__t<$?K}oT zp{vgW`uhIHNFCiR6GJV#WkT4)BIgGR0Q$G-uDO(xN*Ao53-8%jGL^hbBj=_mai}Jd zyiFjReVf;bvQJ(Vo3c#jXpY8W-@Og6=xKDv|JKj68cMd&M*qs|;N3wimzip% zY#*RR0s?pas)85s(7JT05XYpv=ogJyBu;ODMX}cpe&U6_YplMbT8i_{Tdgt|tP;~- zO8*i{F&H82UDw`n?>YlBb)R=TbHlW<`lFhkO%Mx&eGYxV9Z$Z{d}W#%Xf^=&8#@fy zgHTRbV5L1S@T=q7)9xl8EURoseni|L_1ti;76vcNxyN8MuE~{evu=_5ewWkJ2#uAl$+OTbr4^db|blW9&5Y(W_NO9xzyD?9XPrm`qEK5kWJhn2xndhm;7 z*6?6M_DNIM7m$r&v#ccL6|WD#-H6b3PceBI&mL@O2b6ZxZ0%ZN80y-$l985}F>=jJ z4G#uHu?fcaFHTg5a6`1Sz2M+)Y_-Y#HLY^IIgWy&aTz}uAx-YR+t(uz$(HvCZ^}dS zX2PfIMshQZ0@QXZm=tHE+$OaQ$fEJNh&i2mn{XqKFCKyCLGQdX-+?@UMiAE;@~~=e zBQ$nh)!h@e1o94pjs6x}5T9Y>saynn&MueIFFD=;2+54u&&%QniGNXSdD{Aq)ZUzE zb809M^ej&UA>F~&{Y+mEtKQILDSLMr!|yT;p2+k8%ImOwkoKXoq&p&mq}4$>5k7B> z(2%RhrQg(~JHrRXXy|MJ1p;zT7hGQN! zgWPOeG+mTs#MfEV^Slt-qsT$ue*Q>XG}LyLTdJ{@Ty6wH9WKhcHb1cSH=wjFxmIVp zh=YB>)``yX6}xtMk3}{0GLbZ!k_b*j<^=mk6?w}QUXbn$khgn)mP=H2%I!=JhGh3v zf0Ops?ne)AmAZXj^k#-S1(ezo?qcQdFso(a#FDvP&6?jfY(7uwB58lPZ95IQ9}51> zUxYT!zn#wf5-D_L$`sNjXiAvHxzVN{z#lFYs=}xEBSlk}4TB2Fn*hHe@nC#yqi4S# zTy)`>G%aE9v`1us<|MLh-&*tPA__NGt3g+!)jgMr7QRr!$OErecojN<4_Cju72l$4u0b zjV26i{bl?C+yZN`g{hoJ<(O&d;U!WPstOzf|1TDA)3=@}j}7&@wc7b30p3G@&;cQvJ;}Vn zLj2ib_>{Sgh1qw{s~8aU4tjKvv_tTd0#e=nBRzNoFyVsa2WQ50a(Bg2JRs#~p}d`5 zZG32gXi@rUT|{ZA%;$Z$mthh@bHIBxk9Vz}Tz751BdCgA`o6g+l6`URl)j+Ij!wYK ztK`*(*1<#vu8X@;H*-|^+<5dJ*j(-Xg{lA^p+uoep0+zutimfRJ`lECo6hldmNff* zE#*0o`J~RP@d}Ey-mzA@TD?DZfS9MdwGgj9J}&+<4YKo{F4Ms_RA2Tjl3X;Tc@(gV$rff^#u0)$SusQNpKkC z+{VHQE$tYm&m}*1jnajWt^qAO^Bs1 zEuqf?D>D;Gs>zU(svRO{3AV%gbBy;$2YM7%wxugpqEp83pEY5!L(DT#rl+G;6f3Qn`B(lH~s#pt~yLEO@T7d&XSLUcC+iS9N+*@*qAFw@qS*~?E*ReeKA zD|-YrDxxM#F&FEQabooi7)7MrGM(9ZEs+La@g{o}{A(pHUH8Ud&|w&UVUt^U;5x4O4vB>fc)d+Ozi^_qcXI-ay;qSc=L z8|rVF2huyR#~_c+$%` zsAce{%LX?H0O9uDg4mMKGq(gr%!eiU;1F7FiCou??p1;64yhF8;ovg5-c+S%#5&dcEyT7&f7?X54@ps>1DoGjay5#Ha8ec#aa zU=7%+;!E(+^*(M9tmoGvL;61s00X_fit!sFWs7WsJ8@)E1Oax}ZtKXKI3utV6*=rvB^yPc7(Fw4iQGjr*t&_SEvDQNR( z)$_4PaXVmU7{2(c)~v_ZWqaR-?V6oj`#Ofz#eSLSm!g8qK)Ese!*#Fek?gnDN$aet=ly7kriR*&!d+ag{KW>ytks-148UHrMDJ9X@Ojt3U%?b?qX1kK zQq{1HvQ2VOtVFt`#UG1^51~?M7ApNY{2XJk0&Y@9dvFTB&%{WNwq7=uaqjzA%h}V9t5%Udk zpw3<62%yfw2eTKp4`eNX18FCJArB@WB4?dmVpUm`m1AN1Ik+rN$+2)uZ?WEYAFnQY zHY)(*!xh55t8!l~%lG?XRYY~%S!ObJ5k^3+!3G^8dIAy+TN;fHmlJzwJ7h&5xFXe# zH^vB)L_}{Th=NE`1K`|EGJ@b@4I!A<5X>O}%xitD|DB|N#4Uk)CM~wm`*bjTgN7!k zo#A`i46B=)yB`n9ASDfAmz>Hl6OznYJ?PQ_!n@)xK1Haaa0;-au5VyX(uN?@|4`J~ zCY`eVhL|~hIa0Z@{lHi_eFf67vU>uoS$^(!)I0}8h_vfa=CDZ)+Mv;AlZ^fY zNZRSY?+vm!M?wioU~GUi(}+Qg4)2;PP41{Y3A~_GJe@Q@;*;#PaN}QwrnJpceDBsp&leB9LJg~}o_-=%TfqapN@9hN+J^x!xD z(U!f#(0raDk6(AD|DIP}EAvv{L4OrhWn*8$@MnP|PPi(-<$qtva^Hfrp%q(wGq$F- z8=W1LRVJB&7XBaJiT!GP)K=aJ@QA3m9s&#?8fsk8e;u2!9x*p|Gui+_K(<%)w|8eI zzeNmdZUEusyl3)_SZwCJ$wJG$iS&O( zt^RXhi+LVDGdh<%D1z*cFIsp3+NhPdqx%3u9ZmRL6+Qs9J!0qr0TFvbI3gO?I8uoBL{z0;$^$_$_xgdjV zKj-B91*ydl7ak%qfOlOHA>D3_%F*UKL&|G!Vo5r}L=d?_iaz*}3k_N=l8Aq#(_AO* zLC++2DG=1_#~AZfub$73zc*`Om!ybW$(VGOu%#483H-qV1MCLR1+N7!fmwra5OD}) z&au9iuD?@ZHIz!yqEwSbQ!$f#x!g*~CE)gtDWSx`@u9uHqWtS+7HNztFIr3|##$%x z`zi`s_xRIKi!D#2vi8F=Uxe1#7L*K-i8fxb3 z?~N>*KS4>Y1RT0rmn1gJUyiN2o5u?#Y{=mn+WrSi$F`bl1jX znK6#L6&u2`T+zb96hR`4^_=4g$?C*}px;;4hO#~(o}0&_t@i>A@f(twR6*~*3I`R0 zr8!Wwr;ppph_S}&NoGWfh~xDLUwPbW*xw1)>&{3vWf+DnrVX>O4L z$SQJU|4I{6p=xUhp|F@mPX@uB;P5DRssFZn28wp<&e|LJew3JF6_J*4P1;|x!1_?7 zSXDu{kay~tJD4X*7TWLZd_hB;-x?M`u}H?@wAOJ9|2=m@6Bl2U7PGYPNXXlo3Q2C- zFSGU@{CBZd8#N7>&c@-Paj%m5$555?ZTED3r%2a<6xG4MCoyTQ(QGE-*pf@6nHrat zgCoXS&xBE4yH)4cNv|^HC>}jWF*Sw8(gZ*f{=(yrM6Zw5+?Lschu&O*{rC-ec;?ee z+gp-+JpoZs*5t1Db`tBszMu2dHK;So^VqdJm5~V!+{Xhz6*T;U(Dw-@S-% zE6#O4cgu~Vu9}l1V3+0;aY6{xapX3M91z%^A2|U~^aG9PV{t5EuX@&OKg1aF%$A#n z?dN~B(QHDZdT3n@2zuy*%_@n>F=~~DqgxX{?d!GZ1hj#_N$I>-88?*2b*}7Q@RU`g zEf-qv4nCk}C~r;mT;L7^uBl*SNt3}y9BWnarG2i%!E5jnfV+AL6r3otp8Ov$1Z6Sj zdR+js9#xF9c#3VbAXWhqXBjHFe?mA^VVUoG^zS0-kq%69w0vPu$BY9vi!RgZ2ZX?TK%-T8E;HDMQF5q)498yubcq3!~>vqxbz*PVUda8VUndewlgRh2t{Nz zwcdP}TM0*28JX(2Hp_Ge6$c12p8YDa<3f0SG|j&Dvwkeobj4YeM6U>%`M-D7A7>20 zPVX=)qJ_Om&Wt%xlP&3zxWYXJ5{W6=4;x_kf4#PdihXF>KKt(5eO!Mj78wG{Q{@3n zMaj|Z?NW=h1)7G1B&84c>;x=NIY|uW%hz2|ChDn8WO`j{@4kRFpj#xA5mu0giFvFh z1YH}f&YHvz#K%+yUr!e>E}-+m$0+~>XWIH7iY5HGYIuy3&RPWl9x0g|9%)Jf5dyhE zG6m(wiiwQ zYEx;evDT*%2hIci?8%J50W3pT@4zm3p4^(ym-n1dQ^7DqjW+e>u1}0-ZsC9olAxQvlLD9GQ4OQ~?{MYU0P^ri^ zf?6u9+9kz5OK4l11bcDvBgCb+{dsFBX8dR+a!1O~Ifjvz4@%M)6&3BNggm%{i#k9= zucxL))T8NKIf?bkqZ5kotscO0Ma@9*E>(uviN)dC<IvkS_o-;2pdz>iFUbqq{lWS_6u|S<^ z4_tyXD5B0Fhm4{QFHmC%bHY?m0N^ntLx?#|VYC*TD6vgaH#d0;Vamio-P!(~;1FE) z;ElJ$#?!KsH`@#PU&|gkrli#Q zl8mSR$A9$BugILFe9vs8-D$ylFPI^xS{*?BKS?e8ko`y8fqRIscM9+9EBEjW`|etu zYiG{x`#BCJDOJ*Qag4#l{y??MWKOz8Yg0Tozo^Nn_sx4nLBW=}X?Am5-ZCxRGN8#JW$kSmh^{ z0zgWHg+%x5N>=GnlCUxeMIA%O=(wdKnfeYfl(Z5#^4wKw%XOPc==M-X?!Zs!&$?eF32igj}I5f_PpAr0@#m zhHaAJuT(!!!|Rf?X);nqdRblZw_`hlYw55g=b{Ew`%gd$B>yc42=&18M82 zePbb4qo2oHvdqIqvTD3ZVK!vt{Gxp2+4-UDiW}Zmj)s2l;MfS%pX!n+P#TIBC{a4% zYf9h+s=k^8BLQV_`9}G(8G`qiB-3#OvZ%5J>@c@@ zMJUeWgsswX#r#|uJFcZTS|h%P>PN5<=ilyWm!rYK^7ra)=46Zkln!pLqp;$xW#~(y zqwNRpOJ3QBw3YTf3LV30%PTTRmo`;&Of{|hJIFY>x|wj!97YpvDh@jfw$KbjfymG_ zylsF2o$4neR$cqXUJ;k0%<{GUxAEd{-=$MmznJCQpMVO1-LoY(b&I+d?yp`mw_eeh z*<{aRzkujUqIMyWQx77+L1R_c5gzeA(0N0axzl#}?{6OQ-bg%>R1u_P1Rim&21B!W zAF3r)2555@O+`hP>Brf1W)SU?Xn)(@v^@aFsf3OoD3mJe$scEOQyJs?#f?K=HYGD| z(M9M+@EtzaGQHg->-`ZNt|+hbtf(1pi64n*;0)}v1hVzgtQ|jga^GEEzYn4fijQ{E zC&pA6P+pD3W5Xs)m5LWDSMe1B6M|(5=7V%^dhT3qbI#enqvvYOtDiB58pTAliwpOXsC@(*755lj zm8>8;yS$*>GfA6zL)yKJpL*BZBf(C|E^4|3XG}NdxxrZQGl(OeE1F4n2xkmfR&s9~ zC7L@sW2p%O+OK?Lm>c&=*<`v8$OE80ku&gs@=_+|-(02NZP)DvY3jUfv{DYqf@?0* zufHPLFiozeqe~zR&eBLpZHk>h?A(V<|A2dp^kLfvBNw+tbc`>rC=?L7zk)Qyk5;f0 zXMCZUG_TA5!)LwQ2%nq|nW+n0dxaIe==EGo%e{~e*V7GNJG$o(uT{_dU;|u4@gf+l z*18mvWaIEUG*oO;L09-321>L!jG%=frX&U=*zeM!4-A=%LRKXO2Fu7DB~1Y$cRP!W zi}1T2Wvin`T-09PzsBl&AHxh4JXu8HyDpW*kzX&(NTh-u=D4X`#<}WGbH$r!EXQXT z5=E0vlm#QK$t9F-8EsuJ#sPx-=dhv0r+wbd9reRR65le8?opuBxe_H7;cN%7A-=AQ z9(}P3&D+vK<*FFUWj~R?+)3QSM@zq#SCWh`hFqOUdY>RS2HI^r?@$UcjtbyEE^i4L zSL76BTaJ#q37RW*i0Tuz7)-Fwbhzkn$xl(P7;=X)p@P(hqMzlcDZ964nOM6!yx#A!ea=2)>RKbF zg@&u?x01E)%PbeGNQ=~Z(BsB6>NQ&1eDAAl-rf{ZX%r~B%+O(vv43#hj<4kBq3iTN zv#lg;sf{d6wE|&#JTsu;fQFgrMzrdtw#9E-tmL{`vT9@(9(zvTe7xSxNQzq4ALV4O z9Xy8sGAaabB;5#Z^CEfqH9mo@4W`;-%j!TbMd9urq3%;*jo(G@V zS4+LGX#=VU|BZ-Y())}k;cBAb9(7L-cmzGs8MR4PHjMl!c%~Rt=BT)D3Upyv-5DMo zQo-uqm+vh*ggq7iUpugoJW)sHk-yb|JQN3$5-sBFtITH#M#x2eWXAw)qQ)v9k3h2x z4AMM>cxhvbLFhqC7|M`9W9BGO$__Q{x`TK(&@U(?zHtA=XqktGA*IpsUVlDFPLZLy z(4Uk?vbwOMxT1t$k>UCcEbJI_HJzqPdpVu~3ZiJ7E8tcTAP{FTD!EqGFn4)Cf46+> zI7+78Z*iDEF?OzNu;^Vp=#Tw!xYm$(Jwz}m^}**1rV&bTgn5-^e}*U%Xr~Luk$aik zRD6MDn%~hMPg+HYfDLiWY&C`y6L<3M1B}3y+kzY>Z2UEzDX;GSAmC=X0IVc(jPk>wI zn3=_FPh@^2JnfY@uP=Y|eO8B)nYQT8s;=`uX?kW!W7XrSucX9uD%yLwDUFA)oO`>) zWb(SY=0{d@BnAGg3YYMR{-JKwE1ta^5W&J5d>xbQsLMjwgcM8mlX5x0+-#uogef;0 zu0}<0bAN3Vc=IzSEHKIkd)24ECES=!f#7rbGb&z8^G`iV@N{JyhWUQ84_0;*N zr|kiy^P4G`qXdt(FSa*`w*%USOY+$XO86G4)LX|t?U0T z#qS>ZVy-R3z{Q1`ugXIK6?m3GIS0*SOYgDV*s^Tn%gwA9&ZyYjM`AoP9WExZ({pI% zO(1neNry1(?-tcRxO}U=L&=CLtdo8q^0R2%M-LC99K(cgkyGbZ+o=W1OpcB&-eyuD z$UHhH0oCPCgZEOeHvJnPSHpw50@g+x8Yo|s4P4#GmBq+sawum2dW3nl)0+st_d;G& z7t{1w+Fd+0C4>*2$ug!g&m*cD_YxaY`{E-|Z%s`!AG0R7v&C{dz2>J=kq``cO3Xyz zxdp`>yBT65iW^q8UT9T*R=+12e%TW-qj20aC-*)myVPF#p z^z}b$1$l&oMd&~6KV-#T@-t{Y4caDR@AGi&?0bynX8F7h*g{y~1SeXI=G@d|f6PzM z-orUcN_(f??vl)@m^o2`>-f`H!mvJ3>HywTtK+7Cl4G#*O{-Sj1MgyzxI6n(tBm1M zPxxv?=NVbUftT3ewe^+E76SVWKO>*l1KoY_tp0RrN(KUE3U^Wl{XSfIML4$Hk1u~N z2KU&6qcO~y6K|fj-T@Jgpi>S7w)#lyQ-)~CF%m zXp~6Y2zAgCr+1?U=fy#g@(_0C-#Z6FA?83jHij3*Xy%v~XT~ux;q++t9;l=P+-;r) zW2b2L<=f^o$>U$_N#H%Tm(kAcvt!SqYW&|isN?{rn$2;_u2*(oS)Ue3H~(B26L;Sz zl;d|7!+AKGODivT=p_1)WkX1NNTj6+SADPjA&=46twn(^$jw|_KU7u4GI*MM!?@Uo zHMnnI5u&y-7ZP9SU4>(Z&xYnBYrK@iEGs5S49pQ{m3jvuEw@_`tJlyO+i0FlJ`-uB zK~*$8S) z4E0ZjMW+1cxl^>Xk4dQ2Fn3De4FUYSu?sPnK7zLba+MWTY4{oc`D75thU}2xx zar-CbHLyQx-ks*U&3i*(`T4NypAeuh4>Q2<33uH6ji!jEr>8f;zWE1LbEvtp9K1eQ z5tyb3V2OtW?@ojRA#(6J1D0rUmn%4#+XxAah&~iGey>!RS1d(LJkhLzhhXA6Z!cB9 z^_WgwtB>FcU&p+m*?ToT4_~SE*zhbQq?23AhVS``A2%Q(ne5+SiV{8?o5@~cECE0T z`!iUWQn_+rRvjXH_<6(ry#lCU3;8K0hDS7)KW;Ev#+baLoZNVq{H(A zySU6;F*5K~+Be4EnH7mWn_ffWrHmn?Bp`oo3!rQMWk^{gZmZr&lvYA=1oYLi;e7{479xtbmX)Rbp^|P;L4=mf!Bj%kpa65OA?Oy@ehm zs7gCq?`7tKxGXw^BwlRVzV;!nj^r!61t7*10IdZz^esC)X+X(s!oPoGcT}($1CY`r zy!-t2`ZxmF3J(NhT<#h9YK5`e2D{`&CiLry2lbg&o~>46|GxCE3(x)(R07yvk{>>- ziC}}?5(LZ3>1EFRq7T#=pj)&0ywY3~6e@86+dEc4HBaL+%8%KD__&U#i5h^+7EfrW z2N~Y7k>N#VniK@``{2j zHiG=`6J7-@sx&;O!hogaSrT)vSwQxg(;`g-o0d^WUGX*@l-%7s?l(Y@7K4hr)R$n4 z44gaFKA{HGg^~=l@1)CRohY5!3Aa!iXyNbzA;*zTli7Fq5lA21ugm@yW?|DsF`^L}EAfl9&!b;-tI z!9nn)-ip=@TG76f>E8i_8$=+&tTItrJ~kmQ#;JVO4laX&eJS(vCCgnF1A9XwBpXzH zBf9}m7OX!onwcA}T3_0kF{n)I_PWn|TAgpxHzw<#Bb3=utM_MWgygy(kgy%V+fC&g zR~oV*qp~Uc?gJsiQ=ha>R*Q9J7?YytRzdI_?V`zs+9FNbf?dh)_QKgg_tX;oTj1CX zLEDp4{{zcN<^1-_7+$-qGclK%D4hs*8h+3?^2a-jHerTrI#Z}CfX)xAPjn3O5p%;K zSQ@P2Ox7)h=<$U>g7y4=I#tdzBy409FlH_ewlpWkA0zR0+>cfju-hvfr=M^BN+k{K z3|ZWbs(~A*Z~vZrC}d;PZEZK%aJX3<_P*;7T1={3Dv-JDRx4<*@|OR@!kBX4Y}(!F z`ivlpI*ufd3MLo8{rL18-b*8=o#&NW%r3@KFt4Jyk3MXdL?sI}8*i1ps{Q(X;cXOZ zlZqtm#sLWXkJsJ)AFo?>pX^Jt6gy#2j*Nx4jXQ|YR5FQ`fP4&ouHm@`IW>wQUh?_< z?D%YRl}ZMajB8rU*(J@iFHKo0vn1G@yFG*AnmmzmpiW@x11d-bP_GzlRXhr3GjX)- z;ntngyI!+(YG`e$TDpCTv8qCJWC}r`>%yG@&^RxwIeUCeKDTY`F?Vg$*-q8*2I#aR znElg7x9hgPI1*Xj(bzV5Z(>|r?))W$?WG=od4<9<%{DHY34|mXv9;jpVlc9H2-3_@ zWGj!hnDmV({B_O`hi=45#+d(phfbxl!t(L@=tZrAY8PEWm6Um-I~YPJ%?&*z{0Y7#DQ21L zHsy1`8Z>pG?QNny64klw#ctW;ykYHLrN;GV^^r~S>)NK4JSSGE=E+(`byKmQsRZbi z>)NbyEpS3B+7@`@z?hMTMRZaTy`4}Q;7`jbD;h*EcrW1jwc8j|6`bR9&UXZ6r^B=nl-Z{XDH#!!CT0@}{xHt*94z{xP* zLr=!j=Ay3Ph(&?VouIpF^+^29D@uDP;<^d zV@R-42AMd6;Oud|ic&)YcMXcum;p58dhg;S;BMJ7cuSjLPxNQpg}46G-25aQRl#3N zBTRlK;TKC+7Nu6CC!uO9P8bsf|J)SzJ?0>rYUnT{1pk11q323x*$)l;jNu4%EwLnYi7Fic}PSMhA)F zqYBtLyk@RvyhSJ$*f~HQ>CU$#*rHgFOAyum=a6;lRhsTeD~!-y6GH-S(AS z@yrt5ujJI?;EJJ-Iwq|)=bfEFZIbZ9(No}Df*bFbcZ(29z?PS~mYUTkN_(O8Dqc-~ z2DRrbKok*2s47%Iqm<}{YXH?4k>VUj03DLUKx+S1A33g^?Km7janN5t@m6lV!fbts zJa!GSQIGU#{}MrCoQFktgSKLpi@O2;JWPYo`MHOR5h+GeN2O?4lToZ@Aw+?QC|yZ+K9>uXS*aSual8tEF^=i_DMxW08KT z1y@^s|D9q_?fU{Mq`gb=o|iZye*W(7KgWYWQ>U<5Kh-$^5m@>H{t`$k@`7s$askg! z<^2pXu9<+8{b1HgzyuUof=<%-j5K#8a7~N6Sh?BFMrgf+PST3_Hvp^#lN9`nYd=kv zsP}S)!x!oq3I)U(Ym&i4m}orAmQwKzyju~5MCCOlFdYnRR@4g^2iZT;tQBGHo0I)8 z;iK%=EBg=tv%D?NbPt&gzlT?ZG^jYu1G3SsoA%GJmpcDSxW6ufFE0f;c7jhhp^$53 zZy?gYEy4IY&@j=`{*#CPXeDvxC))M&F8z;XKwz<`fgl=(As`Z4jwXby3 zu`g2>rX}NYC-4LrFxj8g>zE{dmnG)d0lKXvNTkXG7)bzTPe8c7w04)!zthrAwtPS z+EJFvy>65R?!&Da`_TBoe{8-CdoaX!cLmi)xPO9lW2jNbIxwcxw75*MaC)+4#g%DY zfzX&MuVS*-^cBQd&A}7E#!zgpe~f10?2bCbpIWk~=%^c!<8{;_pXYScaSm`rWshj7 z`vQ@iZmHwQLZ?P-sS~GL>h53FeGx5~lOtLg_tM>)+Undkz%3wB(@EDecZ>7vx6-w? zAb;l79Zz)4sf-BSbu2G@L0g!F&FOzRfj9#xgsjh&#GTTu+_mK^gg*qX;Y52bdoycg6T1s)`^q+e;?=MPk6;d^3NC4sIRzk^ru?=6|7TI_EVv+m%lKj@wdX<2*&!PG+I^@)VK9@)R|( zri!n7ExX~Nn}I2*eQwa?;7j0z^)>LS^FQ#+n$XrhuXinWo*4dU$XMUF;@m=zeLA1# z8WhZhyB`tZkLZZde(GaZSk}#c0z4wX+H@pn(!huR*(7r5CXovt9AWo8xPPs2eMAx| z)svnbF~-2E*uEor+WN@JlcP7@e@yImm4#ca?E+4i-A+>ksYYMC%S_%yu^J5Pqrs+b zz#we;1e?UYY8_3R@Hw*e@huS{95GEk$vtisjW0 zm#m$fOb<`SC?^~an;dUZ@9Kj;-^Fu}Nd{Zx)WEAqFmpZSrku=nvrWCKkBxt9Yg}i% zD`SZiHhw&t&#QeKcXZ2oQ^plMl*N>DBB^?0M(I+208dQEC`(Gp9)eN2)ITS%PQhNKJmpj~+g84{s9sXack6at?*bPax2PuqEan@}zs_u1lCtCEaKE?hMw3$M zZZ}lX96*5BLUgm%^10XRVBmIN@2Xu3)3Pv{B_QIkypSBwB#4sMfA*|y ztEaht$ps^tt2q0jT3!n}nH@K+C(^IiTuo-1W1!+XKwc2x8!rV_Bq2sImB29@L98De z#8LsqYy`1lgc?;aMJQ1JgMwI5qRXIds&{)}UUgrE1G{C+J|v8L9H(2pWkU{n><>e- zDgjCCL6NNQMDL@kU@&2V$wxphlf-b-LE(#kYFBUnTId~Y`OlAD^&sFa|5V^rMiEnr z2wu&JP!HigC{q$+xIf*pKFq6U_4l8Beoyq`cCARz>-c06t^zMD*w!%WrzS9D_PVJz z$2L42t{E_|eFMtXJBV*)0q)!NZoS2~$L(~zovor=tebYWn^(=>bJ*YtltSW8G*xwf zi`Wz|f}k~XSe&WJdhdiSfr*>Mfwq_mQGywhsgC`k$KTVO$VkvjtaFTabqcTWn?MBE zC2dJ8>)^qN1#*K-m9&S)Xo|u2!VOno-3{;NkXph2ARZVt|@U`6rD5l<5z`zhpNZ`#?u4eHr_> zfeFlg`1hL$a>Bk|rULsUARH}0!& zH_p&E^*o!AUfqyv9W~^&EeG&Z;6ylt>6MRm@EOMF{zKPMLx( z36F^cw_-4=cjb&sT{+vaw$05Xz;RFmOB$8~=OtN=i|$|_=MIJ=^w%9EW?Leru`(VzvWJU1xm|~1sB#Cp9+z4 z3Q;>42f;!g>Z1BRoeFcDIbAa(;uIV}lpGifKp9doIT?6)81O()$M_v^22WnYWIbac z@Mt}JUROyA_4&FIohKC96` zLh^Y4BOQ;2gY(NA{dbGe>y+{i=e&feIdeF-h7B@7fgRv~o7#zU{;)BJ+2M1XSc5CI z^S!XZ`Y;?2K64z0ajU9^pz9iZOL(S}_uvmwusInnasyhEn+yF56Sup{p__3RsSE~w zXh9jPAf`H-i^R{J501yq!c<)dQ+^(%8N-oG)4>!1LM=!1OwWf%=R3PI3R{P zB}U%nrDVf7`CmvikHZCLpawqmZ-K{S2Mrf{W2g2rg_Ye_tGm8k}Y%+SpNe7$}pqx?Ye0@ zVRXMgyGzLTZ{4l2yE|SqS-n;Qv(&iS#jAi#Q{P?p0_Pd)oG0hLV87!NG5REbl!Y(O zeyDOEE{9jLv&F()o1^)6^m7F~4RY}5sM^a=M=GrL;_{J;y*L)z_r+d)RX;djAGF$w z50g&ab@_*_>OWiP^>w(pAK=+WSZDScmUuAFt>CSq8It%|UU)Tj9GpHKzV~%_+xtU!XCUO{ zyUx3Yx454+Ea4?BMgzk#45x;UxUdu|6s?|Aq8Or$8JNEBV*yOoB!QuS?8{lZOnEvb z2(}gd1u_N#)lK~ztm>2vZZJ;nq7*6n%P3!xg8PotkwAp@{eBIU*}V6!o_%*M>Ey;g zAmwn3yS2iO=t5%Kf!kl32=JGLNhy^S>|n`>rIRn;;h$fw*~AfJ%B}PTELKEOfmSG2 z*;M|~m)h8H1C9-}(`%=H72*5&%-vjK|6<+Dk4@tetm zN`~)`4VGo*43h-Vcl_N44|N)g0~7%arL^#h|4Rxx4RQ#Jl@l zyn8b}zq)<#>UFAiG8RQ#$ldK}R}?~JdY8q8h!dDO?%qf5{`$i=H+wDf=up;&u`Yjy zs%>7vjLM_3InvVD+a5w@!Tzk2WgP%O}plgSAKXf-T1~NU7Eo)l)5XWi| zH~SUj zgv#YgKENKH$Z|Sv%VF$5gVIDIxbSXI7O_`K7@5-P4@#L}7YGF8C-R*efUJMRiFeQ0 z@u%Atzp%2Tx5Lz=BGLKoaCw3AMGA`2JE=sP=v`-brx$;F&bI@54^%H>B^0PMHHAo2 z_Q(QyG=bL@h}vEE*`IpkSE*1k^L7IA%aGu!*O?5s(V|GC-}TOtYC78-Ea~ddw%xI6 z$^o4XC(we3xmT}MzNEF6Kuv!p84N&{#t_Z-v^8Wd6|qVDSAYEe+rKYqH|52mS-kWd zG~md<*1v`?m{urInTZ^%%sbPiKW=fSj4-+KyMEf@YA+MeNpAQ832nVSS9tX#^)Bwl zA7T?<(7VQAEbICKXH7(W9_q0tw6L@py>ydxaAu>naG>9mS_W1)xjuhzAc=f$2j%3R#0&ITey(=6}GR9$@cpQe2$6>7rhhb{QVVraT1+!1$ zFl_QTY@}oyCdxDb!-zsCcGI5)z6{*vQ?B=vV`&i=Yy4FZHAwhr%J_>@3;e~`5Pxy& ztOK{q_=_)o#~OcejeUR6jUQvNJLR#MxczS+vH2e(u`!9rKyx06V_|gqdmynfnaI33 zpzhwNfx}FrF390^$jtzN`mJDn)-KU4i%F9B8R(?s@7&Ph`4ZXtZVZ zQXWMhihfvnFL?~zaRw^>T;%?)>W9ai(5P|Xc)7D(|2bfupz?q7XMwr=1eoXWB6WDD zZ;{WU@SbRoh-NYRt^;{kxt4@W7wc4@<9OQ4J4$+VcE45$%wk-)vhFxOIH?m_Bej-U zAh>{m+~1YGJ<=)*5T=&`+{ibFGa9H;DPS`~1$^($(!}Vf;Rs*BH-g-i_E4d;ojhQIWLOW?wdO5Db+O*0w3Yy0hcm6T4R7%{i%P-wk{+-OzaQykOG#fq z`mcP}4|_Tb$VhJJ`I+M6>LwhKP-Z$yBa{F>i4+VjRa1Y_r!F+n;uR=K=vI3np7Wj) zJ-2veyxylek6uq%JZvWSDlaH7l2Q@_j-6H?Va#y6l|PfHU<{#Z)7bD-92OMtT6S(e zjZ#zwd@Xa&B+B_&@RPCyJOKfmzYK5d?bEg*pr3(%q3TG;>~WpI6 z=bHgIf5h|cSo6Z22mCuo2O7WK-_j93LLzs+37{**ZG|&Ptw3S;$fBGc1wFDY-G7S2 zbe0KjVDX9~0R&d=AFI0duGWuW8udW0RMRd>`yzi*?8{u-78DSf(48dxAQPc8bd7>QeFa%sAkV}^RujALK<@zQj`!S11k<9f5Yb%uy zc`U0tQ$p%h5!gL$54`6qVcw2Ou^WI;V0Tz0V4C*-R9!&kAS7hGTwSC}X!Cm%7f_uF z$(@8#+a2up?c1-u{*5ICayw(#^Gb>zdsbO_*SGcPs|s?NxgrEu;V8GrSoYPWyyt%d zU}!@L`tSd^1zO4!LN8ksF`Lwe%L$5bCe4i!il)+*WLAgvF3=beXtn zHsezQ1$#U(T-)Y;IMboAsfI1~jTC=c25q6x(fl)TgG}v|PC-}NyMPo0*p!KZSU$PH zip1i)cH32+fJzEaBS{kww_#dqA_8=WRt}FXQXxB@RFVs=%rh9m3nfBla;A_!!N{Y- z1}qDu{wqWhVnCqF94-cSs*DmD@Z!`1;u4U_K)Do0Umm#zz<7J`iQd?kXf1#DxXD|R zFRwX-Jpvn(2{pU=Ts4RMge}m?uEl>0OHe*1BFn%%P&T>dI=Z2zA~zgOgrIONyCc29 z9qxId?CH61^E=Di%DY7s z&sk%SU2zzxbr|0K%$yxgALPU}an0GST72#iWWGm``6>lQbA?NVr-r#(zs<2v!)oYl zed2LXPY5cPM%?QdN$65cR}3B=EMs>G?)F;x2ML(ffy{W*BTg}Dt#0H zsjB5!vXcP@ZZyO zwNTWNSAE9vHt$<=INMpoDBe#0ZuA?)3+549CJW`L*1v!5ZzU9LkwkVl2<}9v2HW=w*MkbEFss2lwprCG3NYyl{Z0tij^&T;se{f_9i;vH_wJe zvkPM}-FtL_2P=Pa+6qN>=`CMBsX#aZMdTdO@sPc3-`SJJ9t`^hHe6aL@He{$kT=Z) zd}j){8kmv0ibAvI{{R#0!3^NJbeD>I8yXWZDL49ouD^9IufDEmj{c7daxnnENgBR^ zHF6g1`V&5*S)|Wx^ElyI{jo3^*B?S{sW=uX2w|TB{Jx@^vU*}i9j6uRB6fE*`AAk3-y>TR8)v-t#YC_FWD4OwBtub9Aa5dP zEs)7RX(1R+wGd5_`UqDpu$J_a%Lz)j3_j?+VtmZn2%*C4^j^Rv$67+GrGG>%ks+s5 z`49~GtW}{>3SQq01*HVzjE6z;i6q>K6?71kD(vVCB>?mpFQ#1dmN%5qEzep&cO|1C zcGX-<6-JCGm1>Wk7ZP+KW|X)#j;G?asYE9DRPBlhBnlVf6k@1PoeA4kQ#66Sb_+ul zw&RsDN}}xoMJOSl4OA5hSARRyB6WZAN>tdhqyQsF(&#H6B1dc2K|WH*HX|) zQlvSWC{D5DWRi=7HZYROm-;T76hgHtCPh}HSxm}0TOM6a%(diA5}h~Cm~~g*b)_;Cu?%6x-cfmvL zvPbXOquT-lrs%bP+@d)~9IMIl#s%Xva~k0E$LgsSV?iOFEIHA?C71 zD5<+S_Iz@BdNO%xULl$Tg8R9d{PSP`#_%CXl8tD3dHw$V>yt;1?lgq+STx%={OQx? z*^A9|Ge13@ynKG)@i&_qKRJ7B{3HBMCg-c=#+;s-$vIpzA%A>oo#*O*(k|dy8hhOn z_!;7DdjWrA$K3_|ozctg9ZWt(Q7^Qai}h;uV!ko2%;e(fxtYA2f7+NG%$L7^oa4dt z-TY*720-)W=1N1j0yvpGpI@!6*R%Q6HmvKtf6U)5rcYL%%qxc*nk?YJuhGzSjkh%` z%GU7la=AinuYb0AQSsEg*cC!6#8ybHkXwOUp|pZ@h2UDD)f`&QVO#T`x>&)SOkP~S z+0^S_7R&#hOrEUPZ|CdU5%+rX_sP$bvsb=eXy0cTwZO#|4194`ye6GwrA|?>A#1lE z*ExJ)CeKzcR|XF9m#gbHS9o`^TH0jkuR05(Kp~fH!GAQT6f7dc5aC}FSI(AlJcK2V ziiL_rc->%0-cpj`Sp1k^QnCT_zXO9gL-`xPgz>-x=WL-HFoB|V@ms*8@xXW&F*0yp zubo8R%w#o@Ct^%rz8y^S-SJ>x;kBB(BM0lSoF|{HlBZbMX1P6zW~=wVP1m1izs){h zu8@L$U4LCXIr|<+$p8D(RJ>(mcM@kEh(su2i?R<)pL4fQ(`>Ps+n=Y)<@FzbEU?&x z@nf5GWRz5Ov8{0y6F*37@33^SJs8U|VtWUsi|yfHju6`oOpEQ|U`7lo0%ZUnvjrTF z;LQbu7hDHPhrbq3Zx>ga>2fyz{BFIv{^4A?q52 z;RyKe{QUM*GymW9w99xSX5Uz{&6<5htW!CU1OjCqyhqfh9|@$RGZ4%+!~Ywdfr_@o z_hU0PmJ$ujy*)$t2=w|vqnw;Y7CCH)41bOR9b!lsYjHVj7z21-jE4;=7wh@xO1hUk z`dMK=dFU2PD!1l~UQ+0#pS@Ia?+j7=ml=ZP{uv@Sk(`@I&P{&jCckr&-?_=}+~jv| z2`0A$!%cp3tC?HP+-l}lGq;+#)yzC*e%k5c2;PeR+~{IBJm-he#SP0&7Z1d86n|aZ z!0dGKP%y{P#T}R%T|5-b$lN(8r-LUp?wlglkvlYTOW!Nh{Ok3HTe$NGcpTZN60qU% zto(Qop4s(gb$L0a=Xk7a41wq%kEjRzpHki78w7P0+0kM7i!M z#3F+*%|Cs_-+X-pP=TzTtn5%lv4395P*hLn%hiVwQDw4v0uw#d1=m9uOrum8BW~FI zZC3B+YZZ!PrT~OK+$ey^IjkJfK`VeiMHeu5gHU~(F4n(5!Je-{?dHqb@8h$&kdYU3 zkE~;LTRkT~W|OK93FnY@7bvK|{c%M_sU3)J0@q~2|bRVg4OyCv2mXMa-k531ygiL>bn z>-sBYAZOV(>{j&@okgM&9W!s}Yz5UxBY3Y-ZeVX!>ZQgxqqn{-@jk6e6WYj|+q=lIDn?$k>Y+EDIiB5ug((TLKbhG;Kx4Jd)nB|(hpXMgyQN(da?snGAhbiQ~$A9KYcR*#hOcz^|z&OG>5+07d!vbHhs}oP5m5R z70q5>aGD)^{3f%y2{YRZ2CLQG&JFdQKT}0##_KB4arb(;~1J3jp>3rq@-`1$0^uZCiHz1#IA8t!i9$f3+48 z7Gi9*W`Zbb{c@fXCeOOt;t-lez4eVl(^UgO;B_Jhywpu-j4R;gOl1{dInV}suNT9L zzS;ZM4T9G;$HQmwiLIF=N{Q8)Ga#SzfQsa?ZmX_vVC~%53eEgRLi;1HHUSj;f}r4s z@zAjo4!v0~PPMxLJOF8tv+VA+f7;yop}Vs0{0dj6+c(-ei9(Tj;xF1YLf9z)GGgCd1>4jM{`hmVdvn26RCV2#j)c2l0xD96q z4Wwwb@$DJi+?d8cx7D>nw`~2vLRVXkJ)5x5rfJ%3RTq6ZOusGaq1AL@)Um@u!d6u; zAaPuDj$1axZgZS#o2u{1f8F(@c^v=Wd%^Dx<)*rJiVi8kfDUxk-mHA%^6O_y6~#a) zP{s!B0@!^YNP!xui|D!3OokFMO!N%#lnpr%iYNB#aKo>vUHRaimXjPP6Q++0G}q}t z!2mTz1rt7WK@oBwFXJ(p?{I9n3*1_q;n0MV&lM47q(i&!wka*ne-%-a689>r+2G?> z)aWPNjpJz^v$uN8vgsh{*qAIEybP8N-vsLS7tT`P_!D~uonFCUtMHGmJQP7~gyjQ~ z^_bLOQ`Adw{B`BT^=r3if|lA4EzLknP*{=$#03+BN@k8D zYTs%R9#L+b{$^qre|(~F@ta59&x%DIx?)j>jw;M5`~wN)75_Rw8DTck(AyWU-SFj& zKR~A^qfN1E)Xn}CWxgxJi-Z4du|MoW$B91e0PV>d*H08vj)JB~y)Zix6w||lG8&%` zvUkk5!}H6lXTJqd*b3Y@nKNRPU2XQyTpzJktQ062CRc5_f4YA5x05Ai^MxNSD4{tU z){t6)dQ)MoM5F{$D8kHm{$+Jj)^C85yq;e!tT{kyXA&tu`yN_UZ_U3V{!4j- zXoRti!i7^te*p^|>j(NrfB_sX@*oecfq$8`pzH<7Jy=)XK-gIOrf`>*aFwTU2WQ=6 z|0aa|C#9Hxu1bwG8X27~es#q88n--Ot0%>l+X#k(%9u}p}@6`_6e+oTB047qBou3o5q#FEf7`9ZG z@NI?$ssZ2G)Xu$v8HMj~?p~lTzWadX#aA+BNDJIc$5XlVV~kxHVh!~U3CZCdh6Uyh zjBVs>41CSiut=RcMU2_NB2CK#irn1-YU7IY2^4I5{@|LxQ2EFhRq#Wkri5{MCLpWv zh>!c%e`Ons&Tz&lT_4$E;>GZ4_=pk8u`fex_uH|k`>MYWD|L&Ndhi&6F9iGwoEcd5 zWr_efB^vOB(L`F~@d%dNsz^`3ID;-A14SCF0}r8dPUDe^p<4io#e~2#CM%?9+;ih4na5nPM=Lzy^uwi3p!P5NC5J(2b zTKHja&hWoX@&5@!A|2-ZPg$DTlsG5HW&xkoizE0Ubyh$r%Vu0cQ^*E^d05Wn<8sc4 z0srZv$vKKqJ`JKt+$^|uY>AtFP={@rf14!RbLTpK81&d#ECGQ8lJRhZIF6hrx8F|;WR4G~&C%v_*>1@acN%Oy|k5nrkZmNIaL7``w` zpC!Y73tOu>_vm4B@TC+)G8+AT4yXhiyvG(|ZSde+R!1A}H)(S&qXSW!WcCRee;qjm z$Yc8Vc~T2nA|~nnA)V$YITbS(afHw{X6YOgrE^TSFZz&Ae)~MdZA^kfn8KNJxLWovSB*A{qyX(qF8df!=fVZE+9?p8V0;?~e=_nk(&R+Q_wm}}<5uvU%~kRgNyPR=*iqlo6g&9+rX-%? zGHZa0?OoLkW)#mNm`zkhlyKN4lC3lKyO4tjx-2fJEbNs)ALFTlpdU~hsPQ9XRUAQ( z!E|nl-7aK4?p%?;XWonLn1%<~_Cxl4C~5XnCZ)#I-pw)O^Fd3Je^gp@&7>wqEHXTQ zt-3x=>HO-bdw=Khr9K7PCFM0IibWpKSO+L}U2`V2zk20HfOc7wkFw{F&0y~_MJ$U{ z!s!9jVp~eC^Ry;XK|0D6262zjBTCW)*i_ zK4nBy#IP3RL9BQVe}TImix2{k(=Imy9`Km9e|+yKksnvhC?_0vgXfkEKC{mYI`p2r z^pe2r&NBagdl%3Hxsz$fMJABZuq%7HUgxZzgzWn zbQK1>IO7`*deT@P7hXRe<7kLtj2Rfm0CLYD%UA+Dq#SSZImQwno3UV5GZ{AvJ~8_s#*KqAw83ebYR`YfyjhozpL3G;Em`b; z5-Z1Z`0*mAe?#yyRMA45nefHe3LHM;{SH1vH?NY}EJ7z|yE_z{ay`Fg6RLE(xv!YI zK7;ZcE4H`KeU_J=xSI-8r;g$e$UTBP)zO|N_h?aeQ@qy~RXqlW51d>|CxD0uSLS~wo$$kV-~2SN zIf7E7f4O_QTrv=&*-go(2&Q;gFd2lOR_df+>X~5bq+sf_VCshilSA;#W5G;8hF5&J zTnMEeg>uLRVWajwLr4?hvj`yn^pAf|u%C@pGuVnOBiyj15_)#wWmwE{k zA|uwCXMH0c!z}Qrc37qx9Kl9~{$10TFH?LDe{q%4V;13Z%zD5k+oCUgYq$bxvSQeO zj+vR{L+fl`T=O_KI_t!4Lx!0XCOWG6E9=Gch)o zQGygHf9+b?a^$uZeV?!3W29 z!NLV>jJjtec}e+2Tp9%Ky|~*s&?lGQe#5fs?g`DVGn)PV==%BPlTW_LdB!L))UfRG zDl;_G)DSB1w9Q_uzUN$B{BZfz^er(eqol~(f6d`Ki(h%%|;ypM0TNB#a3rJ$uA!Zxn@)o#c+l3mGV;jwYs_x zbXDH&`e)&z$bga&%Jd*}dv)ap@gh>pKruNCdXZY(?z0+3ylmTDRW?rty_&wVLcC3j zP~=3>QG}|#uA0~0ED2F^g?$#o;2)B9f8eYj3Tv#nBos5dpU&B> zdF|i&cVbm;`r7SF*;iXDzZy0SA2h>``myaeW94sV8|uU==v*w$peK|GqW|c}7&#v! z2<2=T@j5k&B670xk0}c&!r8c2pM_Oa95f`)jdfRzPu;kmU4TR(EEHS=!*Xpff6j*R ziyvsV#cy9BUL;r98#i*F2}*>q(Xq?ELqNMQH9FF3m@AjW=-`^)3#mdF$xP!tbz?Qr zx_}cSRTw|8P8kBR#`BC5QRtHfT~j!XjI0_h>5Ymdb7ZIYFUg69WihIVRzzZ$rt%BI zNm&@gQ!c6rN3vRD7~cB@g9CO|fA5{G`uVop1qW;WmHErd3r<(>{HXG_Z}(+iZ_3^7 zom~k|U%l{6p=vg$$F>}A9-tlq_ZFIjKvebsbz+t~1xGOqJd8s{bUy>n=L zV+~~Mqc@Tt^s?&T!24HKe-)N2R4g|#-z3(&UdFNsYy=yHE1PX?nfAL5x&jfROpKz&I z2BC?hWAK%Su(-{3@NiiF=1}#1J+mr1|7+Q_5cA+)x*})aw!us{@UwL&UrG^XZ23a; zicr414?>ftsXWdNVSMbn-;RlVS)9-^grY+e1q|+-6T|e$;>D4i!l-8uU(-;U3_t1s zV>uPF7MG`rs5)Ile_omUF*hPKfrkth(LzpswWoJVlbXVgdFA3*nzN;`@QY_>qvve~UVkrc7C z^o}m6ycwLX^;aZcn_GMcG&Neu-8=7ngENKz*C+(W=F1$-dkFB-wtgCO?0k1O)UrrA z3D{xuVgnY90aEdp!phFi8YV|F{1LI~vao#~t^vOlEA+=zc?d5LHkX!7=Ze}0<)^Rb z1=@e%9$Wu_e+(BE_b5@j6gNv_YqUwWaS?yU9~tEI)fu<|c*RweSv9s}KeuCvHLCJ> z*2n?R;?0O>ai6X*1@?8Soo7}UZp@J2RLogm^e_dQfb2t5BkOyaY<1vTDTIe5X z=$k^oOdE|oX3-wwu|$ntZBv#2Y!l3!Fa#B+?4YN9g{AGl%@iTMm&$918?Rwbz1!kN zLYvVG@%&xY_ZC&A`iUF}hmK37NIAb!+6@7d6rZ{w*Ty*KI|OjGt-3*Y@9n@=8YzW~ zIB;H8f3HfHm};!3=xPbbJTm%q@R-yERvr1#+&1-(fyZRQhzv}_ReRV}&)aW4|I0l= zn3Z-4y7NfUe|7=2moK|^ciV?2pKN`D=&^nosLy@f)O+97uIqhy9X{CBU0(t$bx9_a zD?>y+tDdy0T=fa|hnD^Z+GQ{NgjKf*j^!Kmf5=Iu5)3B;q{<5!JK2YUpQeqyD_kQF zL2?lAk^<;7cn5Pi4z)qBV)Ty16tnMz8xDNw_`ooS%q0X-VXoyQ=sE1Iy(Feuh%-!u z1q4@T2xJw~=v?z@hT=Vf9DS@{bW7!agh}G?h

-+aPUAbRyh@PDGNN$kY}J;F5^~ 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�ieAS-8qJZ3q?sAnz&Ea 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 diff --git a/lib/colvars/Makefile.common b/lib/colvars/Makefile.common index f0282b8caf..9203f9d158 100644 --- a/lib/colvars/Makefile.common +++ b/lib/colvars/Makefile.common @@ -32,6 +32,7 @@ COLVARS_SRCS = \ colvarbias_histogram_reweight_amd.cpp \ colvarbias_meta.cpp \ colvarbias_restraint.cpp \ + colvarbias_opes.cpp \ colvarcomp_alchlambda.cpp \ colvarcomp_angles.cpp \ colvarcomp_apath.cpp \ @@ -40,6 +41,7 @@ COLVARS_SRCS = \ colvarcomp_distances.cpp \ colvarcomp_gpath.cpp \ colvarcomp_neuralnetwork.cpp \ + colvarcomp_torchann.cpp \ colvarcomp_combination.cpp \ colvarcomp_protein.cpp \ colvarcomp_rotations.cpp \ diff --git a/lib/colvars/Makefile.deps b/lib/colvars/Makefile.deps index 61f0b1a335..82d36e53c4 100644 --- a/lib/colvars/Makefile.deps +++ b/lib/colvars/Makefile.deps @@ -52,6 +52,12 @@ $(COLVARS_OBJ_DIR)colvarbias_restraint.o: colvarbias_restraint.cpp \ colvarproxy_tcl.h colvarproxy_volmaps.h colvarvalue.h \ colvarbias_restraint.h colvarbias.h colvar.h colvarparse.h \ colvarparams.h colvardeps.h +$(COLVARS_OBJ_DIR)colvarbias_opes.o: colvarbias_opes.cpp \ + colvarmodule.h colvars_version.h colvarproxy.h colvartypes.h \ + ../../src/math_eigen_impl.h colvarproxy_io.h colvarproxy_system.h \ + colvarproxy_tcl.h colvarproxy_volmaps.h colvarvalue.h \ + colvarbias_opes.h colvarbias.h colvar.h colvarparse.h \ + colvarparams.h colvardeps.h $(COLVARS_OBJ_DIR)colvarcomp_alchlambda.o: colvarcomp_alchlambda.cpp \ colvarmodule.h colvars_version.h colvarvalue.h colvartypes.h \ ../../src/math_eigen_impl.h colvar.h colvarparse.h colvarparams.h \ @@ -101,6 +107,11 @@ $(COLVARS_OBJ_DIR)colvarcomp_neuralnetwork.o: \ colvarproxy.h colvarproxy_io.h colvarproxy_system.h colvarproxy_tcl.h \ colvarproxy_volmaps.h colvar_geometricpath.h \ colvar_neuralnetworkcompute.h +$(COLVARS_OBJ_DIR)colvarcomp_torchann.o: \ + colvarcomp_torchann.cpp colvarmodule.h colvars_version.h \ + colvarvalue.h colvartypes.h colvarparse.h colvarparams.h colvar.h \ + colvardeps.h colvarcomp.h colvarcomp_torchann.h colvaratoms.h colvarproxy.h colvarproxy_io.h \ + colvarproxy_system.h colvarproxy_tcl.h $(COLVARS_OBJ_DIR)colvarcomp_combination.o: colvarcomp_combination.cpp \ colvarcomp.h colvarmodule.h colvars_version.h colvaratoms.h \ colvarproxy.h colvartypes.h ../../src/math_eigen_impl.h colvarproxy_io.h \ @@ -127,7 +138,7 @@ $(COLVARS_OBJ_DIR)colvarcomp_volmaps.o: colvarcomp_volmaps.cpp \ colvar_geometricpath.h $(COLVARS_OBJ_DIR)colvar.o: colvar.cpp colvarmodule.h colvars_version.h \ colvarvalue.h colvartypes.h ../../src/math_eigen_impl.h colvarparse.h \ - colvarparams.h colvarcomp.h colvaratoms.h colvarproxy.h colvarproxy_io.h \ + colvarparams.h colvarcomp.h colvarcomp_torchann.h colvaratoms.h colvarproxy.h colvarproxy_io.h \ colvarproxy_system.h colvarproxy_tcl.h colvarproxy_volmaps.h \ colvardeps.h colvar.h colvar_geometricpath.h colvarbias.h \ colvars_memstream.h @@ -152,7 +163,8 @@ $(COLVARS_OBJ_DIR)colvarmodule.o: colvarmodule.cpp colvarmodule.h \ colvarbias_histogram_reweight_amd.h colvarbias_meta.h colvarscript.h \ colvarscript_commands.h colvarscript_commands_colvar.h \ colvarscript_commands_bias.h colvaratoms.h colvarcomp.h \ - colvar_geometricpath.h colvars_memstream.h colvarmodule_refs.h + colvar_geometricpath.h colvars_memstream.h colvarmodule_refs.h \ + colvarbias_opes.h $(COLVARS_OBJ_DIR)colvarparams.o: colvarparams.cpp colvarmodule.h \ colvars_version.h colvarvalue.h colvartypes.h \ ../../src/math_eigen_impl.h colvarparams.h diff --git a/lib/colvars/colvar.cpp b/lib/colvars/colvar.cpp index 58eb87fd0e..136aa2afd5 100644 --- a/lib/colvars/colvar.cpp +++ b/lib/colvars/colvar.cpp @@ -21,6 +21,7 @@ #include "colvarbias.h" #include "colvars_memstream.h" +#include "colvarcomp_torchann.h" std::map> colvar::global_cvc_map = std::map>(); @@ -95,6 +96,12 @@ int colvar::init(std::string const &conf) if (error_code != COLVARS_OK) { return cvm::get_error(); } +#else + if (key_lookup(conf, "customFunction")) { + return cvm::error( + "Error: customFunction keyword is used, but the Lepton library is not available.\n", + COLVARS_NOT_IMPLEMENTED); + } #endif // Setup colvar as scripted function of components @@ -175,12 +182,6 @@ int colvar::init(std::string const &conf) set_enabled(f_cv_scalar, (value().type() == colvarvalue::type_scalar)); - // If using scripted biases, any colvar may receive bias forces - // and will need its gradient - if (cvm::scripted_forces()) { - enable(f_cv_gradient); - } - // check for linear combinations { bool lin = !(is_enabled(f_cv_scripted) || is_enabled(f_cv_custom_function)); @@ -311,9 +312,27 @@ int colvar::init(std::string const &conf) // Detect if we have a single component that is an alchemical lambda if (is_enabled(f_cv_single_cvc) && cvcs[0]->function_type() == "alchLambda") { enable(f_cv_external); + + static_cast(cvcs[0].get())->init_alchemy(time_step_factor); + } + + // If using scripted biases, any colvar may receive bias forces + if (cvm::scripted_forces()) { + enable(f_cv_apply_force); } error_code |= init_extended_Lagrangian(conf); + + // when total atomic forces are obtained from the previous time step, + // we cannot (currently) have colvar values and projected total forces for the same timestep + // (that would require anticipating the total force request by one timestep) + // i.e. the combination of f_cv_total_force_calc and f_cv_multiple_ts requires f_cv_total_force_current_step + // Because f_cv_total_force_current_step is static, we can hard-code this, once other features are set + // that is f_cv_external and f_cv_extended_Lagrangian + if (!is_enabled(f_cv_total_force_current_step)) { + exclude_feature_self(f_cv_multiple_ts, f_cv_total_force_calc); + } + error_code |= init_output_flags(conf); // Now that the children are defined we can solve dependencies @@ -495,8 +514,6 @@ int colvar::init_grid_parameters(std::string const &conf) { int error_code = COLVARS_OK; - colvarmodule *cv = cvm::main(); - cvm::real default_width = width; if (!key_already_set("width")) { @@ -522,34 +539,68 @@ int colvar::init_grid_parameters(std::string const &conf) if (is_enabled(f_cv_scalar)) { - if (is_enabled(f_cv_single_cvc)) { - // Get the default boundaries from the component + // Record the CVC's intrinsic boundaries, and set them as default values for the user's choice + colvarvalue cvc_lower_boundary, cvc_upper_boundary; + + if (is_enabled(f_cv_single_cvc)) { // Get the intrinsic boundaries of the CVC + if (cvcs[0]->is_enabled(f_cvc_lower_boundary)) { enable(f_cv_lower_boundary); enable(f_cv_hard_lower_boundary); - lower_boundary = + lower_boundary = cvc_lower_boundary = *(reinterpret_cast(cvcs[0]->get_param_ptr("lowerBoundary"))); } + if (cvcs[0]->is_enabled(f_cvc_upper_boundary)) { enable(f_cv_upper_boundary); enable(f_cv_hard_upper_boundary); - upper_boundary = - *(reinterpret_cast(cvcs[0]->get_param_ptr("upperBoundary"))); + upper_boundary = cvc_upper_boundary = + *(reinterpret_cast(cvcs[0]->get_param_ptr("upperBoundary"))); } } if (get_keyval(conf, "lowerBoundary", lower_boundary, lower_boundary)) { enable(f_cv_lower_boundary); - // Because this is the user's choice, we cannot assume it is a true - // physical boundary - disable(f_cv_hard_lower_boundary); + if (is_enabled(f_cv_single_cvc) && is_enabled(f_cv_hard_lower_boundary)) { + if (cvm::sqrt(dist2(lower_boundary, cvc_lower_boundary))/width > colvar_boundaries_tol) { + // The user choice is different from the CVC's default + disable(f_cv_hard_lower_boundary); + } + } } if (get_keyval(conf, "upperBoundary", upper_boundary, upper_boundary)) { enable(f_cv_upper_boundary); - disable(f_cv_hard_upper_boundary); + if (is_enabled(f_cv_single_cvc) && is_enabled(f_cv_hard_upper_boundary)) { + if (cvm::sqrt(dist2(upper_boundary, cvc_upper_boundary))/width > colvar_boundaries_tol) { + disable(f_cv_hard_upper_boundary); + } + } } + get_keyval_feature(this, conf, "hardLowerBoundary", f_cv_hard_lower_boundary, + is_enabled(f_cv_hard_lower_boundary)); + + get_keyval_feature(this, conf, "hardUpperBoundary", f_cv_hard_upper_boundary, + is_enabled(f_cv_hard_upper_boundary)); + + get_keyval(conf, "expandBoundaries", expand_boundaries, expand_boundaries); + + error_code |= parse_legacy_wall_params(conf); + error_code |= check_grid_parameters(); + } + + return error_code; +} + + +int colvar::parse_legacy_wall_params(std::string const &conf) +{ + int error_code = COLVARS_OK; + colvarmodule *cv = cvm::main(); + + if (is_enabled(f_cv_scalar)) { + // Parse legacy wall options and set up a harmonicWalls bias if needed cvm::real lower_wall_k = 0.0, upper_wall_k = 0.0; cvm::real lower_wall = 0.0, upper_wall = 0.0; @@ -603,13 +654,14 @@ harmonicWalls {\n\ } } - get_keyval_feature(this, conf, "hardLowerBoundary", f_cv_hard_lower_boundary, - is_enabled(f_cv_hard_lower_boundary)); + return error_code; +} - get_keyval_feature(this, conf, "hardUpperBoundary", f_cv_hard_upper_boundary, - is_enabled(f_cv_hard_upper_boundary)); - // consistency checks for boundaries and walls +int colvar::check_grid_parameters() +{ + int error_code = COLVARS_OK; + if (is_enabled(f_cv_lower_boundary) && is_enabled(f_cv_upper_boundary)) { if (lower_boundary >= upper_boundary) { error_code |= cvm::error("Error: the upper boundary, "+ @@ -620,7 +672,6 @@ harmonicWalls {\n\ } } - get_keyval(conf, "expandBoundaries", expand_boundaries, expand_boundaries); if (expand_boundaries && periodic_boundaries()) { error_code |= cvm::error("Error: trying to expand boundaries that already " "cover a whole period of a periodic colvar.\n", @@ -654,14 +705,15 @@ int colvar::init_extended_Lagrangian(std::string const &conf) x_ext.type(colvarvalue::type_notset); v_ext.type(value()); fr.type(value()); - const bool temp_provided = get_keyval(conf, "extendedTemp", temp, - proxy->target_temperature()); + const bool temp_provided = get_keyval(conf, "extendedTemp", temp, proxy->target_temperature()); if (is_enabled(f_cv_external)) { - // In the case of an "external" coordinate, there is no coupling potential: + // In the case of a driven external parameter in the back-end, there is no coupling potential: // only the fictitious mass is meaningful get_keyval(conf, "extendedMass", ext_mass); // Ensure that the computed restraint energy term is zero ext_force_k = 0.0; + // Then we need forces from the back-end + enable(f_cv_total_force_calc); } else { // Standard case of coupling to a geometric colvar if (temp <= 0.0) { // Then a finite temperature is required @@ -779,6 +831,7 @@ int colvar::init_components_type(const std::string& conf, const char* def_config &def_conf, &pos) ) { + cvm::increase_depth(); cvm::log("Initializing " "a new \""+std::string(def_config_key)+"\" component"+ (cvm::debug() ? ", with configuration:\n"+def_conf @@ -791,7 +844,6 @@ int colvar::init_components_type(const std::string& conf, const char* def_config } cvcs.push_back(std::shared_ptr(cvcp)); - cvm::increase_depth(); int error_code_this = cvcp->init(def_conf); if (error_code_this == COLVARS_OK) { // Checking for invalid keywords only if the parsing was successful, otherwise any @@ -851,12 +903,8 @@ void colvar::define_component_types() add_component_type("dipole angle", "dipoleAngle"); add_component_type("dihedral", "dihedral"); add_component_type("hydrogen bond", "hBond"); - - if (proxy->check_atom_name_selections_available() == COLVARS_OK) { - add_component_type("alpha helix", "alpha"); - add_component_type("dihedral principal component", "dihedralPC"); - } - + add_component_type("alpha helix", "alpha"); + add_component_type("dihedral principal component", "dihedralPC"); add_component_type("orientation", "orientation"); add_component_type("orientation angle", "orientationAngle"); add_component_type("orientation projection", "orientationProj"); @@ -888,6 +936,8 @@ void colvar::define_component_types() add_component_type("neural network CV for other CVs", "neuralNetwork"); + add_component_type("CV defined by PyTorch artifical neural network models", "torchANN"); + if (proxy->check_volmaps_available() == COLVARS_OK) { add_component_type("total value of atomic map", "mapTotal"); } @@ -1098,6 +1148,9 @@ int colvar::init_dependencies() { init_feature(f_cv_gradient, "gradient", f_type_dynamic); require_feature_children(f_cv_gradient, f_cvc_gradient); + init_feature(f_cv_apply_force, "apply_force", f_type_dynamic); + require_feature_alt(f_cv_apply_force, f_cv_gradient, f_cv_external); + init_feature(f_cv_collect_gradient, "collect_gradient", f_type_dynamic); require_feature_self(f_cv_collect_gradient, f_cv_gradient); require_feature_self(f_cv_collect_gradient, f_cv_scalar); @@ -1116,6 +1169,10 @@ int colvar::init_dependencies() { init_feature(f_cv_total_force, "total_force", f_type_dynamic); require_feature_alt(f_cv_total_force, f_cv_extended_Lagrangian, f_cv_total_force_calc); + // If this is active, the total force reported to biases (ABF / TI) is from the current step + // therefore it does not include Colvars biases -> it is a "system force" + init_feature(f_cv_total_force_current_step, "total_force_current_step", f_type_dynamic); + // Deps for explicit total force calculation init_feature(f_cv_total_force_calc, "total_force_calculation", f_type_dynamic); require_feature_self(f_cv_total_force_calc, f_cv_scalar); @@ -1134,13 +1191,15 @@ int colvar::init_dependencies() { init_feature(f_cv_extended_Lagrangian, "extended_Lagrangian", f_type_user); require_feature_self(f_cv_extended_Lagrangian, f_cv_scalar); - require_feature_self(f_cv_extended_Lagrangian, f_cv_gradient); + require_feature_self(f_cv_extended_Lagrangian, f_cv_apply_force); init_feature(f_cv_Langevin, "Langevin_dynamics", f_type_user); require_feature_self(f_cv_Langevin, f_cv_extended_Lagrangian); - init_feature(f_cv_external, "external", f_type_user); + init_feature(f_cv_external, "external_parameter", f_type_static); require_feature_self(f_cv_external, f_cv_single_cvc); + // External parameters always report the total force for current step + require_feature_self(f_cv_external, f_cv_total_force_current_step); init_feature(f_cv_single_cvc, "single_component", f_type_static); @@ -1201,10 +1260,7 @@ int colvar::init_dependencies() { init_feature(f_cv_linear, "linear", f_type_static); init_feature(f_cv_homogeneous, "homogeneous", f_type_static); - // because total forces are obtained from the previous time step, - // we cannot (currently) have colvar values and total forces for the same timestep init_feature(f_cv_multiple_ts, "multiple_timestep", f_type_static); - exclude_feature_self(f_cv_multiple_ts, f_cv_total_force_calc); // check that everything is initialized for (i = 0; i < colvardeps::f_cv_ntot; i++) { @@ -1225,6 +1281,10 @@ int colvar::init_dependencies() { feature_states[f_cv_fdiff_velocity].available = cvm::main()->proxy->simulation_running(); + // Some back-ends report current total forces for all colvars + if (cvm::main()->proxy->total_forces_same_step()) + enable(f_cv_total_force_current_step); + return COLVARS_OK; } @@ -1351,7 +1411,6 @@ int colvar::calc_cvcs(int first_cvc, size_t num_cvcs) cvm::log("Calculating colvar \""+this->name+"\", components "+ cvm::to_str(first_cvc)+" through "+cvm::to_str(first_cvc+num_cvcs)+".\n"); - colvarproxy *proxy = cvm::main()->proxy; int error_code = COLVARS_OK; error_code |= check_cvc_range(first_cvc, num_cvcs); @@ -1359,7 +1418,7 @@ int colvar::calc_cvcs(int first_cvc, size_t num_cvcs) return error_code; } - if ((cvm::step_relative() > 0) && (!proxy->total_forces_same_step())){ + if ((cvm::step_relative() > 0) && (!is_enabled(f_cv_total_force_current_step))){ // Use Jacobian derivative from previous timestep error_code |= calc_cvc_total_force(first_cvc, num_cvcs); } @@ -1367,7 +1426,7 @@ int colvar::calc_cvcs(int first_cvc, size_t num_cvcs) error_code |= calc_cvc_values(first_cvc, num_cvcs); error_code |= calc_cvc_gradients(first_cvc, num_cvcs); error_code |= calc_cvc_Jacobians(first_cvc, num_cvcs); - if (proxy->total_forces_same_step()){ + if (is_enabled(f_cv_total_force_current_step)){ // Use Jacobian derivative from this timestep error_code |= calc_cvc_total_force(first_cvc, num_cvcs); } @@ -1384,10 +1443,9 @@ int colvar::collect_cvc_data() if (cvm::debug()) cvm::log("Calculating colvar \""+this->name+"\"'s properties.\n"); - colvarproxy *proxy = cvm::main()->proxy; int error_code = COLVARS_OK; - if ((cvm::step_relative() > 0) && (!proxy->total_forces_same_step())){ + if ((cvm::step_relative() > 0) && (!is_enabled(f_cv_total_force_current_step))){ // Total force depends on Jacobian derivative from previous timestep // collect_cvc_total_forces() uses the previous value of jd error_code |= collect_cvc_total_forces(); @@ -1395,7 +1453,7 @@ int colvar::collect_cvc_data() error_code |= collect_cvc_values(); error_code |= collect_cvc_gradients(); error_code |= collect_cvc_Jacobians(); - if (proxy->total_forces_same_step()){ + if (is_enabled(f_cv_total_force_current_step)){ // Use Jacobian derivative from this timestep error_code |= collect_cvc_total_forces(); } @@ -1609,22 +1667,20 @@ int colvar::collect_cvc_total_forces() if (is_enabled(f_cv_total_force_calc)) { ft.reset(); - if (cvm::step_relative() > 0) { - // get from the cvcs the total forces from the PREVIOUS step - for (size_t i = 0; i < cvcs.size(); i++) { - if (!cvcs[i]->is_enabled()) continue; - if (cvm::debug()) - cvm::log("Colvar component no. "+cvm::to_str(i+1)+ - " within colvar \""+this->name+"\" has total force "+ - cvm::to_str((cvcs[i])->total_force(), - cvm::cv_width, cvm::cv_prec)+".\n"); - // linear combination is assumed - ft += (cvcs[i])->total_force() * (cvcs[i])->sup_coeff / active_cvc_square_norm; - } + for (size_t i = 0; i < cvcs.size(); i++) { + if (!cvcs[i]->is_enabled()) continue; + if (cvm::debug()) + cvm::log("Colvar component no. "+cvm::to_str(i+1)+ + " within colvar \""+this->name+"\" has total force "+ + cvm::to_str((cvcs[i])->total_force(), + cvm::cv_width, cvm::cv_prec)+".\n"); + // linear combination is assumed + ft += (cvcs[i])->total_force() * (cvcs[i])->sup_coeff / active_cvc_square_norm; } if (!(is_enabled(f_cv_hide_Jacobian) && is_enabled(f_cv_subtract_applied_force))) { - // add the Jacobian force to the total force, and don't apply any silent + // This is by far the most common case + // Add the Jacobian force to the total force, and don't apply any silent // correction internally: biases such as colvarbias_abf will handle it // If f_cv_hide_Jacobian is enabled, a force of -fj is present in ft due to the // Jacobian-compensating force @@ -1632,6 +1688,10 @@ int colvar::collect_cvc_total_forces() } } + if (is_enabled(f_cv_total_force_current_step)) { + // Report total force value without waiting for calc_colvar_properties() + ft_reported = ft; + } return COLVARS_OK; } @@ -1733,12 +1793,15 @@ int colvar::calc_colvar_properties() // But we report values at the beginning of the timestep (value at t=0 on the first timestep) x_reported = x_ext; v_reported = v_ext; - // the "total force" with the extended Lagrangian is - // calculated in update_forces_energy() below + // the "total force" for the extended Lagrangian is calculated in update_forces_energy() below + // A future improvement could compute a "system force" here, borrowing a part of update_extended_Lagrangian() + // this would change the behavior of eABF with respect to other biases + // by enabling f_cv_total_force_current_step, and reducing the total force to a system force + // giving the behavior of f_cv_subtract_applied_force - this is correct for WTM-eABF etc. } else { - if (is_enabled(f_cv_subtract_applied_force)) { + if (is_enabled(f_cv_subtract_applied_force) && !cvm::proxy->total_forces_same_step()) { // correct the total force only if it has been measured // TODO add a specific test instead of relying on sq norm if (ft.norm2() > 0.0) { @@ -1825,7 +1888,8 @@ void colvar::update_extended_Lagrangian() // Integrate with slow timestep (if time_step_factor != 1) cvm::real dt = cvm::dt() * cvm::real(time_step_factor); - colvarvalue f_ext(fr.type()); // force acting on the extended variable + // Force acting on the extended variable + colvarvalue f_ext(fr.type()); f_ext.reset(); if (is_enabled(f_cv_external)) { @@ -1834,13 +1898,13 @@ void colvar::update_extended_Lagrangian() f += fb_actual; } - // fr: bias force on extended variable (without harmonic spring), for output in trajectory - fr = f; - // External force has been scaled for an inner-timestep impulse (for the back-end integrator) // here we scale it back because this integrator uses only the outer (long) timestep f_ext = f / cvm::real(time_step_factor); + // fr: bias force on extended variable (without harmonic spring), for output in trajectory + fr = f_ext; + colvarvalue f_system(fr.type()); // force exterted by the system on the extended DOF if (is_enabled(f_cv_external)) { @@ -1863,14 +1927,18 @@ void colvar::update_extended_Lagrangian() } f_ext += f_system; - if (is_enabled(f_cv_subtract_applied_force)) { - // Report a "system" force without the biases on this colvar - // that is, just the spring force (or alchemical force) - ft_reported = f_system; - } else { - // The total force acting on the extended variable is f_ext - // This will be used in the next timestep - ft_reported = f_ext; + if ( ! is_enabled(f_cv_total_force_current_step)) { + if (is_enabled(f_cv_subtract_applied_force)) { + // Report a "system" force without the biases on this colvar + // that is, just the spring force (or alchemical force) + ft_reported = f_system; + } else { + // The total force acting on the extended variable is f_ext + // This will be used in the next timestep + ft_reported = f_ext; + } + // Since biases have already been updated, this ft_reported will only be + // communicated to biases at the next timestep } // backup in case we need to revert this integration timestep @@ -2184,12 +2252,10 @@ int colvar::set_cvc_param(std::string const ¶m_name, void const *new_value) bool colvar::periodic_boundaries(colvarvalue const &lb, colvarvalue const &ub) const { if (period > 0.0) { - if ( ((cvm::sqrt(this->dist2(lb, ub))) / this->width) - < 1.0E-10 ) { + if (((cvm::sqrt(this->dist2(lb, ub))) / this->width) < colvar_boundaries_tol) { return true; } } - return false; } @@ -2347,6 +2413,11 @@ int colvar::set_state_params(std::string const &conf) cvm::to_str(x)+"\n"); x_restart = x; after_restart = true; + // Externally driven cv (e.g. alchemical lambda) is imposed by restart value + if (is_enabled(f_cv_external) && is_enabled(f_cv_extended_Lagrangian)) { + // Request immediate sync of driven parameter to back-end code + cvcs[0]->set_value(x, true); + } } if (is_enabled(f_cv_extended_Lagrangian)) { @@ -2489,8 +2560,14 @@ std::string const colvar::get_state_params() const os << " name " << name << "\n" << " x " << std::setprecision(cvm::cv_prec) - << std::setw(cvm::cv_width) - << x << "\n"; + << std::setw(cvm::cv_width); + if (is_enabled(f_cv_external) && is_enabled(f_cv_extended_Lagrangian)) { + // For an external colvar, x is one timestep in the future after integration + // write x at beginning of timestep + os << x_reported << "\n"; + } else { + os << x << "\n"; + } if (is_enabled(f_cv_output_velocity)) { os << " v " diff --git a/lib/colvars/colvar.h b/lib/colvars/colvar.h index 443e1e4bdd..1db313f416 100644 --- a/lib/colvars/colvar.h +++ b/lib/colvars/colvar.h @@ -263,6 +263,12 @@ public: /// Init defaults for grid options int init_grid_parameters(std::string const &conf); + /// Consistency check for the grid paramaters + int check_grid_parameters(); + + /// Read legacy wall keyword (these are biases now) + int parse_legacy_wall_params(std::string const &conf); + /// Init extended Lagrangian parameters int init_extended_Lagrangian(std::string const &conf); @@ -633,6 +639,7 @@ public: class euler_psi; class euler_theta; class neuralNetwork; + class torchANN; class customColvar; // non-scalar components @@ -753,7 +760,7 @@ inline colvarvalue const & colvar::total_force() const inline void colvar::add_bias_force(colvarvalue const &force) { - check_enabled(f_cv_gradient, + check_enabled(f_cv_apply_force, std::string("applying a force to the variable \""+name+"\"")); if (cvm::debug()) { cvm::log("Adding biasing force "+cvm::to_str(force)+" to colvar \""+name+"\".\n"); @@ -778,4 +785,10 @@ inline void colvar::reset_bias_force() { fb_actual.reset(); } + +namespace { + // Tolerance parameter to decide when two boundaries coincide + constexpr cvm::real colvar_boundaries_tol = 1.0e-10; +} + #endif diff --git a/lib/colvars/colvar_rotation_derivative.h b/lib/colvars/colvar_rotation_derivative.h index 50f4f1aa97..ceaf728c36 100644 --- a/lib/colvars/colvar_rotation_derivative.h +++ b/lib/colvars/colvar_rotation_derivative.h @@ -5,11 +5,21 @@ #include #include +#ifndef _noalias +#if defined(__INTEL_COMPILER) || (defined(__PGI) && !defined(__NVCOMPILER)) +#define _noalias restrict +#elif defined(__GNUC__) || defined(__INTEL_LLVM_COMPILER) || defined(__NVCOMPILER) +#define _noalias __restrict +#else +#define _noalias +#endif +#endif + /// \brief Helper function for loading the ia-th atom in the vector pos to x, y and z (C++11 SFINAE is used) template ::value, bool>::type = true> inline void read_atom_coord( size_t ia, const std::vector& pos, - cvm::real* x, cvm::real* y, cvm::real* z) { + cvm::real* _noalias x, cvm::real* _noalias y, cvm::real* _noalias z) { *x = pos[ia].x; *y = pos[ia].y; *z = pos[ia].z; @@ -18,7 +28,7 @@ inline void read_atom_coord( template ::value, bool>::type = true> inline void read_atom_coord( size_t ia, const std::vector& pos, - cvm::real* x, cvm::real* y, cvm::real* z) { + cvm::real* _noalias x, cvm::real* _noalias y, cvm::real* _noalias z) { *x = pos[ia].pos.x; *y = pos[ia].pos.y; *z = pos[ia].pos.z; @@ -26,9 +36,9 @@ inline void read_atom_coord( /// \brief Helper enum class for specifying options in rotation_derivative::prepare_derivative enum class rotation_derivative_dldq { - /// Require the derivative of the leading eigenvalue with respect to the atom coordinats + /// Require the derivative of the leading eigenvalue with respect to the atom coordinates use_dl = 1 << 0, - /// Require the derivative of the leading eigenvector with respect to the atom coordinats + /// Require the derivative of the leading eigenvector with respect to the atom coordinates use_dq = 1 << 1 }; @@ -327,12 +337,13 @@ struct rotation_derivative { * @param[out] dq0_out The output of derivative of Q * @param[out] ds_out The output of derivative of overlap matrix S */ + template void calc_derivative_impl( const cvm::rvector (&ds)[4][4], - cvm::rvector* const dl0_out, - cvm::vector1d* const dq0_out, - cvm::matrix2d* const ds_out) const { - if (ds_out != nullptr) { + cvm::rvector* _noalias const dl0_out, + cvm::vector1d* _noalias const dq0_out, + cvm::matrix2d* _noalias const ds_out) const { + if (use_ds) { // this code path is for debug_gradients, so not necessary to unroll the loop *ds_out = cvm::matrix2d(4, 4); for (int i = 0; i < 4; ++i) { @@ -341,7 +352,7 @@ struct rotation_derivative { } } } - if (dl0_out != nullptr) { + if (use_dl) { /* manually loop unrolling of the following loop: dl0_1.reset(); for (size_t i = 0; i < 4; i++) { @@ -367,7 +378,7 @@ struct rotation_derivative { tmp_Q0Q0[3][2] * ds[3][2] + tmp_Q0Q0[3][3] * ds[3][3]; } - if (dq0_out != nullptr) { + if (use_dq) { // we can skip this check if a fixed-size array is used if (dq0_out->size() != 4) dq0_out->resize(4); /* manually loop unrolling of the following loop: @@ -462,32 +473,21 @@ struct rotation_derivative { * @param[out] ds_1_out The output of derivative of overlap matrix S with * respect to ia-th atom of group 1 */ + template void calc_derivative_wrt_group1( - size_t ia, cvm::rvector* const dl0_1_out = nullptr, - cvm::vector1d* const dq0_1_out = nullptr, - cvm::matrix2d* const ds_1_out = nullptr) const { - if (dl0_1_out == nullptr && dq0_1_out == nullptr) return; + size_t ia, cvm::rvector* _noalias const dl0_1_out = nullptr, + cvm::vector1d* _noalias const dq0_1_out = nullptr, + cvm::matrix2d* _noalias const ds_1_out = nullptr) const { + // if (dl0_1_out == nullptr && dq0_1_out == nullptr) return; cvm::real a2x, a2y, a2z; // we can get rid of the helper function read_atom_coord if C++17 (constexpr) is available read_atom_coord(ia, m_pos2, &a2x, &a2y, &a2z); - cvm::rvector ds_1[4][4]; - ds_1[0][0].set( a2x, a2y, a2z); - ds_1[1][0].set( 0.0, a2z, -a2y); - ds_1[0][1] = ds_1[1][0]; - ds_1[2][0].set(-a2z, 0.0, a2x); - ds_1[0][2] = ds_1[2][0]; - ds_1[3][0].set( a2y, -a2x, 0.0); - ds_1[0][3] = ds_1[3][0]; - ds_1[1][1].set( a2x, -a2y, -a2z); - ds_1[2][1].set( a2y, a2x, 0.0); - ds_1[1][2] = ds_1[2][1]; - ds_1[3][1].set( a2z, 0.0, a2x); - ds_1[1][3] = ds_1[3][1]; - ds_1[2][2].set(-a2x, a2y, -a2z); - ds_1[3][2].set( 0.0, a2z, a2y); - ds_1[2][3] = ds_1[3][2]; - ds_1[3][3].set(-a2x, -a2y, a2z); - calc_derivative_impl(ds_1, dl0_1_out, dq0_1_out, ds_1_out); + const cvm::rvector ds_1[4][4] = { + {{ a2x, a2y, a2z}, { 0.0, a2z, -a2y}, {-a2z, 0.0, a2x}, { a2y, -a2x, 0.0}}, + {{ 0.0, a2z, -a2y}, { a2x, -a2y, -a2z}, { a2y, a2x, 0.0}, { a2z, 0.0, a2x}}, + {{-a2z, 0.0, a2x}, { a2y, a2x, 0.0}, {-a2x, a2y, -a2z}, { 0.0, a2z, a2y}}, + {{ a2y, -a2x, 0.0}, { a2z, 0.0, a2x}, { 0.0, a2z, a2y}, {-a2x, -a2y, a2z}}}; + calc_derivative_impl(ds_1, dl0_1_out, dq0_1_out, ds_1_out); } /*! @brief Calculate the derivatives of S, the leading eigenvalue L and * the leading eigenvector Q with respect to `m_pos2` @@ -499,32 +499,21 @@ struct rotation_derivative { * @param[out] ds_2_out The output of derivative of overlap matrix S with * respect to ia-th atom of group 2 */ + template void calc_derivative_wrt_group2( - size_t ia, cvm::rvector* const dl0_2_out = nullptr, - cvm::vector1d* const dq0_2_out = nullptr, - cvm::matrix2d* const ds_2_out = nullptr) const { - if (dl0_2_out == nullptr && dq0_2_out == nullptr) return; + size_t ia, cvm::rvector* _noalias const dl0_2_out = nullptr, + cvm::vector1d* _noalias const dq0_2_out = nullptr, + cvm::matrix2d* _noalias const ds_2_out = nullptr) const { + // if (dl0_2_out == nullptr && dq0_2_out == nullptr) return; cvm::real a1x, a1y, a1z; // we can get rid of the helper function read_atom_coord if C++17 (constexpr) is available read_atom_coord(ia, m_pos1, &a1x, &a1y, &a1z); - cvm::rvector ds_2[4][4]; - ds_2[0][0].set( a1x, a1y, a1z); - ds_2[1][0].set( 0.0, -a1z, a1y); - ds_2[0][1] = ds_2[1][0]; - ds_2[2][0].set( a1z, 0.0, -a1x); - ds_2[0][2] = ds_2[2][0]; - ds_2[3][0].set(-a1y, a1x, 0.0); - ds_2[0][3] = ds_2[3][0]; - ds_2[1][1].set( a1x, -a1y, -a1z); - ds_2[2][1].set( a1y, a1x, 0.0); - ds_2[1][2] = ds_2[2][1]; - ds_2[3][1].set( a1z, 0.0, a1x); - ds_2[1][3] = ds_2[3][1]; - ds_2[2][2].set(-a1x, a1y, -a1z); - ds_2[3][2].set( 0.0, a1z, a1y); - ds_2[2][3] = ds_2[3][2]; - ds_2[3][3].set(-a1x, -a1y, a1z); - calc_derivative_impl(ds_2, dl0_2_out, dq0_2_out, ds_2_out); + const cvm::rvector ds_2[4][4] = { + {{ a1x, a1y, a1z}, { 0.0, -a1z, a1y}, { a1z, 0.0, -a1x}, {-a1y, a1x, 0.0}}, + {{ 0.0, -a1z, a1y}, { a1x, -a1y, -a1z}, { a1y, a1x, 0.0}, { a1z, 0.0, a1x}}, + {{ a1z, 0.0, -a1x}, { a1y, a1x, 0.0}, {-a1x, a1y, -a1z}, { 0.0, a1z, a1y}}, + {{-a1y, a1x, 0.0}, { a1z, 0.0, a1x}, { 0.0, a1z, a1y}, {-a1x, -a1y, a1z}}}; + calc_derivative_impl(ds_2, dl0_2_out, dq0_2_out, ds_2_out); } }; @@ -585,10 +574,7 @@ void debug_gradients( cvm::real S_new_eigval[4]; cvm::real S_new_eigvec[4][4]; for (size_t ia = 0; ia < pos2.size(); ++ia) { - // cvm::real const &a1x = pos1[ia].x; - // cvm::real const &a1y = pos1[ia].y; - // cvm::real const &a1z = pos1[ia].z; - deriv.calc_derivative_wrt_group2(ia, &dl0_2, &dq0_2, &ds_2); + deriv.template calc_derivative_wrt_group2(ia, &dl0_2, &dq0_2, &ds_2); // make an infitesimal move along each cartesian coordinate of // this atom, and solve again the eigenvector problem for (size_t comp = 0; comp < 3; comp++) { diff --git a/lib/colvars/colvaratoms.cpp b/lib/colvars/colvaratoms.cpp index e15b9301a1..054db505f3 100644 --- a/lib/colvars/colvaratoms.cpp +++ b/lib/colvars/colvaratoms.cpp @@ -673,7 +673,7 @@ int cvm::atom_group::add_atom_numbers(std::string const &numbers_conf) } -int cvm::atom_group::add_index_group(std::string const &index_group_name) +int cvm::atom_group::add_index_group(std::string const &index_group_name, bool silent) { std::vector const &index_group_names = cvm::main()->index_group_names; @@ -687,7 +687,10 @@ int cvm::atom_group::add_index_group(std::string const &index_group_name) } if (i_group >= index_group_names.size()) { - return cvm::error("Error: could not find index group "+ + if (silent) + return COLVARS_INPUT_ERROR; + else + return cvm::error("Error: could not find index group "+ index_group_name+" among those already provided.\n", COLVARS_INPUT_ERROR); } @@ -1055,6 +1058,14 @@ void cvm::atom_group::calc_apply_roto_translation() } } + if (is_enabled(f_ag_fit_gradients) && !b_dummy) { + // Save the unrotated frame for fit gradients + pos_unrotated.resize(size()); + for (size_t i = 0; i < size(); ++i) { + pos_unrotated[i] = atoms[i].pos; + } + } + if (is_enabled(f_ag_rotate)) { // rotate the group (around the center of geometry if f_ag_center is // enabled, around the origin otherwise) @@ -1217,23 +1228,30 @@ void cvm::atom_group::calc_fit_gradients() if (cvm::debug()) cvm::log("Calculating fit gradients.\n"); + cvm::atom_group *group_for_fit = fitting_group ? fitting_group : this; + + auto accessor_main = [this](size_t i){return atoms[i].grad;}; + auto accessor_fitting = [&group_for_fit](size_t j, const cvm::rvector& grad){group_for_fit->fit_gradients[j] = grad;}; if (is_enabled(f_ag_center) && is_enabled(f_ag_rotate)) - calc_fit_gradients_impl(); + calc_fit_forces_impl(accessor_main, accessor_fitting); if (is_enabled(f_ag_center) && !is_enabled(f_ag_rotate)) - calc_fit_gradients_impl(); + calc_fit_forces_impl(accessor_main, accessor_fitting); if (!is_enabled(f_ag_center) && is_enabled(f_ag_rotate)) - calc_fit_gradients_impl(); + calc_fit_forces_impl(accessor_main, accessor_fitting); if (!is_enabled(f_ag_center) && !is_enabled(f_ag_rotate)) - calc_fit_gradients_impl(); + calc_fit_forces_impl(accessor_main, accessor_fitting); if (cvm::debug()) cvm::log("Done calculating fit gradients.\n"); } -template -void cvm::atom_group::calc_fit_gradients_impl() { - cvm::atom_group *group_for_fit = fitting_group ? fitting_group : this; +template +void cvm::atom_group::calc_fit_forces_impl( + main_force_accessor_T accessor_main, + fitting_force_accessor_T accessor_fitting) const { + const cvm::atom_group *group_for_fit = fitting_group ? fitting_group : this; // the center of geometry contribution to the gradients cvm::rvector atom_grad; // the rotation matrix contribution to the gradients @@ -1243,17 +1261,13 @@ void cvm::atom_group::calc_fit_gradients_impl() { cvm::vector1d dq0_1(4); // loop 1: iterate over the current atom group for (size_t i = 0; i < size(); i++) { - cvm::atom_pos pos_orig; if (B_ag_center) { - atom_grad += atoms[i].grad; - if (B_ag_rotate) pos_orig = rot_inv * (atoms[i].pos - ref_pos_cog); - } else { - if (B_ag_rotate) pos_orig = atoms[i].pos; + atom_grad += accessor_main(i); } if (B_ag_rotate) { // calculate \partial(R(q) \vec{x}_i)/\partial q) \cdot \partial\xi/\partial\vec{x}_i cvm::quaternion const dxdq = - rot.q.position_derivative_inner(pos_orig, atoms[i].grad); + rot.q.position_derivative_inner(pos_unrotated[i], accessor_main(i)); sum_dxdq[0] += dxdq[0]; sum_dxdq[1] += dxdq[1]; sum_dxdq[2] += dxdq[2]; @@ -1261,26 +1275,45 @@ void cvm::atom_group::calc_fit_gradients_impl() { } } if (B_ag_center) { - if (B_ag_rotate) atom_grad = rot.inverse().matrix() * atom_grad; + if (B_ag_rotate) atom_grad = rot_inv * atom_grad; atom_grad *= (-1.0)/(cvm::real(group_for_fit->size())); } // loop 2: iterate over the fitting group if (B_ag_rotate) rot_deriv->prepare_derivative(rotation_derivative_dldq::use_dq); for (size_t j = 0; j < group_for_fit->size(); j++) { + cvm::rvector fitting_force_grad{0, 0, 0}; if (B_ag_center) { - group_for_fit->fit_gradients[j] = atom_grad; + fitting_force_grad += atom_grad; } if (B_ag_rotate) { - rot_deriv->calc_derivative_wrt_group1(j, nullptr, &dq0_1); + rot_deriv->calc_derivative_wrt_group1(j, nullptr, &dq0_1); // multiply by {\partial q}/\partial\vec{x}_j and add it to the fit gradients - group_for_fit->fit_gradients[j] += sum_dxdq[0] * dq0_1[0] + - sum_dxdq[1] * dq0_1[1] + - sum_dxdq[2] * dq0_1[2] + - sum_dxdq[3] * dq0_1[3]; + fitting_force_grad += sum_dxdq[0] * dq0_1[0] + + sum_dxdq[1] * dq0_1[1] + + sum_dxdq[2] * dq0_1[2] + + sum_dxdq[3] * dq0_1[3]; } + if (cvm::debug()) { + cvm::log(cvm::to_str(fitting_force_grad)); + } + accessor_fitting(j, fitting_force_grad); } } +template +void cvm::atom_group::calc_fit_forces( + main_force_accessor_T accessor_main, + fitting_force_accessor_T accessor_fitting) const { + if (is_enabled(f_ag_center) && is_enabled(f_ag_rotate)) + calc_fit_forces_impl(accessor_main, accessor_fitting); + if (is_enabled(f_ag_center) && !is_enabled(f_ag_rotate)) + calc_fit_forces_impl(accessor_main, accessor_fitting); + if (!is_enabled(f_ag_center) && is_enabled(f_ag_rotate)) + calc_fit_forces_impl(accessor_main, accessor_fitting); + if (!is_enabled(f_ag_center) && !is_enabled(f_ag_rotate)) + calc_fit_forces_impl(accessor_main, accessor_fitting); +} + std::vector cvm::atom_group::positions() const { @@ -1452,17 +1485,72 @@ void cvm::atom_group::apply_force(cvm::rvector const &force) return; } - if (is_enabled(f_ag_rotate)) { + auto ag_force = get_group_force_object(); + for (size_t i = 0; i < size(); ++i) { + ag_force.add_atom_force(i, atoms[i].mass / total_mass * force); + } +} - const auto rot_inv = rot.inverse().matrix(); - for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { - ai->apply_force(rot_inv * ((ai->mass/total_mass) * force)); +cvm::atom_group::group_force_object cvm::atom_group::get_group_force_object() { + return cvm::atom_group::group_force_object(this); +} + +cvm::atom_group::group_force_object::group_force_object(cvm::atom_group* ag): +m_ag(ag), m_group_for_fit(m_ag->fitting_group ? m_ag->fitting_group : m_ag), +m_has_fitting_force(m_ag->is_enabled(f_ag_center) || m_ag->is_enabled(f_ag_rotate)) { + if (m_has_fitting_force) { + if (m_ag->group_forces.size() != m_ag->size()) { + m_ag->group_forces.assign(m_ag->size(), 0); + } else { + std::fill(m_ag->group_forces.begin(), + m_ag->group_forces.end(), 0); } + } +} +cvm::atom_group::group_force_object::~group_force_object() { + if (m_has_fitting_force) { + apply_force_with_fitting_group(); + } +} + +void cvm::atom_group::group_force_object::add_atom_force(size_t i, const cvm::rvector& force) { + if (m_has_fitting_force) { + m_ag->group_forces[i] += force; } else { + // Apply the force directly if we don't use fitting + (*m_ag)[i].apply_force(force); + } +} - for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) { - ai->apply_force((ai->mass/total_mass) * force); +void cvm::atom_group::group_force_object::apply_force_with_fitting_group() { + const cvm::rmatrix rot_inv = m_ag->rot.inverse().matrix(); + if (cvm::debug()) { + cvm::log("Applying force on main group " + m_ag->name + ":\n"); + } + for (size_t ia = 0; ia < m_ag->size(); ++ia) { + const cvm::rvector f_ia = rot_inv * m_ag->group_forces[ia]; + (*m_ag)[ia].apply_force(f_ia); + if (cvm::debug()) { + cvm::log(cvm::to_str(f_ia)); + } + } + // Gradients are only available with scalar components, so for a scalar component, + // if f_ag_fit_gradients is disabled, then the forces on the fitting group is not + // computed. For a vector component, we can only know the forces on the fitting + // group, but checking this flag can mimic results that the users expect (if + // "enableFitGradients no" then there is no force on the fitting group). + if (!m_ag->b_dummy && m_ag->is_enabled(f_ag_fit_gradients)) { + auto accessor_main = [this](size_t i){return m_ag->group_forces[i];}; + auto accessor_fitting = [this](size_t j, const cvm::rvector& fitting_force){ + (*(m_group_for_fit))[j].apply_force(fitting_force); + }; + if (cvm::debug()) { + cvm::log("Applying force on the fitting group of main group" + m_ag->name + ":\n"); + } + m_ag->calc_fit_forces(accessor_main, accessor_fitting); + if (cvm::debug()) { + cvm::log("Done applying force on the fitting group of main group" + m_ag->name + ":\n"); } } } diff --git a/lib/colvars/colvaratoms.h b/lib/colvars/colvaratoms.h index d16ca7bd56..528e849df0 100644 --- a/lib/colvars/colvaratoms.h +++ b/lib/colvars/colvaratoms.h @@ -194,7 +194,7 @@ public: int add_atom_numbers(std::string const &numbers_conf); int add_atoms_of_group(atom_group const * ag); - int add_index_group(std::string const &index_group_name); + int add_index_group(std::string const &index_group_name, bool silent = false); int add_atom_numbers_range(std::string const &range_conf); int add_atom_name_residue_range(std::string const &psf_segid, std::string const &range_conf); @@ -257,8 +257,63 @@ protected: /// \brief Index in the colvarproxy arrays (if the group is scalable) int index; + /// \brief The temporary forces acting on the main group atoms. + /// Currently this is only used for calculating the fitting group forces for + /// non-scalar components. + std::vector group_forces; + public: + /*! @class group_force_object + * @brief A helper class for applying forces on an atom group in a way that + * is aware of the fitting group. NOTE: you are encouraged to use + * get_group_force_object() to get an instance of group_force_object + * instead of constructing directly. + */ + class group_force_object { + public: + /*! @brief Constructor of group_force_object + * @param ag The pointer to the atom group that forces will be applied on. + */ + group_force_object(cvm::atom_group* ag); + /*! @brief Destructor of group_force_object + */ + ~group_force_object(); + /*! @brief Apply force to atom i + * @param i The i-th of atom in the atom group. + * @param force The force being added to atom i. + * + * The function can be used as follows, + * @code + * // In your colvar::cvc::apply_force() loop of a component: + * auto ag_force = atoms->get_group_force_object(); + * for (ia = 0; ia < atoms->size(); ia++) { + * const cvm::rvector f = compute_force_on_atom_ia(); + * ag_force.add_atom_force(ia, f); + * } + * @endcode + * There are actually two scenarios under the hood: + * (i) If the atom group does not have a fitting group, then the force is + * added to atom i directly; + * (ii) If the atom group has a fitting group, the force on atom i will just + * be temporary stashed into ag->group_forces. At the end of the loop + * of apply_force(), the destructor ~group_force_object() will be called, + * which then call apply_force_with_fitting_group(). The forces on the + * main group will be rotated back by multiplying ag->group_forces with + * the inverse rotation. The forces on the fitting group (if + * enableFitGradients is on) will be calculated by calling + * calc_fit_forces. + */ + void add_atom_force(size_t i, const cvm::rvector& force); + private: + cvm::atom_group* m_ag; + cvm::atom_group* m_group_for_fit; + bool m_has_fitting_force; + void apply_force_with_fitting_group(); + }; + + group_force_object get_group_force_object(); + inline cvm::atom & operator [] (size_t const i) { return atoms[i]; @@ -423,6 +478,9 @@ private: /// \brief Center of geometry before any fitting cvm::atom_pos cog_orig; + /// \brief Unrotated atom positions for fit gradients + std::vector pos_unrotated; + public: /// \brief Return the center of geometry of the atomic positions @@ -497,15 +555,60 @@ public: /// \brief Calculate the derivatives of the fitting transformation void calc_fit_gradients(); -/*! @brief Actual implementation of `calc_fit_gradients`. The template is +/*! @brief Actual implementation of `calc_fit_gradients` and + * `calc_fit_forces`. The template is * used to avoid branching inside the loops in case that the CPU * branch prediction is broken (or further migration to GPU code). * @tparam B_ag_center Centered the reference to origin? This should follow * the value of `is_enabled(f_ag_center)`. * @tparam B_ag_rotate Calculate the optimal rotation? This should follow * the value of `is_enabled(f_ag_rotate)`. + * @tparam main_force_accessor_T The type of accessor of the main + * group forces or gradients acting on the rotated frame. + * @tparam fitting_force_accessor_T The type of accessor of the fitting group + * forces or gradients. + * @param accessor_main The accessor of the main group forces or gradients. + * accessor_main(i) should return the i-th force or gradient of the + * rotated main group. + * @param accessor_fitting The accessor of the fitting group forces or gradients. + * accessor_fitting(j, v) should store/apply the j-th atom gradient or + * force in the fitting group. + * + * This function is used to (i) project the gradients of CV with respect to + * rotated main group atoms to fitting group atoms, or (ii) project the forces + * on rotated main group atoms to fitting group atoms, by the following two steps + * (using the goal (ii) for example): + * (1) Loop over the positions of main group atoms and call cvm::quaternion::position_derivative_inner + * to project the forces on rotated main group atoms to the forces on quaternion. + * (2) Loop over the positions of fitting group atoms, compute the gradients of + * \f$\mathbf{q}\f$ with respect to the position of each atom, and then multiply + * that with the force on \f$\mathbf{q}\f$ (chain rule). */ - template void calc_fit_gradients_impl(); + template + void calc_fit_forces_impl( + main_force_accessor_T accessor_main, + fitting_force_accessor_T accessor_fitting) const; + +/*! @brief Calculate or apply the fitting group forces from the main group forces. + * @tparam main_force_accessor_T The type of accessor of the main + * group forces or gradients. + * @tparam fitting_force_accessor_T The type of accessor of the fitting group + * forces or gradients. + * @param accessor_main The accessor of the main group forces or gradients. + * accessor_main(i) should return the i-th force or gradient of the + * main group. + * @param accessor_fitting The accessor of the fitting group forces or gradients. + * accessor_fitting(j, v) should store/apply the j-th atom gradient or + * force in the fitting group. + * + * This function just dispatches the parameters to calc_fit_forces_impl that really + * performs the calculations. + */ + template + void calc_fit_forces( + main_force_accessor_T accessor_main, + fitting_force_accessor_T accessor_fitting) const; /// \brief Derivatives of the fitting transformation std::vector fit_gradients; diff --git a/lib/colvars/colvarbias.cpp b/lib/colvars/colvarbias.cpp index fdffdc1794..43b54d672f 100644 --- a/lib/colvars/colvarbias.cpp +++ b/lib/colvars/colvarbias.cpp @@ -93,6 +93,8 @@ int colvarbias::init(std::string const &conf) cvm::log("Reinitializing bias \""+name+"\".\n"); } + feature_states[f_cvb_step_zero_data].available = true; + colvar_values.resize(num_variables()); for (i = 0; i < num_variables(); i++) { colvar_values[i].type(colvars[i]->value().type()); @@ -157,7 +159,7 @@ int colvarbias::init_dependencies() { init_feature(f_cvb_step_zero_data, "step_zero_data", f_type_user); init_feature(f_cvb_apply_force, "apply_force", f_type_user); - require_feature_children(f_cvb_apply_force, f_cv_gradient); + require_feature_children(f_cvb_apply_force, f_cv_apply_force); init_feature(f_cvb_bypass_ext_lagrangian, "bypass_extended_Lagrangian_coordinates", f_type_user); @@ -199,6 +201,8 @@ int colvarbias::init_dependencies() { init_feature(f_cvb_extended, "Bias on extended-Lagrangian variables", f_type_static); + init_feature(f_cvb_smp, "smp_computation", f_type_user); + // check that everything is initialized for (i = 0; i < colvardeps::f_cvb_ntot; i++) { if (is_not_set(i)) { @@ -221,8 +225,9 @@ int colvarbias::init_dependencies() { // The feature f_cvb_bypass_ext_lagrangian is only implemented by some derived classes // (initially, harmonicWalls) feature_states[f_cvb_bypass_ext_lagrangian].available = false; - // disabled by default; can be changed by derived classes that implement it - feature_states[f_cvb_bypass_ext_lagrangian].enabled = false; + + // Most biases cannot currently be processed in parallel over threads + feature_states[f_cvb_smp].available = false; return COLVARS_OK; } @@ -704,7 +709,7 @@ int colvarbias::read_state_string(char const *buffer) std::ostream &colvarbias::write_state_data_key(std::ostream &os, std::string const &key, - bool header) + bool header) const { os << (header ? "\n" : "") << key << (header ? "\n" : " "); return os; @@ -712,7 +717,7 @@ std::ostream &colvarbias::write_state_data_key(std::ostream &os, std::string con cvm::memory_stream &colvarbias::write_state_data_key(cvm::memory_stream &os, std::string const &key, - bool /* header */) + bool /* header */) const { os << std::string(key); return os; @@ -792,6 +797,8 @@ int colvarbias_ti::init(std::string const &conf) { int error_code = COLVARS_OK; + key_lookup(conf, "grid", &grid_conf); + get_keyval_feature(this, conf, "writeTISamples", f_cvb_write_ti_samples, is_enabled(f_cvb_write_ti_samples)); @@ -800,18 +807,16 @@ int colvarbias_ti::init(std::string const &conf) f_cvb_write_ti_pmf, is_enabled(f_cvb_write_ti_pmf)); + if (is_enabled(f_cvb_write_ti_pmf)) { + enable(f_cvb_write_ti_samples); + } + if ((num_variables() > 1) && is_enabled(f_cvb_write_ti_pmf)) { return cvm::error("Error: only 1-dimensional PMFs can be written " "on the fly.\n" "Consider using writeTISamples instead and " "post-processing the sampled free-energy gradients.\n", COLVARS_NOT_IMPLEMENTED); - } else { - error_code |= init_grids(); - } - - if (is_enabled(f_cvb_write_ti_pmf)) { - enable(f_cvb_write_ti_samples); } if (is_enabled(f_cvb_calc_ti_samples)) { @@ -831,6 +836,8 @@ int colvarbias_ti::init(std::string const &conf) } } + error_code |= colvarbias_ti::init_grids(); + if (is_enabled(f_cvb_write_ti_pmf) || is_enabled(f_cvb_write_ti_samples)) { cvm::main()->cite_feature("Internal-forces free energy estimator"); } @@ -844,16 +851,15 @@ int colvarbias_ti::init_grids() if (is_enabled(f_cvb_calc_ti_samples)) { if (!ti_avg_forces) { ti_bin.resize(num_variables()); + ti_bin.assign(ti_bin.size(), -1); ti_system_forces.resize(num_variables()); for (size_t icv = 0; icv < num_variables(); icv++) { ti_system_forces[icv].type(variables(icv)->value()); ti_system_forces[icv].is_derivative(); ti_system_forces[icv].reset(); } - ti_avg_forces.reset(new colvar_grid_gradient(colvars)); - ti_count.reset(new colvar_grid_count(colvars)); - ti_avg_forces->samples = ti_count; - ti_count->has_parent_data = true; + ti_count.reset(new colvar_grid_count(colvars, grid_conf)); + ti_avg_forces.reset(new colvar_grid_gradient(colvars, ti_count)); } } @@ -884,8 +890,12 @@ int colvarbias_ti::update_system_forces(std::vector const size_t i; - if (proxy->total_forces_same_step()) { - for (i = 0; i < num_variables(); i++) { + if (cvm::debug()) { + cvm::log("TI bin for bias \"" + name + "\" = " + cvm::to_str(ti_bin) + ".\n"); + } + + for (i = 0; i < num_variables(); i++) { + if (variables(i)->is_enabled(f_cv_total_force_current_step)) { ti_bin[i] = ti_avg_forces->current_bin_scalar(i); } } @@ -894,8 +904,10 @@ int colvarbias_ti::update_system_forces(std::vector const if ((cvm::step_relative() > 0) || proxy->total_forces_same_step()) { if (ti_avg_forces->index_ok(ti_bin)) { for (i = 0; i < num_variables(); i++) { - if (variables(i)->is_enabled(f_cv_subtract_applied_force)) { + if (variables(i)->is_enabled(f_cv_subtract_applied_force) || + (cvm::proxy->total_forces_same_step() && !variables(i)->is_enabled(f_cv_external))) { // this colvar is already subtracting all applied forces + // or the "total force" is really a system force at current step ti_system_forces[i] = variables(i)->total_force(); } else { ti_system_forces[i] = variables(i)->total_force() - @@ -904,14 +916,17 @@ int colvarbias_ti::update_system_forces(std::vector const } } if (cvm::step_relative() > 0 || is_enabled(f_cvb_step_zero_data)) { + if (cvm::debug()) { + cvm::log("Accumulating TI forces for bias \"" + name + "\".\n"); + } ti_avg_forces->acc_value(ti_bin, ti_system_forces); } } } - if (!proxy->total_forces_same_step()) { - // Set the index for use in the next iteration, when total forces come in - for (i = 0; i < num_variables(); i++) { + for (i = 0; i < num_variables(); i++) { + if (!variables(i)->is_enabled(f_cv_total_force_current_step)) { + // Set the index for use in the next iteration, when total forces come in ti_bin[i] = ti_avg_forces->current_bin_scalar(i); } } diff --git a/lib/colvars/colvarbias.h b/lib/colvars/colvarbias.h index 03f93f4315..35438752a1 100644 --- a/lib/colvars/colvarbias.h +++ b/lib/colvars/colvarbias.h @@ -174,14 +174,14 @@ public: /// \param[in,out] os Output stream /// \param[in] key Keyword labeling the header block /// \param[in] header Whether this is the header of a multi-line segment vs a single line - std::ostream &write_state_data_key(std::ostream &os, std::string const &key, bool header = true); + std::ostream &write_state_data_key(std::ostream &os, std::string const &key, bool header = true) const; /// Write a keyword header for a data sequence to an unformatted stream /// \param[in,out] os Output stream /// \param[in] key Keyword labeling the header block /// \param[in] header Ignored cvm::memory_stream &write_state_data_key(cvm::memory_stream &os, std::string const &key, - bool header = true); + bool header = true) const; private: @@ -358,6 +358,9 @@ protected: /// \brief Forces exerted from the system to the associated variables std::vector ti_system_forces; + /// Grid configuration parameters (also used by grids in derived classes) + std::string grid_conf; + /// Averaged system forces std::shared_ptr ti_avg_forces; diff --git a/lib/colvars/colvarbias_abf.cpp b/lib/colvars/colvarbias_abf.cpp index 6327650863..b01e9de853 100644 --- a/lib/colvars/colvarbias_abf.cpp +++ b/lib/colvars/colvarbias_abf.cpp @@ -87,24 +87,25 @@ int colvarbias_abf::init(std::string const &conf) get_keyval(conf, "shared", shared_on, false); if (shared_on) { cvm::main()->cite_feature("Multiple-walker ABF implementation"); - if ((proxy->replica_enabled() != COLVARS_OK) || - (proxy->num_replicas() <= 1)) { - return cvm::error("Error: shared ABF requires more than one replica.", - COLVARS_INPUT_ERROR); - } - cvm::log("shared ABF will be applied among "+ - cvm::to_str(proxy->num_replicas()) + " replicas.\n"); + cvm::main()->cite_feature("Updated multiple-walker ABF implementation"); + + + // Cannot check this here because the replica communicator is obtained later + // in Gromacs + + // if ((proxy->check_replicas_enabled() != COLVARS_OK) || + // (proxy->num_replicas() <= 1)) { + // return cvm::error("Error: shared ABF requires more than one replica.", + // COLVARS_INPUT_ERROR); + // } + // cvm::log("shared ABF will be applied among "+ + // cvm::to_str(proxy->num_replicas()) + " replicas.\n"); // If shared_freq is not set, we default to output_freq get_keyval(conf, "sharedFreq", shared_freq, output_freq); if ( shared_freq && output_freq % shared_freq ) { return cvm::error("Error: outputFreq must be a multiple of sharedFreq.\n"); } - - // Allocate these at init time if possible - local_samples.reset(new colvar_grid_count(colvars)); - local_gradients.reset(new colvar_grid_gradient(colvars, local_samples)); - local_pmf.reset(new integrate_potential(colvars, local_gradients)); } // ************* checking the associated colvars ******************* @@ -124,10 +125,17 @@ int colvarbias_abf::init(std::string const &conf) colvars[i]->enable(f_cv_hide_Jacobian); } - // If any colvar is extended-system, we need to collect the extended - // system gradient - if (colvars[i]->is_enabled(f_cv_extended_Lagrangian)) + // If any colvar is extended-system (restrained, not driven external param), we are running eABF + if (colvars[i]->is_enabled(f_cv_extended_Lagrangian) + && !colvars[i]->is_enabled(f_cv_external)) { enable(f_cvb_extended); + } + + if (!colvars[i]->is_enabled(f_cv_total_force_current_step)) { + // If any colvar does not have current-step total force, then + // we can't do step 0 data + provide(f_cvb_step_zero_data, false); + } // Cannot mix and match coarse time steps with ABF because it gives // wrong total force averages - total force needs to be averaged over @@ -181,12 +189,23 @@ int colvarbias_abf::init(std::string const &conf) cvm::log("Allocating count and free energy gradient grids.\n"); } - samples.reset(new colvar_grid_count(colvars)); - gradients.reset(new colvar_grid_gradient(colvars, samples)); + { + /// Optional custom configuration string for grid parameters + std::string grid_conf; + key_lookup(conf, "grid", &grid_conf); + + samples.reset(new colvar_grid_count(colvars, grid_conf)); + } + gradients.reset(new colvar_grid_gradient(colvars, samples)); // Also use samples as template for sizes gradients->full_samples = full_samples; gradients->min_samples = min_samples; + if (shared_on) { + local_samples.reset(new colvar_grid_count(colvars, samples)); + local_gradients.reset(new colvar_grid_gradient(colvars, local_samples)); + } + // Data for eABF z-based estimator if (is_enabled(f_cvb_extended)) { get_keyval(conf, "CZARestimator", b_CZAR_estimator, true); @@ -198,11 +217,11 @@ int colvarbias_abf::init(std::string const &conf) colvarparse::parse_silent); z_bin.assign(num_variables(), 0); - z_samples.reset(new colvar_grid_count(colvars)); + z_samples.reset(new colvar_grid_count(colvars, samples)); z_samples->request_actual_value(); z_gradients.reset(new colvar_grid_gradient(colvars, z_samples)); z_gradients->request_actual_value(); - czar_gradients.reset(new colvar_grid_gradient(colvars)); + czar_gradients.reset(new colvar_grid_gradient(colvars, nullptr, samples)); } get_keyval(conf, "integrate", b_integrate, num_variables() <= 3); // Integrate for output if d<=3 @@ -216,6 +235,9 @@ int colvarbias_abf::init(std::string const &conf) if (b_CZAR_estimator) { czar_pmf.reset(new integrate_potential(colvars, czar_gradients)); } + if (shared_on) { + local_pmf.reset(new integrate_potential(colvars, local_gradients)); + } // Parameters for integrating initial (and final) gradient data get_keyval(conf, "integrateMaxIterations", integrate_iterations, 10000, colvarparse::parse_silent); get_keyval(conf, "integrateTol", integrate_tol, 1e-6, colvarparse::parse_silent); @@ -228,9 +250,9 @@ int colvarbias_abf::init(std::string const &conf) if (b_CZAR_estimator && shared_on && cvm::main()->proxy->replica_index() == 0) { // The pointers below are used for outputting CZAR data // Allocate grids for collected global data, on replica 0 only - global_z_samples.reset(new colvar_grid_count(colvars)); + global_z_samples.reset(new colvar_grid_count(colvars, samples)); global_z_gradients.reset(new colvar_grid_gradient(colvars, global_z_samples)); - global_czar_gradients.reset(new colvar_grid_gradient(colvars)); + global_czar_gradients.reset(new colvar_grid_gradient(colvars, nullptr, samples)); global_czar_pmf.reset(new integrate_potential(colvars, global_czar_gradients)); } else { // otherwise they are just aliases for the local CZAR grids @@ -244,10 +266,10 @@ int colvarbias_abf::init(std::string const &conf) // This used to be only if "shared" was defined, // but now we allow calling share externally (e.g. from Tcl). if (b_CZAR_estimator) { - z_samples_in.reset(new colvar_grid_count(colvars)); + z_samples_in.reset(new colvar_grid_count(colvars, samples)); z_gradients_in.reset(new colvar_grid_gradient(colvars, z_samples_in)); } - last_samples.reset(new colvar_grid_count(colvars)); + last_samples.reset(new colvar_grid_count(colvars, samples)); last_gradients.reset(new colvar_grid_gradient(colvars, last_samples)); // Any data collected after now is new for shared ABF purposes shared_last_step = cvm::step_absolute(); @@ -315,27 +337,36 @@ int colvarbias_abf::update() size_t i; for (i = 0; i < num_variables(); i++) { bin[i] = samples->current_bin_scalar(i); + if (colvars[i]->is_enabled(f_cv_total_force_current_step)) { + force_bin[i] = bin[i]; + } } - // *********************************************************** // ****** ABF Part I: update the FE gradient estimate ****** // *********************************************************** - if (cvm::proxy->total_forces_same_step()) { - // e.g. in LAMMPS, total forces are current - force_bin = bin; + // Share data first, so that 2d/3d PMF is refreshed using new data for mw-pABF. + // shared_on can be true with shared_freq 0 if we are sharing via script + if (shared_on && shared_freq && + shared_last_step >= 0 && // we have already collected some data + cvm::step_absolute() > shared_last_step && // time has passed since the last sharing timestep + // (avoid re-sharing at last and first ts of successive run statements) + cvm::step_absolute() % shared_freq == 0) { + // Share gradients and samples for shared ABF. + replica_share(); } if (can_accumulate_data() && is_enabled(f_cvb_history_dependent)) { if (cvm::step_relative() > 0 || cvm::proxy->total_forces_same_step()) { + // Note: this will skip step 0 data when available in some cases (extended system), + // but not doing so would make the code more complex if (samples->index_ok(force_bin)) { // Only if requested and within bounds of the grid... - // get total forces (lagging by 1 timestep) from colvars - // and subtract previous ABF force if necessary + // get total force and subtract previous ABF force if necessary update_system_force(); gradients->acc_force(force_bin, system_force); @@ -368,21 +399,11 @@ int colvarbias_abf::update() } } - if (!(cvm::proxy->total_forces_same_step())) { - // e.g. in NAMD, total forces will be available for next timestep - // hence we store the current colvar bin - force_bin = bin; - } + // In some cases, total forces are stored for next timestep + // hence we store the current colvar bin - this is overwritten on a per-colvar basis + // at the top of update() + force_bin = bin; - // Share data after force sample is collected for this time step - // shared_on can be true with shared_freq 0 if we are sharing via script - if (shared_on && shared_freq && - cvm::step_absolute() > shared_last_step && // time has passed since the last sharing timestep - // (avoid re-sharing at last and first ts of successive run statements) - cvm::step_absolute() % shared_freq == 0) { - // Share gradients and samples for shared ABF. - replica_share(); - } // ****************************************************************** // ****** ABF Part II: calculate and apply the biasing force ****** @@ -452,10 +473,13 @@ int colvarbias_abf::update_system_force() // System force from atomic forces (or extended Lagrangian if applicable) for (i = 0; i < num_variables(); i++) { - if (colvars[i]->is_enabled(f_cv_subtract_applied_force)) { + if (colvars[i]->is_enabled(f_cv_subtract_applied_force) + || colvars[i]->is_enabled(f_cv_total_force_current_step)) { // this colvar is already subtracting the ABF force + // or the "total force" is from current step and cannot possibly contain Colvars biases system_force[i] = colvars[i]->total_force().real_value; } else { + // Subtract previous step's bias force from previous step's total force system_force[i] = colvars[i]->total_force().real_value - colvar_forces[i].real_value; } @@ -525,7 +549,7 @@ int colvarbias_abf::replica_share() { colvarproxy *proxy = cvm::main()->proxy; - if (proxy->replica_enabled() != COLVARS_OK) { + if (proxy->check_replicas_enabled() != COLVARS_OK) { cvm::error("Error: shared ABF: No replicas.\n"); return COLVARS_ERROR; } @@ -542,7 +566,7 @@ int colvarbias_abf::replica_share() { if (!local_samples) { // We arrive here if sharing has just been enabled by a script // in which case local arrays have not been initialized yet - local_samples.reset(new colvar_grid_count(colvars)); + local_samples.reset(new colvar_grid_count(colvars, samples)); local_gradients.reset(new colvar_grid_gradient(colvars, local_samples)); local_pmf.reset(new integrate_potential(colvars, local_gradients)); } @@ -662,9 +686,9 @@ int colvarbias_abf::replica_share_CZAR() { // We arrive here if sharing has just been enabled by a script // Allocate grids for collective data, on replica 0 only // overriding CZAR grids that are equal to local ones by default - global_z_samples.reset(new colvar_grid_count(colvars)); + global_z_samples.reset(new colvar_grid_count(colvars, samples)); global_z_gradients.reset(new colvar_grid_gradient(colvars, global_z_samples)); - global_czar_gradients.reset(new colvar_grid_gradient(colvars)); + global_czar_gradients.reset(new colvar_grid_gradient(colvars, nullptr, samples)); global_czar_pmf.reset(new integrate_potential(colvars, global_czar_gradients)); } diff --git a/lib/colvars/colvarbias_histogram.cpp b/lib/colvars/colvarbias_histogram.cpp index 98de275304..aab2c8f593 100644 --- a/lib/colvars/colvarbias_histogram.cpp +++ b/lib/colvars/colvarbias_histogram.cpp @@ -98,10 +98,10 @@ int colvarbias_histogram::init(std::string const &conf) } { - std::string grid_conf; - if (key_lookup(conf, "histogramGrid", &grid_conf)) { + if (key_lookup(conf, "histogramGrid", &grid_conf) || + key_lookup(conf, "grid", &grid_conf)) { grid->parse_params(grid_conf); - grid->check_keywords(grid_conf, "histogramGrid"); + grid->check_keywords(grid_conf, "grid"); } } diff --git a/lib/colvars/colvarbias_histogram.h b/lib/colvars/colvarbias_histogram.h index 2c6ee84d1f..ed3ee346a6 100644 --- a/lib/colvars/colvarbias_histogram.h +++ b/lib/colvars/colvarbias_histogram.h @@ -38,6 +38,7 @@ protected: /// n-dim histogram colvar_grid_scalar *grid; + std::string grid_conf; std::vector bin; std::string out_name, out_name_dx; diff --git a/lib/colvars/colvarbias_histogram_reweight_amd.cpp b/lib/colvars/colvarbias_histogram_reweight_amd.cpp index de2f6d9b8a..3c31e175f2 100644 --- a/lib/colvars/colvarbias_histogram_reweight_amd.cpp +++ b/lib/colvars/colvarbias_histogram_reweight_amd.cpp @@ -11,43 +11,9 @@ #include "colvarproxy.h" #include "colvars_memstream.h" -colvarbias_reweightaMD::colvarbias_reweightaMD(char const *key) - : colvarbias_histogram(key), grid_count(NULL), grid_dV(NULL), - grid_dV_square(NULL), pmf_grid_exp_avg(NULL), pmf_grid_cumulant(NULL), - grad_grid_exp_avg(NULL), grad_grid_cumulant(NULL) -{ -} +colvarbias_reweightaMD::colvarbias_reweightaMD(char const *key) : colvarbias_histogram(key) {} -colvarbias_reweightaMD::~colvarbias_reweightaMD() { - if (grid_dV) { - delete grid_dV; - grid_dV = NULL; - } - if (grid_dV_square) { - delete grid_dV_square; - grid_dV_square = NULL; - } - if (grid_count) { - delete grid_count; - grid_count = NULL; - } - if (pmf_grid_exp_avg) { - delete pmf_grid_exp_avg; - pmf_grid_exp_avg = NULL; - } - if (pmf_grid_cumulant) { - delete pmf_grid_cumulant; - pmf_grid_cumulant = NULL; - } - if (grad_grid_exp_avg) { - delete grad_grid_exp_avg; - grad_grid_exp_avg = NULL; - } - if (grad_grid_cumulant) { - delete grad_grid_cumulant; - grad_grid_cumulant = NULL; - } -} +colvarbias_reweightaMD::~colvarbias_reweightaMD() {} int colvarbias_reweightaMD::init(std::string const &conf) { if (cvm::proxy->accelMD_enabled() == false) { @@ -60,21 +26,21 @@ int colvarbias_reweightaMD::init(std::string const &conf) { get_keyval(conf, "WritePMFGradients", b_write_gradients, true); get_keyval(conf, "historyFreq", history_freq, 0); b_history_files = (history_freq > 0); - grid_count = new colvar_grid_scalar(colvars); + grid_count.reset(new colvar_grid_scalar(colvars, nullptr, false, grid_conf)); grid_count->request_actual_value(); grid->request_actual_value(); - pmf_grid_exp_avg = new colvar_grid_scalar(colvars); + pmf_grid_exp_avg.reset(new colvar_grid_scalar(colvars, grid_count)); if (b_write_gradients) { - grad_grid_exp_avg = new colvar_grid_gradient(colvars); + grad_grid_exp_avg.reset(new colvar_grid_gradient(colvars, nullptr, grid_count)); } if (b_use_cumulant_expansion) { - grid_dV = new colvar_grid_scalar(colvars); - grid_dV_square = new colvar_grid_scalar(colvars); - pmf_grid_cumulant = new colvar_grid_scalar(colvars); + grid_dV.reset(new colvar_grid_scalar(colvars, grid_count)); + grid_dV_square.reset(new colvar_grid_scalar(colvars, grid_count)); + pmf_grid_cumulant.reset(new colvar_grid_scalar(colvars, grid_count)); grid_dV->request_actual_value(); grid_dV_square->request_actual_value(); if (b_write_gradients) { - grad_grid_cumulant = new colvar_grid_gradient(colvars); + grad_grid_cumulant.reset(new colvar_grid_gradient(colvars, nullptr, grid_count)); } } previous_bin.assign(num_variables(), -1); @@ -193,7 +159,7 @@ int colvarbias_reweightaMD::write_exponential_reweighted_pmf( pmf_grid_exp_avg->set_value(i, tmp / count); } } - hist_to_pmf(pmf_grid_exp_avg, grid_count); + hist_to_pmf(pmf_grid_exp_avg.get(), grid_count.get()); pmf_grid_exp_avg->write_multicol(pmf_grid_os); if (!keep_open) { cvm::proxy->close_output_stream(output_pmf); @@ -231,9 +197,9 @@ int colvarbias_reweightaMD::write_cumulant_expansion_pmf( if (!pmf_grid_cumulant_os) { return COLVARS_FILE_ERROR; } - compute_cumulant_expansion_factor(grid_dV, grid_dV_square, - grid_count, pmf_grid_cumulant); - hist_to_pmf(pmf_grid_cumulant, grid_count); + compute_cumulant_expansion_factor(grid_dV.get(), grid_dV_square.get(), + grid_count.get(), pmf_grid_cumulant.get()); + hist_to_pmf(pmf_grid_cumulant.get(), grid_count.get()); pmf_grid_cumulant->write_multicol(pmf_grid_cumulant_os); if (!keep_open) { cvm::proxy->close_output_stream(output_pmf); diff --git a/lib/colvars/colvarbias_histogram_reweight_amd.h b/lib/colvars/colvarbias_histogram_reweight_amd.h index 43759b3bde..3e3bdede26 100644 --- a/lib/colvars/colvarbias_histogram_reweight_amd.h +++ b/lib/colvars/colvarbias_histogram_reweight_amd.h @@ -68,9 +68,9 @@ protected: /// Use cumulant expansion to second order? bool b_use_cumulant_expansion; - colvar_grid_scalar* grid_count; - colvar_grid_scalar* grid_dV; - colvar_grid_scalar* grid_dV_square; + std::shared_ptr grid_count; + std::unique_ptr grid_dV; + std::unique_ptr grid_dV_square; /// Number of timesteps between recording data in history files (if non-zero) size_t history_freq; @@ -90,10 +90,10 @@ protected: private: /// temporary grids for evaluating PMFs - colvar_grid_scalar *pmf_grid_exp_avg; - colvar_grid_scalar *pmf_grid_cumulant; - colvar_grid_gradient *grad_grid_exp_avg; - colvar_grid_gradient *grad_grid_cumulant; + std::unique_ptr pmf_grid_exp_avg; + std::unique_ptr pmf_grid_cumulant; + std::unique_ptr grad_grid_exp_avg; + std::unique_ptr grad_grid_cumulant; }; #endif // COLVARBIAS_HISTOGRAM_REWEIGHT_AMD diff --git a/lib/colvars/colvarbias_meta.cpp b/lib/colvars/colvarbias_meta.cpp index 905cd17883..1131c88ec5 100644 --- a/lib/colvars/colvarbias_meta.cpp +++ b/lib/colvars/colvarbias_meta.cpp @@ -11,27 +11,10 @@ #include #include -// Define function to get the absolute path of a replica file -#if defined(_WIN32) && !defined(__CYGWIN__) -#include -#define GETCWD(BUF, SIZE) ::_getcwd(BUF, SIZE) -#define PATHSEP "\\" -#else -#include -#define GETCWD(BUF, SIZE) ::getcwd(BUF, SIZE) -#define PATHSEP "/" -#endif - -#ifdef __cpp_lib_filesystem -// When std::filesystem is available, use it -#include -#undef GETCWD -#define GETCWD(BUF, SIZE) (std::filesystem::current_path().string().c_str()) -#endif - #include "colvarmodule.h" #include "colvarproxy.h" #include "colvar.h" +#include "colvargrid.h" #include "colvarbias_meta.h" #include "colvars_memstream.h" @@ -49,8 +32,6 @@ colvarbias_meta::colvarbias_meta(char const *key) use_grids = true; grids_freq = 0; rebin_grids = false; - hills_energy = NULL; - hills_energy_gradients = NULL; dump_fes = true; keep_hills = false; @@ -161,9 +142,9 @@ int colvarbias_meta::init(std::string const &conf) get_keyval(conf, "keepHills", keep_hills, keep_hills); get_keyval(conf, "keepFreeEnergyFiles", dump_fes_save, dump_fes_save); - if (hills_energy == NULL) { - hills_energy = new colvar_grid_scalar(colvars); - hills_energy_gradients = new colvar_grid_gradient(colvars); + if (!hills_energy) { + hills_energy.reset(new colvar_grid_scalar(colvars, nullptr, false, grid_conf)); + hills_energy_gradients.reset(new colvar_grid_gradient(colvars, nullptr, hills_energy)); } } else { @@ -209,7 +190,7 @@ int colvarbias_meta::init_replicas_params(std::string const &conf) get_keyval(conf, "replicaID", replica_id, replica_id); if (!replica_id.size()) { - if (proxy->replica_enabled() == COLVARS_OK) { + if (proxy->check_replicas_enabled() == COLVARS_OK) { // Obtain replicaID from the communicator replica_id = cvm::to_str(proxy->replica_index()); cvm::log("Setting replicaID from communication layer: replicaID = "+ @@ -272,7 +253,6 @@ int colvarbias_meta::init_ebmeta_params(std::string const &conf) { int error_code = COLVARS_OK; // for ebmeta - target_dist = NULL; get_keyval(conf, "ebMeta", ebmeta, false); if(ebmeta){ cvm::main()->cite_feature("Ensemble-biased metadynamics (ebMetaD)"); @@ -283,7 +263,7 @@ int colvarbias_meta::init_ebmeta_params(std::string const &conf) "targetDistFile accordingly.\n", COLVARS_INPUT_ERROR); } - target_dist = new colvar_grid_scalar(); + target_dist.reset(new colvar_grid_scalar()); error_code |= target_dist->init_from_colvars(colvars); std::string target_dist_file; get_keyval(conf, "targetDistFile", target_dist_file); @@ -336,33 +316,15 @@ colvarbias_meta::~colvarbias_meta() { colvarbias_meta::clear_state_data(); colvarproxy *proxy = cvm::main()->proxy; - proxy->close_output_stream(replica_hills_file); - proxy->close_output_stream(hills_traj_file_name()); - - if (target_dist) { - delete target_dist; - target_dist = NULL; - } } int colvarbias_meta::clear_state_data() { - if (hills_energy) { - delete hills_energy; - hills_energy = NULL; - } - - if (hills_energy_gradients) { - delete hills_energy_gradients; - hills_energy_gradients = NULL; - } - hills.clear(); hills_off_grid.clear(); - return COLVARS_OK; } @@ -451,8 +413,11 @@ int colvarbias_meta::update() error_code |= update_grid_params(); // add new biasing energy/forces error_code |= update_bias(); - // update grid content to reflect new bias - error_code |= update_grid_data(); + + if (use_grids) { + // update grid content to reflect new bias + error_code |= update_grid_data(); + } if (comm != single_replica && (cvm::step_absolute() % replica_update_freq) == 0) { @@ -539,9 +504,9 @@ int colvarbias_meta::update_grid_params() // map everything into new grids colvar_grid_scalar *new_hills_energy = - new colvar_grid_scalar(*hills_energy); + new colvar_grid_scalar(*hills_energy); colvar_grid_gradient *new_hills_energy_gradients = - new colvar_grid_gradient(*hills_energy_gradients); + new colvar_grid_gradient(*hills_energy_gradients); // supply new boundaries to the new grids @@ -556,10 +521,8 @@ int colvarbias_meta::update_grid_params() new_hills_energy->map_grid(*hills_energy); new_hills_energy_gradients->map_grid(*hills_energy_gradients); - delete hills_energy; - delete hills_energy_gradients; - hills_energy = new_hills_energy; - hills_energy_gradients = new_hills_energy_gradients; + hills_energy.reset(new_hills_energy); + hills_energy_gradients.reset(new_hills_energy_gradients); curr_bin = hills_energy->get_colvars_index(); if (cvm::debug()) @@ -641,8 +604,7 @@ int colvarbias_meta::update_grid_data() { if ((cvm::step_absolute() % grids_freq) == 0) { // map the most recent gaussians to the grids - project_hills(new_hills_begin, hills.end(), - hills_energy, hills_energy_gradients); + project_hills(new_hills_begin, hills.end(), hills_energy.get(), hills_energy_gradients.get()); new_hills_begin = hills.end(); // TODO: we may want to condense all into one replicas array, @@ -651,8 +613,8 @@ int colvarbias_meta::update_grid_data() for (size_t ir = 0; ir < replicas.size(); ir++) { replicas[ir]->project_hills(replicas[ir]->new_hills_begin, replicas[ir]->hills.end(), - replicas[ir]->hills_energy, - replicas[ir]->hills_energy_gradients); + replicas[ir]->hills_energy.get(), + replicas[ir]->hills_energy_gradients.get()); replicas[ir]->new_hills_begin = replicas[ir]->hills.end(); } } @@ -670,11 +632,20 @@ int colvarbias_meta::calc_energy(std::vector const *values) replicas[ir]->bias_energy = 0.0; } - std::vector const curr_bin = values ? - hills_energy->get_colvars_index(*values) : - hills_energy->get_colvars_index(); + bool index_ok = false; + std::vector curr_bin; - if (hills_energy->index_ok(curr_bin)) { + if (use_grids) { + + curr_bin = values ? + hills_energy->get_colvars_index(*values) : + hills_energy->get_colvars_index(); + + index_ok = hills_energy->index_ok(curr_bin); + + } + + if ( index_ok ) { // index is within the grid: get the energy from there for (ir = 0; ir < replicas.size(); ir++) { @@ -723,11 +694,20 @@ int colvarbias_meta::calc_forces(std::vector const *values) } } - std::vector const curr_bin = values ? - hills_energy->get_colvars_index(*values) : - hills_energy->get_colvars_index(); + bool index_ok = false; + std::vector curr_bin; - if (hills_energy->index_ok(curr_bin)) { + if (use_grids) { + + curr_bin = values ? + hills_energy->get_colvars_index(*values) : + hills_energy->get_colvars_index(); + + index_ok = hills_energy->index_ok(curr_bin); + + } + + if ( index_ok ) { for (ir = 0; ir < replicas.size(); ir++) { cvm::real const *f = &(replicas[ir]->hills_energy_gradients->value(curr_bin)); for (ic = 0; ic < num_variables(); ic++) { @@ -959,8 +939,7 @@ void colvarbias_meta::project_hills(colvarbias_meta::hill_iter h_first, void colvarbias_meta::recount_hills_off_grid(colvarbias_meta::hill_iter h_first, - colvarbias_meta::hill_iter h_last, - colvar_grid_scalar * /* he */) + colvarbias_meta::hill_iter h_last) { hills_off_grid.clear(); @@ -1078,9 +1057,13 @@ int colvarbias_meta::update_replicas_registry() (replicas.back())->comm = multiple_replicas; if (use_grids) { - (replicas.back())->hills_energy = new colvar_grid_scalar(colvars); - (replicas.back())->hills_energy_gradients = new colvar_grid_gradient(colvars); + (replicas.back()) + ->hills_energy.reset(new colvar_grid_scalar(colvars, hills_energy)); + (replicas.back()) + ->hills_energy_gradients.reset( + new colvar_grid_gradient(colvars, nullptr, hills_energy)); } + if (is_enabled(f_cvb_calc_ti_samples)) { (replicas.back())->enable(f_cvb_calc_ti_samples); (replicas.back())->colvarbias_ti::init_grids(); @@ -1336,34 +1319,40 @@ template IST &colvarbias_meta::read_state_data_template_(IST &is) { if (use_grids) { - colvar_grid_scalar *hills_energy_backup = NULL; - colvar_grid_gradient *hills_energy_gradients_backup = NULL; + std::shared_ptr hills_energy_backup; + std::shared_ptr hills_energy_gradients_backup; - if (has_data) { + bool const need_backup = has_data; + + if (need_backup) { if (cvm::debug()) - cvm::log("Backupping grids for metadynamics bias \""+ - this->name+"\""+ - ((comm != single_replica) ? ", replica \""+replica_id+"\"" : "")+".\n"); - hills_energy_backup = hills_energy; - hills_energy_gradients_backup = hills_energy_gradients; - hills_energy = new colvar_grid_scalar(colvars); - hills_energy_gradients = new colvar_grid_gradient(colvars); + cvm::log("Backing up grids for metadynamics bias \"" + this->name + "\"" + + ((comm != single_replica) ? ", replica \"" + replica_id + "\"" : "") + ".\n"); + + hills_energy_backup = std::move(hills_energy); + hills_energy_gradients_backup = std::move(hills_energy_gradients); + hills_energy.reset(new colvar_grid_scalar(colvars, hills_energy)); + hills_energy_gradients.reset(new colvar_grid_gradient(colvars, nullptr, hills_energy)); } - read_grid_data_template_(is, "hills_energy", hills_energy, - hills_energy_backup); + read_grid_data_template_(is, "hills_energy", hills_energy.get(), + hills_energy_backup.get()); - read_grid_data_template_( - is, "hills_energy_gradients", hills_energy_gradients, hills_energy_gradients_backup); + read_grid_data_template_(is, "hills_energy_gradients", + hills_energy_gradients.get(), + hills_energy_gradients_backup.get()); if (is) { cvm::log(" successfully read the biasing potential and its gradients from grids.\n"); - if (hills_energy_backup != nullptr) { - // Now that we have successfully updated the grids, delete the backup copies - delete hills_energy_backup; - delete hills_energy_gradients_backup; - } } else { + if (need_backup) { + if (cvm::debug()) + cvm::log("Restoring grids from backup for metadynamics bias \"" + this->name + "\"" + + ((comm != single_replica) ? ", replica \"" + replica_id + "\"" : "") + ".\n"); + // Restoring content from original grid + hills_energy->copy_grid(*hills_energy_backup); + hills_energy_gradients->copy_grid(*hills_energy_gradients_backup); + } return is; } } @@ -1451,10 +1440,12 @@ void colvarbias_meta::rebin_grids_after_restart() // read from the configuration file), and project onto them the // grids just read from the restart file - colvar_grid_scalar *new_hills_energy = - new colvar_grid_scalar(colvars); - colvar_grid_gradient *new_hills_energy_gradients = - new colvar_grid_gradient(colvars); + // Create new grids based on the configuration parameters, because reading from the state + // file automatically sets the old parameters + std::shared_ptr new_hills_energy( + new colvar_grid_scalar(colvars, nullptr, false, grid_conf)); + std::shared_ptr new_hills_energy_gradients( + new colvar_grid_gradient(colvars, nullptr, new_hills_energy)); if (cvm::debug()) { std::ostringstream tmp_os; @@ -1468,9 +1459,9 @@ void colvarbias_meta::rebin_grids_after_restart() if (restart_keep_hills && !hills.empty()) { // if there are hills, recompute the new grids from them cvm::log("Rebinning the energy and forces grids from "+ - cvm::to_str(hills.size())+" hills (this may take a while)...\n"); - project_hills(hills.begin(), hills.end(), - new_hills_energy, new_hills_energy_gradients, true); + cvm::to_str(hills.size())+" hills (this may take a bit)...\n"); + project_hills(hills.begin(), hills.end(), new_hills_energy.get(), + new_hills_energy_gradients.get(), true); cvm::log("rebinning done.\n"); } else { @@ -1481,15 +1472,13 @@ void colvarbias_meta::rebin_grids_after_restart() new_hills_energy_gradients->map_grid(*hills_energy_gradients); } - delete hills_energy; - delete hills_energy_gradients; - hills_energy = new_hills_energy; - hills_energy_gradients = new_hills_energy_gradients; + hills_energy = std::move(new_hills_energy); + hills_energy_gradients = std::move(new_hills_energy_gradients); // assuming that some boundaries have expanded, eliminate those // off-grid hills that aren't necessary any more if (!hills.empty()) - recount_hills_off_grid(hills.begin(), hills.end(), hills_energy); + recount_hills_off_grid(hills.begin(), hills.end()); } } @@ -1718,29 +1707,17 @@ int colvarbias_meta::setup_output() if (comm == multiple_replicas) { - // TODO: one may want to specify the path manually for intricated filesystems? - char *pwd = new char[3001]; - if (GETCWD(pwd, 3000) == nullptr) { - if (pwd != nullptr) { // - delete[] pwd; - } - return cvm::error("Error: cannot get the path of the current working directory.\n", - COLVARS_BUG_ERROR); - } - + auto const pwd = cvm::main()->proxy->get_current_work_dir(); replica_list_file = - (std::string(pwd)+std::string(PATHSEP)+ - this->name+"."+replica_id+".files.txt"); + cvm::main()->proxy->join_paths(pwd, this->name + "." + replica_id + ".files.txt"); // replica_hills_file and replica_state_file are those written // by the current replica; within the mirror biases, they are // those by another replica - replica_hills_file = - (std::string(pwd)+std::string(PATHSEP)+ - cvm::output_prefix()+".colvars."+this->name+"."+replica_id+".hills"); - replica_state_file = - (std::string(pwd)+std::string(PATHSEP)+ - cvm::output_prefix()+".colvars."+this->name+"."+replica_id+".state"); - delete[] pwd; + replica_hills_file = cvm::main()->proxy->join_paths( + pwd, cvm::output_prefix() + ".colvars." + this->name + "." + replica_id + ".hills"); + + replica_state_file = cvm::main()->proxy->join_paths( + pwd, cvm::output_prefix() + ".colvars." + this->name + "." + replica_id + ".state"); // now register this replica @@ -1842,7 +1819,7 @@ template OST &colvarbias_meta::write_state_data_template_(OST &os // this is a very good time to project hills, if you haven't done // it already! - project_hills(new_hills_begin, hills.end(), hills_energy, hills_energy_gradients); + project_hills(new_hills_begin, hills.end(), hills_energy.get(), hills_energy_gradients.get()); new_hills_begin = hills.end(); // write down the grids to the restart file diff --git a/lib/colvars/colvarbias_meta.h b/lib/colvars/colvarbias_meta.h index a765a60c71..57aa21ed6b 100644 --- a/lib/colvars/colvarbias_meta.h +++ b/lib/colvars/colvarbias_meta.h @@ -10,12 +10,16 @@ #ifndef COLVARBIAS_META_H #define COLVARBIAS_META_H -#include -#include #include +#include +#include +#include #include "colvarbias.h" -#include "colvargrid.h" + +class colvar_grid_scalar; +class colvar_grid_gradient; + /// Metadynamics bias (implementation of \link colvarbias \endlink) @@ -123,8 +127,7 @@ protected: hill_iter new_hills_off_grid_begin; /// Regenerate the hills_off_grid list - void recount_hills_off_grid(hill_iter h_first, hill_iter h_last, - colvar_grid_scalar *ge); + void recount_hills_off_grid(hill_iter h_first, hill_iter h_last); template OST &write_hill_template_(OST &os, colvarbias_meta::hill const &h); @@ -211,7 +214,7 @@ protected: bool ebmeta; /// Target distribution for EBmeta - colvar_grid_scalar* target_dist; + std::unique_ptr target_dist; /// Number of equilibration steps for EBmeta cvm::step_number ebmeta_equil_steps; @@ -223,15 +226,14 @@ protected: bool safely_read_restart; /// Hill energy, cached on a grid - colvar_grid_scalar *hills_energy; + std::shared_ptr hills_energy; /// Hill forces, cached on a grid - colvar_grid_gradient *hills_energy_gradients; + std::shared_ptr hills_energy_gradients; - /// \brief Project the selected hills onto grids - void project_hills(hill_iter h_first, hill_iter h_last, - colvar_grid_scalar *ge, colvar_grid_gradient *gf, - bool print_progress = false); + /// Project the selected hills onto grids + void project_hills(hill_iter h_first, hill_iter h_last, colvar_grid_scalar *ge, + colvar_grid_gradient *gf, bool print_progress = false); // Multiple Replicas variables and functions diff --git a/lib/colvars/colvarbias_opes.cpp b/lib/colvars/colvarbias_opes.cpp new file mode 100644 index 0000000000..9caeb967e0 --- /dev/null +++ b/lib/colvars/colvarbias_opes.cpp @@ -0,0 +1,1996 @@ +// This code is mainly adapted from the PLUMED opes module, which uses the +// LGPLv3 license as shown below: +/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Copyright (c) 2020-2021 of Michele Invernizzi. + + This file is part of the OPES plumed module. + + The OPES plumed module is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + The OPES plumed module is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with plumed. If not, see . ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ + +#include "colvarbias_opes.h" +#include "colvarbias.h" +#include "colvardeps.h" +#include "colvarproxy.h" +#include "colvars_memstream.h" +#include "colvargrid.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +colvarbias_opes::colvarbias_opes(char const *key): + colvarbias(key), m_kbt(0), m_barrier(0), m_biasfactor(0), + m_bias_prefactor(0), m_temperature(0), + m_pace(0), m_adaptive_sigma_stride(0), + m_adaptive_counter(0), m_counter(1), + m_compression_threshold(0), m_compression_threshold2(0), + m_adaptive_sigma(false), m_fixed_sigma(false), + m_no_zed(false), m_nlist(false), m_recursive_merge(true), + m_nlist_param(2, 0), m_epsilon(0), m_sum_weights(0), + m_sum_weights2(0), m_cutoff(0), m_cutoff2(0), + m_zed(1), m_old_kdenorm(0), m_kdenorm(0), + m_val_at_cutoff(0), m_nlist_center(0), m_nlist_index(0), + m_nlist_steps(0), m_nlist_update(false), + m_nlist_pace_reset(false), m_nker(0), m_calc_work(false), + m_work(0), comm(single_replica), m_num_walkers(1), + m_num_threads(1), m_nlker(0), m_traj_output_frequency(0), + m_traj_line(traj_line{0}), m_is_first_step(true), + m_pmf_grid_on(false), m_reweight_grid(nullptr), + m_pmf_grid(nullptr), m_pmf_hist_freq(0), m_pmf_shared(true), + m_explore(false), m_inf_biasfactor(false) +{ +#ifdef OPES_THREADING + provide(f_cvb_smp, cvm::proxy->get_smp_mode() == colvarproxy_smp::smp_mode_t::inner_loop); + if (is_available(f_cv_smp)){ + enable(f_cvb_smp); // Enabled by default + } +#endif +} + +int colvarbias_opes::init(const std::string& conf) { + int error_code = colvarbias::init(conf); + enable(f_cvb_scalar_variables); + get_keyval_feature(this, conf, "applyBias", f_cvb_apply_force, true); + m_temperature = cvm::proxy->target_temperature(); + m_kbt = m_temperature * cvm::proxy->boltzmann(); + get_keyval(conf, "newHillFrequency", m_pace); + get_keyval(conf, "barrier", m_barrier); + get_keyval(conf, "explore", m_explore, false); + if (m_barrier < 0) { + return cvm::error("the barrier should be greater than zero", COLVARS_INPUT_ERROR); + } + std::string biasfactor_str; + get_keyval(conf, "biasfactor", biasfactor_str); + if ((cvm::proxy->target_temperature() == 0.0) && cvm::proxy->simulation_running()) { + cvm::log("WARNING: OPES should not be run without a thermostat or at 0 Kelvin!\n"); + } + m_biasfactor = m_barrier / m_kbt; + m_inf_biasfactor = biasfactor_str == "inf" || biasfactor_str == "INF"; + if (m_inf_biasfactor) { + m_biasfactor = std::numeric_limits::infinity(); + m_bias_prefactor = 1; + if (m_explore) { + return cvm::error("biasfactor cannot be infinity in the explore mode."); + } + } else { + if (biasfactor_str.size() > 0) { + try { + m_biasfactor = std::stod(biasfactor_str); + } catch (const std::exception& e) { + return cvm::error(e.what(), COLVARS_INPUT_ERROR); + } + } + if (m_biasfactor <= 1.0) { + return cvm::error("biasfactor must be greater than one (use \"inf\" for uniform target)"); + } + m_bias_prefactor = 1 - 1.0 / m_biasfactor; + } + if (m_explore) { + m_bias_prefactor = m_biasfactor - 1; + } + get_keyval(conf, "adaptiveSigma", m_adaptive_sigma, false); + m_sigma0.resize(num_variables()); + get_keyval(conf, "gaussianSigma", m_sigma0, std::vector(num_variables())); + m_av_cv.assign(num_variables(), 0); + m_av_M2.assign(num_variables(), 0); + if (m_adaptive_sigma) { + get_keyval(conf, "adaptiveSigmaStride", m_adaptive_sigma_stride, 0); + if (m_inf_biasfactor) { + return cvm::error("cannot use infinite biasfactor with adaptive sigma", + COLVARS_INPUT_ERROR); + } + if (m_adaptive_sigma_stride == 0) { + m_adaptive_sigma_stride = m_pace * 10; + } + if (m_adaptive_sigma_stride < m_pace) { + return cvm::error("It is better to choose an adaptiveSigmaStride >= newHillFrequency.\n", COLVARS_INPUT_ERROR); + } + } else { + if (m_sigma0.size() != num_variables()) { + return cvm::error("number of sigma parameters does not match the number of variables", + COLVARS_INPUT_ERROR); + } + if (m_explore) { + for (size_t i = 0; i < num_variables(); ++i) { + m_sigma0[i] *= std::sqrt(m_biasfactor); + } + } + } + get_keyval(conf, "gaussianSigmaMin", m_sigma_min); + if ((m_sigma_min.size() != 0) && (m_sigma_min.size() != num_variables())) { + return cvm::error("incorrect number of parameters of gaussianSigmaMin"); + } + if (m_sigma_min.size() > 0 && !m_adaptive_sigma) { + for (size_t i = 0; i < num_variables(); ++i) { + if (m_sigma_min[i] > m_sigma0[i]) { + return cvm::error("gaussianSigmaMin of variable " + cvm::to_str(i) + " should be smaller than sigma"); + } + } + } + get_keyval(conf, "epsilon", m_epsilon, std::exp(-m_barrier/m_bias_prefactor/m_kbt)); + if (m_epsilon <= 0) { + return cvm::error("you must choose a value of epsilon greater than zero"); + } + m_sum_weights = std::pow(m_epsilon, m_bias_prefactor); + m_sum_weights2 = m_sum_weights * m_sum_weights; + if (m_explore) { + get_keyval(conf, "kernelCutoff", m_cutoff, std::sqrt(2.0*m_barrier/m_kbt)); + } else { + get_keyval(conf, "kernelCutoff", m_cutoff, std::sqrt(2.0*m_barrier/m_bias_prefactor/m_kbt)); + } + if (m_cutoff <= 0) { + return cvm::error("you must choose a value of kernelCutoff greater than zero"); + } + m_cutoff2 = m_cutoff * m_cutoff; + m_val_at_cutoff = std::exp(-0.5 * m_cutoff2); + get_keyval(conf, "compressionThreshold", m_compression_threshold, 1); + if (m_compression_threshold != 0) { + if (m_compression_threshold < 0 || m_compression_threshold > m_cutoff) { + return cvm::error("compressionThreshold cannot be smaller than 0 or larger than kernelCutoff", COLVARS_INPUT_ERROR); + } + } + m_compression_threshold2 = m_compression_threshold * m_compression_threshold; + get_keyval(conf, "neighborList", m_nlist, false); + if (m_nlist) { + get_keyval(conf, "neighborListNewHillReset", m_nlist_pace_reset, false); + std::vector nlist_param; + get_keyval(conf, "neighborListParameters", nlist_param, std::vector()); + if (nlist_param.empty()) { + m_nlist_param[0] = 3.0; //*cutoff2_ -> max distance of neighbors + m_nlist_param[1] = 0.5; //*nlist_dev2_[i] -> condition for rebuilding + } else { + if (nlist_param.size() != 2) { + return cvm::error("two cutoff parameters are needed for the neighbor list", COLVARS_INPUT_ERROR); + } + if (nlist_param[0] <= 1.0) { + return cvm::error("the first of neighborListParam must be greater than 1.0. The smaller the first, the smaller should be the second as well", COLVARS_INPUT_ERROR); + } + const cvm::real min_PARAM_1 = (1.-1./std::sqrt(nlist_param[0]))+0.16; + if (nlist_param[1] <= 0) { + return cvm::error("the second of neighborListParam must be greater than 0", COLVARS_INPUT_ERROR); + } + if (nlist_param[1] > min_PARAM_1) { + return cvm::error("the second of neighborListParam must be smaller to avoid systematic errors. Largest suggested value is: 1.16-1/sqrt(param_0) = " + cvm::to_str(min_PARAM_1), COLVARS_INPUT_ERROR); + } + m_nlist_param = nlist_param; + } + m_nlist_center.resize(num_variables()); + m_nlist_dev2.resize(num_variables(), 0); + m_nlist_steps = 0; + m_nlist_update = true; + } + get_keyval(conf, "noZed", m_no_zed, false); + if (m_no_zed) { + m_sum_weights = 1; + m_sum_weights2 = 1; + } + get_keyval(conf, "fixedGaussianSigma", m_fixed_sigma, false); + get_keyval(conf, "recursiveMerge", m_recursive_merge, true); + get_keyval(conf, "calcWork", m_calc_work, false); + bool b_replicas = false; + get_keyval(conf, "multipleReplicas", b_replicas, false); + +#ifdef OPES_THREADING + get_keyval_feature(this, conf, "smp", f_cvb_smp, is_enabled(f_cvb_smp)); + if (is_enabled(f_cv_smp)) { + m_num_threads = cvm::proxy->smp_num_threads(); + } else { + m_num_threads = 1; + } +#else + // if (m_num_threads > 1) { + // return cvm::error("Multithreading in OPES is not compiled.\n"); + // } + m_num_threads = 1; +#endif + bool serial = false; + get_keyval(conf, "serial", serial, false); + if (serial) m_num_threads = 1; + comm = b_replicas ? multiple_replicas : single_replica; + if (comm == multiple_replicas) { + colvarproxy *proxy = cvm::main()->proxy; + get_keyval(conf, "replicaID", replica_id, replica_id); + get_keyval(conf, "sharedFreq", shared_freq, output_freq); + if (!replica_id.size()) { + if (proxy->check_replicas_enabled() == COLVARS_OK) { + // Obtain replicaID from the communicator + replica_id = cvm::to_str(proxy->replica_index()); + cvm::log("Setting replicaID from communication layer: replicaID = "+ + replica_id+".\n"); + } else { + return cvm::error("Error: using more than one replica, but replicaID " + "could not be obtained.\n", COLVARS_INPUT_ERROR); + } + } + m_num_walkers = proxy->num_replicas(); + } + get_keyval(conf, "pmf", m_pmf_grid_on, false); + if (m_pmf_grid_on) { + std::vector pmf_cv_name; + get_keyval(conf, "pmfColvars", pmf_cv_name); + for (auto it = pmf_cv_name.begin(); it != pmf_cv_name.end(); ++it) { + bool found = false; + for (size_t i = 0; i < num_variables(); ++i) { + if (variables(i)->name == (*it)) { + if (variables(i)->enable(f_cv_grid) != COLVARS_OK) { + return cvm::error("CV " + (*it) + " does not support grid\n"); + } + m_pmf_cvs.push_back(variables(i)); + found = true; + break; + } + } + if (!found) { + return cvm::error("CV " + (*it) + " not found\n"); + } + } + key_lookup(conf, "grid", &grid_conf); + m_reweight_grid.reset(new colvar_grid_scalar(m_pmf_cvs, nullptr, false, grid_conf)); + m_pmf_grid.reset(new colvar_grid_scalar(m_pmf_cvs, m_reweight_grid)); + get_keyval(conf, "pmfHistoryFrequency", m_pmf_hist_freq, 0); + if (comm == multiple_replicas) { + get_keyval(conf, "pmfShared", m_pmf_shared, true); + if (m_pmf_shared) { + m_global_reweight_grid.reset(new colvar_grid_scalar(m_pmf_cvs, m_reweight_grid)); + m_global_pmf_grid.reset(new colvar_grid_scalar(m_pmf_cvs, m_reweight_grid)); + } + } + } + m_kdenorm = m_explore? m_counter : m_sum_weights; + m_old_kdenorm = m_kdenorm; + m_traj_line.rct = m_kbt * cvm::logn(m_sum_weights / m_counter); + m_traj_line.zed = m_zed; + m_traj_line.neff = (1 + m_sum_weights) * (1 + m_sum_weights) / (1 + m_sum_weights2); + m_traj_line.nker = m_kernels.size(); + get_keyval(conf, "printTrajectoryFrequency", m_traj_output_frequency, cvm::cv_traj_freq); + m_cv.resize(num_variables(), 0); + showInfo(); + return error_code; +} + +void colvarbias_opes::showInfo() const { + // Print information about this bias + auto printInfo = [&](const std::string& info, const std::string& val){ + cvm::log(this->name + ": " + info + val + "\n"); + }; + printInfo("temperature = ", cvm::to_str(m_kbt / cvm::proxy->boltzmann())); + printInfo("beta = ", cvm::to_str(1.0 / m_kbt)); + printInfo("depositing new kernels with newHillFrequency = ", cvm::to_str(m_pace)); + printInfo("expected barrier is ", cvm::to_str(m_barrier)); + printInfo("using target distribution with biasfactor (gamma) = ", m_inf_biasfactor ? "inf" : cvm::to_str(m_biasfactor)); + if (m_inf_biasfactor) { + cvm::log(" (thus a uniform flat target distribution, no well-tempering)\n"); + cvm::log(this->name + ": " + "the equivalent bias temperature = inf\n"); + } else { + cvm::log(this->name + ": " + "the equivalent bias temperature = " + cvm::to_str(cvm::proxy->target_temperature() * (m_biasfactor - 1))); + } + if (m_adaptive_sigma) { + printInfo("adaptive sigma will be used, with adaptiveSigmaStride = ", cvm::to_str(m_adaptive_sigma_stride)); + size_t x = std::ceil(m_adaptive_sigma_stride / m_pace); + printInfo(" thus the first x kernel depositions will be skipped, x = adaptiveSigmaStride/newHillFrequency = ", cvm::to_str(x)); + } else { + std::string sigmas; + for (size_t i = 0; i < num_variables(); ++i) { + sigmas += " " + cvm::to_str(m_sigma0[i]); + } + cvm::log(this->name + ": kernels have initial gaussianSigma = " + sigmas + "\n"); + } + if (m_fixed_sigma) { + cvm::log(this->name + " fixedGaussianSigma: gaussianSigma will not decrease as the simulation proceeds\n"); + } + printInfo("kernels are truncated with kernelCutoff = ", cvm::to_str(m_cutoff)); + if (m_cutoff < 3.5) { + cvm::log(this->name + " +++ WARNING +++ probably kernels are truncated too much\n"); + } + printInfo("the value at cutoff is = ", cvm::to_str(m_val_at_cutoff)); + printInfo("regularization epsilon = ", cvm::to_str(m_epsilon)); + if (m_val_at_cutoff > m_epsilon*(1+1e-6)) { + cvm::log(this->name + " +++ WARNING +++ the kernelCutoff might be too small for the given epsilon\n"); + } + printInfo("kernels will be compressed when closer than compression_threshold = ", cvm::to_str(m_compression_threshold)); + if (m_compression_threshold2 == 0) { + cvm::log(this->name + " +++ WARNING +++ kernels will never merge, expect slowdowns\n"); + } + if (!m_recursive_merge) { + cvm::log(this->name + " -- RECURSIVE_MERGE_OFF: only one merge for each new kernel will be attempted. This is faster only if total number of kernels does not grow too much\n"); + } + if (m_nlist) { + cvm::log(this->name + " neighborList: using neighbor list for kernels, with parameters: " + cvm::to_str(m_nlist_param[0]) + " " + cvm::to_str(m_nlist_param[1]) + "\n"); + if (m_nlist_pace_reset) { + cvm::log(this->name + " neighborListNewHillReset: forcing the neighbor list to update every time when depositing a new hill\n"); + } + } + if (m_no_zed) { + printInfo("noZed: using fixed normalization factor = ", cvm::to_str(m_zed)); + } + if (comm == multiple_replicas && m_num_walkers > 1) { + cvm::log(this->name + " if multiple replicas are present, they will share the same bias\n"); + } + if (m_num_threads > 1) { + printInfo("using multiple threads per simulation: ", cvm::to_str(m_num_threads)); + } + cvm::main()->cite_feature("OPES"); + if (m_adaptive_sigma || m_explore) { + cvm::main()->cite_feature("OPES explore or adaptive kernels"); + } +} + +cvm::real colvarbias_opes::evaluateKernel( + const colvarbias_opes::kernel& G, + const std::vector& x) const { + cvm::real norm2 = 0; + for (size_t i = 0; i < num_variables(); ++i) { + const cvm::real dist2_i = variables(i)->dist2(G.m_center[i], x[i]) / (G.m_sigma[i] * G.m_sigma[i]); + norm2 += dist2_i; + if (norm2 >= m_cutoff2) { + return 0; + } + } + return G.m_height * (std::exp(-0.5 * norm2) - m_val_at_cutoff); +} + +cvm::real colvarbias_opes::evaluateKernel( + const colvarbias_opes::kernel& G, + const std::vector& x, + std::vector& accumulated_derivative, + std::vector& dist) const { + cvm::real norm2 = 0; + for (size_t i = 0; i < num_variables(); ++i) { + dist[i] = 0.5 * variables(i)->dist2_lgrad(x[i], G.m_center[i]) / G.m_sigma[i]; + norm2 += dist[i] * dist[i]; + if (norm2 >= m_cutoff2) { + return 0; + } + } + const cvm::real val = G.m_height * (std::exp(-0.5 * norm2) - m_val_at_cutoff); + // The derivative of norm2 with respect to x + for (size_t i = 0; i < num_variables(); ++i) { + accumulated_derivative[i] -= val * dist[i] / G.m_sigma[i]; + } + return val; +} + +cvm::real colvarbias_opes::getProbAndDerivatives( + const std::vector& cv, std::vector& der_prob) const { + double prob = 0.0; + std::vector dist(num_variables(), 0); + if (!m_nlist) { + if (m_num_threads == 1 || m_kernels.size() < 2 * m_num_threads) { + for (size_t k = 0; k < m_kernels.size(); ++k) { + prob += evaluateKernel(m_kernels[k], cv, der_prob, dist); + } + } else { +#if defined(_OPENMP) + #pragma omp parallel num_threads(m_num_threads) + { + std::vector omp_deriv(der_prob.size(), 0); + std::vector tmp_dist(num_variables()); + #pragma omp for reduction(+:prob) nowait + for (int k = 0; k < static_cast(m_kernels.size()); ++k) { + prob += evaluateKernel(m_kernels[k], cv, omp_deriv, tmp_dist); + } + #pragma omp critical + for (int i = 0; i < static_cast(num_variables()); ++i) { + der_prob[i]+=omp_deriv[i]; + } + #pragma omp single + for (int i = 0; i < static_cast(num_variables()); ++i) { + dist[i] = tmp_dist[i]; + } + } +#elif defined(CMK_SMP) && defined(USE_CKLOOP) + // TODO: Test this once fine-grained parallelization is enabled + std::vector> derivs(m_num_threads, std::vector(num_variables(), 0)); + std::vector> dists(m_num_threads, std::vector(num_variables(), 0)); + auto worker = [&](int start, int end, void* result){ + const int tid = cvm::proxy->smp_thread_id(); + double tmp_prob = 0; + for (int i = start; i <= end; ++i) { + tmp_prob += evaluateKernel(m_kernels[i], cv, derivs[tid], dists[tid]); + } + *(double *)result = tmp_prob; + }; + const size_t numChunks = m_kernels.size(); + const size_t lowerRange = 0; + const size_t upperRange = numChunks - 1; + CkLoop_Parallelize( + numChunks, lowerRange, upperRange, + worker, &prob, CKLOOP_DOUBLE_SUM, NULL); + for (size_t i = 0; i < num_variables(); ++i) { + for (size_t j = 0; j < m_num_threads; ++j) { + if (j == 0) dist[i] = dists[j][i]; + der_prob[i] += derivs[j][i]; + } + } +#else + cvm::error("multiple threads required in OPES, but this binary is not linked with a supported threading library.\n"); +#endif + } + } else { + if (m_num_threads == 1 || m_nlist_index.size() < 2 * m_num_threads) { + for (size_t nk = 0; nk < m_nlist_index.size(); ++nk) { + const size_t k = m_nlist_index[nk]; + prob += evaluateKernel(m_kernels[k], cv, der_prob, dist); + } + } else { +#if defined(_OPENMP) + #pragma omp parallel num_threads(m_num_threads) + { + std::vector omp_deriv(der_prob.size(), 0); + std::vector tmp_dist(num_variables()); + #pragma omp for reduction(+:prob) nowait + for (int nk = 0; nk < static_cast(m_nlist_index.size()); ++nk) { + const size_t k = m_nlist_index[nk]; + prob += evaluateKernel(m_kernels[k], cv, omp_deriv, tmp_dist); + } + #pragma omp critical + for (int i = 0; i < static_cast(num_variables()); ++i) { + der_prob[i]+=omp_deriv[i]; + } + #pragma omp single + for (int i = 0; i < static_cast(num_variables()); ++i) { + dist[i] = tmp_dist[i]; + } + } +#elif defined(CMK_SMP) && defined(USE_CKLOOP) + // TODO: Test this once fine-grained parallelization is enabled + std::vector> derivs(m_num_threads, std::vector(num_variables(), 0)); + std::vector> dists(m_num_threads, std::vector(num_variables(), 0)); + auto worker = [&](int start, int end, void* result){ + const int tid = cvm::proxy->smp_thread_id(); + double tmp_prob = 0; + for (int i = start; i <= end; ++i) { + const size_t k = m_nlist_index[i]; + tmp_prob += evaluateKernel(m_kernels[k], cv, derivs[tid], dists[tid]); + } + *(double *)result = tmp_prob; + }; + const size_t numChunks = m_nlist_index.size(); + const size_t lowerRange = 0; + const size_t upperRange = numChunks - 1; + CkLoop_Parallelize( + numChunks, lowerRange, upperRange, + worker, &prob, CKLOOP_DOUBLE_SUM, NULL); + for (size_t i = 0; i < num_variables(); ++i) { + for (size_t j = 0; j < m_num_threads; ++j) { + if (j == 0) dist[i] = dists[j][i]; + der_prob[i] += derivs[j][i]; + } + } +#else + cvm::error("multiple threads required in OPES, but this binary is not linked with a supported threading library.\n"); +#endif + } + } + prob /= m_kdenorm; + for (size_t i = 0; i < num_variables(); ++i) { + der_prob[i] /= m_kdenorm; + } + return prob; +} + +int colvarbias_opes::calculate_opes() { + if (m_nlist) { + ++m_nlist_steps; + const bool exchange_step = + (comm == multiple_replicas) && + cvm::step_absolute() % shared_freq == 0; + if (exchange_step) { + m_nlist_update = true; + } else { + for (size_t i = 0; i < num_variables(); ++i) { + const cvm::real diff_i2 = variables(i)->dist2(m_cv[i], m_nlist_center[i]); + if (diff_i2 > m_nlist_param[1] * m_nlist_dev2[i]) { + m_nlist_update = true; + break; + } + } + } + if (m_nlist_update) { + updateNlist(m_cv); + } + } + std::vector der_prob(num_variables(), 0); + const cvm::real prob = getProbAndDerivatives(m_cv, der_prob); + const cvm::real bias = m_kbt * m_bias_prefactor * cvm::logn(prob / m_zed + m_epsilon); + bias_energy = bias; + if (is_enabled(f_cvb_apply_force)) { + for (size_t i = 0; i < num_variables(); ++i) { + colvar_forces[i] = -m_kbt * m_bias_prefactor / (prob / m_zed + m_epsilon) * der_prob[i] / m_zed; + } + } + return COLVARS_OK; +} + +int colvarbias_opes::update_opes() { + if (m_adaptive_sigma) { + m_adaptive_counter++; + cvm::step_number tau = m_adaptive_sigma_stride; + if (m_adaptive_counter < m_adaptive_sigma_stride) tau = m_adaptive_counter; + for (size_t i = 0; i < num_variables(); ++i) { + // Welford's online algorithm for standard deviation + const cvm::real diff_i = 0.5 * variables(i)->dist2_lgrad(m_cv[i], m_av_cv[i]); + m_av_cv[i] += diff_i / tau; + m_av_M2[i] += diff_i * 0.5 * variables(i)->dist2_lgrad(m_cv[i], m_av_cv[i]); + } + if (m_adaptive_counter < m_adaptive_sigma_stride && m_counter == 1) { + return COLVARS_OK;; + } + } + if (cvm::step_absolute() % m_pace == 0) { + m_old_kdenorm = m_kdenorm; + m_delta_kernels.clear(); + const size_t old_nker = m_kernels.size(); + // TODO: how could I account for extra biases in Colvars? + const cvm::real log_weight = bias_energy / m_kbt; + cvm::real height = cvm::exp(log_weight); + cvm::real sum_heights = height; + cvm::real sum_heights2 = height * height; + if (m_num_walkers > 1) { + std::vector replica_sum_heights(cvm::proxy->num_replicas() - 1, 0); + // Send all sum_heights to PE 0 + if (cvm::proxy->replica_index() == 0) { + for (int p = 1; p < cvm::proxy->num_replicas(); ++p) { + if (cvm::proxy->replica_comm_recv((char*)&(replica_sum_heights[p - 1]), sizeof(cvm::real), p) != sizeof(cvm::real)) { + return cvm::error("Error: receiving sum of weights from replica " + cvm::to_str(p)); + } + } + } else { + if (cvm::proxy->replica_comm_send((char*)&sum_heights, sizeof(cvm::real), 0) != sizeof(cvm::real)) { + return cvm::error("Error: sending sum of weights to replica 0."); + } + } + cvm::proxy->replica_comm_barrier(); + // PE 0 sum all sum_heights and broadcast + if (cvm::proxy->replica_index() == 0) { + for (auto it = replica_sum_heights.begin(); it != replica_sum_heights.end(); ++it) { + sum_heights += (*it); + } + for (int p = 1; p < cvm::proxy->num_replicas(); ++p) { + if (cvm::proxy->replica_comm_send((char*)&sum_heights, sizeof(cvm::real), p) != sizeof(cvm::real)) { + return cvm::error("Error: sending sum of weights to replica " + cvm::to_str(p)); + } + } + } else { + if (cvm::proxy->replica_comm_recv((char*)&sum_heights, sizeof(cvm::real), 0) != sizeof(cvm::real)) { + return cvm::error("Error: receiving sum of weights from replica 0."); + } + } + cvm::proxy->replica_comm_barrier(); + // Send all sum_heights2 to PE 0 + std::vector replica_sum_heights2(cvm::proxy->num_replicas() - 1, 0); + if (cvm::proxy->replica_index() == 0) { + for (int p = 1; p < cvm::proxy->num_replicas(); ++p) { + if (cvm::proxy->replica_comm_recv((char*)&(replica_sum_heights2[p - 1]), sizeof(cvm::real), p) != sizeof(cvm::real)) { + return cvm::error("Error: getting sum of weights2 from replica " + cvm::to_str(p)); + } + } + } else { + if (cvm::proxy->replica_comm_send((char*)&sum_heights2, sizeof(cvm::real), 0) != sizeof(cvm::real)) { + return cvm::error("Error: sending sum of weights2 from replica."); + } + } + cvm::proxy->replica_comm_barrier(); + // PE 0 sum all sum_heights2 and broadcast + if (cvm::proxy->replica_index() == 0) { + for (auto it = replica_sum_heights2.begin(); it != replica_sum_heights2.end(); ++it) { + sum_heights2 += (*it); + } + for (int p = 1; p < cvm::proxy->num_replicas(); ++p) { + if (cvm::proxy->replica_comm_send((char*)&sum_heights2, sizeof(cvm::real), p) != sizeof(cvm::real)) { + return cvm::error("Error: sending sum of weights2 to replica " + cvm::to_str(p)); + } + } + } else { + if (cvm::proxy->replica_comm_recv((char*)&sum_heights2, sizeof(cvm::real), 0) != sizeof(cvm::real)) { + return cvm::error("Error: receiving sum of weights2 from replica."); + } + } + cvm::proxy->replica_comm_barrier(); + } + m_counter += m_num_walkers; + m_sum_weights += sum_heights; + m_sum_weights2 += sum_heights2; + m_neff = (1 + m_sum_weights) * (1 + m_sum_weights) / (1 + m_sum_weights2); + m_rct = m_kbt * cvm::logn(m_sum_weights / m_counter); + m_traj_line.neff = m_neff; + m_traj_line.rct = m_rct; + if (m_explore) { + m_kdenorm = m_counter; + height = 1.0; + } else { + m_kdenorm = m_sum_weights; + } + std::vector sigma = m_sigma0; + if (m_adaptive_sigma) { + const cvm::real factor = m_explore ? 1.0 : m_biasfactor; + if (m_counter == 1 + m_num_walkers) { + for (size_t i = 0; i < num_variables(); ++i) { + m_av_M2[i] *= m_biasfactor; + } + for (size_t i = 0; i < num_variables(); ++i) { + m_sigma0[i] = std::sqrt(m_av_M2[i] / m_adaptive_counter / factor); + } + if (m_sigma_min.size() == 0) { + for (size_t i = 0; i < num_variables(); ++i) { + if (m_sigma0[i] < 1e-6) { + cvm::error("Adaptive sigma is suspiciously small for CV " + cvm::to_str(i) + "\nManually provide sigma or set a safe sigma_min to avoid possible issues\n"); + return COLVARS_ERROR; + } + } + } else { + for (size_t i = 0; i < num_variables(); ++i) { + m_sigma0[i] = std::max(m_sigma0[i], m_sigma_min[i]); + } + } + } + for (size_t i = 0; i < num_variables(); ++i) { + sigma[i] = std::sqrt(m_av_M2[i] / m_adaptive_counter / factor); + } + if (m_sigma_min.size() == 0) { + bool sigma_less_than_threshold = false; + for (size_t i = 0; i < num_variables(); ++i) { + if (sigma[i] < 1e-6) { + cvm::log("The adaptive sigma is suspiciously small, you should set a safe sigma_min. 1e-6 will be used here\n"); + sigma[i] = 1e-6; + sigma_less_than_threshold = true; + } + } + if (sigma_less_than_threshold) { + m_sigma_min.assign(num_variables(), 1e-6); + } + } else { + for (size_t i = 0; i < num_variables(); ++i) { + sigma[i] = std::max(sigma[i], m_sigma_min[i]); + } + } + } + if (!m_fixed_sigma) { + const cvm::real size = m_explore ? m_counter : m_neff; + const size_t ncv = num_variables(); + const cvm::real s_rescaling = std::pow(size * (ncv + 2.0) / 4, -1.0 / (4.0 + ncv)); + for (size_t i = 0; i < num_variables(); ++i) { + sigma[i] *= s_rescaling; + } + if (m_sigma_min.size() > 0) { + for (size_t i = 0; i < num_variables(); ++i) { + sigma[i] = std::max(sigma[i], m_sigma_min[i]); + } + } + } + // the height should be divided by sqrt(2*pi)*sigma0_, + // but this overall factor would be canceled when dividing by Zed + // thus we skip it altogether, but keep any other sigma rescaling + for (size_t i = 0; i < num_variables(); ++i) { + height *= (m_sigma0[i] / sigma[i]); + } + if (m_num_walkers == 1) { + addKernel(height, m_cv, sigma, log_weight); + } else { + std::vector all_height(m_num_walkers, 0.0); + std::vector all_center(m_num_walkers * num_variables(), 0.0); + std::vector all_sigma(m_num_walkers * num_variables(), 0.0); + std::vector all_logweight(m_num_walkers, 0.0); + const int my_replica = cvm::proxy->replica_index(); + + // Allgather of heights + if (my_replica == 0) { + all_height[0] = height; + for (int p = 1; p < cvm::proxy->num_replicas(); ++p) { + if (cvm::proxy->replica_comm_recv((char*)&(all_height[p]), sizeof(decltype(all_height)::value_type), p) != sizeof(decltype(all_height)::value_type)) { + return cvm::error("Error: on receiving height on replica 0 from replica " + cvm::to_str(p)); + } + } + } else { + if (cvm::proxy->replica_comm_send((char*)&height, sizeof(decltype(height)), 0) != sizeof(cvm::real)) { + return cvm::error("Error: on sending height to replica 0 from replica " + cvm::to_str(my_replica)); + } + } + cvm::proxy->replica_comm_barrier(); + // Broadcast heights + if (my_replica == 0) { + const int send_size = sizeof(decltype(all_height)::value_type) * all_height.size(); + for (int p = 1; p < cvm::proxy->num_replicas(); ++p) { + if (cvm::proxy->replica_comm_send((char*)all_height.data(), send_size, p) != send_size) { + return cvm::error("Error: on sending heights from replica 0 to replica " + cvm::to_str(p)); + } + } + } else { + const int recv_size = sizeof(decltype(all_height)::value_type) * all_height.size(); + if (cvm::proxy->replica_comm_recv((char*)all_height.data(), recv_size, 0) != recv_size) { + return cvm::error("Error: on receiving heights from replica 0 to replica " + cvm::to_str(my_replica)); + } + } + cvm::proxy->replica_comm_barrier(); + + // Allgather of centers + if (my_replica == 0) { + std::copy(m_cv.begin(), m_cv.end(), all_center.begin()); + const int recv_size = sizeof(decltype(m_cv)::value_type) * m_cv.size(); + for (int p = 1; p < cvm::proxy->num_replicas(); ++p) { + cvm::real* recv_start_ptr = &(all_center[p * m_cv.size()]); + if (cvm::proxy->replica_comm_recv((char*)recv_start_ptr, recv_size, p) != recv_size) { + return cvm::error("Error on receiving centers from replica 0 to replica " + cvm::to_str(p)); + } + } + } else { + const int send_size = sizeof(decltype(m_cv)::value_type) * m_cv.size(); + if (cvm::proxy->replica_comm_send((char*)m_cv.data(), send_size, 0) != send_size) { + return cvm::error("Error on sending centers to replica 0 from replica " + cvm::to_str(my_replica)); + } + } + cvm::proxy->replica_comm_barrier(); + // Broadcast centers + if (my_replica == 0) { + const int send_size = sizeof(decltype(all_center)::value_type) * all_center.size(); + for (int p = 1; p < cvm::proxy->num_replicas(); ++p) { + if (cvm::proxy->replica_comm_send((char*)all_center.data(), send_size, p) != send_size) { + return cvm::error("Error on sending centers from replica 0 to replica " + cvm::to_str(p)); + } + } + } else { + const int recv_size = sizeof(decltype(all_center)::value_type) * all_center.size(); + if (cvm::proxy->replica_comm_recv((char*)all_center.data(), recv_size, 0) != recv_size) { + return cvm::error("Error on receiving centers from replica 0 to replica " + cvm::to_str(my_replica)); + } + } + cvm::proxy->replica_comm_barrier(); + + // Allgather of sigmas + if (my_replica == 0) { + std::copy(sigma.begin(), sigma.end(), all_sigma.begin()); + const int recv_size = sizeof(decltype(sigma)::value_type) * sigma.size(); + for (int p = 1; p < cvm::proxy->num_replicas(); ++p) { + cvm::real* recv_start_ptr = &(all_sigma[p * m_cv.size()]); + if (cvm::proxy->replica_comm_recv((char*)recv_start_ptr, recv_size, p) != recv_size) { + return cvm::error("Error on receiving sigmas from replica 0 to replica " + cvm::to_str(p)); + } + } + } else { + const int send_size = sizeof(decltype(sigma)::value_type) * sigma.size(); + if (cvm::proxy->replica_comm_send((char*)sigma.data(), send_size, 0) != send_size) { + return cvm::error("Error on sending sigmas to replica 0 from replica " + cvm::to_str(my_replica)); + } + } + cvm::proxy->replica_comm_barrier(); + // Broadcast sigmas + if (my_replica == 0) { + const int send_size = sizeof(decltype(all_sigma)::value_type) * all_sigma.size(); + for (int p = 1; p < cvm::proxy->num_replicas(); ++p) { + if (cvm::proxy->replica_comm_send((char*)all_sigma.data(), send_size, p) != send_size) { + return cvm::error("Error on sending sigmas from replica 0 to replica " + cvm::to_str(p)); + } + } + } else { + const int recv_size = sizeof(decltype(all_sigma)::value_type) * all_sigma.size(); + if (cvm::proxy->replica_comm_recv((char*)all_sigma.data(), recv_size, 0) != recv_size) { + return cvm::error("Error on receiving sigmas from replica 0 to replica " + cvm::to_str(my_replica)); + } + } + cvm::proxy->replica_comm_barrier(); + + // Allgather of logweights + if (my_replica == 0) { + all_logweight[0] = log_weight; + for (int p = 1; p < cvm::proxy->num_replicas(); ++p) { + if (cvm::proxy->replica_comm_recv((char*)&(all_logweight[p]), sizeof(decltype(all_logweight)::value_type), p) != sizeof(decltype(all_logweight)::value_type)) { + return cvm::error("Error on receiving log_weight on replica 0 from replica " + cvm::to_str(p)); + } + } + } else { + if (cvm::proxy->replica_comm_send((char*)&log_weight, sizeof(decltype(log_weight)), 0) != sizeof(cvm::real)) { + return cvm::error("Error on sending log_weight to replica 0 from replica " + cvm::to_str(my_replica)); + } + } + cvm::proxy->replica_comm_barrier(); + // Broadcast log_weight + if (my_replica == 0) { + const int send_size = sizeof(decltype(all_logweight)::value_type) * all_logweight.size(); + for (int p = 1; p < cvm::proxy->num_replicas(); ++p) { + if (cvm::proxy->replica_comm_send((char*)all_logweight.data(), send_size, p) != send_size) { + return cvm::error("Error on sending log_weight from replica 0 to replica " + cvm::to_str(p)); + } + } + } else { + const int recv_size = sizeof(decltype(all_logweight)::value_type) * all_logweight.size(); + if (cvm::proxy->replica_comm_recv((char*)all_logweight.data(), recv_size, 0) != recv_size) { + return cvm::error("Error on receiving log_weight from replica 0 to replica " + cvm::to_str(my_replica)); + } + } + cvm::proxy->replica_comm_barrier(); + + if (m_nlist) { + std::vector all_nlist_size(m_num_walkers); + const int my_replica = cvm::proxy->replica_index(); + // Get the size of the neighbor list of each replica + if (my_replica == 0) { + all_nlist_size[0] = m_nlist_index.size(); + for (int p = 1; p < cvm::proxy->num_replicas(); ++p) { + if (cvm::proxy->replica_comm_recv((char*)&(all_nlist_size[p]), sizeof(int), p) != sizeof(int)) { + return cvm::error("Error on receiving neighbor list size from replica " + cvm::to_str(p)); + } + } + } else { + const int nlist_size = m_nlist_index.size(); + if (cvm::proxy->replica_comm_send((char*)&nlist_size, sizeof(int), 0) != sizeof(int)) { + return cvm::error("Error on sending neighbor list size from replica " + cvm::to_str(my_replica)); + } + } + cvm::proxy->replica_comm_barrier(); + // Broadcast the neighbor list sizes to all replicas + if (my_replica == 0) { + const int send_size = sizeof(int) * all_nlist_size.size(); + for (int p = 1; p < cvm::proxy->num_replicas(); ++p) { + if (cvm::proxy->replica_comm_send((char*)all_nlist_size.data(), send_size, p) != send_size) { + return cvm::error("Error on sending neighbor list sizes from replica 0 to replica " + cvm::to_str(p)); + } + } + } else { + const int recv_size = sizeof(int) * all_nlist_size.size(); + if (cvm::proxy->replica_comm_recv((char*)all_nlist_size.data(), recv_size, 0) != recv_size) { + return cvm::error("Error on receiving neighbor list sizes to replica " + cvm::to_str(my_replica)); + } + } + cvm::proxy->replica_comm_barrier(); + // Gather all neighbor lists from replicas + const int tot_size = std::accumulate(all_nlist_size.begin(), all_nlist_size.end(), 0); + if (tot_size > 0) { + // Allgatherv all neighbor lists from replicas + std::vector all_nlist_index(tot_size); + if (my_replica == 0) { + std::vector recv_start(m_num_walkers); + // Accumulative sum + recv_start[0] = 0; + std::partial_sum(all_nlist_size.begin(), all_nlist_size.end() - 1, recv_start.begin() + 1); + std::copy(m_nlist_index.begin(), m_nlist_index.end(), all_nlist_index.begin()); + for (int p = 1; p < cvm::proxy->num_replicas(); ++p) { + size_t* recv_start_ptr = &(all_nlist_index[recv_start[p]]); + const int recv_size = all_nlist_size[p] * sizeof(decltype(all_nlist_index)::value_type); + if (cvm::proxy->replica_comm_recv((char*)recv_start_ptr, recv_size, p) != recv_size) { + return cvm::error("Error on receiving neighbor list from replica " + cvm::to_str(p)); + } + } + } else { + const int send_size = sizeof(decltype(m_nlist_index)::value_type) * m_nlist_index.size(); + if (cvm::proxy->replica_comm_send((char*)m_nlist_index.data(), send_size, 0) != send_size) { + return cvm::error("Error on sending neighbor list from replica " + cvm::to_str(my_replica)); + } + } + cvm::proxy->replica_comm_barrier(); + // Broadcast the neighbor list + if (my_replica == 0) { + const int send_size = sizeof(decltype(all_nlist_index)::value_type) * tot_size; + for (int p = 1; p < cvm::proxy->num_replicas(); ++p) { + if (cvm::proxy->replica_comm_send((char*)all_nlist_index.data(), send_size, p) != send_size) { + return cvm::error("Error on sending total neighbor list to replica " + cvm::to_str(p)); + } + } + } else { + const int recv_size = sizeof(decltype(all_nlist_index)::value_type) * tot_size; + if (cvm::proxy->replica_comm_recv((char*)all_nlist_index.data(), recv_size, 0) != recv_size) { + return cvm::error("Error on receiving total neighbor list on replica " + cvm::to_str(my_replica)); + } + } + cvm::proxy->replica_comm_barrier(); + // Deduplicate and sort the merged neighbor list + std::unordered_set all_nlist_index_set; + for (auto it = all_nlist_index.cbegin(); it != all_nlist_index.cend(); ++it) { + all_nlist_index_set.insert(*it); + } + m_nlist_index.assign(all_nlist_index_set.begin(), all_nlist_index_set.end()); + std::sort(m_nlist_index.begin(), m_nlist_index.end()); + } + } + for (size_t w = 0; w < m_num_walkers; ++w) { + std::vector center_w( + all_center.begin() + num_variables() * w, + all_center.begin() + num_variables() * (w + 1)); + std::vector sigma_w( + all_sigma.begin() + num_variables() * w, + all_sigma.begin() + num_variables() * (w + 1)); + addKernel(all_height[w], center_w, sigma_w, all_logweight[w]); + } + } + m_nker = m_kernels.size(); + m_traj_line.nker = m_nker; + if (m_nlist) { + m_nlker = m_nlist_index.size(); + m_traj_line.nlker = m_nlker; + if (m_nlist_pace_reset) { + m_nlist_update = true; + } + } + if (!m_no_zed) { + cvm::real sum_uprob = 0; + const size_t ks = m_kernels.size(); + const size_t ds = m_delta_kernels.size(); + const int num_parallel = 1; // Always 1 + const bool few_kernels = (ks * ks < (3 * ks * ds + 2 * ds * ds * num_parallel + 100)); + if (few_kernels) { + if (m_num_threads == 1) { + for (size_t k = 0; k < m_kernels.size(); ++k) { + for (size_t kk = 0; kk < m_kernels.size(); ++kk) { + sum_uprob += evaluateKernel(m_kernels[kk], m_kernels[k].m_center); + } + } + } else { +#if defined(_OPENMP) + #pragma omp parallel num_threads(m_num_threads) + { + #pragma omp for reduction(+:sum_uprob) nowait + for (int k = 0; k < static_cast(m_kernels.size()); ++k) { + for (int kk = 0; kk < static_cast(m_kernels.size()); ++kk) { + sum_uprob += evaluateKernel(m_kernels[kk], m_kernels[k].m_center); + } + } + } +#elif defined(CMK_SMP) && defined(USE_CKLOOP) + // TODO: Does this work?? + auto worker = [&](int start, int end, void* result) { + double tmp_prob = 0; + for (int i = start; i <= end; ++i) { + for (size_t kk = 0; kk < m_kernels.size(); ++kk) { + tmp_prob += evaluateKernel(m_kernels[kk], m_kernels[i].m_center); + } + } + *(double *)result = tmp_prob; + }; + const size_t numChunks = m_kernels.size(); + const size_t lowerRange = 0; + const size_t upperRange = numChunks - 1; + CkLoop_Parallelize( + numChunks, lowerRange, upperRange, + worker, &sum_uprob, CKLOOP_DOUBLE_SUM, NULL); +#else + cvm::error("OPES cannot run because this binary is not linked with a supported threading library.\n"); +#endif + } + if (num_parallel > 1) { + return cvm::error("Unimplemented feature: OPES in parallel running.\n"); + } + } else { + cvm::real delta_sum_uprob = 0; + if (!m_nlist) { + if (m_num_threads == 1) { + for (size_t i = 0; i < m_kernels.size(); ++i) { + for (size_t d = 0; d < m_delta_kernels.size(); ++d) { + const int sign = m_delta_kernels[d].m_height < 0 ? -1 : 1; + delta_sum_uprob += evaluateKernel(m_delta_kernels[d], m_kernels[i].m_center) + sign * evaluateKernel(m_kernels[i], m_delta_kernels[d].m_center); + } + } + } else { +#if defined(_OPENMP) + #pragma omp parallel num_threads(m_num_threads) + { + #pragma omp for reduction(+:delta_sum_uprob) nowait + for (int i = 0; i < static_cast(m_kernels.size()); ++i) { + for (int d = 0; d < static_cast(m_delta_kernels.size()); ++d) { + const int sign = m_delta_kernels[d].m_height < 0 ? -1 : 1; + delta_sum_uprob += evaluateKernel(m_delta_kernels[d], m_kernels[i].m_center) + sign * evaluateKernel(m_kernels[i], m_delta_kernels[d].m_center); + } + } + } +#elif defined(CMK_SMP) && defined(USE_CKLOOP) + auto worker = [&](int start, int end, void* result) { + double tmp_prob = 0; + for (int i = start; i <= end; ++i) { + for (size_t d = 0; d < m_delta_kernels.size(); ++d) { + const int sign = m_delta_kernels[d].m_height < 0 ? -1 : 1; + tmp_prob += evaluateKernel(m_delta_kernels[d], m_kernels[i].m_center) + sign * evaluateKernel(m_kernels[i], m_delta_kernels[d].m_center); + } + } + *(double *)result = tmp_prob; + }; + const size_t numChunks = m_kernels.size(); + const size_t lowerRange = 0; + const size_t upperRange = numChunks - 1; + CkLoop_Parallelize( + numChunks, lowerRange, upperRange, + worker, &delta_sum_uprob, CKLOOP_DOUBLE_SUM, NULL); +#else + cvm::error("OPES cannot run because this binary is not linked with a supported threading library.\n"); +#endif + } + } else { + if (m_num_threads == 1) { + for (size_t i = 0; i < m_nlist_index.size(); ++i) { + const size_t k = m_nlist_index[i]; + for (size_t d = 0; d < m_delta_kernels.size(); ++d) { + const double sign = m_delta_kernels[d].m_height < 0 ? -1 : 1; + delta_sum_uprob += evaluateKernel(m_delta_kernels[d], m_kernels[k].m_center) + sign * evaluateKernel(m_kernels[k], m_delta_kernels[d].m_center); + } + } + } else { +#if defined(_OPENMP) + #pragma omp parallel num_threads(m_num_threads) + { + #pragma omp for reduction(+:delta_sum_uprob) nowait + for (int i = 0; i < static_cast(m_nlist_index.size()); ++i) { + const size_t k = m_nlist_index[i]; + for (int d = 0; d < static_cast(m_delta_kernels.size()); ++d) { + const double sign = m_delta_kernels[d].m_height < 0 ? -1 : 1; + delta_sum_uprob += evaluateKernel(m_delta_kernels[d], m_kernels[k].m_center) + sign * evaluateKernel(m_kernels[k], m_delta_kernels[d].m_center); + } + } + } +#elif defined(CMK_SMP) && defined(USE_CKLOOP) + auto worker = [&](int start, int end, void* result) { + double tmp_prob = 0; + for (int i = start; i <= end; ++i) { + const size_t k = m_nlist_index[i]; + for (size_t d = 0; d < m_delta_kernels.size(); ++d) { + const double sign = m_delta_kernels[d].m_height < 0 ? -1 : 1; + tmp_prob += evaluateKernel(m_delta_kernels[d], m_kernels[k].m_center) + sign * evaluateKernel(m_kernels[k], m_delta_kernels[d].m_center); + } + } + *(double *)result = tmp_prob; + }; + const size_t numChunks = m_nlist_index.size(); + const size_t lowerRange = 0; + const size_t upperRange = numChunks - 1; + CkLoop_Parallelize( + numChunks, lowerRange, upperRange, + worker, &delta_sum_uprob, CKLOOP_DOUBLE_SUM, NULL); +#else + cvm::error("OPES cannot run because this binary is not linked with a supported threading library.\n"); +#endif + } + } + if (num_parallel > 1) { + return cvm::error("Unimplemented feature: OPES in parallel running.\n"); + } + if (m_num_threads == 1) { + for (size_t d = 0; d < m_delta_kernels.size(); ++d) { + for (size_t dd = 0; dd < m_delta_kernels.size(); ++dd) { + const int sign = m_delta_kernels[d].m_height < 0 ? -1 : 1; + delta_sum_uprob -= sign *evaluateKernel(m_delta_kernels[dd], m_delta_kernels[d].m_center); + } + } + } else { +#if defined(_OPENMP) + #pragma omp parallel num_threads(m_num_threads) + { + #pragma omp for reduction(+:delta_sum_uprob) + for (int d = 0; d < static_cast(m_delta_kernels.size()); ++d) { + for (int dd = 0; dd < static_cast(m_delta_kernels.size()); ++dd) { + const int sign = m_delta_kernels[d].m_height < 0 ? -1 : 1; + delta_sum_uprob -= sign * evaluateKernel(m_delta_kernels[dd], m_delta_kernels[d].m_center); + } + } + } +#elif defined(CMK_SMP) && defined(USE_CKLOOP) + auto worker = [&](int start, int end, void* result) { + double tmp_prob = 0; + for (int d = start; d <= end; ++d) { + for (size_t dd = 0; dd < m_delta_kernels.size(); ++dd) { + const int sign = m_delta_kernels[d].m_height < 0 ? -1 : 1; + tmp_prob += sign * evaluateKernel(m_delta_kernels[dd], m_delta_kernels[d].m_center); + } + } + *(double *)result = tmp_prob; + }; + const size_t numChunks = m_delta_kernels.size(); + const size_t lowerRange = 0; + const size_t upperRange = numChunks - 1; + double tmp = 0; + CkLoop_Parallelize( + numChunks, lowerRange, upperRange, + worker, &tmp, CKLOOP_DOUBLE_SUM, NULL); + delta_sum_uprob -= tmp; +#else + cvm::error("OPES cannot run because this binary is not linked with a supported threading library.\n"); +#endif + } + sum_uprob = m_zed * m_old_kdenorm * old_nker + delta_sum_uprob; + } + m_zed = sum_uprob / m_kdenorm / m_kernels.size(); + m_traj_line.zed = m_zed; + } + if (m_calc_work) { + std::vector dummy(num_variables()); + const cvm::real prob = getProbAndDerivatives(m_cv, dummy); + const cvm::real new_bias = m_kbt * m_bias_prefactor * cvm::logn(prob / m_zed + m_epsilon); + m_work += new_bias - bias_energy; + m_traj_line.work = m_work; + } + } + return COLVARS_OK; +} + +void colvarbias_opes::save_state() { + if (cvm::step_absolute() % cvm::restart_out_freq == 0) { + m_saved_zed = m_zed; + m_saved_sum_weights = m_sum_weights; + m_saved_sum_weights2 = m_sum_weights2; + m_saved_kernels = m_kernels; + } +} + +int colvarbias_opes::update() { + int error_code = COLVARS_OK; + for (size_t i = 0; i < num_variables(); ++i) { + m_cv[i] = variables(i)->value(); + } + error_code |= calculate_opes(); + // NOTE: I don't think that calling dumpStateToFile() after update in + // the PLUMED implementation is correct for step 0, so I save the + // data after calculate() that does not modify the internal state + // of the bias. + save_state(); + if (error_code != COLVARS_OK) return error_code; + if (m_is_first_step) { + // NOTE: Colvars does not allow chainned biases, so I have to implement + // the PRINT here. Even if OPESmetad::update() is skipped we should + // still call Print::update() + writeTrajBuffer(); + if (m_pmf_grid_on) error_code |= collectSampleToPMFGrid(); + m_is_first_step = false; + return COLVARS_OK; + } + error_code |= update_opes(); + if (error_code != COLVARS_OK) return error_code; + writeTrajBuffer(); // Print::update() + if (m_pmf_grid_on) error_code |= collectSampleToPMFGrid(); + return error_code; +} + +int colvarbias_opes::collectSampleToPMFGrid() { + if (m_reweight_grid) { + // Get the bin index + std::vector bin(m_pmf_cvs.size(), 0); + for (size_t i = 0; i < m_pmf_cvs.size(); ++i) { + bin[i] = m_reweight_grid->current_bin_scalar(i); + } + const cvm::real reweighting_factor = cvm::exp(bias_energy / m_kbt); + if (m_reweight_grid->index_ok(bin)) { + m_reweight_grid->acc_value(bin, reweighting_factor); + } + } + return COLVARS_OK; +} + +template OST& colvarbias_opes::write_state_data_template_(OST &os) const { + std::ios_base::fmtflags f; + const bool formatted = !std::is_same::value; + if (formatted) { + f = os.flags(); + os.setf(std::ios::scientific, std::ios::floatfield); + } + write_state_data_key(os, "opes_metad_" + this->name); + auto printFieldReal = [&](const std::string& s, cvm::real x){ + write_state_data_key(os, s, false); + if (formatted) + os << std::setprecision(cvm::en_prec) << std::setw(cvm::en_width); + os << x; + if (formatted) + os << "\n"; + }; + auto printFieldULL = [&](const std::string& s, unsigned long long x){ + write_state_data_key(os, s, false); + if (formatted) + os << std::setprecision(cvm::en_prec) << std::setw(cvm::en_width); + os << x; + if (formatted) + os << "\n"; + }; + auto printFieldString = [&](const std::string& s, const std::string& x){ + write_state_data_key(os, s, false); + if (formatted) + os << std::setprecision(cvm::en_prec) << std::setw(cvm::en_width); + os << x; + if (formatted) + os << "\n"; + }; + std::ostringstream oss; + if (m_inf_biasfactor) { + oss << "inf"; + } else { + oss << m_biasfactor; + } + printFieldString("biasfactor", oss.str()); + printFieldReal("epsilon", m_epsilon); + printFieldReal("kernel_cutoff", cvm::sqrt(m_cutoff2)); + printFieldReal("compression_threshold", m_compression_threshold); + printFieldReal("zed", m_saved_zed); + printFieldReal("sum_weights", m_saved_sum_weights); + printFieldReal("sum_weights2", m_saved_sum_weights2); + printFieldULL("counter", m_counter); + if (m_adaptive_sigma) { + printFieldULL("adaptive_counter", m_adaptive_counter); + for (size_t i = 0; i < num_variables(); ++i) { + printFieldReal("sigma0_" + variables(i)->name, m_sigma0[i]); + printFieldReal("av_cv_" + variables(i)->name, m_av_cv[i]); + printFieldReal("av_M2_" + variables(i)->name, m_av_M2[i]); + } + } + printFieldULL("num_hills", m_saved_kernels.size()); + write_state_data_key(os, "hills", false); + if (formatted) os << "{\n"; + for (size_t k = 0; k < m_saved_kernels.size(); ++k) { + if (formatted) os << "{ "; + os << k; + if (formatted) os << " "; + for (size_t i = 0; i < num_variables(); ++i) { + os << m_saved_kernels[k].m_center[i]; + if (formatted) os << " "; + } + for (size_t i = 0; i < num_variables(); ++i) { + os << m_saved_kernels[k].m_sigma[i]; + if (formatted) os << " "; + } + os << m_saved_kernels[k].m_height; + if (formatted) os << " }\n"; + } + if (formatted) os << "}\n"; + if (formatted) os.setf(f); + if (m_pmf_grid_on) { + write_state_data_key(os, "probability_grid"); + m_reweight_grid->write_raw(os, 8); + } + return os; +} + +std::ostream& colvarbias_opes::write_state_data(std::ostream &os) { + try { + auto& s = write_state_data_template_(os); + return s; + } catch (const std::exception& e) { + cvm::error(e.what()); + } + return os; +} + +cvm::memory_stream& colvarbias_opes::write_state_data(cvm::memory_stream& os) { + try { + auto& s = write_state_data_template_(os); + return s; + } catch (const std::exception& e) { + cvm::error(e.what()); + } + return os; +} + +template IST& colvarbias_opes::read_state_data_template_(IST &is) { + bool const formatted = !std::is_same::value; + std::string tmp_name; + is >> tmp_name; + if (tmp_name.rfind("opes_metad_", 0) != 0) { + throw std::runtime_error("Unknown action name: " + tmp_name + "\n"); + } + auto readFieldString = [&](const std::string& s, std::string& x){ + std::string field; + is >> field; + if (field.compare(s) == 0) { + is >> x; + } else { + throw std::runtime_error("Expect field \"" + s + "\" , but got \"" + field + "\"\n"); + } + }; + auto readFieldReal = [&](const std::string& s, cvm::real& x){ + std::string field; + is >> field; + if (field.compare(s) == 0) { + is >> x; + } else { + throw std::runtime_error("Expect field \"" + s + "\" , but got \"" + field + "\"\n"); + } + }; + auto readFieldULL = [&](const std::string& s, unsigned long long& x){ + std::string field; + is >> field; + if (field.compare(s) == 0) { + is >> x; + } else { + throw std::runtime_error("Expect field \"" + s + "\" , but got \"" + field + "\"\n"); + } + }; + std::string old_biasfactor_str; + cvm::real old_biasfactor; + readFieldString("biasfactor", old_biasfactor_str); + if (old_biasfactor_str == "inf" || old_biasfactor_str == "-inf" || old_biasfactor_str == "+inf" || + old_biasfactor_str == "INF" || old_biasfactor_str == "-INF" || old_biasfactor_str == "+INF") { + old_biasfactor = std::numeric_limits::infinity(); + m_inf_biasfactor = true; + } else { + old_biasfactor = std::stod(old_biasfactor_str); + m_inf_biasfactor = false; + } + if (std::abs(old_biasfactor - m_biasfactor) > 1e-6 * m_biasfactor) { + cvm::log("WARNING: previous bias factor was " + cvm::to_str(old_biasfactor) + + " while now it is " + cvm::to_str(m_biasfactor) + + " (the new one is used).\n"); + } + cvm::real old_epsilon; + readFieldReal("epsilon", old_epsilon); + if (std::abs(old_epsilon - m_epsilon) > 1e-6 * m_epsilon) { + cvm::log("WARNING: previous epsilon was " + cvm::to_str(old_epsilon) + + " while now it is " + cvm::to_str(m_epsilon) + + " (the new one is used).\n"); + } + cvm::real old_cutoff; + readFieldReal("kernel_cutoff", old_cutoff); + if (std::abs(old_cutoff - m_cutoff) > 1e-6 * m_cutoff) { + cvm::log("WARNING: previous cutoff was " + cvm::to_str(old_cutoff) + + " while now it is " + cvm::to_str(m_cutoff) + + " (the new one is used).\n"); + } + m_cutoff2 = m_cutoff * m_cutoff; + cvm::real old_compression_threshold; + readFieldReal("compression_threshold", old_compression_threshold); + if (std::abs(old_compression_threshold - m_compression_threshold) > 1e-6 * m_compression_threshold) { + cvm::log("WARNING: previous cutoff was " + cvm::to_str(old_compression_threshold) + + " while now it is " + cvm::to_str(m_compression_threshold) + + " (the new one is used).\n"); + } + m_compression_threshold2 = m_compression_threshold * m_compression_threshold; + readFieldReal("zed", m_zed); + readFieldReal("sum_weights", m_sum_weights); + readFieldReal("sum_weights2", m_sum_weights2); + unsigned long long tmp_counter = 1; + readFieldULL("counter", tmp_counter); + m_counter = tmp_counter; + if (m_adaptive_sigma) { + readFieldULL("adaptive_counter", tmp_counter); + m_adaptive_counter = tmp_counter; + for (size_t i = 0; i < num_variables(); ++i) { + readFieldReal("sigma0_" + variables(i)->name, m_sigma0[i]); + readFieldReal("av_cv_" + variables(i)->name, m_av_cv[i]); + readFieldReal("av_M2_" + variables(i)->name, m_av_M2[i]); + } + } + unsigned long long kernel_size = 0; + readFieldULL("num_hills", kernel_size); + if (kernel_size > 0) m_kernels.resize(kernel_size); + read_state_data_key(is, "hills"); + auto consume = [&](const std::string& expected_token){ + if (formatted) { + std::string field; + is >> field; + if (field.compare(expected_token) != 0) { + throw std::runtime_error("Expect " + expected_token + " but got " + field + "\n"); + } + } + }; + consume("{"); + for (size_t k = 0; k < m_kernels.size(); ++k) { + consume("{"); + unsigned long long tmp_k = 0; + is >> tmp_k; + if (formatted && k != tmp_k) { + throw std::runtime_error("Corrupt hill data\n"); + } + kernel current_kernel; + current_kernel.m_center.resize(num_variables()); + current_kernel.m_sigma.resize(num_variables()); + for (size_t i = 0; i < num_variables(); ++i) { + is >> current_kernel.m_center[i]; + } + for (size_t i = 0; i < num_variables(); ++i) { + is >> current_kernel.m_sigma[i]; + } + is >> current_kernel.m_height; + m_kernels[k] = current_kernel; + consume("}"); + } + consume("}"); + if (m_pmf_grid_on) { + read_state_data_key(is, "probability_grid"); + m_reweight_grid->read_raw(is); + } + m_kdenorm = m_explore ? m_counter : m_sum_weights; + m_traj_line.rct = m_kbt * cvm::logn(m_sum_weights / m_counter); + m_traj_line.zed = m_zed; + m_traj_line.neff = (1 + m_sum_weights) * (1 + m_sum_weights) / (1 + m_sum_weights2); + m_traj_line.nker = m_kernels.size(); + showInfo(); + return is; +} + +std::istream& colvarbias_opes::read_state_data(std::istream &is) { + try { + auto& ret = read_state_data_template_(is); + return ret; + } catch (const std::exception& e) { + cvm::error(e.what()); + } + return is; +} + +cvm::memory_stream& colvarbias_opes::read_state_data(cvm::memory_stream &is) { + try { + auto& ret = read_state_data_template_(is); + return ret; + } catch (const std::exception& e) { + cvm::error(e.what()); + } + return is; +} + +void colvarbias_opes::addKernel(const double height, const std::vector& center, const std::vector& sigma, const double logweight) { + addKernel(height,center,sigma); + const std::ios_base::fmtflags f = m_kernels_output.flags(); + m_kernels_output << std::right; + // simulation time in ps + m_kernels_output << std::setw(24) << (cvm::step_absolute() * cvm::dt()) * 1e-3; + for (size_t i = 0; i < num_variables(); ++i) { + m_kernels_output << " " << std::setw(24) << std::setprecision(16) << center[i]; + } + for (size_t i = 0; i < num_variables(); ++i) { + m_kernels_output << " " << std::setw(24) << std::setprecision(16) << sigma[i]; + } + m_kernels_output << " " << std::setw(24) << std::setprecision(16) << height; + m_kernels_output << " " << std::setw(24) << std::setprecision(16) << logweight; + m_kernels_output << std::endl; + m_kernels_output.flags(f); +} + +void colvarbias_opes::addKernel(const double height, const std::vector& center, const std::vector& sigma) { + bool no_match = true; + if (m_compression_threshold2 != 0) { + size_t taker_k = getMergeableKernel(center, m_kernels.size()); + if (taker_k < m_kernels.size()) { + no_match = false; + m_delta_kernels.emplace_back(-1 * m_kernels[taker_k].m_height, m_kernels[taker_k].m_center, m_kernels[taker_k].m_sigma); + mergeKernels(m_kernels[taker_k], kernel(height, center, sigma)); + m_delta_kernels.push_back(m_kernels[taker_k]); + if (m_recursive_merge) { + size_t giver_k = taker_k; + taker_k = getMergeableKernel(m_kernels[giver_k].m_center, giver_k); + while (taker_k < m_kernels.size()) { + m_delta_kernels.pop_back(); + m_delta_kernels.emplace_back(-1 * m_kernels[taker_k].m_height, m_kernels[taker_k].m_center, m_kernels[taker_k].m_sigma); + if (taker_k > giver_k) std::swap(taker_k, giver_k); + mergeKernels(m_kernels[taker_k], m_kernels[giver_k]); + m_delta_kernels.push_back(m_kernels[taker_k]); + m_kernels.erase(m_kernels.begin() + giver_k); + if (m_nlist) { + size_t giver_nk = 0; + bool found_giver = false; + for (size_t nk = 0; nk < m_nlist_index.size(); ++nk) { + if (found_giver) m_nlist_index[nk]--; + if (m_nlist_index[nk] == giver_k) { + giver_nk = nk; + found_giver = true; + } + } + if (found_giver == false) { + cvm::error("problem with merging and nlist\n"); + } + m_nlist_index.erase(m_nlist_index.begin() + giver_nk); + } + giver_k = taker_k; + taker_k = getMergeableKernel(m_kernels[giver_k].m_center, giver_k); + } + } + } + } + if (no_match) { + m_kernels.emplace_back(height, center, sigma); + m_delta_kernels.emplace_back(height, center, sigma); + if (m_nlist) m_nlist_index.push_back(m_kernels.size() - 1); + } +} + +void colvarbias_opes::mergeKernels(kernel& k1, const kernel& k2) const { + const double h = k1.m_height + k2.m_height; + for (size_t i = 0; i < k1.m_center.size(); ++i) { + const bool isPeriodic_i = variables(i)->is_enabled(f_cv_periodic); + if (isPeriodic_i) { + k1.m_center[i] = k2.m_center[i] + 0.5 * variables(i)->dist2_lgrad(k1.m_center[i], k2.m_center[i]).real_value; + } + const cvm::real c_i = (k1.m_height * k1.m_center[i] + + k2.m_height * k2.m_center[i]) / h; + const cvm::real ss_k1_part = k1.m_height * (k1.m_sigma[i] * k1.m_sigma[i] + k1.m_center[i] * k1.m_center[i]); + const cvm::real ss_k2_part = k2.m_height * (k2.m_sigma[i] * k2.m_sigma[i] + k2.m_center[i] * k2.m_center[i]); + const cvm::real ss_i = (ss_k1_part + ss_k2_part) / h - c_i * c_i; + if (isPeriodic_i) { + colvarvalue tmp(c_i); + variables(i)->wrap(tmp); + k1.m_center[i] = tmp.real_value; + } else { + k1.m_center[i] = c_i; + } + k1.m_sigma[i] = cvm::sqrt(ss_i); + } + k1.m_height = h; +} + +size_t colvarbias_opes::getMergeableKernel(const std::vector& giver_center, const size_t giver_k) const { + size_t min_k = m_kernels.size(); + cvm::real min_norm2 = m_compression_threshold2; + const int num_parallel = 1; + if (!m_nlist) { + if (m_num_threads == 1) { + for (size_t k = 0; k < m_kernels.size(); ++k) { + if (k == giver_k) continue; + double norm2 = 0; + for (size_t i = 0; i < num_variables(); ++i) { + norm2 += variables(i)->dist2(giver_center[i], m_kernels[k].m_center[i]) / (m_kernels[k].m_sigma[i] * m_kernels[k].m_sigma[i]); + if (norm2 >= min_norm2) break; + } + if (norm2 < min_norm2) { + min_norm2 = norm2; + min_k = k; + } + } + } else { +#if defined(_OPENMP) + #pragma omp parallel num_threads(m_num_threads) + { + int min_k_omp = min_k; + cvm::real min_norm2_omp = m_compression_threshold2; + #pragma omp for nowait + for (int k = 0; k < static_cast(m_kernels.size()); ++k) { + if (k == static_cast(giver_k)) continue; + double norm2 = 0; + for (int i = 0; i < static_cast(num_variables()); ++i) { + norm2 += variables(i)->dist2( giver_center[i], m_kernels[k].m_center[i]) / (m_kernels[k].m_sigma[i] * m_kernels[k].m_sigma[i]); + if (norm2 >= min_norm2_omp) break; + } + if (norm2 < min_norm2_omp) { + min_norm2_omp = norm2; + min_k_omp = k; + } + } + #pragma omp critical + { + if (min_norm2_omp < min_norm2) { + min_norm2 = min_norm2_omp; + min_k = min_k_omp; + } + } + } +#elif defined(CMK_SMP) && defined(USE_CKLOOP) + // NOTE: No existing reduction type for finding the minimum, so I have + // to use such a workaround. + std::vector min_k_smp(m_num_threads, min_k); + std::vector min_norm2_smp(m_num_threads, m_compression_threshold2); + auto worker = [&](int start, int end, void* unused) { + const int tid = cvm::proxy->smp_thread_id(); + for (int k = start; k <= end; ++k) { + if (k == giver_k) continue; + double norm2 = 0; + for (size_t j = 0; j < num_variables(); ++j) { + norm2 += variables(i)->dist2( giver_center[i], m_kernels[k].m_center[i]) / (m_kernels[k].m_sigma[i] * m_kernels[k].m_sigma[i]); + if (norm2 >= min_norm2_smp[tid]) break; + } + if (norm2 < min_norm2_smp[tid]) { + min_norm2_smp[tid] = norm2; + min_k_smp[tid] = k; + } + } + }; + const size_t numChunks = m_kernels.size(); + const size_t lowerRange = 0; + const size_t upperRange = numChunks - 1; + CkLoop_Parallelize( + numChunks, lowerRange, upperRange, + worker, NULL, CKLOOP_NONE, NULL); + const auto it_min = std::min_element(min_norm2_smp.begin(), min_norm2_smp.end()); + min_norm2 = *it_min; + min_k = min_k_smp[std::distance(min_norm2_smp.begin(), it_min)]; +#else + cvm::error("OPES cannot run because this binary is not linked with a supported threading library.\n"); +#endif + } + } else { + if (m_num_threads == 1) { + // size_t min_k_omp = min_k; + // cvm::real min_norm2_omp = m_compression_threshold2; + for (size_t nk = 0; nk < m_nlist_index.size(); ++nk) { + const size_t k = m_nlist_index[nk]; + if (k == giver_k) continue; + double norm2 = 0; + for (size_t i = 0; i < num_variables(); ++i) { + norm2 += variables(i)->dist2(giver_center[i], m_kernels[k].m_center[i]) / (m_kernels[k].m_sigma[i] * m_kernels[k].m_sigma[i]); + if (norm2 >= min_norm2) break; + } + if (norm2 < min_norm2) { + min_norm2 = norm2; + min_k = k; + } + } + } else { +#if defined(_OPENMP) + #pragma omp parallel num_threads(m_num_threads) + { + size_t min_k_omp = min_k; + cvm::real min_norm2_omp = m_compression_threshold2; + #pragma omp for nowait + for (int nk = 0; nk < static_cast(m_nlist_index.size()); ++nk) { + const size_t k = m_nlist_index[nk]; + if (k == giver_k) continue; + double norm2 = 0; + for (int i = 0; i < static_cast(num_variables()); ++i) { + norm2 += variables(i)->dist2(giver_center[i], m_kernels[k].m_center[i]) / (m_kernels[k].m_sigma[i] * m_kernels[k].m_sigma[i]); + if (norm2 >= min_norm2_omp) break; + } + if (norm2 < min_norm2_omp) { + min_norm2_omp = norm2; + min_k_omp = k; + } + } + #pragma omp critical + { + if (min_norm2_omp < min_norm2) { + min_norm2 = min_norm2_omp; + min_k = min_k_omp; + } + } + } +#elif defined(CMK_SMP) && defined(USE_CKLOOP) + // NOTE: No existing reduction type for finding the minimum, so I have + // to use such a workaround. + std::vector min_k_smp(m_num_threads, min_k); + std::vector min_norm2_smp(m_num_threads, m_compression_threshold2); + auto worker = [&](int start, int end, void* unused) { + const int tid = cvm::proxy->smp_thread_id(); + for (int nk = start; nk <= end; ++nk) { + const size_t k = m_nlist_index[nk]; + if (k == giver_k) continue; + double norm2 = 0; + for (size_t j = 0; j < num_variables(); ++j) { + norm2 += variables(i)->dist2( giver_center[i], m_kernels[k].m_center[i]) / (m_kernels[k].m_sigma[i] * m_kernels[k].m_sigma[i]); + if (norm2 >= min_norm2_smp[tid]) break; + } + if (norm2 < min_norm2_smp[tid]) { + min_norm2_smp[tid] = norm2; + min_k_smp[tid] = k; + } + } + }; + const size_t numChunks = m_nlist_index.size(); + const size_t lowerRange = 0; + const size_t upperRange = numChunks - 1; + CkLoop_Parallelize( + numChunks, lowerRange, upperRange, + worker, NULL, CKLOOP_NONE, NULL); + const auto it_min = std::min_element(min_norm2_smp.begin(), min_norm2_smp.end()); + min_norm2 = *it_min; + min_k = min_k_smp[std::distance(min_norm2_smp.begin(), it_min)]; +#else + cvm::error("OPES cannot run because this binary is not linked with a supported threading library.\n"); +#endif + } + } + if (num_parallel > 1) { + cvm::error("The Colvars OPES implementation does not support running OPES in parallel across nodes.\n"); + } + return min_k; +} + +std::string const colvarbias_opes::traj_file_name(const std::string& suffix) const { + return std::string(cvm::output_prefix()+ + ".colvars."+this->name+ + ( (comm != single_replica) ? + ("."+replica_id) : + ("") )+ + suffix); +} + +int colvarbias_opes::write_output_files() { + int error_code = COLVARS_OK; + thread_local static bool firsttime = true; + // Write the kernels + const std::string kernels_filename = traj_file_name(".kernels.dat"); + std::ostream& os_kernels = cvm::proxy->output_stream(kernels_filename, "kernels file"); + const std::ios_base::fmtflags format_kernels = os_kernels.flags(); + if (firsttime) { + os_kernels << "#! FIELDS time "; + for (size_t i = 0; i < num_variables(); ++i) { + os_kernels << variables(i)->name + " "; + } + for (size_t i = 0; i < num_variables(); ++i) { + os_kernels << "sigma_" + variables(i)->name + " "; + } + os_kernels << "height logweight\n"; + // Make sure the action name compatible with the script in https://github.com/invemichele/opes/blob/master/postprocessing/State_from_Kernels.py + if (m_explore) os_kernels << "#! SET action OPES_METAD_EXPLORE_kernels\n"; + else os_kernels << "#! SET action OPES_METAD_kernels\n"; + if (m_inf_biasfactor) { + os_kernels << "#! SET biasfactor " << "inf" << "\n"; + } else { + os_kernels << "#! SET biasfactor " << m_biasfactor << "\n"; + } + os_kernels << "#! SET epsilon " << m_epsilon << "\n"; + os_kernels << "#! SET kernel_cutoff " << m_cutoff << "\n"; + os_kernels << "#! SET compression_threshold " << m_compression_threshold << "\n"; + for (size_t i = 0; i < num_variables(); ++i) { + if (variables(i)->is_enabled(f_cv_periodic)) { + if (variables(i)->is_enabled(f_cv_lower_boundary)) { + os_kernels << "#! SET min_" + variables(i)->name + " " << variables(i)->lower_boundary.real_value << "\n"; + } + if (variables(i)->is_enabled(f_cv_upper_boundary)) { + os_kernels << "#! SET max_" + variables(i)->name + " " << variables(i)->upper_boundary.real_value << "\n"; + } + } + } + } + os_kernels << m_kernels_output.str(); + os_kernels.setf(format_kernels); + error_code |= cvm::proxy->flush_output_stream(kernels_filename); + m_kernels_output.str(""); + m_kernels_output.clear(); + + // Write the trajectory + const std::string traj_filename = traj_file_name(".misc.traj"); + std::ostream& os_traj = cvm::proxy->output_stream(traj_filename, "trajectory of various OPES properties"); + const std::ios_base::fmtflags format_traj = os_traj.flags(); + if (firsttime) { + os_traj << "#! FIELDS time "; + for (size_t i = 0; i < num_variables(); ++i) { + os_traj << variables(i)->name + " "; + } + os_traj << this->name + ".bias "; + os_traj << this->name + ".rct "; + if (!m_no_zed) os_traj << this->name + ".zed "; + os_traj << this->name + ".neff "; + if (m_calc_work) if (!m_no_zed) os_traj << this->name + ".work "; + os_traj << this->name + ".nker "; + if (m_nlist) os_traj << this->name + ".nlker "; + if (m_nlist) os_traj << this->name + ".nlsteps "; + os_traj << "\n"; + for (size_t i = 0; i < num_variables(); ++i) { + if (variables(i)->is_enabled(f_cv_lower_boundary)) { + os_traj << "#! SET min_" + variables(i)->name + " " << variables(i)->lower_boundary.real_value << "\n"; + } + if (variables(i)->is_enabled(f_cv_upper_boundary)) { + os_traj << "#! SET max_" + variables(i)->name + " " << variables(i)->upper_boundary.real_value << "\n"; + } + } + } + os_traj << m_traj_oss.str(); + os_traj.setf(format_traj); + error_code |= cvm::proxy->flush_output_stream(traj_filename); + m_traj_oss.str(""); + m_traj_oss.clear(); + if (firsttime) firsttime = false; + if (m_pmf_grid_on) { + error_code |= computePMF(); + const std::string pmf_filename = traj_file_name(".pmf"); + error_code |= writePMF(m_pmf_grid, pmf_filename, false); + if (comm == multiple_replicas && m_pmf_shared) { + if (cvm::proxy->replica_index() == 0) { + const std::string global_pmf_filename = traj_file_name(".global.pmf"); + error_code |= writePMF(m_global_pmf_grid, global_pmf_filename, false); + } + } + if (m_pmf_hist_freq > 0 && cvm::step_absolute() % m_pmf_hist_freq == 0) { + const std::string pmf_hist_filename = traj_file_name(".hist.pmf"); + error_code |= writePMF(m_pmf_grid, pmf_hist_filename, true); + if (comm == multiple_replicas && m_pmf_shared) { + if (cvm::proxy->replica_index() == 0) { + const std::string global_hist_pmf_filename = traj_file_name(".global.hist.pmf"); + error_code |= writePMF(m_global_pmf_grid, global_hist_pmf_filename, true); + } + } + } + } + // To prevent the case that one replica exits earlier and then destroys all streams + if (comm == multiple_replicas) cvm::proxy->replica_comm_barrier(); + return error_code; +} + +void hist_to_pmf(const cvm::real kbt, const colvar_grid_scalar *hist, std::unique_ptr& pmf) { + // Get the sum of probabilities of all grids + cvm::real norm_factor = 0; + cvm::real max_prob = 0; + auto& prob_data = hist->data; + for (auto it = prob_data.begin(); it != prob_data.end(); ++it) { + norm_factor += (*it); + if ((*it) > max_prob) max_prob = (*it); + } + if (norm_factor > 0) { + const cvm::real min_pmf = (max_prob > 0) ? -1.0 * kbt * cvm::logn(max_prob / norm_factor) : 0; + auto& pmf_data = pmf->data; + for (size_t i = 0; i < pmf_data.size(); ++i) { + if (prob_data[i] > 0) { + pmf_data[i] = -1.0 * kbt * cvm::logn(prob_data[i] / norm_factor) - min_pmf; + } + } + auto max_pmf = *std::max_element(pmf_data.begin(), pmf_data.end()); + for (size_t i = 0; i < pmf_data.size(); ++i) { + if (!(prob_data[i] > 0)) { + pmf_data[i] = max_pmf; + } + } + } +} + +int colvarbias_opes::computePMF() { + // Multiple replica: collect all samples from other replicas + if (comm == multiple_replicas && m_pmf_shared) { + const size_t samples_n = m_reweight_grid->raw_data_num(); + const int msg_size = samples_n * sizeof(cvm::real); + std::vector buffer; + if (cvm::main()->proxy->replica_index() == 0) { + buffer.resize(samples_n * (cvm::proxy->num_replicas() - 1)); + for (int p = 1; p < cvm::proxy->num_replicas(); p++) { + const size_t start_pos = (p - 1) * samples_n; + if (cvm::proxy->replica_comm_recv((char*)&(buffer[start_pos]), msg_size, p) != msg_size) { + return cvm::error("Error getting shared OPES reweighting histogram from replica " + cvm::to_str(p)); + } + } + } else { + if (cvm::proxy->replica_comm_send((char*)(&(m_reweight_grid->data[0])), msg_size, 0) != msg_size) { + return cvm::error("Error sending shared OPES reweighting histogram from replica " + cvm::to_str(cvm::main()->proxy->replica_index())); + } + } + cvm::proxy->replica_comm_barrier(); + // Broadcast m_reweight_grid to all replicas + auto& global_data = m_global_reweight_grid->data; + if (cvm::main()->proxy->replica_index() == 0) { + global_data = m_reweight_grid->data; + // Sum the samples on PE 0 + for (int p = 1; p < cvm::proxy->num_replicas(); p++) { + const size_t start_pos = (p - 1) * samples_n; + for (size_t i = 0 ; i < samples_n; ++i) { + global_data[i] += buffer[start_pos+i]; + } + } + } + } + // Get the sum of probabilities of all grids + hist_to_pmf(m_kbt, m_reweight_grid.get(), m_pmf_grid); + if (comm == multiple_replicas && m_pmf_shared) { + if (cvm::main()->proxy->replica_index() == 0) { + hist_to_pmf(m_kbt, m_global_reweight_grid.get(), m_global_pmf_grid); + } + } + if (comm == multiple_replicas) { + cvm::proxy->replica_comm_barrier(); + } + return COLVARS_OK; +} + +int colvarbias_opes::writePMF(const std::unique_ptr& pmf_grid, const std::string &filename, bool keep_open) { + std::ostream& os = cvm::proxy->output_stream(filename, "output stream of " + filename); + if (!os) { + return COLVARS_FILE_ERROR; + } + pmf_grid->write_multicol(os); + if (!keep_open) { + cvm::proxy->close_output_stream(filename); + } else { + cvm::proxy->flush_output_stream(filename); + } + return COLVARS_OK; +} + +void colvarbias_opes::writeTrajBuffer() { + if (m_traj_output_frequency > 0 && cvm::step_absolute() % m_traj_output_frequency == 0) { + m_traj_oss << std::right; + m_traj_oss << std::scientific << " " << std::setw(cvm::cv_width) << std::setprecision(cvm::cv_prec) << (cvm::step_absolute() * cvm::dt()) * 1e-3; + for (size_t i = 0; i < num_variables(); ++i) { + m_traj_oss << std::scientific << " " << std::setw(cvm::cv_width) << std::setprecision(cvm::cv_prec) << variables(i)->value().real_value; + } + m_traj_oss << std::scientific << " " << std::setw(cvm::cv_width) << std::setprecision(cvm::cv_prec) << bias_energy; + m_traj_oss << std::scientific << " " << std::setw(cvm::cv_width) << std::setprecision(cvm::cv_prec) << m_traj_line.rct; + if (!m_no_zed) m_traj_oss << std::scientific << " " << std::setw(cvm::cv_width) << std::setprecision(cvm::cv_prec) << m_traj_line.zed; + m_traj_oss << std::scientific << " " << std::setw(cvm::cv_width) << std::setprecision(cvm::cv_prec) << m_traj_line.neff; + if (m_calc_work) m_traj_oss << std::scientific << " " << std::setw(cvm::cv_width) << std::setprecision(cvm::cv_prec) << m_traj_line.work; + m_traj_oss << " " << m_traj_line.nker; + if (m_nlist) m_traj_oss << " " << m_traj_line.nlker; + if (m_nlist) m_traj_oss << " " << m_traj_line.nlsteps; + m_traj_oss << "\n"; + } +} + +void colvarbias_opes::updateNlist(const std::vector& center) { + if (m_kernels.empty()) return; + m_nlist_center = center; + m_nlist_index.clear(); + if (m_num_threads == 1 || m_kernels.size() < 2 * m_num_threads) { + for (size_t k = 0; k < m_kernels.size(); ++k) { + cvm::real norm2_k = 0; + for (size_t i = 0; i < num_variables(); ++i) { + norm2_k += variables(i)->dist2(m_nlist_center[i], m_kernels[k].m_center[i]) / (m_kernels[k].m_sigma[i] * m_kernels[k].m_sigma[i]); + } + if (norm2_k <= m_nlist_param[0] * m_cutoff2) { + m_nlist_index.push_back(k); + } + } + } else { +#if defined (_OPENMP) + #pragma omp parallel num_threads(m_num_threads) + { + std::vector private_nlist_index; + #pragma omp for nowait + for (int k = 0; k < static_cast(m_kernels.size()); ++k) { + cvm::real norm2_k = 0; + for (int i = 0; i < static_cast(num_variables()); ++i) { + norm2_k += variables(i)->dist2(m_nlist_center[i], m_kernels[k].m_center[i]) / (m_kernels[k].m_sigma[i] * m_kernels[k].m_sigma[i]); + } + if (norm2_k <= m_nlist_param[0] * m_cutoff2) { + private_nlist_index.push_back(static_cast(k)); + } + } + #pragma omp critical + m_nlist_index.insert(m_nlist_index.end(), private_nlist_index.begin(), private_nlist_index.end()); + } +#elif defined(CMK_SMP) && defined(USE_CKLOOP) + std::vector> private_nlist_index(m_num_threads); + auto worker = [&](int start, int end, void* unused){ + const int tid = cvm::proxy->smp_thread_id(); + for (int k = start; k <= end; ++k) { + cvm::real norm2_k = 0; + for (size_t i = 0; i < num_variables(); ++i) { + norm2_k += variables(i)->dist2(m_nlist_center[i], m_kernels[k].m_center[i]) / (m_kernels[k].m_sigma[i] * m_kernels[k].m_sigma[i]); + } + if (norm2_k <= m_nlist_param[0] * m_cutoff2) { + private_nlist_index[tid].push_back(k); + } + } + }; + const size_t numChunks = m_kernels.size(); + const size_t lowerRange = 0; + const size_t upperRange = numChunks - 1; + CkLoop_Parallelize( + numChunks, lowerRange, upperRange, + worker, NULL, CKLOOP_NONE, NULL); + for (size_t j = 0; j < m_num_threads; ++j) { + m_nlist_index.insert(m_nlist_index.end(), private_nlist_index[i].begin(), private_nlist_index.end()); + } +#else + cvm::error("OPES cannot run because this binary is not linked with a supported threading library.\n"); +#endif + if (m_recursive_merge) { + std::sort(m_nlist_index.begin(), m_nlist_index.end()); + } + } + std::vector dev2(num_variables(), 0); + for (size_t k = 0; k < m_nlist_index.size(); ++k) { + for (size_t i = 0; i < num_variables(); ++i) { + dev2[i] += variables(i)->dist2(m_nlist_center[i], m_kernels[m_nlist_index[k]].m_center[i]); + } + } + for (size_t i = 0; i < num_variables(); ++i) { + if (m_nlist_index.empty()) { + m_nlist_dev2[i] = m_kernels.back().m_sigma[i] * m_kernels.back().m_sigma[i]; + } else { + m_nlist_dev2[i] = dev2[i] / m_nlist_index.size(); + } + } + m_traj_line.nlker = m_nlist_index.size(); + m_traj_line.nlsteps = m_nlist_steps; + m_nlist_steps = 0; + m_nlist_update = false; +} diff --git a/lib/colvars/colvarbias_opes.h b/lib/colvars/colvarbias_opes.h new file mode 100644 index 0000000000..0c52ba2413 --- /dev/null +++ b/lib/colvars/colvarbias_opes.h @@ -0,0 +1,176 @@ +#ifndef COLVARBIAS_OPES_H +#define COLVARBIAS_OPES_H + +// This code is mainly adapted from the PLUMED opes module, which uses the +// LGPLv3 license as shown below: +/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Copyright (c) 2020-2021 of Michele Invernizzi. + + This file is part of the OPES plumed module. + + The OPES plumed module is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + The OPES plumed module is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with plumed. If not, see . ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */ + +#include "colvarbias.h" + +#include +#include + +// OPES_METAD implementation: swiped from OPESmetad.cpp of PLUMED +class colvarbias_opes: public colvarbias { +public: + /// The Gaussian kernel data structure + struct kernel { + cvm::real m_height; + std::vector m_center; + std::vector m_sigma; + kernel() {} + kernel(cvm::real h, const std::vector& c, + const std::vector& s): + m_height(h), m_center(c), m_sigma(s) {} + }; + /// Communication between different replicas + enum Communication { + /// One replica (default) + single_replica, + /// Hills added concurrently by several replicas + multiple_replicas + }; + /// Constructor + colvarbias_opes(char const *key); + /// Initializer + int init(std::string const &conf) override; + /// Per-timestep update + int update() override; + /// Save the state to a text file for restarting + std::ostream &write_state_data(std::ostream &os) override; + /// Read the state from a text file for restarting + std::istream &read_state_data(std::istream &is) override; + /// Save the state to a binary file for restarting + cvm::memory_stream &write_state_data(cvm::memory_stream &os) override; + /// Read the state from a binary file for restarting + cvm::memory_stream &read_state_data(cvm::memory_stream &is) override; + /// Write to files at restart steps + int write_output_files() override; +private: + int update_opes(); + int calculate_opes(); + void save_state(); + cvm::real getProbAndDerivatives(const std::vector& cv, std::vector& der_prob) const; + cvm::real evaluateKernel(const kernel& G, const std::vector& x) const; + cvm::real evaluateKernel(const kernel& G, const std::vector& x, std::vector& accumulated_derivative, std::vector& dist) const; + void addKernel(const double height, const std::vector& center, const std::vector& sigma, const double logweight); + void addKernel(const double height, const std::vector& center, const std::vector& sigma); + size_t getMergeableKernel(const std::vector& giver_center, const size_t giver_k) const; + void mergeKernels(kernel& k1, const kernel& k2) const; + void updateNlist(const std::vector& center); + struct traj_line { + double rct; + double zed; + double neff; + double work; + size_t nker; + size_t nlker; + size_t nlsteps; + }; + void writeTrajBuffer(); + void showInfo() const; + template OST &write_state_data_template_(OST &os) const; + template IST &read_state_data_template_(IST &os); + std::string const traj_file_name(const std::string& suffix) const; + int collectSampleToPMFGrid(); + int computePMF(); + int writePMF(const std::unique_ptr& pmf_grid, const std::string &filename, bool keep_open); +private: + cvm::real m_kbt; + cvm::real m_barrier; + cvm::real m_biasfactor; + cvm::real m_bias_prefactor; + cvm::real m_temperature; + cvm::step_number m_pace; + cvm::step_number m_adaptive_sigma_stride; + cvm::step_number m_adaptive_counter; + unsigned long long m_counter; + cvm::real m_compression_threshold; + cvm::real m_compression_threshold2; + bool m_adaptive_sigma; + bool m_fixed_sigma; + bool m_no_zed; + // bool m_restart; + bool m_nlist; + bool m_recursive_merge; + std::vector m_nlist_param; + std::vector m_sigma0; + std::vector m_sigma_min; + cvm::real m_epsilon; + cvm::real m_sum_weights; + cvm::real m_sum_weights2; + cvm::real m_cutoff; + cvm::real m_cutoff2; + cvm::real m_zed; + cvm::real m_old_kdenorm; + cvm::real m_kdenorm; + cvm::real m_val_at_cutoff; + cvm::real m_rct; + cvm::real m_neff; + std::vector m_kernels; + std::vector m_delta_kernels; + std::vector m_av_cv; + std::vector m_av_M2; + std::ostringstream m_kernels_output; + std::vector m_nlist_center; + std::vector m_nlist_index; + std::vector m_nlist_dev2; + size_t m_nlist_steps; + bool m_nlist_update; + bool m_nlist_pace_reset; + size_t m_nker; + bool m_calc_work; + cvm::real m_work; + /// Communication between different replicas + Communication comm; + /// \brief Identifier for this replica + std::string replica_id; + size_t m_num_walkers; + size_t shared_freq; + size_t m_num_threads; + size_t m_nlker; + // size_t m_state_stride; + // std::unordered_map m_kernel_output_components; + std::string m_kernels_output_headers; + cvm::step_number m_traj_output_frequency; + traj_line m_traj_line; + std::ostringstream m_traj_oss; + bool m_is_first_step; + std::vector m_cv; + // For saving states + decltype(m_zed) m_saved_zed; + decltype(m_sum_weights) m_saved_sum_weights; + decltype(m_sum_weights2) m_saved_sum_weights2; + decltype(m_kernels) m_saved_kernels; + // PMF grid from reweighting + bool m_pmf_grid_on; + std::vector m_pmf_cvs; + std::string grid_conf; + std::shared_ptr m_reweight_grid; + std::unique_ptr m_pmf_grid; + cvm::step_number m_pmf_hist_freq; + bool m_pmf_shared; // shared PMF among replicas + std::unique_ptr m_global_reweight_grid; + std::unique_ptr m_global_pmf_grid; + bool m_explore; + bool m_inf_biasfactor; +}; + +#endif // COLVARBIAS_OPES_H diff --git a/lib/colvars/colvarcomp.cpp b/lib/colvars/colvarcomp.cpp index e6729f43a7..9a056f7dd3 100644 --- a/lib/colvars/colvarcomp.cpp +++ b/lib/colvars/colvarcomp.cpp @@ -261,7 +261,6 @@ int colvar::cvc::init_dependencies() { require_feature_children(f_cvc_explicit_gradient, f_ag_explicit_gradient); init_feature(f_cvc_inv_gradient, "inverse_gradient", f_type_dynamic); - require_feature_self(f_cvc_inv_gradient, f_cvc_gradient); init_feature(f_cvc_debug_gradient, "debug_gradient", f_type_user); require_feature_self(f_cvc_debug_gradient, f_cvc_gradient); @@ -525,7 +524,7 @@ void colvar::cvc::calc_force_invgrads() void colvar::cvc::calc_Jacobian_derivative() { - cvm::error("Error: calculation of inverse gradients is not implemented " + cvm::error("Error: calculation of Jacobian derivatives is not implemented " "for colvar components of type \""+function_type()+"\".\n", COLVARS_NOT_IMPLEMENTED); } @@ -533,8 +532,10 @@ void colvar::cvc::calc_Jacobian_derivative() void colvar::cvc::calc_fit_gradients() { - for (size_t ig = 0; ig < atom_groups.size(); ig++) { - atom_groups[ig]->calc_fit_gradients(); + if (is_enabled(f_cvc_explicit_gradient)) { + for (size_t ig = 0; ig < atom_groups.size(); ig++) { + atom_groups[ig]->calc_fit_gradients(); + } } } diff --git a/lib/colvars/colvarcomp.h b/lib/colvars/colvarcomp.h index 334fdc1f6e..53755576c2 100644 --- a/lib/colvars/colvarcomp.h +++ b/lib/colvars/colvarcomp.h @@ -233,8 +233,14 @@ public: /// Forcibly set value of CVC - useful for driving an external coordinate, /// eg. lambda dynamics - inline void set_value(colvarvalue const &new_value) { + inline void set_value(colvarvalue const &new_value, bool now=false) { x = new_value; + // Cache value to be communicated to back-end between time steps + cvm::proxy->set_alch_lambda(x.real_value); + if (now) { + // If requested (e.g. upon restarting), sync to back-end + cvm::proxy->send_alch_lambda(); + } } protected: @@ -1212,9 +1218,11 @@ protected: // No atom groups needed public: alch_lambda(); + int init_alchemy(int time_step_factor); virtual ~alch_lambda() {} virtual void calc_value(); - virtual void calc_gradients(); + virtual void calc_force_invgrads(); + virtual void calc_Jacobian_derivative(); virtual void apply_force(colvarvalue const &force); }; diff --git a/lib/colvars/colvarcomp_alchlambda.cpp b/lib/colvars/colvarcomp_alchlambda.cpp index a175ea43e8..29168d87ce 100644 --- a/lib/colvars/colvarcomp_alchlambda.cpp +++ b/lib/colvars/colvarcomp_alchlambda.cpp @@ -20,22 +20,46 @@ colvar::alch_lambda::alch_lambda() { set_function_type("alchLambda"); - disable(f_cvc_explicit_gradient); - disable(f_cvc_gradient); + provide(f_cvc_explicit_gradient, false); + provide(f_cvc_gradient, false); // Cannot apply forces on this CVC + provide(f_cvc_collect_atom_ids, false); + + provide(f_cvc_inv_gradient); // Projected force is TI derivative + provide(f_cvc_Jacobian); // Zero x.type(colvarvalue::type_scalar); - // Query initial value from back-end + + // Query initial value from back-end; will be overwritten if restarting from a state file cvm::proxy->get_alch_lambda(&x.real_value); } +int colvar::alch_lambda::init_alchemy(int factor) +{ + // We need calculation every time step + // default in Tinker-HP and NAMD2, must be enforced in NAMD3 + // Also checks back-end settings, ie. that alchemy is enabled + // (in NAMD3: alchType TI, computeEnergies at the right frequency) + + // Forbid MTS until fully implemented + if (factor != 1) { + return cvm::error("Error: timeStepFactor > 1 is not yet supported for alchemical variables."); + } + cvm::proxy->request_alch_energy_freq(factor); + + return COLVARS_OK; +} + + void colvar::alch_lambda::calc_value() { - // Special workflow: - // at the beginning of the timestep we get a force instead of calculating the value + // By default, follow external parameter + // This might get overwritten by driving extended dynamics + // (in apply_force() below) + cvm::proxy->get_alch_lambda(&x.real_value); cvm::proxy->get_dE_dlambda(&ft.real_value); - ft.real_value *= -1.0; // Energy derivative to force + ft.real_value *= -1.0; // Convert energy derivative to force // Include any force due to bias on Flambda ft.real_value += cvm::proxy->indirect_lambda_biasing_force; @@ -43,19 +67,24 @@ void colvar::alch_lambda::calc_value() } -void colvar::alch_lambda::calc_gradients() +void colvar::alch_lambda::calc_force_invgrads() { + // All the work is done in calc_value() +} + + +void colvar::alch_lambda::calc_Jacobian_derivative() +{ + jd = 0.0; } void colvar::alch_lambda::apply_force(colvarvalue const & /* force */) { - // new value will be cached and sent at end of timestep - cvm::proxy->set_alch_lambda(x.real_value); + // Forces, if any, are applied in colvar::update_extended_Lagrangian() } - colvar::alch_Flambda::alch_Flambda() { set_function_type("alch_Flambda"); diff --git a/lib/colvars/colvarcomp_angles.cpp b/lib/colvars/colvarcomp_angles.cpp index 56894e9f5c..0e7aed65ed 100644 --- a/lib/colvars/colvarcomp_angles.cpp +++ b/lib/colvars/colvarcomp_angles.cpp @@ -267,74 +267,22 @@ void colvar::dihedral::calc_value() void colvar::dihedral::calc_gradients() { - cvm::rvector A = cvm::rvector::outer(r12, r23); - cvm::real rA = A.norm(); - cvm::rvector B = cvm::rvector::outer(r23, r34); - cvm::real rB = B.norm(); - cvm::rvector C = cvm::rvector::outer(r23, A); - cvm::real rC = C.norm(); + // Eqs. (27i) ~ (27l) from https://doi.org/10.1002/(SICI)1096-987X(19960715)17:9<1132::AID-JCC5>3.0.CO;2-T. - cvm::real const cos_phi = (A*B)/(rA*rB); - cvm::real const sin_phi = (C*B)/(rC*rB); + const cvm::rvector A = cvm::rvector::outer(r12, r23); + const cvm::rvector B = cvm::rvector::outer(r23, r34); + const cvm::real nG = r23.norm(); + const cvm::real A2 = A.norm2(); + const cvm::real B2 = B.norm2(); - cvm::rvector f1, f2, f3; - - rB = 1.0/rB; - B *= rB; - - if (cvm::fabs(sin_phi) > 0.1) { - rA = 1.0/rA; - A *= rA; - cvm::rvector const dcosdA = rA*(cos_phi*A-B); - cvm::rvector const dcosdB = rB*(cos_phi*B-A); - // rA = 1.0; - - cvm::real const K = (1.0/sin_phi) * (180.0/PI); - - f1 = K * cvm::rvector::outer(r23, dcosdA); - f3 = K * cvm::rvector::outer(dcosdB, r23); - f2 = K * (cvm::rvector::outer(dcosdA, r12) - + cvm::rvector::outer(r34, dcosdB)); - } - else { - rC = 1.0/rC; - C *= rC; - cvm::rvector const dsindC = rC*(sin_phi*C-B); - cvm::rvector const dsindB = rB*(sin_phi*B-C); - // rC = 1.0; - - cvm::real const K = (-1.0/cos_phi) * (180.0/PI); - - f1.x = K*((r23.y*r23.y + r23.z*r23.z)*dsindC.x - - r23.x*r23.y*dsindC.y - - r23.x*r23.z*dsindC.z); - f1.y = K*((r23.z*r23.z + r23.x*r23.x)*dsindC.y - - r23.y*r23.z*dsindC.z - - r23.y*r23.x*dsindC.x); - f1.z = K*((r23.x*r23.x + r23.y*r23.y)*dsindC.z - - r23.z*r23.x*dsindC.x - - r23.z*r23.y*dsindC.y); - - f3 = cvm::rvector::outer(dsindB, r23); - f3 *= K; - - f2.x = K*(-(r23.y*r12.y + r23.z*r12.z)*dsindC.x - +(2.0*r23.x*r12.y - r12.x*r23.y)*dsindC.y - +(2.0*r23.x*r12.z - r12.x*r23.z)*dsindC.z - +dsindB.z*r34.y - dsindB.y*r34.z); - f2.y = K*(-(r23.z*r12.z + r23.x*r12.x)*dsindC.y - +(2.0*r23.y*r12.z - r12.y*r23.z)*dsindC.z - +(2.0*r23.y*r12.x - r12.y*r23.x)*dsindC.x - +dsindB.x*r34.z - dsindB.z*r34.x); - f2.z = K*(-(r23.x*r12.x + r23.y*r12.y)*dsindC.z - +(2.0*r23.z*r12.x - r12.z*r23.x)*dsindC.x - +(2.0*r23.z*r12.y - r12.z*r23.y)*dsindC.y - +dsindB.y*r34.x - dsindB.x*r34.y); - } + const cvm::real K = 180.0/PI; + const cvm::rvector f1 = K * nG / A2 * A; + const cvm::rvector f2 = K * ((r12 * r23 / (A2 * nG)) * A + (r34 * r23 / (B2 * nG)) * B); + const cvm::rvector f3 = K * nG / B2 * B; group1->set_weighted_gradient(-f1); - group2->set_weighted_gradient(-f2 + f1); - group3->set_weighted_gradient(-f3 + f2); + group2->set_weighted_gradient( f2 + f1); + group3->set_weighted_gradient(-f3 - f2); group4->set_weighted_gradient(f3); } diff --git a/lib/colvars/colvarcomp_distances.cpp b/lib/colvars/colvarcomp_distances.cpp index 319190c385..6de68264c3 100644 --- a/lib/colvars/colvarcomp_distances.cpp +++ b/lib/colvars/colvarcomp_distances.cpp @@ -384,32 +384,30 @@ void colvar::distance_dir::apply_force(colvarvalue const &force) cvm::real const iprod = force.rvector_value * x.rvector_value; cvm::rvector const force_tang = force.rvector_value - iprod * x.rvector_value; - if (!group1->noforce) - group1->apply_force(-1.0 * force_tang); - - if (!group2->noforce) - group2->apply_force( force_tang); + if (!group1->noforce) { + group1->apply_force(-1.0 / dist_v.norm() * force_tang); + } + if (!group2->noforce) { + group2->apply_force( 1.0 / dist_v.norm() * force_tang); + } } -cvm::real colvar::distance_dir::dist2(colvarvalue const &x1, - colvarvalue const &x2) const +cvm::real colvar::distance_dir::dist2(colvarvalue const &x1, colvarvalue const &x2) const { - return (x1.rvector_value - x2.rvector_value).norm2(); + return x1.dist2(x2); } -colvarvalue colvar::distance_dir::dist2_lgrad(colvarvalue const &x1, - colvarvalue const &x2) const +colvarvalue colvar::distance_dir::dist2_lgrad(colvarvalue const &x1, colvarvalue const &x2) const { - return colvarvalue((x1.rvector_value - x2.rvector_value), colvarvalue::type_unit3vectorderiv); + return x1.dist2_grad(x2); } -colvarvalue colvar::distance_dir::dist2_rgrad(colvarvalue const &x1, - colvarvalue const &x2) const +colvarvalue colvar::distance_dir::dist2_rgrad(colvarvalue const &x1, colvarvalue const &x2) const { - return colvarvalue((x2.rvector_value - x1.rvector_value), colvarvalue::type_unit3vectorderiv); + return x2.dist2_grad(x1); } @@ -1005,7 +1003,7 @@ void colvar::rmsd::calc_Jacobian_derivative() for (size_t ia = 0; ia < atoms->size(); ia++) { // Gradient of optimal quaternion wrt current Cartesian position - atoms->rot_deriv->calc_derivative_wrt_group1(ia, nullptr, &dq); + atoms->rot_deriv->calc_derivative_wrt_group1(ia, nullptr, &dq); g11 = 2.0 * (atoms->rot.q)[1]*dq[1]; g22 = 2.0 * (atoms->rot.q)[2]*dq[2]; @@ -1304,7 +1302,7 @@ void colvar::eigenvector::calc_Jacobian_derivative() // Gradient of optimal quaternion wrt current Cartesian position // trick: d(R^-1)/dx = d(R^t)/dx = (dR/dx)^t // we can just transpose the derivatives of the direct matrix - atoms->rot_deriv->calc_derivative_wrt_group1(ia, nullptr, &dq_1); + atoms->rot_deriv->calc_derivative_wrt_group1(ia, nullptr, &dq_1); g11 = 2.0 * quat0[1]*dq_1[1]; g22 = 2.0 * quat0[2]*dq_1[2]; @@ -1403,11 +1401,12 @@ void colvar::cartesian::apply_force(colvarvalue const &force) size_t ia, j; if (!atoms->noforce) { cvm::rvector f; + auto ag_force = atoms->get_group_force_object(); for (ia = 0; ia < atoms->size(); ia++) { for (j = 0; j < dim; j++) { f[axes[j]] = force.vector1d_value[dim*ia + j]; } - (*atoms)[ia].apply_force(f); + ag_force.add_atom_force(ia, f); } } } diff --git a/lib/colvars/colvarcomp_protein.cpp b/lib/colvars/colvarcomp_protein.cpp index f782095148..832005e2a7 100644 --- a/lib/colvars/colvarcomp_protein.cpp +++ b/lib/colvars/colvarcomp_protein.cpp @@ -28,34 +28,58 @@ colvar::alpha_angles::alpha_angles() int colvar::alpha_angles::init(std::string const &conf) { int error_code = cvc::init(conf); + if (error_code != COLVARS_OK) return error_code; std::string segment_id; - get_keyval(conf, "psfSegID", segment_id, std::string("MAIN")); - std::vector residues; - { - std::string residues_conf = ""; - key_lookup(conf, "residueRange", &residues_conf); + + bool b_use_index_groups = false; + cvm::atom_group group_CA, group_N, group_O; + + std::string residues_conf = ""; + std::string prefix; + + // residueRange is mandatory for the topology-based case + if (key_lookup(conf, "residueRange", &residues_conf)) { if (residues_conf.size()) { std::istringstream is(residues_conf); int initial, final; char dash; if ( (is >> initial) && (initial > 0) && - (is >> dash) && (dash == '-') && - (is >> final) && (final > 0) ) { + (is >> dash) && (dash == '-') && + (is >> final) && (final > 0) ) { for (int rnum = initial; rnum <= final; rnum++) { residues.push_back(rnum); } } } else { - error_code |= - cvm::error("Error: no residues defined in \"residueRange\".\n", COLVARS_INPUT_ERROR); + return cvm::error("Error: no residues defined in \"residueRange\".\n", COLVARS_INPUT_ERROR); } - } - if (residues.size() < 5) { - error_code |= cvm::error("Error: not enough residues defined in \"residueRange\".\n", - COLVARS_INPUT_ERROR); + if (residues.size() < 5) { + return cvm::error("Error: not enough residues defined in \"residueRange\".\n", COLVARS_INPUT_ERROR); + } + get_keyval(conf, "psfSegID", segment_id, std::string("MAIN")); + + } else { + b_use_index_groups = true; + get_keyval(conf, "prefix", prefix, "alpha_"); + + // Not all groups are mandatory, parse silently + group_CA.add_index_group(prefix + "CA", true); + group_N.add_index_group(prefix + "N", true); + group_O.add_index_group(prefix + "O", true); + int na = group_CA.size(); + int nn = group_N.size(); + int no = group_O.size(); + if ((nn != 0 || no != 0) && (nn != no)) { + return cvm::error("Error: If either is provided, atom groups " + prefix + "N and " + prefix + "O must have the same number of atoms.", + COLVARS_INPUT_ERROR); + } + if (nn != 0 && na != 0 && nn != na) { + return cvm::error("Error: If both are provided, atom groups " + prefix + "N and " + prefix + "CA must have the same number of atoms.", + COLVARS_INPUT_ERROR); + } } std::string const &sid = segment_id; @@ -64,8 +88,7 @@ int colvar::alpha_angles::init(std::string const &conf) get_keyval(conf, "hBondCoeff", hb_coeff, hb_coeff); if ((hb_coeff < 0.0) || (hb_coeff > 1.0)) { - error_code |= - cvm::error("Error: hBondCoeff must be defined between 0 and 1.\n", COLVARS_INPUT_ERROR); + return cvm::error("Error: hBondCoeff must be defined between 0 and 1.\n", COLVARS_INPUT_ERROR); } @@ -73,14 +96,29 @@ int colvar::alpha_angles::init(std::string const &conf) get_keyval(conf, "angleTol", theta_tol, theta_tol); if (hb_coeff < 1.0) { - - for (size_t i = 0; i < residues.size()-2; i++) { - theta.push_back(new colvar::angle(cvm::atom(r[i ], "CA", sid), - cvm::atom(r[i+1], "CA", sid), - cvm::atom(r[i+2], "CA", sid))); - register_atom_group(theta.back()->atom_groups[0]); - register_atom_group(theta.back()->atom_groups[1]); - register_atom_group(theta.back()->atom_groups[2]); + if (b_use_index_groups) { + if (group_CA.size() < 5) { + return cvm::error("Not enough atoms (" + cvm::to_str(group_CA.size()) + ") in index group \"" + prefix + "CA\"", + COLVARS_INPUT_ERROR); + } + for (size_t i = 0; i < group_CA.size()-2; i++) { + // Note: the angle constructor constructs copies of the atom objects + theta.push_back(new colvar::angle(group_CA[i], + group_CA[i+1], + group_CA[i+2])); + register_atom_group(theta.back()->atom_groups[0]); + register_atom_group(theta.back()->atom_groups[1]); + register_atom_group(theta.back()->atom_groups[2]); + } + } else { + for (size_t i = 0; i < residues.size()-2; i++) { + theta.push_back(new colvar::angle(cvm::atom(r[i ], "CA", sid), + cvm::atom(r[i+1], "CA", sid), + cvm::atom(r[i+2], "CA", sid))); + register_atom_group(theta.back()->atom_groups[0]); + register_atom_group(theta.back()->atom_groups[1]); + register_atom_group(theta.back()->atom_groups[2]); + } } } else { @@ -93,14 +131,27 @@ int colvar::alpha_angles::init(std::string const &conf) get_keyval(conf, "hBondExpDenom", ed, ed); if (hb_coeff > 0.0) { - - for (size_t i = 0; i < residues.size()-4; i++) { - hb.push_back(new colvar::h_bond(cvm::atom(r[i ], "O", sid), - cvm::atom(r[i+4], "N", sid), - r0, en, ed)); - register_atom_group(hb.back()->atom_groups[0]); + if (b_use_index_groups) { + if (group_N.size() < 5) { + return cvm::error("Not enough atoms (" + cvm::to_str(group_N.size()) + ") in index group \"" + prefix + "N\"", + COLVARS_INPUT_ERROR); + } + for (size_t i = 0; i < group_N.size()-4; i++) { + // Note: we need to call the atom copy constructor here because + // the h_bond constructor does not make copies of the provided atoms + hb.push_back(new colvar::h_bond(cvm::atom(group_O[i]), + cvm::atom(group_N[i+4]), + r0, en, ed)); + register_atom_group(hb.back()->atom_groups[0]); + } + } else { + for (size_t i = 0; i < residues.size()-4; i++) { + hb.push_back(new colvar::h_bond(cvm::atom(r[i ], "O", sid), + cvm::atom(r[i+4], "N", sid), + r0, en, ed)); + register_atom_group(hb.back()->atom_groups[0]); + } } - } else { cvm::log("The hBondCoeff specified will disable the hydrogen bond terms.\n"); } @@ -290,41 +341,62 @@ int colvar::dihedPC::init(std::string const &conf) if (cvm::debug()) cvm::log("Initializing dihedral PC object.\n"); + bool b_use_index_groups = false; std::string segment_id; - get_keyval(conf, "psfSegID", segment_id, std::string("MAIN")); - std::vector residues; - { - std::string residues_conf = ""; - key_lookup(conf, "residueRange", &residues_conf); + size_t n_residues; + std::string residues_conf = ""; + std::string prefix; + cvm::atom_group group_CA, group_N, group_C; + + // residueRange is mandatory for the topology-based case + if (key_lookup(conf, "residueRange", &residues_conf)) { if (residues_conf.size()) { std::istringstream is(residues_conf); int initial, final; char dash; if ( (is >> initial) && (initial > 0) && - (is >> dash) && (dash == '-') && - (is >> final) && (final > 0) ) { + (is >> dash) && (dash == '-') && + (is >> final) && (final > 0) ) { for (int rnum = initial; rnum <= final; rnum++) { residues.push_back(rnum); } } } else { - error_code |= - cvm::error("Error: no residues defined in \"residueRange\".\n", COLVARS_INPUT_ERROR); + return cvm::error("Error: no residues defined in \"residueRange\".\n", COLVARS_INPUT_ERROR); } - } + n_residues = residues.size(); + get_keyval(conf, "psfSegID", segment_id, std::string("MAIN")); - if (residues.size() < 2) { + } else { + + b_use_index_groups = true; + get_keyval(conf, "prefix", prefix, "dihed_"); + + // All three groups are required + group_CA.add_index_group(prefix + "CA"); + group_N.add_index_group(prefix + "N"); + group_C.add_index_group(prefix + "C"); + int na = group_CA.size(); + int nn = group_N.size(); + int nc = group_C.size(); + if ((nn != na || na != nc)) { + return cvm::error("Error: atom groups " + prefix + "N, " + prefix + "CA, and " + prefix + + "C must have the same number of atoms.", COLVARS_INPUT_ERROR); + } + n_residues = nn; + } + if (n_residues < 2) { error_code |= - cvm::error("Error: dihedralPC requires at least two residues.\n", COLVARS_INPUT_ERROR); + cvm::error("Error: dihedralPC requires at least two residues.\n", COLVARS_INPUT_ERROR); } std::string const &sid = segment_id; std::vector const &r = residues; std::string vecFileName; - int vecNumber; if (get_keyval(conf, "vectorFile", vecFileName, vecFileName)) { + int vecNumber; get_keyval(conf, "vectorNumber", vecNumber, 0); if (vecNumber < 1) { error_code |= @@ -339,9 +411,8 @@ int colvar::dihedPC::init(std::string const &conf) } // TODO: adapt to different formats by setting this flag - bool eigenvectors_as_columns = true; - - if (eigenvectors_as_columns) { + // bool eigenvectors_as_columns = true; + // if (eigenvectors_as_columns) { // Carma-style dPCA file std::string line; cvm::real c; @@ -352,9 +423,7 @@ int colvar::dihedPC::init(std::string const &conf) for (int i=0; i> c; coeffs.push_back(c); } - } -/* TODO Uncomment this when different formats are recognized - else { + /* } else { // Uncomment this when different formats are recognized // Eigenvectors as lines // Skip to the right line for (int i = 1; iatom_groups[0]); register_atom_group(theta.back()->atom_groups[1]); register_atom_group(theta.back()->atom_groups[2]); register_atom_group(theta.back()->atom_groups[3]); // Phi (next res) - theta.push_back(new colvar::dihedral(cvm::atom(r[i ], "C", sid), - cvm::atom(r[i+1], "N", sid), - cvm::atom(r[i+1], "CA", sid), - cvm::atom(r[i+1], "C", sid))); + if (b_use_index_groups) { + theta.push_back(new colvar::dihedral(group_C[i], + group_N[i+1], + group_CA[i+1], + group_C[i+1])); + } else { + theta.push_back(new colvar::dihedral(cvm::atom(r[i ], "C", sid), + cvm::atom(r[i+1], "N", sid), + cvm::atom(r[i+1], "CA", sid), + cvm::atom(r[i+1], "C", sid))); + } register_atom_group(theta.back()->atom_groups[0]); register_atom_group(theta.back()->atom_groups[1]); register_atom_group(theta.back()->atom_groups[2]); diff --git a/lib/colvars/colvarcomp_rotations.cpp b/lib/colvars/colvarcomp_rotations.cpp index a04ace851a..766a0870d1 100644 --- a/lib/colvars/colvarcomp_rotations.cpp +++ b/lib/colvars/colvarcomp_rotations.cpp @@ -137,11 +137,14 @@ void colvar::orientation::apply_force(colvarvalue const &force) if (!atoms->noforce) { rot_deriv_impl->prepare_derivative(rotation_derivative_dldq::use_dq); cvm::vector1d dq0_2; + auto ag_force = atoms->get_group_force_object(); for (size_t ia = 0; ia < atoms->size(); ia++) { - rot_deriv_impl->calc_derivative_wrt_group2(ia, nullptr, &dq0_2); - for (size_t i = 0; i < 4; i++) { - (*atoms)[ia].apply_force(FQ[i] * dq0_2[i]); - } + rot_deriv_impl->calc_derivative_wrt_group2(ia, nullptr, &dq0_2); + const auto f_ia = FQ[0] * dq0_2[0] + + FQ[1] * dq0_2[1] + + FQ[2] * dq0_2[2] + + FQ[3] * dq0_2[3]; + ag_force.add_atom_force(ia, f_ia); } } } @@ -205,7 +208,7 @@ void colvar::orientation_angle::calc_gradients() rot_deriv_impl->prepare_derivative(rotation_derivative_dldq::use_dq); cvm::vector1d dq0_2; for (size_t ia = 0; ia < atoms->size(); ia++) { - rot_deriv_impl->calc_derivative_wrt_group2(ia, nullptr, &dq0_2); + rot_deriv_impl->calc_derivative_wrt_group2(ia, nullptr, &dq0_2); (*atoms)[ia].grad = (dxdq0 * dq0_2[0]); } } @@ -265,7 +268,7 @@ void colvar::orientation_proj::calc_gradients() rot_deriv_impl->prepare_derivative(rotation_derivative_dldq::use_dq); cvm::vector1d dq0_2; for (size_t ia = 0; ia < atoms->size(); ia++) { - rot_deriv_impl->calc_derivative_wrt_group2(ia, nullptr, &dq0_2); + rot_deriv_impl->calc_derivative_wrt_group2(ia, nullptr, &dq0_2); (*atoms)[ia].grad = (dxdq0 * dq0_2[0]); } } @@ -314,7 +317,7 @@ void colvar::tilt::calc_gradients() cvm::vector1d dq0_2; for (size_t ia = 0; ia < atoms->size(); ia++) { (*atoms)[ia].grad = cvm::rvector(0.0, 0.0, 0.0); - rot_deriv_impl->calc_derivative_wrt_group2(ia, nullptr, &dq0_2); + rot_deriv_impl->calc_derivative_wrt_group2(ia, nullptr, &dq0_2); for (size_t iq = 0; iq < 4; iq++) { (*atoms)[ia].grad += (dxdq[iq] * dq0_2[iq]); } @@ -351,7 +354,7 @@ void colvar::spin_angle::calc_gradients() cvm::vector1d dq0_2; for (size_t ia = 0; ia < atoms->size(); ia++) { (*atoms)[ia].grad = cvm::rvector(0.0, 0.0, 0.0); - rot_deriv_impl->calc_derivative_wrt_group2(ia, nullptr, &dq0_2); + rot_deriv_impl->calc_derivative_wrt_group2(ia, nullptr, &dq0_2); for (size_t iq = 0; iq < 4; iq++) { (*atoms)[ia].grad += (dxdq[iq] * dq0_2[iq]); } @@ -399,7 +402,7 @@ void colvar::euler_phi::calc_gradients() rot_deriv_impl->prepare_derivative(rotation_derivative_dldq::use_dq); cvm::vector1d dq0_2; for (size_t ia = 0; ia < atoms->size(); ia++) { - rot_deriv_impl->calc_derivative_wrt_group2(ia, nullptr, &dq0_2); + rot_deriv_impl->calc_derivative_wrt_group2(ia, nullptr, &dq0_2); (*atoms)[ia].grad = (dxdq0 * dq0_2[0]) + (dxdq1 * dq0_2[1]) + (dxdq2 * dq0_2[2]) + @@ -448,7 +451,7 @@ void colvar::euler_psi::calc_gradients() rot_deriv_impl->prepare_derivative(rotation_derivative_dldq::use_dq); cvm::vector1d dq0_2; for (size_t ia = 0; ia < atoms->size(); ia++) { - rot_deriv_impl->calc_derivative_wrt_group2(ia, nullptr, &dq0_2); + rot_deriv_impl->calc_derivative_wrt_group2(ia, nullptr, &dq0_2); (*atoms)[ia].grad = (dxdq0 * dq0_2[0]) + (dxdq1 * dq0_2[1]) + (dxdq2 * dq0_2[2]) + @@ -495,7 +498,7 @@ void colvar::euler_theta::calc_gradients() rot_deriv_impl->prepare_derivative(rotation_derivative_dldq::use_dq); cvm::vector1d dq0_2; for (size_t ia = 0; ia < atoms->size(); ia++) { - rot_deriv_impl->calc_derivative_wrt_group2(ia, nullptr, &dq0_2); + rot_deriv_impl->calc_derivative_wrt_group2(ia, nullptr, &dq0_2); (*atoms)[ia].grad = (dxdq0 * dq0_2[0]) + (dxdq1 * dq0_2[1]) + (dxdq2 * dq0_2[2]) + diff --git a/lib/colvars/colvarcomp_torchann.cpp b/lib/colvars/colvarcomp_torchann.cpp new file mode 100644 index 0000000000..7b83baf9b6 --- /dev/null +++ b/lib/colvars/colvarcomp_torchann.cpp @@ -0,0 +1,233 @@ +// -*- c++ -*- + +// This file is part of the Collective Variables module (Colvars). +// The original version of Colvars and its updates are located at: +// https://github.com/Colvars/colvars +// Please update all Colvars source files before making any changes. +// If you wish to distribute your changes, please submit them to the +// Colvars repository at GitHub. + +#include "colvar.h" +#include "colvarcomp.h" +#include "colvarmodule.h" +#include "colvarparse.h" +#include "colvarvalue.h" + +#include "colvarcomp_torchann.h" + + +#ifdef COLVARS_TORCH + +colvar::torchANN::torchANN() +{ + set_function_type("torchANN"); + provide(f_cvc_periodic); +} + +colvar::torchANN::~torchANN() {} + + +int colvar::torchANN::init(std::string const &conf) { + + int error_code = linearCombination::init(conf); + + std::string model_file ; + get_keyval(conf, "modelFile", model_file, std::string("")); + try { + nn = torch::jit::load(model_file); + nn.to(torch::kCPU); + cvm::log("torch model loaded.") ; + } catch (const std::exception & e) { + return cvm::error("Error: couldn't load libtorch model (see below).\n" + cvm::to_str(e.what()), + COLVARS_INPUT_ERROR); + } + + auto const legacy_keyword = get_keyval(conf, "m_output_index", m_output_index, m_output_index); + if (legacy_keyword) { + cvm::log("Warning: m_output_index is a deprecated keyword, please use output_component instead.\n"); + } + get_keyval(conf, "output_component", m_output_index, m_output_index); + + get_keyval(conf, "doubleInputTensor", use_double_input, use_double_input); + //get_keyval(conf, "useGPU", use_gpu, false); + + cvc_indices.resize(cv.size(),0); + + size_t num_inputs = 0; + // compute total number of inputs of neural network + for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) + { + num_inputs += cv[i_cv]->value().size() ; + if (i_cv < cv.size() - 1) + cvc_indices[i_cv+1] = num_inputs; + } + cvm::log("Input dimension of model: " + cvm::to_str(num_inputs)); + + // initialize the input tensor + auto options = torch::TensorOptions().dtype(torch::kFloat32).requires_grad(true); + + /* + if (use_gpu) { + if (torch::cuda::is_available()) { + try { + nn.to(torch::kCUDA); + } catch(const std::exception & e) { + cvm::error("Failed to move model to GPU."); + use_gpu = false; + } + } else { + use_gpu = false; + cvm::log("GPU not available."); + } + } + + if (use_gpu) { + options = options.device(torch::kCUDA); + if (use_double_input) { + cvm::log("Data type reset to Float for GPU computation!"); + use_double_input = false; + } + } + */ + + if (use_double_input) { // set type to double + options = options.dtype(torch::kFloat64); + nn.to(torch::kFloat64); + cvm::log("Model's dtype: kFloat64."); + } else { + cvm::log("Model's dtype: kFloat32."); + } + + input_tensor = torch::zeros({1,(long int) num_inputs}, options); + + try { // test the model + std::vector inputs={input_tensor}; + nn_outputs = nn.forward(inputs).toTensor()[0][m_output_index]; + cvm::log("Evaluating model with zero tensor succeeded."); + } catch (const std::exception & e) { + error_code |= cvm::error("Error: evaluating model with zero tensor failed (see below).\n" + + cvm::to_str(e.what()), + COLVARS_INPUT_ERROR); + } + + return error_code; +} + + +void colvar::torchANN::calc_value() { + + for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) + cv[i_cv]->calc_value(); + + /* + if (use_gpu) + input_tensor = input_tensor.to(torch::kCPU); + */ + + // set input tensor with no_grad + { + torch::NoGradGuard no_grad; + size_t l = 0; + for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { + const colvarvalue& current_cv_value = cv[i_cv]->value(); + if (current_cv_value.type() == colvarvalue::type_scalar) { + input_tensor[0][l++] = cv[i_cv]->sup_coeff * (cvm::pow(current_cv_value.real_value, cv[i_cv]->sup_np)); + } else { + for (size_t j_elem = 0; j_elem < current_cv_value.size(); ++j_elem) + input_tensor[0][l++] = cv[i_cv]->sup_coeff * current_cv_value[j_elem]; + } + } + } + + /* + if (use_gpu) + input_tensor = input_tensor.to(torch::kCUDA); + */ + + std::vector inputs={input_tensor}; + + // evaluate the value of function + nn_outputs = nn.forward(inputs).toTensor()[0][m_output_index]; + + input_grad = torch::autograd::grad({nn_outputs}, {input_tensor})[0][0]; + + /* + if (use_gpu) + input_grad = input_grad.to(torch::kCPU); + */ + + x = nn_outputs.item() ; + + this->wrap(x); + +} + +void colvar::torchANN::calc_gradients() { + for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { + cv[i_cv]->calc_gradients(); + if (cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { + const cvm::real factor_polynomial = getPolynomialFactorOfCVGradient(i_cv); + // get the initial index of this cvc + size_t l = cvc_indices[i_cv]; + for (size_t j_elem = 0; j_elem < cv[i_cv]->value().size(); ++j_elem) { + // get derivative of neural network wrt its input + const cvm::real factor = input_grad[l+j_elem].item(); + for (size_t k_ag = 0 ; k_ag < cv[i_cv]->atom_groups.size(); ++k_ag) { + for (size_t l_atom = 0; l_atom < (cv[i_cv]->atom_groups)[k_ag]->size(); ++l_atom) { + (*(cv[i_cv]->atom_groups)[k_ag])[l_atom].grad = factor_polynomial * factor * (*(cv[i_cv]->atom_groups)[k_ag])[l_atom].grad; + } + } + } + } + } +} + +void colvar::torchANN::apply_force(colvarvalue const &force) { + + for (size_t i_cv = 0; i_cv < cv.size(); ++i_cv) { + // If this CV uses explicit gradients, then atomic gradients is already calculated + // We can apply the force to atom groups directly + if (cv[i_cv]->is_enabled(f_cvc_explicit_gradient)) { + for (size_t k_ag = 0 ; k_ag < cv[i_cv]->atom_groups.size(); ++k_ag) { + (cv[i_cv]->atom_groups)[k_ag]->apply_colvar_force(force.real_value); + } + } else { + const colvarvalue& current_cv_value = cv[i_cv]->value(); + colvarvalue cv_force(current_cv_value); + cv_force.reset(); + const cvm::real factor_polynomial = getPolynomialFactorOfCVGradient(i_cv); + // get the initial index of this cvc + size_t l = cvc_indices[i_cv]; + for (size_t j_elem = 0; j_elem < current_cv_value.size(); ++j_elem) { + cv_force[j_elem] = factor_polynomial * input_grad[l+j_elem].item() * force.real_value; + } + cv[i_cv]->apply_force(cv_force); + } + } +} + + +#else + +colvar::torchANN::torchANN() +{ + set_function_type("torchANN"); +} + +colvar::torchANN::~torchANN() {} + +int colvar::torchANN::init(std::string const &conf) { + + return cvm::error( + "torchANN requires the libtorch library, but it is not enabled during compilation.\n" + "Please refer to the Compilation Notes section of the Colvars manual for more " + "information.\n", + COLVARS_NOT_IMPLEMENTED); + +} + +void colvar::torchANN::calc_value() +{ +} + +#endif diff --git a/lib/colvars/colvarcomp_torchann.h b/lib/colvars/colvarcomp_torchann.h new file mode 100644 index 0000000000..ae241edbcc --- /dev/null +++ b/lib/colvars/colvarcomp_torchann.h @@ -0,0 +1,63 @@ +// -*- c++ -*- + +// This file is part of the Collective Variables module (Colvars). +// The original version of Colvars and its updates are located at: +// https://github.com/Colvars/colvars +// Please update all Colvars source files before making any changes. +// If you wish to distribute your changes, please submit them to the +// Colvars repository at GitHub. +// +#ifndef COLVARCOMP_TORCH_H +#define COLVARCOMP_TORCH_H + +// Declaration of torchann + +#include + +#include "colvar.h" +#include "colvarcomp.h" +#include "colvarmodule.h" + +#ifdef COLVARS_TORCH + +#include +#include + +class colvar::torchANN + : public colvar::linearCombination +{ +protected: + torch::jit::script::Module nn; + /// the index of nn output component + size_t m_output_index = 0; + bool use_double_input = false; + //bool use_gpu; + // 1d tensor, concatenation of values of sub-cvcs + torch::Tensor input_tensor; + torch::Tensor nn_outputs; + torch::Tensor input_grad; + // record the initial index of of sub-cvcs in input_tensor + std::vector cvc_indices; +public: + torchANN(); + virtual ~torchANN(); + virtual int init(std::string const &conf); + virtual void calc_value(); + virtual void calc_gradients(); + virtual void apply_force(colvarvalue const &force); +}; + +#else + +class colvar::torchANN + : public colvar::cvc +{ +public: + torchANN(); + virtual ~torchANN(); + virtual int init(std::string const &conf); + virtual void calc_value(); +}; +#endif // COLVARS_TORCH checking + +#endif diff --git a/lib/colvars/colvardeps.cpp b/lib/colvars/colvardeps.cpp index 46b7917569..3ba3209000 100644 --- a/lib/colvars/colvardeps.cpp +++ b/lib/colvars/colvardeps.cpp @@ -92,6 +92,8 @@ void colvardeps::restore_children_deps() { void colvardeps::provide(int feature_id, bool truefalse) { feature_states[feature_id].available = truefalse; + // Make sure that we don't leave this feature enabled + if (!truefalse) disable(feature_id); } @@ -123,8 +125,9 @@ bool colvardeps::get_keyval_feature(colvarparse *cvp, int colvardeps::enable(int feature_id, - bool dry_run /* default: false */, - bool toplevel /* default: true */) + bool dry_run /* default: false */, + bool toplevel /* default: true */, + bool error /*default: false */) { int res; size_t i, j; @@ -137,9 +140,12 @@ int colvardeps::enable(int feature_id, feature *f = features()[feature_id]; feature_state *fs = &feature_states[feature_id]; + // dry_run can be true because parent object is not active, yet we are displaying an error message + // then error is set to true + if (cvm::debug()) { cvm::log("DEPS: " + description + - (dry_run ? " testing " : " enabling ") + + (dry_run ? " testing " : " enabling ") + (error ? " [error] " : "") + "\"" + f->description +"\"\n"); } @@ -159,7 +165,7 @@ int colvardeps::enable(int feature_id, (is_dynamic(feature_id) ? "Dynamic" : "User-controlled"); if (!fs->available) { - if (!dry_run) { + if (!dry_run || error) { if (toplevel) { cvm::error("Error: " + feature_type_descr + " feature unavailable: \"" + f->description + "\" in " + description + ".\n"); @@ -172,7 +178,7 @@ int colvardeps::enable(int feature_id, } if (!toplevel && !is_dynamic(feature_id)) { - if (!dry_run) { + if (!dry_run || error) { cvm::log(feature_type_descr + " feature \"" + f->description + "\" cannot be enabled automatically in " + description + ".\n"); if (is_user(feature_id)) { @@ -189,7 +195,7 @@ int colvardeps::enable(int feature_id, if (cvm::debug()) cvm::log(f->description + " requires exclude " + g->description + "\n"); if (is_enabled(f->requires_exclude[i])) { - if (!dry_run) { + if (!dry_run || error) { cvm::log("Feature \"" + f->description + "\" is incompatible with \"" + g->description + "\" in " + description + ".\n"); if (toplevel) { @@ -204,10 +210,14 @@ int colvardeps::enable(int feature_id, for (i=0; irequires_self.size(); i++) { if (cvm::debug()) cvm::log(f->description + " requires self " + features()[f->requires_self[i]]->description + "\n"); - res = enable(f->requires_self[i], dry_run, false); + res = enable(f->requires_self[i], dry_run, false, error); if (res != COLVARS_OK) { - if (!dry_run) { - cvm::log("...required by \"" + f->description + "\" in " + description + "\n"); + if (!dry_run || error) { + if (toplevel) { + cvm::log("Cannot enable \"" + f->description + "\" in " + description + "\n"); + } else { + cvm::log("...required by \"" + f->description + "\" in " + description + "\n"); + } if (toplevel) { cvm::error("Error: Failed dependency in " + description + ".\n"); } @@ -225,11 +235,11 @@ int colvardeps::enable(int feature_id, int g = f->requires_alt[i][j]; if (cvm::debug()) cvm::log(f->description + " requires alt " + features()[g]->description + "\n"); - res = enable(g, true, false); // see if available + res = enable(g, true, false, error); // see if available if (res == COLVARS_OK) { ok = true; - if (!dry_run) { - enable(g, false, false); // Require again, for real + if (!dry_run || error) { + enable(g, false, false, error); // Require again, for real fs->alternate_refs.push_back(g); // We remember we enabled this // so we can free it if this feature gets disabled } @@ -245,7 +255,7 @@ int colvardeps::enable(int feature_id, for (j=0; jrequires_alt[i].size(); j++) { int g = f->requires_alt[i][j]; cvm::log(cvm::to_str(j+1) + ". " + features()[g]->description + "\n"); - enable(g, false, false); // Just for printing error output + enable(g, false, false, true); // Just for printing error output } cvm::decrease_depth(); cvm::log("-----------------------------------------\n"); @@ -264,10 +274,14 @@ int colvardeps::enable(int feature_id, for (i=0; irequires_children.size(); i++) { int g = f->requires_children[i]; for (j=0; jenable(g, dry_run || !is_enabled(), false); + res = children[j]->enable(g, dry_run || !is_enabled(), false, error); if (res != COLVARS_OK) { - if (!dry_run) { - cvm::log("...required by \"" + f->description + "\" in " + description + "\n"); + if (!dry_run || error) { + if (toplevel) { + cvm::log("Cannot enable \"" + f->description + "\" in " + description + "\n"); + } else { + cvm::log("...required by \"" + f->description + "\" in " + description + "\n"); + } if (toplevel) { cvm::error("Error: Failed dependency in " + description + ".\n"); } diff --git a/lib/colvars/colvardeps.h b/lib/colvars/colvardeps.h index 1bd304b545..92e7a88326 100644 --- a/lib/colvars/colvardeps.h +++ b/lib/colvars/colvardeps.h @@ -198,7 +198,9 @@ public: /// \param toplevel False if this is called as part of a chain of dependency resolution. /// This is used to diagnose failed dependencies by displaying the full stack: /// only the toplevel dependency will throw a fatal error. - int enable(int f, bool dry_run = false, bool toplevel = true); + /// \param error Recursively enable, printing error messages along the way + /// Necessary when propagating errors across alternate dependencies + int enable(int f, bool dry_run = false, bool toplevel = true, bool error = false); /// Disable a feature, decrease the reference count of its dependencies /// and recursively disable them as applicable @@ -255,6 +257,8 @@ public: f_cvb_scale_biasing_force, /// \brief whether this bias is applied to one or more ext-Lagrangian colvars f_cvb_extended, + /// Process this bias's data in parallel over multiple CPU threads + f_cvb_smp, f_cvb_ntot }; @@ -263,8 +267,11 @@ public: f_cv_active, /// \brief Colvar is awake (active on its own accord) this timestep f_cv_awake, - /// \brief Gradients are calculated and temporarily stored, so - /// that external forces can be applied + /// \brief External force can be applied, either to atoms or to an + /// extended DOF + f_cv_apply_force, + /// \brief Gradients are calculated and temporarily stored, + /// so that external forces can be propagated to atoms f_cv_gradient, /// \brief Collect atomic gradient data from all cvcs into vector /// atomic_gradient @@ -277,7 +284,10 @@ public: /// forces on the inverse gradient f_cv_total_force, /// \brief Calculate total force from atomic forces + /// or get it from the back-end for an external parameter f_cv_total_force_calc, + /// \brief Total force is that of current time step + f_cv_total_force_current_step, /// \brief Subtract the applied force from the total force f_cv_subtract_applied_force, /// \brief Estimate Jacobian derivative @@ -289,8 +299,10 @@ public: /// center with fictitious mass; bias forces will be applied to /// the center f_cv_extended_Lagrangian, - /// \brief An extended variable that sets an external variable in the - /// back-end (eg. an alchemical coupling parameter for lambda-dynamics) + /// \brief A variable that constrains or follows an external parameter + /// in the back-end (eg. an alchemical coupling parameter for lambda-dynamics) + /// If extended Lagrangian, then we drive the external parameter + /// Otherwise we follow it /// Can have a single component f_cv_external, /// \brief The extended system coordinate undergoes Langevin dynamics diff --git a/lib/colvars/colvargrid.cpp b/lib/colvars/colvargrid.cpp index 11693a7587..ad42966943 100644 --- a/lib/colvars/colvargrid.cpp +++ b/lib/colvars/colvargrid.cpp @@ -24,15 +24,14 @@ colvar_grid_count::colvar_grid_count() mult = 1; } -colvar_grid_count::colvar_grid_count(std::vector const &nx_i, - size_t const &def_count) - : colvar_grid(nx_i, def_count, 1) +colvar_grid_count::colvar_grid_count(std::vector &colvars, + std::string config) + : colvar_grid(colvars, 0, 1, false, nullptr, config) {} colvar_grid_count::colvar_grid_count(std::vector &colvars, - size_t const &def_count, - bool margin) - : colvar_grid(colvars, def_count, 1, margin) + std::shared_ptr params) + : colvar_grid(colvars, 0, 1, false, params) {} std::string colvar_grid_count::get_state_params() const @@ -132,13 +131,17 @@ colvar_grid_scalar::colvar_grid_scalar(colvar_grid_scalar const &g) { } -colvar_grid_scalar::colvar_grid_scalar(std::vector const &nx_i) - : colvar_grid(nx_i, 0.0, 1), samples(NULL) +colvar_grid_scalar::colvar_grid_scalar(std::vector &colvars, + std::shared_ptr params, + bool add_extra_bin, + std::string config) + : colvar_grid(colvars, 0.0, 1, add_extra_bin, params, config), samples(NULL) { } -colvar_grid_scalar::colvar_grid_scalar(std::vector &colvars, bool margin) - : colvar_grid(colvars, 0.0, 1, margin), samples(NULL) +colvar_grid_scalar::colvar_grid_scalar(std::string const &filename) + : colvar_grid(filename, 1), + samples(nullptr) { } @@ -330,89 +333,37 @@ cvm::real colvar_grid_scalar::grid_rmsd(colvar_grid_scalar const &other_grid) co colvar_grid_gradient::colvar_grid_gradient() - : colvar_grid(), samples(NULL), full_samples(0), min_samples(0) + : colvar_grid(), samples(NULL) {} -colvar_grid_gradient::colvar_grid_gradient(std::vector const &nx_i) - : colvar_grid(nx_i, 0.0, nx_i.size()), samples(NULL), full_samples(0), min_samples(0) -{} +// colvar_grid_gradient::colvar_grid_gradient(std::vector &colvars, std::string config) +// : colvar_grid(colvars, 0.0, colvars.size(), false, nullptr, config), samples(NULL) +// {} +// colvar_grid_gradient::colvar_grid_gradient(std::vector &colvars, +// std::shared_ptr samples_in) +// : colvar_grid(colvars, 0.0, colvars.size(), false, samples_in), samples(samples_in) +// { +// if (samples_in) +// samples_in->has_parent_data = true; +// } -colvar_grid_gradient::colvar_grid_gradient(std::vector &colvars) - : colvar_grid(colvars, 0.0, colvars.size()), samples(NULL), full_samples(0), min_samples(0) -{} - - -colvar_grid_gradient::colvar_grid_gradient(std::vector &colvars, std::shared_ptr samples_in) - : colvar_grid(colvars, 0.0, colvars.size()), samples(samples_in), full_samples(0), min_samples(0) +colvar_grid_gradient::colvar_grid_gradient(std::vector &colvars, + std::shared_ptr samples_in, + std::shared_ptr params, + std::string config) + : colvar_grid(colvars, 0.0, colvars.size(), false, params, config), samples(samples_in) { - samples_in->has_parent_data = true; + if (samples_in) + samples_in->has_parent_data = true; } -colvar_grid_gradient::colvar_grid_gradient(std::string &filename) - : colvar_grid(), - samples(NULL) +colvar_grid_gradient::colvar_grid_gradient(std::string const &filename) + : colvar_grid(filename, 0), + samples(nullptr) { - std::istream &is = cvm::main()->proxy->input_stream(filename, - "gradient file"); - if (!is) { - return; - } - - // Data in the header: nColvars, then for each - // xiMin, dXi, nPoints, periodic flag - - std::string hash; - size_t i; - - if ( !(is >> hash) || (hash != "#") ) { - cvm::error("Error reading grid at position "+ - cvm::to_str(static_cast(is.tellg()))+ - " in stream(read \"" + hash + "\")\n"); - return; - } - - is >> nd; - - if (nd > 50) { - cvm::error("Error: excessive number of dimensions in file \""+ - filename+"\". Please ensure that the file is not corrupt.\n", - COLVARS_INPUT_ERROR); - return; - } - - mult = nd; - std::vector lower_in(nd), widths_in(nd); - std::vector nx_in(nd); - std::vector periodic_in(nd); - - for (i = 0; i < nd; i++ ) { - if ( !(is >> hash) || (hash != "#") ) { - cvm::error("Error reading grid at position "+ - cvm::to_str(static_cast(is.tellg()))+ - " in stream(read \"" + hash + "\")\n"); - return; - } - - is >> lower_in[i] >> widths_in[i] >> nx_in[i] >> periodic_in[i]; - } - - this->setup(nx_in, 0., mult); - - widths = widths_in; - - for (i = 0; i < nd; i++ ) { - lower_boundaries.push_back(colvarvalue(lower_in[i])); - periodic.push_back(static_cast(periodic_in[i])); - } - - // Reset the istream for read_multicol, which expects the whole file - is.clear(); - is.seekg(0); - read_multicol(is); - cvm::main()->proxy->close_input_stream(filename); } std::string colvar_grid_gradient::get_state_params() const @@ -586,12 +537,13 @@ cvm::real colvar_grid_gradient::grid_rmsd(colvar_grid_gradient const &other_grid } -integrate_potential::integrate_potential(std::vector &colvars, std::shared_ptr gradients) - : colvar_grid_scalar(colvars, true), +integrate_potential::integrate_potential(std::vector &colvars, + std::shared_ptr gradients) + : colvar_grid_scalar(colvars, gradients, true), b_smoothed(false), gradients(gradients) { - // parent class colvar_grid_scalar is constructed with margin option set to true + // parent class colvar_grid_scalar is constructed with add_extra_bin option set to true // hence PMF grid is wider than gradient grid if non-PBC if (nd > 1) { diff --git a/lib/colvars/colvargrid.h b/lib/colvars/colvargrid.h index 4cbbb10961..697b46a560 100644 --- a/lib/colvars/colvargrid.h +++ b/lib/colvars/colvargrid.h @@ -19,17 +19,13 @@ #include "colvarparse.h" -/// \brief Grid of values of a function of several collective -/// variables \param T The data type -/// -/// Only scalar colvars supported so far: vector colvars are treated as arrays -template class colvar_grid : public colvarparse { - - //protected: -public: // TODO create accessors for these after all instantiations work +/// \brief Unified base class for grid of values of a function of several collective +/// variables +class colvar_grid_params { +public: /// Number of dimensions - size_t nd; + size_t nd = 0; /// Number of points along each dimension std::vector nx; @@ -37,6 +33,27 @@ public: // TODO create accessors for these after all instantiations work /// Cumulative number of points along each dimension std::vector nxc; + /// Lower boundaries of the colvars in this grid + std::vector lower_boundaries; + + /// Upper boundaries of the colvars in this grid + std::vector upper_boundaries; + + /// Widths of the colvars in this grid + std::vector widths; +}; + + +/// \brief Grid of values of a function of several collective +/// variables \param T The data type +/// +/// Only scalar colvars supported so far: vector colvars are treated as arrays +/// All common, type-independent members are collected in the base class colvar_grid_base +template class colvar_grid : public colvar_grid_params, public colvarparse { + + //protected: +public: // TODO create accessors for these after all instantiations work + /// \brief Multiplicity of each datum (allow the binning of /// non-scalar types such as atomic gradients) size_t mult; @@ -73,13 +90,6 @@ public: // TODO create accessors for these after all instantiations work } public: - - /// Lower boundaries of the colvars in this grid - std::vector lower_boundaries; - - /// Upper boundaries of the colvars in this grid - std::vector upper_boundaries; - /// Whether some colvars are periodic std::vector periodic; @@ -89,9 +99,6 @@ public: /// Whether some colvars have hard upper boundaries std::vector hard_upper_boundaries; - /// Widths of the colvars in this grid - std::vector widths; - /// True if this is a count grid related to another grid of data bool has_parent_data; @@ -218,19 +225,15 @@ public: /// \brief "Almost copy-constructor": only copies configuration /// parameters from another grid, but doesn't reallocate stuff; /// setup() must be called after that; - colvar_grid(colvar_grid const &g) : colvarparse(), - nd(g.nd), - nx(g.nx), + colvar_grid(colvar_grid const &g) : colvar_grid_params(colvar_grid_params(g)), + colvarparse(), mult(g.mult), data(), cv(g.cv), use_actual_value(g.use_actual_value), - lower_boundaries(g.lower_boundaries), - upper_boundaries(g.upper_boundaries), periodic(g.periodic), hard_lower_boundaries(g.hard_lower_boundaries), hard_upper_boundaries(g.hard_upper_boundaries), - widths(g.widths), has_parent_data(false), has_data(false) {} @@ -247,22 +250,31 @@ public: this->setup(nx_i, t, mult_i); } - /// \brief Constructor from a vector of colvars + /// \brief Constructor from a vector of colvars or an optional grid config string /// \param add_extra_bin requests that non-periodic dimensions are extended /// by 1 bin to accommodate the integral (PMF) of another gridded quantity (gradient) colvar_grid(std::vector const &colvars, T const &t = T(), size_t mult_i = 1, - bool add_extra_bin = false) + bool add_extra_bin = false, + std::shared_ptr params = nullptr, + std::string config = std::string()) : has_parent_data(false), has_data(false) { (void) t; - this->init_from_colvars(colvars, mult_i, add_extra_bin); + this->init_from_colvars(colvars, mult_i, add_extra_bin, params, config); } + /// \brief Constructor from a multicol file + /// \param filename multicol file containing data to be read + /// \param multi_i multiplicity of the data - if 0, assume gradient multiplicity (mult = nd) + colvar_grid(std::string const &filename, size_t mult_i = 1); + int init_from_colvars(std::vector const &colvars, size_t mult_i = 1, - bool add_extra_bin = false) + bool add_extra_bin = false, + std::shared_ptr params = nullptr, + std::string config = std::string()) { if (cvm::debug()) { cvm::log("Reading grid configuration from collective variables.\n"); @@ -279,8 +291,7 @@ public: " collective variables, multiplicity = "+cvm::to_str(mult_i)+".\n"); } - for (i = 0; i < cv.size(); i++) { - + for (i = 0; i < nd; i++) { if (cv[i]->value().type() != colvarvalue::type_scalar) { cvm::error("Colvar grids can only be automatically " "constructed for scalar variables. " @@ -298,7 +309,6 @@ public: widths.push_back(cv[i]->width); hard_lower_boundaries.push_back(cv[i]->is_enabled(colvardeps::f_cv_hard_lower_boundary)); hard_upper_boundaries.push_back(cv[i]->is_enabled(colvardeps::f_cv_hard_upper_boundary)); - periodic.push_back(cv[i]->periodic_boundaries()); // By default, get reported colvar value (for extended Lagrangian colvars) use_actual_value.push_back(false); @@ -310,22 +320,55 @@ public: use_actual_value[i-1] = true; } + // This needs to work if the boundaries are undefined in the colvars + lower_boundaries.push_back(cv[i]->lower_boundary); + upper_boundaries.push_back(cv[i]->upper_boundary); + } + + // Replace widths and boundaries with optional custom configuration + if (!config.empty()) { + this->parse_params(config); + this->check_keywords(config, "grid"); + + if (params) { + cvm::error("Error: init_from_colvars was passed both a grid config and a template grid.", COLVARS_BUG_ERROR); + return COLVARS_BUG_ERROR; + } + } else if (params) { + // Match grid sizes with template + + if (params->nd != nd) { + cvm::error("Trying to initialize grid from template with wrong dimension (" + + cvm::to_str(params->nd) + " instead of " + + cvm::to_str(this->nd) + ")."); + return COLVARS_ERROR; + } + + widths =params->widths; + lower_boundaries =params->lower_boundaries; + upper_boundaries =params->upper_boundaries; + } + + // Only now can we determine periodicity + for (i = 0; i < nd; i++) { + periodic.push_back(cv[i]->periodic_boundaries(lower_boundaries[i].real_value, + upper_boundaries[i].real_value)); + if (add_extra_bin) { + // Shift the grid by half the bin width (values at edges instead of center of bins) + lower_boundaries[i] -= 0.5 * widths[i]; + if (periodic[i]) { - // Shift the grid by half the bin width (values at edges instead of center of bins) - lower_boundaries.push_back(cv[i]->lower_boundary.real_value - 0.5 * widths[i]); - upper_boundaries.push_back(cv[i]->upper_boundary.real_value - 0.5 * widths[i]); + // Just shift + upper_boundaries[i] -= 0.5 * widths[i]; } else { - // Make this grid larger by one bin width - lower_boundaries.push_back(cv[i]->lower_boundary.real_value - 0.5 * widths[i]); - upper_boundaries.push_back(cv[i]->upper_boundary.real_value + 0.5 * widths[i]); + // Widen grid by one bin width + upper_boundaries[i] += 0.5 * widths[i]; } - } else { - lower_boundaries.push_back(cv[i]->lower_boundary); - upper_boundaries.push_back(cv[i]->upper_boundary); } } + // Reset grid sizes based on widths and boundaries this->init_from_boundaries(); return this->setup(); } @@ -966,14 +1009,12 @@ public: virtual ~colvar_grid_count() {} - /// Constructor - colvar_grid_count(std::vector const &nx_i, - size_t const &def_count = 0); - - /// Constructor from a vector of colvars + /// Constructor from a vector of colvars or a config string colvar_grid_count(std::vector &colvars, - size_t const &def_count = 0, - bool add_extra_bin = false); + std::shared_ptr params = nullptr); + + colvar_grid_count(std::vector &colvars, + std::string config); /// Increment the counter at given position inline void incr_count(std::vector const &ix) @@ -1255,12 +1296,14 @@ public: /// Destructor virtual ~colvar_grid_scalar(); - /// Constructor from specific sizes arrays - colvar_grid_scalar(std::vector const &nx_i); - /// Constructor from a vector of colvars colvar_grid_scalar(std::vector &colvars, - bool add_extra_bin = false); + std::shared_ptr params = nullptr, + bool add_extra_bin = false, + std::string config = std::string()); + + /// Constructor from a multicol file + colvar_grid_scalar(std::string const &filename); /// Accumulate the value inline void acc_value(std::vector const &ix, @@ -1334,8 +1377,8 @@ public: /// \brief Return the gradient of the scalar field from finite differences /// Input coordinates are those of gradient grid, shifted wrt scalar grid - /// Should not be called on edges of scalar grid, provided the latter has margins - /// wrt gradient grid + /// Should not be called on edges of scalar grid, provided the latter has + /// margins (extra bins) wrt gradient grid inline void vector_gradient_finite_diff( const std::vector &ix0, std::vector &grad) { cvm::real A0, A1; @@ -1566,17 +1609,21 @@ public: virtual ~colvar_grid_gradient() {} - /// Constructor from specific sizes arrays - colvar_grid_gradient(std::vector const &nx_i); + // /// Constructor from specific sizes arrays + // colvar_grid_gradient(std::vector const &nx_i); - /// Constructor from a vector of colvars - colvar_grid_gradient(std::vector &colvars); + // /// Constructor from a vector of colvars + // colvar_grid_gradient(std::vector &colvars, + // std::string config = std::string()); /// Constructor from a multicol file - colvar_grid_gradient(std::string &filename); + colvar_grid_gradient(std::string const &filename); /// Constructor from a vector of colvars and a pointer to the count grid - colvar_grid_gradient(std::vector &colvars, std::shared_ptr samples_in); + colvar_grid_gradient(std::vector &colvars, + std::shared_ptr samples_in = nullptr, + std::shared_ptr params = nullptr, + std::string config = std::string()); /// Parameters for smoothing data with low sampling int full_samples; @@ -1829,7 +1876,8 @@ class integrate_potential : public colvar_grid_scalar {} /// Constructor from a vector of colvars + gradient grid - integrate_potential(std::vector &colvars, std::shared_ptr gradients); + integrate_potential(std::vector &colvars, + std::shared_ptr gradients); /// Constructor from a gradient grid (for processing grid files without a Colvars config) integrate_potential(std::shared_ptr gradients); diff --git a/lib/colvars/colvargrid_def.h b/lib/colvars/colvargrid_def.h index fa6531271b..96075e1ffe 100644 --- a/lib/colvars/colvargrid_def.h +++ b/lib/colvars/colvargrid_def.h @@ -22,6 +22,62 @@ #include "colvars_memstream.h" +template +colvar_grid::colvar_grid(std::string const &filename, size_t mult_i) +{ +std::istream &is = cvm::main()->proxy->input_stream(filename, "multicol grid file"); +if (!is) { + return; +} + +// Data in the header: nColvars, then for each +// xiMin, dXi, nPoints, periodic flag + +std::string hash; +size_t i; + +if ( !(is >> hash) || (hash != "#") ) { + cvm::error("Error reading grid at position "+ + cvm::to_str(static_cast(is.tellg()))+ + " in stream(read \"" + hash + "\")\n"); + return; +} + +is >> nd; +mult = (mult_i == 0) ? nd : mult_i; + +std::vector lower_in(nd), widths_in(nd); +std::vector nx_in(nd); +std::vector periodic_in(nd); + +for (i = 0; i < nd; i++ ) { + if ( !(is >> hash) || (hash != "#") ) { + cvm::error("Error reading grid at position "+ + cvm::to_str(static_cast(is.tellg()))+ + " in stream(read \"" + hash + "\")\n"); + return; + } + + is >> lower_in[i] >> widths_in[i] >> nx_in[i] >> periodic_in[i]; +} + +this->setup(nx_in, 0., mult); + +widths = widths_in; + +for (i = 0; i < nd; i++ ) { + lower_boundaries.push_back(colvarvalue(lower_in[i])); + periodic.push_back(static_cast(periodic_in[i])); +} + +// Reset the istream for read_multicol, which expects the whole file +is.clear(); +is.seekg(0); +read_multicol(is); +cvm::main()->proxy->close_input_stream(filename); +} + + template IST &read_restart_template_(colvar_grid &g, IST &is) { auto const start_pos = is.tellg(); @@ -203,14 +259,16 @@ template int colvar_grid::parse_params(std::string const &conf, lower_boundaries, lower_boundaries, colvarparse::parse_silent); colvarparse::get_keyval(conf, "upper_boundaries", upper_boundaries, upper_boundaries, colvarparse::parse_silent); + // plural form is used in state file + colvarparse::get_keyval(conf, "widths", widths, widths, colvarparse::parse_silent); // camel case keywords are used in config file - colvarparse::get_keyval(conf, "lowerBoundaries", + colvarparse::get_keyval(conf, "lowerBoundary", lower_boundaries, lower_boundaries, parse_mode); - colvarparse::get_keyval(conf, "upperBoundaries", + colvarparse::get_keyval(conf, "upperBoundary", upper_boundaries, upper_boundaries, parse_mode); - colvarparse::get_keyval(conf, "widths", widths, widths, parse_mode); + colvarparse::get_keyval(conf, "width", widths, widths, parse_mode); // only used in state file colvarparse::get_keyval(conf, "sizes", nx, nx, colvarparse::parse_silent); diff --git a/lib/colvars/colvarmodule.cpp b/lib/colvars/colvarmodule.cpp index 25b1efe209..34485d7883 100644 --- a/lib/colvars/colvarmodule.cpp +++ b/lib/colvars/colvarmodule.cpp @@ -24,6 +24,7 @@ #include "colvarbias_histogram_reweight_amd.h" #include "colvarbias_meta.h" #include "colvarbias_restraint.h" +#include "colvarbias_opes.h" #include "colvarscript.h" #include "colvaratoms.h" #include "colvarcomp.h" @@ -109,23 +110,23 @@ colvarmodule::colvarmodule(colvarproxy *proxy_in) " https://doi.org/10.1080/00268976.2013.813594\n" "as well as all other papers listed below for individual features used.\n"); -#if (__cplusplus >= 201103L) - cvm::log("This version was built with the C++11 standard or higher.\n"); -#else - cvm::log("This version was built without the C++11 standard: some features are disabled.\n" - "Please see the following link for details:\n" - " https://colvars.github.io/README-c++11.html\n"); -#endif - cvm::log("Summary of compile-time features available in this build:\n"); - if (proxy->check_smp_enabled() == COLVARS_NOT_IMPLEMENTED) { - cvm::log(" - SMP parallelism: not available\n"); + std::string cxx_lang_msg(" - C++ language version: " + cvm::to_str(__cplusplus)); +#if defined(_WIN32) && !defined(__CYGWIN__) + cxx_lang_msg += std::string(" (warning: may not be accurate for this build)"); +#endif + cxx_lang_msg += std::string("\n"); + cvm::log(cxx_lang_msg); + + if (proxy->check_replicas_enabled() == COLVARS_NOT_IMPLEMENTED) { + cvm::log(" - Multiple replicas: not available\n"); } else { - if (proxy->check_smp_enabled() == COLVARS_OK) { - cvm::log(" - SMP parallelism: enabled (num. threads = " + to_str(proxy->smp_num_threads()) + ")\n"); + if (proxy->check_replicas_enabled() == COLVARS_OK) { + cvm::log(" - Multiple replicas: enabled (replica number " + + to_str(proxy->replica_index() + 1) + " of " + to_str(proxy->num_replicas()) + ")\n"); } else { - cvm::log(" - SMP parallelism: available, but not enabled\n"); + cvm::log(" - Multiple replicas: available, but not (yet) enabled\n"); } } @@ -201,6 +202,20 @@ std::vector *colvarmodule::variables_active_smp_items() } +int colvarmodule::calc_component_smp(int i) +{ + colvar *x = (*(variables_active_smp()))[i]; + int x_item = (*(variables_active_smp_items()))[i]; + if (cvm::debug()) { + cvm::log("Thread "+cvm::to_str(proxy->smp_thread_id())+"/"+ + cvm::to_str(proxy->smp_num_threads())+ + ": calc_component_smp(), i = "+cvm::to_str(i)+", cv = "+ + x->name+", cvc = "+cvm::to_str(x_item)+"\n"); + } + return x->calc_cvcs(x_item, 1); +} + + std::vector *colvarmodule::biases_active() { return &(biases_active_); @@ -387,8 +402,26 @@ int colvarmodule::parse_global_params(std::string const &conf) } } - if (parse->get_keyval(conf, "smp", proxy->b_smp_active, proxy->b_smp_active)) { - if (proxy->b_smp_active == false) { + std::string smp; + if (parse->get_keyval(conf, "smp", smp, "cvcs")) { + if (smp == "cvcs" || smp == "on" || smp == "yes") { + if (proxy->set_smp_mode(colvarproxy_smp::smp_mode_t::cvcs) != COLVARS_OK) { + cvm::error("Colvars component-based parallelism is not implemented.\n"); + return COLVARS_INPUT_ERROR; + } else { + cvm::log("SMP parallelism will be applied to Colvars components.\n"); + cvm::log(" - SMP parallelism: enabled (num. threads = " + to_str(proxy->smp_num_threads()) + ")\n"); + } + } else if (smp == "inner_loop") { + if (proxy->set_smp_mode(colvarproxy_smp::smp_mode_t::inner_loop) != COLVARS_OK) { + cvm::error("SMP parallelism inside the calculation of Colvars components is not implemented.\n"); + return COLVARS_INPUT_ERROR; + } else { + cvm::log("SMP parallelism will be applied inside the Colvars components.\n"); + cvm::log(" - SMP parallelism: enabled (num. threads = " + to_str(proxy->smp_num_threads()) + ")\n"); + } + } else { + proxy->set_smp_mode(colvarproxy_smp::smp_mode_t::none); cvm::log("SMP parallelism has been disabled.\n"); } } @@ -589,6 +622,9 @@ int colvarmodule::parse_biases(std::string const &conf) /// initialize reweightaMD instances parse_biases_type(conf, "reweightaMD"); + /// initialize OPES instances + parse_biases_type(conf, "opes_metad"); + if (use_scripted_forces) { cvm::log(cvm::line_marker); cvm::increase_depth(); @@ -922,7 +958,7 @@ int colvarmodule::calc_colvars() } // if SMP support is available, split up the work - if (proxy->check_smp_enabled() == COLVARS_OK) { + if (proxy->get_smp_mode() == colvarproxy_smp::smp_mode_t::cvcs) { // first, calculate how much work (currently, how many active CVCs) each colvar has @@ -948,8 +984,10 @@ int colvarmodule::calc_colvars() } cvm::decrease_depth(); - // calculate colvar components in parallel - error_code |= proxy->smp_colvars_loop(); + // calculate active colvar components in parallel + error_code |= proxy->smp_loop(variables_active_smp()->size(), [](int i) { + return cvm::main()->calc_component_smp(i); + }); cvm::increase_depth(); for (cvi = variables_active()->begin(); cvi != variables_active()->end(); cvi++) { @@ -1013,7 +1051,7 @@ int colvarmodule::calc_biases() } // If SMP support is available, split up the work (unless biases need to use main thread's memory) - if (proxy->check_smp_enabled() == COLVARS_OK && !biases_need_main_thread) { + if (proxy->get_smp_mode() == colvarproxy::smp_mode_t::cvcs && !biases_need_main_thread) { if (use_scripted_forces && !scripting_after_biases) { // calculate biases and scripted forces in parallel @@ -1097,7 +1135,7 @@ int colvarmodule::update_colvar_forces() cvm::log("Communicating forces from the colvars to the atoms.\n"); cvm::increase_depth(); for (cvi = variables_active()->begin(); cvi != variables_active()->end(); cvi++) { - if ((*cvi)->is_enabled(colvardeps::f_cv_gradient)) { + if ((*cvi)->is_enabled(colvardeps::f_cv_apply_force)) { (*cvi)->communicate_forces(); if (cvm::get_error()) { return COLVARS_ERROR; @@ -1986,7 +2024,7 @@ size_t & colvarmodule::depth() { // NOTE: do not call log() or error() here, to avoid recursion colvarmodule *cv = cvm::main(); - if (proxy->check_smp_enabled() == COLVARS_OK) { + if (proxy->get_smp_mode() == colvarproxy::smp_mode_t::cvcs) { int const nt = proxy->smp_num_threads(); if (int(cv->depth_v.size()) != nt) { proxy->smp_lock(); diff --git a/lib/colvars/colvarmodule.h b/lib/colvars/colvarmodule.h index fa84b1ad75..5f042767dc 100644 --- a/lib/colvars/colvarmodule.h +++ b/lib/colvars/colvarmodule.h @@ -18,6 +18,11 @@ #define COLVARS_DEBUG false #endif +#if defined(__FAST_MATH__) +// NOTE: This is used for fixing https://github.com/Colvars/colvars/issues/767 +#define COLVARS_BOUNDED_INV_TRIGONOMETRIC_FUNC +#endif + /*! \mainpage Main page This is the Developer's documentation for the Collective Variables module (Colvars). @@ -147,17 +152,44 @@ public: return ::cos(static_cast(x)); } - /// Reimplemented to work around MS compiler issues - static inline real asin(real const &x) - { - return ::asin(static_cast(x)); - } +#ifndef PI +#define PI 3.14159265358979323846 +#endif +#ifndef PI_2 +#define PI_2 1.57079632679489661923 +#endif - /// Reimplemented to work around MS compiler issues - static inline real acos(real const &x) - { +/// Reimplemented to work around compiler issues; return hard-coded values for boundary conditions +static inline real asin(real const &x) +{ +#ifdef COLVARS_BOUNDED_INV_TRIGONOMETRIC_FUNC + if (x <= -1.0) { + return -PI_2; + } else if (x >= 1.0) { + return PI_2; + } else { + return ::asin(static_cast(x)); + } +#else + return ::asin(static_cast(x)); +#endif +} + +/// Reimplemented to work around compiler issues; return hard-coded values for boundary conditions +static inline real acos(real const &x) +{ +#ifdef COLVARS_BOUNDED_INV_TRIGONOMETRIC_FUNC + if (x <= -1.0) { + return PI; + } else if (x >= 1.0) { + return 0.0; + } else { + return ::acos(static_cast(x)); + } +#else return ::acos(static_cast(x)); - } +#endif +} /// Reimplemented to work around MS compiler issues static inline real atan2(real const &x, real const &y) @@ -307,6 +339,9 @@ public: /// Indexes of the items to calculate for each colvar std::vector *variables_active_smp_items(); + /// Calculate the value of the specified component (to be called in a SMP loop) + int calc_component_smp(int i); + /// Array of collective variable biases std::vector biases; diff --git a/lib/colvars/colvarmodule_refs.h b/lib/colvars/colvarmodule_refs.h index 2e9615e3b4..0317567502 100644 --- a/lib/colvars/colvarmodule_refs.h +++ b/lib/colvars/colvarmodule_refs.h @@ -129,6 +129,23 @@ " url = {https://doi.org/10.1002/jcc.26075}\n" "}\n"; + paper_count_[std::string("Fiorin2024")] = 0; + paper_url_[std::string("Fiorin2024")] = "https://doi.org/10.1021/acs.jpcb.4c05604"; + paper_bibtex_[std::string("Fiorin2024")] = + "\n" + "@article{Fiorin2024,\n" + " author = {Fiorin, Giacomo and Marinelli, Fabrizio and Forrest, Lucy R. and Chen, Haochuan and Chipot, Christophe and Kohlmeyer, Axel and Santuz, Hubert and H{\\'e}nin, J{\\'e}rĂ´me},\n" + " title = {Expanded Functionality and Portability for the Colvars Library},\n" + " journal = {J. Phys. Chem. {B}},\n" + " volume = {128},\n" + " number = {45},\n" + " pages = {11108--11123},\n" + " year = {2024},\n" + " doi = {10.1021/acs.jpcb.4c05604},\n" + " pmid = 39501453,\n" + " url = { https://doi.org/10.1021/acs.jpcb.4c05604}\n" + "}\n"; + paper_count_[std::string("Fu2016")] = 0; paper_url_[std::string("Fu2016")] = "https://doi.org/10.1021/acs.jctc.6b00447"; paper_bibtex_[std::string("Fu2016")] = @@ -227,6 +244,20 @@ " url = {https://doi.org/10.1016/0263-7855(96)00018-5}\n" "}\n"; + paper_count_[std::string("Lagardere2023")] = 0; + paper_url_[std::string("Lagardere2023")] = "https://arxiv.org/abs/2307.08006"; + paper_bibtex_[std::string("Lagardere2023")] = + "\n" + "@misc{Lagardere2023,\n" + " title={Lambda-ABF: Simplified, Accurate and Cost-effective Alchemical Free Energy Computations},\n" + " author={Louis Lagard\\`ere and Lise Maurin and Olivier Adjoua and Krystel El Hage and Pierre Monmarch\\'e and Jean-Philip Piquemal and J\\'er\\^ome H\\'enin},\n" + " year={2023},\n" + " eprint={2307.08006},\n" + " archivePrefix={arXiv},\n" + " primaryClass={physics.chem-ph},\n" + " url = {https://arxiv.org/abs/2307.08006}\n" + "}\n"; + paper_count_[std::string("Lesage2017")] = 0; paper_url_[std::string("Lesage2017")] = "https://doi.org/10.1021/acs.jpcb.6b10055"; paper_bibtex_[std::string("Lesage2017")] = @@ -344,6 +375,45 @@ " url = {https://doi.org/10.1021/ct500320c}\n" "}\n"; + paper_count_[std::string("Invernizzi2020")] = 0; + paper_url_[std::string("Invernizzi2020")] = "https://pubs.acs.org/doi/10.1021/acs.jpclett.0c00497"; + paper_bibtex_[std::string("Invernizzi2020")] = + "\n" + "@article{Invernizzi2020,\n" + " title = {Rethinking {Metadynamics}: {From} {Bias} {Potentials} to {Probability} {Distributions}},\n" + " volume = {11},\n" + " issn = {1948-7185, 1948-7185},\n" + " shorttitle = {Rethinking {Metadynamics}},\n" + " url = {https://pubs.acs.org/doi/10.1021/acs.jpclett.0c00497},\n" + " doi = {10.1021/acs.jpclett.0c00497},\n" + " number = {7},\n" + " urldate = {2020-09-30},\n" + " journal = {J. Phys. Chem. Lett.},\n" + " author = {Invernizzi, Michele and Parrinello, Michele},\n" + " month = apr,\n" + " year = {2020},\n" + " pages = {2731--2736},\n" + "}\n"; + + paper_count_[std::string("Invernizzi2022")] = 0; + paper_url_[std::string("Invernizzi2022")] = "https://doi.org/10.1021/acs.jctc.2c00152"; + paper_bibtex_[std::string("Invernizzi2022")] = + "\n" + "@article{Invernizzi2022,\n" + " title = {Exploration vs {Convergence} {Speed} in {Adaptive}-{Bias} {Enhanced} {Sampling}},\n" + " volume = {18},\n" + " issn = {1549-9618},\n" + " url = {https://doi.org/10.1021/acs.jctc.2c00152},\n" + " doi = {10.1021/acs.jctc.2c00152},\n" + " number = {6},\n" + " urldate = {2024-07-02},\n" + " journal = {J. Chem. Theory Comput.},\n" + " author = {Invernizzi, Michele and Parrinello, Michele},\n" + " month = jun,\n" + " year = {2022},\n" + " pages = {3988--3996},\n" + "}\n"; + paper_count_[std::string("n/a")] = 0; paper_url_[std::string("n/a")] = ""; paper_bibtex_[std::string("n/a")] = ""; @@ -489,6 +559,42 @@ feature_count_[std::string("Multi-Map collective variables")] = 0; feature_paper_map_[std::string("Multi-Map collective variables")] = "Fiorin2020"; + feature_count_[std::string("Colvars-GROMACS interface")] = 0; + feature_paper_map_[std::string("Colvars-GROMACS interface")] = "Fiorin2024"; + + feature_count_[std::string("gspath colvar component")] = 0; + feature_paper_map_[std::string("gspath colvar component")] = "Fiorin2024"; + + feature_count_[std::string("gzpath colvar component")] = 0; + feature_paper_map_[std::string("gzpath colvar component")] = "Fiorin2024"; + + feature_count_[std::string("linearCombination colvar component")] = 0; + feature_paper_map_[std::string("linearCombination colvar component")] = "Fiorin2024"; + + feature_count_[std::string("gspathCV colvar component")] = 0; + feature_paper_map_[std::string("gspathCV colvar component")] = "Fiorin2024"; + + feature_count_[std::string("gzpathCV colvar component")] = 0; + feature_paper_map_[std::string("gzpathCV colvar component")] = "Fiorin2024"; + + feature_count_[std::string("aspathCV colvar component")] = 0; + feature_paper_map_[std::string("aspathCV colvar component")] = "Fiorin2024"; + + feature_count_[std::string("azpathCV colvar component")] = 0; + feature_paper_map_[std::string("azpathCV colvar component")] = "Fiorin2024"; + + feature_count_[std::string("Custom functions (Lepton)")] = 0; + feature_paper_map_[std::string("Custom functions (Lepton)")] = "Fiorin2024"; + + feature_count_[std::string("Scripted functions (Tcl)")] = 0; + feature_paper_map_[std::string("Scripted functions (Tcl)")] = "Fiorin2024"; + + feature_count_[std::string("ABMD bias")] = 0; + feature_paper_map_[std::string("ABMD bias")] = "Fiorin2024"; + + feature_count_[std::string("Updated multiple-walker ABF implementation")] = 0; + feature_paper_map_[std::string("Updated multiple-walker ABF implementation")] = "Fiorin2024"; + feature_count_[std::string("Umbrella-integration eABF estimator")] = 0; feature_paper_map_[std::string("Umbrella-integration eABF estimator")] = "Fu2016"; @@ -525,6 +631,15 @@ feature_count_[std::string("VMD engine")] = 0; feature_paper_map_[std::string("VMD engine")] = "Humphrey1996"; + feature_count_[std::string("alchLambda colvar component")] = 0; + feature_paper_map_[std::string("alchLambda colvar component")] = "Lagardere2023"; + + feature_count_[std::string("alchFLambda colvar component")] = 0; + feature_paper_map_[std::string("alchFLambda colvar component")] = "Lagardere2023"; + + feature_count_[std::string("Tinker-HP interface")] = 0; + feature_paper_map_[std::string("Tinker-HP interface")] = "Lagardere2023"; + feature_count_[std::string("eABF implementation")] = 0; feature_paper_map_[std::string("eABF implementation")] = "Lesage2017"; @@ -555,38 +670,14 @@ feature_count_[std::string("ALB colvar bias implementation")] = 0; feature_paper_map_[std::string("ALB colvar bias implementation")] = "White2014"; - feature_count_[std::string("Colvars-GROMACS interface")] = 0; - feature_paper_map_[std::string("Colvars-GROMACS interface")] = "n/a"; + feature_count_[std::string("OPES")] = 0; + feature_paper_map_[std::string("OPES")] = "Invernizzi2020"; - feature_count_[std::string("gspath colvar component")] = 0; - feature_paper_map_[std::string("gspath colvar component")] = "n/a"; - - feature_count_[std::string("gzpath colvar component")] = 0; - feature_paper_map_[std::string("gzpath colvar component")] = "n/a"; - - feature_count_[std::string("linearCombination colvar component")] = 0; - feature_paper_map_[std::string("linearCombination colvar component")] = "n/a"; - - feature_count_[std::string("gspathCV colvar component")] = 0; - feature_paper_map_[std::string("gspathCV colvar component")] = "n/a"; - - feature_count_[std::string("gzpathCV colvar component")] = 0; - feature_paper_map_[std::string("gzpathCV colvar component")] = "n/a"; - - feature_count_[std::string("aspathCV colvar component")] = 0; - feature_paper_map_[std::string("aspathCV colvar component")] = "n/a"; - - feature_count_[std::string("azpathCV colvar component")] = 0; - feature_paper_map_[std::string("azpathCV colvar component")] = "n/a"; + feature_count_[std::string("OPES explore or adaptive kernels")] = 0; + feature_paper_map_[std::string("OPES explore or adaptive kernels")] = "Invernizzi2022"; feature_count_[std::string("coordNum pairlist")] = 0; feature_paper_map_[std::string("coordNum pairlist")] = "n/a"; - feature_count_[std::string("Custom functions (Lepton)")] = 0; - feature_paper_map_[std::string("Custom functions (Lepton)")] = "n/a"; - - feature_count_[std::string("Scripted functions (Tcl)")] = 0; - feature_paper_map_[std::string("Scripted functions (Tcl)")] = "n/a"; - - feature_count_[std::string("ABMD bias")] = 0; - feature_paper_map_[std::string("ABMD bias")] = "n/a"; + feature_count_[std::string("torchANN colvar component")] = 0; + feature_paper_map_[std::string("torchANN colvar component")] = "n/a"; diff --git a/lib/colvars/colvarparse.cpp b/lib/colvars/colvarparse.cpp index 76b5c694c1..cf3096ba50 100644 --- a/lib/colvars/colvarparse.cpp +++ b/lib/colvars/colvarparse.cpp @@ -592,7 +592,7 @@ int colvarparse::check_keywords(std::string &conf, char const *key) { if (cvm::debug()) cvm::log("Configuration string for \""+std::string(key)+ - "\": \"\n"+conf+"\".\n"); + "\":\n\""+conf+"\".\n"); strip_values(conf); // after stripping, the config string has either empty lines, or @@ -833,7 +833,8 @@ bool colvarparse::key_lookup(std::string const &conf, data_end) + 1; } - if (data != NULL) { + // data_end < data_begin means that the data or block contains only whitespace + if (data != NULL && data_end > data_begin) { data->append(line, data_begin, (data_end-data_begin)); if (cvm::debug()) { diff --git a/lib/colvars/colvarproxy.cpp b/lib/colvars/colvarproxy.cpp index 588b7c68d8..1ed7a55552 100644 --- a/lib/colvars/colvarproxy.cpp +++ b/lib/colvars/colvarproxy.cpp @@ -243,7 +243,7 @@ void colvarproxy_atom_groups::compute_max_atom_groups_applied_force() colvarproxy_smp::colvarproxy_smp() { - b_smp_active = true; // May be disabled by user option + smp_mode = smp_mode_t::cvcs; // May be disabled by user option omp_lock_state = NULL; #if defined(_OPENMP) if (omp_get_thread_num() == 0) { @@ -265,41 +265,45 @@ colvarproxy_smp::~colvarproxy_smp() #endif } - -int colvarproxy_smp::check_smp_enabled() -{ +colvarproxy::smp_mode_t colvarproxy_smp::get_smp_mode() const { #if defined(_OPENMP) - if (b_smp_active) { - return COLVARS_OK; - } - return COLVARS_ERROR; + return smp_mode; #else - return COLVARS_NOT_IMPLEMENTED; + return colvarproxy::smp_mode_t::none; +#endif +} + +int colvarproxy_smp::set_smp_mode(smp_mode_t mode) { +#if defined(_OPENMP) + smp_mode = mode; + return COLVARS_OK; +#else + if (mode != colvarproxy::smp_mode_t::none) { + return COLVARS_NOT_IMPLEMENTED; + } else { + smp_mode = colvarproxy::smp_mode_t::none; + } + return COLVARS_OK; #endif } -int colvarproxy_smp::smp_colvars_loop() +int colvarproxy_smp::smp_loop(int n_items, std::function const &worker) { + int error_code = COLVARS_OK; #if defined(_OPENMP) - colvarmodule *cv = cvm::main(); - colvarproxy *proxy = cv->proxy; + cvm::increase_depth(); #pragma omp parallel for - for (int i = 0; i < static_cast(cv->variables_active_smp()->size()); i++) { - colvar *x = (*(cv->variables_active_smp()))[i]; - int x_item = (*(cv->variables_active_smp_items()))[i]; - if (cvm::debug()) { - cvm::log("["+cvm::to_str(proxy->smp_thread_id())+"/"+ - cvm::to_str(proxy->smp_num_threads())+ - "]: calc_colvars_items_smp(), i = "+cvm::to_str(i)+", cv = "+ - x->name+", cvc = "+cvm::to_str(x_item)+"\n"); - } - x->calc_cvcs(x_item, 1); + for (int i = 0; i < n_items; i++) { + int const retcode = worker(i); +#pragma omp atomic + error_code |= retcode; } - return cvm::get_error(); + cvm::decrease_depth(); #else - return COLVARS_NOT_IMPLEMENTED; + error_code |= COLVARS_NOT_IMPLEMENTED; #endif + return error_code; } @@ -470,8 +474,8 @@ colvarproxy::~colvarproxy() bool colvarproxy::io_available() { - return (check_smp_enabled() == COLVARS_OK && smp_thread_id() == 0) || - (check_smp_enabled() != COLVARS_OK); + return ((get_smp_mode() != smp_mode_t::none) && smp_thread_id() == 0) || + (get_smp_mode() == smp_mode_t::none); } diff --git a/lib/colvars/colvarproxy.h b/lib/colvars/colvarproxy.h index 91db6011e9..353f354efa 100644 --- a/lib/colvars/colvarproxy.h +++ b/lib/colvars/colvarproxy.h @@ -10,9 +10,12 @@ #ifndef COLVARPROXY_H #define COLVARPROXY_H +#include + #include "colvarmodule.h" #include "colvartypes.h" #include "colvarproxy_io.h" +#include "colvarproxy_replicas.h" #include "colvarproxy_system.h" #include "colvarproxy_tcl.h" #include "colvarproxy_volmaps.h" @@ -447,21 +450,22 @@ class colvarproxy_smp { public: + enum class smp_mode_t {cvcs, inner_loop, none}; + /// Constructor colvarproxy_smp(); /// Destructor virtual ~colvarproxy_smp(); - /// Whether threaded parallelization should be used (TODO: make this a - /// cvm::deps feature) - bool b_smp_active; + /// Get the current SMP mode + virtual smp_mode_t get_smp_mode() const; - /// Whether threaded parallelization is available (TODO: make this a cvm::deps feature) - virtual int check_smp_enabled(); + /// Set the current SMP mode + virtual int set_smp_mode(smp_mode_t mode); - /// Distribute calculation of colvars (and their components) across threads - virtual int smp_colvars_loop(); + /// Distribute computation over threads using OpenMP, unless overridden in the backend (e.g. NAMD) + virtual int smp_loop(int n_items, std::function const &worker); /// Distribute calculation of biases across threads virtual int smp_biases_loop(); @@ -488,38 +492,10 @@ protected: /// Lock state for OpenMP omp_lock_t *omp_lock_state; -}; - - -/// \brief Methods for multiple-replica communication -class colvarproxy_replicas { - -public: - - /// Constructor - colvarproxy_replicas(); - - /// Destructor - virtual ~colvarproxy_replicas(); - - /// \brief Indicate if multi-replica support is available and active - virtual int replica_enabled(); - - /// \brief Index of this replica - virtual int replica_index(); - - /// \brief Total number of replicas - virtual int num_replicas(); - - /// \brief Synchronize replica with others - virtual void replica_comm_barrier(); - - /// \brief Receive data from other replica - virtual int replica_comm_recv(char* msg_data, int buf_len, int src_rep); - - /// \brief Send data to other replica - virtual int replica_comm_send(char* msg_data, int msg_len, int dest_rep); + /// Whether threaded parallelization should be used (TODO: make this a + /// cvm::deps feature) + smp_mode_t smp_mode; }; diff --git a/lib/colvars/colvarproxy_io.cpp b/lib/colvars/colvarproxy_io.cpp index 4cfdfeec26..0327ed36f0 100644 --- a/lib/colvars/colvarproxy_io.cpp +++ b/lib/colvars/colvarproxy_io.cpp @@ -7,10 +7,28 @@ // If you wish to distribute your changes, please submit them to the // Colvars repository at GitHub. + +#if defined(_WIN32) && !defined(__CYGWIN__) + // Using access() to check if a file exists (until we can assume C++14/17) -#if !defined(_WIN32) || defined(__CYGWIN__) -#include +#include + +#if defined(__has_include) +# if __has_include() +# include // MSVC only defines __cpp_lib_filesystem after include +# endif #endif + +#else + +#include + +#ifdef __cpp_lib_filesystem +#include +#endif + +#endif + #if defined(_WIN32) #include #endif @@ -64,6 +82,53 @@ int colvarproxy_io::set_frame(long int) } +std::string colvarproxy_io::get_current_work_dir() const +{ +#ifdef __cpp_lib_filesystem + + return std::filesystem::current_path().string(); + +#else + + // Legacy code + size_t constexpr buf_size = 3001; + char buf[buf_size]; + +#if defined(_WIN32) && !defined(__CYGWIN__) + char *getcwd_result = ::_getcwd(buf, buf_size); +#else + char *getcwd_result = ::getcwd(buf, buf_size); +#endif + + if (getcwd_result == nullptr) { + cvm::error("Error: cannot read the current working directory.\n", COLVARS_INPUT_ERROR); + return std::string(""); + } + + return std::string(getcwd_result); +#endif +} + + +std::string colvarproxy_io::join_paths(std::string const &path1, std::string const &path2) const +{ +#ifdef __cpp_lib_filesystem + + return (std::filesystem::path(path1) / std::filesystem::path(path2)).string(); + +#else + + // Legacy code +#if defined(_WIN32) && !defined(__CYGWIN__) + return (path1 + "\\" + path2); +#else + return (path1 + "/" + path2); +#endif + +#endif +} + + int colvarproxy_io::backup_file(char const *filename) { // Simplified version of NAMD_file_exists() diff --git a/lib/colvars/colvarproxy_io.h b/lib/colvars/colvarproxy_io.h index 726f915c97..eaf750366d 100644 --- a/lib/colvars/colvarproxy_io.h +++ b/lib/colvars/colvarproxy_io.h @@ -38,6 +38,12 @@ public: // Returns error code virtual int set_frame(long int); + /// Get the current working directory of this process + std::string get_current_work_dir() const; + + /// Join two paths using the operating system's path separation + std::string join_paths(std::string const &path1, std::string const &path2) const; + /// \brief Rename the given file, before overwriting it virtual int backup_file(char const *filename); diff --git a/lib/colvars/colvarproxy_replicas.cpp b/lib/colvars/colvarproxy_replicas.cpp index 1f336d3e44..ec7ffdd8d5 100644 --- a/lib/colvars/colvarproxy_replicas.cpp +++ b/lib/colvars/colvarproxy_replicas.cpp @@ -7,50 +7,103 @@ // If you wish to distribute your changes, please submit them to the // Colvars repository at GitHub. + #include "colvarmodule.h" -#include "colvarproxy.h" +#include "colvarproxy_replicas.h" -colvarproxy_replicas::colvarproxy_replicas() {} +colvarproxy_replicas::colvarproxy_replicas() +{ +#ifdef COLVARS_MPI + replicas_mpi_comm = MPI_COMM_NULL; +#endif +} colvarproxy_replicas::~colvarproxy_replicas() {} -int colvarproxy_replicas::replica_enabled() +void colvarproxy_replicas::set_replicas_mpi_communicator(replicas_mpi_comm_t comm) { + replicas_mpi_comm = comm; +#ifdef COLVARS_MPI + if (comm != MPI_COMM_NULL) { + MPI_Comm_rank(comm, &replicas_mpi_rank); + MPI_Comm_size(comm, &replicas_mpi_num); + cvm::log("Enabling multiple replicas: this is replica number " + + cvm::to_str(replica_index() + 1) + " of " + cvm::to_str(num_replicas()) + ".\n"); + } +#endif +} + + +int colvarproxy_replicas::check_replicas_enabled() +{ +#ifdef COLVARS_MPI + if (replicas_mpi_comm != MPI_COMM_NULL) { + return num_replicas() > 1 ? COLVARS_OK : COLVARS_ERROR; + } + return COLVARS_ERROR; +#else return COLVARS_NOT_IMPLEMENTED; +#endif } int colvarproxy_replicas::replica_index() { - return 0; + return replicas_mpi_rank; } int colvarproxy_replicas::num_replicas() { - return 1; + return replicas_mpi_num; } -void colvarproxy_replicas::replica_comm_barrier() {} - - -int colvarproxy_replicas::replica_comm_recv(char* /* msg_data */, - int /* buf_len */, - int /* src_rep */) +void colvarproxy_replicas::replica_comm_barrier() { - return COLVARS_NOT_IMPLEMENTED; +#ifdef COLVARS_MPI + MPI_Barrier(replicas_mpi_comm); +#endif } -int colvarproxy_replicas::replica_comm_send(char* /* msg_data */, - int /* msg_len */, - int /* dest_rep */) +int colvarproxy_replicas::replica_comm_recv(char *buffer, int buffer_length, int source_rank) { +#ifdef COLVARS_MPI + MPI_Status status; + int retval = MPI_Recv(buffer, buffer_length, MPI_CHAR, source_rank, 0, replicas_mpi_comm, &status); + if (retval == MPI_SUCCESS) { + MPI_Get_count(&status, MPI_CHAR, &retval); + } else { + retval = 0; + } + return retval; +#else + (void)buffer; + (void)buffer_length; + (void)source_rank; return COLVARS_NOT_IMPLEMENTED; +#endif } +int colvarproxy_replicas::replica_comm_send(char *buffer, int buffer_length, int destination_rank) +{ +#ifdef COLVARS_MPI + int retval = MPI_Send(buffer, buffer_length, MPI_CHAR, destination_rank, 0, replicas_mpi_comm); + if (retval == MPI_SUCCESS) { + retval = buffer_length; + } else { + retval = 0; + } + return retval; +#else + (void)buffer; + (void)buffer_length; + (void)destination_rank; + return COLVARS_NOT_IMPLEMENTED; +#endif +} diff --git a/lib/colvars/colvarproxy_replicas.h b/lib/colvars/colvarproxy_replicas.h new file mode 100644 index 0000000000..b58c80bf5e --- /dev/null +++ b/lib/colvars/colvarproxy_replicas.h @@ -0,0 +1,66 @@ +// -*- c++ -*- + +// This file is part of the Collective Variables module (Colvars). +// The original version of Colvars and its updates are located at: +// https://github.com/Colvars/colvars +// Please update all Colvars source files before making any changes. +// If you wish to distribute your changes, please submit them to the +// Colvars repository at GitHub. + +#ifndef COLVARPROXY_REPLICAS_H +#define COLVARPROXY_REPLICAS_H + + +#ifdef COLVARS_MPI +#include +typedef MPI_Comm replicas_mpi_comm_t; +#else +typedef void * replicas_mpi_comm_t; +#endif + + +/// \brief Methods for multiple-replica communication +class colvarproxy_replicas { + +public: + + /// Constructor + colvarproxy_replicas(); + + /// Destructor + virtual ~colvarproxy_replicas(); + + /// Set the multiple replicas communicator + virtual void set_replicas_mpi_communicator(replicas_mpi_comm_t comm); + + /// Indicate if multi-replica support is available and active + virtual int check_replicas_enabled(); + + /// Index of this replica + virtual int replica_index(); + + /// Total number of replicas + virtual int num_replicas(); + + /// Synchronize replica with others + virtual void replica_comm_barrier(); + + /// Receive data from other replica + virtual int replica_comm_recv(char* msg_data, int buf_len, int src_rep); + + /// Send data to other replica + virtual int replica_comm_send(char* msg_data, int msg_len, int dest_rep); + +protected: + + /// MPI communicator containint 1 root proc from each world + replicas_mpi_comm_t replicas_mpi_comm; + + /// Index (rank) of this replica in the MPI implementation + int replicas_mpi_rank = 0; + + /// Number of replicas in the MPI implementation + int replicas_mpi_num = 1; +}; + +#endif diff --git a/lib/colvars/colvarproxy_system.h b/lib/colvars/colvarproxy_system.h index 67d0938e54..bf2ad2ea8b 100644 --- a/lib/colvars/colvarproxy_system.h +++ b/lib/colvars/colvarproxy_system.h @@ -94,6 +94,7 @@ public: virtual bool total_forces_enabled() const; /// Are total forces from the current step available? + /// in which case they are really system forces virtual bool total_forces_same_step() const; /// Get the molecule ID when called in VMD; raise error otherwise @@ -109,6 +110,11 @@ public: /// Send cached value of alchemical lambda parameter to back-end (if available) virtual int send_alch_lambda(); + /// Request energy computation every freq steps (necessary for NAMD3, not all back-ends) + virtual int request_alch_energy_freq(int const freq) { + return COLVARS_OK; + } + /// Get energy derivative with respect to lambda (if available) virtual int get_dE_dlambda(cvm::real* dE_dlambda); diff --git a/lib/colvars/colvars_memstream.h b/lib/colvars/colvars_memstream.h index 0d80d2794d..c9564a3c41 100644 --- a/lib/colvars/colvars_memstream.h +++ b/lib/colvars/colvars_memstream.h @@ -108,6 +108,9 @@ public: /// Ignore formatting operators inline void setf(decltype(std::ios::fmtflags(0)), decltype(std::ios::floatfield)) {} + /// Ignore formatting operators + inline void setf(decltype(std::ios::fmtflags(0))) {} + /// Ignore formatting operators inline void flags(decltype(std::ios::fmtflags(0))) {} diff --git a/lib/colvars/colvars_version.h b/lib/colvars/colvars_version.h index d50a00fff5..02f949b517 100644 --- a/lib/colvars/colvars_version.h +++ b/lib/colvars/colvars_version.h @@ -1,3 +1,3 @@ #ifndef COLVARS_VERSION -#define COLVARS_VERSION "2024-06-04" +#define COLVARS_VERSION "2025-04-30" #endif diff --git a/lib/colvars/colvarscript_commands.h b/lib/colvars/colvarscript_commands.h index bdad74e433..191724dd0f 100644 --- a/lib/colvars/colvarscript_commands.h +++ b/lib/colvars/colvarscript_commands.h @@ -541,6 +541,15 @@ CVSCRIPT(cv_printframe, return COLVARS_OK; ) +CVSCRIPT(cv_patchversion, + "Get the Colvars patch version number (used for bugfixes only)\n" + "version : string - Colvars version", + 0, 0, + "", + script->set_result_int(cvm::main()->patch_version_number()); + return COLVARS_OK; + ) + CVSCRIPT(cv_printframelabels, "Return the labels that would be written to colvars.traj\n" "Labels : string - The labels", @@ -656,7 +665,7 @@ CVSCRIPT(cv_update, ) CVSCRIPT(cv_version, - "Get the Colvars Module version string\n" + "Get the Colvars version string\n" "version : string - Colvars version", 0, 0, "", @@ -665,7 +674,7 @@ CVSCRIPT(cv_version, ) // This guard allows compiling colvar and bias function bodies in their -// respecitve files instead of colvarscript_commands.o +// respective files instead of colvarscript_commands.o #ifndef COLVARSCRIPT_COMMANDS_GLOBAL #include "colvarscript_commands_colvar.h" #include "colvarscript_commands_bias.h" diff --git a/lib/colvars/colvarscript_commands_colvar.h b/lib/colvars/colvarscript_commands_colvar.h index f6bb6b8c98..c641b321d0 100644 --- a/lib/colvars/colvarscript_commands_colvar.h +++ b/lib/colvars/colvarscript_commands_colvar.h @@ -23,6 +23,7 @@ CVSCRIPT(colvar_addforce, script->add_error_msg("addforce : error parsing force value"); return COLVARSCRIPT_ERROR; } + this_colvar->enable(colvardeps::f_cv_apply_force); this_colvar->add_bias_force(force); script->set_result_colvarvalue(force); return COLVARS_OK; diff --git a/lib/colvars/colvartypes.cpp b/lib/colvars/colvartypes.cpp index f51791d015..6c65f1f5a6 100644 --- a/lib/colvars/colvartypes.cpp +++ b/lib/colvars/colvartypes.cpp @@ -137,71 +137,6 @@ std::istream & operator >> (std::istream &is, colvarmodule::quaternion &q) } -cvm::quaternion -cvm::quaternion::position_derivative_inner(cvm::rvector const &pos, - cvm::rvector const &vec) const -{ - cvm::quaternion result(0.0, 0.0, 0.0, 0.0); - - - result.q0 = 2.0 * pos.x * q0 * vec.x - +2.0 * pos.y * q0 * vec.y - +2.0 * pos.z * q0 * vec.z - - -2.0 * pos.y * q3 * vec.x - +2.0 * pos.z * q2 * vec.x - - +2.0 * pos.x * q3 * vec.y - -2.0 * pos.z * q1 * vec.y - - -2.0 * pos.x * q2 * vec.z - +2.0 * pos.y * q1 * vec.z; - - - result.q1 = +2.0 * pos.x * q1 * vec.x - -2.0 * pos.y * q1 * vec.y - -2.0 * pos.z * q1 * vec.z - - +2.0 * pos.y * q2 * vec.x - +2.0 * pos.z * q3 * vec.x - - +2.0 * pos.x * q2 * vec.y - -2.0 * pos.z * q0 * vec.y - - +2.0 * pos.x * q3 * vec.z - +2.0 * pos.y * q0 * vec.z; - - - result.q2 = -2.0 * pos.x * q2 * vec.x - +2.0 * pos.y * q2 * vec.y - -2.0 * pos.z * q2 * vec.z - - +2.0 * pos.y * q1 * vec.x - +2.0 * pos.z * q0 * vec.x - - +2.0 * pos.x * q1 * vec.y - +2.0 * pos.z * q3 * vec.y - - -2.0 * pos.x * q0 * vec.z - +2.0 * pos.y * q3 * vec.z; - - - result.q3 = -2.0 * pos.x * q3 * vec.x - -2.0 * pos.y * q3 * vec.y - +2.0 * pos.z * q3 * vec.z - - -2.0 * pos.y * q0 * vec.x - +2.0 * pos.z * q1 * vec.x - - +2.0 * pos.x * q0 * vec.y - +2.0 * pos.z * q2 * vec.y - - +2.0 * pos.x * q1 * vec.z - +2.0 * pos.y * q2 * vec.z; - - return result; -} - #ifdef COLVARS_LAMMPS namespace { inline void *new_Jacobi_solver(int size) { @@ -336,7 +271,7 @@ void colvarmodule::rotation::compute_overlap_matrix() #ifndef COLVARS_LAMMPS namespace NR { -void diagonalize_matrix(cvm::real m[4][4], +int diagonalize_matrix(cvm::real m[4][4], cvm::real eigval[4], cvm::real eigvec[4][4]) { @@ -347,9 +282,7 @@ void diagonalize_matrix(cvm::real m[4][4], int jac_nrot = 0; if (NR_Jacobi::jacobi(m, eigval, eigvec, &jac_nrot) != COLVARS_OK) { - cvm::error("Too many iterations in jacobi diagonalization.\n" - "This is usually the result of an ill-defined set of atoms for " - "rotational alignment (RMSD, rotateReference, etc).\n"); + return COLVARS_ERROR; } NR_Jacobi::eigsrt(eigval, eigvec); // jacobi saves eigenvectors by columns @@ -367,6 +300,7 @@ void diagonalize_matrix(cvm::real m[4][4], eigvec[ie][i] /= norm; } } + return COLVARS_OK; } } @@ -429,14 +363,25 @@ void colvarmodule::rotation::calc_optimal_rotation_impl() { cvm::real[4][4]> *>(jacobi); int ierror = ecalc->Diagonalize(S, S_eigval, S_eigvec); +#else + int ierror = NR::diagonalize_matrix(S, S_eigval, S_eigvec); +#endif if (ierror) { + cvm::log("Failed to diagonalize the following overlapping matrix:\n"); + for (size_t i = 0; i < 4; ++i) { + for (size_t j = 0; j < 4; ++j) { + cvm::log(cvm::to_str(S[i][j]) + " "); + } + cvm::log("\n"); + } + cvm::log("The corresponding correlation matrix is:\n"); + cvm::log(" " + cvm::to_str(C.xx) + " " + cvm::to_str(C.xy) + " " + cvm::to_str(C.xz)); + cvm::log(" " + cvm::to_str(C.yx) + " " + cvm::to_str(C.yy) + " " + cvm::to_str(C.yz)); + cvm::log(" " + cvm::to_str(C.zx) + " " + cvm::to_str(C.zy) + " " + cvm::to_str(C.zz) + "\n"); cvm::error("Too many iterations in jacobi diagonalization.\n" "This is usually the result of an ill-defined set of atoms for " "rotational alignment (RMSD, rotateReference, etc).\n"); } -#else - NR::diagonalize_matrix(S, S_eigval, S_eigvec); -#endif q = cvm::quaternion{S_eigvec[0][0], S_eigvec[0][1], S_eigvec[0][2], S_eigvec[0][3]}; if (cvm::rotation::monitor_crossings) { diff --git a/lib/colvars/colvartypes.h b/lib/colvars/colvartypes.h index 455e628f1b..db5827990b 100644 --- a/lib/colvars/colvartypes.h +++ b/lib/colvars/colvartypes.h @@ -20,10 +20,6 @@ #include "colvarmodule.h" -#ifndef PI -#define PI 3.14159265358979323846 -#endif - // ---------------------------------------------------------------------- /// Linear algebra functions and data types used in the collective /// variables implemented so far @@ -1221,8 +1217,57 @@ public: /// \brief Multiply the given vector by the derivative of the given /// (rotated) position with respect to the quaternion - cvm::quaternion position_derivative_inner(cvm::rvector const &pos, - cvm::rvector const &vec) const; + /// \param pos The position \f$\mathbf{x}\f$. + /// \param vec The vector \f$\mathbf{v}\f$. + /// \return A quaternion (see the detailed documentation below). + /// + /// This function is mainly used for projecting the gradients or forces on + /// the rotated atoms to the forces on quaternion. Assume this rotation can + /// be represented as \f$R(\mathbf{q})\f$, + /// where \f$\mathbf{q} := (q_0, q_1, q_2, q_3)\f$ + /// is the current quaternion, the function returns the following new + /// quaternion: + /// \f[ + /// \left(\mathbf{v}^\mathrm{T}\frac{\partial R(\mathbf{q})}{\partial q_0}\mathbf{x}, + /// \mathbf{v}^\mathrm{T}\frac{\partial R(\mathbf{q})}{\partial q_1}\mathbf{x}, + /// \mathbf{v}^\mathrm{T}\frac{\partial R(\mathbf{q})}{\partial q_2}\mathbf{x}, + /// \mathbf{v}^\mathrm{T}\frac{\partial R(\mathbf{q})}{\partial q_3}\mathbf{x}\right) + /// \f] + /// where \f$\mathbf{v}\f$ is usually the gradient of \f$\xi\f$ with respect to + /// the rotated frame \f$\tilde{\mathbf{X}}\f$, + /// \f$\partial \xi / \partial \tilde{\mathbf{X}}\f$, or the force acting on it + /// (\f$\mathbf{F}_{\tilde{\mathbf{X}}}\f$). + /// By using the following loop in pseudo C++ code, + /// either \f$\partial \xi / \partial \tilde{\mathbf{X}}\f$ + /// or \f$\mathbf{F}_{\tilde{\mathbf{X}}}\f$, can be projected to + /// \f$\partial \xi / \partial \mathbf{q}\f$ or \f$\mathbf{F}_q\f$ into `sum_dxdq`: + /// @code + /// cvm::real sum_dxdq[4] = {0, 0, 0, 0}; + /// for (size_t i = 0; i < main_group_size(); ++i) { + /// const cvm::rvector v = grad_or_force_on_rotated_main_group(i); + /// const cvm::rvector x = unrotated_main_group_positions(i); + /// cvm::quaternion const dxdq = position_derivative_inner(x, v); + /// sum_dxdq[0] += dxdq[0]; + /// sum_dxdq[1] += dxdq[1]; + /// sum_dxdq[2] += dxdq[2]; + /// sum_dxdq[3] += dxdq[3]; + /// } + /// @endcode + inline cvm::quaternion position_derivative_inner(cvm::rvector const &pos, + cvm::rvector const &vec) const { + return cvm::quaternion(2.0 * (vec.x * ( q0 * pos.x - q3 * pos.y + q2 * pos.z) + + vec.y * ( q3 * pos.x + q0 * pos.y - q1 * pos.z) + + vec.z * (-q2 * pos.x + q1 * pos.y + q0 * pos.z)), + 2.0 * (vec.x * ( q1 * pos.x + q2 * pos.y + q3 * pos.z) + + vec.y * ( q2 * pos.x - q1 * pos.y - q0 * pos.z) + + vec.z * ( q3 * pos.x + q0 * pos.y - q1 * pos.z)), + 2.0 * (vec.x * (-q2 * pos.x + q1 * pos.y + q0 * pos.z) + + vec.y * ( q1 * pos.x + q2 * pos.y + q3 * pos.z) + + vec.z * (-q0 * pos.x + q3 * pos.y - q2 * pos.z)), + 2.0 * (vec.x * (-q3 * pos.x - q0 * pos.y + q1 * pos.z) + + vec.y * ( q0 * pos.x - q3 * pos.y + q2 * pos.z) + + vec.z * ( q1 * pos.x + q2 * pos.y + q3 * pos.z))); + } /// \brief Return the cosine between the orientation frame @@ -1301,7 +1346,7 @@ public: #ifndef COLVARS_LAMMPS namespace NR { -void diagonalize_matrix(cvm::real m[4][4], +int diagonalize_matrix(cvm::real m[4][4], cvm::real eigval[4], cvm::real eigvec[4][4]); } diff --git a/lib/colvars/colvarvalue.cpp b/lib/colvars/colvarvalue.cpp index 3b8077d2e7..66baf35eeb 100644 --- a/lib/colvars/colvarvalue.cpp +++ b/lib/colvars/colvarvalue.cpp @@ -153,29 +153,6 @@ std::string const colvarvalue::type_keyword(Type t) } -size_t colvarvalue::num_df(Type t) -{ - switch (t) { - case colvarvalue::type_notset: - default: - return 0; break; - case colvarvalue::type_scalar: - return 1; break; - case colvarvalue::type_3vector: - return 3; break; - case colvarvalue::type_unit3vector: - case colvarvalue::type_unit3vectorderiv: - return 2; break; - case colvarvalue::type_quaternion: - case colvarvalue::type_quaternionderiv: - return 3; break; - case colvarvalue::type_vector: - // the size of a vector is unknown without its object - return 0; break; - } -} - - size_t colvarvalue::num_dimensions(Type t) { switch (t) { @@ -591,34 +568,132 @@ cvm::real operator * (colvarvalue const &x1, } +cvm::real colvarvalue::norm2() const +{ + switch (value_type) { + case colvarvalue::type_scalar: + return (this->real_value)*(this->real_value); + case colvarvalue::type_3vector: + case colvarvalue::type_unit3vector: + case colvarvalue::type_unit3vectorderiv: + return (this->rvector_value).norm2(); + case colvarvalue::type_quaternion: + case colvarvalue::type_quaternionderiv: + return (this->quaternion_value).norm2(); + case colvarvalue::type_vector: + if (elem_types.size() > 0) { + // if we have information about non-scalar types, use it + cvm::real result = 0.0; + size_t i; + for (i = 0; i < elem_types.size(); i++) { + result += (this->get_elem(i)).norm2(); + } + return result; + } else { + return vector1d_value.norm2(); + } + break; + case colvarvalue::type_notset: + default: + return 0.0; + } +} + + +cvm::real colvarvalue::sum() const +{ + switch (value_type) { + case colvarvalue::type_scalar: + return (this->real_value); + case colvarvalue::type_3vector: + case colvarvalue::type_unit3vector: + case colvarvalue::type_unit3vectorderiv: + return (this->rvector_value).x + (this->rvector_value).y + + (this->rvector_value).z; + case colvarvalue::type_quaternion: + case colvarvalue::type_quaternionderiv: + return (this->quaternion_value).q0 + (this->quaternion_value).q1 + + (this->quaternion_value).q2 + (this->quaternion_value).q3; + case colvarvalue::type_vector: + return (this->vector1d_value).sum(); + case colvarvalue::type_notset: + default: + return 0.0; + } +} + + +cvm::real colvarvalue::dist2(colvarvalue const &x2) const +{ + colvarvalue::check_types(*this, x2); + + switch (this->type()) { + case colvarvalue::type_scalar: + return (this->real_value - x2.real_value) * (this->real_value - x2.real_value); + case colvarvalue::type_3vector: + return (this->rvector_value - x2.rvector_value).norm2(); + case colvarvalue::type_unit3vector: { + cvm::rvector const &v1 = this->rvector_value; + cvm::rvector const &v2 = x2.rvector_value; + cvm::real const theta = cvm::acos(v1 * v2); + return theta * theta; + } + case colvarvalue::type_quaternion: + // angle between (*this) and x2 is the distance, the quaternion + // object has it implemented internally + return this->quaternion_value.dist2(x2.quaternion_value); + case colvarvalue::type_vector: + return (this->vector1d_value - x2.vector1d_value).norm2(); + case colvarvalue::type_unit3vectorderiv: + case colvarvalue::type_quaternionderiv: + cvm::error("Error: computing a squared-distance between two variables of type \"" + + type_desc(this->type()) + "\", for which it is not defined.\n", + COLVARS_BUG_ERROR); + case colvarvalue::type_notset: + default: + this->undef_op(); + return 0.0; + }; + + return 0.0; +} + + colvarvalue colvarvalue::dist2_grad(colvarvalue const &x2) const { colvarvalue::check_types(*this, x2); + // Compute derivative with respect to (*this) + switch (this->value_type) { case colvarvalue::type_scalar: return 2.0 * (this->real_value - x2.real_value); case colvarvalue::type_3vector: return 2.0 * (this->rvector_value - x2.rvector_value); - case colvarvalue::type_unit3vector: - case colvarvalue::type_unit3vectorderiv: - { - cvm::rvector const &v1 = this->rvector_value; - cvm::rvector const &v2 = x2.rvector_value; - cvm::real const cos_t = v1 * v2; - return colvarvalue(2.0 * (cos_t * v1 - v2), colvarvalue::type_unit3vectorderiv); - } + case colvarvalue::type_unit3vector: { + cvm::rvector const &v1 = this->rvector_value; + cvm::rvector const &v2 = x2.rvector_value; + cvm::real const cos_t = v1 * v2; + return colvarvalue(2.0 * cvm::acos(cos_t) * -1.0 / cvm::sqrt(1.0 - cos_t * cos_t) * v2, + colvarvalue::type_unit3vectorderiv); + } case colvarvalue::type_quaternion: - case colvarvalue::type_quaternionderiv: return this->quaternion_value.dist2_grad(x2.quaternion_value); case colvarvalue::type_vector: return colvarvalue(2.0 * (this->vector1d_value - x2.vector1d_value), colvarvalue::type_vector); break; + case colvarvalue::type_unit3vectorderiv: + case colvarvalue::type_quaternionderiv: + cvm::error("Error: computing a squared-distance gradient between two variables of type \"" + + type_desc(this->type()) + "\", for which it is not defined.\n", + COLVARS_BUG_ERROR); case colvarvalue::type_notset: default: this->undef_op(); return colvarvalue(colvarvalue::type_notset); }; + + return colvarvalue(colvarvalue::type_notset); } diff --git a/lib/colvars/colvarvalue.h b/lib/colvars/colvarvalue.h index e8a6a849d3..61f1bf718b 100644 --- a/lib/colvars/colvarvalue.h +++ b/lib/colvars/colvarvalue.h @@ -109,9 +109,6 @@ public: /// User keywords for specifying value types in the configuration static std::string const type_keyword(Type t); - /// Number of degrees of freedom for each supported type - static size_t num_df(Type t); - /// Number of dimensions for each supported type (used to allocate vector1d_value) static size_t num_dimensions(Type t); @@ -671,87 +668,4 @@ inline cvm::vector1d const colvarvalue::as_vector() const } -inline cvm::real colvarvalue::norm2() const -{ - switch (value_type) { - case colvarvalue::type_scalar: - return (this->real_value)*(this->real_value); - case colvarvalue::type_3vector: - case colvarvalue::type_unit3vector: - case colvarvalue::type_unit3vectorderiv: - return (this->rvector_value).norm2(); - case colvarvalue::type_quaternion: - case colvarvalue::type_quaternionderiv: - return (this->quaternion_value).norm2(); - case colvarvalue::type_vector: - if (elem_types.size() > 0) { - // if we have information about non-scalar types, use it - cvm::real result = 0.0; - size_t i; - for (i = 0; i < elem_types.size(); i++) { - result += (this->get_elem(i)).norm2(); - } - return result; - } else { - return vector1d_value.norm2(); - } - break; - case colvarvalue::type_notset: - default: - return 0.0; - } -} - - -inline cvm::real colvarvalue::sum() const -{ - switch (value_type) { - case colvarvalue::type_scalar: - return (this->real_value); - case colvarvalue::type_3vector: - case colvarvalue::type_unit3vector: - case colvarvalue::type_unit3vectorderiv: - return (this->rvector_value).x + (this->rvector_value).y + - (this->rvector_value).z; - case colvarvalue::type_quaternion: - case colvarvalue::type_quaternionderiv: - return (this->quaternion_value).q0 + (this->quaternion_value).q1 + - (this->quaternion_value).q2 + (this->quaternion_value).q3; - case colvarvalue::type_vector: - return (this->vector1d_value).sum(); - case colvarvalue::type_notset: - default: - return 0.0; - } -} - - -inline cvm::real colvarvalue::dist2(colvarvalue const &x2) const -{ - colvarvalue::check_types(*this, x2); - - switch (this->type()) { - case colvarvalue::type_scalar: - return (this->real_value - x2.real_value)*(this->real_value - x2.real_value); - case colvarvalue::type_3vector: - return (this->rvector_value - x2.rvector_value).norm2(); - case colvarvalue::type_unit3vector: - case colvarvalue::type_unit3vectorderiv: - // angle between (*this) and x2 is the distance - return cvm::acos(this->rvector_value * x2.rvector_value) * cvm::acos(this->rvector_value * x2.rvector_value); - case colvarvalue::type_quaternion: - case colvarvalue::type_quaternionderiv: - // angle between (*this) and x2 is the distance, the quaternion - // object has it implemented internally - return this->quaternion_value.dist2(x2.quaternion_value); - case colvarvalue::type_vector: - return (this->vector1d_value - x2.vector1d_value).norm2(); - case colvarvalue::type_notset: - default: - this->undef_op(); - return 0.0; - }; -} - - #endif diff --git a/src/COLVARS/colvarproxy_lammps.cpp b/src/COLVARS/colvarproxy_lammps.cpp index 265dc34f43..c92d835cf6 100644 --- a/src/COLVARS/colvarproxy_lammps.cpp +++ b/src/COLVARS/colvarproxy_lammps.cpp @@ -33,12 +33,9 @@ colvarproxy_lammps::colvarproxy_lammps(LAMMPS_NS::LAMMPS *lmp) : _lmp(lmp), _ra previous_step = -1; do_exit = false; - inter_me = 0; - inter_num = 1; bias_energy = 0.0; engine_ready_ = false; - inter_comm = MPI_COMM_NULL; } /* ---------------------------------------------------------------------- */ @@ -83,19 +80,6 @@ void colvarproxy_lammps::set_random_seed(int seed) _random = new LAMMPS_NS::RanPark(_lmp, seed); } -/* ---------------------------------------------------------------------- */ - -void colvarproxy_lammps::set_replicas_communicator(MPI_Comm root2root) -{ - inter_comm = root2root; - - // initialize multi-replica support, if available - if (replica_enabled() == COLVARS_OK) { - MPI_Comm_rank(inter_comm, &inter_me); - MPI_Comm_size(inter_comm, &inter_num); - } -} - /* ---------------------------------------------------------------------- re-initialize data where needed ------------------------------------------------------------------------- */ @@ -255,63 +239,7 @@ int colvarproxy_lammps::set_unit_system(std::string const &units_in, bool /*chec return COLVARS_OK; } -/* ---------------------------------------------------------------------- - multi-replica support -------------------------------------------------------------------------- */ -int colvarproxy_lammps::replica_enabled() -{ - return (inter_comm != MPI_COMM_NULL) ? COLVARS_OK : COLVARS_NOT_IMPLEMENTED; -} - -/* ---------------------------------------------------------------------- */ - -int colvarproxy_lammps::replica_index() -{ - return inter_me; -} - -/* ---------------------------------------------------------------------- */ - -int colvarproxy_lammps::num_replicas() -{ - return inter_num; -} - -/* ---------------------------------------------------------------------- */ - -void colvarproxy_lammps::replica_comm_barrier() -{ - MPI_Barrier(inter_comm); -} - -/* ---------------------------------------------------------------------- */ - -int colvarproxy_lammps::replica_comm_recv(char* msg_data, int buf_len, int src_rep) -{ - MPI_Status status; - int retval; - - retval = MPI_Recv(msg_data,buf_len,MPI_CHAR,src_rep,0,inter_comm,&status); - if (retval == MPI_SUCCESS) { - MPI_Get_count(&status, MPI_CHAR, &retval); - } else retval = 0; - return retval; -} - -/* ---------------------------------------------------------------------- */ - -int colvarproxy_lammps::replica_comm_send(char* msg_data, int msg_len, int dest_rep) -{ - int retval; - retval = MPI_Send(msg_data,msg_len,MPI_CHAR,dest_rep,0,inter_comm); - if (retval == MPI_SUCCESS) { - retval = msg_len; - } else retval = 0; - return retval; -} - -/* ---------------------------------------------------------------------- */ int colvarproxy_lammps::check_atom_id(int atom_number) { diff --git a/src/COLVARS/colvarproxy_lammps.h b/src/COLVARS/colvarproxy_lammps.h index d98be37b09..06bda4252e 100644 --- a/src/COLVARS/colvarproxy_lammps.h +++ b/src/COLVARS/colvarproxy_lammps.h @@ -45,9 +45,6 @@ class colvarproxy_lammps : public colvarproxy { std::vector atoms_types; - MPI_Comm inter_comm; // MPI comm with 1 root proc from each world - int inter_me, inter_num; // rank for the inter replica comm - public: friend class cvm::atom; @@ -59,9 +56,6 @@ class colvarproxy_lammps : public colvarproxy { /// Set the internal seed used by \link rand_gaussian() \endlink void set_random_seed(int seed); - /// Set the multiple replicas communicator - void set_replicas_communicator(MPI_Comm root2root); - int setup() override; // disable default and copy constructor @@ -72,7 +66,8 @@ class colvarproxy_lammps : public colvarproxy { // methods for lammps to move data or trigger actions in the proxy public: bool total_forces_enabled() const override { return total_force_requested; }; - bool total_forces_same_step() const override { return true; }; + // Total forces are saved at end of step, only processed at the next step + bool total_forces_same_step() const override { return false; }; bool want_exit() const { return do_exit; }; // perform colvars computation. returns biasing energy @@ -102,14 +97,6 @@ class colvarproxy_lammps : public colvarproxy { int check_atom_id(int atom_number) override; inline std::vector *modify_atom_types() { return &atoms_types; } - - int replica_enabled() override; - int replica_index() override; - int num_replicas() override; - - void replica_comm_barrier() override; - int replica_comm_recv(char *msg_data, int buf_len, int src_rep) override; - int replica_comm_send(char *msg_data, int msg_len, int dest_rep) override; }; #endif diff --git a/src/COLVARS/colvarproxy_lammps_version.h b/src/COLVARS/colvarproxy_lammps_version.h index 5901044b1e..1c16217679 100644 --- a/src/COLVARS/colvarproxy_lammps_version.h +++ b/src/COLVARS/colvarproxy_lammps_version.h @@ -1,3 +1,3 @@ #ifndef COLVARPROXY_VERSION -#define COLVARPROXY_VERSION "2024-07-05" +#define COLVARPROXY_VERSION "2025-03-31" #endif diff --git a/src/COLVARS/fix_colvars.cpp b/src/COLVARS/fix_colvars.cpp index d5a8806eed..247ad2ef8b 100644 --- a/src/COLVARS/fix_colvars.cpp +++ b/src/COLVARS/fix_colvars.cpp @@ -267,6 +267,7 @@ void FixColvars::init() if (init_flag) return; init_flag = 1; +#if defined(COLVARS_MPI) if (universe->nworlds > 1) { // create inter root communicator int color = 1; @@ -275,9 +276,10 @@ void FixColvars::init() } MPI_Comm_split(universe->uworld, color, universe->iworld, &root2root); if (me == 0) { - proxy->set_replicas_communicator(root2root); + proxy->set_replicas_mpi_communicator(root2root); } } +#endif }