Frozen core for cations

I run calculations with sodium cations, where the only core orbital I want to freeze is the 1s. Ideally, I would like to change the code default so that Freeze_core true freezes 1 orbital instead of 5. After looking through the code for some time I still couldn’t find where these setting are.

The use of num_frozen_docc as an alternative to freeze_core works for most things but there are some things that it doesn’t work for, so I would like to do it this way.


Dear Brian,
I don’t think there’s an easy way to do what you want without num_frozen_docc. Mind sharing a case where num_frozen_docc doesn’t do what it should? We are currently working on an inconsistency if basis sets with ECP’s are used (see issue here: and possible fix:

Perhaps expanding the freeze_core option from True|False to True|False|N where N is the N-th previous full [Rg] shell wouldn’t be such a bad idea.


You mean there isn’t a spot in the code that translates each atom type to the number of frozen docc’s when freeze_core is set to true?

One of the instances num_frozen_docc doesn’t work on its own is in SAPT, where the setting is constant for the monomers and dimer. Is there another way around this?

There is a translation function as you mention here:

As it’s in the C++ part, it’s not super-easily accessible - that is what I originally meant.

Btw if you have alkali atoms in your system, be sure to check that the valence orbital really is in the active space. See

as well as