Recent Posts

Pages: [1] 2 3 ... 10
1
I don't think you need a script, actually. If you open the IV curve in the GUI (NanoLab) you should be able to change the curves to show any spin component.
2
I think we need to look at the exact scripts and output. If you don't want to share them publicly, you can email then.
3
Thank you for your input!

I understand that I may have overgeneralized regarding geometry optimization and script parameters.

My primary focus is on the unexpected behaviour of phonon energies when changing the "processes_per_displacement" parameter within my script.

Using a large value for "processes_per_displacement" (e.g., 26) results in unusually high phonon energies (~12000 meV), while a smaller value (e.g., 4) produces the expected range for graphene (~200 meV).

This discrepancy is puzzling and leads me to question the impact of this parameter.

I am using QuantumATK Version U-2022.12. 
I used the Wigner-Seitz scheme in both cases. I changed only "processes_per_displacement".
4
Sorry.This colour may not be clear as I've just set it.
# -*- coding: utf-8 -*-
# -------------------------------------------------------------
# Two-probe Configuration
# -------------------------------------------------------------

# -------------------------------------------------------------
# Left Electrode
# -------------------------------------------------------------

# Set up lattice
vector_a = [15.0, 0.0, 0.0]*Angstrom
vector_b = [9.18485099360515e-16, 15.0, 0.0]*Angstrom
vector_c = [0.0, 0.0, 7.0637512743]*Angstrom
left_electrode_lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
left_electrode_elements = [Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold,
                           Gold]

# Define coordinates
left_electrode_coordinates = [[  7.1907375    ,   6.671025     ,   1.17729901125],
                              [ 10.0745025    ,   6.671025     ,   1.17729901125],
                              [  5.7488625    ,   9.168435     ,   1.17729901125],
                              [  8.6326275    ,   9.168435     ,   1.17729901125],
                              [  5.7488625    ,   7.503495     ,   3.5318775823 ],
                              [  8.6326125    ,   7.503495     ,   3.5318775823 ],
                              [  4.3069725    ,  10.000905     ,   3.5318775823 ],
                              [  7.1907375    ,  10.000905     ,   3.5318775823 ],
                              [  5.7488625    ,   5.838555     ,   5.88645226305],
                              [  8.6326125    ,   5.838555     ,   5.88645226305],
                              [  4.3069725    ,   8.335965     ,   5.88645226305],
                              [  7.1907375    ,   8.335965     ,   5.88645226305]]*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 = [15.0, 0.0, 0.0]*Angstrom
vector_b = [9.18485099360515e-16, 15.0, 0.0]*Angstrom
vector_c = [0.0, 0.0, 7.063755164599996]*Angstrom
right_electrode_lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
right_electrode_elements = [Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold,
                            Gold]

# Define coordinates
right_electrode_coordinates = [[  6.662341185865,   6.369654444235,   1.17729901125 ],
                               [  9.546091185865,   6.369654444235,   1.17729901125 ],
                               [  5.220451185865,   8.867064444235,   1.17729901125 ],
                               [  8.104216185865,   8.867064444235,   1.17729901125 ],
                               [  6.662341185865,   8.034594444235,   3.53185813085 ],
                               [  9.546091185865,   8.034594444235,   3.53185813085 ],
                               [  5.220451185865,  10.532004444235,   3.53185813085 ],
                               [  8.104216185865,  10.532004444235,   3.53185813085 ],
                               [  8.104216185865,   7.202124444235,   5.88645615335 ],
                               [ 10.987981185865,   7.202124444235,   5.88645615335 ],
                               [  6.662341185865,   9.699534444235,   5.88645615335 ],
                               [  9.546091185865,   9.699534444235,   5.88645615335 ]]*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 = [15.0, 0.0, 0.0]*Angstrom
vector_b = [9.18485099360515e-16, 15.0, 0.0]*Angstrom
vector_c = [3.061616997868383e-15, 3.061616997868383e-15, 38.454696774010465]*Angstrom
central_region_lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
central_region_elements = [Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold,
                           Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold,
                           Gold, Gold, Gold, Hydrogen, Carbon, Hydrogen, Carbon, Carbon,
                           Carbon, Carbon, Hydrogen, Carbon, Hydrogen, Hydrogen, Carbon,
                           Hydrogen, Nitrogen, Hydrogen, Hydrogen, Carbon, Hydrogen, Gold,
                           Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold,
                           Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold,
                           Gold, Gold]

# Define coordinates
central_region_coordinates = [[  7.1907375     ,   6.671025      ,   1.17729901125 ],
                              [ 10.0745025     ,   6.671025      ,   1.17729901125 ],
                              [  5.7488625     ,   9.168435      ,   1.17729901125 ],
                              [  8.6326275     ,   9.168435      ,   1.17729901125 ],
                              [  5.7488625     ,   7.503495      ,   3.5318775823  ],
                              [  8.6326125     ,   7.503495      ,   3.5318775823  ],
                              [  4.3069725     ,  10.000905      ,   3.5318775823  ],
                              [  7.1907375     ,  10.000905      ,   3.5318775823  ],
                              [  5.7488625     ,   5.838555      ,   5.88645226305 ],
                              [  8.6326125     ,   5.838555      ,   5.88645226305 ],
                              [  4.3069725     ,   8.335965      ,   5.88645226305 ],
                              [  7.1907375     ,   8.335965      ,   5.88645226305 ],
                              [  7.1907375     ,   6.671025      ,   8.24105028555 ],
                              [ 10.0745025     ,   6.671025      ,   8.24105028555 ],
                              [  5.7488625     ,   9.168435      ,   8.24105028555 ],
                              [  8.6326275     ,   9.168435      ,   8.24105028555 ],
                              [  5.7488625     ,   7.503495      ,  10.59560940515 ],
                              [  8.6326125     ,   7.503495      ,  10.59560940515 ],
                              [  4.3069725     ,  10.000905      ,  10.59560940515 ],
                              [  7.1907375     ,  10.000905      ,  10.59560940515 ],
                              [  5.7488625     ,   5.838555      ,  12.95016852475 ],
                              [  8.6326125     ,   5.838555      ,  12.95016852475 ],
                              [  4.3069725     ,   8.335965      ,  12.95016852475 ],
                              [  7.1907375     ,   8.335965      ,  12.95016852475 ],
                              [  7.1907375     ,   6.671025      ,  14.66018439715 ],
                              [  7.5971775     ,   9.163875      ,  16.53717151635 ],
                              [  7.6306125     ,   7.07118       ,  16.62544219645 ],
                              [  7.7716125     ,   4.999095      ,  17.08099515545 ],
                              [  7.7615325     ,   8.356965      ,  17.14323979545 ],
                              [  7.8641325     ,   5.945415      ,  17.45500763605 ],
                              [  8.1154275     ,   8.5434        ,  18.49390958055 ],
                              [  8.2241325     ,   6.14085       ,  18.80163151955 ],
                              [  8.1996375     ,   9.502425      ,  18.84049551665 ],
                              [  8.3453025     ,   7.43991       ,  19.35090156465 ],
                              [  8.3952975     ,   5.313585      ,  19.37848372075 ],
                              [ 10.6930275     ,   7.5312        ,  20.46784272655 ],
                              [  8.6974575     ,   7.629105      ,  20.78906397185 ],
                              [  8.7963525     ,   8.69124       ,  21.03131233015 ],
                              [ 10.0186125     ,   7.044675      ,  21.06297929075 ],
                              [  6.6569775     ,   7.51299       ,  21.56377632245 ],
                              [  7.5273975     ,   5.97462       ,  21.64905147925 ],
                              [  7.6306125     ,   7.056435      ,  21.75506188175 ],
                              [ 10.2633675     ,   7.272105      ,  22.02944403545 ],
                              [  8.104216185865,   7.202124444235,  23.79450848656 ],
                              [  6.662341185865,   6.369654444235,  25.50452435896 ],
                              [  9.546091185865,   6.369654444235,  25.50452435896 ],
                              [  5.220451185865,   8.867064444235,  25.50452435896 ],
                              [  8.104216185865,   8.867064444235,  25.50452435896 ],
                              [  6.662341185865,   8.034594444235,  27.85908347856 ],
                              [  9.546091185865,   8.034594444235,  27.85908347856 ],
                              [  5.220451185865,  10.532004444235,  27.85908347856 ],
                              [  8.104216185865,  10.532004444235,  27.85908347856 ],
                              [  8.104216185865,   7.202124444235,  30.21364259816 ],
                              [ 10.987981185865,   7.202124444235,  30.21364259816 ],
                              [  6.662341185865,   9.699534444235,  30.21364259816 ],
                              [  9.546091185865,   9.699534444235,  30.21364259816 ],
                              [  6.662341185865,   6.369654444235,  32.56824062066 ],
                              [  9.546091185865,   6.369654444235,  32.56824062066 ],
                              [  5.220451185865,   8.867064444235,  32.56824062066 ],
                              [  8.104216185865,   8.867064444235,  32.56824062066 ],
                              [  6.662341185865,   8.034594444235,  34.92279974026 ],
                              [  9.546091185865,   8.034594444235,  34.92279974026 ],
                              [  5.220451185865,  10.532004444235,  34.92279974026 ],
                              [  8.104216185865,  10.532004444235,  34.92279974026 ],
                              [  8.104216185865,   7.202124444235,  37.27739776276 ],
                              [ 10.987981185865,   7.202124444235,  37.27739776276 ],
                              [  6.662341185865,   9.699534444235,  37.27739776276 ],
                              [  9.546091185865,   9.699534444235,  37.27739776276 ]]*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],
    equivalent_electrode_lengths=[7.0637512743, 7.0637551646]*Angstrom,
    transverse_electrode_repetitions=[[1, 1], [1, 1]],
    )

# Add tags
device_configuration.addTags('Selection 0', [ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12,
                                             13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
                                             26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
                                             39, 40, 41, 42])
device_configuration.addTags('Selection 1', [43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
                                             56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67])

# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
#----------------------------------------
# Basis Set
#----------------------------------------
HydrogenBasis = OpenMXBasisSet(
    element=PeriodicTable.Hydrogen,
    filename="openmx/pao/H5.0.pao.zip",
    atomic_species="s2p1",
    hubbard_u=[0.0, 0.0, 0.0]*eV,
    dft_half_parameters=Automatic,
    filling_method=SphericalSymmetric,
    onsite_spin_orbit_split=[0.0, 0.0, 0.0]*eV,
    pseudopotential=NormConservingPseudoPotential("normconserving/upf2/H_PBE13.upf.zip"),
    )

CarbonBasis = OpenMXBasisSet(
    element=PeriodicTable.Carbon,
    filename="openmx/pao/C6.0.pao.zip",
    atomic_species="s2p2d1",
    hubbard_u=[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]*eV,
    pseudopotential=NormConservingPseudoPotential("normconserving/upf2/C_PBE13.upf.zip"),
    )

NitrogenBasis = OpenMXBasisSet(
    element=PeriodicTable.Nitrogen,
    filename="openmx/pao/N6.0.pao.zip",
    atomic_species="s2p2d1",
    hubbard_u=[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]*eV,
    pseudopotential=NormConservingPseudoPotential("normconserving/upf2/N_PBE13.upf.zip"),
    )

basis_set = [
    HydrogenBasis,
    CarbonBasis,
    NitrogenBasis,
    BasisGGAPseudoDojoSO.Gold_Medium,
    ]

#----------------------------------------
# Exchange-Correlation
#----------------------------------------
exchange_correlation = SOGGA.PBE

#----------------------------------------
# Numerical Accuracy Settings
#----------------------------------------
device_k_point_sampling = MonkhorstPackGrid(
    nc=100,
    force_timereversal=False,
    )
device_numerical_accuracy_parameters = NumericalAccuracyParameters(
    k_point_sampling=device_k_point_sampling,
    exx_grid_cutoff=75.0*Hartree,
    density_mesh_cutoff=75.0*Hartree,
    )

#----------------------------------------
# Device Calculator
#----------------------------------------
calculator = DeviceLCAOCalculator(
    basis_set=basis_set,
    exchange_correlation=exchange_correlation,
    numerical_accuracy_parameters=device_numerical_accuracy_parameters,
    )

device_configuration.setCalculator(calculator)

# -------------------------------------------------------------
# Initial State
# -------------------------------------------------------------
scaled_spins = [
    (0, 1.0, 0.0*Degrees, 0.0*Degrees),
    (1, 1.0, 0.0*Degrees, 0.0*Degrees),
    (2, 1.0, 0.0*Degrees, 0.0*Degrees),
    (3, 1.0, 0.0*Degrees, 0.0*Degrees),
    (4, 1.0, 0.0*Degrees, 0.0*Degrees),
    (5, 1.0, 0.0*Degrees, 0.0*Degrees),
    (6, 1.0, 0.0*Degrees, 0.0*Degrees),
    (7, 1.0, 0.0*Degrees, 0.0*Degrees),
    (8, 1.0, 0.0*Degrees, 0.0*Degrees),
    (9, 1.0, 0.0*Degrees, 0.0*Degrees),
    (10, 1.0, 0.0*Degrees, 0.0*Degrees),
    (11, 1.0, 0.0*Degrees, 0.0*Degrees),
    (12, 1.0, 0.0*Degrees, 0.0*Degrees),
    (13, 1.0, 0.0*Degrees, 0.0*Degrees),
    (14, 1.0, 0.0*Degrees, 0.0*Degrees),
    (15, 1.0, 0.0*Degrees, 0.0*Degrees),
    (16, 1.0, 0.0*Degrees, 0.0*Degrees),
    (17, 1.0, 0.0*Degrees, 0.0*Degrees),
    (18, 1.0, 0.0*Degrees, 0.0*Degrees),
    (19, 1.0, 0.0*Degrees, 0.0*Degrees),
    (20, 1.0, 0.0*Degrees, 0.0*Degrees),
    (21, 1.0, 0.0*Degrees, 0.0*Degrees),
    (22, 1.0, 0.0*Degrees, 0.0*Degrees),
    (23, 1.0, 0.0*Degrees, 0.0*Degrees),
    (24, 1.0, 0.0*Degrees, 0.0*Degrees),
    (25, 0.0, 0.0*Degrees, 0.0*Degrees),
    (26, 0.0, 0.0*Degrees, 0.0*Degrees),
    (27, 0.0, 0.0*Degrees, 0.0*Degrees),
    (28, 0.0, 0.0*Degrees, 0.0*Degrees),
    (29, 0.0, 0.0*Degrees, 0.0*Degrees),
    (30, 0.0, 0.0*Degrees, 0.0*Degrees),
    (31, 0.0, 0.0*Degrees, 0.0*Degrees),
    (32, 0.0, 0.0*Degrees, 0.0*Degrees),
    (33, 0.0, 0.0*Degrees, 0.0*Degrees),
    (34, 0.0, 0.0*Degrees, 0.0*Degrees),
    (35, 0.0, 0.0*Degrees, 0.0*Degrees),
    (36, 0.0, 0.0*Degrees, 0.0*Degrees),
    (37, 0.0, 0.0*Degrees, 0.0*Degrees),
    (38, 0.0, 0.0*Degrees, 0.0*Degrees),
    (39, 0.0, 0.0*Degrees, 0.0*Degrees),
    (40, 0.0, 0.0*Degrees, 0.0*Degrees),
    (41, 0.0, 0.0*Degrees, 0.0*Degrees),
    (42, 0.0, 0.0*Degrees, 0.0*Degrees),
    (43, 1.0, 0.0*Degrees, 0.0*Degrees),
    (44, 1.0, 0.0*Degrees, 0.0*Degrees),
    (45, 1.0, 0.0*Degrees, 0.0*Degrees),
    (46, 1.0, 0.0*Degrees, 0.0*Degrees),
    (47, 1.0, 0.0*Degrees, 0.0*Degrees),
    (48, 1.0, 0.0*Degrees, 0.0*Degrees),
    (49, 1.0, 0.0*Degrees, 0.0*Degrees),
    (50, 1.0, 0.0*Degrees, 0.0*Degrees),
    (51, 1.0, 0.0*Degrees, 0.0*Degrees),
    (52, 1.0, 0.0*Degrees, 0.0*Degrees),
    (53, 1.0, 0.0*Degrees, 0.0*Degrees),
    (54, 1.0, 0.0*Degrees, 0.0*Degrees),
    (55, 1.0, 0.0*Degrees, 0.0*Degrees),
    (56, 1.0, 0.0*Degrees, 0.0*Degrees),
    (57, 1.0, 0.0*Degrees, 0.0*Degrees),
    (58, 1.0, 0.0*Degrees, 0.0*Degrees),
    (59, 1.0, 0.0*Degrees, 0.0*Degrees),
    (60, 1.0, 0.0*Degrees, 0.0*Degrees),
    (61, 1.0, 0.0*Degrees, 0.0*Degrees),
    (62, 1.0, 0.0*Degrees, 0.0*Degrees),
    (63, 1.0, 0.0*Degrees, 0.0*Degrees),
    (64, 1.0, 0.0*Degrees, 0.0*Degrees),
    (65, 1.0, 0.0*Degrees, 0.0*Degrees),
    (66, 1.0, 0.0*Degrees, 0.0*Degrees),
    (67, 1.0, 0.0*Degrees, 0.0*Degrees),
]
initial_spin = InitialSpin(scaled_spins=scaled_spins)

device_configuration.setCalculator(
    calculator,
    initial_spin=initial_spin,
)
device_configuration.update()
nlsave('iv-SOGGA-p-1.hdf5', device_configuration)
nlprint(device_configuration)

# -------------------------------------------------------------
# IV Curve
# -------------------------------------------------------------
biases = [0.000000, 0.200000, 0.400000, 0.600000, 0.800000, 1.000000,
          1.200000, 1.400000, 1.600000, 1.800000, 2.000000]*Volt

kpoint_grid = KpointDensity(
    density_a=2.38732414638*Angstrom,
    density_c=0.0*Angstrom,
    force_timereversal=False,
    )

iv_curve = IVCurve(
    configuration=device_configuration,
    biases=biases,
    energies=numpy.linspace(-2,2,101)*eV,
    kpoints=kpoint_grid,
    self_energy_calculator=RecursionSelfEnergy(),
    energy_zero_parameter=AverageFermiLevel,
    infinitesimal=1e-06*eV,
    selfconsistent_configurations_filename_prefix="ivcurve_selfconsistent_configuration_",
    log_filename_prefix="ivcurve_"
    )
nlsave('iv-SOGGA-p-1.hdf5', iv_curve)
nlprint(iv_curve)
5
Thank you very much for your answer, as I was recently interested in this article (https://journals.aps.org/prb/abstract/10.1103/PhysRevB.108.125419) that's why I wanted to try to find out how to calculate the spin-up and spin-down currents after introducing the spin-orbit coupling,as I wanted to transform the theoretical model into a device model to calculate the transport properties.
The thing that bothers me the most is that I don't know how to project the current up or down in a script.
Here is my script.I'm looking forward to your replies and guidance

# -*- coding: utf-8 -*-
# -------------------------------------------------------------
# Two-probe Configuration
# -------------------------------------------------------------

# -------------------------------------------------------------
# Left Electrode
# -------------------------------------------------------------

# Set up lattice
vector_a = [15.0, 0.0, 0.0]*Angstrom
vector_b = [9.18485099360515e-16, 15.0, 0.0]*Angstrom
vector_c = [0.0, 0.0, 7.0637512743]*Angstrom
left_electrode_lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
left_electrode_elements = [Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold,
                           Gold]

# Define coordinates
left_electrode_coordinates = [[  7.1907375    ,   6.671025     ,   1.17729901125],
                              [ 10.0745025    ,   6.671025     ,   1.17729901125],
                              [  5.7488625    ,   9.168435     ,   1.17729901125],
                              [  8.6326275    ,   9.168435     ,   1.17729901125],
                              [  5.7488625    ,   7.503495     ,   3.5318775823 ],
                              [  8.6326125    ,   7.503495     ,   3.5318775823 ],
                              [  4.3069725    ,  10.000905     ,   3.5318775823 ],
                              [  7.1907375    ,  10.000905     ,   3.5318775823 ],
                              [  5.7488625    ,   5.838555     ,   5.88645226305],
                              [  8.6326125    ,   5.838555     ,   5.88645226305],
                              [  4.3069725    ,   8.335965     ,   5.88645226305],
                              [  7.1907375    ,   8.335965     ,   5.88645226305]]*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 = [15.0, 0.0, 0.0]*Angstrom
vector_b = [9.18485099360515e-16, 15.0, 0.0]*Angstrom
vector_c = [0.0, 0.0, 7.063755164599996]*Angstrom
right_electrode_lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
right_electrode_elements = [Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold,
                            Gold]

# Define coordinates
right_electrode_coordinates = [[  6.662341185865,   6.369654444235,   1.17729901125 ],
                               [  9.546091185865,   6.369654444235,   1.17729901125 ],
                               [  5.220451185865,   8.867064444235,   1.17729901125 ],
                               [  8.104216185865,   8.867064444235,   1.17729901125 ],
                               [  6.662341185865,   8.034594444235,   3.53185813085 ],
                               [  9.546091185865,   8.034594444235,   3.53185813085 ],
                               [  5.220451185865,  10.532004444235,   3.53185813085 ],
                               [  8.104216185865,  10.532004444235,   3.53185813085 ],
                               [  8.104216185865,   7.202124444235,   5.88645615335 ],
                               [ 10.987981185865,   7.202124444235,   5.88645615335 ],
                               [  6.662341185865,   9.699534444235,   5.88645615335 ],
                               [  9.546091185865,   9.699534444235,   5.88645615335 ]]*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 = [15.0, 0.0, 0.0]*Angstrom
vector_b = [9.18485099360515e-16, 15.0, 0.0]*Angstrom
vector_c = [3.061616997868383e-15, 3.061616997868383e-15, 38.454696774010465]*Angstrom
central_region_lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
central_region_elements = [Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold,
                           Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold,
                           Gold, Gold, Gold, Hydrogen, Carbon, Hydrogen, Carbon, Carbon,
                           Carbon, Carbon, Hydrogen, Carbon, Hydrogen, Hydrogen, Carbon,
                           Hydrogen, Nitrogen, Hydrogen, Hydrogen, Carbon, Hydrogen, Gold,
                           Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold,
                           Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold,
                           Gold, Gold]

# Define coordinates
central_region_coordinates = [[  7.1907375     ,   6.671025      ,   1.17729901125 ],
                              [ 10.0745025     ,   6.671025      ,   1.17729901125 ],
                              [  5.7488625     ,   9.168435      ,   1.17729901125 ],
                              [  8.6326275     ,   9.168435      ,   1.17729901125 ],
                              [  5.7488625     ,   7.503495      ,   3.5318775823  ],
                              [  8.6326125     ,   7.503495      ,   3.5318775823  ],
                              [  4.3069725     ,  10.000905      ,   3.5318775823  ],
                              [  7.1907375     ,  10.000905      ,   3.5318775823  ],
                              [  5.7488625     ,   5.838555      ,   5.88645226305 ],
                              [  8.6326125     ,   5.838555      ,   5.88645226305 ],
                              [  4.3069725     ,   8.335965      ,   5.88645226305 ],
                              [  7.1907375     ,   8.335965      ,   5.88645226305 ],
                              [  7.1907375     ,   6.671025      ,   8.24105028555 ],
                              [ 10.0745025     ,   6.671025      ,   8.24105028555 ],
                              [  5.7488625     ,   9.168435      ,   8.24105028555 ],
                              [  8.6326275     ,   9.168435      ,   8.24105028555 ],
                              [  5.7488625     ,   7.503495      ,  10.59560940515 ],
                              [  8.6326125     ,   7.503495      ,  10.59560940515 ],
                              [  4.3069725     ,  10.000905      ,  10.59560940515 ],
                              [  7.1907375     ,  10.000905      ,  10.59560940515 ],
                              [  5.7488625     ,   5.838555      ,  12.95016852475 ],
                              [  8.6326125     ,   5.838555      ,  12.95016852475 ],
                              [  4.3069725     ,   8.335965      ,  12.95016852475 ],
                              [  7.1907375     ,   8.335965      ,  12.95016852475 ],
                              [  7.1907375     ,   6.671025      ,  14.66018439715 ],
                              [  7.5971775     ,   9.163875      ,  16.53717151635 ],
                              [  7.6306125     ,   7.07118       ,  16.62544219645 ],
                              [  7.7716125     ,   4.999095      ,  17.08099515545 ],
                              [  7.7615325     ,   8.356965      ,  17.14323979545 ],
                              [  7.8641325     ,   5.945415      ,  17.45500763605 ],
                              [  8.1154275     ,   8.5434        ,  18.49390958055 ],
                              [  8.2241325     ,   6.14085       ,  18.80163151955 ],
                              [  8.1996375     ,   9.502425      ,  18.84049551665 ],
                              [  8.3453025     ,   7.43991       ,  19.35090156465 ],
                              [  8.3952975     ,   5.313585      ,  19.37848372075 ],
                              [ 10.6930275     ,   7.5312        ,  20.46784272655 ],
                              [  8.6974575     ,   7.629105      ,  20.78906397185 ],
                              [  8.7963525     ,   8.69124       ,  21.03131233015 ],
                              [ 10.0186125     ,   7.044675      ,  21.06297929075 ],
                              [  6.6569775     ,   7.51299       ,  21.56377632245 ],
                              [  7.5273975     ,   5.97462       ,  21.64905147925 ],
                              [  7.6306125     ,   7.056435      ,  21.75506188175 ],
                              [ 10.2633675     ,   7.272105      ,  22.02944403545 ],
                              [  8.104216185865,   7.202124444235,  23.79450848656 ],
                              [  6.662341185865,   6.369654444235,  25.50452435896 ],
                              [  9.546091185865,   6.369654444235,  25.50452435896 ],
                              [  5.220451185865,   8.867064444235,  25.50452435896 ],
                              [  8.104216185865,   8.867064444235,  25.50452435896 ],
                              [  6.662341185865,   8.034594444235,  27.85908347856 ],
                              [  9.546091185865,   8.034594444235,  27.85908347856 ],
                              [  5.220451185865,  10.532004444235,  27.85908347856 ],
                              [  8.104216185865,  10.532004444235,  27.85908347856 ],
                              [  8.104216185865,   7.202124444235,  30.21364259816 ],
                              [ 10.987981185865,   7.202124444235,  30.21364259816 ],
                              [  6.662341185865,   9.699534444235,  30.21364259816 ],
                              [  9.546091185865,   9.699534444235,  30.21364259816 ],
                              [  6.662341185865,   6.369654444235,  32.56824062066 ],
                              [  9.546091185865,   6.369654444235,  32.56824062066 ],
                              [  5.220451185865,   8.867064444235,  32.56824062066 ],
                              [  8.104216185865,   8.867064444235,  32.56824062066 ],
                              [  6.662341185865,   8.034594444235,  34.92279974026 ],
                              [  9.546091185865,   8.034594444235,  34.92279974026 ],
                              [  5.220451185865,  10.532004444235,  34.92279974026 ],
                              [  8.104216185865,  10.532004444235,  34.92279974026 ],
                              [  8.104216185865,   7.202124444235,  37.27739776276 ],
                              [ 10.987981185865,   7.202124444235,  37.27739776276 ],
                              [  6.662341185865,   9.699534444235,  37.27739776276 ],
                              [  9.546091185865,   9.699534444235,  37.27739776276 ]]*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],
    equivalent_electrode_lengths=[7.0637512743, 7.0637551646]*Angstrom,
    transverse_electrode_repetitions=[[1, 1], [1, 1]],
    )

# Add tags
device_configuration.addTags('Selection 0', [ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12,
                                             13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
                                             26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
                                             39, 40, 41, 42])
device_configuration.addTags('Selection 1', [43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
                                             56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67])

# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
#----------------------------------------
# Basis Set
#----------------------------------------
HydrogenBasis = OpenMXBasisSet(
    element=PeriodicTable.Hydrogen,
    filename="openmx/pao/H5.0.pao.zip",
    atomic_species="s2p1",
    hubbard_u=[0.0, 0.0, 0.0]*eV,
    dft_half_parameters=Automatic,
    filling_method=SphericalSymmetric,
    onsite_spin_orbit_split=[0.0, 0.0, 0.0]*eV,
    pseudopotential=NormConservingPseudoPotential("normconserving/upf2/H_PBE13.upf.zip"),
    )

CarbonBasis = OpenMXBasisSet(
    element=PeriodicTable.Carbon,
    filename="openmx/pao/C6.0.pao.zip",
    atomic_species="s2p2d1",
    hubbard_u=[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]*eV,
    pseudopotential=NormConservingPseudoPotential("normconserving/upf2/C_PBE13.upf.zip"),
    )

NitrogenBasis = OpenMXBasisSet(
    element=PeriodicTable.Nitrogen,
    filename="openmx/pao/N6.0.pao.zip",
    atomic_species="s2p2d1",
    hubbard_u=[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]*eV,
    pseudopotential=NormConservingPseudoPotential("normconserving/upf2/N_PBE13.upf.zip"),
    )

basis_set = [
    HydrogenBasis,
    CarbonBasis,
    NitrogenBasis,
    BasisGGAPseudoDojoSO.Gold_Medium,
    ]

#----------------------------------------
# Exchange-Correlation
#----------------------------------------
exchange_correlation = SOGGA.PBE

#----------------------------------------
# Numerical Accuracy Settings
#----------------------------------------
device_k_point_sampling = MonkhorstPackGrid(
    nc=100,
    force_timereversal=False,
    )
device_numerical_accuracy_parameters = NumericalAccuracyParameters(
    k_point_sampling=device_k_point_sampling,
    exx_grid_cutoff=75.0*Hartree,
    density_mesh_cutoff=75.0*Hartree,
    )

#----------------------------------------
# Device Calculator
#----------------------------------------
calculator = DeviceLCAOCalculator(
    basis_set=basis_set,
    exchange_correlation=exchange_correlation,
    numerical_accuracy_parameters=device_numerical_accuracy_parameters,
    )

device_configuration.setCalculator(calculator)

# -------------------------------------------------------------
# Initial State
# -------------------------------------------------------------
scaled_spins = [
    (0, 1.0, 0.0*Degrees, 0.0*Degrees),
    (1, 1.0, 0.0*Degrees, 0.0*Degrees),
    (2, 1.0, 0.0*Degrees, 0.0*Degrees),
    (3, 1.0, 0.0*Degrees, 0.0*Degrees),
    (4, 1.0, 0.0*Degrees, 0.0*Degrees),
    (5, 1.0, 0.0*Degrees, 0.0*Degrees),
    (6, 1.0, 0.0*Degrees, 0.0*Degrees),
    (7, 1.0, 0.0*Degrees, 0.0*Degrees),
    (8, 1.0, 0.0*Degrees, 0.0*Degrees),
    (9, 1.0, 0.0*Degrees, 0.0*Degrees),
    (10, 1.0, 0.0*Degrees, 0.0*Degrees),
    (11, 1.0, 0.0*Degrees, 0.0*Degrees),
    (12, 1.0, 0.0*Degrees, 0.0*Degrees),
    (13, 1.0, 0.0*Degrees, 0.0*Degrees),
    (14, 1.0, 0.0*Degrees, 0.0*Degrees),
    (15, 1.0, 0.0*Degrees, 0.0*Degrees),
    (16, 1.0, 0.0*Degrees, 0.0*Degrees),
    (17, 1.0, 0.0*Degrees, 0.0*Degrees),
    (18, 1.0, 0.0*Degrees, 0.0*Degrees),
    (19, 1.0, 0.0*Degrees, 0.0*Degrees),
    (20, 1.0, 0.0*Degrees, 0.0*Degrees),
    (21, 1.0, 0.0*Degrees, 0.0*Degrees),
    (22, 1.0, 0.0*Degrees, 0.0*Degrees),
    (23, 1.0, 0.0*Degrees, 0.0*Degrees),
    (24, 1.0, 0.0*Degrees, 0.0*Degrees),
    (25, 0.0, 0.0*Degrees, 0.0*Degrees),
    (26, 0.0, 0.0*Degrees, 0.0*Degrees),
    (27, 0.0, 0.0*Degrees, 0.0*Degrees),
    (28, 0.0, 0.0*Degrees, 0.0*Degrees),
    (29, 0.0, 0.0*Degrees, 0.0*Degrees),
    (30, 0.0, 0.0*Degrees, 0.0*Degrees),
    (31, 0.0, 0.0*Degrees, 0.0*Degrees),
    (32, 0.0, 0.0*Degrees, 0.0*Degrees),
    (33, 0.0, 0.0*Degrees, 0.0*Degrees),
    (34, 0.0, 0.0*Degrees, 0.0*Degrees),
    (35, 0.0, 0.0*Degrees, 0.0*Degrees),
    (36, 0.0, 0.0*Degrees, 0.0*Degrees),
    (37, 0.0, 0.0*Degrees, 0.0*Degrees),
    (38, 0.0, 0.0*Degrees, 0.0*Degrees),
    (39, 0.0, 0.0*Degrees, 0.0*Degrees),
    (40, 0.0, 0.0*Degrees, 0.0*Degrees),
    (41, 0.0, 0.0*Degrees, 0.0*Degrees),
    (42, 0.0, 0.0*Degrees, 0.0*Degrees),
    (43, 1.0, 0.0*Degrees, 0.0*Degrees),
    (44, 1.0, 0.0*Degrees, 0.0*Degrees),
    (45, 1.0, 0.0*Degrees, 0.0*Degrees),
    (46, 1.0, 0.0*Degrees, 0.0*Degrees),
    (47, 1.0, 0.0*Degrees, 0.0*Degrees),
    (48, 1.0, 0.0*Degrees, 0.0*Degrees),
    (49, 1.0, 0.0*Degrees, 0.0*Degrees),
    (50, 1.0, 0.0*Degrees, 0.0*Degrees),
    (51, 1.0, 0.0*Degrees, 0.0*Degrees),
    (52, 1.0, 0.0*Degrees, 0.0*Degrees),
    (53, 1.0, 0.0*Degrees, 0.0*Degrees),
    (54, 1.0, 0.0*Degrees, 0.0*Degrees),
    (55, 1.0, 0.0*Degrees, 0.0*Degrees),
    (56, 1.0, 0.0*Degrees, 0.0*Degrees),
    (57, 1.0, 0.0*Degrees, 0.0*Degrees),
    (58, 1.0, 0.0*Degrees, 0.0*Degrees),
    (59, 1.0, 0.0*Degrees, 0.0*Degrees),
    (60, 1.0, 0.0*Degrees, 0.0*Degrees),
    (61, 1.0, 0.0*Degrees, 0.0*Degrees),
    (62, 1.0, 0.0*Degrees, 0.0*Degrees),
    (63, 1.0, 0.0*Degrees, 0.0*Degrees),
    (64, 1.0, 0.0*Degrees, 0.0*Degrees),
    (65, 1.0, 0.0*Degrees, 0.0*Degrees),
    (66, 1.0, 0.0*Degrees, 0.0*Degrees),
    (67, 1.0, 0.0*Degrees, 0.0*Degrees),
]
initial_spin = InitialSpin(scaled_spins=scaled_spins)

device_configuration.setCalculator(
    calculator,
    initial_spin=initial_spin,
)
device_configuration.update()
nlsave('iv-SOGGA-p-1.hdf5', device_configuration)
nlprint(device_configuration)

# -------------------------------------------------------------
# IV Curve
# -------------------------------------------------------------
biases = [0.000000, 0.200000, 0.400000, 0.600000, 0.800000, 1.000000,
          1.200000, 1.400000, 1.600000, 1.800000, 2.000000]*Volt

kpoint_grid = KpointDensity(
    density_a=2.38732414638*Angstrom,
    density_c=0.0*Angstrom,
    force_timereversal=False,
    )

iv_curve = IVCurve(
    configuration=device_configuration,
    biases=biases,
    energies=numpy.linspace(-2,2,101)*eV,
    kpoints=kpoint_grid,
    self_energy_calculator=RecursionSelfEnergy(),
    energy_zero_parameter=AverageFermiLevel,
    infinitesimal=1e-06*eV,
    selfconsistent_configurations_filename_prefix="ivcurve_selfconsistent_configuration_",
    log_filename_prefix="ivcurve_"
    )
nlsave('iv-SOGGA-p-1.hdf5', iv_curve)
nlprint(iv_curve)
6
All doable, yes
7
The script is rather specific to the calculation done with an explicit defect. In your case, you should go back to definitions in the theory section; looking at the line which actually defines the MFP, you can evaluate all quantities for your system and extract the MFP as

(R(L)/Rc-1) = L/MFP

(all depending on energy).

Here Rc is the conductance of the perfect system, and R(L) = 1/T(L) is computed for a device where L is the length of the part that has been thermally perturbed. A better option might even be to plot R(L) as a function of L, which should be a linear relation and you can get MFP from the slope.
8
With 5 licenses you can only parallelize over up 5 concurrent saddle searches but each on of these can run on multiple cores, using MPI parallelization. You do however have to set processes_per_saddle_search=N correctly in the ParallelParameters object attached to the calculator (cf. https://docs.quantumatk.com/manual/Types/AdaptiveKineticMonteCarlo/AdaptiveKineticMonteCarlo.html#parallel-saddle-searches), so that 5*N = M = the total number of MPI processes you spawn (mpiexec -n M).
9
It shouldn't matter, but there is a lot going on here. What is the repetition in the calculation that gives good results? Do you use the Wigner-Seitz scheme in both cases? Are there convergence issues indicated in any log file? Code version (we fixed some symmetry-related problems that gave negative energies recently)?

There is no real need to optimize the geometry since the structure is symmetric (fractional coordinates constrained to 1/3 and 2/3). Yes, you can optimize the lattice constant, but that would be a simple equation of state (vary the parameter a for 5-10 runs and fit a parabola), much more efficient.

Do you need spin-polarization? Not sure it makes a difference, just takes longer... I try without first, at least, while testing other parameters.
10
It was removed because it was a really exotic feature not many people used. You can still perform the analysis of course, you just need to script it, either from the Workflow Builder or, almost easier, directly by hand. Of course it was a lot more fun when you could just click, because now you need to run multiple scripts just to check how many finite transmission channels you have, and then get the eigenstate, and drag it into the Viewer...

Code: python
device_configuration = nlread("myfile.hdf5", DeviceConfiguration)[-1]
energy = 0.0*eV
eigenvalues = TransmissionEigenvalues(device_configuration, energy)
nlprint(eigenvalues)

Then second run

Code: python
device_configuration = nlread("myfile.hdf5", DeviceConfiguration)[-1]
# Same energy as before
energy = 0.0*eV
# List here the interesting quantum numbers
quantum_numbers = [0,1,2]
for quantum_number in quantum_number:
    eigenstate = TransmissionEigenstate(device_configuration, energy, quantum_number=quantum_number)
    nlsave('myfile.hdf5',eigenstate)
Pages: [1] 2 3 ... 10