I have been working on generating a 3 valence electron Gallium pseudopotential and basis (for r2SCAN). Acknowledging that pseudizing the d-electrons is questionable, it may become necessary for what I am trying to do.
I was tempted to email Jürg Hutter directly, but am posting it here in case it is of use to future users.
With regards to the ATOM code, I tried a few variations in optimizing the pseudopotential based on the PBE pseudopotential, SCAN pseudopotential and SCAN but with an additional local contraction term. I understand that the optimization is 90% trial and error with the POWELL settings (STEP_SIZE, STEP_SIZE_SCALING, MAX_INIT, and MAX_FUN). What is not clear to me though is how to evaluate whether I have made a good or bad pseudopotential. From my runs I have 3 candidates:
PBE:
Final value of function 0.1530340305
Reference configuration 1 Method number 1
L N Occupation Eigenvalue [eV] dE [eV] dCharge
0 1 2.00 -9.
2192459546 VA 0.000325[ 0] 0.008127[26]
0 2 0.00 0.
8396512255 U1 -0.007898[ 8] 0.001720[ X]
0 3 0.00 6.5350291666 U2 -0.076920[ 0] 0.008006[ 0]
1 1 1.00 -2.5060816724 VA 0.000353[ 0] 0.006282[15]
1 2 0.00 2.3918661427 U1 -0.001140[ X] 0.001833[ X]
1 3 0.00 9.
2353950765 U2 -0.055747[ 0] 0.006591[ 0]
2 1 0.00 2.
2546328512 U1 0.003031[ 0] 0.004738[ 0]
2 2 0.00 6.4400471697 U2 -0.069520[ 0] 0.011434[ 0]
3 1 0.00 4.2413610819 U1 0.014969[50] -0.000072[ X]
s-states N= 1 Wavefunction at r=0: 0.005050[ 0]
s-states N= 2 Wavefunction at r=0: 0.016265[ 0]
s-states N= 3 Wavefunction at r=0: 0.032084[ 0]
Number of target values reached: 4 of 15
SCAN:
Final value of function 587.1874144433
Reference configuration 1 Method number 1
L N Occupation Eigenvalue [eV] dE [eV] dCharge
0 1 2.00 -9.
2169294346 VA 0.002641[ 2] 0.006948[ 0]
0 2 0.00 0.
8283557076 U1 -0.019194[ 0] 0.002138[ X]
0 3 0.00 6.5240034385 U2 -0.087945[ 0] 0.008142[ 0]
1 1 1.00 -2.4873044888 VA 0.019130[98] 0.000623[ 0]
1 2 0.00 2.3990344827 U1 0.006028[ 0] 0.001717[ X]
1 3 0.00 9.2663576926 U2 -0.024784[ X] 0.006565[ 0]
2 1 0.00 2.2541499839 U1 0.002548[ X] 0.001125[ X]
2 2 0.00 6.4898896260 U2 -0.019678[ X] 0.004534[ 0]
3 1 0.00 4.2330247834 U1 0.006633[ 0] -0.000068[ X]
s-states N= 1 Wavefunction at r=0: 0.010116[ 0]
s-states N= 2 Wavefunction at r=0: 0.018885[ 0]
s-states N= 3 Wavefunction at r=0: 0.036626[ 0]
Number of target values reached: 7 of 15
and SCAN (2nd local contraction):
Reference configuration 1 Method number 1
L N Occupation Eigenvalue [eV] dE [eV] dCharge
0 1 2.00 -9.
2192585449 VA 0.000312[ 0] 0.007863[49]
0 2 0.00 0.8401648110 U1 -0.007385[ 3] 0.001685[ X]
0 3 0.00 6.5372420030 U2 -0.074707[ 0] 0.007822[ 0]
1 1 1.00 -2.5061070718 VA 0.000328[ 0] 0.006045[28]
1 2 0.00 2.3923327908 U1 -0.000674[ X] 0.001777[ X]
1 3 0.00 9.2375753924 U2 -0.053566[ 0] 0.006499[ 0]
2 1 0.00 2.
2546302822 U1 0.003028[ 0] 0.004673[ 0]
2 2 0.00 6.4410410581 U2 -0.068526[ 0] 0.011278[ 0]
3 1 0.00 4.2412241163 U1 0.014832[20] -0.000072[ X]
s-states N= 1 Wavefunction at r=0: 0.003682[ 0]
s-states N= 2 Wavefunction at r=0: 0.015481[ 0]
s-states N= 3 Wavefunction at r=0: 0.030640[ 0]
Number of target values reached: 4 of 15
Some of these might be improved with more iterations, but I am unsure how I should evaluate each of the pseudopotentials against the others. Is it better to have a lower "Final value of function", or to have a greater number of target values reached. Is there a rule of thumb for knowing when I have reached a reasonable PP?
Next, I have a small question about the generation of MOLOPT style basis sets. I have gone through Jürg Hutter's github and get 90% of the workflow for that. I just don't quite understand the uncontracted basis set generation. I can use the ATOM code to generate an uncontracted 'complete' basis set, but the results seem very dependent on the initial guess. Is there a general rule for how many basis functions I should use and/or the range of the exponential terms? Other than taking more time, can I just make an overkill basis (something like 12 functions per orbital type with value ranging from 100 to .01) set for the purposes of making the final basis?