Help with d-Orbital Occupation Analysis in DIRAC

50 views
Skip to first unread message

ich...@gmail.com

unread,
Jun 16, 2025, 9:31:44 AMJun 16
to dirac-users
Dear DIRAC experts,

We would like to investigate the d-orbital occupation in an octahedral cobalt complex.
To this end, we performed a population analysis.
However, the charge density was projected onto a Cartesian basis set,
which makes it difficult to evaluate the occupation numbers of the individual orbitals.

Could you please advise us on how to obtain the d-shell occupation correctly?
The input and output files are attached for your reference.

Additionally, we would appreciate it if you could approve the membership request
of mwkfj...@gmail.com

Output file (its too heavy to upload here):

Best regards,
Tomohiro



scf.inp
structure.xyz

Miroslav Iliaš

unread,
Jun 16, 2025, 9:56:59 AMJun 16
to dirac...@googlegroups.com
Hello Tomohiro,

to get the spinors occupation of the Co atom in your [Co(He)6](3+) complex , use the projection analysis


Best,

Miro


--
You received this message because you are subscribed to the Google Groups "dirac-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dirac-users...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/dirac-users/dbd2183f-91cf-4942-b01b-cd180550a6a0n%40googlegroups.com.

ich...@gmail.com

unread,
Jun 23, 2025, 12:04:20 PMJun 23
to dirac-users
Dear Miro,

Thank you for your response.

We have, however, an issue with the population analysis:
the output is based on Cartesian basis functions as shown below
    %----------------------------------------
    * Electronic eigenvalue no.  11: -1.7980866456782       (Occupation : f = 0.3000)          
    ============================================================================================
   
    * Gross populations greater than 0.01000
   
    Gross     Total   |    L Ag Co dxx    L Ag Co dyy    L Ag Co dzz  
    ------------------------------------------------------------------
    alpha    0.9998  |      0.3280         0.0815         0.0825    
    beta     0.0002  |      0.0000         0.0000         0.0000    
    %----------------------------------------

but we would like to determine the orbital populations using spherical harmonics, such as dx2-y2 and d3z2-r2,
to obtain the realistic electronic configurations.

Is it implemented in DIRAC? 
Otherwise, are there ways to convert the populations from Cartesian to spherical harmonic basis functions?

Tomohiro

2025年6月16日月曜日 9:56:59 UTC-4 miro....@gmail.com:

Hans Jørgen Aagaard Jensen

unread,
Jun 24, 2025, 4:29:09 AMJun 24
to dirac...@googlegroups.com

Dear Tomohiro,

 

Dirac uses cartesian gaussians because of the kinetic energy balance, however the 3s component (x2+y2+z2) is removed so the d occupations are true d-ao occupations.

 

Personally I do not see any advantage of spherical d-orbital analysis, because that will treat the z direction different from the other directions. With the Cartesian form you will see how it moves smoothly between x2, y2, and z2 if you rotate the molecule in space.

 

Best regards, Hans Jørgen.

 

Fra: <dirac...@googlegroups.com> på vegne af "ich...@gmail.com" <ich...@gmail.com>
Svar til: "dirac...@googlegroups.com" <dirac...@googlegroups.com>
Dato: mandag den 23. juni 2025 kl. 18.04
Til: dirac-users <dirac...@googlegroups.com>
Emne: Re: [dirac-users] Help with d-Orbital Occupation Analysis in DIRAC

 

ich...@gmail.com

unread,
Jun 24, 2025, 12:22:42 PMJun 24
to dirac-users

Dear Hans Jørgen,

Thank you for your reply.
I now understand why Cartesian basis sets are preferred for both calculations and analysis.

Best regards,
Tomohiro

2025年6月24日火曜日 4:29:09 UTC-4 h...@sdu.dk:

Paul Bagus

unread,
Jun 30, 2025, 5:06:22 PMJun 30
to dirac...@googlegroups.com

Dear All,

 

I would appreciate information on the input needed to calculate the potential at a nucleus.

 

It seems that this should be done with the keyword .NUCPOT but I haven’t been able to work out where to place this keyword and how to add information on the center where the potential is to be calculated.

 

I haven’t been able to identify the subroutine that reads the .NUCPOT input and this might have let me work out how to create the correct input stream. Can someone tell me the routines where the input is processed.

 

Thanks, Paul

 

 

Miroslav Iliaš

unread,
Jul 1, 2025, 12:25:33 AMJul 1
to dirac...@googlegroups.com

--
You received this message because you are subscribed to the Google Groups "dirac-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dirac-users...@googlegroups.com.

Paul Bagus

unread,
Jul 1, 2025, 11:23:48 AMJul 1
to dirac...@googlegroups.com

Dear Miro,

 

Thanks for the pointers.

 

I had checked the on-line documentation but I was unable to extract the prescription for how to prepare the input for .NUCPOT. If you have a sample deck with .NUCPOT input that would be great.

 

Thanks also for the pointers to the relevant subroutines where the .NUCPOT input is processed. I will check these codes later today to see if I can work out how the input is read. In the meantime, I will continue to calculate the potentials for Pyridine with my non-relativistic code. It will be interesting to see how the rel and non-rel potentials compare. I would expect them to be very similar.

 

Thanks and Regards, Paul

Hans Jørgen Aagaard Jensen

unread,
Jul 1, 2025, 4:28:49 PMJul 1
to dirac...@googlegroups.com

Dear Paul,

 

I have looked and the documentation is wrong, .NUCPOT keyword does not work in Dirac – it writes that the potential from the individual nuclei are calculated, but they are not and they are not saved on AOPROPER. (The code doing it still exists in Dalton, but it has been deleted by someone in Dirac, presumably because there is another way of doing it in Dirac.)

 

If you tell me more specifically what you want to do, I might be able to help you. Do you want the expectation value?

 

Regards, Hans Jørgen.

Paul Bagus

unread,
Jul 2, 2025, 11:55:41 AMJul 2
to dirac...@googlegroups.com

Dear Hans Jorgen,

 

Thanks for your update on NUCPOT. I do have a rather straightforward workaround for the information that I need.

 

I am looking at C(1s) BE shifts in the XPS of a series of azines starting from pyridine. I want to demonstrate that the BE shifts depend on the electric potential, <1/r>, at the C atom which is ionized. This is different from the effective charge of the ionized atom since it includes contributions from all the atoms in molecule. I have already demonstrated the correlation for the C(1s) BE shifts for different configuration of an isolated C atom and I want to extend the analysis to the BEs in azines.

 

My workaround is to calculate the <1/r> with my non-relativistic codes. Since the azines have only light atoms, this should not be a problem.

 

It might be useful to correct the Dirac documentation to state that NUCPOT is not supported. BTW, what would be required to bring it back? Is there code in older versions of Dirac?

 

You wrote that: “presumably because there is another way of doing it in Dirac”. What do you have in mind as an alternative?

 

Best Regards, Paul

 

P.S. Are there any events (supportive or critical) planned in Denmark to mark Friday, July 4, the U.S. Independence Day?

Hans Jørgen Aagaard Jensen

unread,
Jul 2, 2025, 3:57:14 PMJul 2
to dirac...@googlegroups.com

Dear Paul, checked a little more.

 

In the .mol file, the two first characters of the atom label must be unique, thus one cannot use .xyz files because the label identifies the nuclear charge. In the .mol file, the label can be anything. For example:

 

Instead of e.g.:

        6.    2

C   -0.7000 0.0000 0.0000

C    0.7000 0.0000 0.0000

LARGE BASIS cc-pVDZ

 

you could have:

        6.    2

aa  -0.7000 0.0000 0.0000

ab   0.7000 0.0000 0.0000

LARGE BASIS cc-pVDZ

 

And then you can ask for the operator for the nuclear potential for the C atom with label “ab” with simply:

 

.OPERATOR

‘POT.E ab’

 

because it is a diagonal operator. The full version, useful in case you want to give it another name in output, is

 

.OPERATOR

‘Your-operator-name’

DIAGONAL

‘POT.E ab’

 

This should work, I have not tested it.

 

All the best, Hans Jørgen.

 

PS. See http://rebildfesten.dk , yearly since 1912.

Reply all
Reply to author
Forward
0 new messages