Contribution of one atom in specific MO


Just Got Here
Hi,

I am doing DFT calculations and would like to compute the contribution of an atom (or group of atoms) to a specific molecular orbitals. Is there a buit-in functionality within NWChem to do that ?

Alternatively, is there a way to output the overlap matrix ? Since I can output the the final MO vectors, I could compute this contribution with the overlap matrix.

Thanks,

Forum Vet
property
mulliken
end

task dft property


May give you the output you are looking for. In addition, you can increase the print out by including:

property
mulliken
print "ao gross population"
end

task dft property


Bert


Quote:Maillard Nov 4th 3:11 pm
Hi,

I am doing DFT calculations and would like to compute the contribution of an atom (or group of atoms) to a specific molecular orbitals. Is there a buit-in functionality within NWChem to do that ?

Alternatively, is there a way to output the overlap matrix ? Since I can output the the final MO vectors, I could compute this contribution with the overlap matrix.

Thanks,

Clicked A Few Times
Hi,

I used to work with NwChem6.0. Doing a property calculation with the keywork Mulliken used to print me the overlap populations. But now that I have switched to NwChem6.1, it doesn't anymore. Is this an installation problem or has anything changed in the code? Is there a new keyword for this option?

Thanks,

Chloe

Forum Vet
The following options provide additional output in the Mulliken population analysis within the property module:

print "overlap population"
print "ao gross population"
print "atomic overlap population"

Thanks,

Bert



Quote:Chloe Jun 5th 2:09 pm
Hi,

I used to work with NwChem6.0. Doing a property calculation with the keywork Mulliken used to print me the overlap populations. But now that I have switched to NwChem6.1, it doesn't anymore. Is this an installation problem or has anything changed in the code? Is there a new keyword for this option?

Thanks,

Chloe

Clicked A Few Times
Hi Bert,

I tried adding print "overlap population" in the property block but then I got an error message saying that the keyword is not recognized.

Forum Vet
Just put these lines in the input deck before the task line, outside of the property block.

Bert

Quote:Chloe Jun 8th 2:12 pm
Hi Bert,

I tried adding print "overlap population" in the property block but then I got an error message saying that the keyword is not recognized.

Clicked A Few Times
This is not working either. It doesn't raise any error but it doesn't print the overlap population between any two atomic orbital.

ChloƩ

Clicked A Few Times
Bump of the old issue.

As noted by Chloe, inserting:
print "overlap population"
in the file does not result in overlap population in the output.

my input file is:
echo
start
title "Water SP"

geometry
symmetry c1
O     0.00000000     0.00000000     0.12982363
H     0.75933475     0.00000000    -0.46621158
H    -0.75933475     0.00000000    -0.46621158
end

basis  spherical
 O library aug-cc-pVDZ
 H library aug-cc-pVDZ
end
print "overlap population"

dft
xc becke88 perdew86 
convergence energy 1d-8 nolevelshifting
direct
end

property
 MULLIKEN
end

task dft property


Now, if I look into code (hnd_mulken.F), I find:
if (ga_nodeid().eq.0) write(luout,2100) 

prt_ovlp_pop     = ((ga_nodeid().eq.0).and.
     &                   util_print("overlap population",print_debug))

[...]

2100 format(//,10x,28(1h-),/,10x,'Mulliken population analysis',/,
     & 10X,28(1h-))


ga_nodeid().eq.0 is True because "Mulliken population analysis" string is printed in the output file. Thus, something is wrong with the second condition.

From util/print.doc:
If (  (the level is below the current printlevel and printing of
            "name" has not been explicitly disabled)
           or
           (the printing of name has been explicitly enabled) )

        util_print returns .true.
     endif


name was explicitly enabled, but for some reasons util_print returns false.

Any help would be greatly appreciated!

Clicked A Few Times
Dear Afonari,

Print "overlap population" doesn't work, but I managed to do it using

property
 mulliken
vectors file.movecs
end
task dft property

... but you also have this part in your code. Just make sure it is not printed in the property module (you can search for the key word "overlap population" in the ouput file). Otherwise, I really don't know what's the problem.

Forum Vet
Fixed in development version
I found the issue as to why it wasn't printing. It will require a slight code change and recompile.

in src/property/prop_input.F replace:

     elseif ( inp_compare(.false., 'end', test)) then

with:

     else if (inp_compare(.false.,'print', test) .or.
$ inp_compare(.false.,'noprint', test)) then
call util_print_input(rtdb, 'prop')
elseif ( inp_compare(.false., 'end', test)) then

Effectively, you need to add those three lines. Recompile, and now set the print statement in the property block

property
mulliken
print "overlap population"
end

Thanks,

Bert

Clicked A Few Times
thank you Bert,

will give it a try.


Forum >> NWChem's corner >> NWChem functionality