Skip to content

Pseudopotentials and numeric orbitals for initial guess#502

Merged
ilfreddy merged 317 commits intoMRChemSoft:masterfrom
moritzgubler:pseudopotential_rebase
Feb 23, 2026
Merged

Pseudopotentials and numeric orbitals for initial guess#502
ilfreddy merged 317 commits intoMRChemSoft:masterfrom
moritzgubler:pseudopotential_rebase

Conversation

@moritzgubler
Copy link
Contributor

This branch implements GTH pseudopotentials with non linear core correction.

We had to implement a new initial guess mechanism that uses numeric atom centered orbitals to start pseudopotential calculations. It also works for all electron calculations.

Let me know if you are interested in merging these features, then I will clean up everything and add some more rigorous testing.

At the moment only OMP is tested, I never checked the results obtained with MPI.

@susilehtola
Copy link
Contributor

So just a final clarifying question: you stated above that this PR adds a NAO initial guess, but as far as I could tell from the code, it is only used for calculations with pseudopotentials whereas all-electron calculations still use Gaussian basis sets. Of course, adding the all-electron functionality shouldn't be a big step with the code included here, and that could be done in a separate PR.

@ilfreddy since all my comments appear to have been addressed, I think this is ready now. Then the Libxc support of #521 can also be merged in.

@moritzgubler
Copy link
Contributor Author

moritzgubler commented Feb 13, 2026

@susilehtola Thanks a lot for the careful review.

The NAO initial guess can also be used for all electron calculations. This is already implemented. Pseudopotentials can only be run with an NAO initial guess.

Running all electron calculations with the NAO initial guess worked very well in my tests. The optional initial mixing in the NAO basis can still be improved, I use very simple linear mixing without preconditioning. I did not check if it is worth to converge the initial guess calculation in the NAO basis. Maybe this would be an interesting idea for the future.

@moritzgubler
Copy link
Contributor Author

The orbitals from the NAO basis are from a non relativistic, spherically symmetric LDA calculation. The proper way to construct them would be to compute them when the calculation is started with the exact same settings of the current calculation (functional, relativistic settings, ...). In FHI-Aims it is done like this. The code that does this is an old fortran code so porting this into MRChem would be a lot of work.

@susilehtola
Copy link
Contributor

The orbitals from the NAO basis are from a non relativistic, spherically symmetric LDA calculation. The proper way to construct them would be to compute them when the calculation is started with the exact same settings of the current calculation (functional, relativistic settings, ...). In FHI-Aims it is done like this. The code that does this is an old fortran code so porting this into MRChem would be a lot of work.

There is modern C++ code in HelFEM to do this non-relativistically; we're working on the relativistic implementation.

@ilfreddy ilfreddy merged commit 8d72225 into MRChemSoft:master Feb 23, 2026
7 checks passed
@ilfreddy ilfreddy mentioned this pull request Feb 25, 2026
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants