Skip to content

Commit

Permalink
labeling sss -> ss
Browse files Browse the repository at this point in the history
  • Loading branch information
loriab committed Oct 12, 2023
1 parent 7df6652 commit 3183a6a
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 21 deletions.
5 changes: 3 additions & 2 deletions CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -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).
Expand Down
38 changes: 31 additions & 7 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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:
Expand All @@ -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
Expand All @@ -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";
}
```
```
Expand All @@ -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
```
1 change: 1 addition & 0 deletions export/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
25 changes: 13 additions & 12 deletions tests/hartree-fock/hartree-fock++-validate.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit 3183a6a

Please sign in to comment.