QuantumATK Forum

QuantumATK => General Questions and Answers => Topic started by: Habib on December 15, 2023, 21:30

Title: DOS of five d orbitals
Post by: Habib on December 15, 2023, 21:30
Hi there,

Can we simulate the density of states (DOS) of the five d orbitals (dxy, dx²-y², dyz, dxz, dz²) of transition metals such as Fe using QuantumATK? I can simulate the DOS of the s, p, d, and f orbitals of an atom but cannot do so separately for dxy, dx²-y², dyz, dxz, dz².

Kind Regards,
Habib
Title: Re: DOS of five d orbitals
Post by: Jahanzaib on December 16, 2023, 18:27
Yes, you can do in two ways
1) Open it in the DOS Analyzer, select the Iron atom and "d" and spin up or down separated (flipped), then right-click the plot window and choose Export data. Then you can write code to plot it.
2) Start atkpython, then write code and add that lines

# Calculate the DOS spectrum with spin up
dos_Up = dos.evaluate(projection_list=ProjectionList(atoms=[------], elements=[Iron], angular_momenta=[2]), spin=Spin.Up)

# Calculate the DOS spectrum with spin down
dos_Down = dos.evaluate(projection_list=ProjectionList(atoms=[------], elements=[Iron], angular_momenta=[2]), spin=Spin.Down)

Hopeso, it helps you

Title: Re: DOS of five d orbitals
Post by: Habib on December 17, 2023, 22:08
Thanks, Jahanzaib,

I mean to split the d orbitals into dxy, dx²-y², dyz, dxz, and dz², similar to the attached example. I am not solely interested in the spin-up and spin-down states of the d orbital of Fe. I am unsure how to use the script you suggested to split the d orbitals into the five 3d orbitals of Fe, considering both spin-up and spin-down states. Could you please provide more details on how to utilize the script for this purpose using the density of states (DOS) calculated in QuantumATK?

Kind Regards,
Habib
Title: Re: DOS of five d orbitals
Post by: Jahanzaib on December 18, 2023, 00:31
PDOS does the same what you want - for PDOS, you have to select ProjectOnShellsByElement or you can see (https://docs.quantumatk.com/manual/Types/ProjectedDensityOfStates/ProjectedDensityOfStates.html) where you can define the projection of specific atom.

Thank you
Title: Re: DOS of five d orbitals
Post by: Habib on December 18, 2023, 12:27
Thanks, Jahanzaib. I will try this, and it looks like it will work. At the moment, I solved this issue with VASP, as I needed the COHP and pCOHP, so I used the same file.
Title: Re: DOS of five d orbitals dxy, dxz, dyz, dx2-dy2, and dz2
Post by: Habib on December 20, 2023, 15:49
Dear Admin and Colleagues,

I have been attempting to simulate the five 3d orbitals of Fe in LaFeO3—namely, dxy, dxz, dyz, dx2-dy2, and dz2—through spin-polarized DFT+U simulations. I utilized PDOS with the "projections=ProjectOnOrbitalsByElement" setting, and it worked well, producing the DOS of the mentioned orbitals in one spin (refer to the attached file). However, I require both spin-up and spin-down positions. Can you help me to simulate the DOS in both spin?

Additionally, I tried manually adding sub-orbitals for the Fe 3d orbitals in the script (as shown below), but encountered an error as the software does not recognize the azimuthal quantum number.

# Basis Set
#----------------------------------------
iron_3d_dxy = ConfinedOrbital(
    principal_quantum_number=3,
    angular_momentum=2,
    azimuthal_quantum_number=0,
    radial_cutoff_radius=7.117*Bohr,
    confinement_start_radius=5.117*Bohr,
    additional_charge=0,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
)

iron_3d_dxz = ConfinedOrbital(
    principal_quantum_number=3,
    angular_momentum=2,
    azimuthal_quantum_number=1,
    radial_cutoff_radius=7.117*Bohr,
    confinement_start_radius=5.117*Bohr,
    additional_charge=0,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
)

iron_3d_dyz = ConfinedOrbital(
    principal_quantum_number=3,
    angular_momentum=2,
    azimuthal_quantum_number=2,
    radial_cutoff_radius=7.117*Bohr,
    confinement_start_radius=5.117*Bohr,
    additional_charge=0,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
)

iron_3d_dx2_y2 = ConfinedOrbital(
    principal_quantum_number=3,
    angular_momentum=2,
    azimuthal_quantum_number=3,
    radial_cutoff_radius=7.117*Bohr,
    confinement_start_radius=5.117*Bohr,
    additional_charge=0,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
)

iron_3d_dz2 = ConfinedOrbital(
    principal_quantum_number=3,
    angular_momentum=2,
    azimuthal_quantum_number=4,
    radial_cutoff_radius=7.117*Bohr,
    confinement_start_radius=5.117*Bohr,
    additional_charge=0,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
)

iron_4f = ConfinedOrbital(
    principal_quantum_number=4,
    angular_momentum=3,
    radial_cutoff_radius=3.337*Bohr,
    confinement_start_radius=1.337*Bohr,
    additional_charge=0.013,
    confinement_strength=12.5*Hartree,
    confinement_power=2,
    radial_step_size=0.001*Bohr,
)

IronBasis = BasisSet(
    element=PeriodicTable.Iron,
    orbitals=[iron_3s, iron_3p, iron_3d_dxy, iron_3d_dxz, iron_3d_dyz, iron_3d_dx2_y2, iron_3d_dz2, iron_4p, iron_4s_0, iron_4f],
    occupations=[2.0, 6.0, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
    hubbard_u=[0.0, 0.0, 5.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]*eV,
    dft_half_parameters=Automatic,
    filling_method=SphericalSymmetric,
    onsite_spin_orbit_split=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]*eV,
    pseudopotential=NormConservingPseudoPotential("normconserving/26FE.16.GGAPBE.zip"),
Title: Re: DOS of five d orbitals
Post by: Jahanzaib on December 20, 2023, 23:02
In Quantumatk, we have class called "Projection", where you can define what you need like (https://docs.quantumatk.com/manual/Types/Projection/Projection.html#NL.Analysis.Projection.Projection)

Projection(spin=Spin.Up, atoms=[Iron], l_quantum_numbers=[2]) + Projection(spin=Spin.Down, atoms=[Iron], l_quantum_numbers=[2])

I think it will work, try this