[CP2K-user] [CP2K:21448] Questions regarding pseudopotential and basis set generation.

Jürg Hutter hutter at chem.uzh.ch
Wed May 7 15:04:23 UTC 2025


Hi

final evaluation of PP can only be done on your target systems.

During PP optimization I would go for low functional values with a special look at the
values for the orbital energies (valence orbitals, semicore orbitals, virtual orbitals, in that order).
You can find those values for all the PP in the POTENTIAL_UZH file as a reference.

In this specific case I would aim for near perfect values for all orbital energies (VA and U1).
U1 for s will be hardest to get down. dCharge values will be hard to get and will probably
dominate the function value in the end.

For the reference basis in the MOLOPT procedure I would go for an optimized Geometrical basis.
You can get those easily with the atom code (don't use a confinement potential). Play with the number
of primitives until you get a 'converged' energy.

regards
JH

________________________________________
From: cp2k at googlegroups.com <cp2k at googlegroups.com> on behalf of Michael LaCount <lacount.mi at gmail.com>
Sent: Tuesday, May 6, 2025 11:04 PM
To: cp2k
Subject: [CP2K:21447] Questions regarding pseudopotential and basis set generation.

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):
Final value of function                                    2.2705690182
 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?

--
You received this message because you are subscribed to the Google Groups "cp2k" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cp2k+unsubscribe at googlegroups.com<mailto:cp2k+unsubscribe at googlegroups.com>.
To view this discussion visit https://groups.google.com/d/msgid/cp2k/0ade320f-1a54-439a-8c59-12c0d916f1c6n%40googlegroups.com<https://groups.google.com/d/msgid/cp2k/0ade320f-1a54-439a-8c59-12c0d916f1c6n%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- 
You received this message because you are subscribed to the Google Groups "cp2k" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cp2k+unsubscribe at googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cp2k/ZR0P278MB0759EF5CF1F7D8FC9DE615F49F88A%40ZR0P278MB0759.CHEP278.PROD.OUTLOOK.COM.


More information about the CP2K-user mailing list