Hello everyone,
My question is addressed to the ATK 2010 developers. When building a device just for convenience I usually move the atoms in the unit cell to the left so the leftmost atom has zero z-component. After inserting the molecule, as recommended, I center the system in the unit cell before switching into the "device mode". One day I forgot to do it. As a result I obtained huge values for DD and DM in the output file for left electrode. Here is the typical values:
+------------------------------------------------------------------------------+
| Density Matrix Report DM DD |
+------------------------------------------------------------------------------+
| 0 C [ 5.000 , 1.231 , 0.000 ] 145.93467 141.93467 |
| 1 C [ 5.000 , 3.692 , 0.000 ] 145.35013 141.35013 |
| 2 C [ 5.000 , 6.153 , 0.000 ] 145.93382 141.93382 |
| 3 C [ 5.000 , 0.000 , 0.710 ] 3.44331 -0.55669 |
| 4 C [ 5.000 , 2.461 , 0.710 ] 3.44260 -0.55740 |
| 5 C [ 5.000 , 4.922 , 0.710 ] 3.44260 -0.55740 |
| 6 C [ 5.000 , 0.000 , 2.131 ] 4.00128 0.00128 |
| 7 C [ 5.000 , 2.461 , 2.131 ] 4.00044 0.00044 |
| 8 C [ 5.000 , 4.922 , 2.131 ] 4.00044 0.00044 |
| 9 C [ 5.000 , 1.231 , 2.842 ] 3.70081 -0.29919 |
| 10 C [ 5.000 , 3.692 , 2.842 ] 3.70013 -0.29987 |
| 11 C [ 5.000 , 6.153 , 2.842 ] 3.70081 -0.29919 |
| 12 C [ 5.000 , 6.153 , 4.263 ] -137.07787 -141.07787 |
| 13 C [ 5.000 , 3.692 , 4.263 ] -136.49443 -140.49443 |
| 14 C [ 5.000 , 1.231 , 4.263 ] -137.07872 -141.07872 |
+------------------------------------------------------------------------------+
| 3 E = -45.6314 dE = 1.205925e+00 dH = 2.830564e-01 |
+------------------------------------------------------------------------------+
Also, starting from some iteration I get abnormally large forces on some atoms in the central region:
+------------------------------------------------------------------------------+
| Density Matrix Report DM DD |
+------------------------------------------------------------------------------+
| 0 C [ 5.000 , 1.231 , 0.000 ] -1938964.66509 -1938968.66509 |
| 1 C [ 5.000 , 3.692 , 0.000 ] -1939052.45277 -1939056.45277 |
| 2 C [ 5.000 , 6.153 , 0.000 ] -1938967.28253 -1938971.28253 |
| 3 C [ 5.000 , 0.000 , 0.710 ] -1232.68324 -1236.68324 |
| 4 C [ 5.000 , 2.461 , 0.710 ] -1233.05722 -1237.05722 |
| 5 C [ 5.000 , 4.922 , 0.710 ] -1233.05763 -1237.05763 |
| 6 C [ 5.000 , 0.000 , 2.131 ] -85.32339 -89.32339 |
| 7 C [ 5.000 , 2.461 , 2.131 ] -85.24910 -89.24910 |
| 8 C [ 5.000 , 4.922 , 2.131 ] -85.24915 -89.24915 |
| 9 C [ 5.000 , 1.231 , 2.842 ] 26.94666 22.94666 |
| 10 C [ 5.000 , 3.692 , 2.842 ] 26.93101 22.93101 |
| 11 C [ 5.000 , 6.153 , 2.842 ] 26.94667 22.94667 |
| 12 C [ 5.000 , 6.153 , 4.263 ] -17.30353 -21.30353 |
| 13 C [ 5.000 , 3.692 , 4.263 ] -17.28189 -21.28189 |
| 14 C [ 5.000 , 1.231 , 4.263 ] -17.30349 -21.30349 |
| 15 C [ 5.000 , 0.000 , 4.973 ] 0.00000 -4.00000 |
| 16 C [ 5.000 , 2.461 , 4.973 ] 0.00000 -4.00000 |
| 17 C [ 5.000 , 4.922 , 4.973 ] 0.00000 -4.00000 |
| 18 C [ 5.000 , 2.461 , 6.394 ] 0.00000 -4.00000 |
.......
After I center the system, this problem disappears.
My question is why forgetting to center the system leads to so large forces? It's just centering, and periodicity should take care of everything. Note that after switching to the device mode I picked the correct left and right electrode length (4.2626 A in my case). In documentation the centering operation is mentioned rather as a suggestion for correct detection of the periodicity, not as a requirement. In the end, I can always manually type in correct size of the unit cell in the device mode.
Another question is if there is a bigger problem behind it and centering eliminates it only partially?
Just in case if you need it, here is my test system:
Thanks in advance.
###############################################################
# TwoProbe configuration
###############################################################
###############################################################
# Left electrode
###############################################################
# Set up lattice
vector_a = [10.0, 0.0, 0.0]*Angstrom
vector_b = [0.0, 7.38300513133, 0.0]*Angstrom
vector_c = [0.0, 0.0, 4.2626]*Angstrom
left_electrode_lattice = UnitCell(vector_a, vector_b, vector_c)
# Define elements
left_electrode_elements = [Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon]
# Define coordinates
left_electrode_coordinates = [[ 5. , 1.23050086, 0. ],
[ 5. , 3.69150257, 0. ],
[ 5. , 6.15250428, 0. ],
[ 5. , 0. , 0.71043 ],
[ 5. , 2.46100171, 0.71043 ],
[ 5. , 4.92200342, 0.71043 ],
[ 5. , 0. , 2.13129 ],
[ 5. , 2.46100171, 2.13129 ],
[ 5. , 4.92200342, 2.13129 ],
[ 5. , 1.23050086, 2.84172 ],
[ 5. , 3.69150257, 2.84172 ],
[ 5. , 6.15250428, 2.84172 ],
[ 5. , 6.15250428, 4.26258 ],
[ 5. , 3.69150257, 4.26258 ],
[ 5. , 1.23050086, 4.26258 ]]*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 = [10.0, 0.0, 0.0]*Angstrom
vector_b = [0.0, 7.38300513133, 0.0]*Angstrom
vector_c = [0.0, 0.0, 4.2626]*Angstrom
right_electrode_lattice = UnitCell(vector_a, vector_b, vector_c)
# Define elements
right_electrode_elements = [Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
Carbon, Carbon, Carbon, Carbon]
# Define coordinates
right_electrode_coordinates = [[ 5.00000000e+00, 3.69150257e+00, -2.00000000e-05],
[ 5.00000000e+00, 1.23050086e+00, -2.00000000e-05],
[ 5.00000000e+00, 6.15250428e+00, -2.00000000e-05],
[ 5.00000000e+00, 0.00000000e+00, 7.10410000e-01],
[ 5.00000000e+00, 4.92200342e+00, 7.10410000e-01],
[ 5.00000000e+00, 2.46100171e+00, 7.10410000e-01],
[ 5.00000000e+00, 0.00000000e+00, 2.13127000e+00],
[ 5.00000000e+00, 4.92200342e+00, 2.13127000e+00],
[ 5.00000000e+00, 2.46100171e+00, 2.13127000e+00],
[ 5.00000000e+00, 3.69150257e+00, 2.84170000e+00],
[ 5.00000000e+00, 6.15250428e+00, 2.84170000e+00],
[ 5.00000000e+00, 1.23050086e+00, 2.84170000e+00]]*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 = [10.0, 0.0, 0.0]*Angstrom
vector_b = [0.0, 7.38300513133, 0.0]*Angstrom
vector_c = [0.0, 0.0, 21.3939]*Angstrom
central_region_lattice = UnitCell(vector_a, vector_b, vector_c)
# Define elements
central_region_elements = [Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
Hydrogen, Hydrogen, Carbon, Hydrogen, Hydrogen, Carbon, Carbon,
Carbon, Carbon, Hydrogen, Hydrogen, Carbon, Hydrogen, Hydrogen,
Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon]
# Define coordinates
central_region_coordinates = [[ 5. , 1.23050086, 0. ],
[ 5. , 3.69150257, 0. ],
[ 5. , 6.15250428, 0. ],
[ 5. , 0. , 0.71043 ],
[ 5. , 2.46100171, 0.71043 ],
[ 5. , 4.92200342, 0.71043 ],
[ 5. , 0. , 2.13129 ],
[ 5. , 2.46100171, 2.13129 ],
[ 5. , 4.92200342, 2.13129 ],
[ 5. , 1.23050086, 2.84172 ],
[ 5. , 3.69150257, 2.84172 ],
[ 5. , 6.15250428, 2.84172 ],
[ 5. , 6.15250428, 4.26258 ],
[ 5. , 3.69150257, 4.26258 ],
[ 5. , 1.23050086, 4.26258 ],
[ 5. , 0. , 4.97301 ],
[ 5. , 2.46100171, 4.97301 ],
[ 5. , 4.92200342, 4.97301 ],
[ 5. , 2.46100171, 6.39387 ],
[ 5. , 4.92200342, 6.39387 ],
[ 5. , 0. , 6.39387 ],
[ 5. , 3.6915 , 7.1043 ],
[ 5. , 6.15250428, 7.1043 ],
[ 5. , 1.23050086, 7.1043 ],
[ 5. , 1.23050087, 8.2053 ],
[ 5. , 6.15250429, 8.2053 ],
[ 5. , 3.6915 , 8.5788 ],
[ 2.8813 , 3.23562028, 8.726333 ],
[ 7.118674 , 4.14747328, 8.726334 ],
[ 3.806231 , 3.42960428, 9.285847 ],
[ 6.193767 , 3.95342128, 9.285857 ],
[ 6.193768 , 3.95342528, 10.687147 ],
[ 3.806234 , 3.42960828, 10.687157 ],
[ 7.118675 , 4.14747728, 11.246667 ],
[ 2.881305 , 3.23561728, 11.246667 ],
[ 5.000008 , 3.69149728, 11.3942 ],
[ 5. , 6.15250429, 11.7677 ],
[ 5. , 1.23050087, 11.7677 ],
[ 5. , 1.23050086, 12.8687 ],
[ 5. , 3.69150257, 12.8687 ],
[ 5. , 6.15250428, 12.8687 ],
[ 5. , 2.46100171, 13.57913 ],
[ 5. , 0. , 13.57913 ],
[ 5. , 4.92200342, 13.57913 ],
[ 5. , 4.92200342, 14.99999 ],
[ 5. , 0. , 14.99999 ],
[ 5. , 2.46100171, 14.99999 ],
[ 5. , 3.69150257, 15.71042 ],
[ 5. , 6.15250428, 15.71042 ],
[ 5. , 1.23050086, 15.71042 ],
[ 5. , 3.69150257, 17.13128 ],
[ 5. , 1.23050086, 17.13128 ],
[ 5. , 6.15250428, 17.13128 ],
[ 5. , 0. , 17.84171 ],
[ 5. , 4.92200342, 17.84171 ],
[ 5. , 2.46100171, 17.84171 ],
[ 5. , 0. , 19.26257 ],
[ 5. , 4.92200342, 19.26257 ],
[ 5. , 2.46100171, 19.26257 ],
[ 5. , 3.69150257, 19.973 ],
[ 5. , 6.15250428, 19.973 ],
[ 5. , 1.23050086, 19.973 ]]*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]
)