SNSJosephson

  Copyright (C) 2009-2016 Peter Rakyta, Ph.D.
  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
  You should have received a copy of the GNU General Public License
  along with this program.  If not, see http://www.gnu.org/licenses/.

Description

A class to calculate the DC Josephson current in the SNS arrangement.

Usage Examples

  • DC Josephson current

    Calculates the DC Josephson current in an SNS geometry on a one-dimensional chain.
  • SSH Josephson

    Calculates the DC Josephson current through an SSH chain including a topological band inversion.

Class references

Syntax

object = SNSJosephson(varargin)

Parameters
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
  • width

    Integer. Gives the number of the atomic sites in the cross section of the ribbon. (Obsolete)
  • height

    Integer. Gives the height of the ribbon in units of the lattice vector. (Obsolete)
  • T

    The absolute temperature in Kelvins.
  • filenameIn

    Input filename.
  • filenameOut

    Output filename.
  • E

    The energy used in the calculations.
  • EF

    The Fermi energy in eV.
  • phi

    A vector of pair potential phases in the left (1st) and right (2nd) superconductor
  • silent

    Set true for suppress the displaying of the output messages.
  • gfininvfromHamiltonian

    Set true to calculte the Green's function of the scattering region from the Hamiltonian, or false (default) to use the fast method instead (see PRB 93, 224510 (2016) for details).
  • scatterPotential

    A function handle $$y=f( coordinates )$$ (or $$y=f( CreateH, E )$$ ) of the potential across the junction in case gfininvfromHamiltonian is true.
  • leadmodel

    A function handle $$Surface_tmp=f( idx, E, varargin )$$ of the alternative lead model with equivalent inputs and return values as SurfaceGreenFunctionCalculator and with E standing for the energy.
  • ribbon

    An instance of an object TwoTerminal or its subclass to use instead of the automaticlly generated ribbon instance.
  • q

    The tranverse momentum quantum number for transverse computations.

Attributes

Class has no additional attributes.

Methods (public)

Methods (protected)

Methods (private)

SNSJosephson::Transport

Calculates the transmission probability of the BdG quasiparticles in the SNS arrangement.

Syntax

[Conductance,ny,DeltaC] = object.Transport(Energy, B)

Parameters
Energy The energy to be used in the calculations.
B The strength of the magnetic field in the units of Tesla.

Return
Conductance The calculated conductance in the units of $$2h/e$$.
ny The number of the open channels in the leads.
DeltaC The standard deviation of the calculated transmission probabilities.



SNSJosephson::CurrentCalc_discrete

Calculates the Josephson current induced by the continuous scattering states.

Syntax

currentvec = object.CurrentCalc_discrete( DeltaPhi_vec, varargin )

Parameters
DeltaPhi_vec Array of phase diffrencies between the superconducting contacts.
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
  • range

    String. Set 'ABS' (default) for the Andreev bound states, 'NBS' for the normal bound states, 'CONT' for the scattering states, or 'ALL' for calculating all ranges at once.
  • Edb

    The number of the energy points over the contour integral.
  • DeltaPhi

    A parameter to control the incident angle of the integration contour near the real axis. (Default value is $$\Delta\Phi=0.5\pi$$.
  • Evec

    The complex energy points in case of custom integration path.
  • ProximityOn

    Logical value. Set true to recalculate the Green operator of the scattering center for every phase difference. Useful for self-consistent modelling of the proximity effect.

Return
currentvec An array of the calculated current corresponding to the phase differencies DeltaPhi_vec



SNSJosephson::CurrentCalc_continuum

Calculates the Josephson current induced by the continuous scattering states.

Syntax

[currentvec, current_surf] = object.CurrentCalc_continuum( DeltaPhi_vec, varargin )

Parameters
DeltaPhi_vec The vector of the superconducting phase differences.
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
  • Edb

    The number of the energy points over the contour integral.

Return
currentvec The vector of the integrated Josephson current in the energy range of the scattering states for each phase difference given in the parameter DeltaPhi_vec.
current_surf A matrix containing the calculated Josephson current for each phase difference (rows) and energy point (columns).



SNSJosephson::createCurrentOperator

Calculates the matrix representation of the current operator and the inverse Greens function of the scattering region.

Syntax

[current_op, gfininv] = object.createCurrentOperator( varargin )

Parameters
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
  • ribbon

    An instance of the class TwoTerminal (or it's subclass) storing the Hamiltonians of the unit cell in the normal region.

Return
current_op The matrix representation of the current operator.
gfininv The inverse Green operator of the scattering region.



SNSJosephson::getBandWidth

Determines the band width in the leads and in the scattering region. The results are stored in the attribute BandWidth.

Syntax

ret = object.getBandWidth()

Return
ret An instance of the structure BandWidth.



SNSJosephson::create_scatter_GreensFunction

Calculates the surface Green operator of the scattering region.

Syntax

object.create_scatter_GreensFunction( varargin )

Parameters
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
  • onlyAtEnds

    Logical value. Set true to calculate the Greens function only at the ends of the scattering region, or false (default) to calculate the Greens function in several inner slabs as well.
  • gauge_trans

    Logical value. Set true (default) to perform gauge transformation on the Green's function and on the Hamiltonians, or false otherwise.
  • ribbon

    An instance of the interface TwoTerminal or it's subclass storing the Hamiltonians for the Dyson's equation. (Needed for parallel computations.)



SNSJosephson::increasePhaseDifference

Increase the phase difference between the Leads by delta_phi (apply gauge transformation on the second lead).

Syntax

object.increasePhaseDifference( delta_phi, ribbon_loc )

Parameters
delta_phi The phase difference increment between the leads.
ribbon_loc An instance of the interface TwoTerminal or it's subclass storing the Hamiltonians.



SNSJosephson::InputParsing

Description

Parses the optional parameters for the class constructor.

Syntax

object.InputParsing(varargin)

Parameters
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
  • width

    OBSOLETE parameter
  • height

    OBSOLETE parameter
  • T

    The absolute temperature in Kelvins.
  • filenameIn

    OBSOLETE parameter
  • filenameOut

    OBSOLETE parameter
  • E

    OBSOLETE parameter
  • EF

    OBSOLETE parameter
  • phi

    OBSOLETE parameter
  • silent

    OBSOLETE parameter
  • gfininvfromHamiltonian

    Set true to calculte the Green's function of the scattering region from the Hamiltonian, or false (default) to use the fast method instead (see PRB 93, 224510 (2016) for details).
  • scatterPotential

    A function handle $$pot=f( coordinates )$$ or $$pot=f( CreateH, Energy)$$ for the potential to be applied in the Hamiltonian in case gfininvfromHamiltonian is set true.
  • leadmodel

    A function handle $$Lead=f( idx, E, varargin )$$ of the alternative lead model with equivalent inputs and return values as SurfaceGreenFunctionCalculator and with E standing for the energy.
  • ribbon

    OBSOLETE parameter. Use parameter junction istead of this.
  • junctionn

    An instance of a class NTerminal or its subclass describing the junction.
  • q

    OBSOLETE parameter.