Author Topic: How can I use a different number of valence electrons for a specific atom  (Read 3148 times)

0 Members and 1 Guest are viewing this topic.

Offline zhangguangping

  • QuantumATK Guru
  • ****
  • Posts: 187
  • Country: cn
  • Reputation: 2
    • View Profile
Dear ATK supporters,

I now wonder how can I use a different number of valence electrons for a specific atom. To be specific, I want to use 4/5 valence electrons for nitrogen atom that uses the basis set and pseudopotential of a normal nitrogen (that is N+/N- atom). This trick will be a little different from charging this system, and it will localize this charge to the N+/N- atom. However, in ATK, I got the following WARNING and the code stops:

Exception: The number of electrons (4.000000) specified is not equal to the number of electrons in the pseudo-potential (5.000000).

However, I can do this in SIESTA code, and get an expected result, where the N+ atom has 3.941 valence electrons while N- has 5.513 valence electrons).

In some calculation, it is necessary to calculate a charged system, where the net charge spatially localized on a specific atom. So, how can I do such calculations in ATK?

With best regards,

/Guang-Ping Zhang
« Last Edit: April 29, 2018, 10:42 by zhangguangping »

Offline Daniele Stradi

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 286
  • Country: dk
  • Reputation: 3
    • View Profile
Hi Guang-Ping,

In ATK this can be achieved by using atomic compensation charges:
https://docs.quantumwise.com/manuals/Types/AtomicCompensationCharge/AtomicCompensationCharge.html
https://docs.quantumwise.com/manuals/technicalnotes/doping_methods/doping_methods.html

I am not sure of what you did in SIESTA, but from the ATK error it looks like that you are trying use a pseudo and a basis that have different number of valence electrons, N for the pseudo, N-1 for the basis. This can also be done in ATK, but in this case you have to generate a pseudopotential with N-1 electrons by yourself, to be consistent with the number of electrons specified in the basis. An atomic compensation charge placed on the nitrogen atom will give essentially the same result, without the need to modify the pseudo/basis.

Regards,
Daniele

Offline zhangguangping

  • QuantumATK Guru
  • ****
  • Posts: 187
  • Country: cn
  • Reputation: 2
    • View Profile
Hi Guang-Ping,

In ATK this can be achieved by using atomic compensation charges:
https://docs.quantumwise.com/manuals/Types/AtomicCompensationCharge/AtomicCompensationCharge.html
https://docs.quantumwise.com/manuals/technicalnotes/doping_methods/doping_methods.html

I am not sure of what you did in SIESTA, but from the ATK error it looks like that you are trying use a pseudo and a basis that have different number of valence electrons, N for the pseudo, N-1 for the basis. This can also be done in ATK, but in this case you have to generate a pseudopotential with N-1 electrons by yourself, to be consistent with the number of electrons specified in the basis. An atomic compensation charge placed on the nitrogen atom will give essentially the same result, without the need to modify the pseudo/basis.

Regards,
Daniele

Dear Daniele,

Thanks very much for your reply, especially on weekends. I will try the method you mentioned.
As I understand,

compensation_charge = AtomicCompensationCharge([[Silicon, -0.0005]])
bulk_configuration.setExternalPotential(compensation_charge)

will make the pseudo potential of Silicon more repulsive (the core ion looses 0.0005 |e| charge), which leads to the number of valence electrons for each Silicon atom decreases by 0.0005. And hence a p-doping is simulated.

With best regards,

/Guang-Ping Zhang

Offline zhangguangping

  • QuantumATK Guru
  • ****
  • Posts: 187
  • Country: cn
  • Reputation: 2
    • View Profile
Hi Guang-Ping,

In ATK this can be achieved by using atomic compensation charges:
https://docs.quantumwise.com/manuals/Types/AtomicCompensationCharge/AtomicCompensationCharge.html
https://docs.quantumwise.com/manuals/technicalnotes/doping_methods/doping_methods.html

I am not sure of what you did in SIESTA, but from the ATK error it looks like that you are trying use a pseudo and a basis that have different number of valence electrons, N for the pseudo, N-1 for the basis. This can also be done in ATK, but in this case you have to generate a pseudopotential with N-1 electrons by yourself, to be consistent with the number of electrons specified in the basis. An atomic compensation charge placed on the nitrogen atom will give essentially the same result, without the need to modify the pseudo/basis.

Regards,
Daniele

Dear Daniele,

AtomicCompensationCharge works.

In SIESTA, I just use

%block ChemicalSpeciesLabel
  5   6    N+       
%endblock ChemicalSpeciesLabel

combined with a N+.psf that is copied from a normal N.psf file, and also a basis set for N+ that copied from a normal N.

%block PAO.Basis                 # Define Basis set
N+                    2                    # Species label, number of l-shells
 n=2   0   2                         # n, l, Nzeta
   4.071      2.905   
   1.000      1.000   
 n=2   1   2 P   1                   # n, l, Nzeta, Polarization, NzetaPol
   4.973      3.054   
   1.000      1.000         
%endblock PAO.Basis

I think this is equivalent to

compensation_charge = AtomicCompensationCharge([('N+', -1.0)])
molecule_configuration.setExternalPotential(compensation_charge)

With best regards,
/Guang-Ping Zhang

Offline Daniele Stradi

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 286
  • Country: dk
  • Reputation: 3
    • View Profile
Hi Guang-Ping,

Yes, your understanding of the atomic compensation charge method is correct. I am happy that it works for your needs :)

Regards,
Daniele.