Source-linked AI summary

Kwant: a software package for quantum transport

Christoph W. Groth, Michael Wimmer, Anton R. Akhmerov, Xavier Waintal

arXiv:1309.2926v2cond-mat.mes-hall

TL;DR

양자 수송 시뮬레이션에는 폭넓은 tight-binding 적용성, 성능, 상호운용성, 유연성, 사용 편의성을 결합한 패키지가 부족했다. 이 논문은 양자 수송 시스템의 정의와 분석을 위한 표현력 높은 Python 인터페이스를 제공하면서 recursive Green’s function 방법보다 우수한 성능을 보이는 알고리즘을 갖춘 Kwant를 소개한다.

  • 문제

    기존 구현은 준 1차원 기하구조 또는 특정 tight-binding Hamiltonian으로 제한되었으며, 사용 편의성과 성능을 함께 고려하면서 폭넓은 양자 수송 적용성을 강조한 패키지는 없었다.

  • 방법

    Kwant는 tight-binding Hamiltonian을 구성하기 위한 high-level Python interface와 효율적인 low-level 표현 및 수치 알고리즘을 결합한다.

  • 결과

    Kwant의 알고리즘은 recursive Green’s function method보다 유의하게 우수한 성능을 보이며, 일반적으로 사용되는 알고리즘과 관련된 불안정성을 피한다.

  • 시사점 및 한계

    Kwant는 tight-binding model을 정의하고 다루기 위한 단순하고 명확하며 강력한 interface를 제공하는 동시에 high-performance 양자 수송 계산을 지원한다.

  • 시사점 및 한계

    Kwant version 1.0은 여전히 개발 중이며, 추가 solver와 더 폭넓은 symmetry 지원이 향후 개선 사항으로 제시된다.

Abstract

from arXiv · show

Kwant is a Python package for numerical quantum transport calculations. It aims to be an user-friendly, universal, and high-performance toolbox for the simulation of physical systems of any dimensionality and geometry that can be described by a tight-binding model. Kwant has been designed such that the natural concepts of the theory of quantum transport (lattices, symmetries, electrodes, orbital/spin/electron-hole degrees of freedom) are exposed in a simple and transparent way: Defining a new simulation setup is very close to describing the corresponding mathematical model. Kwant offers direct support for calculations of transport properties (conductance, noise, scattering matrix), dispersion relations, modes, wave functions, various Green's functions, and out-of-equilibrium local quantities. Other computations involving tight-binding Hamiltonians can be implemented easily thanks to its extensible and modular nature. Kwant is free software available at http://kwant-project.org/.

1. 서론

Kwant는 광범위한 tight-binding 시스템에서 효율적인 quantum-transport scattering 계산을 수행하기 위한 공개 소프트웨어이자 사용자 친화적인 Python package다. 일반적으로 사용되는 recursive Green’s method보다 뛰어난 견고한 알고리즘을 interoperability 및 표현력 높은 시스템 정의와 결합한다.

  • 1. 서론: Scattering 계산은 conductance와 기타 transport property를 직접 산출하며, 더 복잡한 현상을 구성하는 기본 요소로 활용될 수 있다.Scattering problem은 무한 lead에 연결된 유한 시스템을 다루며, 이 연결은 강할 수도 있다.
  • 1. 서론: Kwant는 scattering-problem의 정의와 해법 전반에서 다른 package 및 algorithm과 높은 interoperability를 보인다.이는 특수 목적 package가 scattering solver를 다시 구현해야 할 필요를 줄이는 동시에, Kwant의 효율적인 algorithm을 활용할 수 있게 한다.

2. 양자 수송의 기본 개념 개요

Kwant는 양자 수송 시스템을 유한한 산란 영역과 연결된 반무한 주기적 전극으로 이루어진 tight-binding 그래프로 모델링한다. 파동함수 접근법은 lead mode로부터 산란 상태와 산란 행렬을 도출하므로 수송 및 국소 물성 계산이 가능하다.

  • 시스템 기하 구조: Kwant는 주로 실험적 접점으로 평면파를 유도하는 반무한 주기적 전극에 연결된 유한 산란 영역을 포함하는 무한 시스템을 대상으로 한다.유한 시스템도 지원하지만, 주된 대상은 Landauer–Büttiker 형식의 산란 영역과 lead가 결합된 기하 구조다.
  • Tight-binding 표현: Tight-binding Hamiltonian은 격자 사이트와 원자 모델 또는 연속체의 유한차분 이산화에서 비롯되는 내부 spin, orbital 또는 Nambu electron-hole 자유도를 표현한다.Kwant는 이러한 Hamiltonian을 주석이 추가된 무한 그래프로 표현한다. 노드에는 onsite 행렬이 할당되고, 에지는 영이 아닌 hopping 행렬을 나타내며, lead의 주기성으로 유한한 표현이 얻어진다.
  • 산란 정식화: Kwant는 파동함수 산란 정식화를 중심으로 한다. 기본 solver가 이를 사용하며, 수학적으로 동등한 non-equilibrium Green’s-function 접근법보다 더 안정적이기 때문이다.여러 lead는 서로 겹치지 않는 section을 갖는 하나의 유효 lead로 다룰 수 있으며, 이때 산란 영역과 주기적 lead unit cell에 대해 block 삼중대각 구조가 형성된다.
  • Lead mode: Lead wave function은 translation operator의 mode를 중첩한 형태다. |λ_n|<1인 mode는 evanescent이고, λ_n=e^ik_n인 mode는 propagating하며 전류로 정규화된다.산란 상태는 tight-binding Schrödinger equation을 통해 lead mode를 산란 영역의 wave function에 matching하여 얻는다.
  • 계산되는 관측량: 산란 행렬과 산란 영역 wave function은 Kwant의 주요 원시 출력이며, 이를 바탕으로 conductance, shot noise, spin current, 열전 계수, local density of states 및 current density를 계산할 수 있다.미분 conductance는 Landauer 공식에 따라 산란 행렬에서 구하며, 내부 물성은 산란 영역 wave function으로부터 얻는다.

3. KWANT의 설계

Kwant는 직관적인 Python 기반 시스템 구성과 저수준 수치 풀이를 분리해 유연성, 사용 편의성, 성능, 상호운용성을 결합한다. Builder와 범용 저수준 표현은 일반적인 tight-binding 모델과 후속 계산을 지원한다.

  • 설계 목표: Kwant의 2단계 설계는 Python에서 tight-binding Hamiltonian을 구성한 다음, 저수준 수치 알고리즘과 자료구조로 산란 문제를 푼다.구성 단계에서는 lattice와 같은 물리학 개념을 사용하고, 풀이 단계는 더 복잡한 수치 알고리즘에 적합하다.
  • 설계 목표: 희소 선형대수 라이브러리의 nested dissection을 활용하면 Kwant는 RGF 알고리즘의 순수 C reference 구현보다 훨씬 뛰어난 성능을 낸다.따라서 2단계 접근법은 성능을 크게 저하시키지 않는다.
  • Builder 객체: Builder는 site와 hopping을 Hamiltonian 값으로 대응시키는 graph mapping으로 tight-binding system을 표현하며, geometry를 점진적으로 편집하기 위해 hash table을 사용한다.Site family와 tag는 site의 유형과 위치를 나타내고, regular lattice는 sublattice와 translation에 관련된 hopping 연산을 지원한다.
  • Builder 객체: Kwant는 여러 local degree of freedom과 위치의 함수에 대응하도록 Hamiltonian 원소를 상수에서 matrix로 확장하면서 Hermiticity와 real-space symmetry를 지원한다.Translationally symmetric Builder는 다른 Builder에 연결해 scattering lead를 구성할 수 있다.
  • 저수준 system: Builder를 finalize하면 quantum-transport solver와 외부 계산의 입력으로 사용되는, 메모리 효율적이고 언어 간 상호운용이 가능한 저수준 system이 생성된다.저수준 system은 외부 package에서 직접 정의할 수도 있으며, 그 Hamiltonian을 ARPACK과 같은 표준 eigenstate routine에 전달할 수 있다.

4. 다른 quantum transport package와의 비교

이 절에서는 quantum-transport software 가운데 Kwant의 위치를 다룬다. molecular junction용 DFT–non-equilibrium-Green’s-function package와 mesoscopic model 및 geometry에 대한 Kwant의 범용성을 대조하고, Kwant가 RGF 대신 nested dissection을 사용해 유사한 scattering package보다 significantly outperforms한다는 점을 보고한다.

  • 관련 package: Quantum transport는 molecular-junction transport용 commercial tools를 포함해 서로 다른 분야의 software package로 다뤄진다.예로 TranSiesta/Atomistix Toolkit, SMEAGOL, OpenMX, nanodcal/nanodsim 이 있다.
  • Generality와 범위: Kwant는 mesoscopic physics에서 마주치는 매우 다양한 복잡한 model과 geometry를 대상으로 하며, 더 좁은 application domain보다 generality를 중시한다.이는 DFT와 non-equilibrium Green’s function을 결합하는 TranSiesta/Atomistix Toolkit, SMEAGOL, OpenMX, nanodcal/nanodsim 같은 molecular-junction package와 대조된다.
  • 성능 비교: Kwant는 RGF 대신 nested dissection을 사용해 private scattering code 와 publicly available한 KNIT package 보다 significantly outperforms한다.이 비교는 scattering problem을 푸는 package를 기준으로 제시된다.

5. Kwant 사용 예시: 양자 billiard에서의 universal conductance fluctuations

Kwant를 universal conductance fluctuations와 chaotic density of states를 보이는 stadium-billiard scattering 문제를 통해 설명한다. 이 예시는 system 정의와 observable 계산이 투명하며 몇 단계만으로 수행됨을 보여준다.

  • 5. Kwant 사용 예시: 양자 billiard에서의 universal conductance fluctuations: scattering region은 stadium-shaped lattice, onsite potential −4t, nearest-neighbor hopping t = −1로 정의된다.shape function이 stadium 내부의 lattice site를 선택하고, 여기에 onsite 및 hopping term을 할당한다.
  • 5. Kwant 사용 예시: 양자 billiard에서의 universal conductance fluctuations: lead는 translational symmetry를 통해 scattering problem을 완성하며, symmetry-related image site 전체에 lead 연산을 자동으로 적용한다.이 예시는 symmetry [0, −1]을 갖는 lead를 구성하고, 그 site와 nearest-neighbor hopping을 지정한 뒤 system에 연결한다.
  • 5. Kwant 사용 예시: 양자 billiard에서의 universal conductance fluctuations: 효율적인 수치 계산을 위해 system을 변환한 뒤, Kwant의 solver가 scattering matrix와 local density of states로부터 conductance를 계산한다.scattering matrix는 lead 사이의 transmission을 제공하고, kwant.ldos는 scattering region의 local density of states를 반환한다.
  • 5. Kwant 사용 예시: 양자 billiard에서의 universal conductance fluctuations: 결과 plot은 stadium billiard에서 universal conductance fluctuations와 불규칙하고 chaotic한 density of states를 보여준다.Figure 4는 energy에 따른 conductance와 scattering states의 local density를 나타내며, 첫 10개 lead unit cell을 포함한다.

6. 대규모 응용: 그래핀 기반 비국소 스핀 밸브의 Hanle effect

Kwant는 4단자 그래핀 비국소 스핀 밸브를 시뮬레이션하고 Hanle effect를 재현하며, 자기장이 증가할 때 스핀 의존 비국소 저항의 부호 반전을 포함한다. 양자 결맞음 모델은 반고전적 확산을 넘어 위상 결맞음과 ballistic 전파를 연구한다.

  • 4단자 소자는 비국소 저항 R_01,23 = V/I을 통해 순수 스핀 수송을 측정하며, 전류는 접점 0과 1을 통해 흐르고 전압은 2와 3 사이에서 측정된다.전압 측정 전극에는 전기적 전류가 흐르지 않으며, 이 구성은 최근 실험적으로 연구되었다.
  • 최소 tight-binding 모델은 그래핀과 cubic-lattice 강자성 리드, 스핀 의존 계면 hopping, 정적 disorder, 그리고 면내 자기장 H_x를 결합한다.계면 polarization은 −1 < β < 1로 제어되며, disorder 세기는 W로 설정된다.
  • Kwant는 서로 다른 site family와 matrix Hamiltonian을 통해 4단자 multi-lattice spinful 시스템을 자연스럽게 표현하며, Python은 사용자 정의 coupling과 수치적 확장을 가능하게 한다.그래핀–강자성체 연결은 Kwant 좌표와 SciPy kd-tree를 사용해 사용자 정의 코드로 구현되며, 저항 계산에는 NumPy로 푸는 3×3 선형 방정식이 사용된다.
  • 시뮬레이션은 전형적인 Hanle signal을 생성한다. H_x가 증가하면 평행 및 반평행 자화에 대한 스핀 의존 신호 ΔR = R_P − R_AP의 부호가 변한다.Figure 5는 β = 0.5, t = 0.2, W = 0.4와 약 7000개의 탄소 원자를 포함하는 그래핀 ribbon을 사용한다.
  • 기존의 반고전적 확산 처리와 달리, 완전한 양자 모델은 양자 결맞음을 고려하며 W = 0일 때 위상 결맞음 수송 또는 ballistic transport를 조사할 수 있다.유한한 스핀 확산 길이를 도입하기 위해 추가적인 magnetic disorder를 포함할 수 있다.

7. 벤치마크

이 벤치마크는 정사각형 tight-binding 시스템에 대한 Kwant의 conductance 계산을 RGF 알고리즘의 C 구현과 비교하며, 시스템 크기가 증가할 때 runtime과 memory를 측정한다. Kwant의 MUMPS 기반 solver는 대규모 시스템에서 더 빠르지만 memory를 더 많이 사용하는 반면, RGF는 더 큰 규모의 계산에도 사용할 수 있다.

  • 7. 벤치마크: 벤치마크는 고정된 에너지에서 양쪽 맞은편에 폭 L인 lead가 연결된 L × L 정사각형 tight-binding lattice의 conductance를 측정한다.에너지가 고정되어 있으므로, 전파 가능한 lead mode의 수는 L에 비례한다.
  • 7. 벤치마크: 대규모 시스템에서 MUMPS 기반 solver를 사용하는 Kwant는 C RGF code보다 최대 10배 빠르며, crossover는 L = 50 부근에서 나타난다.Figure 6은 정사각형 시스템의 변 길이 L의 함수로 construction time과 solving time을 비교한다.
  • 7. 벤치마크: L이 클 때 construction은 O(L^2), MUMPS 기반 solving은 O(L^3), RGF solving은 O(L^4), MUMPS memory는 O(L^2 logL), RGF memory는 O(L^2)로 scale한다.이는 Figures 6과 7에 제시된 이론적으로 예상되는 asymptotic scaling이다.
  • 7. 벤치마크: Kwant의 MUMPS 기반 solver는 RGF보다 memory를 더 많이 사용하지만, 수 GiB의 main memory로 10^6개 사이트를 초과하는 시스템을 처리할 수 있다.RGF도 훨씬 더 큰 시스템을 처리하도록 구현되었지만, 당시에는 아직 public release에 포함되지 않았다.

8. 결론 · 부록 A: builder 객체의 프로그래밍 인터페이스 · A.1. 사이트와 site family

Kwant는 tight-binding model을 정의하기 위한 명확하고 강력한 Python interface와 고성능 quantum-transport algorithm을 결합한다. Kwant의 builder interface는 site family와 tag를 통해 사이트를 표현하고, 임의의 lattice 차원과 geometry를 지원하며, 계속 개발 중인 프로젝트인 동시에 open-source version 1.0으로 공개되었다.

  • 8. 결론: Kwant의 이중 목표는 새로운 언어를 만드는 대신 Python을 확장하여, tight-binding model을 위한 단순하고 명확하며 강력한 interface와 고성능 quantum-transport algorithm을 결합하는 것이다.설계에서는 기존의 특수 목적 input file을 Python 기반 model description으로 대체한다.
  • 8. 결론: Version 1.0은 Kwant의 첫 공개 release였지만, 추가 solver와 더 일반적인 symmetry를 포함한 개선이 계획되어 있어 프로젝트는 여전히 개발 중이다.개선 목록은 source code와 함께 관리된다.
  • 8. 결론: Kwant는 simplified BSD license로 배포되는 무료 open-source software이며, 웹사이트와 mailing list는 사용자와 개발자 커뮤니티를 지원하도록 마련되었다.프로젝트는 관련 code module의 기여와 공유를 환영한다.
  • A.1. 사이트와 site family: Site object는 tight-binding site를 추상화하며, 각 사이트는 정확히 하나의 site family에 속하고 해당 family 안에서는 tag로 구별된다.Regular lattice에서 tag는 일반적으로 정수 lattice 좌표이며, site family는 흔히 crystal lattice 또는 sublattice를 나타낸다.
  • A.1. 사이트와 site family: 기저를 갖는 임의의 crystal lattice는 Bravais-lattice primitive vector와 unit cell 내부 사이트의 좌표로 정의할 수 있으며, graphene의 honeycomb lattice도 이에 포함된다.각 sublattice에는 대응하는 site family가 할당된다.
  • A.1. 사이트와 site family: 사이트의 lattice position은 해당 family와 tag에 유일하게 대응하며, site.pos를 통해 real-space position에 접근할 수 있다.예를 들어 R = 5u_0 + 8u_1 + v_B에 있는 사이트는 B(5,8)로 식별된다.
  • A.1. 사이트와 site family: Kwant는 미리 정의된 일반 lattice와 차원 독립적인 graph representation을 포함하므로, 2차원 system으로 제한되지 않는다.Site family는 amorphous material이나 문자 기반 label도 나타낼 수 있지만, 대부분의 system에는 Bravais lattice로 충분하다.

A.2. Python 매핑으로 표현하는 tight-binding 시스템 … B.1. 저수준 시스템

Kwant는 site, hopping, matrix 또는 function-valued Hamiltonian, bulk 연산, symmetry, lead를 지원하는 Python builder를 통해 tight-binding 시스템을 모델링한다. 이 builder는 solver에 Hamiltonian을 노출하는 sparse 저수준 시스템으로 finalize할 수 있다.

  • A.2. Python 매핑으로 표현하는 tight-binding 시스템: Builder는 site와 hopping을 Hamiltonian 부분행렬에 대응시키는 Python mappings로 tight-binding 시스템을 표현하면서 Hermiticity를 보존하고, site가 삭제되면 연결된 hopping을 제거한다.값은 일반적인 mapping 문법으로 조회, 할당, 삭제할 수 있으며, hopping은 builder에 존재하는 site 사이에만 존재한다.
  • A.3. Site와 hopping의 값: Kwant는 scalar 또는 matrix-valued onsite 및 hopping term을 받아들이며, site 또는 hopping에 따라 평가되는 delayed value function을 지원하므로 하나의 finalized system에서 parameter를 변경할 수 있다.matrix value에는 NumPy 또는 tinyarray object를 사용할 수 있으며, tinyarray는 작은 array에서 더 나은 성능을 내도록 최적화되어 있다.
  • A.3.1. 예시: hopping과 site를 위한 value function: Value function은 Peierls 치환 hopping과 random-access pseudo-random site potential을 결합해 magnetic field와 재현 가능한 disorder를 모델링하며, 그 출력은 solver 호출 중에도 안정적으로 유지된다.Disorder generator는 site 표현과 random seed와 유사하게 작동하는 salt parameter를 사용한다.
  • A.3.2. 예시: matrix를 반환하는 value function: Matrix-returning value function은 간결한 parameter namespace를 사용해 multi-orbital Hamiltonian을 정의하며, 실제적인 비효율 없이 site 또는 hopping마다 출력을 다시 계산할 수 있다.Kwant에서는 matrix를 포함해 constant builder value로 유효한 모든 것을 value function이 반환할 수 있다.
  • A.4. 여러 site/hopping에 한 번에 적용하기: Composite builder key를 사용하면 iterable, shape 기반 영역 선택, HoppingKind, nearest-neighbor key를 통해 많은 site 또는 hopping을 한 번에 추가할 수 있어 복잡한 geometry에서도 명시적인 loop가 필요하지 않다.shape method는 영역 내부에서 도달 가능한 lattice site를 찾고, high-level key는 regular lattice에서 n번째 nearest-neighbor hopping을 생성할 수 있다.
  • A.5. Symmetry: Symmetry-enabled builder는 transformation과 fundamental domain을 통해 무한 주기 시스템을 표현하며, translational symmetry는 lead 구성에 사용되지만 Kwant 1.0에서는 저수준 finalization이 one-dimensional translation symmetry로 제한된다.Site와 hopping은 내부적으로 fundamental domain의 representative에 대응되므로, symmetry와 관련된 key를 통해 동등한 object를 조작할 수 있다.
  • A.6. Lead: 무한 주기 builder는 interface를 통해 finite scattering region에 lead로 연결되며, attach_lead는 호환되는 site와 hopping을 자동으로 추가하고 lead interface를 결정한다.Lead unit-cell geometry는 fundamental domain에 의해 결정되며, 이는 추가해야 할 site에는 영향을 주지만 system의 physics에는 영향을 주지 않는다.
  • B.1. 저수준 시스템: 저수준 시스템은 sparse tight-binding Hamiltonian을 compressed sparse row format의 주석이 달린 graph로 인코딩하여 construction-to-solving 인터페이스를 제공하고, scalar 또는 block matrix Hamiltonian을 지원한다.저수준 시스템은 보통 Builder.finalized로 생성되지만 FiniteSystem에서 직접 구현할 수도 있으며, hamiltonian_submatrix는 dense 또는 sparse Hamiltonian 부분행렬을 반환한다.

B.2. 양자 수송

Kwant는 wave-function approach를 사용해 sparse linear system을 풀고, 효율적인 scaling을 위해 sparse-matrix ordering을 적용함으로써 quantum transport를 계산한다. scattering matrix, wave function, local density를 제공하여 quantum Hall conductance와 backscattering 같은 수송 분석을 가능하게 한다.

  • 양자 수송: Kwant의 default wave-function algorithm은 noninvertible hopping과 수치적으로 안정화된 경우를 포함하는 sparse system을 설정하고 풀어 수송을 계산한다.이 방법은 계와 연결된 lead의 Hamiltonian matrix로 정식화되며, Green’s-function method와 연결된다.
  • 양자 수송: Nested-dissection sparse solver는 2차원 rectangular tight-binding solve를 O(LW^2) time으로 줄인다. 다만 pivoting은 안정성을 보장하는 대신 scaling을 악화시킬 수 있다.이 sparse system에는 scattering-region Hamiltonian과 outgoing 및 evanescent lead mode가 포함된다. 실제로 Kwant는 RGF가 실패한 문제를 안정적으로 풀었다.
  • 양자 수송: scattering matrix는 lead 간 transmission과 noise를 제공하며, 선택적 wave-function calculation을 통해 memory가 허용하는 경우 개별 scattering state를 확인할 수 있다.kwant.smatrix는 대규모 계에서 scattering wave function을 유지하려면 과도한 memory가 필요할 수 있으므로 기본적으로 이를 폐기한다. 필요할 때는 kwant.wave_function으로 가져올 수 있다.
  • 양자 수송: quantum Hall conductance에는 양자화된 plateau가 두 개 나타나는 반면, 1/Φ = 40 부근의 세 번째 plateau는 constriction이 edge-state backscattering을 일으키기 때문에 나타나지 않는다.이에 대응하는 density visualization은 1/Φ = 40에서 quantum Hall edge state가 부분적으로 backscattering되는 모습을 보여준다.
  • 양자 수송: Kwant는 site-resolved density를 계산하고 plotting tool로 이를 시각화하여 local density pattern과 수송 특성을 연결할 수 있다.density array에는 system site마다 하나의 값이 들어 있으며 kwant.plotter.map으로 색상 플롯을 그릴 수 있다.

B.3. 유한 시스템 Hamiltonian의 정확한 대각화

Kwant는 내장 solver를 넘어 사용자가 지정한 계산을 지원하며, SciPy에서 접근 가능한 ARPACK을 사용해 유한 tight-binding 시스템을 정확히 대각화하는 예로 이를 보여준다. 이 예에서는 자기장 세기의 함수로 Majorana wire의 Fermi level 근처 상태를 계산하며, 결과는 Fig. 15에 제시된다.

  • 확장성: Kwant는 포함된 solver를 넘어 임의의 계산을 수행할 수 있게 하며, 새로운 solver를 Python 몇 줄만으로 구현하는 경우가 많다.이러한 확장성은 패키지의 설계 목표다.
  • Sparse 정확한 대각화: ARPACK은 Kwant가 대규모 유한 시스템 Hamiltonian을 SciPy 호환 sparse 형식으로 내보낸 뒤 최저 eigenenergies를 계산한다.계산에는 hamiltonian_submatrix(sparse=True)를 통한 SciPy의 ARPACK interface가 사용된다.
  • Majorana wire 응용: 이 workflow는 value function과 몇 줄의 추가 코드를 사용해 자기장 세기 전 범위에서 Majorana wire의 Fermi level에 가장 가까운 상태들의 에너지를 계산한다.자기장은 B_values = numpy.linspace(0, 0.6, 80)으로 샘플링하며, sparse eigensolver는 0 근처의 eigenvalue를 대상으로 한다.
  • Majorana wire 응용: 그 결과로 얻은 energy spectrum은 Fig. 15에 제시된다.이 figure는 코드 기반 계산의 출력을 보여준다.

부록 C: Kwant 구현 … D.4. 리드가 연결된 시스템

Kwant는 주로 Python으로 구현하고 최적화된 compiled 및 numerical library를 결합해, 사용성을 유지하면서 계산량이 큰 구성 요소에 성능 최적화 역량을 집중한다. 부록에서는 간결하고 투명한 구성으로 유한 시스템, quantum dot, 리드가 연결된 시스템을 구축하는 방법을 보여준다.

  • 부록 C: Kwant 구현: Kwant는 주로 Python으로 작성되며, 점근적으로 비용이 큰 구성 요소는 최적화하고 덜 중요한 code에는 실용적인 최적화를 적용한다.이 설계는 성능 저하가 작은 부분에서 연구자 시간의 효율을 우선한다.
  • C.1. 양자 수송 계산의 resource 사용량: 양자 수송의 실행 시간은 solving이 지배하며, d차원에서 RGF algorithm의 scaling은 O(n3−2/d)이다. 반면 initialization과 post-processing은 일반적으로 비용이 더 작다.따라서 계산 단계마다 시스템 크기에 따른 scaling이 크게 다르다.
  • C.2. 사용된 programming language: Kwant는 구현 전반에서 pure Python, Cython으로 감싼 library, direct Cython 또는 C/C++ 구현을 결합한다.구체적으로 NumPy/SciPy에 계산을 위임하고, Cython 으로 이전에 사용할 수 없던 library를 wrapping하며, native low-level code를 사용하는 방식이 포함된다.
  • C.2. 사용된 programming language: Kwant의 transport solver는 SciPy를 통해 UMFPACK 또는 SuperLU 를 사용하거나, Metis ordering과 함께 별도로 설치한 MUMPS library 를 사용한다.Lead mode와 self-energy에는 Cython으로 감싼 LAPACK 과 Python을 함께 사용한다.
  • C.2. 사용된 programming language: 작은 시스템을 제외하면 Kwant 실행 시간의 절반 이상이 고도로 최적화된 library에서 소요되므로, 모든 code를 C 또는 Fortran으로 다시 작성해 얻을 수 있는 속도 향상은 제한적이다.시스템 크기가 증가할수록 전체 실행 시간에서 library가 차지하는 비율은 100%에 가까워진다.
  • D.1. 가장 간단한 builder 사용법: 가장 간단한 builder 예제는 lattice에서 onsite value와 hopping을 지정해 세 site로 이루어진 시스템을 구성하고 plot한다.이 예제는 Appendix A.2에서 설명하고 Fig. 8에 제시한다.
  • D.2. 원형 quantum dot: Kwant 예제에서는 square lattice 위에 원반 모양 quantum dot을, honeycomb lattice 위에 콩 모양 quantum dot을 구성하고 plot한다.이 예제들은 Appendix A.4에서 다루며 Figs. 9 and 10에 제시한다.
  • D.4. 리드가 연결된 시스템: 또 다른 예제에서는 periodic infinite system을 리드로 두 번, 한 번은 바깥쪽에 한 번은 안쪽에 연결한 고리 모양 유한 시스템을 만들고 Fig. 11에 plot한다.리드는 translational symmetry를 사용하며 고리의 두 위치에 연결된다.

D.5. 양자 홀 효과 · D.6. 마요라나 페르미온

예시는 양자 홀 수송과 마요라나 페르미온 스펙트럼에 대한 Kwant 시뮬레이션을 보여준다. 명시적으로 구성한 tight-binding 시스템에서 전도도 plateau, edge-state 밀도, 자기장에 따른 고유에너지를 다룬다.

  • D.5. 양자 홀 효과: 수직 자기장과 onsite disorder가 있는 두 리드 quantum point contact에서 자기장 세기가 감소하면 양자 홀 plateau가 붕괴한다(Fig. 13).
  • D.5. 양자 홀 효과: 동일한 두 리드 시스템에서 부분적으로 backscattering된 양자 홀 edge state를 시각화한다(Fig. 14).
  • D.5. 양자 홀 효과: 양자 홀 모델은 disorder가 있는 onsite potential, 자기장 의존 hopping, 그리고 반대 방향의 translationally symmetric lead 두 개를 갖는 유한 영역으로 구성된다.
  • D.5. 양자 홀 효과: 양자 홀 설정은 여러 자기장 값에서 scattering-matrix transmission으로부터 전도도를 계산하고 lead별 wave-function density를 매핑한다.
  • D.6. 마요라나 페르미온: 마요라나 예제는 자기장 세기의 함수로 최저 고유에너지를 도시하는 1차원 chain을 구성한다(Fig. 15).
  • D.6. 마요라나 페르미온: 이 tight-binding Hamiltonian은 matrix-valued onsite 및 hopping 항을 통해 chemical potential, hopping, spin-orbit coupling, magnetic field, superconducting pairing을 결합한다.
Loading 1309.2926v2…