Graphene
This example demonstrates the calculations of density of states (DOS) and transmission values for a two-probe graphene.
Import Necessary Libraries
import matplotlib.pyplot as plt
import numpy as np
import junpy as jp
from junpy.factory import nanodcal
%config InlineBackend.figure_formats = ['svg']
%config InlineBackend.rc = {'font.size': 12}
Load Device
filename = (
'jpdataset/nanodcal/twoprobe_graphene/'
'LDA_SP/sys_1x2/v0.00/NanodcalStructObject.mat')
device = nanodcal.load_nanodcal_device(filename)
Calculate Density of States
Since graphene has a two-dimensional structure, we need to integrate the k-space. In this example, the transport direction is along the $y$ direction, so we integrate the k-space along the $x$ direction. The object jp.SymmetryKspaceSampling((n1, n2, n3)) specifies the number of k-points to be used along the reciprocal lattice vectors $b_1$, $b_2$, and $b_3$, respectively. Note that these calculations become time-consuming due to the integration.
calcr_dos = jp.DensityOfStates(
device=device,
energies=np.linspace(-4, 4, 81),
kpoints=jp.SymmetryKspaceSampling((101,1,1)),
etaSigma=0.05,
etaGF=0.05)
jp.run(calcr_dos, savefile=False)
Show code cell output
JunPy version---------------------------: 0.15.0.post29+ga5b3260
Parallelization information
BLAS Vendor-----------------------------: MKL
Total number of MPI processes-----------: 1
OMP_NUM_THREADS-------------------------: 1
MKL_NUM_THREADS-------------------------: unset
OPENBLAS_NUM_THREADS--------------------: unset
Calculating density of states... (2024-08-15 21:11:44)
Device information
bias (mu2-mu1)--------------------------: 0.0
central.numberOfSites-------------------: 8
central.spinType------------------------: SpinType.CollinearSpin
lead1.numberOfSites---------------------: 8
lead1.spinType--------------------------: SpinType.CollinearSpin
lead1.direction-------------------------: -1
lead1.temperature-----------------------: 0.0
lead1.chemicalPotential-----------------: -0.0
lead2.numberOfSites---------------------: 8
lead2.spinType--------------------------: SpinType.CollinearSpin
lead2.direction-------------------------: -1
lead2.temperature-----------------------: 0.0
lead2.chemicalPotential-----------------: -0.0
Energy sampling
samplingName----------------------------: CustomSampling
range-----------------------------------: [-4.0000e+00, 4.0000e+00]
number----------------------------------: 81
K-space sampling
samplingName----------------------------: SymmetryKspaceSampling
gridNumber------------------------------: (101, 1, 1)
isTimeReversalSymmetry------------------: True
numReducedKpoints-----------------------: 51
Runtime message
Integrate over energy and k-space...
Start MPI execution...
--> 5.0% finished (Elapsed time: 0:01:00.934257)
--> 10.0% finished (Elapsed time: 0:01:03.760330)
--> 15.0% finished (Elapsed time: 0:00:58.744127)
--> 20.0% finished (Elapsed time: 0:01:05.659762)
--> 25.1% finished (Elapsed time: 0:00:59.667289)
--> 30.1% finished (Elapsed time: 0:01:07.333848)
--> 35.1% finished (Elapsed time: 0:01:05.513847)
--> 40.1% finished (Elapsed time: 0:01:11.569475)
--> 45.1% finished (Elapsed time: 0:01:11.459732)
--> 50.1% finished (Elapsed time: 0:01:14.092089)
--> 55.1% finished (Elapsed time: 0:01:14.757715)
--> 60.1% finished (Elapsed time: 0:01:15.730488)
--> 65.1% finished (Elapsed time: 0:01:18.600627)
--> 70.1% finished (Elapsed time: 0:01:19.798855)
--> 75.1% finished (Elapsed time: 0:01:14.960501)
--> 80.1% finished (Elapsed time: 0:01:05.175154)
--> 85.0% finished (Elapsed time: 0:01:02.974258)
--> 90.0% finished (Elapsed time: 0:00:54.497405)
--> 95.0% finished (Elapsed time: 0:00:44.964707)
--> 100.0% finished (Elapsed time: 0:00:41.109262)
Wait for other processes...
--> finished (Elapsed time: 0:00:00.000055)
Gather results from other processes...
--> finished (Elapsed time: 0:00:00.000433)
Density of states report
Energy_eV D_up D_dn
-4.000000e+00 1.148054e+00 1.148054e+00
-3.900000e+00 1.151423e+00 1.151423e+00
-3.800000e+00 1.137059e+00 1.137059e+00
-3.700000e+00 1.125215e+00 1.125216e+00
-3.600000e+00 1.138127e+00 1.138127e+00
-3.500000e+00 1.114009e+00 1.114010e+00
-3.400000e+00 1.114928e+00 1.114928e+00
-3.300000e+00 1.119039e+00 1.119040e+00
-3.200000e+00 1.086117e+00 1.086118e+00
-3.100000e+00 1.053182e+00 1.053183e+00
-3.000000e+00 8.547575e-01 8.547585e-01
-2.900000e+00 8.178881e-01 8.178885e-01
-2.800000e+00 8.465649e-01 8.465660e-01
-2.700000e+00 8.562368e-01 8.562372e-01
-2.600000e+00 9.347888e-01 9.347900e-01
-2.500000e+00 1.004012e+00 1.004014e+00
-2.400000e+00 1.163116e+00 1.163114e+00
-2.300000e+00 1.053529e+00 1.053528e+00
-2.200000e+00 8.438950e-01 8.438942e-01
-2.100000e+00 7.796125e-01 7.796106e-01
-2.000000e+00 6.949276e-01 6.949277e-01
-1.900000e+00 6.103559e-01 6.103555e-01
-1.800000e+00 5.885922e-01 5.885915e-01
-1.700000e+00 5.187629e-01 5.187628e-01
-1.600000e+00 4.864822e-01 4.864817e-01
-1.500000e+00 4.502752e-01 4.502751e-01
-1.400000e+00 4.061107e-01 4.061105e-01
-1.300000e+00 3.899114e-01 3.899112e-01
-1.200000e+00 3.484829e-01 3.484829e-01
-1.100000e+00 3.245921e-01 3.245920e-01
-1.000000e+00 3.007624e-01 3.007624e-01
-9.000000e-01 2.682955e-01 2.682955e-01
-8.000000e-01 2.522408e-01 2.522408e-01
-7.000000e-01 2.253794e-01 2.253794e-01
-6.000000e-01 2.024319e-01 2.024319e-01
-5.000000e-01 1.870288e-01 1.870289e-01
-4.000000e-01 1.612114e-01 1.612115e-01
-3.000000e-01 1.396932e-01 1.396933e-01
-2.000000e-01 1.242044e-01 1.242045e-01
-1.000000e-01 1.066135e-01 1.066137e-01
0.000000e+00 9.609875e-02 9.609895e-02
1.000000e-01 1.080408e-01 1.080410e-01
2.000000e-01 1.269432e-01 1.269434e-01
3.000000e-01 1.444241e-01 1.444243e-01
4.000000e-01 1.673718e-01 1.673721e-01
5.000000e-01 1.963720e-01 1.963724e-01
6.000000e-01 2.168159e-01 2.168163e-01
7.000000e-01 2.431098e-01 2.431101e-01
8.000000e-01 2.775946e-01 2.775951e-01
9.000000e-01 2.988199e-01 2.988204e-01
1.000000e+00 3.386903e-01 3.386908e-01
1.100000e+00 3.786392e-01 3.786400e-01
1.200000e+00 4.095431e-01 4.095436e-01
1.300000e+00 4.800447e-01 4.800454e-01
1.400000e+00 5.191383e-01 5.191394e-01
1.500000e+00 5.985113e-01 5.985117e-01
1.600000e+00 7.375083e-01 7.375099e-01
1.700000e+00 8.671765e-01 8.671788e-01
1.800000e+00 1.168567e+00 1.168570e+00
1.900000e+00 1.164942e+00 1.164942e+00
2.000000e+00 9.781349e-01 9.781341e-01
2.100000e+00 8.786198e-01 8.786194e-01
2.200000e+00 8.067168e-01 8.067164e-01
2.300000e+00 7.693844e-01 7.693842e-01
2.400000e+00 7.215649e-01 7.215648e-01
2.500000e+00 7.054427e-01 7.054426e-01
2.600000e+00 6.672415e-01 6.672415e-01
2.700000e+00 6.606485e-01 6.606483e-01
2.800000e+00 6.281496e-01 6.281497e-01
2.900000e+00 6.263867e-01 6.263866e-01
3.000000e+00 5.977874e-01 5.977875e-01
3.100000e+00 5.987021e-01 5.987020e-01
3.200000e+00 5.728537e-01 5.728538e-01
3.300000e+00 5.756030e-01 5.756029e-01
3.400000e+00 5.516298e-01 5.516299e-01
3.500000e+00 5.558199e-01 5.558198e-01
3.600000e+00 5.331058e-01 5.331059e-01
3.700000e+00 5.383876e-01 5.383876e-01
3.800000e+00 5.166774e-01 5.166776e-01
3.900000e+00 5.226148e-01 5.226148e-01
4.000000e+00 5.022855e-01 5.022856e-01
Calculation of density of states finished (2024-08-15 21:33:35)
Elapsed time----------------------------: 0:21:51.487874
# shape: (#kpoints, #energies, #spin)
dos = calcr_dos.densityOfStates(spin='sum')
plt.plot(calcr_dos.energies, dos[0,:,0], '.-')
plt.xlabel('Energy (eV)')
plt.ylabel('DOS (1/eV)')
plt.show()
Calculate Transmission
calcr_trans = jp.Transmission(
device=device,
energies=np.linspace(-4, 4, 81),
kpoints=jp.SymmetryKspaceSampling((101,1,1)),
etaSigma=0.05,
etaGF=0.05)
jp.run(calcr_trans, savefile=False)
Show code cell output
JunPy version---------------------------: 0.15.0.post29+ga5b3260
Parallelization information
BLAS Vendor-----------------------------: MKL
Total number of MPI processes-----------: 1
OMP_NUM_THREADS-------------------------: 1
MKL_NUM_THREADS-------------------------: unset
OPENBLAS_NUM_THREADS--------------------: unset
Calculating transmission... (2024-08-15 21:54:34)
Device information
bias (mu2-mu1)--------------------------: 0.0
central.numberOfSites-------------------: 8
central.spinType------------------------: SpinType.CollinearSpin
lead1.numberOfSites---------------------: 8
lead1.spinType--------------------------: SpinType.CollinearSpin
lead1.direction-------------------------: -1
lead1.temperature-----------------------: 0.0
lead1.chemicalPotential-----------------: -0.0
lead2.numberOfSites---------------------: 8
lead2.spinType--------------------------: SpinType.CollinearSpin
lead2.direction-------------------------: -1
lead2.temperature-----------------------: 0.0
lead2.chemicalPotential-----------------: -0.0
Energy sampling
samplingName----------------------------: CustomSampling
range-----------------------------------: [-4.0000e+00, 4.0000e+00]
number----------------------------------: 81
K-space sampling
samplingName----------------------------: SymmetryKspaceSampling
gridNumber------------------------------: (101, 1, 1)
isTimeReversalSymmetry------------------: True
numReducedKpoints-----------------------: 51
Runtime message
Integrate over energy and k-space...
Start MPI execution...
--> 5.0% finished (Elapsed time: 0:01:01.678480)
--> 10.0% finished (Elapsed time: 0:01:05.354264)
--> 15.0% finished (Elapsed time: 0:00:59.842669)
--> 20.0% finished (Elapsed time: 0:01:07.359267)
--> 25.1% finished (Elapsed time: 0:01:01.623016)
--> 30.1% finished (Elapsed time: 0:01:09.152400)
--> 35.1% finished (Elapsed time: 0:01:05.336416)
--> 40.1% finished (Elapsed time: 0:01:10.703299)
--> 45.1% finished (Elapsed time: 0:01:10.825140)
--> 50.1% finished (Elapsed time: 0:01:11.762769)
--> 55.1% finished (Elapsed time: 0:01:11.643890)
--> 60.1% finished (Elapsed time: 0:01:12.286803)
--> 65.1% finished (Elapsed time: 0:01:15.848238)
--> 70.1% finished (Elapsed time: 0:01:16.276325)
--> 75.1% finished (Elapsed time: 0:01:11.613738)
--> 80.1% finished (Elapsed time: 0:01:02.647705)
--> 85.0% finished (Elapsed time: 0:00:59.451811)
--> 90.0% finished (Elapsed time: 0:00:51.418889)
--> 95.0% finished (Elapsed time: 0:00:45.719981)
--> 100.0% finished (Elapsed time: 0:00:41.742144)
Wait for other processes...
--> finished (Elapsed time: 0:00:00.000025)
Gather results from other processes...
--> finished (Elapsed time: 0:00:00.000246)
Transmission report
Energy_eV T_up T_dn
-4.000000e+00 1.122606e+00 1.122607e+00
-3.900000e+00 1.104640e+00 1.104641e+00
-3.800000e+00 1.082771e+00 1.082771e+00
-3.700000e+00 1.062135e+00 1.062136e+00
-3.600000e+00 1.038053e+00 1.038053e+00
-3.500000e+00 1.010902e+00 1.010902e+00
-3.400000e+00 9.812795e-01 9.812797e-01
-3.300000e+00 9.431727e-01 9.431729e-01
-3.200000e+00 8.981820e-01 8.981822e-01
-3.100000e+00 8.352657e-01 8.352660e-01
-3.000000e+00 7.873350e-01 7.873350e-01
-2.900000e+00 7.912590e-01 7.912590e-01
-2.800000e+00 7.947095e-01 7.947095e-01
-2.700000e+00 7.982991e-01 7.982991e-01
-2.600000e+00 7.971223e-01 7.971223e-01
-2.500000e+00 7.875332e-01 7.875331e-01
-2.400000e+00 7.491970e-01 7.491967e-01
-2.300000e+00 6.577973e-01 6.577971e-01
-2.200000e+00 5.979276e-01 5.979275e-01
-2.100000e+00 5.519077e-01 5.519076e-01
-2.000000e+00 5.133411e-01 5.133409e-01
-1.900000e+00 4.790098e-01 4.790097e-01
-1.800000e+00 4.461595e-01 4.461594e-01
-1.700000e+00 4.173484e-01 4.173483e-01
-1.600000e+00 3.870860e-01 3.870859e-01
-1.500000e+00 3.610186e-01 3.610185e-01
-1.400000e+00 3.336284e-01 3.336283e-01
-1.300000e+00 3.079797e-01 3.079795e-01
-1.200000e+00 2.834143e-01 2.834142e-01
-1.100000e+00 2.568344e-01 2.568343e-01
-1.000000e+00 2.344523e-01 2.344522e-01
-9.000000e-01 2.087767e-01 2.087766e-01
-8.000000e-01 1.845871e-01 1.845871e-01
-7.000000e-01 1.622581e-01 1.622581e-01
-6.000000e-01 1.372000e-01 1.372000e-01
-5.000000e-01 1.166885e-01 1.166884e-01
-4.000000e-01 9.448405e-02 9.448401e-02
-3.000000e-01 6.905113e-02 6.905110e-02
-2.000000e-01 4.829559e-02 4.829556e-02
-1.000000e-01 2.948585e-02 2.948583e-02
0.000000e+00 1.341752e-02 1.341752e-02
1.000000e-01 2.984253e-02 2.984255e-02
2.000000e-01 4.859666e-02 4.859669e-02
3.000000e-01 6.983141e-02 6.983144e-02
4.000000e-01 9.539847e-02 9.539850e-02
5.000000e-01 1.188249e-01 1.188250e-01
6.000000e-01 1.401512e-01 1.401513e-01
7.000000e-01 1.653895e-01 1.653895e-01
8.000000e-01 1.889342e-01 1.889343e-01
9.000000e-01 2.136815e-01 2.136816e-01
1.000000e+00 2.411958e-01 2.411959e-01
1.100000e+00 2.667825e-01 2.667826e-01
1.200000e+00 2.963932e-01 2.963933e-01
1.300000e+00 3.259322e-01 3.259323e-01
1.400000e+00 3.600282e-01 3.600284e-01
1.500000e+00 3.992933e-01 3.992935e-01
1.600000e+00 4.469148e-01 4.469151e-01
1.700000e+00 5.130348e-01 5.130351e-01
1.800000e+00 6.278325e-01 6.278330e-01
1.900000e+00 7.970361e-01 7.970365e-01
2.000000e+00 8.415783e-01 8.415785e-01
2.100000e+00 8.579623e-01 8.579624e-01
2.200000e+00 8.621175e-01 8.621175e-01
2.300000e+00 8.645284e-01 8.645284e-01
2.400000e+00 8.619564e-01 8.619564e-01
2.500000e+00 8.599122e-01 8.599122e-01
2.600000e+00 8.550602e-01 8.550602e-01
2.700000e+00 8.506707e-01 8.506707e-01
2.800000e+00 8.448290e-01 8.448290e-01
2.900000e+00 8.391019e-01 8.391018e-01
3.000000e+00 8.327214e-01 8.327213e-01
3.100000e+00 8.262044e-01 8.262043e-01
3.200000e+00 8.194786e-01 8.194785e-01
3.300000e+00 8.125040e-01 8.125039e-01
3.400000e+00 8.054545e-01 8.054545e-01
3.500000e+00 7.983186e-01 7.983186e-01
3.600000e+00 7.908719e-01 7.908719e-01
3.700000e+00 7.838249e-01 7.838249e-01
3.800000e+00 7.759028e-01 7.759027e-01
3.900000e+00 7.694953e-01 7.694952e-01
4.000000e+00 7.609718e-01 7.609718e-01
Calculation of transmission finished (2024-08-15 22:16:07)
Elapsed time----------------------------: 0:21:32.510540
# shape: (#kpoints, #energies, #spin)
trans = calcr_trans.transmission(spin='sum')
plt.plot(calcr_trans.energies, trans[0,:,0], '.-')
plt.xlabel('Energy (eV)')
plt.ylabel('Transmission')
plt.show()