QuantumATK Forum

QuantumATK => General Questions and Answers => Topic started by: Yu Hailin on April 23, 2012, 09:02

Title: Is this a bugger or functional limitation in the 12.2.r1 version?
Post by: Yu Hailin on April 23, 2012, 09:02
Dear all,
    I have performed the transmission spectrum of Li_H2_Li device system following " ATK Tutorial for Device Configuration". The tutorial result shown in fig_1. My results shown in fig_2. We can find there is a large difference at the fermi level. For the tutorial results, the transmission sepctrum is about 0.7, while for my result, the value of transmission sepctrum at fermi level is nearly 0.0. Further inspect the .log file, the transmission spectrum is shown the follow:
 -5.000000e+00   0.000000e+00
 -4.900000e+00   0.000000e+00
 -4.800000e+00   0.000000e+00
 -4.700000e+00   0.000000e+00
 -4.600000e+00   0.000000e+00
 -4.500000e+00   0.000000e+00
 -4.400000e+00   0.000000e+00
 -4.300000e+00   0.000000e+00
 -4.200000e+00   0.000000e+00
 -4.100000e+00   0.000000e+00
 -4.000000e+00   0.000000e+00
 -3.900000e+00   0.000000e+00
 -3.800000e+00   0.000000e+00
 -3.700000e+00   0.000000e+00
 -3.600000e+00   0.000000e+00
 -3.500000e+00   0.000000e+00
 -3.400000e+00   0.000000e+00
 -3.300000e+00   0.000000e+00
 -3.200000e+00   0.000000e+00
 -3.100000e+00   0.000000e+00
 -3.000000e+00   0.000000e+00
 -2.900000e+00   0.000000e+00
 -2.800000e+00   0.000000e+00
 -2.700000e+00   0.000000e+00
 -2.600000e+00   0.000000e+00
 -2.500000e+00   0.000000e+00
 -2.400000e+00   0.000000e+00
 -2.300000e+00   0.000000e+00
 -2.200000e+00   0.000000e+00
 -2.100000e+00   0.000000e+00
 -2.000000e+00   0.000000e+00
 -1.900000e+00   0.000000e+00
 -1.800000e+00   0.000000e+00
 -1.700000e+00   0.000000e+00
 -1.600000e+00   0.000000e+00
 -1.500000e+00   0.000000e+00
 -1.400000e+00   0.000000e+00
 -1.300000e+00   0.000000e+00
 -1.200000e+00   0.000000e+00
 -1.100000e+00   0.000000e+00
 -1.000000e+00   5.905583e-20
 -9.000000e-01  -4.175721e-21
 -8.000000e-01   3.975305e-19
 -7.000000e-01  -5.536259e-17
 -6.000000e-01   1.574674e-01
 -5.000000e-01   3.851957e-01
 -4.000000e-01   4.313864e-01
 -3.000000e-01   4.899291e-01
 -2.000000e-01   5.992184e-01
 -1.000000e-01   6.841177e-01
  0.000000e+00  -1.653292e-12
  1.000000e-01   6.847447e-01
  2.000000e-01   6.657173e-01
  3.000000e-01   6.713786e-01
  4.000000e-01   7.062737e-01
  5.000000e-01   7.637366e-01
  6.000000e-01   8.317686e-01
  7.000000e-01   8.970986e-01
  8.000000e-01   9.495191e-01
  9.000000e-01   9.845091e-01
  1.000000e+00   9.998768e-01
  1.100000e+00   9.772056e-01
  1.200000e+00   7.899830e-01
  1.300000e+00   2.396745e-12
  1.400000e+00   7.980452e-13
  1.500000e+00   2.459474e-13
  1.600000e+00   8.799147e-14
  1.700000e+00   3.948111e-14
  1.800000e+00   2.195293e-14
  1.900000e+00   1.478200e-14
  2.000000e+00   1.177868e-14
  2.100000e+00   1.100614e-14
  2.200000e+00   1.201965e-14
  2.300000e+00   1.566187e-14
  2.400000e+00   2.586120e-14
  2.500000e+00   2.949732e-01
  2.600000e+00   4.069243e-01
  2.700000e+00   3.886785e-01
  2.800000e+00   3.074267e-01
  2.900000e+00   2.423854e-01
  3.000000e+00   1.977910e-01
  3.100000e+00   1.645642e-01
  3.200000e+00   1.378944e-01
  3.300000e+00   1.166107e-01
  3.400000e+00   1.005860e-01
  3.500000e+00   1.684294e-01
  3.600000e+00   2.600974e-01
  3.700000e+00   3.407868e-01
  3.800000e+00   4.166005e-01
  3.900000e+00   4.881575e-01
  4.000000e+00   5.534211e-01
  4.100000e+00   6.095733e-01
  4.200000e+00   6.543246e-01
  4.300000e+00   6.866777e-01
  4.400000e+00   7.072491e-01
  4.500000e+00   7.181975e-01
  4.600000e+00   7.227375e-01
  4.700000e+00   7.243725e-01
  4.800000e+00   7.261865e-01
  4.900000e+00   7.304457e-01
  5.000000e+00   7.385041e-01

I find the above transmission spectrum don't agreement with my attained fig_2(which attained by plot-show). Anyone can tell me ? Thanks in advance!
Sorry, I don't know how to post picture.
Title: Re: Is this a bugger or functional limitation in the 12.2.r1 version?
Post by: Anders Blom on April 23, 2012, 09:50
That's a bit odd. You will need to post your complete script, so we can check if you 100% set the same parameters as in the tutorial.
Title: Re: Is this a bugger or functional limitation in the 12.2.r1 version?
Post by: Yu Hailin on April 23, 2012, 10:36
This is the full input file.

# -------------------------------------------------------------
# TwoProbe configuration
# -------------------------------------------------------------

# -------------------------------------------------------------
# Left electrode
# -------------------------------------------------------------

# Set up lattice
vector_a = [6.0, 0.0, 0.0]*Angstrom
vector_b = [0.0, 6.0, 0.0]*Angstrom
vector_c = [0.0, 0.0, 6.22841]*Angstrom
left_electrode_lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
left_electrode_elements = [Lithium, Lithium]

# Define coordinates
left_electrode_coordinates = [[ 3.       ,  3.       ,  1.5571025],
                              [ 3.       ,  3.       ,  4.6713075]]*Angstrom

# Set up configuration
left_electrode = BulkConfiguration(
    bravais_lattice=left_electrode_lattice,
    elements=left_electrode_elements,
    cartesian_coordinates=left_electrode_coordinates
    )

# -------------------------------------------------------------
# Right electrode
# -------------------------------------------------------------

# Set up lattice
vector_a = [6.0, 0.0, 0.0]*Angstrom
vector_b = [0.0, 6.0, 0.0]*Angstrom
vector_c = [0.0, 0.0, 6.22841]*Angstrom
right_electrode_lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
right_electrode_elements = [Lithium, Lithium]

# Define coordinates
right_electrode_coordinates = [[ 3.      ,  3.      ,  1.557102],
                               [ 3.      ,  3.      ,  4.671308]]*Angstrom

# Set up configuration
right_electrode = BulkConfiguration(
    bravais_lattice=right_electrode_lattice,
    elements=right_electrode_elements,
    cartesian_coordinates=right_electrode_coordinates
    )

# -------------------------------------------------------------
# Central region
# -------------------------------------------------------------

# Set up lattice
vector_a = [6.0, 0.0, 0.0]*Angstrom
vector_b = [0.0, 6.0, 0.0]*Angstrom
vector_c = [0.0, 0.0, 33.1418095157]*Angstrom
central_region_lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
central_region_elements = [Lithium, Lithium, Lithium, Lithium, Lithium, Hydrogen, Hydrogen,
                           Lithium, Lithium, Lithium, Lithium, Lithium]

# Define coordinates
central_region_coordinates = [[  3.        ,   3.        ,   1.5571025 ],
                              [  3.        ,   3.        ,   4.6713075 ],
                              [  3.        ,   3.        ,   7.76171051],
                              [  3.        ,   3.        ,  10.91847415],
                              [  3.        ,   3.        ,  13.93149176],
                              [  3.        ,   3.        ,  16.15851591],
                              [  3.        ,   3.        ,  16.98337712],
                              [  3.        ,   3.        ,  19.21030765],
                              [  3.        ,   3.        ,  22.2234055 ],
                              [  3.        ,   3.        ,  25.38002278],
                              [  3.        ,   3.        ,  28.47050152],
                              [  3.        ,   3.        ,  31.58470752]]*Angstrom

# Set up configuration
central_region = BulkConfiguration(
    bravais_lattice=central_region_lattice,
    elements=central_region_elements,
    cartesian_coordinates=central_region_coordinates
    )

device_configuration = DeviceConfiguration(
    central_region,
    [left_electrode, right_electrode]
    )

# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
#----------------------------------------
# Numerical Accuracy Settings
#----------------------------------------
left_electrode_numerical_accuracy_parameters = NumericalAccuracyParameters(
    grid_mesh_cutoff=50.0*Hartree,
    k_point_sampling=(1, 1, 100),
    )

right_electrode_numerical_accuracy_parameters = NumericalAccuracyParameters(
    grid_mesh_cutoff=50.0*Hartree,
    k_point_sampling=(1, 1, 100),
    )

device_numerical_accuracy_parameters = NumericalAccuracyParameters(
    grid_mesh_cutoff=50.0*Hartree,
    )

#----------------------------------------
# Electrode Calculators
#----------------------------------------
left_electrode_calculator = LCAOCalculator(
    numerical_accuracy_parameters=left_electrode_numerical_accuracy_parameters,
    )

right_electrode_calculator = LCAOCalculator(
    numerical_accuracy_parameters=right_electrode_numerical_accuracy_parameters,
    )

#----------------------------------------
# Device Calculator
#----------------------------------------
calculator = DeviceLCAOCalculator(
    numerical_accuracy_parameters=device_numerical_accuracy_parameters,
    electrode_calculators=
        [left_electrode_calculator, right_electrode_calculator],
    )

device_configuration.setCalculator(calculator)
nlprint(device_configuration)
device_configuration.update()
nlsave('li_h2.nc', device_configuration)

# -------------------------------------------------------------
# Transmission spectrum
# -------------------------------------------------------------
transmission_spectrum = TransmissionSpectrum(
    configuration=device_configuration,
    energies=numpy.linspace(-5,5,101)*eV,
    kpoints=MonkhorstPackGrid(1,1),
    energy_zero_parameter=AverageFermiLevel,
    infinitesimal=1e-06*eV,
    self_energy_calculator=KrylovSelfEnergy(),
    )
nlsave('li_h2.nc', transmission_spectrum)
nlprint(transmission_spectrum)
Title: Re: Is this a bugger or functional limitation in the 12.2.r1 version?
Post by: Anders Blom on April 23, 2012, 10:47
I have a few ideas, but it will take a little bit of time to test it. You haven't made any mistake, but it's possible that we should increase the electrode to 3 atoms. The only other thing we changed is the tolerance for the SCF loop. So, those two things in combination need to be checked.
Title: Re: Is this a bugger or functional limitation in the 12.2.r1 version?
Post by: Yu Hailin on April 23, 2012, 14:59
Indeed, with increase the tolerance of SCF loop, such as 10e-6, the attained transmission spectrum picture (attained by plot-show) is agreement with the tutorial. Thank you for your advance.

I have another question. For the transmission eigenstate calculation, the quantum number 0, 1, 2 is corresponding the s,p and d robit, respectively?
Title: Re: Is this a bugger or functional limitation in the 12.2.r1 version?
Post by: Anders Blom on April 23, 2012, 15:06
Great that you checked it for us!!! We should include this in the tutorial - although I still think maybe the electrode is too small, and that might fix it too.

Transmission eigenstates: No - the quantum numbers refer to the transmission eigenvalues. See the manual for reference (http://quantumwise.com/documents/manuals/latest/ReferenceManual/index.html/ref.transmissioneigenvalues.html) and http://quantumwise.com/documents/tutorials/latest/MolecularDevice/index.html/chap.analysis.html#sect1.analysis.transe