{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Simple Metallic Chain\n", "\n", "This notebook demonstrates a quantum transport calculation using the JunPy package. The goal is to compute the density of states and transmission values for a two-probe device. We manually construct the tight-binding Hamiltonian by setting the onsite energies and hopping parameters.\n", "\n", "## Import Necessary Libraries\n", "\n", "We use the built-in module `junpy.factory.stack` to create a simple two-probe device and its tight-binding Hamiltonian." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import junpy as jp\n", "from junpy.factory import stack\n", "%config InlineBackend.figure_format = 'svg'\n", "%config InlineBackend.rc = {'font.size': 12}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Build Device\n", "\n", "For demonstration, we assume there are 3 sites in the central region and 1 site in each of the left and right electrode unit cells. The spin-polarized onsite energies for each site are set to `np.array([[-0.5, 0], [0, 0.5]])`, where `-0.5` corresponds to spin-up and `0.5` corresponds to spin-down. The hopping energies are set to `-1`. The spin polarization angles are aligned along the $z$ direction, with values set to `0` radians." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# on-site energy\n", "eA = np.array([[-0.5, 0], [0, 0.5]])\n", "eB = np.array([[-0.5, 0], [0, 0.5]])\n", "eC = np.array([[-0.5, 0], [0, 0.5]])\n", "\n", "# hopping energy\n", "t = np.array([[-1, 0], [0, -1]])\n", "\n", "# spin polarization angle in unit of radian\n", "sA, sB, sC, = 0, 0, 0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We first create an empty builder using `stack.TwoProbeDeviceBuilder()` to construct the device:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "builder = stack.TwoProbeDeviceBuilder()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following statements construct the Hamiltonian parameters for the two-probe device. Here, `builder.L`, `builder.C`, and `builder.R` represent the left, central, and right regions, respectively. The left and right regions are semi-infinite electrodes. To construct the Fermi function, we need to set the reservoir chemical potential and temperature. In this example, the reservoir chemical potentials are set to `0`, and the temperatures are set to `100` K. For each region, the `add(energy, hopping, nsites, spin, bias)` function is used to create a layer containing the Hamiltonian parameters. Here, `energy` refers to the onsite energy, `hopping` specifies the hopping energy, `nsites` is the number of sites in the layer, `spin` is the spin polarization angle in radians, and `bias` represents the energy shift of the onsite energy." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# left electrode\n", "builder.L.set(chemicalPotential=0, temperature=100)\n", "builder.L.add(eA, t, nsites=1, spin=sA, bias=0)\n", "\n", "# central region\n", "builder.C.add(eA, t, nsites=1, spin=sA, bias=0)\n", "builder.C.add(eB, t, nsites=3, spin=sB, bias=0)\n", "builder.C.add(eC, t, nsites=1, spin=sC, bias=0)\n", "\n", "# right electrode\n", "builder.R.set(chemicalPotential=0, temperature=100)\n", "builder.R.add(eC, t, nsites=1, spin=sC, bias=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The coupling energies between the layers also need to be specified. We assume that all coupling energies are set to `t`." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# define coupling between layers\n", "builder.set_layer_coupling(all=t)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The default transport direction is the $z$ direction. To construct a 2D or 3D device, we can set the translation symmetry in the $x$ and $y$ directions. In this example, we construct a simple 1D two-probe device, so the translation symmetry is disabled." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# define translation symmetry\n", "builder.set_translationSymmetry(x=False, y=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once the construction is finished, use `create_device` to build the device." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# create device\n", "device = builder.create_device()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Calculate Density of States" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "tags": [ "hide-output" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "JunPy version---------------------------: 0.15.0.post29+ga5b3260\n", "Parallelization information\n", " BLAS Vendor-----------------------------: MKL\n", " Total number of MPI processes-----------: 1\n", " OMP_NUM_THREADS-------------------------: 1\n", " MKL_NUM_THREADS-------------------------: unset\n", " OPENBLAS_NUM_THREADS--------------------: unset\n", "Calculating density of states... (2024-08-14 20:01:57)\n", " Device information\n", " bias (mu2-mu1)--------------------------: 0\n", " central.numberOfSites-------------------: 5\n", " central.spinType------------------------: SpinType.GeneralSpin\n", " lead1.numberOfSites---------------------: 1\n", " lead1.spinType--------------------------: SpinType.GeneralSpin\n", " lead1.direction-------------------------: -3\n", " lead1.temperature-----------------------: 100\n", " lead1.chemicalPotential-----------------: 0\n", " lead2.numberOfSites---------------------: 1\n", " lead2.spinType--------------------------: SpinType.GeneralSpin\n", " lead2.direction-------------------------: 3\n", " lead2.temperature-----------------------: 100\n", " lead2.chemicalPotential-----------------: 0\n", " Energy sampling\n", " samplingName----------------------------: CustomSampling\n", " range-----------------------------------: [-3.0000e+00, 3.0000e+00]\n", " number----------------------------------: 61\n", " K-space sampling\n", " samplingName----------------------------: SymmetryKspaceSampling\n", " gridNumber------------------------------: (1, 1, 1)\n", " isTimeReversalSymmetry------------------: True\n", " numReducedKpoints-----------------------: 1\n", " Runtime message\n", " Integrate over energy and k-space...\n", " Start MPI execution...\n", " --> 6.6% finished (Elapsed time: 0:00:00.004573)\n", " --> 11.5% finished (Elapsed time: 0:00:00.001699)\n", " --> 16.4% finished (Elapsed time: 0:00:00.001630)\n", " --> 21.3% finished (Elapsed time: 0:00:00.001487)\n", " --> 26.2% finished (Elapsed time: 0:00:00.001480)\n", " --> 31.1% finished (Elapsed time: 0:00:00.001430)\n", " --> 36.1% finished (Elapsed time: 0:00:00.001932)\n", " --> 41.0% finished (Elapsed time: 0:00:00.001499)\n", " --> 45.9% finished (Elapsed time: 0:00:00.001404)\n", " --> 50.8% finished (Elapsed time: 0:00:00.001315)\n", " --> 55.7% finished (Elapsed time: 0:00:00.001314)\n", " --> 60.7% finished (Elapsed time: 0:00:00.001766)\n", " --> 65.6% finished (Elapsed time: 0:00:00.001617)\n", " --> 70.5% finished (Elapsed time: 0:00:00.001195)\n", " --> 75.4% finished (Elapsed time: 0:00:00.001387)\n", " --> 80.3% finished (Elapsed time: 0:00:00.001412)\n", " --> 85.2% finished (Elapsed time: 0:00:00.001434)\n", " --> 90.2% finished (Elapsed time: 0:00:00.001451)\n", " --> 95.1% finished (Elapsed time: 0:00:00.001334)\n", " --> 100.0% finished (Elapsed time: 0:00:00.001556)\n", " Wait for other processes...\n", " --> finished (Elapsed time: 0:00:00.000186)\n", " Gather results from other processes...\n", " --> finished (Elapsed time: 0:00:00.000293)\n", " Density of states report\n", " Energy_eV D_up-up D_dn-dn D_Re-up-dn D_Im-up-dn\n", " -3.000000e+00 1.256112e-03 9.353190e-05 0.000000e+00 0.000000e+00\n", " -2.900000e+00 2.050678e-03 1.113836e-04 0.000000e+00 0.000000e+00\n", " -2.800000e+00 3.807053e-03 1.340980e-04 0.000000e+00 0.000000e+00\n", " -2.700000e+00 8.907812e-03 1.634881e-04 0.000000e+00 0.000000e+00\n", " -2.600000e+00 3.611755e-02 2.022652e-04 0.000000e+00 0.000000e+00\n", " -2.500000e+00 5.699298e+00 2.546209e-04 0.000000e+00 0.000000e+00\n", " -2.400000e+00 2.635411e+00 3.272927e-04 0.000000e+00 0.000000e+00\n", " -2.300000e+00 1.839267e+00 4.316354e-04 0.000000e+00 0.000000e+00\n", " -2.200000e+00 1.511842e+00 5.879337e-04 0.000000e+00 0.000000e+00\n", " -2.100000e+00 1.326195e+00 8.352035e-04 0.000000e+00 0.000000e+00\n", " -2.000000e+00 1.203896e+00 1.256112e-03 0.000000e+00 0.000000e+00\n", " -1.900000e+00 1.115984e+00 2.050678e-03 0.000000e+00 0.000000e+00\n", " -1.800000e+00 1.049216e+00 3.807053e-03 0.000000e+00 0.000000e+00\n", " -1.700000e+00 9.966793e-01 8.907812e-03 0.000000e+00 0.000000e+00\n", " -1.600000e+00 9.544100e-01 3.611755e-02 0.000000e+00 0.000000e+00\n", " -1.500000e+00 9.199549e-01 5.699298e+00 0.000000e+00 0.000000e+00\n", " -1.400000e+00 8.916953e-01 2.635411e+00 0.000000e+00 0.000000e+00\n", " -1.300000e+00 8.685007e-01 1.839267e+00 0.000000e+00 0.000000e+00\n", " -1.200000e+00 8.495421e-01 1.511842e+00 0.000000e+00 0.000000e+00\n", " -1.100000e+00 8.341881e-01 1.326195e+00 0.000000e+00 0.000000e+00\n", " -1.000000e+00 8.219456e-01 1.203896e+00 0.000000e+00 0.000000e+00\n", " -9.000000e-01 8.124258e-01 1.115984e+00 0.000000e+00 0.000000e+00\n", " -8.000000e-01 8.053250e-01 1.049216e+00 0.000000e+00 0.000000e+00\n", " -7.000000e-01 8.004137e-01 9.966793e-01 0.000000e+00 0.000000e+00\n", " -6.000000e-01 7.975308e-01 9.544100e-01 0.000000e+00 0.000000e+00\n", " -5.000000e-01 7.965804e-01 9.199549e-01 0.000000e+00 0.000000e+00\n", " -4.000000e-01 7.975308e-01 8.916953e-01 0.000000e+00 0.000000e+00\n", " -3.000000e-01 8.004137e-01 8.685007e-01 0.000000e+00 0.000000e+00\n", " -2.000000e-01 8.053250e-01 8.495421e-01 0.000000e+00 0.000000e+00\n", " -1.000000e-01 8.124258e-01 8.341881e-01 0.000000e+00 0.000000e+00\n", " 0.000000e+00 8.219456e-01 8.219456e-01 0.000000e+00 0.000000e+00\n", " 1.000000e-01 8.341881e-01 8.124258e-01 0.000000e+00 0.000000e+00\n", " 2.000000e-01 8.495421e-01 8.053250e-01 0.000000e+00 0.000000e+00\n", " 3.000000e-01 8.685007e-01 8.004137e-01 0.000000e+00 0.000000e+00\n", " 4.000000e-01 8.916953e-01 7.975308e-01 0.000000e+00 0.000000e+00\n", " 5.000000e-01 9.199549e-01 7.965804e-01 0.000000e+00 0.000000e+00\n", " 6.000000e-01 9.544100e-01 7.975308e-01 0.000000e+00 0.000000e+00\n", " 7.000000e-01 9.966793e-01 8.004137e-01 0.000000e+00 0.000000e+00\n", " 8.000000e-01 1.049216e+00 8.053250e-01 0.000000e+00 0.000000e+00\n", " 9.000000e-01 1.115984e+00 8.124258e-01 0.000000e+00 0.000000e+00\n", " 1.000000e+00 1.203896e+00 8.219456e-01 0.000000e+00 0.000000e+00\n", " 1.100000e+00 1.326195e+00 8.341881e-01 0.000000e+00 0.000000e+00\n", " 1.200000e+00 1.511842e+00 8.495421e-01 0.000000e+00 0.000000e+00\n", " 1.300000e+00 1.839267e+00 8.685007e-01 0.000000e+00 0.000000e+00\n", " 1.400000e+00 2.635411e+00 8.916953e-01 0.000000e+00 0.000000e+00\n", " 1.500000e+00 5.699298e+00 9.199549e-01 0.000000e+00 0.000000e+00\n", " 1.600000e+00 3.611755e-02 9.544100e-01 0.000000e+00 0.000000e+00\n", " 1.700000e+00 8.907812e-03 9.966793e-01 0.000000e+00 0.000000e+00\n", " 1.800000e+00 3.807053e-03 1.049216e+00 0.000000e+00 0.000000e+00\n", " 1.900000e+00 2.050678e-03 1.115984e+00 0.000000e+00 0.000000e+00\n", " 2.000000e+00 1.256112e-03 1.203896e+00 0.000000e+00 0.000000e+00\n", " 2.100000e+00 8.352035e-04 1.326195e+00 0.000000e+00 0.000000e+00\n", " 2.200000e+00 5.879337e-04 1.511842e+00 0.000000e+00 0.000000e+00\n", " 2.300000e+00 4.316354e-04 1.839267e+00 0.000000e+00 0.000000e+00\n", " 2.400000e+00 3.272927e-04 2.635411e+00 0.000000e+00 0.000000e+00\n", " 2.500000e+00 2.546209e-04 5.699298e+00 0.000000e+00 0.000000e+00\n", " 2.600000e+00 2.022652e-04 3.611755e-02 0.000000e+00 0.000000e+00\n", " 2.700000e+00 1.634881e-04 8.907812e-03 0.000000e+00 0.000000e+00\n", " 2.800000e+00 1.340980e-04 3.807053e-03 0.000000e+00 0.000000e+00\n", " 2.900000e+00 1.113836e-04 2.050678e-03 0.000000e+00 0.000000e+00\n", " 3.000000e+00 9.353190e-05 1.256112e-03 0.000000e+00 0.000000e+00\n", "Calculation of density of states finished (2024-08-14 20:01:57)\n", "Elapsed time----------------------------: 0:00:00.054571\n" ] } ], "source": [ "calcr_dos = jp.DensityOfStates(\n", " device=device,\n", " energies=np.linspace(-3, 3, 61),\n", " kpoints=jp.SymmetryKspaceSampling((1,1,1)),\n", " etaSigma=0.01)\n", "jp.run(calcr_dos, savefile=False)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", " \n", " 2024-08-14T20:02:11.131367\n", " image/svg+xml\n", " \n", " \n", " Matplotlib v3.7.2, https://matplotlib.org/\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# shape: (#kpoints, #energies, #spin)\n", "dos = calcr_dos.densityOfStates(spin='diag')\n", "\n", "plt.plot(calcr_dos.energies, dos[0,:,0], '.-', label='spin-up')\n", "plt.plot(calcr_dos.energies, dos[0,:,1], '.-', label='spin-down')\n", "plt.xlabel('Energy (eV)')\n", "plt.ylabel('DOS (1/eV)')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Calculate Transmission" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "tags": [ "hide-output" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "JunPy version---------------------------: 0.15.0.post29+ga5b3260\n", "Parallelization information\n", " BLAS Vendor-----------------------------: MKL\n", " Total number of MPI processes-----------: 1\n", " OMP_NUM_THREADS-------------------------: 1\n", " MKL_NUM_THREADS-------------------------: unset\n", " OPENBLAS_NUM_THREADS--------------------: unset\n", "Calculating transmission... (2024-08-14 20:02:20)\n", " Device information\n", " bias (mu2-mu1)--------------------------: 0\n", " central.numberOfSites-------------------: 5\n", " central.spinType------------------------: SpinType.GeneralSpin\n", " lead1.numberOfSites---------------------: 1\n", " lead1.spinType--------------------------: SpinType.GeneralSpin\n", " lead1.direction-------------------------: -3\n", " lead1.temperature-----------------------: 100\n", " lead1.chemicalPotential-----------------: 0\n", " lead2.numberOfSites---------------------: 1\n", " lead2.spinType--------------------------: SpinType.GeneralSpin\n", " lead2.direction-------------------------: 3\n", " lead2.temperature-----------------------: 100\n", " lead2.chemicalPotential-----------------: 0\n", " Energy sampling\n", " samplingName----------------------------: CustomSampling\n", " range-----------------------------------: [-3.0000e+00, 3.0000e+00]\n", " number----------------------------------: 61\n", " K-space sampling\n", " samplingName----------------------------: SymmetryKspaceSampling\n", " gridNumber------------------------------: (1, 1, 1)\n", " isTimeReversalSymmetry------------------: True\n", " numReducedKpoints-----------------------: 1\n", " Runtime message\n", " Integrate over energy and k-space...\n", " Start MPI execution...\n", " --> 6.6% finished (Elapsed time: 0:00:00.003585)\n", " --> 11.5% finished (Elapsed time: 0:00:00.001882)\n", " --> 16.4% finished (Elapsed time: 0:00:00.001779)\n", " --> 21.3% finished (Elapsed time: 0:00:00.002063)\n", " --> 26.2% finished (Elapsed time: 0:00:00.001690)\n", " --> 31.1% finished (Elapsed time: 0:00:00.001729)\n", " --> 36.1% finished (Elapsed time: 0:00:00.002109)\n", " --> 41.0% finished (Elapsed time: 0:00:00.002407)\n", " --> 45.9% finished (Elapsed time: 0:00:00.001634)\n", " --> 50.8% finished (Elapsed time: 0:00:00.001618)\n", " --> 55.7% finished (Elapsed time: 0:00:00.001521)\n", " --> 60.7% finished (Elapsed time: 0:00:00.001520)\n", " --> 65.6% finished (Elapsed time: 0:00:00.001730)\n", " --> 70.5% finished (Elapsed time: 0:00:00.002024)\n", " --> 75.4% finished (Elapsed time: 0:00:00.001649)\n", " --> 80.3% finished (Elapsed time: 0:00:00.001612)\n", " --> 85.2% finished (Elapsed time: 0:00:00.001697)\n", " --> 90.2% finished (Elapsed time: 0:00:00.002344)\n", " --> 95.1% finished (Elapsed time: 0:00:00.001554)\n", " --> 100.0% finished (Elapsed time: 0:00:00.001243)\n", " Wait for other processes...\n", " --> finished (Elapsed time: 0:00:00.000009)\n", " Gather results from other processes...\n", " --> finished (Elapsed time: 0:00:00.000113)\n", " Transmission report\n", " Energy_eV T_up-up T_dn-dn T_Re-up-dn T_Im-up-dn\n", " -3.000000e+00 7.716049e-12 5.451332e-15 0.000000e+00 0.000000e+00\n", " -2.900000e+00 2.559462e-11 9.265870e-15 0.000000e+00 0.000000e+00\n", " -2.800000e+00 1.073804e-10 1.618547e-14 0.000000e+00 0.000000e+00\n", " -2.700000e+00 6.715972e-10 2.915862e-14 0.000000e+00 0.000000e+00\n", " -2.600000e+00 1.020449e-08 5.441482e-14 0.000000e+00 0.000000e+00\n", " -2.500000e+00 4.826224e-01 1.057711e-13 0.000000e+00 0.000000e+00\n", " -2.400000e+00 1.000000e+00 2.156665e-13 0.000000e+00 0.000000e+00\n", " -2.300000e+00 1.000000e+00 4.655865e-13 0.000000e+00 0.000000e+00\n", " -2.200000e+00 1.000000e+00 1.077732e-12 0.000000e+00 0.000000e+00\n", " -2.100000e+00 1.000000e+00 2.723300e-12 0.000000e+00 0.000000e+00\n", " -2.000000e+00 1.000000e+00 7.716049e-12 0.000000e+00 0.000000e+00\n", " -1.900000e+00 1.000000e+00 2.559462e-11 0.000000e+00 0.000000e+00\n", " -1.800000e+00 1.000000e+00 1.073804e-10 0.000000e+00 0.000000e+00\n", " -1.700000e+00 1.000000e+00 6.715972e-10 0.000000e+00 0.000000e+00\n", " -1.600000e+00 1.000000e+00 1.020449e-08 0.000000e+00 0.000000e+00\n", " -1.500000e+00 1.000000e+00 4.826224e-01 0.000000e+00 0.000000e+00\n", " -1.400000e+00 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " -1.300000e+00 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " -1.200000e+00 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " -1.100000e+00 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " -1.000000e+00 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " -9.000000e-01 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " -8.000000e-01 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " -7.000000e-01 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " -6.000000e-01 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " -5.000000e-01 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " -4.000000e-01 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " -3.000000e-01 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " -2.000000e-01 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " -1.000000e-01 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " 0.000000e+00 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " 1.000000e-01 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " 2.000000e-01 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " 3.000000e-01 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " 4.000000e-01 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " 5.000000e-01 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " 6.000000e-01 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " 7.000000e-01 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " 8.000000e-01 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " 9.000000e-01 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " 1.000000e+00 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " 1.100000e+00 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " 1.200000e+00 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " 1.300000e+00 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " 1.400000e+00 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00\n", " 1.500000e+00 4.826224e-01 1.000000e+00 0.000000e+00 0.000000e+00\n", " 1.600000e+00 1.020449e-08 1.000000e+00 0.000000e+00 0.000000e+00\n", " 1.700000e+00 6.715972e-10 1.000000e+00 0.000000e+00 0.000000e+00\n", " 1.800000e+00 1.073804e-10 1.000000e+00 0.000000e+00 0.000000e+00\n", " 1.900000e+00 2.559462e-11 1.000000e+00 0.000000e+00 0.000000e+00\n", " 2.000000e+00 7.716049e-12 1.000000e+00 0.000000e+00 0.000000e+00\n", " 2.100000e+00 2.723300e-12 1.000000e+00 0.000000e+00 0.000000e+00\n", " 2.200000e+00 1.077732e-12 1.000000e+00 0.000000e+00 0.000000e+00\n", " 2.300000e+00 4.655865e-13 1.000000e+00 0.000000e+00 0.000000e+00\n", " 2.400000e+00 2.156665e-13 1.000000e+00 0.000000e+00 0.000000e+00\n", " 2.500000e+00 1.057711e-13 4.826224e-01 0.000000e+00 0.000000e+00\n", " 2.600000e+00 5.441482e-14 1.020449e-08 0.000000e+00 0.000000e+00\n", " 2.700000e+00 2.915862e-14 6.715972e-10 0.000000e+00 0.000000e+00\n", " 2.800000e+00 1.618547e-14 1.073804e-10 0.000000e+00 0.000000e+00\n", " 2.900000e+00 9.265870e-15 2.559462e-11 0.000000e+00 0.000000e+00\n", " 3.000000e+00 5.451332e-15 7.716049e-12 0.000000e+00 0.000000e+00\n", "Calculation of transmission finished (2024-08-14 20:02:20)\n", "Elapsed time----------------------------: 0:00:00.046322\n" ] } ], "source": [ "calcr_trans = jp.Transmission(\n", " device=device,\n", " energies=np.linspace(-3, 3, 61),\n", " kpoints=jp.SymmetryKspaceSampling((1,1,1)),\n", " etaSigma=1e-4,\n", ")\n", "jp.run(calcr_trans, savefile=False)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", " \n", " 2024-08-14T20:02:30.525031\n", " image/svg+xml\n", " \n", " \n", " Matplotlib v3.7.2, https://matplotlib.org/\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n" ], "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# shape: (#kpoints, #energies, #spin)\n", "trans = calcr_trans.transmission(spin='diag')\n", "\n", "plt.plot(calcr_trans.energies, trans[0,:,0], '.-', label='spin-up')\n", "plt.plot(calcr_trans.energies, trans[0,:,1], '.-', label='spin-down')\n", "plt.xlabel('Energy (eV)')\n", "plt.ylabel('Transmission')\n", "plt.legend()\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.13" } }, "nbformat": 4, "nbformat_minor": 4 }