### Author Topic: single electron transistor  (Read 1304 times)

0 Members and 1 Guest are viewing this topic.

#### Kenta

• New ATK user
• Posts: 2
• Country:
• Reputation: 0
• student
##### single electron transistor
« on: December 15, 2020, 05:33 »
I have done that tutorial and the Quantum wise tutorial "Benzene Single-Electron Transistor". I created  SET device using those and Questions and Answers "Topic: Gate ineffective in tunnel junction device, ? .You can find the code below. Please check it. Now, I have 5 questions. 1、Does the device I made work as a SET? 2. I have made gold electrodes appropriately, but do the electrodes change the characteristics of the device? If you don't mind, can you tell me how to make suitable electrodes? 3. In my device, the gate voltage is applied only to the center of the device, but should there be gate voltage under the gold electrodes as well? 4,Also, in the case of SETs, I think they work at low temperatures, but by lowering the temperature of the electrodes, does that mean that the temperature of the device is lowered? 5、Do you think about many-body effects in Quantum ATK? Is Coulomb blanket considered when calculating the device? Finally, I would like to see the IV characteristics of SETs and their respective capacitances. Thank you for your time.
Code
``````# -*- coding: utf-8 -*-
# -------------------------------------------------------------
# Two-probe Configuration
# -------------------------------------------------------------

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

# Set up lattice
vector_a = [12.0, 0.0, 0.0]*Angstrom
vector_b = [0.0, 12.0, 0.0]*Angstrom
vector_c = [0.0, 0.0, 5.88171421]*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 = [[ 5.89496938918 ,  6.369816335081,  0.735242827216],
[ 5.89496938918 ,  9.310673438036,  0.735242827216],
[ 3.81546938918 ,  4.899387783604,  2.205671378694],
[ 3.81546938918 ,  7.840244886558,  2.205671378694],
[ 7.97446938918 ,  4.899387783604,  2.205671378694],
[ 7.97446938918 ,  7.840244886559,  2.205671378694],
[ 5.89496938918 ,  6.369816335081,  3.676099930171],
[ 5.89496938918 ,  9.310673438036,  3.676099930171],
[ 7.97446938918 ,  4.899387783604,  5.146528481649],
[ 7.97446938918 ,  7.840244886558,  5.146528481649],
[ 3.81546938918 ,  4.899387783604,  5.146528481649],
[ 3.81546938918 ,  7.840244886558,  5.146528481648]]*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 = [12.0, 0.0, 0.0]*Angstrom
vector_b = [0.0, 12.0, 0.0]*Angstrom
vector_c = [0.0, 0.0, 5.88171421]*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 = [[ 7.97447       ,  4.899387172784,  0.735185728352],
[ 7.97447       ,  7.840244275739,  0.735185728352],
[ 3.81547       ,  4.899387172784,  0.735185728352],
[ 3.81547       ,  7.840244275739,  0.735185728352],
[ 5.89497       ,  9.310672827216,  2.205614279829],
[ 5.89497       ,  6.369815724261,  2.205614279829],
[ 7.97447       ,  7.840244275739,  3.676042831306],
[ 3.81547       ,  7.840244275739,  3.676042831306],
[ 7.97447       ,  4.899387172784,  3.676042831306],
[ 3.81547       ,  4.899387172784,  3.676042831306],
[ 5.89497       ,  9.310672827216,  5.146471382784],
[ 5.89497       ,  6.369815724261,  5.146471382784]]*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 = [12.0, 0.0, 0.0]*Angstrom
vector_b = [0.0, 12.0, 0.0]*Angstrom
vector_c = [0.0, 0.0, 25.233928324954178]*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, Hydrogen, Carbon, Hydrogen, Hydrogen, Carbon, Carbon, Carbon,
Carbon, Hydrogen, Hydrogen, Carbon, Hydrogen, Gold, Gold, Gold,
Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold, Gold]

# Define coordinates
central_region_coordinates = [[  5.89496938918 ,   6.369816335081,   0.735242827216],
[  5.89496938918 ,   9.310673438036,   0.735242827216],
[  3.81546938918 ,   4.899387783604,   2.205671378694],
[  3.81546938918 ,   7.840244886558,   2.205671378694],
[  7.97446938918 ,   4.899387783604,   2.205671378694],
[  7.97446938918 ,   7.840244886559,   2.205671378694],
[  5.89496938918 ,   6.369816335081,   3.676099930171],
[  5.89496938918 ,   9.310673438036,   3.676099930171],
[  7.97446938918 ,   4.899387783604,   5.146528481649],
[  7.97446938918 ,   7.840244886558,   5.146528481649],
[  3.81546938918 ,   4.899387783604,   5.146528481649],
[  3.81546938918 ,   7.840244886558,   5.146528481648],
[  5.979528      ,   5.8978735     ,  10.133376813333],
[  5.98854       ,   5.9427995     ,  11.227117813333],
[  8.139325      ,   6.0629885     ,  11.352576813333],
[  3.840072      ,   5.8348215     ,  11.397538813333],
[  7.197288      ,   6.0352055     ,  11.909501813333],
[  4.791217      ,   5.9075385     ,  11.934521813333],
[  7.208723      ,   6.0924095     ,  13.299424813333],
[  4.802674      ,   5.9647895     ,  13.324419813333],
[  8.159928      ,   6.1651785     ,  13.836366813333],
[  3.860514      ,   5.9371685     ,  13.881070813333],
[  6.011398      ,   6.0571905     ,  14.006834813333],
[  6.020461      ,   6.1022335     ,  15.100537813333],
[  7.97447       ,   4.899387172784,  20.087399843306],
[  7.97447       ,   7.840244275739,  20.087399843306],
[  3.81547       ,   4.899387172784,  20.087399843306],
[  3.81547       ,   7.840244275739,  20.087399843306],
[  5.89497       ,   9.310672827216,  21.557828394783],
[  5.89497       ,   6.369815724261,  21.557828394783],
[  7.97447       ,   7.840244275739,  23.02825694626 ],
[  3.81547       ,   7.840244275739,  23.02825694626 ],
[  7.97447       ,   4.899387172784,  23.02825694626 ],
[  3.81547       ,   4.899387172784,  23.02825694626 ],
[  5.89497       ,   9.310672827216,  24.498685497738],
[  5.89497       ,   6.369815724261,  24.498685497738]]*Angstrom

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

metallic_region_0 = BoxRegion(
4.0*Volt,
xmin = 0.0*Angstrom, xmax = 12.0*Angstrom,
ymin = 0.0*Angstrom, ymax = 1.0*Angstrom,
zmin = 6.61695731333*Angstrom, zmax = 18.6169573133*Angstrom,
)

metallic_regions = [metallic_region_0]
central_region.setMetallicRegions(metallic_regions)

dielectric_region_0 = BoxRegion(
10.0,
xmin = 0.0*Angstrom, xmax = 12.0*Angstrom,
ymin = 1.0*Angstrom, ymax = 4.7*Angstrom,
zmin = 6.61695731333*Angstrom, zmax = 18.6169573133*Angstrom,
)

dielectric_regions = [dielectric_region_0]
central_region.setDielectricRegions(dielectric_regions)

device_configuration = DeviceConfiguration(
central_region,
[left_electrode, right_electrode],
equivalent_electrode_lengths=[5.88171421, 5.88171421]*Angstrom,
transverse_electrode_repetitions=[[1, 1], [1, 1]],
)

# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
#----------------------------------------
# Basis Set
#----------------------------------------
basis_set = [
LDABasis.Hydrogen_DoubleZetaPolarized,
LDABasis.Carbon_DoubleZetaPolarized,
LDABasis.Gold_SingleZetaPolarized,
]

#----------------------------------------
# Exchange-Correlation
#----------------------------------------
exchange_correlation = LDA.PZ

#----------------------------------------
# Numerical Accuracy Settings
#----------------------------------------
device_k_point_sampling = KpointDensity(
density_c=150.0*Angstrom,
)
device_numerical_accuracy_parameters = NumericalAccuracyParameters(
k_point_sampling=device_k_point_sampling,
density_mesh_cutoff=75.0*Hartree,
)

#----------------------------------------
# Poisson Solver Settings
#----------------------------------------
device_poisson_solver = MultigridSolver(
boundary_conditions=[[NeumannBoundaryCondition(),NeumannBoundaryCondition()],
[NeumannBoundaryCondition(),NeumannBoundaryCondition()],
[DirichletBoundaryCondition(),DirichletBoundaryCondition()]]
)

#----------------------------------------
# Contour Integral Settings
#----------------------------------------
equilibrium_contour = SemiCircleContour(
integral_lower_bound=1.87054058324*Hartree,
circle_points=30,
)
contour_parameters = ContourParameters(
equilibrium_contour=equilibrium_contour,
)

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

device_configuration.setCalculator(calculator)
nlprint(device_configuration)
device_configuration.update()
nlsave('1208 prototype device1.hdf5', device_configuration)

# -------------------------------------------------------------
# Device Density Of States
# -------------------------------------------------------------
kpoint_grid = MonkhorstPackGrid()

device_density_of_states = DeviceDensityOfStates(
configuration=device_configuration,
energies=numpy.linspace(-2,2,101)*eV,
kpoints=kpoint_grid,
contributions=All,
energy_zero_parameter=AverageFermiLevel,
infinitesimal=1e-06*eV,
self_energy_calculator=RecursionSelfEnergy(storage_strategy=NoStorage()),
)
nlsave('1208 prototype device1.hdf5', device_density_of_states)
nlprint(device_density_of_states)

# -------------------------------------------------------------
# Molecular Energy Spectrum
# -------------------------------------------------------------
molecular_energy_spectrum = MolecularEnergySpectrum(
configuration=device_configuration,
energy_zero_parameter=FermiLevel,
projection_list=ProjectionList(elements=[Carbon, Hydrogen])
)
nlsave('1208 prototype device1.hdf5', molecular_energy_spectrum)
nlprint(molecular_energy_spectrum)``````

#### Petr Khomyakov

• QuantumATK Staff
• Supreme ATK Wizard
• Posts: 1290
• Country:
• Reputation: 25
##### Re: single electron transistor
« Reply #1 on: January 12, 2021, 15:31 »
I have done that tutorial and the Quantum wise tutorial "Benzene Single-Electron Transistor".
Which tutorial are you referring to? Could you post a link?

#### Gaurav

• Regular ATK user
• Posts: 11
• Country:
• Reputation: 0
##### Re: single electron transistor
« Reply #2 on: June 26, 2021, 09:18 »
Dear Kenta,

Please refer to our publications on SET for switching and sensor application, for a basic understanding of the device mechanism.
https://doi.org/10.1109/TNANO.2019.2945995
http://dx.doi.org/10.1007/s11664-020-08663-0
http://dx.doi.org/10.1049/PBCS049E_ch3
Hope you find these helful.
Also, you can't have IV characteristics for the SET in ATK; however, you can plot charge vs. voltage (either Vds or Vg) for the same by running a python script.

Good luck!
« Last Edit: June 26, 2021, 13:18 by Gaurav »