When using the orbital filter to fragment NiO with an AFM mean field the result of the fragmentation seems to depend on the labelling of the d-orbitals. If I have a d-orbital fragment labelled as
Without looking into the code, I would check how the caret character is interpreted - if it's running some regex it may need to be escaped with a backslash.
When using the orbital filter to fragment NiO with an AFM mean field the result of the fragmentation seems to depend on the labelling of the d-orbitals. If I have a d-orbital fragment labelled as
f.add_atomic_fragment([0], orbital_filter=["Ni 3d"])
the fragmentation is complete,
IAO Fragmentation | ----------------- | IAO: computational basis= gth-dzvp-molopt-sr minimal reference basis= gth-szv-molopt-sr (automatically chosen) | Alpha-IAOs: | n(AO)= 78 n(MO)= 78 n(occ-MO)= 24 n(IAO)= 28 | Beta-IAOs: | n(AO)= 78 n(MO)= 78 n(occ-MO)= 24 n(IAO)= 28 | Adding 0 translationally-symmetry related fragments from 10 base fragments | Fragmentation: orthogonal= True, occupied-complete= True, virtual-complete= False | Total number of mean-field electrons over all fragments= 24.00000000 , 24.00000000
but if I replace it with
f.add_atomic_fragment([0], orbital_filter=["Ni 3dxz","Ni 3dxy","Ni 3dyz","Ni 3dx2-y2","Ni 3dz^2"])
then the fragmentation becomes incomplete.
IAO Fragmentation | ----------------- | IAO: computational basis= gth-dzvp-molopt-sr minimal reference basis= gth-szv-molopt-sr (automatically chosen) | Alpha-IAOs: | n(AO)= 78 n(MO)= 78 n(occ-MO)= 24 n(IAO)= 28 | Beta-IAOs: | n(AO)= 78 n(MO)= 78 n(occ-MO)= 24 n(IAO)= 28 | Adding 0 translationally-symmetry related fragments from 10 base fragments | Fragmentation: orthogonal= True, occupied-complete= False, virtual-complete= False | Total number of mean-field electrons over all fragments= 22.90541716 , 22.90541715 [WARNING] | Number of electrons not integer!
I've attached the full scripts below:
UHF_orbital_filter_incomplete.txt UHF_orbital_filter_complete.txt