I've done some more work and have made a pseudopotential and basis for Ga-q3 for PBE and r2SCAN (r2SCAN basis is still in progress). The PBE as far as I can tell looks good, however I'd welcome a second opinion:<div><br /></div><div> Reference configuration 1 Method number 1<br /> L N Occupation Eigenvalue [eV] dE [eV] dCharge<br /> 0 1 2.00 -8.9070605411 VA 0.000151[ X] -0.000937[ 3]<br /> 0 2 0.00 0.2814465422 U1 -0.000229[ X] 0.000607[ X]<br /> 0 3 0.00 5.9015708838 U2 -0.014841[ X] 0.003233[ 0]<br /> 1 1 1.00 -2.5412387531 VA 0.000300[ X] -0.000789[ 2]<br /> 1 2 0.00 1.9032645357 U1 0.000696[ X] 0.000142[ X]<br /> 1 3 0.00 8.3552326430 U2 -0.008647[ X] 0.002687[ 0]<br /> 2 1 0.00 1.7060736638 U1 -0.000850[ X] 0.000903[ X]<br /> 2 2 0.00 5.8730820280 U2 -0.021470[ X] 0.006085[ 0]<br /> 3 1 0.00 3.7199308846 U1 0.001920[ X] -0.000056[ X]<br /> s-states N= 1 Wavefunction at r=0: -0.005687[ 0]<br /> s-states N= 2 Wavefunction at r=0: 0.011672[ 0]<br /> s-states N= 3 Wavefunction at r=0: 0.024741[ 0]<br /><br /> Number of target values reached: 13 of 15<br /><br />After creating a basis set I did a small test. My target system is c-GaN, so I did a geometry optimization using Ga-q13 and my new Ga-q3 for a GaN molecule, I also did an energy calculation of Ga, N, Ga3+ and N3-. Combined I looked at the equilibrium bond length, ionization energy of Ga -> Ga3+, and the energy to break the bond (creating either atoms or ions).</div><div>Using TZV2P sized basis sets I get:</div><div><span style="white-space: pre;"> </span><span style="white-space: pre;"> </span><span style="white-space: pre;"> </span><span style="white-space: pre;"> </span><span style="white-space: pre;"> </span> q13<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span><span style="white-space: pre;"> </span>q3</div><div>Bond-length<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span><span style="white-space: pre;"> </span><span style="white-space: pre;"> </span> 1.707428637<span style="white-space: pre;"> </span>1.682732901</div><div>Ga-ionization<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span><span style="white-space: pre;"> </span> 1.804359228<span style="white-space: pre;"> </span>1.766611429</div><div>Bond-Strength (to ions)<span style="white-space: pre;"> </span>-2.544873412<span style="white-space: pre;"> </span>-2.505056579<br />Bond-Strength (to atoms)<span style="white-space: pre;"> </span>-0.047600299<span style="white-space: pre;"> </span>-0.045531265</div><div><br />Using DZVP sized basis sets I get similar results. Setting aside the actual numbers I get, the results seem reasonably in agreement considering I pseudized the d-electrons (I'm aware that this is a large approximation so I shouldn't expect perfect agreement).</div><div><br />The r2SCAN I'm less happy with, I tried adding an extra coefficient to the potential for both the local and d nonlocal terms (1 3 2 2 total coefficients i.e. the 2nd column in the pseudopotential). I've tried everything I can think of to further optimize the function but can't get it to improve further. Maybe more coefficients could improve it further, but I'm not sure which to increase.</div><div><br /></div><div> Reference configuration 1 Method number 1<br /> L N Occupation Eigenvalue [eV] dE [eV] dCharge<br /> 0 1 2.00 -9.2192607955 VA 0.000310[ 0] 0.007449[62]<br /> 0 2 0.00 0.8410517459 U1 -0.006498[ 2] 0.001620[ X]<br /> 0 3 0.00 6.5410088683 U2 -0.070940[ 0] 0.007503[ 0]<br /> 1 1 1.00 -2.5061195817 VA 0.000315[ 0] 0.005716[36]<br /> 1 2 0.00 2.3929875226 U1 -0.000019[ X] 0.001701[ X]<br /> 1 3 0.00 9.2406249709 U2 -0.050517[ 0] 0.006367[ 0]<br /> 2 1 0.00 2.2546026016 U1 0.003000[ X] 0.002766[ 0]<br /> 2 2 0.00 6.4924159716 U2 -0.017151[ X] -0.004616[ 0]<br /> s-states N= 1 Wavefunction at r=0: 0.000646[ 0]<br /> s-states N= 2 Wavefunction at r=0: 0.013822[ 0]<br /> s-states N= 3 Wavefunction at r=0: 0.027648[ 0]<br /><br /> Number of target values reached: 5 of 13<br /><div><div dir="auto"><br /></div><div dir="auto">After I make a matching basis I plan to do the same tests with this PP, but I think it may be insufficiently accurate. Any further ideas on how to improve this would be welcomed.<br /></div></div></div><br /><div><div dir="auto">On Wednesday, May 7, 2025 at 8:04:38 AM UTC-7 Jürg Hutter wrote:<br /></div><blockquote style="margin: 0px 0px 0px 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Hi
<br />
<br />final evaluation of PP can only be done on your target systems.
<br />
<br />During PP optimization I would go for low functional values with a special look at the
<br />values for the orbital energies (valence orbitals, semicore orbitals, virtual orbitals, in that order).
<br />You can find those values for all the PP in the POTENTIAL_UZH file as a reference.
<br />
<br />In this specific case I would aim for near perfect values for all orbital energies (VA and U1).
<br />U1 for s will be hardest to get down. dCharge values will be hard to get and will probably
<br />dominate the function value in the end.
<br />
<br />For the reference basis in the MOLOPT procedure I would go for an optimized Geometrical basis.
<br />You can get those easily with the atom code (don't use a confinement potential). Play with the number
<br />of primitives until you get a 'converged' energy.
<br />
<br />regards
<br />JH
<br />
<br />________________________________________
<br />From: <a href="" rel="nofollow">cp...@googlegroups.com</a> <<a href="" rel="nofollow">cp...@googlegroups.com</a>> on behalf of Michael LaCount<br />Sent: Tuesday, May 6, 2025 11:04 PM
<br />To: cp2k
<br />Subject: [CP2K:21447] Questions regarding pseudopotential and basis set generation.
<br />
<br />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.
<br />
<br />I was tempted to email Jürg Hutter directly, but am posting it here in case it is of use to future users.
<br />
<br />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:
<br />
<br />PBE:
<br />Final value of function 0.1530340305
<br /> Reference configuration 1 Method number 1
<br /> L N Occupation Eigenvalue [eV] dE [eV] dCharge
<br /> 0 1 2.00 -9.<a value="+12192459546" target="_blank" rel="nofollow">2192459546</a> VA 0.000325[ 0] 0.008127[26]
<br /> 0 2 0.00 0.<a value="+18396512255" target="_blank" rel="nofollow">8396512255</a> U1 -0.007898[ 8] 0.001720[ X]
<br /> 0 3 0.00 6.5350291666 U2 -0.076920[ 0] 0.008006[ 0]
<br /> 1 1 1.00 -2.5060816724 VA 0.000353[ 0] 0.006282[15]
<br /> 1 2 0.00 2.3918661427 U1 -0.001140[ X] 0.001833[ X]
<br /> 1 3 0.00 9.<a value="+12353950765" target="_blank" rel="nofollow">2353950765</a> U2 -0.055747[ 0] 0.006591[ 0]
<br /> 2 1 0.00 2.<a value="+12546328512" target="_blank" rel="nofollow">2546328512</a> U1 0.003031[ 0] 0.004738[ 0]
<br /> 2 2 0.00 6.4400471697 U2 -0.069520[ 0] 0.011434[ 0]
<br /> 3 1 0.00 4.2413610819 U1 0.014969[50] -0.000072[ X]
<br /> s-states N= 1 Wavefunction at r=0: 0.005050[ 0]
<br /> s-states N= 2 Wavefunction at r=0: 0.016265[ 0]
<br /> s-states N= 3 Wavefunction at r=0: 0.032084[ 0]
<br />
<br /> Number of target values reached: 4 of 15
<br />
<br />SCAN:
<br />Final value of function 587.1874144433
<br /> Reference configuration 1 Method number 1
<br /> L N Occupation Eigenvalue [eV] dE [eV] dCharge
<br /> 0 1 2.00 -9.<a value="+12169294346" target="_blank" rel="nofollow">2169294346</a> VA 0.002641[ 2] 0.006948[ 0]
<br /> 0 2 0.00 0.<a value="+18283557076" target="_blank" rel="nofollow">8283557076</a> U1 -0.019194[ 0] 0.002138[ X]
<br /> 0 3 0.00 6.5240034385 U2 -0.087945[ 0] 0.008142[ 0]
<br /> 1 1 1.00 -2.4873044888 VA 0.019130[98] 0.000623[ 0]
<br /> 1 2 0.00 2.3990344827 U1 0.006028[ 0] 0.001717[ X]
<br /> 1 3 0.00 9.2663576926 U2 -0.024784[ X] 0.006565[ 0]
<br /> 2 1 0.00 2.2541499839 U1 0.002548[ X] 0.001125[ X]
<br /> 2 2 0.00 6.4898896260 U2 -0.019678[ X] 0.004534[ 0]
<br /> 3 1 0.00 4.2330247834 U1 0.006633[ 0] -0.000068[ X]
<br /> s-states N= 1 Wavefunction at r=0: 0.010116[ 0]
<br /> s-states N= 2 Wavefunction at r=0: 0.018885[ 0]
<br /> s-states N= 3 Wavefunction at r=0: 0.036626[ 0]
<br />
<br /> Number of target values reached: 7 of 15
<br />
<br />and SCAN (2nd local contraction):
<br />Final value of function 2.<a value="+12705690182" target="_blank" rel="nofollow">2705690182</a>
<br /> Reference configuration 1 Method number 1
<br /> L N Occupation Eigenvalue [eV] dE [eV] dCharge
<br /> 0 1 2.00 -9.<a value="+12192585449" target="_blank" rel="nofollow">2192585449</a> VA 0.000312[ 0] 0.007863[49]
<br /> 0 2 0.00 0.8401648110 U1 -0.007385[ 3] 0.001685[ X]
<br /> 0 3 0.00 6.5372420030 U2 -0.074707[ 0] 0.007822[ 0]
<br /> 1 1 1.00 -2.5061070718 VA 0.000328[ 0] 0.006045[28]
<br /> 1 2 0.00 2.3923327908 U1 -0.000674[ X] 0.001777[ X]
<br /> 1 3 0.00 9.2375753924 U2 -0.053566[ 0] 0.006499[ 0]
<br /> 2 1 0.00 2.<a value="+12546302822" target="_blank" rel="nofollow">2546302822</a> U1 0.003028[ 0] 0.004673[ 0]
<br /> 2 2 0.00 6.4410410581 U2 -0.068526[ 0] 0.011278[ 0]
<br /> 3 1 0.00 4.2412241163 U1 0.014832[20] -0.000072[ X]
<br /> s-states N= 1 Wavefunction at r=0: 0.003682[ 0]
<br /> s-states N= 2 Wavefunction at r=0: 0.015481[ 0]
<br /> s-states N= 3 Wavefunction at r=0: 0.030640[ 0]
<br />
<br /> Number of target values reached: 4 of 15
<br />
<br />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?
<br />
<br />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?
<br />
<br />--
<br />You received this message because you are subscribed to the Google Groups "cp2k" group.
<br />To unsubscribe from this group and stop receiving emails from it, send an email to <a href="" rel="nofollow">cp2k+uns...@googlegroups.com</a><mailto:<a href="" rel="nofollow">cp2k+uns...@googlegroups.com</a>>.
<br />To view this discussion visit <a href="https://groups.google.com/d/msgid/cp2k/0ade320f-1a54-439a-8c59-12c0d916f1c6n%40googlegroups.com" target="_blank" rel="nofollow">https://groups.google.com/d/msgid/cp2k/0ade320f-1a54-439a-8c59-12c0d916f1c6n%40googlegroups.com</a><<a href="https://groups.google.com/d/msgid/cp2k/0ade320f-1a54-439a-8c59-12c0d916f1c6n%40googlegroups.com?utm_medium=email&utm_source=footer" target="_blank" rel="nofollow">https://groups.google.com/d/msgid/cp2k/0ade320f-1a54-439a-8c59-12c0d916f1c6n%40googlegroups.com?utm_medium=email&utm_source=footer</a>>.
<br /></blockquote></div>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups "cp2k" group.<br />
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="mailto:cp2k+unsubscribe@googlegroups.com">cp2k+unsubscribe@googlegroups.com</a>.<br />
To view this discussion visit <a href="https://groups.google.com/d/msgid/cp2k/5a2bfe4b-25d4-4d23-8307-76104a6a5167n%40googlegroups.com?utm_medium=email&utm_source=footer">https://groups.google.com/d/msgid/cp2k/5a2bfe4b-25d4-4d23-8307-76104a6a5167n%40googlegroups.com</a>.<br />