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)
Hide 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()
../../_images/e06f765aa7aec4b6cc3f70c77e543a385afcfc455b671b96929b1cb0fcab0279.svg

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)
Hide 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()
../../_images/17b0d030517bed2b387a52266caf52e5dee64d0683fedb050f62909f62932298.svg