Author Topic: Finite transmission around Fermi level in bulk Si (100) direction ?  (Read 4935 times)

0 Members and 1 Guest are viewing this topic.

Offline Kaspar

  • Regular QuantumATK user
  • **
  • Posts: 19
  • Country: dk
  • Reputation: 0
    • View Profile
Hi all,

I have done DOS and Transmission calculations on bulk Si in different directions (100) and (110). The results show that Si has a transmission gap and DOS gap for (110) as expected (though only 0.7 eV, even though I am using MGGA functional ??), but for (100) there is no transmission gap even though there is a DOS gap.
How can I have finite transmission for bulk Si for energies around the Fermi level?

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5576
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
My first thought is insufficient k-point sampling. Beyond that, I'd need to know more details (script, etc) to make anything but a guess.

Offline Kaspar

  • Regular QuantumATK user
  • **
  • Posts: 19
  • Country: dk
  • Reputation: 0
    • View Profile
I am doing the simulation with 8,8,6 k-points. I did a convergence test on bulk Si which showed that 8,8,8 was fine, but since the unit cell in the (100) surface has a slightly longer c-vector, I use only 6 points in that direction.

The band gap is also only shown as 0.7 eV even though I use MGGA. I tried to do the calculation with very high k-point sampling (50,50,50), but that actually made the band gap estimate worse.
I forgot how the transmission looked in that case, and I deleted the files :(  Could it be a problem to use that many k-points?

The strange thing is that for the (110) direction, the same k-point sampling shows a clear DOS and Transmission gap. (though they are both 0.7 eV.. too small..)

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5576
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Can you share the scripts for how you compute the transmission? Are you doing it as "bulk transmission" or using complex band structure, or even a device configuration?

Offline Kaspar

  • Regular QuantumATK user
  • **
  • Posts: 19
  • Country: dk
  • Reputation: 0
    • View Profile
Sure, the script is below. The script was identical for the (110) surface, except, of course, for the different unit cell, and the k-points (which were 8 6 8 in that case)
Code
# Set up lattice
vector_a = [3.84001408591, 0.0, 0.0]*Angstrom
vector_b = [0.0, 3.84001408591, 0.0]*Angstrom
vector_c = [0.0, 0.0, 5.4306]*Angstrom
lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
elements = [Silicon, Silicon, Silicon, Silicon]

# Define coordinates
fractional_coordinates = [[  5.00000000e-01,  -3.33066907e-16,   2.50000000e-01],
                          [  5.00000000e-01,   5.00000000e-01,   5.00000000e-01],
                          [ -1.11022302e-16,   5.00000000e-01,   7.50000000e-01],
                          [  2.22044605e-16,  -2.46519033e-32,   1.00000000e+00]]

# Set up configuration
bulk_configuration = BulkConfiguration(
    bravais_lattice=lattice,
    elements=elements,
    fractional_coordinates=fractional_coordinates
    )

#----------------------------------------
# Exchange-Correlation
#----------------------------------------
exchange_correlation = MGGA.TB09LDA

# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
numerical_accuracy_parameters = NumericalAccuracyParameters(
    k_point_sampling=(8, 8, 6),
    )

calculator = LCAOCalculator(
    numerical_accuracy_parameters=numerical_accuracy_parameters,
    )

bulk_configuration.setCalculator(calculator)
nlprint(bulk_configuration)
bulk_configuration.update()
nlsave('analysis.nc', bulk_configuration)

# -------------------------------------------------------------
# Density of states
# -------------------------------------------------------------
density_of_states = DensityOfStates(
    configuration=bulk_configuration,
    kpoints=MonkhorstPackGrid(8,8,6),
    energy_zero_parameter=AbsoluteEnergy,
    bands_above_fermi_level=None,
    )
nlsave('analysis.nc', density_of_states)
nlprint(density_of_states)

# -------------------------------------------------------------
# Transmission spectrum
# -------------------------------------------------------------
transmission_spectrum = TransmissionSpectrum(
    configuration=bulk_configuration,
    energies=numpy.linspace(-5,5,501)*eV,
    kpoints=MonkhorstPackGrid(8,8),
    energy_zero_parameter=AbsoluteEnergy,
    infinitesimal=1e-06*eV,
    self_energy_calculator=RecursionSelfEnergy(),
    )
nlsave('analysis.nc', transmission_spectrum)
nlprint(transmission_spectrum)

# -------------------------------------------------------------
# Chemical potential
# -------------------------------------------------------------
chemical_potential = ChemicalPotential(bulk_configuration)
nlsave('analysis.nc', chemical_potential)
nlprint(chemical_potential)

# -------------------------------------------------------------
# Bandstructure
# -------------------------------------------------------------
bandstructure = Bandstructure(
    configuration=bulk_configuration,
    route=None,
    points_per_segment=20,
    bands_above_fermi_level=All
    )
nlsave('analysis.nc', bandstructure)


Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5576
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
For bulk transmission it is necessary to repeat the structure enough times in C so that all interactions are accounted for (see http://quantumwise.com/publications/tutorials/mini-tutorials/99). This is done automatically for complex band structures, but not bulk transmission (yet). If you repeat the 100 structure 2x in C, you get a nice gap. The same should be done for 111 and 110 too, in order to get proper results.

Offline Kaspar

  • Regular QuantumATK user
  • **
  • Posts: 19
  • Country: dk
  • Reputation: 0
    • View Profile
Thanks for the pointer, I did not realize that the electrode discussion was relevant to bulk configurations.
So is it the same as the electrodes when doing devices -  that the length in c-direction should be at least 6A?

And is it material dependent for these bulk structures, or is it a general thing, that they should be longer than 6A ?
I'm asking because I'm also doing bulk Cu along the same directions - would they also need to be increased in c-direction?

And with regards to k-point spacing, I assume that I can use the one which I showed converged with respect to band gap for bulk Si (8x8x8), which in the longer cases would be something like (8x8x4) or similar.. , correct?

EDIT. Did the above for Si.
One more question: I get a transmission gap and DOS gap (band gap) now for all the directions as there should be, but I'm curious why the width of the gaps (both of them) is only ~0.7eV and not 1.3 as MGGA (which I'm using) usually estimates for Si band gap?
« Last Edit: July 18, 2013, 00:04 by Kaspar »

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5576
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
The "electrode discussion" was written before we had bulk transmission, but I can see that we need to make this point a bit clearer (in fact it's currently wrong at http://quantumwise.com/publications/tutorials/mini-tutorials/167, where it says you can leave it at the minimum cell length). Well, actually we should simply make the repetition internally, as is done for complex band structure.

As for the length itself, it's not just material dependent, it's primarily basis set dependent. So it's hard to give a hard rule, although 6 Å is on the low side, I'd say 8 is pretty safe but if in some case you only have a choice of 6 or 12, then you need to check a bit more carefully because 12 may be expensive (at least for a real device).

Yes, you can reduce the k-points by the repetition factor.

I get about 1.2 eV transmission gap along 100 for MGGA; my script is attached.