From 3183a6a0ce13478219f4e1cc17246b624feae73c Mon Sep 17 00:00:00 2001 From: "Lori A. Burns" Date: Thu, 12 Oct 2023 18:00:18 -0400 Subject: [PATCH] labeling sss -> ss --- CHANGES | 5 ++- INSTALL.md | 38 +++++++++++++++---- export/Makefile | 1 + tests/hartree-fock/hartree-fock++-validate.py | 25 ++++++------ 4 files changed, 48 insertions(+), 21 deletions(-) diff --git a/CHANGES b/CHANGES index 56cea71f4..71ac128cb 100644 --- a/CHANGES +++ b/CHANGES @@ -5,10 +5,11 @@ Following is a brief summary of changes made in each release of Libint. - 2022-xx-yy: 2.8.0-beta.1 - UNMERGED PR #271: Small pkgconfig and cmake detection improvements. Enable unity build. - - UNMERGED PR #270: For Windows, basis sets with a star have been renamed to "s" on the filesystem, + Testing of solid harmonics runtime switchable from #269. + - PR #270: For Windows, basis sets with a star have been renamed to "s" on the filesystem, so 6-31g**.g94 -> 6-31gss.g94. In code, the basis can be accessed through "6-31g**" (longstanding) or "6-31gss" (new) for all operating systems. - - UNMERGED PR #270: Adapt build system and header imports so that library and Python bindings can build on + - PR #270: Adapt build system and header imports so that library and Python bindings can build on Windows (at least with clang-cl compiler atop MSVC). Note that a Linux- or Mac-generated export builds on Windows; one cannot generate an export on Windows. Note also that only a static library build, not a shared one, works on Windows (see #237). diff --git a/INSTALL.md b/INSTALL.md index 3d15edb1e..0e59e3298 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -17,7 +17,7 @@ libint2::finalize(); ``` SHGShell: 1 SHGShell: 2 -Configuration: eri_c4_d0_l2;eri_c4_d0_l3;sss;... +Configuration: eri_c4_d0_l2;eri_c4_d0_l3;ss;... ``` For the C library, a similar function is available: @@ -26,7 +26,7 @@ For the C library, a similar function is available: printf("CMake Configuration (C) : %s\n", configuration_accessor()); ``` ``` -CMake Configuration (C) : eri_c4_d0_l2;eri_c4_d0_l3;sss;... +CMake Configuration (C) : eri_c4_d0_l2;eri_c4_d0_l3;ss;... ``` If you have a built libint2 library whose history you don't know, a command like this on Linux can provide the same information: @@ -35,12 +35,11 @@ If you have a built libint2 library whose history you don't know, a command like strings -n80 /a/random/L2/lying/around/libint2.so ``` ``` -eri_c2_d0_l2;eri_c2_d0_l3;eri_c2_d1_l2;eri_c3_d0_l2;eri_c3_d0_l3;eri_c3_d1_l2;eri_c4_d0_l2;eri_c4_d1_l2;impure_sh;onebody_d0_l2;onebody_d0_l3;onebody_d1_l2;sss +eri_c2_d0_l2;eri_c2_d0_l3;eri_c2_d1_l2;eri_c3_d0_l2;eri_c3_d0_l3;eri_c3_d1_l2;eri_c4_d0_l2;eri_c4_d1_l2;impure_sh;onebody_d0_l2;onebody_d0_l3;onebody_d1_l2;ss ``` -A patch like the following is suitable for an export tarball generated from the next following. See -https://github.com/loriab/libint/blob/new-cmake-2023-take2-b/cmake/libint2-config.cmake.in#L37-L65 -for decoding the configuration components. +A patch like the following is suitable for an export tarball generated from the next following. +[See guide](#configuration-codes) for decoding the configuration components. ``` --- src/configuration.cc.cmake.in 2023-09-05 09:13:50.000000000 -0400 @@ -50,7 +49,7 @@ for decoding the configuration components. const char * configuration_accessor() { //return "@Libint2_CONFIG_COMPONENTS@"; - return "(nyi)"; -+ return "eri_c2_d0_l2;eri_c2_d0_l3;eri_c2_d0_l4;eri_c2_d0_l5;eri_c2_d0_l6;eri_c2_d1_l2;eri_c2_d1_l3;eri_c2_d1_l4;eri_c2_d1_l5;eri_c3_d0_l2;eri_c3_d0_l3;eri_c3_d0_l4;eri_c3_d0_l5;eri_c3_d0_l6;eri_c3_d1_l2;eri_c3_d1_l3;eri_c3_d1_l4;eri_c3_d1_l5;eri_c4_d0_l2;eri_c4_d0_l3;eri_c4_d0_l4;eri_c4_d0_l5;eri_c4_d1_l2;eri_c4_d1_l3;eri_c4_d1_l4;g12_d0_l2;g12_d0_l3;g12_d0_l4;g12_d1_l2;g12_d1_l3;g12_d1_l4;impure_sh;onebody_d0_l2;onebody_d0_l3;onebody_d0_l4;onebody_d0_l5;onebody_d0_l6;onebody_d1_l2;onebody_d1_l3;onebody_d1_l4;onebody_d1_l5;onebody_d2_l2;onebody_d2_l3;onebody_d2_l4;sss"; ++ return "eri_c2_d0_l2;eri_c2_d0_l3;eri_c2_d0_l4;eri_c2_d0_l5;eri_c2_d0_l6;eri_c2_d1_l2;eri_c2_d1_l3;eri_c2_d1_l4;eri_c2_d1_l5;eri_c3_d0_l2;eri_c3_d0_l3;eri_c3_d0_l4;eri_c3_d0_l5;eri_c3_d0_l6;eri_c3_d1_l2;eri_c3_d1_l3;eri_c3_d1_l4;eri_c3_d1_l5;eri_c4_d0_l2;eri_c4_d0_l3;eri_c4_d0_l4;eri_c4_d0_l5;eri_c4_d1_l2;eri_c4_d1_l3;eri_c4_d1_l4;g12_d0_l2;g12_d0_l3;g12_d0_l4;g12_d1_l2;g12_d1_l3;g12_d1_l4;impure_sh;onebody_d0_l2;onebody_d0_l3;onebody_d0_l4;onebody_d0_l5;onebody_d0_l6;onebody_d1_l2;onebody_d1_l3;onebody_d1_l4;onebody_d1_l5;onebody_d2_l2;onebody_d2_l3;onebody_d2_l4;ss"; } ``` ``` @@ -68,3 +67,28 @@ for decoding the configuration components. --with-eri2-max-am=6,5 \ --with-max-am=6,5 ``` + +#### Configuration Codes + +Evenually, these will be CMake Components, too. + +``` + onebody_dD_lL - library includes 1-body integrals with derivative order D (D=0,1,2,...) and max angular momentum up to L (L=2,3,4,...) + eri_cC_dD_lL - library includes 2-body integrals with C (C=2,3,4) centers, derivative order D (D=0,1,2,...), and max angular momentum up to L (L=2,3,4,...) + g12_dD-lL - library includes F12 integrals with Gaussian factors with derivative order D and max angular momentum up to L + + impure_sh - library doesn't assume that 2- and 3-center integrals involve pure solid harmonics + + cart shell_set used_by + -------- --------- ------- + ss - library integrals use ordering standard + standard = mpqc4, cp2k, psi4 (psi4 requires runtime-setting of solid harmonic ordering to Gaussian) + so - library integrals use ordering + orca + is - library integrals use ordering intv3 + standard = mpqc3 + io - library integrals use ordering + orca + gs - library integrals use ordering gamess + standard = gamess + go - library integrals use ordering + orca + os - library integrals use ordering orca + standard + oo - library integrals use ordering + orca = orca + bs - library integrals use ordering bagel + standard = bagel + bo - library integrals use ordering + orca +``` diff --git a/export/Makefile b/export/Makefile index b1ac602f6..64fb24d0f 100644 --- a/export/Makefile +++ b/export/Makefile @@ -37,6 +37,7 @@ exportdir:: -$(INSTALL) $(INSTALLLIBOPT) $(SRCDIR)/INSTALL.export $(TOPDIR)/$(EXPORTDIR)/INSTALL -$(INSTALL) $(INSTALLLIBOPT) $(SRCDIR)/LICENSE.export $(TOPDIR)/$(EXPORTDIR)/LICENSE -$(INSTALL) $(INSTALLLIBOPT) $(SRCTOPDIR)/README.md $(TOPDIR)/$(EXPORTDIR)/README.md + -$(INSTALL) $(INSTALLLIBOPT) $(SRCTOPDIR)/INSTALL.md $(TOPDIR)/$(EXPORTDIR)/INSTALL.md -$(INSTALL) $(INSTALLLIBOPT) $(SRCTOPDIR)/COPYING $(TOPDIR)/$(EXPORTDIR)/COPYING -$(INSTALL) $(INSTALLLIBOPT) $(SRCTOPDIR)/COPYING.LESSER $(TOPDIR)/$(EXPORTDIR)/COPYING.LESSER -$(INSTALL) $(INSTALLLIBOPT) $(SRCTOPDIR)/CITATION $(TOPDIR)/$(EXPORTDIR)/CITATION diff --git a/tests/hartree-fock/hartree-fock++-validate.py b/tests/hartree-fock/hartree-fock++-validate.py index 1ded579d7..a13f920c0 100644 --- a/tests/hartree-fock/hartree-fock++-validate.py +++ b/tests/hartree-fock/hartree-fock++-validate.py @@ -54,19 +54,20 @@ def validate(label, data, refdata, tolerance, textline): -8.04716669024124, 0.638204907990955, -6.35134519242917 ] Qtol = 1e-8 -# Note that the sphemultipole order is fixed at generator build time (not influenced by libint2::solid_harmonics_ordering()) -if (LIBINT_SHGSHELL_ORDERING == LIBINT_SHGSHELL_ORDERING_STANDARD): - smuref = [-muref[1]/2, muref[2], -muref[0]/2] # [ 0.046, -0.105, 0.132] - print("Checking sphemultipole LIBINT_SHGSHELL_ORDERING=Standard\n"); -else: - smuref = [ muref[2], -muref[0]/2, -muref[1]/2] # [-0.105, 0.132, 0.046] - print("Checking sphemultipole LIBINT_SHGSHELL_ORDERING=Gaussian\n"); -smutol = 1e-9 +# * Note that the sphemultipole order is fixed at generator build time (not influenced by +# libint2::solid_harmonics_ordering()) +# * As of https://github.com/evaleev/libint/commit/cdbb9f3, sphemultipole is hard-coded at Standard +# (and not influenced by LIBINT_SHGSHELL_ORDERING) +smuref = [-muref[1]/2, muref[2], -muref[0]/2] # [ 0.046, -0.105, 0.132] +sQref = [Qref[1]/4, -Qref[4]/2, (2*Qref[5] - Qref[0] - Qref[3])/4, -Qref[2]/2, (Qref[0] - Qref[3])/8 ] +print("Checking sphemultipole Standard\n"); + +# Reference values from LIBINT_SHGSHELL_ORDERING=Gaussian. These are no longer accessible after cdbb9f3. +# print("Checking sphemultipole Gaussian\n"); +# smuref = [ muref[2], -muref[0]/2, -muref[1]/2] # [-0.105, 0.132, 0.046] +# sQref = [(2*Qref[5] - Qref[0] - Qref[3])/4, -Qref[2]/2, -Qref[4]/2, (Qref[0] - Qref[3])/8, Qref[1]/4] -if (LIBINT_SHGSHELL_ORDERING == LIBINT_SHGSHELL_ORDERING_STANDARD): - sQref = [Qref[1]/4, -Qref[4]/2, (2*Qref[5] - Qref[0] - Qref[3])/4, -Qref[2]/2, (Qref[0] - Qref[3])/8 ] -else: - sQref = [(2*Qref[5] - Qref[0] - Qref[3])/4, -Qref[2]/2, -Qref[4]/2, (Qref[0] - Qref[3])/8, Qref[1]/4] +smutol = 1e-9 sQtol = 1e-8 F1ref = [-5.43569555903312, -1.88298017654395, -2.17427822361352,