Adsorption energies

69 views
Skip to first unread message

Jens jørgen mortensen

unread,
Dec 7, 2009, 8:33:07 AM12/7/09
to excitingdft
Hi!

Has anyone tried to calculate adsorption energies with exciting? I
would like to calculate the adsorption energy of a hydrogen atom on a
(2x2) Ru(0001) surface consisting of 4 layers using PBE. So, I need to
do three calculations: Eads=E(HRu)-E(H)-E(Ru). Since I am only
interested in an energy difference, I should get a lot of error
cancellation, so I think something like 6x6x1 k-points should do. Can
exciting do this (16 Ru atoms plus one H atom)?

I would like to use the adsorption energy as the *correct* value
without any pseudopotential errors or basis set errors and compare
this number with what I get from other DFT codes. Is this realistic?

Jens Jørgen

Juergen Spitaler

unread,
Dec 11, 2009, 8:07:56 AM12/11/09
to excit...@googlegroups.com
Dear Jens,

there is should be no principle problem in doing the calculation
you describe in your email.

Regarding the accuracy of the calculation:
If your Ru surface supercell is 2x2 then 6x6x1 k-points could be enough
for an approximate estimation. If you want to get accurate results,
however,you should not count on the error cancellation. Instead,
since you compare total energies for different cells
(Ru surface, H molecule, HRu), you should really converge
the total energy with respect to the k-points in each of
the systems, since most probably you will not be able to
find a mesh containing physically identical k-points for each
of them.

It is also important to make sure that the size of the vacuum
is large enough in all three systems (H,Ru,HRu), i.e. for each system
you should increase the vacuum until the total energy doesn't
change anymore. Of course, this increases the calculation time,
but in order to get a reliable result it is really necessary.

Apart from these two aspects, which are valid for any kind
of DFT code, you also need to take care of choosing an appropriate
energy cut-off. In exciting this means that you should
make sure that rgkmax is chosen large enough. Also make
sure, that the value of gkmax = rgkmax/R_MT for the H atom
and the Ru atoms is the same for HRu compared to H and Ru,
respectively. Check "radius" in the species files Ru.xml and H.xml
to find out the muffin-tin radius R_MT.

After all, I would say it is a good choice to use the
exciting results as the *correct* value :-)

Best wishes,
Juergen Spitaler
> Jens J�rgen
>
> --
>
> You received this message because you are subscribed to the Google Groups "excitingdft" group.
> To post to this group, send email to excit...@googlegroups.com.
> To unsubscribe from this group, send email to excitingdft...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/excitingdft?hl=en.
>
>
>


--
Dr. J�rgen Spitaler
Materials Center Leoben Forschung GmbH and
Chair of Atomistic Modelling and Design of Materials, Leoben University
Franz-Josef-Stra�e 18
8700 Leoben
Tel.: ++43 (0)3842 402 4404
E-Mail: juergen....@unileoben.ac.at


Jens jørgen mortensen

unread,
Dec 14, 2009, 9:49:51 AM12/14/09
to excitingdft
On Dec 11, 2:07 pm, Juergen Spitaler
<juergen.spita...@unileoben.ac.at> wrote:
> Dear Jens,
>
Thanks for your input. I tried to do the calculations, and it works
fine for the clean Ru slab, but when I add hydrogen, I got

Warning(occupy): valence eigenvalues below evalmin for s.c. loop
3

I then tried to increase gmaxvr as suggested here:

http://elk.sourceforge.net/faq.html#2

But I'm getting

Error(findband): no energy limits found for l= 0

I'm using this input.xml:

<?xml version='1.0' encoding='UTF-8'?>
<input>
<title></title>
<structure speciespath="/opt/exciting-species/9.10-1.el5.fys/"
autormt="true">
<crystal>
<basevect>5.10226008714048 0.00000000000000 0.00000000000000</
basevect>
<basevect>2.55113004357024 4.41868685217906 0.00000000000000</
basevect>
<basevect>0.00000000000000 0.00000000000000 42.35858529824863</
basevect>
</crystal>
<species chemicalSymbol="Ru" speciesfile="Ru.xml">
<atom coord="0.66666666666667 0.66666666666667 0.35690067454227"/
>
<atom coord="0.00000000000000 0.00000000000000 0.45230022484742"/
>
<atom coord="0.66666666666667 0.66666666666667 0.54769977515257"/
>
<atom coord="0.00000000000000 0.00000000000000 0.64309932545773"/
>
</species>
<species chemicalSymbol="H" speciesfile="H.xml">
<atom coord="0.00000000000000 0.00000000000000 0.72117134801385"/
>
</species>
</structure>
<groundstate
tforce="true"
gmaxvr="15.0"
ngridk="6 6 1"
xctype="GGAPerdew-Burke-Ernzerhof"
stype="Fermi Dirac"
swidth="0.004"
nempty="25"/>
</input>

Any idea what I'm doing wrong? I can post the full error message if
that helps.

Thanks,
JJ

Juergen Spitaler

unread,
Dec 14, 2009, 10:32:09 AM12/14/09
to excit...@googlegroups.com
Dear Jens,
what are the species files you have used?
Have you used the defaults or changed eg. the
division into core and semicore/valence states?
If, e.g., you should happen treat the 3d states of Ru
as semicore/valence states you should reduce
evalmin to at least -5.5.

Another reason could be the MT radii.
I checked what MT radii result when using
    autormt="true"
as it is done in your input file.
In my case it was 1.8880 for Ru and 1.2536 for H.
Hydrogen is really very special compare to any
other element since it is just tiny. In lapw codes
this means that in spite of the general rule
not to make the MT radii differ to much H
is often an exception. It could be that you
should increase the RMT of Ru a little bit more
and decrease the one of H ("radius" in Ru.xml
and H.xml species files).

Best wishes,
Juergen


Jens jørgen mortensen wrote:
    </species>
  </structure>
  <groundstate
 tforce="true"
 gmaxvr="15.0"
 ngridk="6 6 1"
 xctype="GGAPerdew-Burke-Ernzerhof"
 stype="Fermi Dirac"
 swidth="0.004"
 nempty="25"/>
</input>

Any idea what I'm doing wrong?  I can post the full error message if
that helps.

Thanks,
JJ

--

You received this message because you are subscribed to the Google Groups "excitingdft" group.
To post to this group, send email to excit...@googlegroups.com.
To unsubscribe from this group, send email to excitingdft...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/excitingdft?hl=en.


  


-- 
Dr. Jürgen Spitaler
Materials Center Leoben Forschung GmbH and
Chair of Atomistic Modelling and Design of Materials, Leoben University
Franz-Josef-Straße 18    
8700 Leoben
Tel.: ++43 (0)3842 402 4404
E-Mail: juergen....@unileoben.ac.at

Jens jørgen mortensen

unread,
Dec 15, 2009, 10:14:16 AM12/15/09
to excit...@googlegroups.com


2009/12/14 Juergen Spitaler <juergen....@unileoben.ac.at>

Dear Jens,
what are the species files you have used?
Have you used the defaults or changed eg. the
division into core and semicore/valence states?
If, e.g., you should happen treat the 3d states of Ru
as semicore/valence states you should reduce
evalmin to at least -5.5.

I used the defaults with 3d in the core.  I did try to reduce evalmin, but that didn't have an effect.
 

Another reason could be the MT radii.
I checked what MT radii result when using
    autormt="true"
as it is done in your input file.
In my case it was 1.8880 for Ru and 1.2536 for H.

This was also what I got.
 
Hydrogen is really very special compare to any
other element since it is just tiny. In lapw codes
this means that in spite of the general rule
not to make the MT radii differ to much H
is often an exception. It could be that you
should increase the RMT of Ru a little bit more
and decrease the one of H ("radius" in Ru.xml
and H.xml species files).
 
I tried to set the Ru radius to 2.0 and the radius for H to 1.0 and 0.9.  I tried to combine this with more empty states and more k-points. I'm getting messages like this:

Warning(occupy): valence eigenvalues below evalmin for s.c. loop     1
Error(rdirac): maximum iterations exceeded

I had to increase gmaxvr to 16.  Does that make sence?

Jens Jørgen

Juergen Spitaler

unread,
Dec 15, 2009, 10:32:22 AM12/15/09
to excit...@googlegroups.com
Dear Jens Jørgen,

can you try to reduce rgkmax to 5.5, using again the default gmaxvr
and the MT radii 1.25/H and 1.88/Ru?

In (l)apw there can appear mathematical instabilities for
too large basis sets values, and since the RMT
of H is already much smaller than the one of Ru, even
using the values of 1.25/1.88,  the basis set is already
very large for the default value of rgkmax=7.0.

Best wishes,
Juergen



I tried to set the Ru radius to 2.0 and the radius for H to 1.0 and 0.9.  I
tried to combine this with more empty states and more k-points. I'm getting
messages like this:

Warning(occupy): valence eigenvalues below evalmin for s.c. loop     1
Error(rdirac): maximum iterations exceeded

I had to increase gmaxvr to 16.  Does that make sence?

Jens Jørgen

--

You received this message because you are subscribed to the Google Groups "excitingdft" group.
To post to this group, send email to excit...@googlegroups.com.
To unsubscribe from this group, send email to excitingdft...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/excitingdft?hl=en.



  

Stephan Sagmeister

unread,
Dec 16, 2009, 2:23:57 AM12/16/09
to excit...@googlegroups.com
Dear Jens,

adding the attribute

      findlinentype="simple"

to the groundstate element should fix the problem.
This should solve the issue that you could not find the
proper linearization energies. I would start with this option from
your initial input file and subsequently follow the suggestions
made by Jürgen step by step, to see where we can nail down the problem.

best wishes
Stephan
Dr. Stephan Sagmeister
Kavli Institute for Theoretical Physics
University of California Santa Barbara, CA 93106
phone: +1 805 893 6317

permanent address:
Materials Center Leoben and

Chair of Atomistic Modelling and Design of  Materials
Department of Materials Physics, University Leoben
Franz-Josef-Straße 18, A-8700 Leoben
phone/fax: +43 3842 402 4408 / 4402
http://unileoben.ac.at/amadm

Jens jørgen mortensen

unread,
Dec 16, 2009, 10:39:14 AM12/16/09
to excitingdft
On Dec 16, 8:23 am, Stephan Sagmeister <stephan.sagmeis...@gmail.com>
wrote:
> Dear Jens,
>
> adding the attribute
>
>       findlinentype="simple"
>
> to the groundstate element should fix the problem.
> This should solve the issue that you could not find the
> proper linearization energies. I would start with this option from
> your initial input file and subsequently follow the suggestions
> made by Jürgen step by step, to see where we can nail down the problem.

Thanks for you help.

I tried findlinentype="simple" with all my previous input.xml files
and they now converge to an energy like -16457.0446782 which is wrong
- should be something like -18100, but the warnings I got probably
explain this:

from iteration 3 and on, I get:

Warning(occupy): valence eigenvalues below evalmin for s.c. loop 3

and from iteration 4 and on, I get:

Warning(charge): total charge density incorrect for s.c. loop 4
Calculated : 112.0000000
Required : 177.0000000

When I change the radii, I simply edit H.xml and Ru.xml in the
directory that speciespath points to and use autormt="false". I can
see that the values in INFO.OUT are what I want. Is that the correct
way to do it?

My last attempt looks like this:
ngridk="6 6 1"
xctype="GGAPerdew-Burke-Ernzerhof"
stype="Fermi Dirac"
swidth="0.004"
rgkmax="5.5"
findlinentype="simple"
nempty="55"/>
</input>

JJ

Juergen Spitaler

unread,
Dec 17, 2009, 12:21:50 PM12/17/09
to excit...@googlegroups.com
Hi Jens,

some comment on your structure:

Your Ru layer does NOT have hexagonal close packing, #
 where the atoms of the second layer are in the middle of
one triangle of the first layer.

Your coordinates of the Ru layers in your input file are:

     atom coord="0.66666666666667 0.66666666666667 0.35690067454227"
     atom coord="0.00000000000000 0.00000000000000 0.45230022484742"
     atom coord="0.66666666666667 0.66666666666667 0.35690067454227"
     atom coord="0.00000000000000 0.00000000000000 0.45230022484742"

while in hex. close-packed structures they should be like
     atom coord="0.33333333333333 0.66666666666667 0.35690067454227"

     atom coord="0.00000000000000 0.00000000000000 0.45230022484742"
     atom coord="0.66666666666667 0.33333333333333 0.35690067454227"
     atom coord="0.00000000000000 0.00000000000000 0.4523002248474



Jürgen




Jens jørgen mortensen wrote:
    </species>
  </structure>
  <groundstate
 tforce="true"
 ngridk="6 6 1"
 xctype="GGAPerdew-Burke-Ernzerhof"
 stype="Fermi Dirac"
 swidth="0.004"
 rgkmax="5.5"
 findlinentype="simple"
 nempty="55"/>
</input>

JJ

--

You received this message because you are subscribed to the Google Groups "excitingdft" group.
To post to this group, send email to excit...@googlegroups.com.
To unsubscribe from this group, send email to excitingdft...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/excitingdft?hl=en.


  

Jens jørgen mortensen

unread,
Dec 18, 2009, 6:49:16 AM12/18/09
to excitingdft
On Dec 17, 6:21 pm, Juergen Spitaler

<juergen.spita...@unileoben.ac.at> wrote:
> Hi Jens,
>
> some comment on your structure:
>
> Your Ru layer does NOT have hexagonal close packing, #
> where the atoms of the second layer are in the middle of
> one triangle of the first layer.
>
> Your coordinates of the Ru layers in your input file are:
> atom coord="0.66666666666667 0.66666666666667 0.35690067454227"
> atom coord="0.00000000000000 0.00000000000000 0.45230022484742"
> atom coord="0.66666666666667 0.66666666666667 0.35690067454227"
> atom coord="0.00000000000000 0.00000000000000 0.45230022484742"
>
> while in hex. close-packed structures they should be like
> atom coord="0.33333333333333 0.66666666666667 0.35690067454227"
> atom coord="0.00000000000000 0.00000000000000 0.45230022484742"
> atom coord="0.66666666666667 0.33333333333333 0.35690067454227"
> atom coord="0.00000000000000 0.00000000000000 0.4523002248474

That would be FCC(111) - if I had (note the minus sign):

<crystal>
<basevect>5.10226008714048 0.00000000000000 0.00000000000000</
basevect>

<basevect>-2.55113004357024 4.41868685217906 0.00000000000000</


basevect>
<basevect>0.00000000000000 0.00000000000000 42.35858529824863</
basevect>
</crystal>

but I have

<crystal>
<basevect>5.10226008714048 0.00000000000000 0.00000000000000</
basevect>
<basevect>2.55113004357024 4.41868685217906 0.00000000000000</
basevect>
<basevect>0.00000000000000 0.00000000000000 42.35858529824863</
basevect>
</crystal>

and then my structure is HCP(0001) as I want. Isn't that right? If
not then I don't understand!

Anyway, I tried to use mixer="lin" and beta0="0.05" and then it
converges slowly towards a more reasonable number so I think the
problem could be a mixing problem - charge sloshing or something.

JJ

Juergen Spitaler

unread,
Dec 18, 2009, 6:58:54 AM12/18/09
to excit...@googlegroups.com
Hi Jens,

I did a mistake yesterday and the coordinates
I sent you should really be FCC (111).

Instead, the correct coordinates should read


<atom coord="0.66666666666667 0.33333333333333 0.35690067454227"

></atom>


<atom coord="0.00000000000000 0.00000000000000 0.45230022484742"

></atom>
<atom coord="0.66666666666667 0.33333333333333 0.54769977515257"
></atom>


<atom coord="0.00000000000000 0.00000000000000 0.64309932545773"

></atom>

while in your input-file the x AND y coordinates of the 1st and 3rd atom
where 0.666...

Juergen

Jens j�rgen mortensen wrote:

> --
>
> You received this message because you are subscribed to the Google Groups "excitingdft" group.
> To post to this group, send email to excit...@googlegroups.com.
> To unsubscribe from this group, send email to excitingdft...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/excitingdft?hl=en.
>
>
>


--
Dr. J�rgen Spitaler


Materials Center Leoben Forschung GmbH and
Chair of Atomistic Modelling and Design of Materials, Leoben University

Franz-Josef-Stra�e 18

Jens jørgen mortensen

unread,
Dec 18, 2009, 7:47:13 AM12/18/09
to excitingdft
On Dec 18, 12:58 pm, Juergen Spitaler

<juergen.spita...@unileoben.ac.at> wrote:
> Hi Jens,
>
> I did a mistake yesterday and the coordinates
> I sent you should really be FCC (111).
>
> Instead, the correct coordinates should read
>       <atom coord="0.66666666666667 0.33333333333333 0.35690067454227"
>  ></atom>
>       <atom coord="0.00000000000000 0.00000000000000 0.45230022484742"
>  ></atom>
>       <atom coord="0.66666666666667 0.33333333333333 0.54769977515257"
>  ></atom>
>       <atom coord="0.00000000000000 0.00000000000000 0.64309932545773"
>  ></atom>
>
> while in your input-file the x AND y coordinates of the 1st and 3rd atom
> where 0.666...

I can't read from your reply if we now agree that my structure is
HCP? I think it's HCP given the crystal base vectors that I use.

JJ

Juergen Spitaler

unread,
Dec 18, 2009, 8:49:56 AM12/18/09
to excit...@googlegroups.com
No, your structure with the basis vectors you use is not HCP !
Using your basis vectors, the coordinates should look like I wrote
in the last email.

Consider, e.g. the coordinates of the 1st Ru atom.
Your file:       (0.6666 0.6666 0.3569)
Correct hcp:     (0.6666 0.3333 0.3569)
                                                 ^^^^^

Juergen


Jens jørgen mortensen wrote:
I can't read from your reply if we now agree that my structure is
HCP?  I think it's HCP given the crystal base vectors that I use.

JJ

--

You received this message because you are subscribed to the Google Groups "excitingdft" group.
To post to this group, send email to excit...@googlegroups.com.
To unsubscribe from this group, send email to excitingdft...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/excitingdft?hl=en.


  


-- 
Dr. Jürgen Spitaler
Materials Center Leoben Forschung GmbH and
Chair of Atomistic Modelling and Design of Materials, Leoben University
Franz-Josef-Straße 18    
8700 Leoben
Tel.: ++43 (0)3842 402 4404
E-Mail: juergen....@unileoben.ac.at

Juergen Spitaler

unread,
Dec 18, 2009, 10:00:30 AM12/18/09
to excit...@googlegroups.com
My last email was wrong ... sorry!

I checked it again: After all your structure was hcp!

I had been confused by several things:
* the missing minus sign in your second basevect,
* I expected the Ru atom in the "shifted" Ru plane to be
  at  (0.3333 0.3333 ....)  instead of  (0.666 0.666 ...),
  (using coordinates in your basis vectors). 
* an  error in the xmlinput2xsf routine which produced wrong
  xcrysden input files. I have fixed the xmlinput2xsf now and
  it will be available soon.

Juergen
Reply all
Reply to author
Forward
0 new messages