-
Notifications
You must be signed in to change notification settings - Fork 98
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test solid harmonic ordering runtime switchable #271
Changes from 1 commit
1f2afc3
1578fbe
13c01be
e7d0720
e39bdc2
667bf42
0934428
7df6652
55097ce
fbd1d97
73de7d1
3171be8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -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"; | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I am slightly concerned about the lack of support for different angular momenta on different centers in component notation ... how about instead of It is likely Psi does not use this currently, but generally this is useful since fitting basis should include higher l than the corresponding orbital basis, so it makes sense to have "fitting" centers to support higher l than the rest... There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is the mixed AM on different centers specifiable through the build system now? (I suppose I've never specified AM for eri2 and eri3 differently.) I'm not quite following how Having two input variables (eri2 max AM and eri3 max AM) can generate a lot more components when filling in all the lesser accessible components (e.g., 445 means 444, 335, 225, etc. all accessible and might be requested by a L2 consumer), but in a pinch I can outsource it to python and not rely on CMake math. Would 4-center remain unchanged, There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. yes, this is doable, but none of the public releases use this. Note use of we indeed would need to provide means of "comparison" for component strings, e.g. I would prefer making format uniform for all cases, e.g. What do you think? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Aha, good to know. Down the road in #259, this is going to require some changes, as I presently assume the generic max-am is simply the largest of eri-max-am, eri3-max-am, eri2-max-am, not an independent information source.
Ok, I see what you mean now about hhH turning into The c++ comparison helper code called from cmake I don't think is a great strategy, if I'm understanding it correctly. The key step is For background, my existing plan for configuration access was the following:
To address your
Sure, I like uniform, too. I'll sketch out some input parameters to cmake component scenarios this afternoon to make sure I understand the conversion. How do you feel about retaining the explicitly enumerated component string for reasons described above? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
exactly. hence the use of letters instead of digits There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Whoops, I missed your comments from an hour ago. I'll read them next. I just pushed docs revised according to the component plan from this morning and a component list from the sample configuration. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
For configuration identification purposes, I was only thinking of e.g., I suppose the only immediate decision for this PR is whether you want the I tentatively revised the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I went ahead and added There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Now with revised component code strings for onebody, g12, and multipole. |
||||||
} | ||||||
``` | ||||||
``` | ||||||
|
@@ -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. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
``` | ||||||
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 | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. typo? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Right, I'll change line 78 to |
||||||
|
||||||
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 | ||||||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.