From eb4994c7e6108bc392532ca9c87d842196b91775 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Mon, 16 Oct 2023 09:46:45 +0000 Subject: [PATCH] build based on 1c87c31 --- dev/api/index.html | 64 ++++++++++----------- dev/assets/four_terminal_T.png | Bin 59896 -> 60031 bytes dev/assets/four_terminal_cond.png | Bin 40171 -> 40357 bytes dev/assets/four_terminal_nambu.png | Bin 0 -> 40833 bytes dev/assets/josephson_CPR.png | Bin 0 -> 42702 bytes dev/assets/josephson_lat.png | Bin 0 -> 703202 bytes dev/examples/index.html | 2 +- dev/index.html | 2 +- dev/search/index.html | 2 +- dev/search_index.js | 2 +- dev/tutorial/bandstructures/index.html | 2 +- dev/tutorial/glossary/index.html | 2 +- dev/tutorial/greenfunctions/index.html | 2 +- dev/tutorial/hamiltonians/index.html | 2 +- dev/tutorial/lattices/index.html | 2 +- dev/tutorial/models/index.html | 2 +- dev/tutorial/observables/index.html | 75 +++++++++++++++++++++++-- dev/tutorial/tutorial/index.html | 2 +- 18 files changed, 112 insertions(+), 49 deletions(-) create mode 100644 dev/assets/four_terminal_nambu.png create mode 100644 dev/assets/josephson_CPR.png create mode 100644 dev/assets/josephson_lat.png diff --git a/dev/api/index.html b/dev/api/index.html index d1027492..abc18b48 100644 --- a/dev/api/index.html +++ b/dev/api/index.html @@ -9,7 +9,7 @@ -0.38196601125010465 + 3.686368662666227e-16im -0.6180339887498938 + 6.015655020129746e-17im 0.6180339887498927 + 2.6478518218421853e-16im - 0.38196601125010476 - 1.741261108320361e-16im

See also

`spectrum`, `bands`
source
Quantica.GreenSolversModule

GreenSolvers is a Quantica submodule containing several pre-defined Green function solvers. The alias GS can be used in place of GS. Currently supported solvers and their possible keyword arguments are

  • GS.SparseLU() : Direct inversion solver for 0D Hamiltonians using a SparseArrays.lu(hmat) factorization
  • GS.Schur(; boundary = Inf) : Solver for 1D Hamiltonians based on a deflated, generalized Schur factorization
    • boundary : 1D cell index of a boundary cell, or Inf for no boundaries. Equivalent to removing that specific cell from the lattice when computing the Green function.
  • GS.KPM(; order = 100, bandrange = missing, kernel = I) : Kernel polynomial method solver for 0D Hamiltonians
    • order : order of the expansion in Chebyshev polynomials Tₙ(h) of the Hamiltonian h (lowest possible order is n = 0).
    • bandrange : a (min_energy, max_energy)::Tuple interval that encompasses the full band of the Hamiltonian. If missing, it is computed automatically.
    • kernel : generalization that computes momenta as μₙ = Tr[Tₙ(h)*kernel], so that the local density of states (see ldos) becomes the density of the kernel operator.
    • This solver does not allow arbitrary indexing of the resulting g::GreenFunction, only on contacts g[contact_ind::Integer]. If the system has none, we can add a dummy contact using attach(h, nothing; sites...), see attach.
  • GS.Bands(bands_arguments; boundary = missing, bands_kw...): solver based on the integration of bandstructure simplices
    • bands_arguments: positional arguments passed on to bands
    • bands_kw: keyword arguments passed on to bands
    • boundary: either missing (no boundary), or dir => cell_pos, where dir::Integer is the Bravais vector normal to the boundary, and cell_pos::Integer the value of cell indices cells[dir] that define the boundary (i.e. cells[dir] <= cell_pos are vaccum)
    • This solver only allows zero or one boundary. WARNING: if a boundary is used, the algorithm may become unstable for very fine band meshes.
source
Quantica.HamiltonianPresetsModule

HamiltonianPresets is a Quantica submodule containing several pre-defined Hamiltonians. The alias HP can be used in place of LatticePresets. Currently supported hamiltonians are

HP.graphene(; kw...)
+  0.38196601125010476 - 1.741261108320361e-16im

See also

`spectrum`, `bands`
source
Quantica.GreenSolversModule

GreenSolvers is a Quantica submodule containing several pre-defined Green function solvers. The alias GS can be used in place of GS. Currently supported solvers and their possible keyword arguments are

  • GS.SparseLU() : Direct inversion solver for 0D Hamiltonians using a SparseArrays.lu(hmat) factorization
  • GS.Schur(; boundary = Inf) : Solver for 1D Hamiltonians based on a deflated, generalized Schur factorization
    • boundary : 1D cell index of a boundary cell, or Inf for no boundaries. Equivalent to removing that specific cell from the lattice when computing the Green function.
  • GS.KPM(; order = 100, bandrange = missing, kernel = I) : Kernel polynomial method solver for 0D Hamiltonians
    • order : order of the expansion in Chebyshev polynomials Tₙ(h) of the Hamiltonian h (lowest possible order is n = 0).
    • bandrange : a (min_energy, max_energy)::Tuple interval that encompasses the full band of the Hamiltonian. If missing, it is computed automatically.
    • kernel : generalization that computes momenta as μₙ = Tr[Tₙ(h)*kernel], so that the local density of states (see ldos) becomes the density of the kernel operator.
    • This solver does not allow arbitrary indexing of the resulting g::GreenFunction, only on contacts g[contact_ind::Integer]. If the system has none, we can add a dummy contact using attach(h, nothing; sites...), see attach.
  • GS.Bands(bands_arguments; boundary = missing, bands_kw...): solver based on the integration of bandstructure simplices
    • bands_arguments: positional arguments passed on to bands
    • bands_kw: keyword arguments passed on to bands
    • boundary: either missing (no boundary), or dir => cell_pos, where dir::Integer is the Bravais vector normal to the boundary, and cell_pos::Integer the value of cell indices cells[dir] that define the boundary (i.e. cells[dir] <= cell_pos are vaccum)
    • This solver only allows zero or one boundary. WARNING: if a boundary is used, the algorithm may become unstable for very fine band meshes.
source
Quantica.HamiltonianPresetsModule

HamiltonianPresets is a Quantica submodule containing several pre-defined Hamiltonians. The alias HP can be used in place of LatticePresets. Currently supported hamiltonians are

HP.graphene(; kw...)
 HP.twisted_bilayer_graphene(; kw...)

For details on the keyword arguments kw see the corresponding docstring

julia> HamiltonianPresets.twisted_bilayer_graphene(twistindices = (30, 1))
 Hamiltonian{Float64,3,2}: Hamiltonian on a 2D Lattice in 3D space
   Bloch harmonics  : 7
@@ -18,7 +18,7 @@
   Element type     : scalar (ComplexF64)
   Onsites          : 0
   Hoppings         : 315684
-  Coordination     : 28.27696

See also

`LatticePresets`, `RegionPresets`
source
Quantica.LatticePresetsModule

LatticePresets is a Quantica submodule containing several pre-defined lattices. The alias LP can be used in place of LatticePresets. Currently supported lattices are

LP.linear(; a0 = 1, kw...)      # linear lattice in 1D
+  Coordination     : 28.27696

See also

`LatticePresets`, `RegionPresets`
source
Quantica.LatticePresetsModule

LatticePresets is a Quantica submodule containing several pre-defined lattices. The alias LP can be used in place of LatticePresets. Currently supported lattices are

LP.linear(; a0 = 1, kw...)      # linear lattice in 1D
 LP.square(; a0 = 1, kw...)      # square lattice in 2D
 LP.triangular(; a0 = 1, kw...)  # triangular lattice in 2D
 LP.honeycomb(; a0 = 1, kw...)   # honeycomb lattice in 2D
@@ -37,7 +37,7 @@
   Bravais vectors : [[1.0, 0.0, 0.0], [0.0, 2.0, 0.0]]
   Sublattices     : 1
     Names         : (:A,)
-    Sites         : (1,) --> 1 total per unit cell

See also

`RegionPresets`, `HamiltonianPresets`
source
Quantica.RegionPresetsModule

RegionPresets is a Quantica submodule containing several pre-defined regions of type Region{E}, where E is the space dimension. The alias RP can be used in place of RegionPresets. Supported regions are

RP.circle(radius = 10, center = (0, 0))                         # 2D
+    Sites         : (1,) --> 1 total per unit cell

See also

`RegionPresets`, `HamiltonianPresets`
source
Quantica.RegionPresetsModule

RegionPresets is a Quantica submodule containing several pre-defined regions of type Region{E}, where E is the space dimension. The alias RP can be used in place of RegionPresets. Supported regions are

RP.circle(radius = 10, center = (0, 0))                         # 2D
 RP.ellipse((rx, ry) = (10, 15), center = (0, 0))                # 2D
 RP.square(side = 10, center = (0, 0))                           # 2D
 RP.rectangle((sx, sy) = (10, 15), center = (0, 0))              # 2D
@@ -48,7 +48,7 @@
 false
 
 julia> RegionPresets.circle(10)(0, 0, 20)
-true

See also

`LatticePresets`, `HamiltonianPresets`
source
Quantica.BoxIteratorType
BoxIterator(seed::SVector{N,Int}; maxiterations = TOOMANYITERS)

Cartesian iterator iter over SVector{N,Int}s (cells) that starts at seed and grows outwards in the form of a box of increasing sides (not necesarily equal) until it encompasses a certain N-dimensional region. To signal that a cell is in the desired region the user calls acceptcell!(iter, cell).

source
Base.reverseFunction
reverse(lat_or_h::Union{Lattice,AbstractHamiltonian})

Build a new lattice or hamiltonian with the orientation of all Bravais vectors reversed.

See also

`reverse!`, `transform`
source
Base.reverse!Function
reverse!(lat_or_h::Union{Lattice,AbstractHamiltonian})

In-place version of reverse, inverts all Bravais vectors of lat_or_h.

See also

`reverse`, `transform`
source
LinearAlgebra.ishermitianFunction
ishermitian(h::Hamiltonian)

Check whether h is Hermitian. This is not supported for h::ParametricHamiltonian, as the result can depend of the specific values of its parameters.

source
Quantica.attachFunction
attach(h::AbstractHamiltonian, args..; sites...)
+true

See also

`LatticePresets`, `HamiltonianPresets`
source
Quantica.BoxIteratorType
BoxIterator(seed::SVector{N,Int}; maxiterations = TOOMANYITERS)

Cartesian iterator iter over SVector{N,Int}s (cells) that starts at seed and grows outwards in the form of a box of increasing sides (not necesarily equal) until it encompasses a certain N-dimensional region. To signal that a cell is in the desired region the user calls acceptcell!(iter, cell).

source
Base.reverseFunction
reverse(lat_or_h::Union{Lattice,AbstractHamiltonian})

Build a new lattice or hamiltonian with the orientation of all Bravais vectors reversed.

See also

`reverse!`, `transform`
source
Base.reverse!Function
reverse!(lat_or_h::Union{Lattice,AbstractHamiltonian})

In-place version of reverse, inverts all Bravais vectors of lat_or_h.

See also

`reverse`, `transform`
source
LinearAlgebra.ishermitianFunction
ishermitian(h::Hamiltonian)

Check whether h is Hermitian. This is not supported for h::ParametricHamiltonian, as the result can depend of the specific values of its parameters.

source
Quantica.attachFunction
attach(h::AbstractHamiltonian, args..; sites...)
 attach(h::OpenHamiltonian, args...; sites...)

Build an h´::OpenHamiltonian by attaching (adding) a Σ::SelfEnergy to a finite number of sites in h specified by siteselector(; sites...). This also defines a "contact" on said sites that can be referred to (with index i::Integer for the i-th attached contact) when slicing Green functions later. Self-energies are taken into account when building the Green function g(ω) = (ω - h´ - Σ(ω))⁻¹ of the resulting , see greenfunction.

Self-energy forms

The different forms of args yield different types of self-energies Σ. Currently supported forms are:

attach(h, gs::GreenSlice, coupling::AbstractModel; sites...)

Adds a generic self-energy Σ(ω) = V´⋅gs(ω)⋅V on h's sites, where V and are couplings, given by coupling, between said sites and the LatticeSlice in gs. Allowed forms of gs include both g[bath_sites...] and g[contactind::Integer] where g is any GreenFunction.

attach(h, model::ParametricModel; sites...)

Add self-energy Σᵢⱼ(ω) defined by a model composed of parametric terms (@onsite and @hopping) with ω as first argument, as in e.g. @onsite((ω, r) -> Σᵢᵢ(ω, r)) and @hopping((ω, r, dr) -> Σᵢⱼ(ω, r, dr))

attach(h, nothing; sites...)

Add null self-energy Σᵢⱼ(ω) = 0 on selected sites, which in effect simply amounts to defining a contact on said sites, but does not lead to any dressing the Green function. This is useful for some GreenFunction solvers such as GS.KPM (see greenfunction), which need to know the sites of interest beforehand (the contact sites in this case).

attach(h, g1D::GreenFunction; reverse = false, transform = identity, sites...)

Add a self-energy Σ(ω) = h₋₁⋅g1D(ω)[surface]⋅h₁ corresponding to a semi-infinite 1D lead (i.e. with a finite boundary, see greenfunction), where h₁ and h₋₁ are intercell couplings, and g1D is the lead GreenFunction. The g1D(ω) is taken at the suface unitcell, either adjacent to the boundary on its positive side (if reverse = false) or on its negative side (if reverse = true). The positions of the selected sites in h must match, modulo an arbitrary displacement, those of the lead unit cell, after applying transform to the latter. If they don't, use the attach syntax below.

Advanced: If the g1D does not have any self-energies, the produced self-energy is in fact an ExtendedSelfEnergy, which is numerically more stable than a naive implementation of RegularSelfEnergy's, since g1D(ω)[surface] is never actually computed. Conversely, if g1D has self-energies attached, a RegularSelfEnergy is produced.

attach(h, g1D::GreenFunction, coupling::AbstractModel; reverse = false, transform = identity,  sites...)

Add a self-energy Σ(ω) = V´⋅g1D(ω)[surface]⋅V corresponding to a 1D lead (semi-infinite or infinite), but with couplings V and , defined by coupling, between sites and the surface lead unitcell (or the one with index zero if there is no boundary) . See also Advanced note above.

Currying

h |> attach(args...; sites...)

Curried form equivalent to attach(h, args...; sites...).

Examples

julia> # A graphene flake with two out-of-plane cubic-lattice leads
 
 julia> g1D = LP.cubic() |> hamiltonian(hopping(1)) |> supercell((0,0,1), region = RP.square(4)) |> greenfunction(GS.Schur(boundary = 0));
@@ -56,7 +56,7 @@
 julia> coupling = hopping(1, range = 2);
 
 julia> gdisk = HP.graphene(a0 = 1, dim = 3) |> supercell(region = RP.circle(10)) |> attach(g1D, coupling; region = RP.square(4)) |> attach(g1D, coupling; region = RP.square(4), reverse = true) |> greenfunction;
-

See also

`greenfunction`, `GreenSolvers`
source
Quantica.bandsFunction
bands(h::AbstractHamiltonian, xcolᵢ...; kw...)

Construct a Bandstructure object, which contains in particular a collection of continuously connected Subbands of h, obtained by diagonalizing the matrix h(ϕs; params...) on an M-dimensional mesh of points (x₁, x₂, ..., xₘ), where each xᵢ takes values in the collection xcolᵢ. The mapping between points in the mesh points and values of (ϕs; params...) is defined by keyword mapping (identity by default, see Keywords). Diagonalization is multithreaded and will use all available Julia threads (start session with julia -t N to have N threads).

bands(f::Function, xcolᵢ...; kw...)

Like the above using f(ϕs)::AbstractMatrix in place of h(ϕs; params...), and returning a Vector{<:Subband} instead of a Bandstructure object. This is provided as a lower level driver without the added slicing functionality of a full Bandstructure object, see below.

bands(h::AbstractHamiltonian; kw...)

Equivalent to bands(h::AbstractHamiltonian, xcolᵢ...; kw...) with a default xcolᵢ = subdiv(-π, π, 49).

Keywords

  • solver: eigensolver to use for each diagonalization (see Eigensolvers). Default: ES.LinearAlgebra()
  • mapping: a function of the form (x, y, ...) -> ϕs or (x, y, ...) -> ftuple(ϕs...; params...) that translates points (x, y, ...) in the mesh to Bloch phases ϕs or phase+parameter FrankenTuples ftuple(ϕs...; params...). See also linecuts below. Default: identity
  • transform: function to apply to each eigenvalue after diagonalization. Default: identity
  • degtol::Real: maximum distance between to nearby eigenvalue so that they are classified as degenerate. Default: sqrt(eps)
  • split::Bool: whether to split bands into disconnected subbands. Default: true
  • projectors::Bool: whether to compute interpolating subspaces in each simplex (for use as GreenSolver). Default: true
  • warn::Bool: whether to emit warning when band dislocations are encountered. Default: true
  • showprogress::Bool: whether to show or not a progress bar. Default: true
  • defects: (experimental) a collection of extra points to add to the mesh, typically the location of topological band defects such as Dirac points, so that interpolation avoids creating dislocation defects in the bands. You need to also increase patches to repair the subband dislocations using the added defect vertices. Default: ()
  • patches::Integer: (experimental) if a dislocation is encountered, attempt to patch it by searching for the defect recursively to a given order, or using the provided defects (preferred). Default: 0

Currying

h |> bands(xcolᵢ...; kw...)

Curried form of bands equivalent to bands(h, xcolᵢ...; kw...)

Band linecuts

To do a linecut of a bandstructure along a polygonal path in the L-dimensional Brillouin zone, mapping a set of 1D points xs to a set of nodes, with pts interpolation points in each segment, one can use the following convenient syntax

bands(h, subdiv(xs, pts); mapping = (xs => nodes))

Here nodes can be a collection of SVector{L} or of named Brillouin zone points from the list (,:K, :K´, :M, :X, :Y, :Z). If mapping = nodes, then xs defaults to 0:length(nodes)-1. See also subdiv for its alternative methods.

Indexing and slicing

b[i]

Extract i-th subband from b::Bandstructure. i can also be a Vector, an AbstractRange or any other argument accepted by getindex(subbands::Vector, i)

b[slice::Tuple]

Compute a section of b::Bandstructure with a "plane" defined by slice = (ϕ₁, ϕ₂,..., ϕₗ[, ϵ]), where each ϕᵢ or ϵ can be a real number (representing a fixed momentum or energy) or a : (unconstrained along that dimension). For bands of an L-dimensional lattice, slice will be padded to an L+1-long tuple with : if necessary. The result is a collection of of sliced Subbands.

Examples

julia> phis = range(0, 2pi, length = 50); h = LP.honeycomb() |> hamiltonian(@hopping((; t = 1) -> t));
+

See also

`greenfunction`, `GreenSolvers`
source
Quantica.bandsFunction
bands(h::AbstractHamiltonian, xcolᵢ...; kw...)

Construct a Bandstructure object, which contains in particular a collection of continuously connected Subbands of h, obtained by diagonalizing the matrix h(ϕs; params...) on an M-dimensional mesh of points (x₁, x₂, ..., xₘ), where each xᵢ takes values in the collection xcolᵢ. The mapping between points in the mesh points and values of (ϕs; params...) is defined by keyword mapping (identity by default, see Keywords). Diagonalization is multithreaded and will use all available Julia threads (start session with julia -t N to have N threads).

bands(f::Function, xcolᵢ...; kw...)

Like the above using f(ϕs)::AbstractMatrix in place of h(ϕs; params...), and returning a Vector{<:Subband} instead of a Bandstructure object. This is provided as a lower level driver without the added slicing functionality of a full Bandstructure object, see below.

bands(h::AbstractHamiltonian; kw...)

Equivalent to bands(h::AbstractHamiltonian, xcolᵢ...; kw...) with a default xcolᵢ = subdiv(-π, π, 49).

Keywords

  • solver: eigensolver to use for each diagonalization (see Eigensolvers). Default: ES.LinearAlgebra()
  • mapping: a function of the form (x, y, ...) -> ϕs or (x, y, ...) -> ftuple(ϕs...; params...) that translates points (x, y, ...) in the mesh to Bloch phases ϕs or phase+parameter FrankenTuples ftuple(ϕs...; params...). See also linecuts below. Default: identity
  • transform: function to apply to each eigenvalue after diagonalization. Default: identity
  • degtol::Real: maximum distance between to nearby eigenvalue so that they are classified as degenerate. Default: sqrt(eps)
  • split::Bool: whether to split bands into disconnected subbands. Default: true
  • projectors::Bool: whether to compute interpolating subspaces in each simplex (for use as GreenSolver). Default: true
  • warn::Bool: whether to emit warning when band dislocations are encountered. Default: true
  • showprogress::Bool: whether to show or not a progress bar. Default: true
  • defects: (experimental) a collection of extra points to add to the mesh, typically the location of topological band defects such as Dirac points, so that interpolation avoids creating dislocation defects in the bands. You need to also increase patches to repair the subband dislocations using the added defect vertices. Default: ()
  • patches::Integer: (experimental) if a dislocation is encountered, attempt to patch it by searching for the defect recursively to a given order, or using the provided defects (preferred). Default: 0

Currying

h |> bands(xcolᵢ...; kw...)

Curried form of bands equivalent to bands(h, xcolᵢ...; kw...)

Band linecuts

To do a linecut of a bandstructure along a polygonal path in the L-dimensional Brillouin zone, mapping a set of 1D points xs to a set of nodes, with pts interpolation points in each segment, one can use the following convenient syntax

bands(h, subdiv(xs, pts); mapping = (xs => nodes))

Here nodes can be a collection of SVector{L} or of named Brillouin zone points from the list (,:K, :K´, :M, :X, :Y, :Z). If mapping = nodes, then xs defaults to 0:length(nodes)-1. See also subdiv for its alternative methods.

Indexing and slicing

b[i]

Extract i-th subband from b::Bandstructure. i can also be a Vector, an AbstractRange or any other argument accepted by getindex(subbands::Vector, i)

b[slice::Tuple]

Compute a section of b::Bandstructure with a "plane" defined by slice = (ϕ₁, ϕ₂,..., ϕₗ[, ϵ]), where each ϕᵢ or ϵ can be a real number (representing a fixed momentum or energy) or a : (unconstrained along that dimension). For bands of an L-dimensional lattice, slice will be padded to an L+1-long tuple with : if necessary. The result is a collection of of sliced Subbands.

Examples

julia> phis = range(0, 2pi, length = 50); h = LP.honeycomb() |> hamiltonian(@hopping((; t = 1) -> t));
 
 julia> bands(h(t = 1), phis, phis)
 Bandstructure{Float64,3,2}: 3D Bandstructure over a 2-dimensional parameter space of type Float64
@@ -77,14 +77,14 @@
   Subbands  : 1
   Vertices  : 97
   Edges     : 96
-  Simplices : 96

See also

`spectrum`, `subdiv`
source
Quantica.bravais_matrixFunction
bravais_matrix(lat::Lattice)
+  Simplices : 96

See also

`spectrum`, `subdiv`
source
Quantica.bravais_matrixFunction
bravais_matrix(lat::Lattice)
 bravais_matrix(h::AbstractHamiltonian)

Return the Bravais matrix of lattice lat or AbstractHamiltonian h, with Bravais vectors as its columns.

Examples

julia> lat = lattice(sublat((0,0)), bravais = ((1.0, 2), (3, 4)));
 
 julia> bravais_matrix(lat)
 2×2 SMatrix{2, 2, Float64, 4} with indices SOneTo(2)×SOneTo(2):
  1.0  3.0
  2.0  4.0
-

See also

`lattice`
source
Quantica.cellsitesFunction
cellsites(cell_indices, site_indices)

Simple selector of sites with given site_indices in a given cell at cell_indices. Here, site_indices can be an index, a collection of integers or : (for all sites), and cell_indices should be a collection of L integers, where L is the lattice dimension.

See also

`siteselector`
source
Quantica.combineFunction
combine(lats::Lattice...)

If all lats have compatible Bravais vectors, combine them into a single lattice. If necessary, sublattice names are renamed to remain unique.

combine(hams::AbstractHamiltonians...; coupling = TighbindingModel())

Combine a collection hams of hamiltonians into one by combining their corresponding lattices, and optionally by adding a coupling between them, given by the hopping terms in coupling.

Note that the coupling model will be applied to the combined lattice (which may have renamed sublattices to avoid name collissions). However, only hopping terms between different hams blocks will be applied.

Examples

julia> # Building Bernal-stacked bilayer graphene
+

See also

`lattice`
source
Quantica.cellsitesFunction
cellsites(cell_indices, site_indices)

Simple selector of sites with given site_indices in a given cell at cell_indices. Here, site_indices can be an index, a collection of integers or : (for all sites), and cell_indices should be a collection of L integers, where L is the lattice dimension.

See also

`siteselector`
source
Quantica.combineFunction
combine(lats::Lattice...)

If all lats have compatible Bravais vectors, combine them into a single lattice. If necessary, sublattice names are renamed to remain unique.

combine(hams::AbstractHamiltonians...; coupling = TighbindingModel())

Combine a collection hams of hamiltonians into one by combining their corresponding lattices, and optionally by adding a coupling between them, given by the hopping terms in coupling.

Note that the coupling model will be applied to the combined lattice (which may have renamed sublattices to avoid name collissions). However, only hopping terms between different hams blocks will be applied.

Examples

julia> # Building Bernal-stacked bilayer graphene
 
 julia> hbot = HP.graphene(a0 = 1, dim = 3); htop = translate(hbot, (0, 1/√3, 1/√3));
 
@@ -100,7 +100,7 @@
   Element type     : scalar (ComplexF64)
   Onsites          : 0
   Hoppings         : 14
-  Coordination     : 3.5

See also

`hopping`
source
Quantica.conductanceFunction
conductance(gs::GreenSlice; nambu = false)

Given a slice gs = g[i::Integer, j::Integer] of a g::GreenFunction, build a partially evaluated object G::Conductance representing the zero-temperature, linear, differential conductance Gᵢⱼ = dIᵢ/dVⱼ between contacts i and j at arbitrary bias ω = eV in units of e^2/h. Gᵢⱼ is given by

  Gᵢⱼ =  e^2/h × Tr{[im*δᵢⱼ(gʳ-gᵃ)Γⁱ-gʳΓⁱgᵃΓʲ]}         (nambu = false)
+  Coordination     : 3.5

See also

`hopping`
source
Quantica.conductanceFunction
conductance(gs::GreenSlice; nambu = false)

Given a slice gs = g[i::Integer, j::Integer] of a g::GreenFunction, build a partially evaluated object G::Conductance representing the zero-temperature, linear, differential conductance Gᵢⱼ = dIᵢ/dVⱼ between contacts i and j at arbitrary bias ω = eV in units of e^2/h. Gᵢⱼ is given by

  Gᵢⱼ =  e^2/h × Tr{[im*δᵢⱼ(gʳ-gᵃ)Γⁱ-gʳΓⁱgᵃΓʲ]}         (nambu = false)
   Gᵢⱼ =  e^2/h × Tr{[im*δᵢⱼ(gʳ-gᵃ)Γⁱτₑ-gʳΓⁱτ₃gᵃΓʲτₑ]}   (nambu = true)

Here gʳ = g(ω) and gᵃ = (gʳ)' = g(ω') are the retarded and advanced Green function of the system, and Γⁱ = im * (Σⁱ - Σⁱ') is the decay rate at contact i. For Nambu systems (nambu = true), the matrices τₑ=[I 0; 0 0] and τ₃ = [I 0; 0 -I] ensure that charge reversal in Andreev reflections is properly taken into account. For normal systems (nambu = false), the total current at finite bias and temperatures is given by $Iᵢ = e/h × ∫ dω ∑ⱼ [fᵢ(ω) - fⱼ(ω)] Gᵢⱼ(ω)$, where $fᵢ(ω)$ is the Fermi distribution in lead i.

Keywords

  • nambu : whether to consider the Hamiltonian of the system is written in a Nambu basis, each site containing N electron orbitals followed by N hole orbitals.

Full evaluation

G(ω; params...)

Compute the conductance at the specified contacts.

Examples

julia> # A central system g0 with two 1D leads and transparent contacts
 
 julia> glead = LP.square() |> hamiltonian(hopping(1)) |> supercell((1,0), region = r->-2<r[2]<2) |> greenfunction(GS.Schur(boundary = 0));
@@ -113,7 +113,7 @@
   Bias contact     : 1
 
 julia> G(0.2)
-2.999999999999999

See also

`greenfunction`, `ldos`, `current`, `josephson`, `transmission`
source
Quantica.currentFunction
current(gs::GreenSlice; charge = -I, direction = missing)

Build Js::CurrentDensitySlice, a partially evaluated object representing the equilibrium local current density Jᵢⱼ(ω) at arbitrary energy ω from site j to site i, both taken from a specific lattice slice. The current is computed along a given direction (see Keywords).

current(gω::GreenSolution; charge = -I, direction = missing)

Build Jω::CurrentDensitySolution, as above, but for Jᵢⱼ(ω) at a fixed ω and arbitrary sites i, j. See also greenfunction for details on building a GreenSlice and GreenSolution.

The local current density is defined here as $Jᵢⱼ(ω) = (2/h) rᵢⱼ Re Tr[(Hᵢⱼgⱼᵢ(ω) - gᵢⱼ(ω)Hⱼᵢ) * charge]$, with the integrated local current given by $Jᵢⱼ = ∫ f(ω) Jᵢⱼ(ω) dω$. Here Hᵢⱼ is the hopping from site j at rⱼ to i at rᵢ, rᵢⱼ = rᵢ - rⱼ, charge is the charge of carriers in orbital space (see Keywords), and gᵢⱼ(ω) is the retarded Green function between said sites.

Keywords

  • charge : for multiorbital sites, charge can be a general matrix, which allows to compute arbitrary currents, such as spin currents.
  • direction: as defined above, Jᵢⱼ(ω) is a vector. If direction is missing the norm |Jᵢⱼ(ω)| is returned. If it is an u::Union{SVector,Tuple}, u⋅Jᵢⱼ(ω) is returned. If an n::Integer, Jᵢⱼ(ω)[n] is returned.

Full evaluation

Jω[sites...]
+2.999999999999999

See also

`greenfunction`, `ldos`, `current`, `josephson`, `transmission`
source
Quantica.currentFunction
current(gs::GreenSlice; charge = -I, direction = missing)

Build Js::CurrentDensitySlice, a partially evaluated object representing the equilibrium local current density Jᵢⱼ(ω) at arbitrary energy ω from site j to site i, both taken from a specific lattice slice. The current is computed along a given direction (see Keywords).

current(gω::GreenSolution; charge = -I, direction = missing)

Build Jω::CurrentDensitySolution, as above, but for Jᵢⱼ(ω) at a fixed ω and arbitrary sites i, j. See also greenfunction for details on building a GreenSlice and GreenSolution.

The local current density is defined here as $Jᵢⱼ(ω) = (2/h) rᵢⱼ Re Tr[(Hᵢⱼgⱼᵢ(ω) - gᵢⱼ(ω)Hⱼᵢ) * charge]$, with the integrated local current given by $Jᵢⱼ = ∫ f(ω) Jᵢⱼ(ω) dω$. Here Hᵢⱼ is the hopping from site j at rⱼ to i at rᵢ, rᵢⱼ = rᵢ - rⱼ, charge is the charge of carriers in orbital space (see Keywords), and gᵢⱼ(ω) is the retarded Green function between said sites.

Keywords

  • charge : for multiorbital sites, charge can be a general matrix, which allows to compute arbitrary currents, such as spin currents.
  • direction: as defined above, Jᵢⱼ(ω) is a vector. If direction is missing the norm |Jᵢⱼ(ω)| is returned. If it is an u::Union{SVector,Tuple}, u⋅Jᵢⱼ(ω) is returned. If an n::Integer, Jᵢⱼ(ω)[n] is returned.

Full evaluation

Jω[sites...]
 Js(ω; params...)

Given a partially evaluated Jω::CurrentDensitySolution or ρs::CurrentDensitySlice, build a sparse matrix Jᵢⱼ(ω) along the specified direction of fully evaluated local current densities.

Example

julia> # A semi-infinite 1D lead with a magnetic field `B`
 
 julia> g = LP.square() |> hamiltonian(@hopping((r, dr; B = 0.1) -> cis(B * dr' * SA[r[2],-r[1]]))) |> supercell((1,0), region = r->-2<r[2]<2) |> greenfunction(GS.Schur(boundary = 0));
@@ -134,7 +134,7 @@
   ⋅           7.77156e-16   ⋅
  7.77156e-16   ⋅           5.55112e-16
   ⋅           5.55112e-16   ⋅
-

See also

`greenfunction`, `ldos`, `conductance`, `josephson`, `transmission`
source
Quantica.energiesFunction
energies(sp::Spectrum)

Returns the energies in sp as a vector of Numbers (not necessarily real). Equivalent to first(sp).

See also

`spectrum`, `bands`
source
Quantica.greenfunctionFunction
greenfunction(h::Union{AbstractHamiltonian,OpenHamiltonian}, solver::GreenSolver)

Build a g::GreenFunction of Hamiltonian h using solver. See GreenSolvers for available solvers. If solver is not provided, a default solver is chosen automatically based on the type of h.

Currying

h |> greenfunction(solver)

Curried form equivalent to greenfunction(h, solver).

Partial evaluation

GreenFunctions allow independent, partial evaluation of their positions (producing a GreenSlice) and energy/parameters (producing a GreenSolution). Depending on the solver, this may avoid repeating calculations unnecesarily when sweeping over either of these with the other fixed.

g[ss]
+

See also

`greenfunction`, `ldos`, `conductance`, `josephson`, `transmission`
source
Quantica.energiesFunction
energies(sp::Spectrum)

Returns the energies in sp as a vector of Numbers (not necessarily real). Equivalent to first(sp).

See also

`spectrum`, `bands`
source
Quantica.greenfunctionFunction
greenfunction(h::Union{AbstractHamiltonian,OpenHamiltonian}, solver::GreenSolver)

Build a g::GreenFunction of Hamiltonian h using solver. See GreenSolvers for available solvers. If solver is not provided, a default solver is chosen automatically based on the type of h.

Currying

h |> greenfunction(solver)

Curried form equivalent to greenfunction(h, solver).

Partial evaluation

GreenFunctions allow independent, partial evaluation of their positions (producing a GreenSlice) and energy/parameters (producing a GreenSolution). Depending on the solver, this may avoid repeating calculations unnecesarily when sweeping over either of these with the other fixed.

g[ss]
 g[siteselector(; ss...)]

Build a gs::GreenSlice that represents a Green function at arbitrary energy and parameter values, but at specific sites on the lattice defined by siteselector(; ss...), with ss::NamedTuple (see siteselector).

g[contact_index::Integer]

Build a GreenSlice equivalent to g[contact_sites...], where contact_sites... correspond to sites in contact number contact_index (must have 1<= contact_index <= number_of_contacts). See attach for details on attaching contacts to a Hamiltonian.

g[:]

Build a GreenSlice over all contacts.

g[dst, src]

Build a gs::GreenSlice between sites specified by src and dst, which can take any of the forms above. Therefore, all the previous single-index slice forms correspond to a diagonal block g[i, i].

g[diagonal(i, kernel = missing)]

If kernel = missing, efficiently construct diag(g[i, i]). If kernel is a matrix, return tr(g[site, site] * kernel) over each site encoded in i. Note that if there are several orbitals per site, these will have different length (i.e. number of orbitals vs number of sites). See also diagonal.

g(ω; params...)

Build a gω::GreenSolution that represents a retarded Green function at arbitrary points on the lattice, but at fixed energy ω and system parameter values param. If ω is complex, the retarded or advanced Green function is returned, depending on sign(imag(ω)). If ω is Real, a small, positive imaginary part is automatically added internally to produce the retarded g.

gω[i]
 gω[i, j]
 gs(ω; params...)

For any gω::GreenSolution or gs::GreenSlice, build the Green function matrix fully evaluated at fixed energy, parameters and positions. The matrix is dense and has scalar elements, so that any orbital structure on each site is flattened.

Example

julia> g = LP.honeycomb() |> hamiltonian(@hopping((; t = 1) -> t)) |> supercell(region = RP.circle(10)) |> greenfunction(GS.SparseLU())
@@ -162,7 +162,7 @@
 GreenSlice{Float64,2,0}: Green function at arbitrary energy, but at a fixed lattice positions
 
 julia> gω[ss] == gs(0.1; t = 2)
-true

See also

`GreenSolvers`, `diagonal`, `ldos`, `conductance`, `current`, `josephson`
source
Quantica.hamiltonianFunction
hamiltonian(lat::Lattice, model; orbitals = 1)

Create a Hamiltonian or ParametricHamiltonian by applying model to the lattice lat (see onsite, @onsite, hopping and @hopping for details on building tight-binding models).

hamiltonian(lat::Lattice, model, modifiers...; orbitals = 1)
+true

See also

`GreenSolvers`, `diagonal`, `ldos`, `conductance`, `current`, `josephson`
source
Quantica.hamiltonianFunction
hamiltonian(lat::Lattice, model; orbitals = 1)

Create a Hamiltonian or ParametricHamiltonian by applying model to the lattice lat (see onsite, @onsite, hopping and @hopping for details on building tight-binding models).

hamiltonian(lat::Lattice, model, modifiers...; orbitals = 1)
 hamiltonian(h::AbstractHamiltonian, modifiers...; orbitals = 1)

Create a ParametricHamiltonian where all onsite and hopping terms in model can be parametrically modified through the provided modifiers (see @onsite! and @hopping! for details on defining modifiers).

Keywords

  • orbitals: number of orbitals per sublattice. If an Integer (or a Val{<:Integer} for type-stability), all sublattices will have the same number of orbitals. A collection of values indicates the orbitals on each sublattice.

Currying

lat |> hamiltonian(model[, modifiers...]; kw...)

Curried form of hamiltonian equivalent to hamiltonian(lat, model, modifiers...; kw...).

lat |> model

Alternative and less general curried form equivalent to hamiltonian(lat, model).

h |> modifier

Alternative and less general curried form equivalent to hamiltonian(h, modifier).

Indexing

h[dn::SVector{L,Int}]
 h[dn::NTuple{L,Int}]

Return the Bloch harmonic of an h::AbstractHamiltonian in the form of a SparseMatrixCSC with complex scalar eltype. This matrix is "flat", in the sense that it contains matrix elements between indivisual orbitals, not sites. This distinction is only relevant for multiorbital Hamiltonians. To access the non-flattened matrix use h[unflat(dn)] (see also unflat).

h[()]

Special syntax equivalent to h[(0...)], which access the fundamental Bloch harmonic.

Call syntax

ph(; params...)

Return a h::Hamiltonian from a ph::ParametricHamiltonian by applying specific values to its parameters params. If ph is a non-parametric Hamiltonian instead, this is a no-op.

h(φs; params...)

Return the flat, sparse Bloch matrix of h::AbstractHamiltonian at Bloch phases φs, with applied parameters params if h is a ParametricHamiltonian. The Bloch matrix is defined as

    H = ∑_dn exp(-im φs⋅dn) H_dn

where H_dn = h[dn] is the dn flat Bloch harmonic of h, and φs[i] = k⋅aᵢ in terms of the wavevector k and the Bravais vectors aᵢ.

Examples

julia> h = hamiltonian(LP.honeycomb(), hopping(SA[0 1; 1 0], range = 1/√3), orbitals = 2)
 Hamiltonian{Float64,2,2}: Hamiltonian on a 2D Lattice in 2D space
@@ -179,7 +179,7 @@
      ⋅          ⋅      0.0+0.0im  3.0+0.0im
      ⋅          ⋅      3.0+0.0im  0.0+0.0im
  0.0+0.0im  3.0+0.0im      ⋅          ⋅
- 3.0+0.0im  0.0+0.0im      ⋅          ⋅

See also

`lattice`, `onsite`, `hopping`, `@onsite`, `@hopping`, `@onsite!`, `@hopping!`, `ishermitian`
source
Quantica.hoppingFunction
hopping(t; hops...)
+ 3.0+0.0im  0.0+0.0im      ⋅          ⋅

See also

`lattice`, `onsite`, `hopping`, `@onsite`, `@hopping`, `@onsite!`, `@hopping!`, `ishermitian`
source
Quantica.hoppingFunction
hopping(t; hops...)
 hopping((r, dr) -> t(r, dr); hops...)

Build a TighbindingModel representing a uniform or a position-dependent hopping amplitude, respectively, on hops selected by hopselector(; hops...) (see hopselector for details).

Hops from a site at position r₁ to another at r₂ are described using the hop center r = (r₁ + r₂)/2 and the hop vector dr = r₂ - r₁. Hopping amplitudes t can be a Number (for hops between single-orbital sites), a UniformScaling (e.g. 2I) or an AbstractMatrix (use SMatrix for performance) of dimensions matching the number of orbitals in the selected sites. Models may be applied to a lattice lat to produce an Hamiltonian with hamiltonian(lat, model; ...), see hamiltonian. Position dependent models are forced to preserve the periodicity of the lattice.

hopping(m::Union{TighbindingModel,ParametricModel}; hops...)

Convert m into a new model with just hopping terms acting on hops.

Model algebra

Models can be combined using +, - and *, or conjugated with ', e.g. onsite(1) - 2 * hopping(1)'.

Examples

julia> model = hopping((r, dr) -> cis(dot(SA[r[2], -r[1]], dr)); dcells = (0,0)) + onsite(r -> rand())
 TightbindingModel: model with 2 terms
   HoppingTerm{Function}:
@@ -203,7 +203,7 @@
   Element type     : scalar (ComplexF64)
   Onsites          : 8
   Hoppings         : 16
-  Coordination     : 2.0

See also

`onsite`, `@onsite`, `@hopping`, `@onsite!`, `@hopping!`, `hamiltonian`, `plusadjoint`
source
Quantica.hopselectorFunction
hopselector(; range = neighbors(1), dcells = missing, sublats = missing, region = missing)

Return a HopSelector object that can be used to select a finite set of hops between sites in a lattice. Hops between two sites at positions r₁ = r - dr/2 and r₂ = r + dr, belonging to unit cells with a cell distance dn::SVector{L,Int} and to a sublattices with names s₁::Symbol and s₂::Symbol will be selected only if

`region(r, dr) && (s₁ => s₂ in sublats) && (dcell in dcells) && (norm(dr) <= range)`

If any of these is missing it will not be used to constraint the selection.

Generalization

While range is usually a Real, and sublats and dcells are usually collections of Pair{Symbol}s and SVectors, respectively, they also admit other possibilities:

sublats = :A                       # Hops from :A to :A
+  Coordination     : 2.0

See also

`onsite`, `@onsite`, `@hopping`, `@onsite!`, `@hopping!`, `hamiltonian`, `plusadjoint`
source
Quantica.hopselectorFunction
hopselector(; range = neighbors(1), dcells = missing, sublats = missing, region = missing)

Return a HopSelector object that can be used to select a finite set of hops between sites in a lattice. Hops between two sites at positions r₁ = r - dr/2 and r₂ = r + dr, belonging to unit cells with a cell distance dn::SVector{L,Int} and to a sublattices with names s₁::Symbol and s₂::Symbol will be selected only if

`region(r, dr) && (s₁ => s₂ in sublats) && (dcell in dcells) && (norm(dr) <= range)`

If any of these is missing it will not be used to constraint the selection.

Generalization

While range is usually a Real, and sublats and dcells are usually collections of Pair{Symbol}s and SVectors, respectively, they also admit other possibilities:

sublats = :A                       # Hops from :A to :A
 sublats = :A => :B                 # Hops from :A to :B sublattices, but not from :B to :A
 sublats = (:A => :B,)              # Same as above
 sublats = (:A => :B, :C => :D)     # Hopping from :A to :B or :C to :D
@@ -237,7 +237,7 @@
   Element type     : scalar (ComplexF64)
   Onsites          : 0
   Hoppings         : 18
-  Coordination     : 9.0

See also

`siteselector`, `lattice`, `hopping`, `@hopping`, `@hopping!`
source
Quantica.josephsonFunction
josephson(gs::GreenSlice, ωmax; kBT = 0.0, phases = missing, imshift = missing, slope = 1, post = real, atol = 1e-7, quadgk_opts...)

For a gs = g[i::Integer] slice of the g::GreenFunction of a hybrid junction, build a partially evaluated object J::Integrator representing the equilibrium (static) Josephson current I_J flowing into g through contact i, integrated from -ωmax to ωmax (or from -ωmax to 0 at zero temperature kBT = 0). The result of I_J is given in units of qe/h (q is the dimensionless carrier charge). I_J can be written as $I_J = Re ∫ dω f(ω) j(ω)$, where $j(ω) = (qe/h) × 2Tr[(ΣʳᵢGʳ - GʳΣʳᵢ)τz]$.

Full evaluation

J(; params...)

Evaluate the Josephson current I_J for the given g parameters params, if any.

Keywords

  • kBT : temperature in same energy units as the Hamiltonian
  • phases : collection of superconducting phase biases to apply to the contact, so as to efficiently compute the full current-phase relation [I_J(ϕ) for ϕ in phases]. Note that each phase bias ϕ is applied by a [cis(-ϕ/2) 0; 0 cis(ϕ/2)] rotation to the self energy, which is almost free. If missing, a single I_J is returned.
  • imshift: if missing the initial and final integration points ± ωmax are shifted by im * sqrt(eps(ωmax)), to avoid the real axis. Otherwise a shift im*imshift is applied (may be zero if ωmax is greater than the bandwidth).
  • slope: if non-zero, the integration will be performed along a piecewise-linear path in the complex plane (-ωmax, -ωmax/2 * (1+slope*im), 0, ωmax/2 * (1+slope*im), ωmax), taking advantage of the holomorphic integrand f(ω) j(ω) and the Cauchy Integral Theorem for faster convergence.
  • post: function to apply to the result of ∫ dω f(ω) j(ω) to obtain the result, post = real by default.
  • atol: absolute integration tolerance. The default 1e-7 is chosen to avoid excessive integration times when the current is actually zero.
  • quadgk_opts : extra keyword arguments (other than atol) to pass on to the function QuadGK.quadgk that is used for the integration.

Examples

julia> glead = LP.square() |> hamiltonian(onsite(0.0005 * SA[0 1; 1 0]) + hopping(SA[1 0; 0 -1]), orbitals = 2) |> supercell((1,0), region = r->-2<r[2]<2) |> greenfunction(GS.Schur(boundary = 0));
+  Coordination     : 9.0

See also

`siteselector`, `lattice`, `hopping`, `@hopping`, `@hopping!`
source
Quantica.josephsonFunction
josephson(gs::GreenSlice, ωmax; kBT = 0.0, phases = missing, imshift = missing, slope = 1, post = real, atol = 1e-7, quadgk_opts...)

For a gs = g[i::Integer] slice of the g::GreenFunction of a hybrid junction, build a partially evaluated object J::Integrator representing the equilibrium (static) Josephson current I_J flowing into g through contact i, integrated from -ωmax to ωmax (or from -ωmax to 0 at zero temperature kBT = 0). The result of I_J is given in units of qe/h (q is the dimensionless carrier charge). I_J can be written as $I_J = Re ∫ dω f(ω) j(ω)$, where $j(ω) = (qe/h) × 2Tr[(ΣʳᵢGʳ - GʳΣʳᵢ)τz]$.

Full evaluation

J(; params...)

Evaluate the Josephson current I_J for the given g parameters params, if any.

Keywords

  • kBT : temperature in same energy units as the Hamiltonian
  • phases : collection of superconducting phase biases to apply to the contact, so as to efficiently compute the full current-phase relation [I_J(ϕ) for ϕ in phases]. Note that each phase bias ϕ is applied by a [cis(-ϕ/2) 0; 0 cis(ϕ/2)] rotation to the self energy, which is almost free. If missing, a single I_J is returned.
  • imshift: if missing the initial and final integration points ± ωmax are shifted by im * sqrt(eps(ωmax)), to avoid the real axis. Otherwise a shift im*imshift is applied (may be zero if ωmax is greater than the bandwidth).
  • slope: if non-zero, the integration will be performed along a piecewise-linear path in the complex plane (-ωmax, -ωmax/2 * (1+slope*im), 0, ωmax/2 * (1+slope*im), ωmax), taking advantage of the holomorphic integrand f(ω) j(ω) and the Cauchy Integral Theorem for faster convergence.
  • post: function to apply to the result of ∫ dω f(ω) j(ω) to obtain the result, post = real by default.
  • atol: absolute integration tolerance. The default 1e-7 is chosen to avoid excessive integration times when the current is actually zero.
  • quadgk_opts : extra keyword arguments (other than atol) to pass on to the function QuadGK.quadgk that is used for the integration.

Examples

julia> glead = LP.square() |> hamiltonian(onsite(0.0005 * SA[0 1; 1 0]) + hopping(SA[1 0; 0 -1]), orbitals = 2) |> supercell((1,0), region = r->-2<r[2]<2) |> greenfunction(GS.Schur(boundary = 0));
 
 julia> g0 = LP.square() |> hamiltonian(hopping(SA[1 0; 0 -1]), orbitals = 2) |> supercell(region = r->-2<r[2]<2 && r[1]≈0) |> attach(glead, reverse = true) |> attach(glead) |> greenfunction;
 
@@ -262,7 +262,7 @@
   0.008147188939639644
   0.008844017741703502
   0.009272686515034255
- -1.7744618723033526e-12

See also

`greenfunction`,`ldos`, `current`, `conductance`, `transmission`
source
Quantica.latticeFunction
lattice(sublats::Sublat...; bravais = (), dim, type, names)
+ -1.7744618723033526e-12

See also

`greenfunction`,`ldos`, `current`, `conductance`, `transmission`
source
Quantica.latticeFunction
lattice(sublats::Sublat...; bravais = (), dim, type, names)
 lattice(sublats::AbstractVector{<:Sublat}; bravais = (), dim, type, names)

Create a Lattice{T,E,L} from sublattices sublats, where L is the number of Bravais vectors given by bravais, T = type is the AbstractFloat type of spatial site coordinates, and dim = E is the spatial embedding dimension.

lattice(lat::Lattice; bravais = missing, dim = missing, type = missing, names = missing)

Create a new lattice by applying any non-missing keywords to lat.

lattice(x)

Return the parent lattice of object x, of type e.g. LatticeSlice, Hamiltonian, etc.

Keywords

  • bravais: a collection of one or more Bravais vectors of type NTuple{E} or SVector{E}. It can also be an AbstractMatrix of dimension E×L. The default bravais = () corresponds to a bounded lattice with no Bravais vectors.
  • names: a collection of Symbols. Can be used to rename sublats. Any repeated names will be replaced if necessary by :A, :B etc. to ensure that all sublattice names are unique.

Indexing

lat[kw...]

Indexing into a lattice lat with keywords returns LatticeSlice representing a finite collection of sites selected by siteselector(; kw...). See siteselector for details on possible kw, and sites to obtain site positions.

lat[]

Special case equivalent to lat[cells = (0,...)] that returns a LatticeSlice of the zero-th unitcell.

Examples

julia> lat = lattice(sublat((0, 0)), sublat((0, 1)); bravais = (1, 0), type = Float32, dim = 3, names = (:up, :down))
 Lattice{Float32,3,1} : 1D lattice in 3D space
   Bravais vectors : Vector{Float32}[[1.0, 0.0, 0.0]]
@@ -275,7 +275,7 @@
   Bravais vectors : [[1.0, 0.0]]
   Sublattices     : 2
     Names         : (:A, :B)
-    Sites         : (1, 1) --> 2 total per unit cell

See also

`LatticePresets`, `sublat`, `sites`, `supercell`
source
Quantica.ldosFunction
ldos(gs::GreenSlice; kernel = I)

Build ρs::LocalSpectralDensitySlice, a partially evaluated object representing the local density of states ρᵢ(ω) at specific sites i but at arbitrary energy ω.

ldos(gω::GreenSolution; kernel = I)

Build ρω::LocalSpectralDensitySolution, as above, but for ρᵢ(ω) at a fixed ω and arbitrary sites i. See also greenfunction for details on building a GreenSlice and GreenSolution.

The local density of states is defined here as $ρᵢ(ω) = -Tr(gᵢᵢ(ω))/π$, where gᵢᵢ(ω) is the retarded Green function at a given site i.

Keywords

  • kernel : for multiorbital sites, kernel allows to compute a generalized ldos ρᵢ(ω) = -Tr(gᵢᵢ(ω) * kernel)/π, where gᵢᵢ(ω) is the retarded Green function at site i and energy ω. If kernel = missing, the complete, orbital-resolved ldos is returned.

Full evaluation

ρω[sites...]
+    Sites         : (1, 1) --> 2 total per unit cell

See also

`LatticePresets`, `sublat`, `sites`, `supercell`
source
Quantica.ldosFunction
ldos(gs::GreenSlice; kernel = I)

Build ρs::LocalSpectralDensitySlice, a partially evaluated object representing the local density of states ρᵢ(ω) at specific sites i but at arbitrary energy ω.

ldos(gω::GreenSolution; kernel = I)

Build ρω::LocalSpectralDensitySolution, as above, but for ρᵢ(ω) at a fixed ω and arbitrary sites i. See also greenfunction for details on building a GreenSlice and GreenSolution.

The local density of states is defined here as $ρᵢ(ω) = -Tr(gᵢᵢ(ω))/π$, where gᵢᵢ(ω) is the retarded Green function at a given site i.

Keywords

  • kernel : for multiorbital sites, kernel allows to compute a generalized ldos ρᵢ(ω) = -Tr(gᵢᵢ(ω) * kernel)/π, where gᵢᵢ(ω) is the retarded Green function at site i and energy ω. If kernel = missing, the complete, orbital-resolved ldos is returned.

Full evaluation

ρω[sites...]
 ρs(ω; params...)

Given a partially evaluated ρω::LocalSpectralDensitySolution or ρs::LocalSpectralDensitySlice, build a vector [ρ₁(ω), ρ₂(ω)...] of fully evaluated local densities of states.

Example

julia> g = HP.graphene(a0 = 1, t0 = 1) |> supercell(region = RP.circle(20)) |> attach(nothing, region = RP.circle(1)) |> greenfunction(GS.KPM(order = 300, bandrange = (-3.1, 3.1)))
 GreenFunction{Float64,2,0}: Green function of a Hamiltonian{Float64,2,0}
   Solver          : AppliedKPMGreenSolver
@@ -301,7 +301,7 @@
  0.036802204179317045
 
 julia> ldos(g(0.2))[1] == -imag.(g[diagonal(1; kernel = I)](0.2)) ./ π
-true

See also

`greenfunction`, `diagonal`, `current`, `conductance`, `josephson`, `transmission`
source
Quantica.neighborsFunction
neighbors(n::Int)

Create a Neighbors(n) object that represents a hopping range to distances corresponding to the n-th nearest neighbors in a given lattice, irrespective of their sublattice. Neighbors at equal distance do not count towards n.

neighbors(n::Int, lat::Lattice)

Obtain the actual nth-nearest-neighbot distance between sites in lattice lat.

See also

`hopping`
source
Quantica.onsiteFunction
onsite(o; sites...)
+true

See also

`greenfunction`, `diagonal`, `current`, `conductance`, `josephson`, `transmission`
source
Quantica.neighborsFunction
neighbors(n::Int)

Create a Neighbors(n) object that represents a hopping range to distances corresponding to the n-th nearest neighbors in a given lattice, irrespective of their sublattice. Neighbors at equal distance do not count towards n.

neighbors(n::Int, lat::Lattice)

Obtain the actual nth-nearest-neighbot distance between sites in lattice lat.

See also

`hopping`
source
Quantica.onsiteFunction
onsite(o; sites...)
 onsite(r -> o(r); sites...)

Build a TighbindingModel representing a uniform or a position-dependent onsite potential, respectively, on sites selected by siteselector(; sites...) (see siteselector for details).

Site positions are r::SVector{E}, where E is the embedding dimension of the lattice. The onsite potential o can be a Number (for single-orbital sites), a UniformScaling (e.g. 2I) or an AbstractMatrix (use SMatrix for performance) of dimensions matching the number of orbitals in the selected sites. Models may be applied to a lattice lat to produce a Hamiltonian with hamiltonian(lat, model; ...), see hamiltonian. Position dependent models are forced to preserve the periodicity of the lattice.

onsite(m::{TighbindingModel,ParametricModel}; sites...)

Convert m into a new model with just onsite terms acting on sites.

Model algebra

Models can be combined using +, - and *, or conjugated with ', e.g. onsite(1) - 2 * hopping(1)'.

Examples

julia> model = onsite(r -> norm(r) * SA[0 1; 1 0]; sublats = :A) - hopping(I; range = 2)
 TightbindingModel: model with 2 terms
   OnsiteTerm{Function}:
@@ -325,7 +325,7 @@
   Element type     : 2 × 2 blocks (ComplexF64)
   Onsites          : 64
   Hoppings         : 2048
-  Coordination     : 32.0

See also

`hopping`, `@onsite`, `@hopping`, `@onsite!`, `@hopping!`, `hamiltonian`
source
Quantica.plusadjointFunction
plusadjoint(t::Model)

Returns a model t + t'. This is a convenience function analogous to the + h.c. notation.

Example

julia> model = hopping(im, sublats = :A => :B) |> plusadjoint
+  Coordination     : 32.0

See also

`hopping`, `@onsite`, `@hopping`, `@onsite!`, `@hopping!`, `hamiltonian`
source
Quantica.plusadjointFunction
plusadjoint(t::Model)

Returns a model t + t'. This is a convenience function analogous to the + h.c. notation.

Example

julia> model = hopping(im, sublats = :A => :B) |> plusadjoint
 TightbindingModel: model with 2 terms
   HoppingTerm{Complex{Bool}}:
     Region            : any
@@ -355,9 +355,9 @@
 julia> h((0,0))
 2×2 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 2 stored entries:
      ⋅      0.0-3.0im
- 0.0+3.0im      ⋅
source
Quantica.sitesFunction
sites(lat::Lattice[, sublat])

Return a collection of site positions in the unit cell of lattice lat. If a sublat::Symbol or sublat::Int is specified, only sites for the specified sublattice are returned.

sites(ls::LatticeSlice)

Return a collection of positions of a LatticeSlice, generally obtained by indexing a lattice lat[sel...] with some siteselector keywords sel. See also lattice.

Note: the returned collections can be of different types (vectors, generators, views...)

Examples

julia> sites(LatticePresets.honeycomb(), :A)
+ 0.0+3.0im      ⋅
source
Quantica.sitesFunction
sites(lat::Lattice[, sublat])

Return a collection of site positions in the unit cell of lattice lat. If a sublat::Symbol or sublat::Int is specified, only sites for the specified sublattice are returned.

sites(ls::LatticeSlice)

Return a collection of positions of a LatticeSlice, generally obtained by indexing a lattice lat[sel...] with some siteselector keywords sel. See also lattice.

Note: the returned collections can be of different types (vectors, generators, views...)

Examples

julia> sites(LatticePresets.honeycomb(), :A)
 1-element view(::Vector{SVector{2, Float64}}, 1:1) with eltype SVector{2, Float64}:
- [0.0, -0.2886751345948129]

See also

`lattice`, `siteselector`
source
Quantica.siteselectorFunction
siteselector(; region = missing, sublats = missing, cells = missing)

Return a SiteSelector object that can be used to select a finite set of sites in a lattice. Sites at position r::SVector{E}, belonging to a cell of index n::SVector{L,Int} and to a sublattice with name s::Symbol will be selected only if

`region(r) && s in sublats && n in cells`

Any missing region, sublat or cells will not be used to constraint the selection.

Generalization

While sublats and cells are usually collections of Symbols and SVectors, respectively, they also admit other possibilities:

  • If either cells or sublats are a single cell or sublattice, they will be treated as single-element collections
  • If sublat is a collection of Integers, it will refer to sublattice numbers.
  • If cells is an i::Integer, it will be converted to an SVector{1}
  • If cells is a collection, each element will be converted to an SVector.
  • If cells is a boolean function, n in cells will be the result of cells(n)

Usage

Although the constructor siteselector(; kw...) is exported, the end user does not usually need to call it directly. Instead, the keywords kw are input into different functions that allow filtering sites, which themselves call siteselector internally as needed. Some of these functions are

  • getindex(lat::Lattice; kw...) : return a LatticeSlice with sites specified by kw (also lat[kw...])
  • supercell(lat::Lattice; kw...) : returns a bounded lattice with the sites specified by kw
  • onsite(...; kw...) : onsite model term to be applied to sites specified by kw
  • @onsite!(...; kw...) : onsite modifier to be applied to sites specified by kw

See also

`hopselector`, `lattice`, `supercell`, `onsite`, `@onsite`, `@onsite!`
source
Quantica.spectrumFunction
spectrum(h::AbstractHamiltonian, ϕs; solver = EigenSolvers.LinearAlgebra(), transform = missing, params...)

Compute the Spectrum of the Bloch matrix h(ϕs; params...) using the specified eigensolver, with transform applied to the resulting eigenenergies, if not missing. Eigenpairs are sorted by the real part of their energy. See EigenSolvers for available solvers and their options.

spectrum(h::AbstractHamiltonian; kw...)

For a 0D h, equivalent to spectrum(h, (); kw...)

spectrum(m::AbstractMatrix; solver = EigenSolvers.LinearAlgebra()], transform = missing)

Compute the Spectrum of matrix m using solver and transform.

spectrum(b::Bandstructure, ϕs)

Compute the Spectrum corresponding to slicing the bandstructure b at point ϕs of its base mesh (see bands for details).

Indexing and destructuring

Eigenenergies ϵs::Tuple and eigenstates ψs::Matrix can be extracted from a spectrum sp using any of the following

ϵs, ψs = sp
+ [0.0, -0.2886751345948129]

See also

`lattice`, `siteselector`
source
Quantica.siteselectorFunction
siteselector(; region = missing, sublats = missing, cells = missing)

Return a SiteSelector object that can be used to select a finite set of sites in a lattice. Sites at position r::SVector{E}, belonging to a cell of index n::SVector{L,Int} and to a sublattice with name s::Symbol will be selected only if

`region(r) && s in sublats && n in cells`

Any missing region, sublat or cells will not be used to constraint the selection.

Generalization

While sublats and cells are usually collections of Symbols and SVectors, respectively, they also admit other possibilities:

  • If either cells or sublats are a single cell or sublattice, they will be treated as single-element collections
  • If sublat is a collection of Integers, it will refer to sublattice numbers.
  • If cells is an i::Integer, it will be converted to an SVector{1}
  • If cells is a collection, each element will be converted to an SVector.
  • If cells is a boolean function, n in cells will be the result of cells(n)

Usage

Although the constructor siteselector(; kw...) is exported, the end user does not usually need to call it directly. Instead, the keywords kw are input into different functions that allow filtering sites, which themselves call siteselector internally as needed. Some of these functions are

  • getindex(lat::Lattice; kw...) : return a LatticeSlice with sites specified by kw (also lat[kw...])
  • supercell(lat::Lattice; kw...) : returns a bounded lattice with the sites specified by kw
  • onsite(...; kw...) : onsite model term to be applied to sites specified by kw
  • @onsite!(...; kw...) : onsite modifier to be applied to sites specified by kw

See also

`hopselector`, `lattice`, `supercell`, `onsite`, `@onsite`, `@onsite!`
source
Quantica.spectrumFunction
spectrum(h::AbstractHamiltonian, ϕs; solver = EigenSolvers.LinearAlgebra(), transform = missing, params...)

Compute the Spectrum of the Bloch matrix h(ϕs; params...) using the specified eigensolver, with transform applied to the resulting eigenenergies, if not missing. Eigenpairs are sorted by the real part of their energy. See EigenSolvers for available solvers and their options.

spectrum(h::AbstractHamiltonian; kw...)

For a 0D h, equivalent to spectrum(h, (); kw...)

spectrum(m::AbstractMatrix; solver = EigenSolvers.LinearAlgebra()], transform = missing)

Compute the Spectrum of matrix m using solver and transform.

spectrum(b::Bandstructure, ϕs)

Compute the Spectrum corresponding to slicing the bandstructure b at point ϕs of its base mesh (see bands for details).

Indexing and destructuring

Eigenenergies ϵs::Tuple and eigenstates ψs::Matrix can be extracted from a spectrum sp using any of the following

ϵs, ψs = sp
 ϵs = first(sp)
 ϵs = energies(sp)
 ψs = last(sp)
@@ -370,11 +370,11 @@
 States:
 2×2 Matrix{ComplexF64}:
  -0.707107+0.0im  0.707107+0.0im
-  0.707107+0.0im  0.707107+0.0im

See also

`EigenSolvers`, `bands`
source
Quantica.statesFunction
states(sp::Spectrum)

Returns the eigenstates in sp as columns of a matrix. Equivalent to last(sp).

See also

`spectrum`, `bands`
source
Quantica.subdivFunction
subdiv((x₁, x₂, ..., xₙ), (p₁, p₂, ..., pₙ₋₁))

Build a vector of values between x₁ and xₙ containing all xᵢ such that in each interval [xᵢ, xᵢ₊₁] there are pᵢ equally space values.

subdiv((x₁, x₂, ..., xₙ), p)

Same as above with all pᵢ = p

subdiv(x₁, x₂, p)

Equivalent to subdiv((x₁, x₂), p) == collect(range(x₁, x₂, length = p))

source
Quantica.sublatFunction
sublat(sites...; name::Symbol = :A)
+  0.707107+0.0im  0.707107+0.0im

See also

`EigenSolvers`, `bands`
source
Quantica.statesFunction
states(sp::Spectrum)

Returns the eigenstates in sp as columns of a matrix. Equivalent to last(sp).

See also

`spectrum`, `bands`
source
Quantica.subdivFunction
subdiv((x₁, x₂, ..., xₙ), (p₁, p₂, ..., pₙ₋₁))

Build a vector of values between x₁ and xₙ containing all xᵢ such that in each interval [xᵢ, xᵢ₊₁] there are pᵢ equally space values.

subdiv((x₁, x₂, ..., xₙ), p)

Same as above with all pᵢ = p

subdiv(x₁, x₂, p)

Equivalent to subdiv((x₁, x₂), p) == collect(range(x₁, x₂, length = p))

source
Quantica.sublatFunction
sublat(sites...; name::Symbol = :A)
 sublat(sites::AbstractVector; name::Symbol = :A)

Create a Sublat{E,T} that adds a sublattice, of name name, with sites at positions sites in E dimensional space. Sites positions can be entered as Tuples or SVectors.

Examples

julia> sublat((0.0, 0), (1, 1), (1, -1), name = :A)
 Sublat{2,Float64} : sublattice of Float64-typed sites in 2D space
   Sites    : 3
-  Name     : :A
source
Quantica.supercellFunction
supercell(lat::Lattice{E,L}, v::NTuple{L,Integer}...; seed = missing, kw...)
+  Name     : :A
source
Quantica.supercellFunction
supercell(lat::Lattice{E,L}, v::NTuple{L,Integer}...; seed = missing, kw...)
 supercell(lat::Lattice{E,L}, uc::SMatrix{L,L´,Int}; seed = missing, kw...)

Generate a new Lattice from an L-dimensional lattice lat with a larger unit cell, such that its Bravais vectors are br´= br * uc. Here uc::SMatrix{L,L´,Int} is the integer supercell matrix, with the vectors vs as its columns. If no v are given, the new lattice will have no Bravais vectors (i.e. it will be bounded, with its shape determined by keywords kw...). Likewise, if L´ < L, the resulting lattice will be bounded along L´ - L directions, as dictated by kw....

Only sites selected by siteselector(; kw...) will be included in the supercell (see siteselector for details on the available keywords kw). If no keyword region is given in kw, a single Bravais unit cell perpendicular to the v axes will be selected along the L-L´ bounded directions.

supercell(lattice::Lattice{E,L}, factors::Integer...; seed = missing, kw...)

Call supercell with different scaling along each Bravais vector, so that supercell matrix uc is Diagonal(factors). If a single factor is given, uc = SMatrix{L,L}(factor * I)

supercell(h::Hamiltonian, v...; mincoordination = 0, seed = missing, kw...)

Transform the Lattice of h to have a larger unit cell, while expanding the Hamiltonian accordingly.

Keywords

  • seed::NTuple{L,Integer}: starting cell index to perform search of included sites. By default seed = missing, which makes search start from the zero-th cell.
  • mincoordination::Integer: minimum number of nonzero hopping neighbors required for sites to be included in the supercell. Sites with less coordination will be removed recursively, until all remaining sites satisfy mincoordination.

Currying

lat_or_h |> supercell(v...; kw...)

Curried syntax, equivalent to supercell(lat_or_h, v...; kw...)

Examples

julia> LatticePresets.square() |> supercell((1, 1), region = r -> 0 < r[1] < 5)
 Lattice{Float64,2,1} : 1D lattice in 2D space
   Bravais vectors : [[1.0, 1.0]]
@@ -387,15 +387,15 @@
   Bravais vectors : [[1.5, 2.598076], [-1.5, 2.598076]]
   Sublattices     : 2
     Names         : (:A, :B)
-    Sites         : (9, 9) --> 18 total per unit cell

See also

`supercell`, `siteselector`
source
Quantica.transformFunction
transform(lat_or_h::Union{Lattice,AbstractHamiltonian}, f::Function)

Build a new lattice or hamiltonian transforming each site positions r into f(r).

Currying

x |> transform(f::Function)

Curried version of transform, equivalent to transform(f, x)

Note: Unexported Quantica.transform! is also available for in-place transforms. Use with care, as aliasing (i.e. several objects sharing the modified one) can produce unexpected results.

Examples

julia> LatticePresets.square() |> transform(r -> 3r)
+    Sites         : (9, 9) --> 18 total per unit cell

See also

`supercell`, `siteselector`
source
Quantica.transformFunction
transform(lat_or_h::Union{Lattice,AbstractHamiltonian}, f::Function)

Build a new lattice or hamiltonian transforming each site positions r into f(r).

Currying

x |> transform(f::Function)

Curried version of transform, equivalent to transform(f, x)

Note: Unexported Quantica.transform! is also available for in-place transforms. Use with care, as aliasing (i.e. several objects sharing the modified one) can produce unexpected results.

Examples

julia> LatticePresets.square() |> transform(r -> 3r)
 Lattice{Float64,2,2} : 2D lattice in 2D space
   Bravais vectors : [[3.0, 0.0], [0.0, 3.0]]
   Sublattices     : 1
     Names         : (:A,)
-    Sites         : (1,) --> 1 total per unit cell

See also

`translate`, `reverse`, `reverse!`
source
Quantica.translateFunction
translate(lat::Lattice, δr)

Build a new lattice translating each site positions from r to r + δr, where δr can be a NTuple or an SVector in embedding space.

Currying

x |> translate(δr)

Curried version of translate, equivalent to translate(x, δr)

Note: Unexported Quantica.translate! is also available for in-place translations. Use with care, as aliasing (i.e. several objects sharing the modified one) can produce unexpected results.

Examples

julia> LatticePresets.square() |> translate((3,3)) |> sites
+    Sites         : (1,) --> 1 total per unit cell

See also

`translate`, `reverse`, `reverse!`
source
Quantica.translateFunction
translate(lat::Lattice, δr)

Build a new lattice translating each site positions from r to r + δr, where δr can be a NTuple or an SVector in embedding space.

Currying

x |> translate(δr)

Curried version of translate, equivalent to translate(x, δr)

Note: Unexported Quantica.translate! is also available for in-place translations. Use with care, as aliasing (i.e. several objects sharing the modified one) can produce unexpected results.

Examples

julia> LatticePresets.square() |> translate((3,3)) |> sites
 1-element Vector{SVector{2, Float64}}:
  [3.0, 3.0]
-

See also

`transform`, `reverse`, `reverse!`
source
Quantica.transmissionFunction
transmission(gs::GreenSlice)

Given a slice gs = g[i::Integer, j::Integer] of a g::GreenFunction, build a partially evaluated object T::Transmission representing the normal transmission probability Tᵢⱼ(ω) from contact j to i at energy ω. It can be written as $Tᵢⱼ = Tr{gʳΓⁱgᵃΓʲ}$. Here gʳ = g(ω) and gᵃ = (gʳ)' = g(ω') are the retarded and advanced Green function of the system, and Γⁱ = im * (Σⁱ - Σⁱ') is the decay rate at contact i

Full evaluation

T(ω; params...)

Compute the transmission Tᵢⱼ(ω) at a given ω and for the specified params of g.

Examples

julia> # A central system g0 with two 1D leads and transparent contacts
+

See also

`transform`, `reverse`, `reverse!`
source
Quantica.transmissionFunction
transmission(gs::GreenSlice)

Given a slice gs = g[i::Integer, j::Integer] of a g::GreenFunction, build a partially evaluated object T::Transmission representing the normal transmission probability Tᵢⱼ(ω) from contact j to i at energy ω. It can be written as $Tᵢⱼ = Tr{gʳΓⁱgᵃΓʲ}$. Here gʳ = g(ω) and gᵃ = (gʳ)' = g(ω') are the retarded and advanced Green function of the system, and Γⁱ = im * (Σⁱ - Σⁱ') is the decay rate at contact i

Full evaluation

T(ω; params...)

Compute the transmission Tᵢⱼ(ω) at a given ω and for the specified params of g.

Examples

julia> # A central system g0 with two 1D leads and transparent contacts
 
 julia> glead = LP.honecycomb() |> hamiltonian(hopping(1)) |> supercell((1,-1), region = r->-2<r[2]<2) |> greenfunction(GS.Schur(boundary = 0));
 
@@ -410,10 +410,10 @@
 2.9999999410323537
 
 julia> T(0.2 + 0.00000000000001im)
-2.999999999999961

See also

`greenfunction`, `conductance`, `ldos`, `current`, `josephson`
source
Quantica.unflatFunction
unflat(dn)

Construct an u::Unflat object wrapping some indices dn. This object is meant to be used to index into a h::AbstractHamiltonian as h[u], which returns an non-flattened version of the Bloch harmonic h[dn]. Each element in the matrix h[u] is an SMatrix block representing onsite or hoppings between whole sites, in contrast to h[dn] where they are scalars representing single orbitals. This is only relevant for multi-orbital Hamiltonians h.

unflat()

Equivalent to unflat(())

Examples

julia> h = HP.graphene(orbitals = 2); h[unflat(0,0)])
+2.999999999999961

See also

`greenfunction`, `conductance`, `ldos`, `current`, `josephson`
source
Quantica.unflatFunction
unflat(dn)

Construct an u::Unflat object wrapping some indices dn. This object is meant to be used to index into a h::AbstractHamiltonian as h[u], which returns an non-flattened version of the Bloch harmonic h[dn]. Each element in the matrix h[u] is an SMatrix block representing onsite or hoppings between whole sites, in contrast to h[dn] where they are scalars representing single orbitals. This is only relevant for multi-orbital Hamiltonians h.

unflat()

Equivalent to unflat(())

Examples

julia> h = HP.graphene(orbitals = 2); h[unflat(0,0)])
 2×2 SparseArrays.SparseMatrixCSC{SMatrix{2, 2, ComplexF64, 4}, Int64} with 2 stored entries:
                      ⋅                       [2.7+0.0im 0.0+0.0im; 0.0+0.0im 2.7+0.0im]
- [2.7+0.0im 0.0+0.0im; 0.0+0.0im 2.7+0.0im]                      ⋅
source
Quantica.wrapFunction
wrap(h::AbstractHamiltonian, (ϕ₁, ϕ₂,...))

For an h of lattice dimension L and a set of L Bloch phases ϕ = (ϕ₁, ϕ₂,...), contruct a new zero-dimensional h´::AbstractHamiltonian for all Bravais vectors have been eliminated by wrapping the lattice onto itself along the corresponding Bravais vector. Intercell hoppings along wrapped directions will pick up a Bloch phase exp(-iϕ⋅dn).

If a number of phases ϕᵢ are : instead of numbers, the corresponding Bravais vectors will not be wrapped, and the resulting will have a finite lattice dimension .

Currying

h |> wrap((ϕ₁, ϕ₂,...))

Currying syntax equivalent to wrap(h, (ϕ₁, ϕ₂,...)).

Examples

julia> h2D = HP.graphene(); h1D = wrap(h2D, (:, 0.2))
+ [2.7+0.0im 0.0+0.0im; 0.0+0.0im 2.7+0.0im]                      ⋅
source
Quantica.wrapFunction
wrap(h::AbstractHamiltonian, (ϕ₁, ϕ₂,...))

For an h of lattice dimension L and a set of L Bloch phases ϕ = (ϕ₁, ϕ₂,...), contruct a new zero-dimensional h´::AbstractHamiltonian for all Bravais vectors have been eliminated by wrapping the lattice onto itself along the corresponding Bravais vector. Intercell hoppings along wrapped directions will pick up a Bloch phase exp(-iϕ⋅dn).

If a number of phases ϕᵢ are : instead of numbers, the corresponding Bravais vectors will not be wrapped, and the resulting will have a finite lattice dimension .

Currying

h |> wrap((ϕ₁, ϕ₂,...))

Currying syntax equivalent to wrap(h, (ϕ₁, ϕ₂,...)).

Examples

julia> h2D = HP.graphene(); h1D = wrap(h2D, (:, 0.2))
 Hamiltonian{Float64,2,1}: Hamiltonian on a 1D Lattice in 2D space
   Bloch harmonics  : 3
   Harmonic size    : 2 × 2
@@ -424,7 +424,7 @@
   Coordination     : 2.0
 
 julia> h2D((0.3, 0.2)) ≈ h1D(0.3)
-true

See also

`hamiltonian`, `supercell`
source
Quantica.@hoppingMacro
@hopping((; params...) -> t(; params...); hops...)
+true

See also

`hamiltonian`, `supercell`
source
Quantica.@hoppingMacro
@hopping((; params...) -> t(; params...); hops...)
 @hopping((r, dr; params...) -> t(r; params...); hops...)

Build a ParametricModel representing a uniform or a position-dependent hopping amplitude, respectively, on hops selected by hopselector(; hops...) (see hopselector for details).

Hops from a site at position r₁ to another at r₂ are described using the hop center r = (r₁ + r₂)/2 and the hop vector dr = r₂ - r₁. Hopping amplitudes t can be a Number (for hops between single-orbital sites), a UniformScaling (e.g. 2I) or an AbstractMatrix (use SMatrix for performance) of dimensions matching the number of site orbitals in the selected sites. Parametric models may be applied to a lattice lat to produce a ParametricHamiltonian with hamiltonian(lat, model; ...), see hamiltonian. Position dependent models are forced to preserve the periodicity of the lattice.

The difference between regular and parametric tight-binding models (see onsite and hopping) is that parametric models may depend on arbitrary parameters, specified by the params keyword arguments. These are inherited by h::ParametricHamiltonian, which can then be evaluated very efficiently for different parameter values by callling h(; params...), to obtain a regular Hamiltonian without reconstructing it from scratch.

@hopping((ω; params...) -> Σᵢⱼ(ω; params...); hops...)
 @hopping((ω, r, dr; params...) -> Σᵢⱼ(ω, r, dr; params...); hops...)

Special form of a parametric hopping amplitude meant to model a self-energy (see attach).

Model algebra

Parametric models can be combined using +, - and *, or conjugated with ', e.g. @onsite((; o=1) -> o) - 2 * hopping(1)'. The combined parametric models can share parameters.

Examples

julia> model = @hopping((r, dr; t = 1, A = Returns(SA[0,0])) -> t * cis(-dr' * A(r)))
 ParametricModel: model with 1 term
@@ -446,7 +446,7 @@
   Onsites          : 0
   Hoppings         : 24
   Coordination     : 3.0
-  Parameters       : [:A, :t]

See also

`onsite`, `hopping`, `@onsite`, `@onsite!`, `@hopping!`, `attach`, `hamiltonian`
source
Quantica.@hopping!Macro
@hopping!((t; params...) -> t´(t; params...); hops...)
+  Parameters       : [:A, :t]

See also

`onsite`, `hopping`, `@onsite`, `@onsite!`, `@hopping!`, `attach`, `hamiltonian`
source
Quantica.@hopping!Macro
@hopping!((t; params...) -> t´(t; params...); hops...)
 @hopping!((t, r, dr; params...) -> t´(t, r, dr; params...); hops...)

Build a uniform or position-dependent hopping term modifier, respectively, acting on hops selected by hopselector(; hops...) (see hopselector for details).

Hops from a site at position r₁ to another at r₂ are described using the hop center r = (r₁ + r₂)/2 and the hop vector dr = r₂ - r₁. The original hopping amplitude is t, and the modified hopping is , which is a function of t and possibly r, dr. It may optionally also depend on parameters, enconded in params.

Modifiers are meant to be applied to an h:AbstractHamiltonian to obtain a ParametricHamiltonian (with hamiltonian(h, modifiers...) or hamiltonian(lat, model, modifiers...), see hamiltonian). Modifiers will affect only pre-existing model terms. In particular, if no onsite model has been applied to a specific site, its onsite potential will be zero, and will not be modified by any @onsite! modifier. Conversely, if an onsite model has been applied, @onsite! may modify the onsite potential even if it is zero. The same applies to @hopping!.

Examples

julia> model = hopping(1); peierls = @hopping!((t, r, dr; A = r -> SA[0,0]) -> t * cis(-dr' * A(r)))
 OnsiteModifier{ParametricFunction{3}}:
   Region            : any
@@ -465,7 +465,7 @@
   Onsites          : 0
   Hoppings         : 600
   Coordination     : 3.0
-  Parameters       : [:A]

See also

`onsite`, `hopping`, `@onsite`, `@hopping`, `@onsite!`, `hamiltonian`
source
Quantica.@onsiteMacro
@onsite((; params...) -> o(; params...); sites...)
+  Parameters       : [:A]

See also

`onsite`, `hopping`, `@onsite`, `@hopping`, `@onsite!`, `hamiltonian`
source
Quantica.@onsiteMacro
@onsite((; params...) -> o(; params...); sites...)
 @onsite((r; params...) -> o(r; params...); sites...)

Build a ParametricModel representing a uniform or a position-dependent onsite potential, respectively, on sites selected by siteselector(; sites...) (see siteselector for details).

Site positions are r::SVector{E}, where E is the embedding dimension of the lattice. The onsite potential o can be a Number (for single-orbital sites), a UniformScaling (e.g. 2I) or an AbstractMatrix (use SMatrix for performance) of dimensions matching the number of orbitals in the selected sites. Parametric models may be applied to a lattice lat to produce a ParametricHamiltonian with hamiltonian(lat, model; ...), see hamiltonian. Position dependent models are forced to preserve the periodicity of the lattice.

The difference between regular and parametric tight-binding models (see onsite and hopping) is that parametric models may depend on arbitrary parameters, specified by the params keyword arguments. These are inherited by h::ParametricHamiltonian, which can then be evaluated very efficiently for different parameter values by callling h(; params...), to obtain a regular Hamiltonian without reconstructing it from scratch.

@onsite((ω; params...) -> Σᵢᵢ(ω; params...); sites...)
 @onsite((ω, r; params...) -> Σᵢᵢ(ω, r; params...); sites...)

Special form of a parametric onsite potential meant to model a self-energy (see attach).

Model algebra

Parametric models can be combined using +, - and *, or conjugated with ', e.g. @onsite((; o=1) -> o) - 2 * hopping(1)'. The combined parametric models can share parameters.

Examples

julia> model = @onsite((r; dμ = 0) -> (r[1] + dμ) * I; sublats = :A) + @onsite((; dμ = 0) -> - dμ * I; sublats = :B)
 ParametricModel: model with 2 terms
@@ -491,7 +491,7 @@
   Onsites          : 8
   Hoppings         : 0
   Coordination     : 0.0
-  Parameters       : [:dμ]

See also

`onsite`, `hopping`, `@hopping`, `@onsite!`, `@hopping!`, `attach`, `hamiltonian`
source
Quantica.@onsite!Macro
@onsite!((o; params...) -> o´(o; params...); sites...)
+  Parameters       : [:dμ]

See also

`onsite`, `hopping`, `@hopping`, `@onsite!`, `@hopping!`, `attach`, `hamiltonian`
source
Quantica.@onsite!Macro
@onsite!((o; params...) -> o´(o; params...); sites...)
 @onsite!((o, r; params...) -> o´(o, r; params...); sites...)

Build a uniform or position-dependent onsite term modifier, respectively, acting on sites selected by siteselector(; sites...) (see siteselector for details).

Site positions are r::SVector{E}, where E is the embedding dimension of the lattice. The original onsite potential is o, and the modified potential is , which is a function of o and possibly r. It may optionally also depend on parameters, enconded in params.

Modifiers are meant to be applied to an h:AbstractHamiltonian to obtain a ParametricHamiltonian (with hamiltonian(h, modifiers...) or hamiltonian(lat, model, modifiers...), see hamiltonian). Modifiers will affect only pre-existing model terms. In particular, if no onsite model has been applied to a specific site, its onsite potential will be zero, and will not be modified by any @onsite! modifier. Conversely, if an onsite model has been applied, @onsite! may modify the onsite potential even if it is zero. The same applies to @hopping!.

Examples

julia> model = onsite(0); disorder = @onsite!((o; W = 0) -> o + W * rand())
 OnsiteModifier{ParametricFunction{1}}:
   Region            : any
@@ -508,4 +508,4 @@
   Onsites          : 200
   Hoppings         : 0
   Coordination     : 0.0
-  Parameters       : [:W]

See also

`onsite`, `hopping`, `@onsite`, `@hopping`, `@hopping!`, `hamiltonian`
source
+ Parameters : [:W]

See also

`onsite`, `hopping`, `@onsite`, `@hopping`, `@hopping!`, `hamiltonian`
source diff --git a/dev/assets/four_terminal_T.png b/dev/assets/four_terminal_T.png index f6bedc0baa397117025c1245aaed513ea88566d9..b7136a9f8a22f5164bf42f23ff42434505ed6b24 100644 GIT binary patch literal 60031 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 F{{d5;Ts8mz literal 59896 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 R4G;Xt-%-4sD`WWde*ok72p9kW diff --git a/dev/assets/four_terminal_cond.png b/dev/assets/four_terminal_cond.png index 47d54da45a15b999d8cb552c06d6551bf863e3ac..abe52fcb9ae7a56f0c52d9cb6fa13cf7b06d91ab 100644 GIT binary patch literal 40357 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

gr}2{fF8zuAUrw9xgZX3JzOK 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

3kq znG1b0XeuT={HHVXfFSH8)CS~%2GY5XiSqpNA4RJBph}Y5`?2Z(7Q5w21^dR<5iY9l zG4~#B{?pidX&sWhgc*?R19+Lq`rK7)2um_H6x~e0sWs>Pysv^W3b31W9BUK!Myd0L z`;-6bBWpN_>=YCfoE$$n`b9M%m0jaqNa&w@nI*h#r%SljF=)s=tBtpalHaM(RUsoF=50_Pc!@t*0j zM#YPiME8Z*NiB+719^hzJ)20}F^e-2$A!-B0-vI-oZD&pO*Yss*^+bIZn=IrnX0PF zuv27~kDGHIQ-q|XcK3ppV`uUd|$acQT8iY{}Xm(%I(}r1 zQ;(X)gXo9A)#T&qw z_r9mcQ$}3Z!j^$L*!l?Qrti;^;|EtRn;O}=BpgiqdPL_0;c`a}*|BaU%$UlsYwkBO ztxi@-Tiwa3VE4T1YQnuxMcursY2W&KU$DRO4Nwt+!fltlbelC1Ifxdu#zYJoTh;dT z2i$(B$R6|X2<*VbLO1PTxc?vCOtEAL{3_QTv%-6CrL27=7v{_JNtH5R62p@C|H zp%n1K7N)%wicmBIFS zLOHmzXy3sVT|spUHp01l^D7ZF3gXG>z;m{g`+)w}tD+-*j+GuC@?uuS`9C}`OF7`M zrZbLWXuke9VAsg$ir)VJ{I22h<+=HJcY+ytJ5KPzdRHe+4d9AI8i zl`emGClh$)*tTGQ+pEibW+vS_-pI`E_3k-%D9hmyuwD|%Kc@{E7@a86aWrY#{Q3F7 zv!qjB-CyL&4Lqdh^BdrmtJ{Iq%(R{Pz@uuuz1#i%7I2rjj-1BFB;P0ni7IPfI3 zLJ`xeZ(o21OP<;tWmx$sC10mipz7P3%WY%Uj@eyPJRq+yYPg{OS{~BW0c^Q!fF& zAdf{z2e`D3rTH^xHMGMN7PH)2DW|9FZwHPuRqmgz6Pfhu<<-^Gmo8s^8+eF?m&KK> zD}lo<_o`m&=HG5&<=&GQAgu1EQ`wUTI{fKgXupy4Psld#bHIBy0-yUHU-#mW>ehzDW^;wzUzo4(dfiNS1P?FE^)FkOE}y5{yV6kF)AP#*-P}XDptzU_ z?C5n~dA1eoPzb@Xk|F+W%a+8Ih?yARV2FsqMvop}NyLQ6{r4`4~)bZbKhVtAjS z(FNFOPzjoS9cd&)VF{C`w0Ry+=G7I*CUU5FDR_SF$nLV^f*T1kykHU2e{S1UF$GWQ Rrt1tq;OXk;vd$@?2>>aNRJQ;C literal 40171 zcmeFZWmuJ6*ER}Ekdl&8T97UYr9+W!kuIe}x)-$o5rgjTP^6Jg1L>BMlJ1ah_PiGN z^B(U$zUTh_?mznn9Ds9;Ys@ju(c|)+s4koLcsoK}d3}aM^I@YW))H3?_K~iN$=!7I@2JB<8{45#kO}mXJO|^S7 ze!b_*-L=l!lc*A##4`6g9}lCplPrBOk%XNL=s!HJH`^{cl;GgRPtuWnIlDsc`iWdcoU^Si&ll}kGTZyumyblJ2cua5%}OclX*a!uu*5G@>jyvHAo?tIgQ z)@{xa_WjZ)CAMj_spZ`G8jp%NY9yDSE&U*|!?^+`7BMaJ0rkSh`K6 z@W$UVlnowp(1tDINWvCQwIA0B2xz`EN=oMEGkWEmhoJh@g0agxFS&T~Rkwyx=iGsF zjHD?d@j=e_J_<5!J~C?Y2eM-B8+VNo2=e<+Xgl%W#)h}DWTjXJiQ4__!;0KBC#YW{ z`N8sY?%j#QE^59m4I;`74?Yl)a)e_T;nAVspuvP9T9R(&A=qgxw{2De-FMSo zw4fSCpdPn8{(37^HtGO#_8}f|fcU++z=l~z)N(^HX2kjEOHE%_l-2TS*!bI5J7{zI z1b9w=8lOIr7uet+6nPW!hh|!^)ahk|V5$7sm8kd+UyFo@cd8Gf?uENl-cv9p;EuQ> ze~a<=+|3%Utx%bk&*Fu>0ymB*liJ+9z7ajam?fOOnHlY1QJx`tt{!9ZnCTb3<^tVj zoBkh7)gfH`7M~2E=RaK?Zu~*iKM_})#D}{DvMUf)^Rexxf4O=TNR#&FTiC`^>5e*6 zzw(|wdX3HJQ*ShKYA?CPceRJ!?Ddduos5gG2XE}Xpt!7HsKOL}TWOqMhBL-ph}vHk ztxZ4jhAMt;cKATMs_sogYv)|Y8=(NdV+wfrpyHC?u+V{!Pvp_!UcN%}0OFw(pCo&G zdv`wXY*BZU1sO`t*@yGJ14ij8ds-penObx|lt0c+4h}mj?wlLM`6+MzC(C=fA)Hd9S;H%KU#LYx z4WHO&q^{t&pxj8{$qP(0#=CRF;dio`rsTBv+(b^kg&Rw^^l_Yk6I)kV0yN#XC>-xJ^H;ZEGb2nh*&67p1fJ*4-}!QJ&cXA~B9OL)XyPTD--{riwGp^!(= zYB!}=$zsrX#b%Xb-&b97NLBsaD(R5hP@nmTIhMJUxmOQ$f_nGerPZa+-N`*?9E$8e zb-T+yR@T_aRhep=>lT;2s`R!uvyC;a>@WDbmROngaH6iiZsfEHclc+Yd4W=8kE>o5 z$M;7QZh@O5!oPZZIERV{x5`DWx9zw}XI{*3M?DyH&T%k3XxGDI#ZwH11?vWL%22go zw$ZiSY>Urkm(C5*-py+NB>a z9j{e7@zbywlevM5#>YMQfX zxTo*F(^2P<(4T|&>Ol9ZBhGCLlft&0wpSEGnPtO6=T)aZMxHh z#kgDejyQ>TomgWC$f@h-_DLt+_Lz;9o_!bjW*%Jm`t$3ypb~sP;+JIi!Ys)@gyB-u zJ8fLZcFDdpl_Y*^EK?K$C$OaweRyhlik7r44V`WUItjO_8O^0Ls+;l6(53Uc* z@h_rjR{3BV?`}}zk&u*(%<=+ayCvS#(_n}o| zF%a1)e@PSYnG2G;8STVKm0tKLk@w^U>%E68u3Bqk%Eb9eyb(W@Kg+K#m)F?TaCuxd zXfzl$;WwvT@l7!`id^WtQTf>!GOgI${k~faRiV^yhn0=bMt$UL$V3C2IjKTTC{%qvd&&4ov1-zT}txb$$z<}1y~qj#YTWO7>m z_K(fJ23x%w!c!hi;7pl*^xf{~++7u%Kpem1cYO=JuhPtfY%U9n$GgY%mS~*^m-zY~ zrt67RTNt)Cr0%ioRV-f_ET#GrcTbI?me4ey`a)sbjjY zS%8qwj22%x}N)6Xm&AE|)B9$rzJDZEpzj{5uRLmxt zw+OaYChyi);OacSLkNoc_eDJfB$&8Jg;ePTo$v>%Ih6P*gY@->F#cLr)hT>U<^YIlX*dhGR$; zrf;hMs%F9WQ&UgT=FYZVGmV|QeM$3%W9{Gf%dvT3+*C}(rv{=v96P^j*EiPV?Ve7r z)Fe9W9Ts6#3)%14iPuLvFAq-z)TeLv)T`7Ool0ChZk7BVJnT1iSynyNxaXnuLTe(s zM&_ulc8ZI7S@d#H{rvT5&fKStp(KmmzOaLvM~0qam!5q%10VW)82qfybq)rX7BidA zudLT;MrZcq&#iY3qWDkk-5OkdCPWBCcXkZ6>if18#8>>rP9p!79jFiH=cniU-1E^n z8$Prds@}0b!f?jGkfP+4Ib=h8eV>rZxE|>UK2R5B}MJK_ringzG z42e6++Mg>gMVj;aTJ)AC+nrl@;HQPHy+9ODs?H{ zxXNqqOA-HZ;f#}0Q2b~4(CC4(w>hRyw;m`d1kAMM%$1Z-Si#SjD5$|!C}`j(RPaR( zzCh)X0sGHiZV+eO_|MOu(A){m<_nXZn+kUezHq;)cGv(dm>@v&V=hf$t3J-Q=XDf2s+j!L!QC zpV86L-G2~)Bb~;xEFgnpDXF2M!4Mf4iB==Cw-bVaE`b7~#K9RmoLXEV3FG0Ob-z%Lk4}Q|{HvL+gE3tqY5ba>mA4uV263Km99! z0;9sRG>J`5=aQ3?yG^-qoR>+@n0ADaFfqv{CMK43awN+? z`s~@Wci1??@b3Pu$Uypiq{hy02vouzfeOPmDiYic1=e%?Ny0}xTBH1Do}{ntllMW;pW;za zgZze>av>0S8)g(|%E4eyt$S2%LjXWr061(I$t(~6QVuZ^8jV=Y-F~OhuOU->;Ri^c zjS>nz1s|nkP}P~BeVpfBP-x@uyq1L>;^;FBjkrnId4U3AMBU$sNEQv_rfe-1yDZX> z56NgVO8uxJCBa=<)L>>0LvLHdurK7EKu|1g28>;-zon!DCLc!FpP1Tdy~ZFS(0|&Y zs1o)Gj{P15CdMuyG5bAMW`q!+*N^DqDB|1X8Zn_U40}(VCK?Ip4Gsy3m)ocJ+@afK zqghjs=Vn!@Wl07Wrk^HUU&9_;!)p}3R`U898l$G>?$$A5rL^n$VvIKALwQe#4h<>uXYLzi6!>yaOiK^`gnfk<^l1%^#itXLif zX_q#`K~Y0p6~e(ZOeq*og^0q2v=RrG4^_(J?L*r_F_mkkO27ks*59ODGi7OM9aWwL zUnL?mj;&XDT6&ph3RM@Kb-=sR$O}S)!#0+~BZ?!s!hFy?}g1dDG*9BE(!fhsx={ zJn#9hNAjVyjU5l)&`s-S{wtw|yvJ)4;b_E;j2ZuW=2!R5FOQXoABk2b4_Esb_x|OH zF-dHMU;R;wVDD-F^+Ep7M!!Qp8s6;J$G1t~ z0vY}3|8~Kc=feu7mJtUkI9sO%|6S%Qv2RyOX`MCZ97c&>`mUJ((5&%glmb8mLIBpb zGQA4{LIxF=ve1#}icIx&0x(F#HyWE{o_oN6KqNm_w|zzmDL@7tFVUNZZ|M8aH^H(F z5(o|Ki%;PPo<6D9H&B7>cLb*vf(Ru;|CozxXZL=oPxo&?Rz+L(WekKs7d)6W%&SQqU%BW*C_k=$v)~m9_;=5x|;)|a^RCF zutQ?txGWkY*sdKHa0btGMw$QG7OSqzv+jAvdj40=GPIcXS)Zo2KdKf|R-y-!vD-e*F#d zlw$XRi;;|#(nPvMlKx6YShshXqj}QU|Akt{m%7JK0$}&^lq5344^9G?T(7;qDCGTh zxE8R1s(|;Gb8UQ$fgz`;z0O7qpdoH)_>Z}%19M9|cv5_AZp2z6a!+L=o(A2lWUUq( zSw8r$)LNDToI2iyKUi0NUG?wBLJ*v~)r}wJ-!Mt(%roec>bI$^>`i=N)tM}2xYbM# zF8l~2C#7m;5hRc<-oZ}HDx;iBb<3X_|K_-4-t+GLO5VXc5eadIw!s9{-z;=b=34!3 z)E}b;lWum%huKw6()aA0o^n=DT?^Y6682{zCkS8y@-Gw~2i^6cVwNPz{>@Ph(6sLM zPxu8W9V=08C%kr}N+*j^am zr$8j9wE16jce`w)ES!Wi2S@k1|K-?=WF4cdyi7Ui`_lT{HtiqDn=W40@MuH>@X(-HxQT=Z;wI*ev)2mpE@RwXsgzW#H@e-D6IWLg zlpEdx-aI4$Mkv-Oi6ECMu|}S}ko*n%u6YqJp^IYV+Xz~ldV6fPq9ZD26GJGSAlQLo zi%hNH9Uxi+LLs9xOZkwpFs{)4Zp7wq!|I{U1D}6%fC+Sv&)JT3t%HpyR+i#IUQ{WU z{LZ3@)x%S@i>$uTp{<0uBcD3d(xUM^#>C;Vkvs(XSJA7fS)V%C>#dNN4X+B1odEs@2JpOz8m7U3& z;vf*OPkK}OwQs|Rknrn9Ed*amhEfNwNXm}|(Vq0t_0R353}^DU|FJ+wy3_{}oYxlE z&|E7ao&U2v#^0yz-_NySu58L1Z3)rlXt2)vF#oT0N`X{G{OWDg;PjKM4g@ zs$`(t1n3OK{}7GTj;m@UIw5|zaw1j#Z189mPK@JDT%R__gwzrla2E}4`!XTd!-U*IAf!ahc~ms(ya0-YlSAvcH0SkkYAahE=LYYi-@vECTFu(eTO<-XjZK>JF zMEth4)lb2kr@BuuP>%L@%fQwJmA{l^n1sxR63DWoVhm{e?K`FJ6TqyCjP7B;4X&A2OI zgTwp^PI=AnGQgLJeJ|lZ46_x+T$nw~y7AGAepSMLs`iVY%nrr38?jF7zOGldy0=IS-9VLr>HQf6wYBez=}XN-_jb|cp4e9F&dIZCSbZ|9^l zip%8EjHJTrYC-@9DN zE-978`6ko8^|&h#mS`HaR`_+oyb~g^J=wpO*x*bInJ_8^HnG-lhssr>oS|+keY22R z&H3rCm$!}0J=c1ONyzVqr-{lNf0taSX8g!pWEIiYN5y~@xn&?*!r#@>1c}{e>{ip69TparRTU>QbAy_8BpEG}A)niaBeJ`S z=V@zOEW#(Q;0ymo;JByjMnx(c80V!-bI)=1>+U*!wY;@rf{3@KX7I!w3=%cM3k`n6 zM$f;%&BP>Q*L>mTxn5MQyJ0Jw&7^dUpW==CcM;(b4X)MBS8SJcSAVUU({$T(S_#*qvE z+&1cM>3dz%HnP1~N6dj{Q$4#u-E+>y{XtFaVu?B7nUk;(@`s&p4mLK0{l5X|I14TQ zH;Ss3k(feQpka5~n58GyxtcnCvA`SqsxxiE;~-aWxf*T&Xg538b# zDbk{Knfwt%X2?vY@8Iu!FsxNXynm3F$0(<)Y6m9@dSWHVDTI0tmRzJ33$hbth?nl0il!G*J8A=B6T7SxY;Rc1r|U9gR5D%iU7 z`<@VG)Ilz~jET*H>8*n0tg5cZj~`EU#!(yXWu7F)+#V_N*csU&4|2>Qno0+!p z^zpnVChiQI+}{q`Tk0gcE3D|feKGoI zm0j&L*n6hQXQF8#vJL*Kr<%HXF{XxEPypj`Mi7E6qu;qK`(}3Q()oLddYD&dwL;!q zg4Dz~_Qz8|SE+HA_wtvG-EX|F5eqK#-e9rc*FBr&Bv3hxL8Jx4#nx(NC1%w%mfaJF zUpzUp5+!RSQC*?BMdfp1TaU=9snOn_ac@4GT8e&*`njOMbg4UWcb?`-ySVApn(gCQ zg@wxAqtg#!BjTOWQBk_0eK#Om^`9o|AO7TOp1XSY?-U;6WUK!^e9U{->bIv8tHUfYdM^P&8@CY&x2@0BSOt_?G+Wh4MwE(|OB%b3HqX-1FQ zLz<3(msuxt$ezW18boEY=l25LKqd3VMZzO{&?Mag4c2^fJ6yYLEM) z{p(n+9;3792(O>P*^pE(*;`mSF7@kUZ~;p@5fW0ifg3y~B%p9oc!9Bw;mOR_6FlI3 zi=S82s)^4J8QJ}(LFT$brF94ex#LQNGNIQ`qj=q+a_h%?oz`Z}iL+L(6LmV2<@T~q z2G6YqtxO-zB>j^-c%f}L8vGVDdwH!>>f6VrdYSBFy3FV#uDg9*jGfbg!y_69!bgd- z9jzHBjs~JumO}SOo0|+Zx7kQ~t^~8y4U+#NtAPv*n11F8Dz!c6qM@ZQ_nR_y9Jjrv zl;fXg*q^wfnAYa%I;4zgk9cu+a+I1^q;^dT@N)`Rc^9kFQ?hjCr*v6Kd3~QW9EYH+ z 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 diff --git a/dev/assets/four_terminal_nambu.png b/dev/assets/four_terminal_nambu.png new file mode 100644 index 0000000000000000000000000000000000000000..afde9450d1bd8f37395762578d3b3c7915dbfba7 GIT binary patch literal 40833 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

n05M^R>@Ft5z+81a0QYW6+0ucB;`6b( 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
$i$*^SETXWmbwh4KzJ=+D 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
LR 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 ~bc1BevfDG{spjnGOk-9diK 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
  • WwN>Ys?cS8BTZf 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 z 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≷dcXztx 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%0A=ZM`QqwjP+`itbplJuISy z`m7ZQ!&c~Blr@enq4qsyH|6=B(d29G{_6 zTcb3MPkt#Tl+wj|%E8Zf>T0n0`XD(L7PD&Ve3T=ONTht-`B>6&(r>#U27afVn#_t` zCgAwR4Uwv|ot)5=F7GZ&vH18=4VuM{9|N~`>Bap`n~_8|K@7&Nxz)64c@nhTtMhpH z)|*qIHGS6nBiyx?B0_#V*t^O3*?TR_)tQ-dPrOzInOqbxYg@p^5#cF~Jy3^JCgu zD5iBiSXX76RpaV}A_l1URcN{1Z9GPeQAb`H(f3AB#SZP;J^L%Ys6sd&w4{21u=5gf zsGgp+iVs$aUsonKR7n9-CJHB#lAFHh8#J~On<%Ujvg}r2Pqx=4>&F*g^V;UV7&~&E zKu7FO<1R9$;g{ES>tR)+igWrch9N4Hr94tUGW9WG;g^rbbCxgTq`z9JO7&U96uPK6 zfjin8o0^(9vLz)A*06@lwd#c9#P-HN*i;y?A{+hjE(_x@Ny_KzzR|-76@3>QL%HWw zxQuea8{c`S?=!apMF46U#yT=ct`-~$MUGpSp(@-s!=Y~-_$evbl)6zD)gYCDFafT@ z*Zk!w3_oO^Pz3C?Ut_HfU>>eax7OUd|=$ z^qw%<_1Gn7KYPKatz3xj@GXw?Au^ve1(b9s&EXA&O`>TcJLOjN=I|H9sXo zc>pt;uVVT{V!3f-p)0K`PIHc5XC=L?B2%r0EU#(69X#=5ivgzWXg07CU{tKb3yuOO zHaL*36sN{g%Rk;*G4fiCQrud}n4Oz#NClI;3T@@YQzodu`iZj5PoS+NkYnH{T>f1o z7YHhS3Kr_gXCqrZiRPo?>#Sk?Nzt}F=4NWaV*IL@8KuMY z<~WJkffRKv)o!j_CZ&dgFJ0ScxoO+inRD`H8NJi)<04N?rmC5tM$|NJ-(7w*G{0efi%Hr&3jYc+GOX07Duai-(LXk9x;%qi?ewQ1*%zq z(0cHFB*`aq>*nw9KUeIRdfs0`*?CtnB(5cJ(jtDGdFGG5(CUR1KeRuTS%|CLO69s$ z{?Kw$K1;%mL=Ybj2*>UU40{$*E$Y}Pkd|wE>#G&Uj-u@cEe6_

    7i);tWCobiaF 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 -Examples · Quantica.jl +Examples · Quantica.jl
    diff --git a/dev/index.html b/dev/index.html index dbb3124b..dab7cf67 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,2 +1,2 @@ -Home · Quantica.jl

    Quantica.jl logo

    Quantica.jl is a Julia package for building generic tight-binding models and computing spectral and transport properties.

    Installation

    julia> import Pkg; Pkg.add("Quantica")

    Quantica.jl requires Julia v1.9 or later. Some of its functionality, notably plotting, will become available only after using GLMakie, or some other plotting package from the Makie.jl family. Install GLMakie with

    julia> import Pkg; Pkg.add("GLMakie")

    Then, to begin using Quantica, just load it by doing

    julia> using Quantica

    (and possibly also e.g. using GLMakie if you need to plot Quantica objects).

    Asking questions, reporting bugs

    If you encounter problems, please read the tutorial and examples, your question is probably answered there. You can also check the docstring of each Quantica.jl function here or within the Julia REPL, by entering the function preceded by a ?, e.g. ?hamiltonian.

    If you are still stuck, you may sometimes find me (@pablosanjose) at the Julia Slack or Julia Discourse.

    If you believe you found a bug in Quantica.jl, please don't hesitate to file a GitHub issue, preferably with detailed instructions to reproduce it. Pull requests with fixes are also welcome!

    +Home · Quantica.jl

    Quantica.jl logo

    Quantica.jl is a Julia package for building generic tight-binding models and computing spectral and transport properties.

    Installation

    julia> import Pkg; Pkg.add("Quantica")

    Quantica.jl requires Julia v1.9 or later. Some of its functionality, notably plotting, will become available only after using GLMakie, or some other plotting package from the Makie.jl family. Install GLMakie with

    julia> import Pkg; Pkg.add("GLMakie")

    Then, to begin using Quantica, just load it by doing

    julia> using Quantica

    (and possibly also e.g. using GLMakie if you need to plot Quantica objects).

    Asking questions, reporting bugs

    If you encounter problems, please read the tutorial and examples, your question is probably answered there. You can also check the docstring of each Quantica.jl function here or within the Julia REPL, by entering the function preceded by a ?, e.g. ?hamiltonian.

    If you are still stuck, you may sometimes find me (@pablosanjose) at the Julia Slack or Julia Discourse.

    If you believe you found a bug in Quantica.jl, please don't hesitate to file a GitHub issue, preferably with detailed instructions to reproduce it. Pull requests with fixes are also welcome!

    diff --git a/dev/search/index.html b/dev/search/index.html index 33480404..f87299f9 100644 --- a/dev/search/index.html +++ b/dev/search/index.html @@ -1,2 +1,2 @@ -Search · Quantica.jl

    Loading search...

      +Search · Quantica.jl

      Loading search...

        diff --git a/dev/search_index.js b/dev/search_index.js index 8423be21..191b0baa 100644 --- a/dev/search_index.js +++ b/dev/search_index.js @@ -1,3 +1,3 @@ var documenterSearchIndex = {"docs": -[{"location":"tutorial/greenfunctions/#GreenFunctions","page":"GreenFunctions","title":"GreenFunctions","text":"","category":"section"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Up to now we have seen how to define Lattices, Models, Hamiltonians and Bandstructures. Most problems require the computation of different physical observables for these objects, e.g. the local density of states or various transport coefficients. We reduce this general problem to the computation of the retarded Green function","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"G^r_ij(omega) = langle i(omega-H-Sigma(omega))^-1jrangle","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"where i, j are orbitals, H is the (possibly infinite) Hamiltonian matrix, and Σ(ω) is the self-energy coming from any coupling to other systems (typically described by their own AbstractHamiltonian).","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"We split the problem of computing Gʳᵢⱼ(ω) of a given h::AbstractHamiltonian into four steps:","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Attach self-energies to h using the command oh = attach(h, args...). This produces a new object oh::OpenHamiltonian with a number of Contacts, numbered 1 to N\nUse g = greenfunction(oh, solver) to build a g::GreenFunction representing Gʳ (at arbitrary ω and i,j), where oh::OpenHamiltonian and solver::GreenSolver (see GreenSolvers below for available solvers)\nEvaluate gω = g(ω; params...) at fixed energy ω and model parameters, which produces a gω::GreenSolution\nSlice gω[sᵢ, sⱼ] or gω[sᵢ] == gω[sᵢ, sᵢ] to obtain Gʳᵢⱼ(ω) as a flat matrix, where sᵢ, sⱼ are either site selectors over sites spanning orbitals i,j, integers denoting contacts, 1 to N, or : denoting all contacts merged together.","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"tip: GreenSlice vs. GreenSolution\nThe two last steps can be interchanged, by first obtaining a gs::GreenSlice with gs = g[sᵢ, sⱼ] and then obtaining the Gʳᵢⱼ(ω) matrix with gs(ω; params...).","category":"page"},{"location":"tutorial/greenfunctions/#A-simple-example","page":"GreenFunctions","title":"A simple example","text":"","category":"section"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Here is a simple example of the Green function of a 1D lead with two sites per unit cell, a boundary at cell = 0, and with no attached self-energies for simplicity","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"julia> hlead = LP.square() |> supercell((1,0), region = r -> 0 <= r[2] < 2) |> hopping(1);\n\njulia> glead = greenfunction(hlead, GreenSolvers.Schur(boundary = 0))\nGreenFunction{Float64,2,1}: Green function of a Hamiltonian{Float64,2,1}\n Solver : AppliedSchurGreenSolver\n Contacts : 0\n Contact solvers : ()\n Contact sizes : ()\n Hamiltonian{Float64,2,1}: Hamiltonian on a 1D Lattice in 2D space\n Bloch harmonics : 3\n Harmonic size : 2 × 2\n Orbitals : [1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 6\n Coordination : 3.0\n\njulia> gω = glead(0.2) # we first fix energy to ω = 0.2\nGreenSolution{Float64,2,1}: Green function at arbitrary positions, but at a fixed energy\n\njulia> gω[cells = 1:2] # we now ask for the Green function between orbitals in the first two unit cells to the righht of the boundary\n4×4 Matrix{ComplexF64}:\n 0.1-0.858258im -0.5-0.0582576im -0.48-0.113394im -0.2+0.846606im\n -0.5-0.0582576im 0.1-0.858258im -0.2+0.846606im -0.48-0.113394im\n -0.48-0.113394im -0.2+0.846606im 0.104-0.869285im 0.44+0.282715im\n -0.2+0.846606im -0.48-0.113394im 0.44+0.282715im 0.104-0.869285im","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Note that the result is a 4 x 4 matrix, because there are 2 orbitals (one per site) in each of the two unit cells. Note also that the Schur GreenSolver used here allows us to compute the Green function between distant cells with little overhead","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"julia> @time gω[cells = 1:2];\n 0.000067 seconds (70 allocations: 6.844 KiB)\n\njulia> @time gω[cells = (SA[10], SA[100000])];\n 0.000098 seconds (229 allocations: 26.891 KiB)","category":"page"},{"location":"tutorial/greenfunctions/#GreenSolvers","page":"GreenFunctions","title":"GreenSolvers","text":"","category":"section"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"The currently implemented GreenSolvers (abbreviated as GS) are the following","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"GS.SparseLU()\nFor bounded (L=0) AbstractHamiltonians. Default for L=0.\nUses a sparse LU factorization to compute the ⟨i|(ω - H - Σ(ω))⁻¹|j⟩ inverse.","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"GS.KPM(order = 100, bandrange = missing, kernel = I)\nFor bounded (L=0) Hamiltonians, and restricted to sites belonging to contacts (see the section on Contacts).\nIt precomputes the Chebyshev momenta","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"GS.Schur(boundary = Inf)\nFor 1D (L=1) AbstractHamiltonians with only nearest-cell coupling. Default for L=1.\nUses a deflating Generalized Schur (QZ) factorization of the generalized eigenvalue problem to compute the unit-cell self energies. The Dyson equation then yields the Green function between arbitrary unit cells, which is further dressed using a T-matrix approach if the lead has any attached self-energy.\nGS.Bands(bandsargs...; boundary = missing, bandskw...)\nFor unbounded (L>0) Hamiltonians.\nIt precomputes a bandstructure b = bands(h, bandsargs...; kw..., split = false) and then uses analytic expressions for the contribution of each subband simplex to the GreenSolution. If boundary = dir => cell_pos, it takes into account the reflections on an infinite boundary perpendicular to Bravais vector number dir, so that all sites with cell index c[dir] <= cell_pos are removed.\nTo retrieve the bands from a g::GreenFunction that used the GS.Bands solver, we may use bands(g).","category":"page"},{"location":"tutorial/greenfunctions/#Attaching-Contacts","page":"GreenFunctions","title":"Attaching Contacts","text":"","category":"section"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"A self energy Σ(ω) acting of a finite set of sites of h (i.e. on a LatticeSlice of lat = lattice(h)) can be incorporated using the attach command. This defines a new Contact in h. The general syntax is oh = attach(h, args...; sites...), where the sites directives define the Contact LatticeSlice (lat[siteselector(; sites...)]), and args can take a number of forms.","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"The supported attach forms are the following","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Generic self-energy\nattach(h, gs::GreenSlice, coupling::AbstractModel; sites...)\nThis is the generic form of attach, which couples some sites i of a g::Greenfunction (defined by the slice gs = g[i]), to sites of h using a coupling model. This results in a self-energy Σ(ω) = V´⋅gs(ω)⋅V on h sites, where V and V´ are couplings matrices given by coupling.","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Dummy self-energy\nattach(h, nothing; sites...)\nThis form merely defines a new contact on the specified sites, but adds no actual self-energy to it. It is meant as a way to refer to some sites of interest using the g[i::Integer] slicing syntax for GreenFunctions, where i is the contact index.","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Model self-energy\nattach(h, model::AbstractModel; sites...)\nThis form defines a self-energy Σᵢⱼ(ω) in terms of model, which must be composed purely of parametric terms (@onsite and @hopping) that have ω as first argument, as in e.g. @onsite((ω, r) -> Σᵢᵢ(ω, r)) or @hopping((ω, r, dr) -> Σᵢⱼ(ω, r, dr)). This is a modellistic approach, wherein the self-energy is not computed from the properties of another AbstractHamiltonian, but rather has an arbitrary form defined by the user.","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Matched lead self-energy\nattach(h, glead::GreenFunction; reverse = false, transform = identity, sites...)\nHere glead is a GreenFunction of a 1D lead, possibly with a boundary.\nWith this syntax sites must select a number of sites in h whose position match (after applying transform to them and modulo an arbitrary displacement) the sites in the unit cell of glead. Then, the coupling between these and the first unit cell of glead on the positive side of the boundary will be the same as between glead unitcells, i.e. V = hlead[(1,)], where hlead = hamiltonian(glead).\nIf reverse == true, the lead is reversed before being attached, so that h is coupled through V = hlead[(-1,)] to the first unitcell on the negative side of the boundary. If there is no boundary, the cell = 0 unitcell of the glead is used.","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Generic lead self-energy\nattach(h, glead::GreenFunction, model::AbstractModel; reverse = false, transform = identity, sites...)\nThe same as above, but without any restriction on sites. The coupling between these and the first unit cell of glead (transformed by transform) is constructed using model::TightbindingModel. The \"first unit cell\" is defined as above.","category":"page"},{"location":"tutorial/greenfunctions/#A-more-advanced-example","page":"GreenFunctions","title":"A more advanced example","text":"","category":"section"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Let us define the classical example of a multiterminal mesoscopic junction. We choose a square lattice, and a circular central region of radius 10, with four leads of width 5 coupled to it at right angles.","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"We first define a single lead Greenfunction and the central Hamiltonian","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"julia> glead = LP.square() |> onsite(4) - hopping(1) |> supercell((1, 0), region = r -> abs(r[2]) <= 5/2) |> greenfunction(GS.Schur(boundary = 0));\n\njulia> hcentral = LP.square() |> onsite(4) - hopping(1) |> supercell(region = RP.circle(10) | RP.rectangle((22, 5)) | RP.rectangle((5, 22)))","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"The two rectangles overlayed on the circle above create the stubs where the leads will be attached:","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"\"Central","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"We now attach glead four times using the Matched lead syntax","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"julia> Rot = r -> SA[0 -1; 1 0] * r; # 90º rotation function\n\njulia> g = hcentral |>\n attach(glead, region = r -> r[1] == 11) |>\n attach(glead, region = r -> r[1] == -11, reverse = true) |>\n attach(glead, region = r -> r[2] == 11, transform = Rot) |>\n attach(glead, region = r -> r[2] == -11, reverse = true, transform = Rot) |>\n greenfunction\nGreenFunction{Float64,2,0}: Green function of a Hamiltonian{Float64,2,0}\n Solver : AppliedSparseLUGreenSolver\n Contacts : 4\n Contact solvers : (SelfEnergySchurSolver, SelfEnergySchurSolver, SelfEnergySchurSolver, SelfEnergySchurSolver)\n Contact sizes : (5, 5, 5, 5)\n Hamiltonian{Float64,2,0}: Hamiltonian on a 0D Lattice in 2D space\n Bloch harmonics : 1\n Harmonic size : 353 × 353\n Orbitals : [1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 1320\n Coordination : 3.73938\n\njulia> qplot(g, children = (; selector = siteselector(; cells = 1:5), sitecolor = :blue))","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"\"Multiterminal","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Note that since we did not specify the solver in greenfunction, the L=0 default GS.SparseLU() was taken.","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"tip: The GreenFunction <-> AbstractHamiltonian relation\nIts important un appreciate that a g::GreenFunction represents the retarded Green function between sites in a given AbstractHamiltonian, but not on sites of the coupled AbstractHamiltonians of its attached self-energies. Therefore, gcentral above cannot yield observables in the leads (blue sites above), only on the red sites. To obtain observables in a given lead, its GreenFunction must be constructed, with an attached self-energy coming from the central region plus the other three leads.","category":"page"},{"location":"tutorial/greenfunctions/#Slicing-and-evaluation","page":"GreenFunctions","title":"Slicing and evaluation","text":"","category":"section"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"As explained above, a g::GreenFunction represents a Green function of an OpenHamiltonian (i.e. AbstractHamiltonian with zero or more self-energies), but it does so for any energy ω or lattice sites. - To specify ω (plus any parameters params in the underlying AbstractHamiltonian) we use the syntax g(ω; params...), which yields an gω::GreenSolution - To specify source (sⱼ) and drain (sᵢ) sites we use the syntax g[sᵢ, sⱼ] or g[sᵢ] == g[sᵢ,sᵢ], which yields a gs::GreenSlice. sᵢ and sⱼ can be SiteSelectors(; sites...), or an integer denoting a specific contact (i.e. sites with an attached self-energy) or : denoting all contacts merged together. - If we specify both of the above we get the Green function between the orbitals of the specified sites at the specified energy, in the form of a Matrix","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Let us see this in action using the example from the previous section","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"julia> g[1, 3]\nGreenSlice{Float64,2,0}: Green function at arbitrary energy, but at a fixed lattice positions\n\njulia> g(0.2)\nGreenSolution{Float64,2,0}: Green function at arbitrary positions, but at a fixed energy\n\njulia> g(0.2)[1, 3]\n5×5 Matrix{ComplexF64}:\n -0.370342-0.0778282im 0.0575525-0.211484im 0.0245456-0.129385im 0.174425-0.155446im 0.100593+0.0134301im\n 0.0575525-0.211484im -0.0619157+0.0480224im 0.156603+0.256013im -0.342883+0.0760708im -0.0414971+0.0510385im\n 0.0245456-0.129385im 0.156603+0.256013im -0.13008-0.156987im 0.129202-0.139979im 0.155843-0.0597696im\n 0.174425-0.155446im -0.342883+0.0760708im 0.129202-0.139979im -0.0515859+0.000612582im 0.0298279+0.109486im\n 0.100593+0.0134301im -0.0414971+0.0510385im 0.155843-0.0597696im 0.0298279+0.109486im 0.00445114+0.0242172im\n\n julia> g(0.2)[siteselector(region = RP.circle(1, (0.5, 0))), 3]\n2×5 Matrix{ComplexF64}:\n -0.0051739-0.0122979im 0.258992+0.388052im 0.01413-0.192581im 0.258992+0.388052im -0.0051739-0.0122979im\n 0.265667+0.296249im 0.171343-0.022414im 0.285251+0.348008im 0.171247+0.0229456im 0.0532086+0.24404im","category":"page"},{"location":"tutorial/greenfunctions/#Diagonal-slices","page":"GreenFunctions","title":"Diagonal slices","text":"","category":"section"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"There is a special form of slicing that requests just the diagonal of a given g[sᵢ] == g[sᵢ,sᵢ]. It uses the syntax g[diagonal(sᵢ)]. Let us see it in action in a multiorbital example in 2D","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"julia> g = HP.graphene(a0 = 1, t0 = 1, orbitals = 2) |> greenfunction\nGreenFunction{Float64,2,2}: Green function of a Hamiltonian{Float64,2,2}\n Solver : AppliedBandsGreenSolver\n Contacts : 0\n Contact solvers : ()\n Contact sizes : ()\n Hamiltonian{Float64,2,2}: Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 5\n Harmonic size : 2 × 2\n Orbitals : [2, 2]\n Element type : 2 × 2 blocks (ComplexF64)\n Onsites : 0\n Hoppings : 6\n Coordination : 3.0\n\njulia> g(0.5)[diagonal(cells = (0, 0))]\n4-element Vector{ComplexF64}:\n -0.34973634684887517 - 0.3118358260293383im\n -0.3497363468428337 - 0.3118358260293383im\n -0.349736346839396 - 0.31183582602933824im\n -0.34973634684543714 - 0.3118358260293383im","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Note that we get a vector, which is equal to the diagonal diag(g(0.5)[cells = (0, 0)]). Like the g Matrix, this vector is resolved in orbitals, of which there are two per site and four per unit cell in this case. Using diagonal(sᵢ; kernel = K) we can collect all the orbitals of different sites, and compute tr(g[site, site] * K) for a given matrix K. This is useful to obtain spectral densities. In the above example, and interpreting the two orbitals per site as the electron spin, we could obtain the spin density along the x axis, say, using σx = SA[0 1; 1 0] as kernel,","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"julia> g(0.5)[diagonal(cells = (0, 0), kernel = SA[0 1; 1 0])]\n2-element Vector{ComplexF64}:\n -1.1268039540527714e-11 - 2.3843717644870095e-17im\n 1.126802874880133e-11 + 1.9120152589671175e-17im","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"which is zero in this spin-degenerate case","category":"page"},{"location":"tutorial/greenfunctions/#Visualizing-a-Green-function","page":"GreenFunctions","title":"Visualizing a Green function","text":"","category":"section"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"We can use qplot to visualize a GreenSolution in space. Here we define a bounded square lattice with an interesting shape, and attach a model self-energy to the right. Then we compute the Green function from each orbital in the contact to any other site in the lattice, and compute the norm over contact sites. The resulting vector is used as a shader for the color and radius of sites when plotting the system","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"julia> h = LP.square() |> onsite(4) - hopping(1) |> supercell(region = r -> norm(r) < 40*(1+0.2*cos(5*atan(r[2],r[1]))));\n\njulia> g = h |> attach(@onsite(ω -> -im), region = r -> r[1] ≈ 47) |> greenfunction;\n\njulia> gx1 = sum(abs2, g(0.1)[siteselector(), 1], dims = 2);\n\njulia> qplot(h, hide = :hops, sitecolor = (i, r) -> gx1[i], siteradius = (i, r) -> gx1[i], minmaxsiteradius = (0, 2), sitecolormap = :balance)","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"\"Green","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"warning: Caveat for multiorbital systems\nSince, currently, g(ω)[sᵢ, sⱼ] yields a Matrix over orbitals (instead of over sites), the above example requires single-orbital sites to work. In the future we will probably introduce a way to slice a GreenSolution over sites, similar to the way diagonal works. For the moment, one can use observables like ldos for visualization (see next section), which are all site-based by default.","category":"page"},{"location":"tutorial/lattices/#Lattices","page":"Lattices","title":"Lattices","text":"","category":"section"},{"location":"tutorial/lattices/#Constructing-a-Lattice-from-scratch","page":"Lattices","title":"Constructing a Lattice from scratch","text":"","category":"section"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Consider a lattice like graphene's. It has two sublattices, A and B, forming a 2D honeycomb pattern in space. The position of site A and B inside the unitcell are [0, -a0/(2√3)] and [0, a0/(2√3)], respectively. The Bravais vectors are A₁, A₂ = a0 * [± cos(π/3), sin(π/3)]. If we set the lattice constant to a0 = √3 (so the carbon-carbon distance is 1), one way to build this lattice in Quantica.jl would be","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> A₁, A₂ = √3 .* (cos(π/3), sin(π/3)),\n √3 .* (-cos(π/3), sin(π/3));\n\njulia> sA, sB = sublat((0, -1/2), name = :A),\n sublat((0, 1/2), name = :B);\n\njulia> lattice(sA, sB, bravais = (A₁, A₂))\nLattice{Float64,2,2} : 2D lattice in 2D space\n Bravais vectors : [[0.866025, 1.5], [-0.866025, 1.5]]\n Sublattices : 2\n Names : (:A, :B)\n Sites : (1, 1) --> 2 total per unit cell","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"tip: Tuple, SVector and SMatrix\nNote that we have used Tuples, such as (0, 1/2) instead of Vectors, like [0, 1/2]. In Julia small-length Tuples are much more efficient as containers than Vectors, since their length is known and fixed at compile time. Static vectors (SVector) and matrices (SMatrix) are also available to Quantica, which are just as efficient as Tuples, and they also implement linear algebra operations. They be entered as e.g. SA[0, 1/2] and SA[1 0; 0 1], respectively. For efficiency, always use Tuple, SVector and SMatrix in Quantica.jl where possible.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"If we don't plan to address the two sublattices individually, we could also fuse them into one, like","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> lat = lattice(sublat((0, 1/2), (0, -1/2)), bravais = (A₁, A₂))\nLattice{Float64,2,2} : 2D lattice in 2D space\n Bravais vectors : [[0.866025, 1.5], [-0.866025, 1.5]]\n Sublattices : 1\n Names : (:A,)\n Sites : (2,) --> 2 total per unit cell","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"This lattice has type Lattice{T,E,L}, with T = Float64 the numeric type of position coordinates, E = 2 the dimension of embedding space, and L = 2 the number of Bravais vectors (i.e. the lattice dimension). Both T and E, and even the Sublat names can be overridden when creating a lattice. One can also provide the Bravais vectors as a matrix, with each Aᵢ as a column.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> Amat = √3 * SA[-cos(π/3) cos(π/3); sin(π/3) sin(π/3)];\n\njulia> lat´ = lattice(sA, sB, bravais = Amat, type = Float32, dim = 3, names = (:C, :D))\nLattice{Float32,3,2} : 2D lattice in 3D space\n Bravais vectors : Vector{Float32}[[-0.866025, 1.5, 0.0], [0.866025, 1.5, 0.0]]\n Sublattices : 2\n Names : (:C, :D)\n Sites : (1, 1) --> 2 total per unit cell","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"tip: Advanced: `dim = Val(E)` vs. `dim = E`\nFor the dim keyword above we can alternatively use dim = Val(3), which is slightly more efficient, because the value is encoded as a type. This is a \"Julia thing\" (related to the concept of type stability), and can be ignored upon a first contact with Quantica.jl.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"One can also convert an existing lattice like the above to have a different type, embedding dimension, Bravais vectors and Sublat names with lattice(lat; kw...). For example","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> lat´´ = lattice(lat´, type = Float16, dim = 2, names = (:Boron, :Nitrogen))\nLattice{Float16,2,2} : 2D lattice in 2D space\n Bravais vectors : Vector{Float16}[[-0.866, 1.5], [0.866, 1.5]]\n Sublattices : 2\n Names : (:Boron, :Nitrogen)\n Sites : (1, 1) --> 2 total per unit cell","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"A list of site positions in a lattice lat can be obtained with sites(lat), or sites(lat, sublat) to restrict to a specific sublattice","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> sites(lat´´)\n2-element Vector{SVector{2, Float16}}:\n [0.0, -0.5]\n [0.0, 0.5]\n\njulia> sites(lat´´, :Nitrogen)\n1-element view(::Vector{SVector{2, Float16}}, 2:2) with eltype SVector{2, Float16}:\n [0.0, 0.5]","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Similarly, the Bravais matrix of a lat can be obtained with bravais_matrix(lat).","category":"page"},{"location":"tutorial/lattices/#Lattice-presets","page":"Lattices","title":"Lattice presets","text":"","category":"section"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Quantica.jl provides a range of presets. A preset is a pre-built object of some type. In particular we have Lattice presets, defined in the submodule LatticePresets (also called LP for convenience), that include a number of classical lattices in different dimensions:","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"LP.linear: linear 1D lattice\nLP.square: square 2D lattice\nLP.honeycomb: honeycomb 2D lattice\nLP.cubic: cubic 3D lattice\nLP.bcc: body-centered cubic 3D lattice\nLP.fcc: face-centered cubic 3D lattice","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"To obtain a lattice from a preset one simply calls it, e.g. LP.honecyomb(; kw...). One can modify any of these LatticePresets by passing a bravais, type, dim or names keyword. One can also use a new keyword a0 for the lattice constant (a0 = 1 by default). The lattice lat´´ above can thus be also obtained with","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> lat´´ = LP.honeycomb(a0 = √3, type = Float16, names = (:Boron, :Nitrogen))\nLattice{Float16,2,2} : 2D lattice in 2D space\n Bravais vectors : Vector{Float16}[[0.866, 1.5], [-0.866, 1.5]]\n Sublattices : 2\n Names : (:Boron, :Nitrogen)\n Sites : (1, 1) --> 2 total per unit cell","category":"page"},{"location":"tutorial/lattices/#Visualization","page":"Lattices","title":"Visualization","text":"","category":"section"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"To produce an interactive visualization of Lattices or other Quantica.jl object you need to load GLMakie.jl, CairoMakie.jl or some other plotting backend from the Makie repository (i.e. do using GLMakie, see also Installation). Then, a number of new plotting functions will become available. The main one is qplot. A Lattice is represented, by default, as the sites in a unitcell plus the Bravais vectors.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> using GLMakie\n\njulia> lat = LP.honeycomb()\n\njulia> qplot(lat, hide = nothing)","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"\"Honeycomb","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"qplot accepts a large number of keywords to customize your plot. In the case of lattice, most of these are passed over to the function plotlattice, specific to Lattices and Hamiltonians. In the case above, hide = nothing means \"don't hide any element of the plot\". See the qplot and plotlattice docstrings for details.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"tip: GLMakie.jl vs CairoMakie.jl\nGLMakie.jl is optimized for interactive GPU-accelerated, rasterized plots. If you need to export to PDF for publications or display plots inside a Jupyter notebook, use CairoMakie.jl instead, which in general renders non-interactive, but vector-based plots.","category":"page"},{"location":"tutorial/lattices/#siteselectors","page":"Lattices","title":"SiteSelectors","text":"","category":"section"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"A central concept in Quantica.jl is that of a \"selector\". There are two types of selectors, SiteSelectors and HopSelectors. SiteSelectors are a set of directives or rules that define a subset of its sites. SiteSelector rules are defined through three keywords:","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"region: a boolean function of allowed site positions r.\nsublats: allowed sublattices of selected sites\ncells: allowed cell indices of selected sites","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Similarly, HopSelectors can be used to select a number of site pairs, and will be used later to define hoppings in tight-binding models (see further below).","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"As an example, let us define a SiteSelector that picks all sites belonging to the :B sublattice of a given lattice within a circle of radius 10","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> s = siteselector(region = r -> norm(r) <= 10, sublats = :B)\nSiteSelector: a rule that defines a finite collection of sites in a lattice\n Region : Function\n Sublattices : B\n Cells : any","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Note that this selector is defined independently of the lattice. To apply it to a lattice lat we do lat[s], which results in a LatticeSlice (i.e. a finite portion, or slice, of lat)","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> lat = LP.honeycomb(); lat[s]\nLatticeSlice{Float64,2,2} : collection of subcells for a 2D lattice in 2D space\n Cells : 363\n Cell range : ([-11, -11], [11, 11])\n Total sites : 363","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"The Cell range above are the corners of a bounding box in cell-index space that contains all unit cell indices with at least one selected site.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Let's plot it","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> qplot(lat[s], hide = ())","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"\"A","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"tip: qplot selector\nThe above qplot(lat[s]) can also be written as qplot(lat, selector = s), which will be useful when plotting AbstractHamiltonians.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"tip: Sites of a LatticeSlice\nCollect the site positions of a LatticeSlice into a vector with collect(sites(ls)). If you do sites(ls) instead, you will get a lazy generator that can be used to iterate efficiently among site positions without allocating them in memory.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Apart from region and sublats we can also restrict the unitcells by their cell index. For example, to select all sites in unit cells within the above bounding box we can do","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> s´ = siteselector(cells = CartesianIndices((-11:11, -11:11)))\nSiteSelector: a rule that defines a finite collection of sites in a lattice\n Region : any\n Sublattices : any\n Cells : CartesianIndices((-11:11, -11:11))\n\njulia> lat[s´]\nLatticeSlice{Float64,2,2} : collection of subcells for a 2D lattice in 2D space\n Cells : 529\n Cell range : ([-11, -11], [11, 11])\n Total sites : 1058","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"We can often omit constructing the SiteSelector altogether by using the keywords directly","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> ls = lat[cells = n -> 0 <= n[1] <= 2 && abs(n[2]) < 3, sublats = :A]\nLatticeSlice{Float64,2,2} : collection of subcells for a 2D lattice in 2D space\n Cells : 15\n Cell range : ([0, -2], [2, 2])\n Total sites : 15","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Selectors are very expressive and powerful. Do check siteselector and hopselector docstrings for more details.","category":"page"},{"location":"tutorial/lattices/#Transforming-lattices","page":"Lattices","title":"Transforming lattices","text":"","category":"section"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"We can transform lattices using supercell, reverse, transform, translate.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"As a periodic structure, the choice of the unitcell in an unbounded lattice is, to an extent, arbitrary. Given a lattice lat we can obtain another with a unit cell 3 times larger with supercell(lat, 3)","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> lat = supercell(LP.honeycomb(), 3)\nLattice{Float64,2,2} : 2D lattice in 2D space\n Bravais vectors : [[1.5, 2.598076], [-1.5, 2.598076]]\n Sublattices : 2\n Names : (:A, :B)\n Sites : (9, 9) --> 18 total per unit cell","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"More generally, given a lattice lat with Bravais matrix Amat = bravais_matrix(lat), we can obtain a larger one with Bravais matrix Amat´ = Amat * S, where S is a square matrix of integers. In the example above, S = SA[3 0; 0 3]. The columns of S represent the coordinates of the new Bravais vectors in the basis of the old Bravais vectors. A more general example with e.g. S = SA[3 1; -1 2] can be written either in terms of S or of its columns","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> supercell(lat, SA[3 1; -1 2]) == supercell(lat, (3, -1), (1, 2))\ntrue","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"We can also use supercell to reduce the number of Bravais vectors, and hence the lattice dimensionality. To construct a new lattice with a single Bravais vector A₁´ = 3A₁ - A₂, just omit the second one","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> supercell(lat, (3, -1))\nLattice{Float64,2,1} : 1D lattice in 2D space\n Bravais vectors : [[6.0, 5.196152]]\n Sublattices : 2\n Names : (:A, :B)\n Sites : (27, 27) --> 54 total per unit cell","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Its important to note that the lattice will be bounded along directions different from the specified Bravais vectors. With the syntax above, the new unitcell will be minimal. We may however define how many sites to include in the new unitcell by adding a SiteSelector directive to be applied in the non-periodic directions. For example, to create a 10 * a0 wide, honeycomb nanoribbon we can do","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> lat = supercell(LP.honeycomb(), (1,-1), region = r -> -5 <= r[2] <= 5)\nLattice{Float64,2,1} : 1D lattice in 2D space\n Bravais vectors : [[1.0, 0.0]]\n Sublattices : 2\n Names : (:A, :B)\n Sites : (12, 12) --> 24 total per unit cell\n\njulia> qplot(lat[cells = -7:7])","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"\"Honeycomb","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"tip: No need to build selectors explicitly\nNote that we we didn't build a siteselector(region = ...) object to pass it to supercell. Instead, as shown above, we passed the corresponding keywords directly to supercell, which then takes care to build the selector internally.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"To simply reverse the direction of the Bravais vectors of a lattice, while leaving the site positions unchanged, use reverse (or reverse! to do it in-place)","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> reverse(LP.square())\nLattice{Float64,2,2} : 2D lattice in 2D space\n Bravais vectors : [[-1.0, -0.0], [-0.0, -1.0]]\n Sublattices : 1\n Names : (:A,)\n Sites : (1,) --> 1 total per unit cell","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"To transform a lattice, so that site positions r become f(r) use transform","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> f(r) = SA[0 1; 1 0] * r\nf (generic function with 1 method)\n\njulia> rotated_honeycomb = transform(LP.honeycomb(a0 = √3), f)\nLattice{Float64,2,2} : 2D lattice in 2D space\n Bravais vectors : [[1.5, 0.866025], [1.5, -0.866025]]\n Sublattices : 2\n Names : (:A, :B)\n Sites : (1, 1) --> 2 total per unit cell\n\njulia> sites(rotated_honeycomb)\n2-element Vector{SVector{2, Float64}}:\n [-0.5, 0.0]\n [0.5, 0.0]","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"To translate a lattice by a displacement vector δr use translate","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> δr = SA[0, 1];\n\njulia> sites(translate(rotated_honeycomb, δr))\n2-element Vector{SVector{2, Float64}}:\n [-0.5, 1.0]\n [0.5, 1.0]","category":"page"},{"location":"tutorial/lattices/#Currying:-chaining-transformations-with-the-operator","page":"Lattices","title":"Currying: chaining transformations with the |> operator","text":"","category":"section"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Many functions in Quantica.jl have a \"curried\" version that allows them to be chained together using the pipe operator |>.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"note: Definition of currying\nThe curried version of a function f(x1, x2...) is f´ = x1 -> f(x2...), so that the curried form of f(x1, x2...) is x2 |> f´(x2...), or f´(x2...)(x1). This gives the first argument x1 a privileged role. Users of object-oriented languages such as Python may find this use of the |> operator somewhat similar to the way the dot operator works there (i.e. x1.f(x2...)).","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"The last example above can then be written as","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> LP.honeycomb(a0 = √3) |> transform(f) |> translate(δr) |> sites\n2-element Vector{SVector{2, Float64}}:\n [-0.5, 1.0]\n [0.5, 1.0]","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"This type of curried syntax is natural in Quantica, and will be used extensively in this tutorial.","category":"page"},{"location":"tutorial/glossary/#Glossary","page":"Glossary","title":"Glossary","text":"","category":"section"},{"location":"tutorial/glossary/","page":"Glossary","title":"Glossary","text":"This is a summary of the type of objects you will be studying.","category":"page"},{"location":"tutorial/glossary/","page":"Glossary","title":"Glossary","text":"Sublat: a sublattice, representing a number of identical sites within the unit cell of a bounded or unbounded lattice. Each site has a position in an E-dimensional space (E is called the embedding dimension). All sites in a given Sublat will be able to hold the same number of orbitals, and they can be thought of as identical atoms. Each Sublat in a Lattice can be given a unique name, by default :A, :B, etc.\nLattice: a collection of Sublats plus a collection of L Bravais vectors that define the periodicity of the lattice. A bounded lattice has L=0, and no Bravais vectors. A Lattice with L > 0 can be understood as a periodic (unbounded) collection of unit cells, each containing a set of sites, each of which belongs to a different sublattice.\nSiteSelector: a rule that defines a subset of sites in a Lattice (not necessarily restricted to a single unit cell)\nHopSelector: a rule that defines a subset of site pairs in a Lattice (not necessarily restricted to the same unit cell)\nLatticeSlice: a finite subset of sites in a Lattice, defined by their cell index (an L-dimensional integer vector, usually denoted by n or cell) and their site index within the unit cell (an integer). A LatticeSlice an be constructed by combining a Lattice and a (bounded) SiteSelector.\nAbstractModel: either a TightBindingModel or a ParametricModel\nTightBindingModel: a set of HoppingTerms and OnsiteTerms\nOnsiteTerm: a rule that, applied to a single site, produces a scalar or a (square) matrix that represents the intra-site Hamiltonian elements (single or multi-orbital)\nHoppingTerm: a rule that, applied to a pair of sites, produces a scalar or a matrix that represents the inter-site Hamiltonian elements (single or multi-orbital)\nParametricModel: a set of ParametricOnsiteTerms and ParametricHoppingTerms\nParametricOnsiteTerm: an OnsiteTerm that depends on a set of free parameters that can be adjusted, and that may or may not have a default value\nParametricHoppingTerm: a HoppingTerm that depends on parameters, like ParametricOnsiteTerm above\nAbstractHamiltonian: either a Hamiltonian or a ParametricHamiltonian\nHamiltonian: a Lattice combined with a TightBindingModel.\nIt also includes a specification of the number of orbitals in each Sublat in the Lattice. A Hamiltonian represents a tight-binding Hamiltonian sharing the same periodicity as the Lattice (it is translationally invariant under Bravais vector shifts).\nParametricHamiltonian: like the above, but using a ParametricModel, which makes it dependent on a set of free parameters that can be efficiently adjusted.\nAn h::AbstractHamiltonian can be used to produce a Bloch matrix h(ϕ; params...) of the same size as the number of orbitals per unit cell, where ϕ = [ϕᵢ...] are Bloch phases and params are values for the free parameters, if any.\nSpectrum: the set of eigenpairs (eigenvalues and corresponding eigenvectors) of a Bloch matrix. It can be computed with a number of EigenSolvers.\nBandstructure: a collection of spectra, evaluated over a discrete mesh (typically a discretization of the Brillouin zone), that is connected to its mesh neighbors into a linearly-interpolated approximation of the AbstractHamiltonian's bandstructure.\nSelfEnergy: an operator Σ(ω) defined to act on a LatticeSlice of an AbstractHamiltonian that depends on energy ω.\nOpenHamiltonian: an AbstractHamiltonian combined with a set of SelfEnergies\nGreenFunction: an OpenHamiltonian combined with a GreenSolver, which is an algorithm that can in general compute the retarded or advanced Green function at any energy between any subset of sites of the underlying lattice.\nGreenSlice: a GreenFunction evaluated on a specific set of sites, but at an unspecified energy\nGreenSolution: a GreenFunction evaluated at a specific energy, but on an unspecified set of sites\nObservable: a physical observable that can be expressed in terms of a GreenFunction.\nExamples of supported observables include local density of states, current density, transmission probability, conductance and Josephson current","category":"page"},{"location":"tutorial/hamiltonians/#Hamiltonians","page":"Hamiltonians","title":"Hamiltonians","text":"","category":"section"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"We build a Hamiltonian by combining a Lattice and a TightbindingModel, optionally specifying also the number of orbitals on each sublattice if there is more than one. A spinful graphene model (two orbitals per site in both sublattices) with nearest neighbor hopping t0 = 2.7 would be written as","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> lat = LP.honeycomb(); model = hopping(2.7*I);\n\njulia> h = hamiltonian(lat, model; orbitals = 2)\nHamiltonian{Float64,2,2}: Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 5\n Harmonic size : 2 × 2\n Orbitals : [2, 2]\n Element type : 2 × 2 blocks (ComplexF64)\n Onsites : 0\n Hoppings : 6\n Coordination : 3.0","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"A crucial thing to remember when defining multi-orbital Hamiltonians as the above is that onsite and hopping amplitudes need to be matrices of the correct size. The symbol I in Julia represents the identity matrix of any size, which is convenient to define a spin-preserving hopping in the case above. An alternative would be to use model = hopping(2.7*SA[1 0; 0 1]).","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"tip: Models with different number of orbitals per sublattice\nNon-homogeneous multiorbital models are more advanced but are fully supported in Quantica.jl. Just use orbitals = (n₁, n₂,...) to have nᵢ orbitals in sublattice i, and make sure your model is consistent with that. As in the case of the dim keyword in lattice, you can also use Val(nᵢ) for marginally faster construction.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"Similarly to LatticePresets, we also have HamiltonianPresets, also aliased as HP. Currently, we have only HP.graphene(...) and HP.twisted_bilayer_graphene(...), but we expect to extend this library in the future (see the docstring of HP).","category":"page"},{"location":"tutorial/hamiltonians/#A-more-elaborate-example:-the-Kane-Mele-model","page":"Hamiltonians","title":"A more elaborate example: the Kane-Mele model","text":"","category":"section"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"The Kane-Mele model for graphene describes intrinsic spin-orbit coupling (SOC), in the form of an imaginary second-nearest-neighbor hopping between same-sublattice sites, with a sign that alternates depending on hop direction dr. A possible implementation in Quantica.jl would be","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"SOC(dr) = 0.05 * ifelse(iseven(round(Int, atan(dr[2], dr[1])/(pi/3))), im, -im)\n\nmodel =\n hopping(1, range = neighbors(1)) +\n hopping((r, dr) -> SOC(dr); sublats = :A => :A, range = neighbors(2)) +\n hopping((r, dr) -> -SOC(dr); sublats = :B => :B, range = neighbors(2))\n\nh = LatticePresets.honeycomb() |> model\n\nqplot(h, inspector = true)","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"\"Kane-Mele","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"The inspector = true keyword enables interactive tooltips in the visualization of h that allows to navigate each onsite and hopping amplitude graphically. Note that sites connected to the unit cell of h by some hopping are included, but are rendered with partial transparency by default.","category":"page"},{"location":"tutorial/hamiltonians/#ParametricHamiltonians","page":"Hamiltonians","title":"ParametricHamiltonians","text":"","category":"section"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"If we use a ParametricModel instead of a simple TightBindingModel we will obtain a ParametricHamiltonian instead of a simple Hamiltonian, both of which are subtypes of the AbstractHamiltonian type","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> model_param = @hopping((; t = 2.7) -> t*I);\n\njulia> h_param = hamiltonian(lat, model_param; orbitals = 2)\nParametricHamiltonian{Float64,2,2}: Parametric Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 5\n Harmonic size : 2 × 2\n Orbitals : [2, 2]\n Element type : 2 × 2 blocks (ComplexF64)\n Onsites : 0\n Hoppings : 6\n Coordination : 3.0\n Parameters : [:t]","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"We can also apply Modifiers by passing them as extra arguments to hamiltonian, which results again in a ParametricHamiltonian with the parametric modifiers applied","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> peierls! = @hopping!((t, r, dr; Bz = 0) -> t * cis(-Bz/2 * SA[-r[2], r[1]]' * dr));\n\njulia> h_param_mod = hamiltonian(lat, model_param, peierls!; orbitals = 2)\nParametricHamiltonian{Float64,2,2}: Parametric Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 5\n Harmonic size : 2 × 2\n Orbitals : [2, 2]\n Element type : 2 × 2 blocks (ComplexF64)\n Onsites : 0\n Hoppings : 6\n Coordination : 3.0\n Parameters : [:Bz, :t]","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"Note that SA[-r[2], r[1]] above is a 2D SVector, because since the embedding dimension is E = 2, both r and dr are also 2D SVectors.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"We can also apply modifiers to an already constructed AbstractHamiltonian. The following is equivalent to the above","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> h_param_mod = hamiltonian(h_param, peierls!);","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"warning: Modifiers do not commute\nWe can add as many modifiers as we need by passing them as extra arguments to hamiltonian, and they will be applied sequentially, one by one. Beware, however, that modifiers do not necessarily commute, in the sense that the result will in general depend on their order.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"We can obtain a plain Hamiltonian from a ParametricHamiltonian by applying specific values to its parameters. To do so, simply use the call syntax with parameters as keyword arguments","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> h_param_mod(Bz = 0.1, t = 1)\nHamiltonian{Float64,2,2}: Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 5\n Harmonic size : 2 × 2\n Orbitals : [2, 2]\n Element type : 2 × 2 blocks (ComplexF64)\n Onsites : 0\n Hoppings : 6\n Coordination : 3.0","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"tip: Syntax `lat |> model` and `h |> modifier\nThe common cases lat |> hamiltonian(model) (or hamiltonian(lat, model)) and h |> hamiltonian(modifier) (or hamiltonian(h, modifier)) can be also written as lat |> model and h |> modifier, respectively. Hence hamiltonian(lat, model, modifier) may be written as lat |> model |> modifier. This form however does not allow to specify the number of orbitals per sublattice (it will be one, the default).","category":"page"},{"location":"tutorial/hamiltonians/#Obtaining-actual-matrices","page":"Hamiltonians","title":"Obtaining actual matrices","text":"","category":"section"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"For an L-dimensional h::AbstractHamiltonian (i.e. defined on a Lattice with L Bravais vectors), the Hamiltonian matrix between any unit cell with cell index n and another unit cell at n+dn (here known as a Hamiltonian \"harmonic\") is given by h[dn]","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> h[(1,0)]\n4×4 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 4 stored entries:\n ⋅ ⋅ 2.7+0.0im 0.0+0.0im\n ⋅ ⋅ 0.0+0.0im 2.7+0.0im\n ⋅ ⋅ ⋅ ⋅\n ⋅ ⋅ ⋅ ⋅\n\njulia> h[(0,0)]\n4×4 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 8 stored entries:\n ⋅ ⋅ 2.7+0.0im 0.0+0.0im\n ⋅ ⋅ 0.0+0.0im 2.7+0.0im\n 2.7+0.0im 0.0+0.0im ⋅ ⋅\n 0.0+0.0im 2.7+0.0im ⋅ ⋅","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"tip: Cell distance indices\nWe can use Tuples or SVectors for cell distance indices dn. An empty Tuple dn = () will always return the main intra-unitcell harmonic: h[()] = h[(0,0...)] = h[SA[0,0...]].","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"note: Bounded Hamiltonians\nIf the Hamiltonian has a bounded lattice (i.e. it has L=0 Bravais vectors), we will simply use an empty tuple to obtain its matrix h[()]. This is not in conflict with the above syntax.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"Note that if h is a ParametricHamiltonian, such as h_param above, we will get zeros in place of the unspecified parametric terms, unless we actually first specify the values of the parameters","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> h_param[(0,0)] # Parameter t is not specified -> it is not applied\n4×4 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 8 stored entries:\n ⋅ ⋅ 0.0+0.0im 0.0+0.0im\n ⋅ ⋅ 0.0+0.0im 0.0+0.0im\n 0.0+0.0im 0.0+0.0im ⋅ ⋅\n 0.0+0.0im 0.0+0.0im ⋅ ⋅\n\njulia> h_param(t=2)[(0,0)]\n4×4 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 8 stored entries:\n ⋅ ⋅ 2.0+0.0im 0.0+0.0im\n ⋅ ⋅ 0.0+0.0im 2.0+0.0im\n 2.0+0.0im 0.0+0.0im ⋅ ⋅\n 0.0+0.0im 2.0+0.0im ⋅ ⋅","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"note: ParametricHamiltonian harmonics\nThe above behavior for unspecified parameters is not set in stone and may change in future versions. Another option would be to apply their default values (which may, however, not exist).","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"We are usually not interested in the harmonics h[dn] themselves, but rather in the Bloch matrix of a Hamiltonian","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"H(phi) = sum_dn H_dn exp(-i phi * dn)","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"where H_dn are the Hamiltonian harmonics, phi = (phi_1 phi_2) = (kcdot A_1 kcdot A_2) are the Bloch phases, k is the Bloch wavevector and A_i are the Bravais vectors.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"We obtain the Bloch matrix using the syntax h(ϕ; params...)","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> h((0,0))\n4×4 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 8 stored entries:\n ⋅ ⋅ 8.1+0.0im 0.0+0.0im\n ⋅ ⋅ 0.0+0.0im 8.1+0.0im\n 8.1+0.0im 0.0+0.0im ⋅ ⋅\n 0.0+0.0im 8.1+0.0im ⋅ ⋅\n\njulia> h_param_mod((0.2, 0.3); B = 0.1)\n4×4 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 8 stored entries:\n ⋅ ⋅ 7.92559-1.33431im 0.0+0.0im\n ⋅ ⋅ 0.0+0.0im 7.92559-1.33431im\n 7.92559+1.33431im 0.0+0.0im ⋅ ⋅\n 0.0+0.0im 7.92559+1.33431im ⋅ ⋅","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"Note that unspecified parameters take their default values when using the call syntax (as per the standard Julia convention). Any unspecified parameter that does not have a default value will produce an UndefKeywordError error.","category":"page"},{"location":"tutorial/hamiltonians/#Transforming-Hamiltonians","page":"Hamiltonians","title":"Transforming Hamiltonians","text":"","category":"section"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"Like with lattices, we can transform an h::AbstractHamiltonians using supercell, reverse, transform and translate. All these except supercell operate only on the underlying lattice(h) of h, leaving the hoppings and onsite elements unchanged. Meanwhile, supercell acts on lattice(h) but also copies the hoppings and onsites of h onto the new sites, preserving the periodicity of the original h.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"Additionally, we can also use wrap, which makes h periodic along a number of its Bravais vectors, while leaving the rest unbounded.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> wrap(HP.graphene(), (0, :))\nHamiltonian{Float64,2,1}: Hamiltonian on a 1D Lattice in 2D space\n Bloch harmonics : 3\n Harmonic size : 2 × 2\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 4\n Coordination : 2.0","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"The phases argument of wrap(h, phases) is a Tuple of real numbers and/or colons (:), of length equal to the lattice dimension of h. Each real number ϕᵢ corresponds to a Bravais vector along which the transformed lattice will become periodic, picking up a phase exp(iϕᵢ) in the wrapping hoppings, while each colon leaves the lattice unbounded along the corresponding Bravais vector. In a way wrap is dual to supercell, in the sense that the it applies a different boundary condition to the lattice along the eliminated Bravais vectors, periodic instead of open, as in the case of supercell. The phases ϕᵢ are also connected to Bloch phases, in the sense that e.g. wrap(h, (ϕ₁, :))(ϕ₂) == h(ϕ₁, ϕ₂)","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"warning: Caveat of the Bloch-wrap duality\nThe relation wrap(h, phases)(()) = h(phases) is quite general. However, in some cases with position-dependent models, this may not hold. This may happen when some of the rapping hoppings added by wrap are already present in h, as in the case with hoppings at ranges equal or larger than half the size of the unit cell.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"It's important to understand that, when transforming an h::AbstractHamiltonian, the model used to build h is not re-evaluated. Hoppings and onsite energies are merely copied so as to preserve the periodicity of the original h. As a consequence, these two constructions give different Hamiltonians","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> h1 = LP.linear() |> supercell(4) |> hamiltonian(onsite(r -> r[1]));\n\njulia> h2 = LP.linear() |> hamiltonian(onsite(r -> r[1])) |> supercell(4);","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"In the case of h1 the onsite model is applied to the 4-site unitcell. Since each site has a different position, each gets a different onsite energy.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> h1[()]\n4×4 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 4 stored entries:\n 0.0+0.0im ⋅ ⋅ ⋅\n ⋅ 1.0+0.0im ⋅ ⋅\n ⋅ ⋅ 2.0+0.0im ⋅\n ⋅ ⋅ ⋅ 3.0+0.0im","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"In contrast h2 first gets the onsite model applied with a 1-site unitcell at position r = SA[0], so all sites in the lattice get onsite energy zero. Only then it is expanded with supercell, which generates a 4-site unitcell with zero onsite energy on all its sites","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> h2[()]\n4×4 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 4 stored entries:\n 0.0+0.0im ⋅ ⋅ ⋅\n ⋅ 0.0+0.0im ⋅ ⋅\n ⋅ ⋅ 0.0+0.0im ⋅\n ⋅ ⋅ ⋅ 0.0+0.0im","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"As a consequence, h and supercell(h) represent exactly the same system, with the same observables, but with a different choice of unitcell.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"These two different behaviors make sense in different situations, so it is important to be aware of the order dependence of transformations. Similar considerations apply to transform, translate and wrap when models are position dependent.","category":"page"},{"location":"tutorial/tutorial/#Tutorial","page":"Welcome","title":"Tutorial","text":"","category":"section"},{"location":"tutorial/tutorial/","page":"Welcome","title":"Welcome","text":"Welcome to the Quantica.jl tutorial!","category":"page"},{"location":"tutorial/tutorial/","page":"Welcome","title":"Welcome","text":"Here you will learn how to use Quantica.jl to build and compute properties of tight-binding models. This includes","category":"page"},{"location":"tutorial/tutorial/","page":"Welcome","title":"Welcome","text":"Defining general Lattices in arbitrary dimensions\nDefining generic tight-binding Models with arbitrary parameter dependences\nBuilding Hamiltonians of mono- or multiorbital systems by combining Lattices and Models\nComputing Bandstructures of Hamiltonians\nComputing GreenFunctions of Hamiltonians or OpenHamiltonians (i.e. Hamiltonians with attached self-energies from other Hamiltonians, such as leads).\nComputing Observables from Green functions, such as spectral densities, current densities, local and nonlocal conductances, Josephson currents, critical currents, transmission probabilities, etc.","category":"page"},{"location":"tutorial/tutorial/","page":"Welcome","title":"Welcome","text":"Check the menu on the left for shortcuts to the relevant sections.","category":"page"},{"location":"tutorial/tutorial/","page":"Welcome","title":"Welcome","text":"tip: Check the docstrings\nFull usage instructions on all Quantica.jl functions can be found here or within the Julia REPL by querying their docstrings. For example, to obtain details on the hamiltonian function or on the available LatticePresets, just type ?hamiltonian or ?LatticePresets.","category":"page"},{"location":"api/#api","page":"API","title":"API","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"CurrentModule = Quantica","category":"page"},{"location":"api/","page":"API","title":"API","text":"","category":"page"},{"location":"api/","page":"API","title":"API","text":"Modules = [Quantica]","category":"page"},{"location":"api/#Quantica.EigenSolvers","page":"API","title":"Quantica.EigenSolvers","text":"EigenSolvers is a Quantica submodule containing several pre-defined eigensolvers. The alias ES can be used in place of EigenSolvers. Currently supported solvers are\n\nES.LinearAlgebra(; kw...) # Uses `eigen(mat; kw...)` from the `LinearAlgebra` package\nES.Arpack(; kw...) # Uses `eigs(mat; kw...)` from the `Arpack` package\nES.KrylovKit(params...; kw...) # Uses `eigsolve(mat, params...; kw...)` from the `KrylovKit` package\nES.ArnoldiMethod(; kw...) # Uses `partialschur(mat; kw...)` from the `ArnoldiMethod` package\n\nAdditionally, to compute interior eigenvalues, we can use a shift-invert method around energy ϵ0 (uses LinearMaps and a LinearSolve.lu factorization), combined with any solver s from the list above:\n\nES.ShiftInvert(s, ϵ0) # Perform a lu-based shift-invert with solver `s`\n\nIf the required packages are not already available, they will be automatically loaded when calling these solvers.\n\nExamples\n\njulia> h = HP.graphene(t0 = 1) |> supercell(10);\n\njulia> spectrum(h, (0,0), ES.ShiftInvert(ES.ArnoldiMethod(nev = 4), 0.0)) |> energies\n4-element Vector{ComplexF64}:\n -0.38196601125010465 + 3.686368662666227e-16im\n -0.6180339887498938 + 6.015655020129746e-17im\n 0.6180339887498927 + 2.6478518218421853e-16im\n 0.38196601125010476 - 1.741261108320361e-16im\n\nSee also\n\n`spectrum`, `bands`\n\n\n\n\n\n","category":"module"},{"location":"api/#Quantica.GreenSolvers","page":"API","title":"Quantica.GreenSolvers","text":"GreenSolvers is a Quantica submodule containing several pre-defined Green function solvers. The alias GS can be used in place of GS. Currently supported solvers and their possible keyword arguments are\n\nGS.SparseLU() : Direct inversion solver for 0D Hamiltonians using a SparseArrays.lu(hmat) factorization\nGS.Schur(; boundary = Inf) : Solver for 1D Hamiltonians based on a deflated, generalized Schur factorization\nboundary : 1D cell index of a boundary cell, or Inf for no boundaries. Equivalent to removing that specific cell from the lattice when computing the Green function.\nGS.KPM(; order = 100, bandrange = missing, kernel = I) : Kernel polynomial method solver for 0D Hamiltonians\norder : order of the expansion in Chebyshev polynomials Tₙ(h) of the Hamiltonian h (lowest possible order is n = 0).\nbandrange : a (min_energy, max_energy)::Tuple interval that encompasses the full band of the Hamiltonian. If missing, it is computed automatically.\nkernel : generalization that computes momenta as μₙ = Tr[Tₙ(h)*kernel], so that the local density of states (see ldos) becomes the density of the kernel operator.\nThis solver does not allow arbitrary indexing of the resulting g::GreenFunction, only on contacts g[contact_ind::Integer]. If the system has none, we can add a dummy contact using attach(h, nothing; sites...), see attach.\nGS.Bands(bands_arguments; boundary = missing, bands_kw...): solver based on the integration of bandstructure simplices\nbands_arguments: positional arguments passed on to bands\nbands_kw: keyword arguments passed on to bands\nboundary: either missing (no boundary), or dir => cell_pos, where dir::Integer is the Bravais vector normal to the boundary, and cell_pos::Integer the value of cell indices cells[dir] that define the boundary (i.e. cells[dir] <= cell_pos are vaccum)\nThis solver only allows zero or one boundary. WARNING: if a boundary is used, the algorithm may become unstable for very fine band meshes.\n\n\n\n\n\n","category":"module"},{"location":"api/#Quantica.HamiltonianPresets","page":"API","title":"Quantica.HamiltonianPresets","text":"HamiltonianPresets is a Quantica submodule containing several pre-defined Hamiltonians. The alias HP can be used in place of LatticePresets. Currently supported hamiltonians are\n\nHP.graphene(; kw...)\nHP.twisted_bilayer_graphene(; kw...)\n\nFor details on the keyword arguments kw see the corresponding docstring\n\njulia> HamiltonianPresets.twisted_bilayer_graphene(twistindices = (30, 1))\nHamiltonian{Float64,3,2}: Hamiltonian on a 2D Lattice in 3D space\n Bloch harmonics : 7\n Harmonic size : 11164 × 11164\n Orbitals : [1, 1, 1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 315684\n Coordination : 28.27696\n\nSee also\n\n`LatticePresets`, `RegionPresets`\n\n\n\n\n\n","category":"module"},{"location":"api/#Quantica.LatticePresets","page":"API","title":"Quantica.LatticePresets","text":"LatticePresets is a Quantica submodule containing several pre-defined lattices. The alias LP can be used in place of LatticePresets. Currently supported lattices are\n\nLP.linear(; a0 = 1, kw...) # linear lattice in 1D\nLP.square(; a0 = 1, kw...) # square lattice in 2D\nLP.triangular(; a0 = 1, kw...) # triangular lattice in 2D\nLP.honeycomb(; a0 = 1, kw...) # honeycomb lattice in 2D\nLP.cubic(; a0 = 1, kw...) # cubic lattice in 3D\nLP.fcc(; a0 = 1, kw...) # face-centered-cubic lattice in 3D\nLP.bcc(; a0 = 1, kw...) # body-centered-cubic lattice in 3D\nLP.hcp(; a0 = 1, kw...) # hexagonal-closed-packed lattice in 3D\n\nIn all cases a0 denotes the lattice constant, and kw... are extra keywords forwarded to lattice.\n\nExamples\n\njulia> LatticePresets.honeycomb(names = (:C, :D))\nLattice{Float64,2,2} : 2D lattice in 2D space\n Bravais vectors : [[0.5, 0.866025], [-0.5, 0.866025]]\n Sublattices : 2\n Names : (:C, :D)\n Sites : (1, 1) --> 2 total per unit cell\n\njulia> LatticePresets.cubic(bravais = ((1, 0), (0, 2)))\nLattice{Float64,3,2} : 2D lattice in 3D space\n Bravais vectors : [[1.0, 0.0, 0.0], [0.0, 2.0, 0.0]]\n Sublattices : 1\n Names : (:A,)\n Sites : (1,) --> 1 total per unit cell\n\nSee also\n\n`RegionPresets`, `HamiltonianPresets`\n\n\n\n\n\n","category":"module"},{"location":"api/#Quantica.RegionPresets","page":"API","title":"Quantica.RegionPresets","text":"RegionPresets is a Quantica submodule containing several pre-defined regions of type Region{E}, where E is the space dimension. The alias RP can be used in place of RegionPresets. Supported regions are\n\nRP.circle(radius = 10, center = (0, 0)) # 2D\nRP.ellipse((rx, ry) = (10, 15), center = (0, 0)) # 2D\nRP.square(side = 10, center = (0, 0)) # 2D\nRP.rectangle((sx, sy) = (10, 15), center = (0, 0)) # 2D\nRP.sphere(radius = 10, center = (0, 0, 0)) # 3D\nRP.spheroid((rx, ry, rz) = (10, 15, 20), center = (0, 0, 0)) # 3D\nRP.cube(side = 10, center = (0, 0, 0)) # 3D\nRP.cuboid((sx, sy, sz) = (10, 15, 20), center = (0, 0, 0)) # 3D\n\nCalling a f::Region{E} object on a r::Tuple or r::SVector with f(r) or f(r...) returns true or false if r is inside the region or not. Note that only the first E coordinates of r will be checked. Arbitrary boolean functions can also be wrapped in Region{E} to create custom regions, e.g. f = Region{2}(r -> r[1]^2 < r[2]).\n\nBoolean combinations of Regions are supported using &, |, xor and ! operators, such as annulus = RP.circle(10) & !RP.circle(5).\n\nExamples\n\njulia> RegionPresets.circle(10)(20, 0, 0)\nfalse\n\njulia> RegionPresets.circle(10)(0, 0, 20)\ntrue\n\nSee also\n\n`LatticePresets`, `HamiltonianPresets`\n\n\n\n\n\n","category":"module"},{"location":"api/#Quantica.BoxIterator","page":"API","title":"Quantica.BoxIterator","text":"BoxIterator(seed::SVector{N,Int}; maxiterations = TOOMANYITERS)\n\nCartesian iterator iter over SVector{N,Int}s (cells) that starts at seed and grows outwards in the form of a box of increasing sides (not necesarily equal) until it encompasses a certain N-dimensional region. To signal that a cell is in the desired region the user calls acceptcell!(iter, cell).\n\n\n\n\n\n","category":"type"},{"location":"api/#Base.reverse","page":"API","title":"Base.reverse","text":"reverse(lat_or_h::Union{Lattice,AbstractHamiltonian})\n\nBuild a new lattice or hamiltonian with the orientation of all Bravais vectors reversed.\n\nSee also\n\n`reverse!`, `transform`\n\n\n\n\n\n","category":"function"},{"location":"api/#Base.reverse!","page":"API","title":"Base.reverse!","text":"reverse!(lat_or_h::Union{Lattice,AbstractHamiltonian})\n\nIn-place version of reverse, inverts all Bravais vectors of lat_or_h.\n\nSee also\n\n`reverse`, `transform`\n\n\n\n\n\n","category":"function"},{"location":"api/#LinearAlgebra.ishermitian","page":"API","title":"LinearAlgebra.ishermitian","text":"ishermitian(h::Hamiltonian)\n\nCheck whether h is Hermitian. This is not supported for h::ParametricHamiltonian, as the result can depend of the specific values of its parameters.\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.attach","page":"API","title":"Quantica.attach","text":"attach(h::AbstractHamiltonian, args..; sites...)\nattach(h::OpenHamiltonian, args...; sites...)\n\nBuild an h´::OpenHamiltonian by attaching (adding) a Σ::SelfEnergy to a finite number of sites in h specified by siteselector(; sites...). This also defines a \"contact\" on said sites that can be referred to (with index i::Integer for the i-th attached contact) when slicing Green functions later. Self-energies are taken into account when building the Green function g(ω) = (ω - h´ - Σ(ω))⁻¹ of the resulting h´, see greenfunction.\n\nSelf-energy forms\n\nThe different forms of args yield different types of self-energies Σ. Currently supported forms are:\n\nattach(h, gs::GreenSlice, coupling::AbstractModel; sites...)\n\nAdds a generic self-energy Σ(ω) = V´⋅gs(ω)⋅V on h's sites, where V and V´ are couplings, given by coupling, between said sites and the LatticeSlice in gs. Allowed forms of gs include both g[bath_sites...] and g[contactind::Integer] where g is any GreenFunction.\n\nattach(h, model::ParametricModel; sites...)\n\nAdd self-energy Σᵢⱼ(ω) defined by a model composed of parametric terms (@onsite and @hopping) with ω as first argument, as in e.g. @onsite((ω, r) -> Σᵢᵢ(ω, r)) and @hopping((ω, r, dr) -> Σᵢⱼ(ω, r, dr))\n\nattach(h, nothing; sites...)\n\nAdd null self-energy Σᵢⱼ(ω) = 0 on selected sites, which in effect simply amounts to defining a contact on said sites, but does not lead to any dressing the Green function. This is useful for some GreenFunction solvers such as GS.KPM (see greenfunction), which need to know the sites of interest beforehand (the contact sites in this case).\n\nattach(h, g1D::GreenFunction; reverse = false, transform = identity, sites...)\n\nAdd a self-energy Σ(ω) = h₋₁⋅g1D(ω)[surface]⋅h₁ corresponding to a semi-infinite 1D lead (i.e. with a finite boundary, see greenfunction), where h₁ and h₋₁ are intercell couplings, and g1D is the lead GreenFunction. The g1D(ω) is taken at the suface unitcell, either adjacent to the boundary on its positive side (if reverse = false) or on its negative side (if reverse = true). The positions of the selected sites in h must match, modulo an arbitrary displacement, those of the lead unit cell, after applying transform to the latter. If they don't, use the attach syntax below.\n\nAdvanced: If the g1D does not have any self-energies, the produced self-energy is in fact an ExtendedSelfEnergy, which is numerically more stable than a naive implementation of RegularSelfEnergy's, since g1D(ω)[surface] is never actually computed. Conversely, if g1D has self-energies attached, a RegularSelfEnergy is produced.\n\nattach(h, g1D::GreenFunction, coupling::AbstractModel; reverse = false, transform = identity, sites...)\n\nAdd a self-energy Σ(ω) = V´⋅g1D(ω)[surface]⋅V corresponding to a 1D lead (semi-infinite or infinite), but with couplings V and V´, defined by coupling, between sites and the surface lead unitcell (or the one with index zero if there is no boundary) . See also Advanced note above.\n\nCurrying\n\nh |> attach(args...; sites...)\n\nCurried form equivalent to attach(h, args...; sites...).\n\nExamples\n\njulia> # A graphene flake with two out-of-plane cubic-lattice leads\n\njulia> g1D = LP.cubic() |> hamiltonian(hopping(1)) |> supercell((0,0,1), region = RP.square(4)) |> greenfunction(GS.Schur(boundary = 0));\n\njulia> coupling = hopping(1, range = 2);\n\njulia> gdisk = HP.graphene(a0 = 1, dim = 3) |> supercell(region = RP.circle(10)) |> attach(g1D, coupling; region = RP.square(4)) |> attach(g1D, coupling; region = RP.square(4), reverse = true) |> greenfunction;\n\n\nSee also\n\n`greenfunction`, `GreenSolvers`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.bands","page":"API","title":"Quantica.bands","text":"bands(h::AbstractHamiltonian, xcolᵢ...; kw...)\n\nConstruct a Bandstructure object, which contains in particular a collection of continuously connected Subbands of h, obtained by diagonalizing the matrix h(ϕs; params...) on an M-dimensional mesh of points (x₁, x₂, ..., xₘ), where each xᵢ takes values in the collection xcolᵢ. The mapping between points in the mesh points and values of (ϕs; params...) is defined by keyword mapping (identity by default, see Keywords). Diagonalization is multithreaded and will use all available Julia threads (start session with julia -t N to have N threads).\n\nbands(f::Function, xcolᵢ...; kw...)\n\nLike the above using f(ϕs)::AbstractMatrix in place of h(ϕs; params...), and returning a Vector{<:Subband} instead of a Bandstructure object. This is provided as a lower level driver without the added slicing functionality of a full Bandstructure object, see below.\n\nbands(h::AbstractHamiltonian; kw...)\n\nEquivalent to bands(h::AbstractHamiltonian, xcolᵢ...; kw...) with a default xcolᵢ = subdiv(-π, π, 49).\n\nKeywords\n\nsolver: eigensolver to use for each diagonalization (see Eigensolvers). Default: ES.LinearAlgebra()\nmapping: a function of the form (x, y, ...) -> ϕs or (x, y, ...) -> ftuple(ϕs...; params...) that translates points (x, y, ...) in the mesh to Bloch phases ϕs or phase+parameter FrankenTuples ftuple(ϕs...; params...). See also linecuts below. Default: identity\ntransform: function to apply to each eigenvalue after diagonalization. Default: identity\ndegtol::Real: maximum distance between to nearby eigenvalue so that they are classified as degenerate. Default: sqrt(eps)\nsplit::Bool: whether to split bands into disconnected subbands. Default: true\nprojectors::Bool: whether to compute interpolating subspaces in each simplex (for use as GreenSolver). Default: true\nwarn::Bool: whether to emit warning when band dislocations are encountered. Default: true\nshowprogress::Bool: whether to show or not a progress bar. Default: true\ndefects: (experimental) a collection of extra points to add to the mesh, typically the location of topological band defects such as Dirac points, so that interpolation avoids creating dislocation defects in the bands. You need to also increase patches to repair the subband dislocations using the added defect vertices. Default: ()\npatches::Integer: (experimental) if a dislocation is encountered, attempt to patch it by searching for the defect recursively to a given order, or using the provided defects (preferred). Default: 0\n\nCurrying\n\nh |> bands(xcolᵢ...; kw...)\n\nCurried form of bands equivalent to bands(h, xcolᵢ...; kw...)\n\nBand linecuts\n\nTo do a linecut of a bandstructure along a polygonal path in the L-dimensional Brillouin zone, mapping a set of 1D points xs to a set of nodes, with pts interpolation points in each segment, one can use the following convenient syntax\n\nbands(h, subdiv(xs, pts); mapping = (xs => nodes))\n\nHere nodes can be a collection of SVector{L} or of named Brillouin zone points from the list (:Γ,:K, :K´, :M, :X, :Y, :Z). If mapping = nodes, then xs defaults to 0:length(nodes)-1. See also subdiv for its alternative methods.\n\nIndexing and slicing\n\nb[i]\n\nExtract i-th subband from b::Bandstructure. i can also be a Vector, an AbstractRange or any other argument accepted by getindex(subbands::Vector, i)\n\nb[slice::Tuple]\n\nCompute a section of b::Bandstructure with a \"plane\" defined by slice = (ϕ₁, ϕ₂,..., ϕₗ[, ϵ]), where each ϕᵢ or ϵ can be a real number (representing a fixed momentum or energy) or a : (unconstrained along that dimension). For bands of an L-dimensional lattice, slice will be padded to an L+1-long tuple with : if necessary. The result is a collection of of sliced Subbands.\n\nExamples\n\njulia> phis = range(0, 2pi, length = 50); h = LP.honeycomb() |> hamiltonian(@hopping((; t = 1) -> t));\n\njulia> bands(h(t = 1), phis, phis)\nBandstructure{Float64,3,2}: 3D Bandstructure over a 2-dimensional parameter space of type Float64\n Subbands : 1\n Vertices : 5000\n Edges : 14602\n Simplices : 9588\n\njulia> bands(h, phis, phis; mapping = (x, y) -> ftuple(0, x; t = y/2π))\nBandstructure{Float64,3,2}: 3D Bandstructure over a 2-dimensional parameter space of type Float64\n Subbands : 1\n Vertices : 4950\n Edges : 14553\n Simplices : 9604\n\njulia> bands(h(t = 1), subdiv((0, 2, 3), (20, 30)); mapping = (0, 2, 3) => (:Γ, :M, :K))\nBandstructure{Float64,2,1}: 2D Bandstructure over a 1-dimensional parameter space of type Float64\n Subbands : 1\n Vertices : 97\n Edges : 96\n Simplices : 96\n\nSee also\n\n`spectrum`, `subdiv`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.bravais_matrix","page":"API","title":"Quantica.bravais_matrix","text":"bravais_matrix(lat::Lattice)\nbravais_matrix(h::AbstractHamiltonian)\n\nReturn the Bravais matrix of lattice lat or AbstractHamiltonian h, with Bravais vectors as its columns.\n\nExamples\n\njulia> lat = lattice(sublat((0,0)), bravais = ((1.0, 2), (3, 4)));\n\njulia> bravais_matrix(lat)\n2×2 SMatrix{2, 2, Float64, 4} with indices SOneTo(2)×SOneTo(2):\n 1.0 3.0\n 2.0 4.0\n\n\nSee also\n\n`lattice`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.cellsites","page":"API","title":"Quantica.cellsites","text":"cellsites(cell_indices, site_indices)\n\nSimple selector of sites with given site_indices in a given cell at cell_indices. Here, site_indices can be an index, a collection of integers or : (for all sites), and cell_indices should be a collection of L integers, where L is the lattice dimension.\n\nSee also\n\n`siteselector`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.combine","page":"API","title":"Quantica.combine","text":"combine(lats::Lattice...)\n\nIf all lats have compatible Bravais vectors, combine them into a single lattice. If necessary, sublattice names are renamed to remain unique.\n\ncombine(hams::AbstractHamiltonians...; coupling = TighbindingModel())\n\nCombine a collection hams of hamiltonians into one by combining their corresponding lattices, and optionally by adding a coupling between them, given by the hopping terms in coupling.\n\nNote that the coupling model will be applied to the combined lattice (which may have renamed sublattices to avoid name collissions). However, only hopping terms between different hams blocks will be applied.\n\nExamples\n\njulia> # Building Bernal-stacked bilayer graphene\n\njulia> hbot = HP.graphene(a0 = 1, dim = 3); htop = translate(hbot, (0, 1/√3, 1/√3));\n\njulia> h2 = combine(hbot, htop; coupling = hopping(1, sublats = :B => :C) |> plusadjoint))\n┌ Warning: Renamed repeated sublattice :A to :C\n└ @ Quantica ~/.julia/dev/Quantica/src/types.jl:60\n┌ Warning: Renamed repeated sublattice :B to :D\n└ @ Quantica ~/.julia/dev/Quantica/src/types.jl:60\nHamiltonian{Float64,3,2}: Hamiltonian on a 2D Lattice in 3D space\n Bloch harmonics : 5\n Harmonic size : 4 × 4\n Orbitals : [1, 1, 1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 14\n Coordination : 3.5\n\nSee also\n\n`hopping`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.conductance","page":"API","title":"Quantica.conductance","text":"conductance(gs::GreenSlice; nambu = false)\n\nGiven a slice gs = g[i::Integer, j::Integer] of a g::GreenFunction, build a partially evaluated object G::Conductance representing the zero-temperature, linear, differential conductance Gᵢⱼ = dIᵢ/dVⱼ between contacts i and j at arbitrary bias ω = eV in units of e^2/h. Gᵢⱼ is given by\n\n Gᵢⱼ = e^2/h × Tr{[im*δᵢⱼ(gʳ-gᵃ)Γⁱ-gʳΓⁱgᵃΓʲ]} (nambu = false)\n Gᵢⱼ = e^2/h × Tr{[im*δᵢⱼ(gʳ-gᵃ)Γⁱτₑ-gʳΓⁱτ₃gᵃΓʲτₑ]} (nambu = true)\n\nHere gʳ = g(ω) and gᵃ = (gʳ)' = g(ω') are the retarded and advanced Green function of the system, and Γⁱ = im * (Σⁱ - Σⁱ') is the decay rate at contact i. For Nambu systems (nambu = true), the matrices τₑ=[I 0; 0 0] and τ₃ = [I 0; 0 -I] ensure that charge reversal in Andreev reflections is properly taken into account. For normal systems (nambu = false), the total current at finite bias and temperatures is given by Iᵢ = eh dω ⱼ fᵢ(ω) - fⱼ(ω) Gᵢⱼ(ω), where fᵢ(ω) is the Fermi distribution in lead i.\n\nKeywords\n\nnambu : whether to consider the Hamiltonian of the system is written in a Nambu basis, each site containing N electron orbitals followed by N hole orbitals.\n\nFull evaluation\n\nG(ω; params...)\n\nCompute the conductance at the specified contacts.\n\nExamples\n\njulia> # A central system g0 with two 1D leads and transparent contacts\n\njulia> glead = LP.square() |> hamiltonian(hopping(1)) |> supercell((1,0), region = r->-2 greenfunction(GS.Schur(boundary = 0));\n\njulia> g0 = LP.square() |> hamiltonian(hopping(1)) |> supercell(region = r->-2 attach(glead, reverse = true) |> attach(glead) |> greenfunction;\n\njulia> G = conductance(g0[1])\nConductance{Float64}: Zero-temperature conductance dIᵢ/dVⱼ from contacts i,j, in units of e^2/h\n Current contact : 1\n Bias contact : 1\n\njulia> G(0.2)\n2.999999999999999\n\nSee also\n\n`greenfunction`, `ldos`, `current`, `josephson`, `transmission`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.current","page":"API","title":"Quantica.current","text":"current(gs::GreenSlice; charge = -I, direction = missing)\n\nBuild Js::CurrentDensitySlice, a partially evaluated object representing the equilibrium local current density Jᵢⱼ(ω) at arbitrary energy ω from site j to site i, both taken from a specific lattice slice. The current is computed along a given direction (see Keywords).\n\ncurrent(gω::GreenSolution; charge = -I, direction = missing)\n\nBuild Jω::CurrentDensitySolution, as above, but for Jᵢⱼ(ω) at a fixed ω and arbitrary sites i, j. See also greenfunction for details on building a GreenSlice and GreenSolution.\n\nThe local current density is defined here as Jᵢⱼ(ω) = (2h) rᵢⱼ Re Tr(Hᵢⱼgⱼᵢ(ω) - gᵢⱼ(ω)Hⱼᵢ) * charge, with the integrated local current given by Jᵢⱼ = f(ω) Jᵢⱼ(ω) dω. Here Hᵢⱼ is the hopping from site j at rⱼ to i at rᵢ, rᵢⱼ = rᵢ - rⱼ, charge is the charge of carriers in orbital space (see Keywords), and gᵢⱼ(ω) is the retarded Green function between said sites.\n\nKeywords\n\ncharge : for multiorbital sites, charge can be a general matrix, which allows to compute arbitrary currents, such as spin currents.\ndirection: as defined above, Jᵢⱼ(ω) is a vector. If direction is missing the norm |Jᵢⱼ(ω)| is returned. If it is an u::Union{SVector,Tuple}, u⋅Jᵢⱼ(ω) is returned. If an n::Integer, Jᵢⱼ(ω)[n] is returned.\n\nFull evaluation\n\nJω[sites...]\nJs(ω; params...)\n\nGiven a partially evaluated Jω::CurrentDensitySolution or ρs::CurrentDensitySlice, build a sparse matrix Jᵢⱼ(ω) along the specified direction of fully evaluated local current densities.\n\nExample\n\njulia> # A semi-infinite 1D lead with a magnetic field `B`\n\njulia> g = LP.square() |> hamiltonian(@hopping((r, dr; B = 0.1) -> cis(B * dr' * SA[r[2],-r[1]]))) |> supercell((1,0), region = r->-2 greenfunction(GS.Schur(boundary = 0));\n\njulia> J = current(g[cells = SA[1]])\nCurrentDensitySlice{Float64} : current density at a fixed location and arbitrary energy\n charge : LinearAlgebra.UniformScaling{Int64}(-1)\n direction : missing\n\njulia> J(0.2; B = 0.1)\n3×3 SparseArrays.SparseMatrixCSC{Float64, Int64} with 4 stored entries:\n ⋅ 0.0290138 ⋅\n 0.0290138 ⋅ 0.0290138\n ⋅ 0.0290138 ⋅\n\njulia> J(0.2; B = 0.0)\n3×3 SparseArrays.SparseMatrixCSC{Float64, Int64} with 4 stored entries:\n ⋅ 7.77156e-16 ⋅\n 7.77156e-16 ⋅ 5.55112e-16\n ⋅ 5.55112e-16 ⋅\n\n\nSee also\n\n`greenfunction`, `ldos`, `conductance`, `josephson`, `transmission`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.energies","page":"API","title":"Quantica.energies","text":"energies(sp::Spectrum)\n\nReturns the energies in sp as a vector of Numbers (not necessarily real). Equivalent to first(sp).\n\nSee also\n\n`spectrum`, `bands`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.greenfunction","page":"API","title":"Quantica.greenfunction","text":"greenfunction(h::Union{AbstractHamiltonian,OpenHamiltonian}, solver::GreenSolver)\n\nBuild a g::GreenFunction of Hamiltonian h using solver. See GreenSolvers for available solvers. If solver is not provided, a default solver is chosen automatically based on the type of h.\n\nCurrying\n\nh |> greenfunction(solver)\n\nCurried form equivalent to greenfunction(h, solver).\n\nPartial evaluation\n\nGreenFunctions allow independent, partial evaluation of their positions (producing a GreenSlice) and energy/parameters (producing a GreenSolution). Depending on the solver, this may avoid repeating calculations unnecesarily when sweeping over either of these with the other fixed.\n\ng[ss]\ng[siteselector(; ss...)]\n\nBuild a gs::GreenSlice that represents a Green function at arbitrary energy and parameter values, but at specific sites on the lattice defined by siteselector(; ss...), with ss::NamedTuple (see siteselector).\n\ng[contact_index::Integer]\n\nBuild a GreenSlice equivalent to g[contact_sites...], where contact_sites... correspond to sites in contact number contact_index (must have 1<= contact_index <= number_of_contacts). See attach for details on attaching contacts to a Hamiltonian.\n\ng[:]\n\nBuild a GreenSlice over all contacts.\n\ng[dst, src]\n\nBuild a gs::GreenSlice between sites specified by src and dst, which can take any of the forms above. Therefore, all the previous single-index slice forms correspond to a diagonal block g[i, i].\n\ng[diagonal(i, kernel = missing)]\n\nIf kernel = missing, efficiently construct diag(g[i, i]). If kernel is a matrix, return tr(g[site, site] * kernel) over each site encoded in i. Note that if there are several orbitals per site, these will have different length (i.e. number of orbitals vs number of sites). See also diagonal.\n\ng(ω; params...)\n\nBuild a gω::GreenSolution that represents a retarded Green function at arbitrary points on the lattice, but at fixed energy ω and system parameter values param. If ω is complex, the retarded or advanced Green function is returned, depending on sign(imag(ω)). If ω is Real, a small, positive imaginary part is automatically added internally to produce the retarded g.\n\ngω[i]\ngω[i, j]\ngs(ω; params...)\n\nFor any gω::GreenSolution or gs::GreenSlice, build the Green function matrix fully evaluated at fixed energy, parameters and positions. The matrix is dense and has scalar elements, so that any orbital structure on each site is flattened.\n\nExample\n\njulia> g = LP.honeycomb() |> hamiltonian(@hopping((; t = 1) -> t)) |> supercell(region = RP.circle(10)) |> greenfunction(GS.SparseLU())\nGreenFunction{Float64,2,0}: Green function of a Hamiltonian{Float64,2,0}\n Solver : AppliedSparseLUGreenSolver\n Contacts : 0\n Contact solvers : ()\n Contact sizes : ()\n ParametricHamiltonian{Float64,2,0}: Parametric Hamiltonian on a 0D Lattice in 2D space\n Bloch harmonics : 1\n Harmonic size : 726 × 726\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 2098\n Coordination : 2.88981\n Parameters : [:t]\n\njulia> gω = g(0.1; t = 2)\nGreenSolution{Float64,2,0}: Green function at arbitrary positions, but at a fixed energy\n\njulia> ss = (; region = RP.circle(2), sublats = :B);\n\njulia> gs = g[ss]\nGreenSlice{Float64,2,0}: Green function at arbitrary energy, but at a fixed lattice positions\n\njulia> gω[ss] == gs(0.1; t = 2)\ntrue\n\nSee also\n\n`GreenSolvers`, `diagonal`, `ldos`, `conductance`, `current`, `josephson`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.hamiltonian","page":"API","title":"Quantica.hamiltonian","text":"hamiltonian(lat::Lattice, model; orbitals = 1)\n\nCreate a Hamiltonian or ParametricHamiltonian by applying model to the lattice lat (see onsite, @onsite, hopping and @hopping for details on building tight-binding models).\n\nhamiltonian(lat::Lattice, model, modifiers...; orbitals = 1)\nhamiltonian(h::AbstractHamiltonian, modifiers...; orbitals = 1)\n\nCreate a ParametricHamiltonian where all onsite and hopping terms in model can be parametrically modified through the provided modifiers (see @onsite! and @hopping! for details on defining modifiers).\n\nKeywords\n\norbitals: number of orbitals per sublattice. If an Integer (or a Val{<:Integer} for type-stability), all sublattices will have the same number of orbitals. A collection of values indicates the orbitals on each sublattice.\n\nCurrying\n\nlat |> hamiltonian(model[, modifiers...]; kw...)\n\nCurried form of hamiltonian equivalent to hamiltonian(lat, model, modifiers...; kw...).\n\nlat |> model\n\nAlternative and less general curried form equivalent to hamiltonian(lat, model).\n\nh |> modifier\n\nAlternative and less general curried form equivalent to hamiltonian(h, modifier).\n\nIndexing\n\nh[dn::SVector{L,Int}]\nh[dn::NTuple{L,Int}]\n\nReturn the Bloch harmonic of an h::AbstractHamiltonian in the form of a SparseMatrixCSC with complex scalar eltype. This matrix is \"flat\", in the sense that it contains matrix elements between indivisual orbitals, not sites. This distinction is only relevant for multiorbital Hamiltonians. To access the non-flattened matrix use h[unflat(dn)] (see also unflat).\n\nh[()]\n\nSpecial syntax equivalent to h[(0...)], which access the fundamental Bloch harmonic.\n\nCall syntax\n\nph(; params...)\n\nReturn a h::Hamiltonian from a ph::ParametricHamiltonian by applying specific values to its parameters params. If ph is a non-parametric Hamiltonian instead, this is a no-op.\n\nh(φs; params...)\n\nReturn the flat, sparse Bloch matrix of h::AbstractHamiltonian at Bloch phases φs, with applied parameters params if h is a ParametricHamiltonian. The Bloch matrix is defined as\n\n H = ∑_dn exp(-im φs⋅dn) H_dn\n\nwhere H_dn = h[dn] is the dn flat Bloch harmonic of h, and φs[i] = k⋅aᵢ in terms of the wavevector k and the Bravais vectors aᵢ.\n\nExamples\n\njulia> h = hamiltonian(LP.honeycomb(), hopping(SA[0 1; 1 0], range = 1/√3), orbitals = 2)\nHamiltonian{Float64,2,2}: Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 5\n Harmonic size : 2 × 2\n Orbitals : [2, 2]\n Element type : 2 × 2 blocks (ComplexF64)\n Onsites : 0\n Hoppings : 6\n Coordination : 3.0\n\njulia> h((0,0))\n4×4 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 8 stored entries:\n ⋅ ⋅ 0.0+0.0im 3.0+0.0im\n ⋅ ⋅ 3.0+0.0im 0.0+0.0im\n 0.0+0.0im 3.0+0.0im ⋅ ⋅\n 3.0+0.0im 0.0+0.0im ⋅ ⋅\n\nSee also\n\n`lattice`, `onsite`, `hopping`, `@onsite`, `@hopping`, `@onsite!`, `@hopping!`, `ishermitian`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.hopping","page":"API","title":"Quantica.hopping","text":"hopping(t; hops...)\nhopping((r, dr) -> t(r, dr); hops...)\n\nBuild a TighbindingModel representing a uniform or a position-dependent hopping amplitude, respectively, on hops selected by hopselector(; hops...) (see hopselector for details).\n\nHops from a site at position r₁ to another at r₂ are described using the hop center r = (r₁ + r₂)/2 and the hop vector dr = r₂ - r₁. Hopping amplitudes t can be a Number (for hops between single-orbital sites), a UniformScaling (e.g. 2I) or an AbstractMatrix (use SMatrix for performance) of dimensions matching the number of orbitals in the selected sites. Models may be applied to a lattice lat to produce an Hamiltonian with hamiltonian(lat, model; ...), see hamiltonian. Position dependent models are forced to preserve the periodicity of the lattice.\n\nhopping(m::Union{TighbindingModel,ParametricModel}; hops...)\n\nConvert m into a new model with just hopping terms acting on hops.\n\nModel algebra\n\nModels can be combined using +, - and *, or conjugated with ', e.g. onsite(1) - 2 * hopping(1)'.\n\nExamples\n\njulia> model = hopping((r, dr) -> cis(dot(SA[r[2], -r[1]], dr)); dcells = (0,0)) + onsite(r -> rand())\nTightbindingModel: model with 2 terms\n HoppingTerm{Function}:\n Region : any\n Sublattice pairs : any\n Cell distances : (0, 0)\n Hopping range : Neighbors(1)\n Reverse hops : false\n Coefficient : 1\n OnsiteTerm{Function}:\n Region : any\n Sublattices : any\n Cells : any\n Coefficient : 1\n\njulia> LP.honeycomb() |> supercell(2) |> hamiltonian(model)\nHamiltonian{Float64,2,2}: Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 1\n Harmonic size : 8 × 8\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 8\n Hoppings : 16\n Coordination : 2.0\n\nSee also\n\n`onsite`, `@onsite`, `@hopping`, `@onsite!`, `@hopping!`, `hamiltonian`, `plusadjoint`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.hopselector","page":"API","title":"Quantica.hopselector","text":"hopselector(; range = neighbors(1), dcells = missing, sublats = missing, region = missing)\n\nReturn a HopSelector object that can be used to select a finite set of hops between sites in a lattice. Hops between two sites at positions r₁ = r - dr/2 and r₂ = r + dr, belonging to unit cells with a cell distance dn::SVector{L,Int} and to a sublattices with names s₁::Symbol and s₂::Symbol will be selected only if\n\n`region(r, dr) && (s₁ => s₂ in sublats) && (dcell in dcells) && (norm(dr) <= range)`\n\nIf any of these is missing it will not be used to constraint the selection.\n\nGeneralization\n\nWhile range is usually a Real, and sublats and dcells are usually collections of Pair{Symbol}s and SVectors, respectively, they also admit other possibilities:\n\nsublats = :A # Hops from :A to :A\nsublats = :A => :B # Hops from :A to :B sublattices, but not from :B to :A\nsublats = (:A => :B,) # Same as above\nsublats = (:A => :B, :C => :D) # Hopping from :A to :B or :C to :D\nsublats = (:A, :C) .=> (:B, :D) # Broadcasted pairs, same as above\nsublats = (:A, :C) => (:B, :D) # Direct product, (:A=>:B, :A=>:D, :C=>:B, :C=>D)\nsublats = 1 => 2 # Hops from 1st to 2nd sublat. All the above patterns also admit Ints\nsublats = (spec₁, spec₂, ...) # Hops matching any of the specs with any of the above forms\n\ndcells = dn::SVector{L,Integer} # Hops between cells separated by `dn`\ndcells = dn::NTuple{L,Integer} # Hops between cells separated by `SVector(dn)`\ndcells = f::Function # Hops between cells separated by `dn` such that `f(dn) == true`\n\nrange = neighbors(n) # Hops within the `n`-th nearest neighbor distance in the lattice\nrange = (min, max) # Hops at distance inside the `[min, max]` closed interval (bounds can also be `neighbors(n)`)\n\nUsage\n\nAlthough the constructor hopselector(; kw...) is exported, the end user does not usually need to call it directly. Instead, the keywords kw are input into different functions that allow filtering hops, which themselves call hopselector internally as needed. Some of these functions are\n\n- hopping(...; kw...) : hopping model term to be applied to site pairs specified by `kw`\n- @hopping(...; kw...) : parametric hopping model term to be applied to site pairs specified by `kw`\n- @hopping!(...; kw...) : hopping modifier to be applied to site pairs specified by `kw`\n\nExamples\n\njulia> h = LP.honeycomb() |> hamiltonian(hopping(1, range = neighbors(2), sublats = (:A, :B) .=> (:A, :B)))\nHamiltonian{Float64,2,2}: Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 7\n Harmonic size : 2 × 2\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 12\n Coordination : 6.0\n\njulia> h = LP.honeycomb() |> hamiltonian(hopping(1, range = (neighbors(2), neighbors(3)), sublats = (:A, :B) => (:A, :B)))\nHamiltonian{Float64,2,2}: Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 9\n Harmonic size : 2 × 2\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 18\n Coordination : 9.0\n\nSee also\n\n`siteselector`, `lattice`, `hopping`, `@hopping`, `@hopping!`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.josephson","page":"API","title":"Quantica.josephson","text":"josephson(gs::GreenSlice, ωmax; kBT = 0.0, phases = missing, imshift = missing, slope = 1, post = real, atol = 1e-7, quadgk_opts...)\n\nFor a gs = g[i::Integer] slice of the g::GreenFunction of a hybrid junction, build a partially evaluated object J::Integrator representing the equilibrium (static) Josephson current I_J flowing into g through contact i, integrated from -ωmax to ωmax (or from -ωmax to 0 at zero temperature kBT = 0). The result of I_J is given in units of qe/h (q is the dimensionless carrier charge). I_J can be written as I_J = Re dω f(ω) j(ω), where j(ω) = (qeh) 2Tr(ΣʳᵢGʳ - GʳΣʳᵢ)τz.\n\nFull evaluation\n\nJ(; params...)\n\nEvaluate the Josephson current I_J for the given g parameters params, if any.\n\nKeywords\n\nkBT : temperature in same energy units as the Hamiltonian\nphases : collection of superconducting phase biases to apply to the contact, so as to efficiently compute the full current-phase relation [I_J(ϕ) for ϕ in phases]. Note that each phase bias ϕ is applied by a [cis(-ϕ/2) 0; 0 cis(ϕ/2)] rotation to the self energy, which is almost free. If missing, a single I_J is returned.\nimshift: if missing the initial and final integration points ± ωmax are shifted by im * sqrt(eps(ωmax)), to avoid the real axis. Otherwise a shift im*imshift is applied (may be zero if ωmax is greater than the bandwidth).\nslope: if non-zero, the integration will be performed along a piecewise-linear path in the complex plane (-ωmax, -ωmax/2 * (1+slope*im), 0, ωmax/2 * (1+slope*im), ωmax), taking advantage of the holomorphic integrand f(ω) j(ω) and the Cauchy Integral Theorem for faster convergence.\npost: function to apply to the result of ∫ dω f(ω) j(ω) to obtain the result, post = real by default.\natol: absolute integration tolerance. The default 1e-7 is chosen to avoid excessive integration times when the current is actually zero.\nquadgk_opts : extra keyword arguments (other than atol) to pass on to the function QuadGK.quadgk that is used for the integration.\n\nExamples\n\njulia> glead = LP.square() |> hamiltonian(onsite(0.0005 * SA[0 1; 1 0]) + hopping(SA[1 0; 0 -1]), orbitals = 2) |> supercell((1,0), region = r->-2 greenfunction(GS.Schur(boundary = 0));\n\njulia> g0 = LP.square() |> hamiltonian(hopping(SA[1 0; 0 -1]), orbitals = 2) |> supercell(region = r->-2 attach(glead, reverse = true) |> attach(glead) |> greenfunction;\n\njulia> J = josephson(g0[1], 4; phases = subdiv(0, pi, 10))\nIntegrator: Complex-plane integrator\n Integration path : (-4.0 + 1.4901161193847656e-8im, -2.0 + 2.000000014901161im, 0.0 + 1.4901161193847656e-8im)\n Integration options : ()\n Integrand: :\n JosephsonDensity{Float64} : Equilibrium (dc) Josephson current observable before integration over energy\n kBT : 0.0\n Contact : 1\n Number of phase shifts : 10\n\njulia> J()\n10-element Vector{Float64}:\n -6.751348391359149e-16\n 0.0016315088241546964\n 0.003213820056117238\n 0.004699191781510955\n 0.0060427526322931946\n 0.0072038354411029185\n 0.008147188939639644\n 0.008844017741703502\n 0.009272686515034255\n -1.7744618723033526e-12\n\nSee also\n\n`greenfunction`,`ldos`, `current`, `conductance`, `transmission`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.lattice","page":"API","title":"Quantica.lattice","text":"lattice(sublats::Sublat...; bravais = (), dim, type, names)\nlattice(sublats::AbstractVector{<:Sublat}; bravais = (), dim, type, names)\n\nCreate a Lattice{T,E,L} from sublattices sublats, where L is the number of Bravais vectors given by bravais, T = type is the AbstractFloat type of spatial site coordinates, and dim = E is the spatial embedding dimension.\n\nlattice(lat::Lattice; bravais = missing, dim = missing, type = missing, names = missing)\n\nCreate a new lattice by applying any non-missing keywords to lat.\n\nlattice(x)\n\nReturn the parent lattice of object x, of type e.g. LatticeSlice, Hamiltonian, etc.\n\nKeywords\n\nbravais: a collection of one or more Bravais vectors of type NTuple{E} or SVector{E}. It can also be an AbstractMatrix of dimension E×L. The default bravais = () corresponds to a bounded lattice with no Bravais vectors.\nnames: a collection of Symbols. Can be used to rename sublats. Any repeated names will be replaced if necessary by :A, :B etc. to ensure that all sublattice names are unique.\n\nIndexing\n\nlat[kw...]\n\nIndexing into a lattice lat with keywords returns LatticeSlice representing a finite collection of sites selected by siteselector(; kw...). See siteselector for details on possible kw, and sites to obtain site positions.\n\nlat[]\n\nSpecial case equivalent to lat[cells = (0,...)] that returns a LatticeSlice of the zero-th unitcell.\n\nExamples\n\njulia> lat = lattice(sublat((0, 0)), sublat((0, 1)); bravais = (1, 0), type = Float32, dim = 3, names = (:up, :down))\nLattice{Float32,3,1} : 1D lattice in 3D space\n Bravais vectors : Vector{Float32}[[1.0, 0.0, 0.0]]\n Sublattices : 2\n Names : (:up, :down)\n Sites : (1, 1) --> 2 total per unit cell\n\njulia> lattice(lat; type = Float64, names = (:A, :B), dim = 2)\nLattice{Float64,2,1} : 1D lattice in 2D space\n Bravais vectors : [[1.0, 0.0]]\n Sublattices : 2\n Names : (:A, :B)\n Sites : (1, 1) --> 2 total per unit cell\n\nSee also\n\n`LatticePresets`, `sublat`, `sites`, `supercell`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.ldos","page":"API","title":"Quantica.ldos","text":"ldos(gs::GreenSlice; kernel = I)\n\nBuild ρs::LocalSpectralDensitySlice, a partially evaluated object representing the local density of states ρᵢ(ω) at specific sites i but at arbitrary energy ω.\n\nldos(gω::GreenSolution; kernel = I)\n\nBuild ρω::LocalSpectralDensitySolution, as above, but for ρᵢ(ω) at a fixed ω and arbitrary sites i. See also greenfunction for details on building a GreenSlice and GreenSolution.\n\nThe local density of states is defined here as ρᵢ(ω) = -Tr(gᵢᵢ(ω))π, where gᵢᵢ(ω) is the retarded Green function at a given site i.\n\nKeywords\n\nkernel : for multiorbital sites, kernel allows to compute a generalized ldos ρᵢ(ω) = -Tr(gᵢᵢ(ω) * kernel)/π, where gᵢᵢ(ω) is the retarded Green function at site i and energy ω. If kernel = missing, the complete, orbital-resolved ldos is returned.\n\nFull evaluation\n\nρω[sites...]\nρs(ω; params...)\n\nGiven a partially evaluated ρω::LocalSpectralDensitySolution or ρs::LocalSpectralDensitySlice, build a vector [ρ₁(ω), ρ₂(ω)...] of fully evaluated local densities of states.\n\nExample\n\njulia> g = HP.graphene(a0 = 1, t0 = 1) |> supercell(region = RP.circle(20)) |> attach(nothing, region = RP.circle(1)) |> greenfunction(GS.KPM(order = 300, bandrange = (-3.1, 3.1)))\nGreenFunction{Float64,2,0}: Green function of a Hamiltonian{Float64,2,0}\n Solver : AppliedKPMGreenSolver\n Contacts : 1\n Contact solvers : (SelfEnergyEmptySolver,)\n Contact sizes : (6,)\n Hamiltonian{Float64,2,0}: Hamiltonian on a 0D Lattice in 2D space\n Bloch harmonics : 1\n Harmonic size : 2898 × 2898\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 8522\n Coordination : 2.94065\n\njulia> ldos(g(0.2))[1]\n6-element Vector{Float64}:\n 0.036802204179316955\n 0.034933055722650375\n 0.03493305572265026\n 0.03493305572265034\n 0.03493305572265045\n 0.036802204179317045\n\njulia> ldos(g(0.2))[1] == -imag.(g[diagonal(1; kernel = I)](0.2)) ./ π\ntrue\n\nSee also\n\n`greenfunction`, `diagonal`, `current`, `conductance`, `josephson`, `transmission`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.neighbors","page":"API","title":"Quantica.neighbors","text":"neighbors(n::Int)\n\nCreate a Neighbors(n) object that represents a hopping range to distances corresponding to the n-th nearest neighbors in a given lattice, irrespective of their sublattice. Neighbors at equal distance do not count towards n.\n\nneighbors(n::Int, lat::Lattice)\n\nObtain the actual nth-nearest-neighbot distance between sites in lattice lat.\n\nSee also\n\n`hopping`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.onsite","page":"API","title":"Quantica.onsite","text":"onsite(o; sites...)\nonsite(r -> o(r); sites...)\n\nBuild a TighbindingModel representing a uniform or a position-dependent onsite potential, respectively, on sites selected by siteselector(; sites...) (see siteselector for details).\n\nSite positions are r::SVector{E}, where E is the embedding dimension of the lattice. The onsite potential o can be a Number (for single-orbital sites), a UniformScaling (e.g. 2I) or an AbstractMatrix (use SMatrix for performance) of dimensions matching the number of orbitals in the selected sites. Models may be applied to a lattice lat to produce a Hamiltonian with hamiltonian(lat, model; ...), see hamiltonian. Position dependent models are forced to preserve the periodicity of the lattice.\n\nonsite(m::{TighbindingModel,ParametricModel}; sites...)\n\nConvert m into a new model with just onsite terms acting on sites.\n\nModel algebra\n\nModels can be combined using +, - and *, or conjugated with ', e.g. onsite(1) - 2 * hopping(1)'.\n\nExamples\n\njulia> model = onsite(r -> norm(r) * SA[0 1; 1 0]; sublats = :A) - hopping(I; range = 2)\nTightbindingModel: model with 2 terms\n OnsiteTerm{Function}:\n Region : any\n Sublattices : A\n Cells : any\n Coefficient : 1\n HoppingTerm{LinearAlgebra.UniformScaling{Bool}}:\n Region : any\n Sublattice pairs : any\n Cell distances : any\n Hopping range : 2.0\n Reverse hops : false\n Coefficient : -1\n\njulia> LP.cubic() |> supercell(4) |> hamiltonian(model, orbitals = 2)\nHamiltonian{Float64,3,3}: Hamiltonian on a 3D Lattice in 3D space\n Bloch harmonics : 27\n Harmonic size : 64 × 64\n Orbitals : [2]\n Element type : 2 × 2 blocks (ComplexF64)\n Onsites : 64\n Hoppings : 2048\n Coordination : 32.0\n\nSee also\n\n`hopping`, `@onsite`, `@hopping`, `@onsite!`, `@hopping!`, `hamiltonian`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.plusadjoint","page":"API","title":"Quantica.plusadjoint","text":"plusadjoint(t::Model)\n\nReturns a model t + t'. This is a convenience function analogous to the + h.c. notation.\n\nExample\n\njulia> model = hopping(im, sublats = :A => :B) |> plusadjoint\nTightbindingModel: model with 2 terms\n HoppingTerm{Complex{Bool}}:\n Region : any\n Sublattice pairs : :A => :B\n Cell distances : any\n Hopping range : Neighbors(1)\n Reverse hops : false\n Coefficient : 1\n HoppingTerm{Complex{Int64}}:\n Region : any\n Sublattice pairs : :A => :B\n Cell distances : any\n Hopping range : Neighbors(1)\n Reverse hops : true\n Coefficient : 1\n\njulia> h = hamiltonian(LP.honeycomb(), model)\nHamiltonian{Float64,2,2}: Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 5\n Harmonic size : 2 × 2\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 6\n Coordination : 3.0\n\njulia> h((0,0))\n2×2 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 2 stored entries:\n ⋅ 0.0-3.0im\n 0.0+3.0im ⋅\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.sites","page":"API","title":"Quantica.sites","text":"sites(lat::Lattice[, sublat])\n\nReturn a collection of site positions in the unit cell of lattice lat. If a sublat::Symbol or sublat::Int is specified, only sites for the specified sublattice are returned.\n\nsites(ls::LatticeSlice)\n\nReturn a collection of positions of a LatticeSlice, generally obtained by indexing a lattice lat[sel...] with some siteselector keywords sel. See also lattice.\n\nNote: the returned collections can be of different types (vectors, generators, views...)\n\nExamples\n\njulia> sites(LatticePresets.honeycomb(), :A)\n1-element view(::Vector{SVector{2, Float64}}, 1:1) with eltype SVector{2, Float64}:\n [0.0, -0.2886751345948129]\n\nSee also\n\n`lattice`, `siteselector`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.siteselector","page":"API","title":"Quantica.siteselector","text":"siteselector(; region = missing, sublats = missing, cells = missing)\n\nReturn a SiteSelector object that can be used to select a finite set of sites in a lattice. Sites at position r::SVector{E}, belonging to a cell of index n::SVector{L,Int} and to a sublattice with name s::Symbol will be selected only if\n\n`region(r) && s in sublats && n in cells`\n\nAny missing region, sublat or cells will not be used to constraint the selection.\n\nGeneralization\n\nWhile sublats and cells are usually collections of Symbols and SVectors, respectively, they also admit other possibilities:\n\nIf either cells or sublats are a single cell or sublattice, they will be treated as single-element collections\nIf sublat is a collection of Integers, it will refer to sublattice numbers.\nIf cells is an i::Integer, it will be converted to an SVector{1}\nIf cells is a collection, each element will be converted to an SVector.\nIf cells is a boolean function, n in cells will be the result of cells(n)\n\nUsage\n\nAlthough the constructor siteselector(; kw...) is exported, the end user does not usually need to call it directly. Instead, the keywords kw are input into different functions that allow filtering sites, which themselves call siteselector internally as needed. Some of these functions are\n\ngetindex(lat::Lattice; kw...) : return a LatticeSlice with sites specified by kw (also lat[kw...])\nsupercell(lat::Lattice; kw...) : returns a bounded lattice with the sites specified by kw\nonsite(...; kw...) : onsite model term to be applied to sites specified by kw\n@onsite!(...; kw...) : onsite modifier to be applied to sites specified by kw\n\nSee also\n\n`hopselector`, `lattice`, `supercell`, `onsite`, `@onsite`, `@onsite!`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.spectrum","page":"API","title":"Quantica.spectrum","text":"spectrum(h::AbstractHamiltonian, ϕs; solver = EigenSolvers.LinearAlgebra(), transform = missing, params...)\n\nCompute the Spectrum of the Bloch matrix h(ϕs; params...) using the specified eigensolver, with transform applied to the resulting eigenenergies, if not missing. Eigenpairs are sorted by the real part of their energy. See EigenSolvers for available solvers and their options.\n\nspectrum(h::AbstractHamiltonian; kw...)\n\nFor a 0D h, equivalent to spectrum(h, (); kw...)\n\nspectrum(m::AbstractMatrix; solver = EigenSolvers.LinearAlgebra()], transform = missing)\n\nCompute the Spectrum of matrix m using solver and transform.\n\nspectrum(b::Bandstructure, ϕs)\n\nCompute the Spectrum corresponding to slicing the bandstructure b at point ϕs of its base mesh (see bands for details).\n\nIndexing and destructuring\n\nEigenenergies ϵs::Tuple and eigenstates ψs::Matrix can be extracted from a spectrum sp using any of the following\n\nϵs, ψs = sp\nϵs = first(sp)\nϵs = energies(sp)\nψs = last(sp)\nψs = states(sp)\n\nIn addition, one can extract the n eigenpairs closest (in real energy) to a given energy ϵ₀ with\n\nϵs, ψs = sp[1:n, around = ϵ₀]\n\nMore generally, sp[inds, around = ϵ₀] will take the eigenpairs at position given by inds after sorting by increasing distance to ϵ₀, or the closest eigenpair in inds is missing. If around is omitted, the ordering in sp is used.\n\nExamples\n\njulia> h = HP.graphene(t0 = 1); spectrum(h, (0,0))\nSpectrum{Float64,ComplexF64} :\nEnergies:\n2-element Vector{ComplexF64}:\n -2.9999999999999982 + 0.0im\n 2.9999999999999982 + 0.0im\nStates:\n2×2 Matrix{ComplexF64}:\n -0.707107+0.0im 0.707107+0.0im\n 0.707107+0.0im 0.707107+0.0im\n\nSee also\n\n`EigenSolvers`, `bands`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.states","page":"API","title":"Quantica.states","text":"states(sp::Spectrum)\n\nReturns the eigenstates in sp as columns of a matrix. Equivalent to last(sp).\n\nSee also\n\n`spectrum`, `bands`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.subdiv","page":"API","title":"Quantica.subdiv","text":"subdiv((x₁, x₂, ..., xₙ), (p₁, p₂, ..., pₙ₋₁))\n\nBuild a vector of values between x₁ and xₙ containing all xᵢ such that in each interval [xᵢ, xᵢ₊₁] there are pᵢ equally space values.\n\nsubdiv((x₁, x₂, ..., xₙ), p)\n\nSame as above with all pᵢ = p\n\nsubdiv(x₁, x₂, p)\n\nEquivalent to subdiv((x₁, x₂), p) == collect(range(x₁, x₂, length = p))\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.sublat","page":"API","title":"Quantica.sublat","text":"sublat(sites...; name::Symbol = :A)\nsublat(sites::AbstractVector; name::Symbol = :A)\n\nCreate a Sublat{E,T} that adds a sublattice, of name name, with sites at positions sites in E dimensional space. Sites positions can be entered as Tuples or SVectors.\n\nExamples\n\njulia> sublat((0.0, 0), (1, 1), (1, -1), name = :A)\nSublat{2,Float64} : sublattice of Float64-typed sites in 2D space\n Sites : 3\n Name : :A\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.supercell","page":"API","title":"Quantica.supercell","text":"supercell(lat::Lattice{E,L}, v::NTuple{L,Integer}...; seed = missing, kw...)\nsupercell(lat::Lattice{E,L}, uc::SMatrix{L,L´,Int}; seed = missing, kw...)\n\nGenerate a new Lattice from an L-dimensional lattice lat with a larger unit cell, such that its Bravais vectors are br´= br * uc. Here uc::SMatrix{L,L´,Int} is the integer supercell matrix, with the L´ vectors vs as its columns. If no v are given, the new lattice will have no Bravais vectors (i.e. it will be bounded, with its shape determined by keywords kw...). Likewise, if L´ < L, the resulting lattice will be bounded along L´ - L directions, as dictated by kw....\n\nOnly sites selected by siteselector(; kw...) will be included in the supercell (see siteselector for details on the available keywords kw). If no keyword region is given in kw, a single Bravais unit cell perpendicular to the v axes will be selected along the L-L´ bounded directions.\n\nsupercell(lattice::Lattice{E,L}, factors::Integer...; seed = missing, kw...)\n\nCall supercell with different scaling along each Bravais vector, so that supercell matrix uc is Diagonal(factors). If a single factor is given, uc = SMatrix{L,L}(factor * I)\n\nsupercell(h::Hamiltonian, v...; mincoordination = 0, seed = missing, kw...)\n\nTransform the Lattice of h to have a larger unit cell, while expanding the Hamiltonian accordingly.\n\nKeywords\n\nseed::NTuple{L,Integer}: starting cell index to perform search of included sites. By default seed = missing, which makes search start from the zero-th cell.\nmincoordination::Integer: minimum number of nonzero hopping neighbors required for sites to be included in the supercell. Sites with less coordination will be removed recursively, until all remaining sites satisfy mincoordination.\n\nCurrying\n\nlat_or_h |> supercell(v...; kw...)\n\nCurried syntax, equivalent to supercell(lat_or_h, v...; kw...)\n\nExamples\n\njulia> LatticePresets.square() |> supercell((1, 1), region = r -> 0 < r[1] < 5)\nLattice{Float64,2,1} : 1D lattice in 2D space\n Bravais vectors : [[1.0, 1.0]]\n Sublattices : 1\n Names : (:A,)\n Sites : (8,) --> 8 total per unit cell\n\njulia> LatticePresets.honeycomb() |> supercell(3)\nLattice{Float64,2,2} : 2D lattice in 2D space\n Bravais vectors : [[1.5, 2.598076], [-1.5, 2.598076]]\n Sublattices : 2\n Names : (:A, :B)\n Sites : (9, 9) --> 18 total per unit cell\n\nSee also\n\n`supercell`, `siteselector`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.transform","page":"API","title":"Quantica.transform","text":"transform(lat_or_h::Union{Lattice,AbstractHamiltonian}, f::Function)\n\nBuild a new lattice or hamiltonian transforming each site positions r into f(r).\n\nCurrying\n\nx |> transform(f::Function)\n\nCurried version of transform, equivalent to transform(f, x)\n\nNote: Unexported Quantica.transform! is also available for in-place transforms. Use with care, as aliasing (i.e. several objects sharing the modified one) can produce unexpected results.\n\nExamples\n\njulia> LatticePresets.square() |> transform(r -> 3r)\nLattice{Float64,2,2} : 2D lattice in 2D space\n Bravais vectors : [[3.0, 0.0], [0.0, 3.0]]\n Sublattices : 1\n Names : (:A,)\n Sites : (1,) --> 1 total per unit cell\n\nSee also\n\n`translate`, `reverse`, `reverse!`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.translate","page":"API","title":"Quantica.translate","text":"translate(lat::Lattice, δr)\n\nBuild a new lattice translating each site positions from r to r + δr, where δr can be a NTuple or an SVector in embedding space.\n\nCurrying\n\nx |> translate(δr)\n\nCurried version of translate, equivalent to translate(x, δr)\n\nNote: Unexported Quantica.translate! is also available for in-place translations. Use with care, as aliasing (i.e. several objects sharing the modified one) can produce unexpected results.\n\nExamples\n\njulia> LatticePresets.square() |> translate((3,3)) |> sites\n1-element Vector{SVector{2, Float64}}:\n [3.0, 3.0]\n\n\nSee also\n\n`transform`, `reverse`, `reverse!`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.transmission","page":"API","title":"Quantica.transmission","text":"transmission(gs::GreenSlice)\n\nGiven a slice gs = g[i::Integer, j::Integer] of a g::GreenFunction, build a partially evaluated object T::Transmission representing the normal transmission probability Tᵢⱼ(ω) from contact j to i at energy ω. It can be written as Tᵢⱼ = TrgʳΓⁱgᵃΓʲ. Here gʳ = g(ω) and gᵃ = (gʳ)' = g(ω') are the retarded and advanced Green function of the system, and Γⁱ = im * (Σⁱ - Σⁱ') is the decay rate at contact i\n\nFull evaluation\n\nT(ω; params...)\n\nCompute the transmission Tᵢⱼ(ω) at a given ω and for the specified params of g.\n\nExamples\n\njulia> # A central system g0 with two 1D leads and transparent contacts\n\njulia> glead = LP.honecycomb() |> hamiltonian(hopping(1)) |> supercell((1,-1), region = r->-2 greenfunction(GS.Schur(boundary = 0));\n\njulia> g0 = LP.honecycomb() |> hamiltonian(hopping(1)) |> supercell(region = r->-2 attach(glead, reverse = true) |> attach(glead) |> greenfunction;\n\njulia> T = transmission(g0[2, 1])\nTransmission: total transmission probability between two different contacts\n From contact : 1\n To contact : 2\n\njulia> T(0.2) # The difference from 3 is due to the automatic `im*sqrt(eps(Float64))` added to `ω`\n2.9999999410323537\n\njulia> T(0.2 + 0.00000000000001im)\n2.999999999999961\n\nSee also\n\n`greenfunction`, `conductance`, `ldos`, `current`, `josephson`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.unflat","page":"API","title":"Quantica.unflat","text":"unflat(dn)\n\nConstruct an u::Unflat object wrapping some indices dn. This object is meant to be used to index into a h::AbstractHamiltonian as h[u], which returns an non-flattened version of the Bloch harmonic h[dn]. Each element in the matrix h[u] is an SMatrix block representing onsite or hoppings between whole sites, in contrast to h[dn] where they are scalars representing single orbitals. This is only relevant for multi-orbital Hamiltonians h.\n\nunflat()\n\nEquivalent to unflat(())\n\nExamples\n\njulia> h = HP.graphene(orbitals = 2); h[unflat(0,0)])\n2×2 SparseArrays.SparseMatrixCSC{SMatrix{2, 2, ComplexF64, 4}, Int64} with 2 stored entries:\n ⋅ [2.7+0.0im 0.0+0.0im; 0.0+0.0im 2.7+0.0im]\n [2.7+0.0im 0.0+0.0im; 0.0+0.0im 2.7+0.0im] ⋅\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.wrap","page":"API","title":"Quantica.wrap","text":"wrap(h::AbstractHamiltonian, (ϕ₁, ϕ₂,...))\n\nFor an h of lattice dimension L and a set of L Bloch phases ϕ = (ϕ₁, ϕ₂,...), contruct a new zero-dimensional h´::AbstractHamiltonian for all Bravais vectors have been eliminated by wrapping the lattice onto itself along the corresponding Bravais vector. Intercell hoppings along wrapped directions will pick up a Bloch phase exp(-iϕ⋅dn).\n\nIf a number L´ of phases ϕᵢ are : instead of numbers, the corresponding Bravais vectors will not be wrapped, and the resulting h´ will have a finite lattice dimension L´.\n\nCurrying\n\nh |> wrap((ϕ₁, ϕ₂,...))\n\nCurrying syntax equivalent to wrap(h, (ϕ₁, ϕ₂,...)).\n\nExamples\n\njulia> h2D = HP.graphene(); h1D = wrap(h2D, (:, 0.2))\nHamiltonian{Float64,2,1}: Hamiltonian on a 1D Lattice in 2D space\n Bloch harmonics : 3\n Harmonic size : 2 × 2\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 4\n Coordination : 2.0\n\njulia> h2D((0.3, 0.2)) ≈ h1D(0.3)\ntrue\n\nSee also\n\n`hamiltonian`, `supercell`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.@hopping","page":"API","title":"Quantica.@hopping","text":"@hopping((; params...) -> t(; params...); hops...)\n@hopping((r, dr; params...) -> t(r; params...); hops...)\n\nBuild a ParametricModel representing a uniform or a position-dependent hopping amplitude, respectively, on hops selected by hopselector(; hops...) (see hopselector for details).\n\nHops from a site at position r₁ to another at r₂ are described using the hop center r = (r₁ + r₂)/2 and the hop vector dr = r₂ - r₁. Hopping amplitudes t can be a Number (for hops between single-orbital sites), a UniformScaling (e.g. 2I) or an AbstractMatrix (use SMatrix for performance) of dimensions matching the number of site orbitals in the selected sites. Parametric models may be applied to a lattice lat to produce a ParametricHamiltonian with hamiltonian(lat, model; ...), see hamiltonian. Position dependent models are forced to preserve the periodicity of the lattice.\n\nThe difference between regular and parametric tight-binding models (see onsite and hopping) is that parametric models may depend on arbitrary parameters, specified by the params keyword arguments. These are inherited by h::ParametricHamiltonian, which can then be evaluated very efficiently for different parameter values by callling h(; params...), to obtain a regular Hamiltonian without reconstructing it from scratch.\n\n@hopping((ω; params...) -> Σᵢⱼ(ω; params...); hops...)\n@hopping((ω, r, dr; params...) -> Σᵢⱼ(ω, r, dr; params...); hops...)\n\nSpecial form of a parametric hopping amplitude meant to model a self-energy (see attach).\n\nModel algebra\n\nParametric models can be combined using +, - and *, or conjugated with ', e.g. @onsite((; o=1) -> o) - 2 * hopping(1)'. The combined parametric models can share parameters.\n\nExamples\n\njulia> model = @hopping((r, dr; t = 1, A = Returns(SA[0,0])) -> t * cis(-dr' * A(r)))\nParametricModel: model with 1 term\n ParametricHoppingTerm{ParametricFunction{2}}\n Region : any\n Sublattice pairs : any\n Cell distances : any\n Hopping range : Neighbors(1)\n Reverse hops : false\n Coefficient : 1\n Parameters : [:t, :A]\n\njulia> LP.honeycomb() |> supercell(2) |> hamiltonian(model)\nParametricHamiltonian{Float64,2,2}: Parametric Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 5\n Harmonic size : 8 × 8\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 24\n Coordination : 3.0\n Parameters : [:A, :t]\n\nSee also\n\n`onsite`, `hopping`, `@onsite`, `@onsite!`, `@hopping!`, `attach`, `hamiltonian`\n\n\n\n\n\n","category":"macro"},{"location":"api/#Quantica.@hopping!","page":"API","title":"Quantica.@hopping!","text":"@hopping!((t; params...) -> t´(t; params...); hops...)\n@hopping!((t, r, dr; params...) -> t´(t, r, dr; params...); hops...)\n\nBuild a uniform or position-dependent hopping term modifier, respectively, acting on hops selected by hopselector(; hops...) (see hopselector for details).\n\nHops from a site at position r₁ to another at r₂ are described using the hop center r = (r₁ + r₂)/2 and the hop vector dr = r₂ - r₁. The original hopping amplitude is t, and the modified hopping is t´, which is a function of t and possibly r, dr. It may optionally also depend on parameters, enconded in params.\n\nModifiers are meant to be applied to an h:AbstractHamiltonian to obtain a ParametricHamiltonian (with hamiltonian(h, modifiers...) or hamiltonian(lat, model, modifiers...), see hamiltonian). Modifiers will affect only pre-existing model terms. In particular, if no onsite model has been applied to a specific site, its onsite potential will be zero, and will not be modified by any @onsite! modifier. Conversely, if an onsite model has been applied, @onsite! may modify the onsite potential even if it is zero. The same applies to @hopping!.\n\nExamples\n\njulia> model = hopping(1); peierls = @hopping!((t, r, dr; A = r -> SA[0,0]) -> t * cis(-dr' * A(r)))\nOnsiteModifier{ParametricFunction{3}}:\n Region : any\n Sublattice pairs : any\n Cell distances : any\n Hopping range : Neighbors(1)\n Reverse hops : false\n Parameters : [:A]\n\njulia> LP.honeycomb() |> hamiltonian(model) |> supercell(10) |> hamiltonian(peierls)\nParametricHamiltonian{Float64,2,2}: Parametric Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 5\n Harmonic size : 200 × 200\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 600\n Coordination : 3.0\n Parameters : [:A]\n\nSee also\n\n`onsite`, `hopping`, `@onsite`, `@hopping`, `@onsite!`, `hamiltonian`\n\n\n\n\n\n","category":"macro"},{"location":"api/#Quantica.@onsite","page":"API","title":"Quantica.@onsite","text":"@onsite((; params...) -> o(; params...); sites...)\n@onsite((r; params...) -> o(r; params...); sites...)\n\nBuild a ParametricModel representing a uniform or a position-dependent onsite potential, respectively, on sites selected by siteselector(; sites...) (see siteselector for details).\n\nSite positions are r::SVector{E}, where E is the embedding dimension of the lattice. The onsite potential o can be a Number (for single-orbital sites), a UniformScaling (e.g. 2I) or an AbstractMatrix (use SMatrix for performance) of dimensions matching the number of orbitals in the selected sites. Parametric models may be applied to a lattice lat to produce a ParametricHamiltonian with hamiltonian(lat, model; ...), see hamiltonian. Position dependent models are forced to preserve the periodicity of the lattice.\n\nThe difference between regular and parametric tight-binding models (see onsite and hopping) is that parametric models may depend on arbitrary parameters, specified by the params keyword arguments. These are inherited by h::ParametricHamiltonian, which can then be evaluated very efficiently for different parameter values by callling h(; params...), to obtain a regular Hamiltonian without reconstructing it from scratch.\n\n@onsite((ω; params...) -> Σᵢᵢ(ω; params...); sites...)\n@onsite((ω, r; params...) -> Σᵢᵢ(ω, r; params...); sites...)\n\nSpecial form of a parametric onsite potential meant to model a self-energy (see attach).\n\nModel algebra\n\nParametric models can be combined using +, - and *, or conjugated with ', e.g. @onsite((; o=1) -> o) - 2 * hopping(1)'. The combined parametric models can share parameters.\n\nExamples\n\njulia> model = @onsite((r; dμ = 0) -> (r[1] + dμ) * I; sublats = :A) + @onsite((; dμ = 0) -> - dμ * I; sublats = :B)\nParametricModel: model with 2 terms\n ParametricOnsiteTerm{ParametricFunction{1}}\n Region : any\n Sublattices : A\n Cells : any\n Coefficient : 1\n Parameters : [:dμ]\n ParametricOnsiteTerm{ParametricFunction{0}}\n Region : any\n Sublattices : B\n Cells : any\n Coefficient : 1\n Parameters : [:dμ]\n\njulia> LP.honeycomb() |> supercell(2) |> hamiltonian(model, orbitals = 2)\nParametricHamiltonian{Float64,2,2}: Parametric Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 1\n Harmonic size : 8 × 8\n Orbitals : [2, 2]\n Element type : 2 × 2 blocks (ComplexF64)\n Onsites : 8\n Hoppings : 0\n Coordination : 0.0\n Parameters : [:dμ]\n\nSee also\n\n`onsite`, `hopping`, `@hopping`, `@onsite!`, `@hopping!`, `attach`, `hamiltonian`\n\n\n\n\n\n","category":"macro"},{"location":"api/#Quantica.@onsite!","page":"API","title":"Quantica.@onsite!","text":"@onsite!((o; params...) -> o´(o; params...); sites...)\n@onsite!((o, r; params...) -> o´(o, r; params...); sites...)\n\nBuild a uniform or position-dependent onsite term modifier, respectively, acting on sites selected by siteselector(; sites...) (see siteselector for details).\n\nSite positions are r::SVector{E}, where E is the embedding dimension of the lattice. The original onsite potential is o, and the modified potential is o´, which is a function of o and possibly r. It may optionally also depend on parameters, enconded in params.\n\nModifiers are meant to be applied to an h:AbstractHamiltonian to obtain a ParametricHamiltonian (with hamiltonian(h, modifiers...) or hamiltonian(lat, model, modifiers...), see hamiltonian). Modifiers will affect only pre-existing model terms. In particular, if no onsite model has been applied to a specific site, its onsite potential will be zero, and will not be modified by any @onsite! modifier. Conversely, if an onsite model has been applied, @onsite! may modify the onsite potential even if it is zero. The same applies to @hopping!.\n\nExamples\n\njulia> model = onsite(0); disorder = @onsite!((o; W = 0) -> o + W * rand())\nOnsiteModifier{ParametricFunction{1}}:\n Region : any\n Sublattices : any\n Cells : any\n Parameters : [:W]\n\njulia> LP.honeycomb() |> hamiltonian(model) |> supercell(10) |> hamiltonian(disorder)\nParametricHamiltonian{Float64,2,2}: Parametric Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 1\n Harmonic size : 200 × 200\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 200\n Hoppings : 0\n Coordination : 0.0\n Parameters : [:W]\n\nSee also\n\n`onsite`, `hopping`, `@onsite`, `@hopping`, `@hopping!`, `hamiltonian`\n\n\n\n\n\n","category":"macro"},{"location":"tutorial/observables/#Observables","page":"Observables","title":"Observables","text":"","category":"section"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"We are almost at our destination now. We have defined a Lattice, a Model for our system, we applied the Model to the Lattice to obtain a Hamiltonian or a ParametricHamiltonian, and finally, after possibly attaching some contacts to outside reservoirs and specifying a GreenSolver, we obtained a GreenFunction. It is now time to use the GreenFunction to obtain some observables of interest.","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"Currently, we have the following observables built into Quantica.jl (with more to come in the future)","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"ldos: computes the local density of states at specific energy and sites\ncurrent: computes the local current density along specific directions, and at specific energy and sites\ntransmission: computes the total transmission between contacts\nconductance: computes the differential conductance dIᵢ/dVⱼ between contacts i and j\njosephson: computes the supercurrent and the current-phase relation through a given contact in a superconducting system","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"See the corresponding docstrings for full usage instructions. Here we will present some basic examples","category":"page"},{"location":"tutorial/observables/#Local-density-of-states-(LDOS)","page":"Observables","title":"Local density of states (LDOS)","text":"","category":"section"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"Let us compute the LDOS in a cavity like in the previous section. Instead of computing the Green function between a contact to an arbitrary point, we can construct an object ρ = ldos(g(ω)) without any contacts. By using a small imaginary part in ω, we broaden the discrete spectrum, and obtain a finite LDOS. Then, we can pass ρ directly as a site shader to qplot","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"julia> h = LP.square() |> onsite(4) - hopping(1) |> supercell(region = r -> norm(r) < 40*(1+0.2*cos(5*atan(r[2],r[1]))));\n\njulia> g = h|> greenfunction;\n\njulia> ρ = ldos(g(0.1 + 0.001im))\nLocalSpectralDensitySolution{Float64} : local density of states at fixed energy and arbitrary location\n kernel : LinearAlgebra.UniformScaling{Bool}(true)\n\njulia> qplot(h, hide = :hops, sitecolor = ρ, siteradius = ρ, minmaxsiteradius = (0, 2), sitecolormap = :balance)","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"\"LDOS\"","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"Note that ρ[sites...] produces a vector with the LDOS at sites defined by siteselector(; sites...) (ρ[] is the ldos over all sites). We can also define a kernel to be traced over orbitals to obtain the spectral density of site-local observables (see diagonal slicing in the preceding section).","category":"page"},{"location":"tutorial/observables/#Current","page":"Observables","title":"Current","text":"","category":"section"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"A similar computation can be done to obtain the current density, using J = current(g(ω), direction = missing). This time J[sᵢ, sⱼ] yields a sparse matrix of current densities along a given direction for each hopping (or the current norm if direction = missing). Passing J as a hopping shader yields the equilibrium current in a system. In the above example we can add a magnetic flux to make this current finite","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"julia> h = LP.square() |> supercell(region = r -> norm(r) < 40*(1+0.2*cos(5*atan(r[2],r[1])))) |> onsite(4) - @hopping((r, dr; B = 0.1) -> cis(B * dr[1] * r[2]));\n\njulia> g = h |> greenfunction;\n\njulia> J = current(g(0.1; B = 0.01))\nCurrentDensitySolution{Float64} : current density at a fixed energy and arbitrary location\n charge : LinearAlgebra.UniformScaling{Int64}(-1)\n direction : missing\n\njulia> qplot(h, siteradius = 0.08, sitecolor = :black, siteoutline = 0, hopradius = J, hopcolor = J, minmaxhopradius = (0, 2), hopcolormap = :balance, hopdarken = 0)","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"\"Current","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"note: Remember to construct supercell before applying position-dependent fields\nNote that we built the supercell before applying the model with the magnetic flux. Not doing so would make the gauge field be repeated in each unit cell when expanding the supercell. This was mentioned in the section on Hamiltonians, and is a common mistake when modeling systems with position dependent fields.","category":"page"},{"location":"tutorial/observables/#Transmission","page":"Observables","title":"Transmission","text":"","category":"section"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"The transmission Tᵢⱼ from contact j to contact i can be computed using transmission. This function accepts a GreenSlice between the contact. Let us recover the four-terminal setup of the preceding section, but let's make it bigger this time","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"julia> hcentral = LP.square() |> onsite(4) - hopping(1) |> supercell(region = RP.circle(100) | RP.rectangle((202, 50)) | RP.rectangle((50, 202)))\n\njulia> glead = LP.square() |> onsite(4) - hopping(1) |> supercell((1, 0), region = r -> abs(r[2]) <= 50/2) |> greenfunction(GS.Schur(boundary = 0));\n\njulia> Rot = r -> SA[0 -1; 1 0] * r; # 90º rotation function\n\njulia> g = hcentral |>\n attach(glead, region = r -> r[1] == 101) |>\n attach(glead, region = r -> r[1] == -101, reverse = true) |>\n attach(glead, region = r -> r[2] == 101, transform = Rot) |>\n attach(glead, region = r -> r[2] == -101, reverse = true, transform = Rot) |>\n greenfunction;\n\njulia> gx1 = sum(abs2, g(0.04)[siteselector(), 1], dims = 2);\n\njulia> qplot(hcentral, hide = :hops, siteoutline = 1, sitecolor = (i, r) -> gx1[i], siteradius = (i, r) -> gx1[i], minmaxsiteradius = (0, 2), sitecolormap = :balance)","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"\"Green","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"It's apparent from the plot that the transmission from right to left (T₂₁ here) at this energy of 0.04 is larger than from right to top (T₃₁). Is this true in general? Let us compute the two transmissions as a function of energy. To show the progress of the calculation we can use a monitor package, such as ProgressMeter","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"julia> using ProgressMeter\n\njulia> T₂₁ = transmission(g[2,1]); T₃₁ = transmission(g[3,1]); ωs = subdiv(0, 8, 201);\n\njulia> T₂₁ω = @showprogress [T₂₁(ω) for ω in ωs]; T₃₁ω = @showprogress [T₃₁(ω) for ω in ωs];\nProgress: 100%|██████████████████████████████████████████████████████████████| Time: 0:01:02\nProgress: 100%|██████████████████████████████████████████████████████████████| Time: 0:01:00\n\njulia> f = Figure(); a = Axis(f[1,1], xlabel = \"ω/t\", ylabel = \"T(ω)\"); lines!(a, ωs, T₂₁ω, label = L\"T_{2,1}\"); lines!(a, ωs, T₃₁ω, label = L\"T_{3,1}\"); axislegend(\"Transmission\", position = :lt); f","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"\"Total","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"So we indeed find that the 90-degree transmission T₃₁ is indeed larger than the forward transmission T₂₁ for all energies. The rapid oscillations are due to mesoscopic fluctuations.","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"note: Total transmission vs transmission probability\nNote that transmission gives the total transmission, which is the sum of the transmission probability from each orbital in the source contact to any other orbital in the drain contact. As such it is not normalized to 1, but to the number of source orbitals. It also gives the local conductance from a given contact in units of e^2h according to the Landauer formula, G_j = e^2h sum_i T_ij(eV).","category":"page"},{"location":"tutorial/observables/#Conductance","page":"Observables","title":"Conductance","text":"","category":"section"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"Local and non-local differential conductance G_ij = dI_idV_j can be computed with G = conductance(g[i,j]). Calling G(ω) returns the conductance at bias eV = omega in units of e^2h. Let's look at the local differential conductance into the right contact in the previous example","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"julia> G₁₁ = conductance(g[1,1])\nConductance{Float64}: Zero-temperature conductance dIᵢ/dVⱼ from contacts i,j, in units of e^2/h\n Current contact : 1\n Bias contact : 1\n\njulia> Gω = @showprogress [G₁₁(ω) for ω in ωs];\nProgress: 100%|██████████████████████████████████████████████████████████████| Time: 0:01:01\n\njulia> f = Figure(); a = Axis(f[1,1], xlabel = \"eV/t\", ylabel = \"G [e²/h]\"); lines!(a, ωs, Gω); f","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"\"Local","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"warning: Sign of non-local conductance\nIf you compute a non-local conductance such as conductance(g[2,1])(ω) in this example you will note it is negative. This is actually expected. It means that the current flowing into the system through the right contact when you increase the bias in a different contact is negative, because the current is actually flowing out into the right reservoir.","category":"page"},{"location":"tutorial/observables/#Josephson","page":"Observables","title":"Josephson","text":"","category":"section"},{"location":"examples/#Examples","page":"Examples","title":"Examples","text":"","category":"section"},{"location":"tutorial/models/#Models","page":"Models","title":"Models","text":"","category":"section"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"We now will show how to build a generic single-particle tight-binding model, with generic Hamiltonian","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"H = sum_ialpha jbeta c_ialpha^dagger V_alphabeta(r_i r_j)c_jalpha","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"Here, α,β are orbital indices in each site, i,j are site indices, and rᵢ, rⱼ are site positions. In Quantica.jl we would write the above model as","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"julia> model = onsite(r -> V(r, r)) + hopping((r, dr) -> V(r-dr/2, r+dr/2))\nTightbindingModel: model with 2 terms\n OnsiteTerm{Function}:\n Region : any\n Sublattices : any\n Cells : any\n Coefficient : 1\n HoppingTerm{Function}:\n Region : any\n Sublattice pairs : any\n Cell distances : any\n Hopping range : Neighbors(1)\n Reverse hops : false\n Coefficient : 1","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"where V(rᵢ, rⱼ) is a function that returns a matrix (ideally an SMatrix) V_alphabeta(r_i r_j) of the required orbital dimensionality.","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"Note that when writing models we distinguish between onsite (rᵢ=rⱼ) and hopping (rᵢ≠rⱼ) terms. For the former, r is the site position. For the latter we use a bond-center and bond-distance (r, dr) parametrization of V, so that r₁, r₂ = r ∓ dr/2","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"If the onsite and hopping amplitudes do not depend on position, we can simply use constants","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"julia> model = onsite(1) - 2*hopping(1)\nTightbindingModel: model with 2 terms\n OnsiteTerm{Int64}:\n Region : any\n Sublattices : any\n Cells : any\n Coefficient : 1\n HoppingTerm{Int64}:\n Region : any\n Sublattice pairs : any\n Cell distances : any\n Hopping range : Neighbors(1)\n Reverse hops : false\n Coefficient : -2","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"tip: Model term algebra\nNote that we can combine model terms as in the above example by summing and subtracting them, and using constant coefficients.","category":"page"},{"location":"tutorial/models/#HopSelectors","page":"Models","title":"HopSelectors","text":"","category":"section"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"By default onsite terms apply to any site in a Lattice, and hopping terms apply to any pair of sites within nearest-neighbor distance (see the Hopping range: Neighbors(1) above).","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"We can change this default by specifying a SiteSelector or HopSelector for each term. SiteSelectors where already introduced to create LatticeSlices. HopSelectors are very similar, but support slightly different keywords:","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"region: to restrict according to bond center r and bond vector dr\nsublats: to restrict source and target sublattices\ndcells: to restrict the distance in cell index\nrange: to restrict the distance in real space","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"As an example, a HopSelector that selects any two sites at a distance between 1.0 and the second-nearest neighbor distance, with the first belonging to sublattice :B and the second to sublattice :A, and their bond center inside a unit circle","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"julia> hs = hopselector(range = (1.0, neighbors(2)), sublats = :B => :A, region = (r, dr) -> norm(r) < 1)\nHopSelector: a rule that defines a finite collection of hops between sites in a lattice\n Region : Function\n Sublattice pairs : :B => :A\n Cell distances : any\n Hopping range : (1.0, Neighbors(2))\n Reverse hops : false","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"We can now use this HopSelector to restrict the hoppings in a model, just as SiteSelectors can be used to restrict onsite terms","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"julia> model = plusadjoint(hopping(1, hs)) - 2*onsite(1, sublats = :B)\nTightbindingModel: model with 3 terms\n HoppingTerm{Int64}:\n Region : Function\n Sublattice pairs : :B => :A\n Cell distances : any\n Hopping range : (1.0, Neighbors(2))\n Reverse hops : false\n Coefficient : 1\n HoppingTerm{Int64}:\n Region : Function\n Sublattice pairs : :B => :A\n Cell distances : any\n Hopping range : (1.0, Neighbors(2))\n Reverse hops : true\n Coefficient : 1\n OnsiteTerm{Int64}:\n Region : any\n Sublattices : B\n Cells : any\n Coefficient : 1","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"Note that we can pass the Selector itself as a second argument to hopping and onsite, or alternatively use selector keywords directly as in the onsite above.","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"tip: plusadjoint function\nThe convenience function plusadjoint(term) = term + term' adds the Hermitian conjugate of its argument (term'), equivalent to the + h.c. notation often used in the literature.","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"note: Index-agnostic modeling\nThe Quantica.jl approach to defining tight-binding models does not rely explicitly on site indices (i,j above), since these are arbitrary, and may even be beyond the control of the user (for example after using supercell). Instead, we rely on physical properties of sites, such as position, distance or sublattice.","category":"page"},{"location":"tutorial/models/#Parametric-Models","page":"Models","title":"Parametric Models","text":"","category":"section"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"The models introduced above are non-parametric, in the sense that they encode fixed, numerical Hamiltonian matrix elements. In many problems, it is commonplace to have models that depend on a number of free parameters that will need to be adjusted during a calculation. For example, one may need to compute the phase diagram of a system as a function of a spin-orbit coupling or an applied magnetic field. For these cases, we have ParametricModels.","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"Parametric models are defined with","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"@onsite((; params...) -> ...; sites...)\n@onsite((r; params...) -> ...; sites...)\n@hopping((; params...) -> ...; hops...)\n@hopping((r, dr; params...) -> ...; hops...)","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"where the params keyword arguments define the free parameters, together with (optional) default values. Here is an example of a hopping model with a Peierls phase in the symmetric gauge, with the magnetic field Bz and the zero-field hopping t as free parameters","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"julia> model_perierls = @hopping((r, dr; Bz = 0, t = 1) -> t * cis(-im * Bz/2 * SA[-r[2], r[1], 0]' * dr))\nParametricModel: model with 1 term\n ParametricHoppingTerm{ParametricFunction{2}}\n Region : any\n Sublattice pairs : any\n Cell distances : any\n Hopping range : Neighbors(1)\n Reverse hops : false\n Coefficient : 1\n Parameters : [:B, :t]","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"One can linearly combine parametric and non-parametric models freely, omit parameter default values, and use any of the functional argument forms described for onsite and hopping (although not the constant argument form):","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"julia> model´ = 2 * (onsite(1) - 2 * @hopping((; t) -> t))\nParametricModel: model with 2 terms\n ParametricHoppingTerm{ParametricFunction{0}}\n Region : any\n Sublattice pairs : any\n Cell distances : any\n Hopping range : Neighbors(1)\n Reverse hops : false\n Coefficient : -4\n Parameters : [:t]\n OnsiteTerm{Int64}:\n Region : any\n Sublattices : any\n Cells : any\n Coefficient : 2","category":"page"},{"location":"tutorial/models/#Modifiers","page":"Models","title":"Modifiers","text":"","category":"section"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"There is a third model-related functionality known as OnsiteModifiers and HoppingModifiers. Given a model that defines a set of onsite and hopping amplitudes on a subset of sites and hops, one can define a parameter-dependent modification of a subset of said amplitudes. This is a useful way to introduce a new parameter dependence on an already defined model. Modifiers are built with","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"@onsite!((o; params...) -> new_onsite; sites...)\n@onsite!((o, r; params...) -> new_onsite; sites...)\n@hopping((t; params...) -> new_hopping; hops...)\n@hopping((t, r, dr; params...) -> new_hopping; hops...)","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"where the first argument o and t is the unmodified value of the onsite or hopping amplitude, respectively. Here sites and hops are once more keyword arguments to restrict the modification with a SiteSelector or HopSelector.","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"For example, the following HoppingModifier inserts a Peierls phase on all the hopping in a given model","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"julia> model_perierls! = @hopping!((t, r, dr; B = 0) -> t * cis(-Bz/2 * SA[-r[2], r[1], 0]' * dr))\nHoppingModifier{ParametricFunction{3}}:\n Region : any\n Sublattice pairs : any\n Cell distances : any\n Hopping range : Inf\n Reverse hops : false\n Parameters : [:B]","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"The difference with model_perierls is that model_perierls! will never add any new hoppings. It will only modify previously existing hoppings in a model. Modifiers are not models themselves, and cannot be summed to other models. They are instead meant to be applied sequentially after applying a model.","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"In the next section we show how models and modifiers can be used in practice to construct Hamiltonians.","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"note: Mind the `;`\nWhile syntax like onsite(2, sublats = :B) and onsite(2; sublats = :B) are equivalent in Julia, due to the way keyword arguments are parsed, the same is not true for macro calls like @onsite, @onsite!, @hopping and @hopping!. These macros just emulate the function call syntax. But to work you must currently always use the ; separator for keywords. Hence, something like @onsite((; p) -> p; sublats = :B) works, but @onsite((; p) -> p, sublats = :B) does not.","category":"page"},{"location":"tutorial/bandstructures/#Bandstructures","page":"Bandstructures","title":"Bandstructures","text":"","category":"section"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"The eigenpairs (eigenvalues and eigenvectors) of a Hamiltonian or ParametricHamiltonian at given Bloch phases ϕᵢ can be obtained with spectrum:","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"julia> h = LP.honeycomb() |> hopping(1); ϕᵢ = (0, π);\n\njulia> eᵢ, ψᵢ = spectrum(h, ϕᵢ; solver = EigenSolvers.LinearAlgebra())\nSpectrum{Float64,ComplexF64} :\nEnergies:\n2-element Vector{ComplexF64}:\n -1.0 + 0.0im\n 1.0 + 0.0im\nStates:\n2×2 Matrix{ComplexF64}:\n 0.707107-8.65956e-17im 0.707107-8.65956e-17im\n -0.707107+0.0im 0.707107+0.0im","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"The above destructuring syntax assigns eigenvalues and eigenvectors to eᵢ and ψᵢ, respectively. The available eigensolvers and their options can be checked in the EigenSolvers docstrings.","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"We define a \"bandstructure\" of an h::AbstractHamiltonian as a linear interpolation of its eigenpairs over a portion of the Brillouin zone, which is discretized with a base mesh of ϕᵢ values. At each ϕᵢ of the base mesh, the Bloch matrix h(ϕᵢ) is diagonalized with spectrum. The adjacent eigenpairs eⱼ(ϕᵢ), ψⱼ(ϕᵢ) are then connected (\"stitched\") together into a number of band meshes with vertices (ϕᵢ..., eⱼ(ϕᵢ)) by maximizing the overlap of adjacent ψⱼ(ϕᵢ) (since the bands should be continuuous). Degenerate eigenpairs are collected into a single node of the band mesh.","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"The bandstructure of an h::AbstractHamiltonian is computed using bands:","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"julia> ϕ₁points = ϕ₂points = range(0, 2π, length = 19);\n\njulia> b = bands(h, ϕ₁points, ϕ₂points)\nBandstructure{Float64,3,2}: 3D Bandstructure over a 2-dimensional parameter space of type Float64\n Subbands : 1\n Vertices : 720\n Edges : 2016\n Simplices : 1296","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"The first argument is the AbstractHamiltonian. Here it is defined on an L=2 dimensional lattice. The subsequent arguments are collections of Bloch phases on each of the L axes of the Brillouin zone, whose direct product ϕ₁points ⊗ ϕ₂points defines our base mesh of ϕᵢ points. Here it is a uniform 19×19 grid. We can once more use qplot to visualize the bandstructure, or more precisely the band meshes:","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"julia> using GLMakie; qplot(b, inspector = true)","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"\"Graphene","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"The dots on the bands are the band mesh vertices (ϕᵢ..., eⱼ(ϕᵢ)). They can be omitted with the qplot keyword hide = :nodes (or hide = :vertices, both are equivalent).","category":"page"},{"location":"tutorial/bandstructures/#Band-defects","page":"Bandstructures","title":"Band defects","text":"","category":"section"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"Note that the uniform grid contains the Dirac points. This is the reason for the number 19 of Bloch phases used above. Note also that it is identified as a point in the bands with degeneracy = 2 (the rest have degeneracy = 1). As mentioned, the points on the bands are connected based on eigenstate overlaps between adjacent ϕᵢs. This interpolation algorithm can deal with subspace degeneracies, as here. However, Dirac points (and Diabolical Points in general) must belong to the mesh for the method to work. If the number of points is reduced to 18 per axis, the Dirac points become unavoidable band dislocations, that appear as missing simplices in the bands:","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"\"Graphene","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"tip: Advanced: band defects and patching\nIf a Dirac point or other type of band dislocation point happens to not belong to the sampling grid, it can be added with the bands keyword defects. Then, it can be reconnected with the rest of the band by increasing the patches::Integer keyword (see bands docstring for details). This \"band repair\" functionality is experimental, and should only be necessary in some cases with Diabolical Points.","category":"page"},{"location":"tutorial/bandstructures/#Coordinate-mapping-and-band-linecuts","page":"Bandstructures","title":"Coordinate mapping and band linecuts","text":"","category":"section"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"The direct product of the ϕᵢpoints above define a rectangular mesh over which we want to compute the bandstructure. By default, this mesh is taken as a discretization of Bloch phases, so h(ϕᵢ) is diagonalized at each point of the base mesh. We might want, however, a different relation between the mesh and the parameters passed to h, for example if we wish to use wavevectors k instead of Bloch phases ϕᵢ = k⋅Aᵢ for the mesh. This is achieved with the mapping keyword, which accepts a function mapping = (mesh_points...) -> bloch_phases,","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"julia> h = LP.honeycomb() |> hopping(2); k₁points = range(-2π, 2π, length = 51); k₂points = range(-2π, 2π, length = 51);\n\njulia> Kpoints = [SA[cos(θ) -sin(θ); sin(θ) cos(θ)] * SA[4π/3,0] for θ in range(0, 5*2π/6, length = 6)];\n\njulia> ϕ(k...) = SA[k...]' * bravais_matrix(h)\nϕ (generic function with 1 method)\n\njulia> b = bands(h, k₁points, k₂points; mapping = ϕ, defects = Kpoints, patches = 20);\n\njulia> using GLMakie; qplot(b, hide = (:nodes, :wireframe), color = :orange)","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"\"Graphene","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"To compute a bandstructure linecut along a polygonal line in the Brillouin zone, we could once more use the mapping functionality, mapping a set of points xᵢ::Real in the mesh to Bloch phases ϕᵢ that defines the nodes of the polygonal path, and interpolating linearly between them. To avoid having to construct this mapping ourselves, mapping accepts a second type of input for this specific usecase, mapping = xᵢ => ϕᵢ. Here, ϕᵢ can be a collection of Tuples, SVector{L}, or even Symbols denoting common names for high-symmetry points in the Brillouin zone, such as :Γ, :K, :K´, :M, :X, :Y, and :Z. The following gives a Γ-K-M-Γ linecut for the bands above, where the (Γ, K, M, Γ) points lie at x = (0, 2, 3, 4), respectively, with 10 subdivisions in each segment,","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"julia> b = bands(h, subdiv((0, 2, 3, 4), 10); mapping = (0, 2, 3, 4) => (:Γ, :K, :M, :Γ));\n\njulia> qplot(b, axis = (; xticks = ([0, 2, 3, 4], [\"Γ\", \"K\", \"M\", \"Γ\"]), ylabel = \"ϵ\"))","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"\"Graphene","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"tip: subdiv\nThe subdiv function is a convenience function provided by Quantica.jl that generalizes range (see the corresponding docstring for comprehensive details). It is useful to create collections of numbers as subdivisions of intervals, as in the example above. In its simplest form subdiv(min, max, npoints) is is equivalent to range(min, max, length = npoints) or collect(LinRange(min, max, npoints))","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"The mapping keyword understand a third syntax that can be used to map a mesh to the space of Bloch phases and parameters of a ParametricHamiltonian. To this end we use mapping = (mesh_points...) -> ftuple(bloch_phases...; params...). The ftuple function creates a FrankenTuple, which is a hybrid between a Tuple and a NamedTuple. For example, in the following 1D SSH chain we can compute the bandstructure as a function of Bloch phase ϕ and hopping t´, and plot it using more customization options","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"julia> h = LP.linear() |> supercell(2) |> @hopping((r, dr; t = 1, t´ = 1) -> iseven(r[1]-1/2) ? t : t´);\n\njulia> b = bands(h, subdiv(0, 2π, 11), subdiv(0, 10, 11), mapping = (ϕ, y) -> ftuple(ϕ; t´ = y/5), patches = 20)\nBandstructure{Float64,3,2}: 3D Bandstructure over a 2-dimensional parameter space of type Float64\n Subbands : 1\n Vertices : 249\n Edges : 664\n Simplices : 416\n\njulia> qplot(b, nodedarken = 0.5, axis = (; aspect = (1,1,1), perspectiveness = 0.5, xlabel = \"ϕ\", ylabel = \"t´/t\", zlabel = \"ϵ\"), fancyaxis = false)","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"\"SSH","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"Note that since we didn't specify a value for t, it assumed its default t=1. In this case we needed to patch the defect at (ϕ, t´) = (π, 1) (topological transition) using the patches keyword to avoid a band dislocation.","category":"page"},{"location":"tutorial/bandstructures/#Band-indexing-and-slicing","page":"Bandstructures","title":"Band indexing and slicing","text":"","category":"section"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"The individual subbands in a given b::Bandstructure can be obtained with b[inds] with inds::Integer or inds::Vector, just as if b where a normal AbstractVector. The extracted subbands can also be plotted directly. The following example has 12 subbands, of which we extract and plot the first and last","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"julia> h = LP.triangular() |> supercell(4) |> hopping(1) + onsite(r -> 4*rand());\n\njulia> b = bands(h, subdiv(0, 2π, 31), subdiv(0, 2π, 31))\nBandstructure{Float64,3,2}: 3D Bandstructure over a 2-dimensional parameter space of type Float64\n Subbands : 12\n Vertices : 15376\n Edges : 44152\n Simplices : 28696\n\njulia> qplot(b, hide = (:nodes, :wireframe))\n\njulia> qplot(b[[1, end]], hide = (:nodes, :wireframe))","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"\"Extracting","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"For a band in a 2D Brillouin zone, we can also obtain the intersection of a bandstructure with a plane of constant energy ϵ=2 using the syntax b[(:,:,2)]. A section at fixed Bloch phase ϕ₁=0 (or mesh coordinate x₁=0 if mapping was used), can be obtained with b[(0,:,:)]. This type of band slicing can be generalized to higher dimensional bandstructures, or to more than one constrain (e.g. energy and/or a subset of Bloch phases). As an example, this would be the Fermi surface of a nearest-neighbor cubic-lattice Hamiltonian at Fermi energy µ = 0.2t","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"julia> pts = subdiv(0, 2π, 41); b = LP.cubic() |> hopping(1) |> bands(pts, pts, pts)\nBandstructure{Float64,4,3}: 4D Bandstructure over a 3-dimensional parameter space of type Float64\n Subbands : 1\n Vertices : 68921\n Edges : 462520\n Simplices : 384000\n\njulia> qplot(b[(:, :, :, 0.2)], hide = (:nodes, :wireframe))","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"\"Fermi","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"warning: On simplex orientation of bandstructure slices\nThe above example showcases a current (cosmetic) limitation of the band slicing algorithm: it sometimes fails to align all faces of the resulting manifold to the same orientation. The dark and bright regions of the surface above reveals that approximately half of the faces in this case are facing inward and the rest outward.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Quantica.jl logo)","category":"page"},{"location":"","page":"Home","title":"Home","text":"Quantica.jl is a Julia package for building generic tight-binding models and computing spectral and transport properties.","category":"page"},{"location":"#Installation","page":"Home","title":"Installation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"julia> import Pkg; Pkg.add(\"Quantica\")","category":"page"},{"location":"","page":"Home","title":"Home","text":"Quantica.jl requires Julia v1.9 or later. Some of its functionality, notably plotting, will become available only after using GLMakie, or some other plotting package from the Makie.jl family. Install GLMakie with","category":"page"},{"location":"","page":"Home","title":"Home","text":"julia> import Pkg; Pkg.add(\"GLMakie\")","category":"page"},{"location":"","page":"Home","title":"Home","text":"Then, to begin using Quantica, just load it by doing","category":"page"},{"location":"","page":"Home","title":"Home","text":"julia> using Quantica","category":"page"},{"location":"","page":"Home","title":"Home","text":"(and possibly also e.g. using GLMakie if you need to plot Quantica objects).","category":"page"},{"location":"#Asking-questions,-reporting-bugs","page":"Home","title":"Asking questions, reporting bugs","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"If you encounter problems, please read the tutorial and examples, your question is probably answered there. You can also check the docstring of each Quantica.jl function here or within the Julia REPL, by entering the function preceded by a ?, e.g. ?hamiltonian.","category":"page"},{"location":"","page":"Home","title":"Home","text":"If you are still stuck, you may sometimes find me (@pablosanjose) at the Julia Slack or Julia Discourse.","category":"page"},{"location":"","page":"Home","title":"Home","text":"If you believe you found a bug in Quantica.jl, please don't hesitate to file a GitHub issue, preferably with detailed instructions to reproduce it. Pull requests with fixes are also welcome!","category":"page"}] +[{"location":"tutorial/greenfunctions/#GreenFunctions","page":"GreenFunctions","title":"GreenFunctions","text":"","category":"section"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Up to now we have seen how to define Lattices, Models, Hamiltonians and Bandstructures. Most problems require the computation of different physical observables for these objects, e.g. the local density of states or various transport coefficients. We reduce this general problem to the computation of the retarded Green function","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"G^r_ij(omega) = langle i(omega-H-Sigma(omega))^-1jrangle","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"where i, j are orbitals, H is the (possibly infinite) Hamiltonian matrix, and Σ(ω) is the self-energy coming from any coupling to other systems (typically described by their own AbstractHamiltonian).","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"We split the problem of computing Gʳᵢⱼ(ω) of a given h::AbstractHamiltonian into four steps:","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Attach self-energies to h using the command oh = attach(h, args...). This produces a new object oh::OpenHamiltonian with a number of Contacts, numbered 1 to N\nUse g = greenfunction(oh, solver) to build a g::GreenFunction representing Gʳ (at arbitrary ω and i,j), where oh::OpenHamiltonian and solver::GreenSolver (see GreenSolvers below for available solvers)\nEvaluate gω = g(ω; params...) at fixed energy ω and model parameters, which produces a gω::GreenSolution\nSlice gω[sᵢ, sⱼ] or gω[sᵢ] == gω[sᵢ, sᵢ] to obtain Gʳᵢⱼ(ω) as a flat matrix, where sᵢ, sⱼ are either site selectors over sites spanning orbitals i,j, integers denoting contacts, 1 to N, or : denoting all contacts merged together.","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"tip: GreenSlice vs. GreenSolution\nThe two last steps can be interchanged, by first obtaining a gs::GreenSlice with gs = g[sᵢ, sⱼ] and then obtaining the Gʳᵢⱼ(ω) matrix with gs(ω; params...).","category":"page"},{"location":"tutorial/greenfunctions/#A-simple-example","page":"GreenFunctions","title":"A simple example","text":"","category":"section"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Here is a simple example of the Green function of a 1D lead with two sites per unit cell, a boundary at cell = 0, and with no attached self-energies for simplicity","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"julia> hlead = LP.square() |> supercell((1,0), region = r -> 0 <= r[2] < 2) |> hopping(1);\n\njulia> glead = greenfunction(hlead, GreenSolvers.Schur(boundary = 0))\nGreenFunction{Float64,2,1}: Green function of a Hamiltonian{Float64,2,1}\n Solver : AppliedSchurGreenSolver\n Contacts : 0\n Contact solvers : ()\n Contact sizes : ()\n Hamiltonian{Float64,2,1}: Hamiltonian on a 1D Lattice in 2D space\n Bloch harmonics : 3\n Harmonic size : 2 × 2\n Orbitals : [1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 6\n Coordination : 3.0\n\njulia> gω = glead(0.2) # we first fix energy to ω = 0.2\nGreenSolution{Float64,2,1}: Green function at arbitrary positions, but at a fixed energy\n\njulia> gω[cells = 1:2] # we now ask for the Green function between orbitals in the first two unit cells to the righht of the boundary\n4×4 Matrix{ComplexF64}:\n 0.1-0.858258im -0.5-0.0582576im -0.48-0.113394im -0.2+0.846606im\n -0.5-0.0582576im 0.1-0.858258im -0.2+0.846606im -0.48-0.113394im\n -0.48-0.113394im -0.2+0.846606im 0.104-0.869285im 0.44+0.282715im\n -0.2+0.846606im -0.48-0.113394im 0.44+0.282715im 0.104-0.869285im","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Note that the result is a 4 x 4 matrix, because there are 2 orbitals (one per site) in each of the two unit cells. Note also that the Schur GreenSolver used here allows us to compute the Green function between distant cells with little overhead","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"julia> @time gω[cells = 1:2];\n 0.000067 seconds (70 allocations: 6.844 KiB)\n\njulia> @time gω[cells = (SA[10], SA[100000])];\n 0.000098 seconds (229 allocations: 26.891 KiB)","category":"page"},{"location":"tutorial/greenfunctions/#GreenSolvers","page":"GreenFunctions","title":"GreenSolvers","text":"","category":"section"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"The currently implemented GreenSolvers (abbreviated as GS) are the following","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"GS.SparseLU()\nFor bounded (L=0) AbstractHamiltonians. Default for L=0.\nUses a sparse LU factorization to compute the ⟨i|(ω - H - Σ(ω))⁻¹|j⟩ inverse.","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"GS.KPM(order = 100, bandrange = missing, kernel = I)\nFor bounded (L=0) Hamiltonians, and restricted to sites belonging to contacts (see the section on Contacts).\nIt precomputes the Chebyshev momenta","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"GS.Schur(boundary = Inf)\nFor 1D (L=1) AbstractHamiltonians with only nearest-cell coupling. Default for L=1.\nUses a deflating Generalized Schur (QZ) factorization of the generalized eigenvalue problem to compute the unit-cell self energies. The Dyson equation then yields the Green function between arbitrary unit cells, which is further dressed using a T-matrix approach if the lead has any attached self-energy.\nGS.Bands(bandsargs...; boundary = missing, bandskw...)\nFor unbounded (L>0) Hamiltonians.\nIt precomputes a bandstructure b = bands(h, bandsargs...; kw..., split = false) and then uses analytic expressions for the contribution of each subband simplex to the GreenSolution. If boundary = dir => cell_pos, it takes into account the reflections on an infinite boundary perpendicular to Bravais vector number dir, so that all sites with cell index c[dir] <= cell_pos are removed.\nTo retrieve the bands from a g::GreenFunction that used the GS.Bands solver, we may use bands(g).","category":"page"},{"location":"tutorial/greenfunctions/#Attaching-Contacts","page":"GreenFunctions","title":"Attaching Contacts","text":"","category":"section"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"A self energy Σ(ω) acting of a finite set of sites of h (i.e. on a LatticeSlice of lat = lattice(h)) can be incorporated using the attach command. This defines a new Contact in h. The general syntax is oh = attach(h, args...; sites...), where the sites directives define the Contact LatticeSlice (lat[siteselector(; sites...)]), and args can take a number of forms.","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"The supported attach forms are the following","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Generic self-energy\nattach(h, gs::GreenSlice, coupling::AbstractModel; sites...)\nThis is the generic form of attach, which couples some sites i of a g::Greenfunction (defined by the slice gs = g[i]), to sites of h using a coupling model. This results in a self-energy Σ(ω) = V´⋅gs(ω)⋅V on h sites, where V and V´ are couplings matrices given by coupling.","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Dummy self-energy\nattach(h, nothing; sites...)\nThis form merely defines a new contact on the specified sites, but adds no actual self-energy to it. It is meant as a way to refer to some sites of interest using the g[i::Integer] slicing syntax for GreenFunctions, where i is the contact index.","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Model self-energy\nattach(h, model::AbstractModel; sites...)\nThis form defines a self-energy Σᵢⱼ(ω) in terms of model, which must be composed purely of parametric terms (@onsite and @hopping) that have ω as first argument, as in e.g. @onsite((ω, r) -> Σᵢᵢ(ω, r)) or @hopping((ω, r, dr) -> Σᵢⱼ(ω, r, dr)). This is a modellistic approach, wherein the self-energy is not computed from the properties of another AbstractHamiltonian, but rather has an arbitrary form defined by the user.","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Matched lead self-energy\nattach(h, glead::GreenFunction; reverse = false, transform = identity, sites...)\nHere glead is a GreenFunction of a 1D lead, possibly with a boundary.\nWith this syntax sites must select a number of sites in h whose position match (after applying transform to them and modulo an arbitrary displacement) the sites in the unit cell of glead. Then, the coupling between these and the first unit cell of glead on the positive side of the boundary will be the same as between glead unitcells, i.e. V = hlead[(1,)], where hlead = hamiltonian(glead).\nIf reverse == true, the lead is reversed before being attached, so that h is coupled through V = hlead[(-1,)] to the first unitcell on the negative side of the boundary. If there is no boundary, the cell = 0 unitcell of the glead is used.","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Generic lead self-energy\nattach(h, glead::GreenFunction, model::AbstractModel; reverse = false, transform = identity, sites...)\nThe same as above, but without any restriction on sites. The coupling between these and the first unit cell of glead (transformed by transform) is constructed using model::TightbindingModel. The \"first unit cell\" is defined as above.","category":"page"},{"location":"tutorial/greenfunctions/#A-more-advanced-example","page":"GreenFunctions","title":"A more advanced example","text":"","category":"section"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Let us define the classical example of a multiterminal mesoscopic junction. We choose a square lattice, and a circular central region of radius 10, with four leads of width 5 coupled to it at right angles.","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"We first define a single lead Greenfunction and the central Hamiltonian","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"julia> glead = LP.square() |> onsite(4) - hopping(1) |> supercell((1, 0), region = r -> abs(r[2]) <= 5/2) |> greenfunction(GS.Schur(boundary = 0));\n\njulia> hcentral = LP.square() |> onsite(4) - hopping(1) |> supercell(region = RP.circle(10) | RP.rectangle((22, 5)) | RP.rectangle((5, 22)))","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"The two rectangles overlayed on the circle above create the stubs where the leads will be attached:","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"\"Central","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"We now attach glead four times using the Matched lead syntax","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"julia> Rot = r -> SA[0 -1; 1 0] * r; # 90º rotation function\n\njulia> g = hcentral |>\n attach(glead, region = r -> r[1] == 11) |>\n attach(glead, region = r -> r[1] == -11, reverse = true) |>\n attach(glead, region = r -> r[2] == 11, transform = Rot) |>\n attach(glead, region = r -> r[2] == -11, reverse = true, transform = Rot) |>\n greenfunction\nGreenFunction{Float64,2,0}: Green function of a Hamiltonian{Float64,2,0}\n Solver : AppliedSparseLUGreenSolver\n Contacts : 4\n Contact solvers : (SelfEnergySchurSolver, SelfEnergySchurSolver, SelfEnergySchurSolver, SelfEnergySchurSolver)\n Contact sizes : (5, 5, 5, 5)\n Hamiltonian{Float64,2,0}: Hamiltonian on a 0D Lattice in 2D space\n Bloch harmonics : 1\n Harmonic size : 353 × 353\n Orbitals : [1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 1320\n Coordination : 3.73938\n\njulia> qplot(g, children = (; selector = siteselector(; cells = 1:5), sitecolor = :blue))","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"\"Multiterminal","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Note that since we did not specify the solver in greenfunction, the L=0 default GS.SparseLU() was taken.","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"tip: The GreenFunction <-> AbstractHamiltonian relation\nIts important un appreciate that a g::GreenFunction represents the retarded Green function between sites in a given AbstractHamiltonian, but not on sites of the coupled AbstractHamiltonians of its attached self-energies. Therefore, gcentral above cannot yield observables in the leads (blue sites above), only on the red sites. To obtain observables in a given lead, its GreenFunction must be constructed, with an attached self-energy coming from the central region plus the other three leads.","category":"page"},{"location":"tutorial/greenfunctions/#Slicing-and-evaluation","page":"GreenFunctions","title":"Slicing and evaluation","text":"","category":"section"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"As explained above, a g::GreenFunction represents a Green function of an OpenHamiltonian (i.e. AbstractHamiltonian with zero or more self-energies), but it does so for any energy ω or lattice sites. - To specify ω (plus any parameters params in the underlying AbstractHamiltonian) we use the syntax g(ω; params...), which yields an gω::GreenSolution - To specify source (sⱼ) and drain (sᵢ) sites we use the syntax g[sᵢ, sⱼ] or g[sᵢ] == g[sᵢ,sᵢ], which yields a gs::GreenSlice. sᵢ and sⱼ can be SiteSelectors(; sites...), or an integer denoting a specific contact (i.e. sites with an attached self-energy) or : denoting all contacts merged together. - If we specify both of the above we get the Green function between the orbitals of the specified sites at the specified energy, in the form of a Matrix","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Let us see this in action using the example from the previous section","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"julia> g[1, 3]\nGreenSlice{Float64,2,0}: Green function at arbitrary energy, but at a fixed lattice positions\n\njulia> g(0.2)\nGreenSolution{Float64,2,0}: Green function at arbitrary positions, but at a fixed energy\n\njulia> g(0.2)[1, 3]\n5×5 Matrix{ComplexF64}:\n -0.370342-0.0778282im 0.0575525-0.211484im 0.0245456-0.129385im 0.174425-0.155446im 0.100593+0.0134301im\n 0.0575525-0.211484im -0.0619157+0.0480224im 0.156603+0.256013im -0.342883+0.0760708im -0.0414971+0.0510385im\n 0.0245456-0.129385im 0.156603+0.256013im -0.13008-0.156987im 0.129202-0.139979im 0.155843-0.0597696im\n 0.174425-0.155446im -0.342883+0.0760708im 0.129202-0.139979im -0.0515859+0.000612582im 0.0298279+0.109486im\n 0.100593+0.0134301im -0.0414971+0.0510385im 0.155843-0.0597696im 0.0298279+0.109486im 0.00445114+0.0242172im\n\n julia> g(0.2)[siteselector(region = RP.circle(1, (0.5, 0))), 3]\n2×5 Matrix{ComplexF64}:\n -0.0051739-0.0122979im 0.258992+0.388052im 0.01413-0.192581im 0.258992+0.388052im -0.0051739-0.0122979im\n 0.265667+0.296249im 0.171343-0.022414im 0.285251+0.348008im 0.171247+0.0229456im 0.0532086+0.24404im","category":"page"},{"location":"tutorial/greenfunctions/#Diagonal-slices","page":"GreenFunctions","title":"Diagonal slices","text":"","category":"section"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"There is a special form of slicing that requests just the diagonal of a given g[sᵢ] == g[sᵢ,sᵢ]. It uses the syntax g[diagonal(sᵢ)]. Let us see it in action in a multiorbital example in 2D","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"julia> g = HP.graphene(a0 = 1, t0 = 1, orbitals = 2) |> greenfunction\nGreenFunction{Float64,2,2}: Green function of a Hamiltonian{Float64,2,2}\n Solver : AppliedBandsGreenSolver\n Contacts : 0\n Contact solvers : ()\n Contact sizes : ()\n Hamiltonian{Float64,2,2}: Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 5\n Harmonic size : 2 × 2\n Orbitals : [2, 2]\n Element type : 2 × 2 blocks (ComplexF64)\n Onsites : 0\n Hoppings : 6\n Coordination : 3.0\n\njulia> g(0.5)[diagonal(cells = (0, 0))]\n4-element Vector{ComplexF64}:\n -0.34973634684887517 - 0.3118358260293383im\n -0.3497363468428337 - 0.3118358260293383im\n -0.349736346839396 - 0.31183582602933824im\n -0.34973634684543714 - 0.3118358260293383im","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"Note that we get a vector, which is equal to the diagonal diag(g(0.5)[cells = (0, 0)]). Like the g Matrix, this vector is resolved in orbitals, of which there are two per site and four per unit cell in this case. Using diagonal(sᵢ; kernel = K) we can collect all the orbitals of different sites, and compute tr(g[site, site] * K) for a given matrix K. This is useful to obtain spectral densities. In the above example, and interpreting the two orbitals per site as the electron spin, we could obtain the spin density along the x axis, say, using σx = SA[0 1; 1 0] as kernel,","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"julia> g(0.5)[diagonal(cells = (0, 0), kernel = SA[0 1; 1 0])]\n2-element Vector{ComplexF64}:\n -1.1268039540527714e-11 - 2.3843717644870095e-17im\n 1.126802874880133e-11 + 1.9120152589671175e-17im","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"which is zero in this spin-degenerate case","category":"page"},{"location":"tutorial/greenfunctions/#Visualizing-a-Green-function","page":"GreenFunctions","title":"Visualizing a Green function","text":"","category":"section"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"We can use qplot to visualize a GreenSolution in space. Here we define a bounded square lattice with an interesting shape, and attach a model self-energy to the right. Then we compute the Green function from each orbital in the contact to any other site in the lattice, and compute the norm over contact sites. The resulting vector is used as a shader for the color and radius of sites when plotting the system","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"julia> h = LP.square() |> onsite(4) - hopping(1) |> supercell(region = r -> norm(r) < 40*(1+0.2*cos(5*atan(r[2],r[1]))));\n\njulia> g = h |> attach(@onsite(ω -> -im), region = r -> r[1] ≈ 47) |> greenfunction;\n\njulia> gx1 = sum(abs2, g(0.1)[siteselector(), 1], dims = 2);\n\njulia> qplot(h, hide = :hops, sitecolor = (i, r) -> gx1[i], siteradius = (i, r) -> gx1[i], minmaxsiteradius = (0, 2), sitecolormap = :balance)","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"\"Green","category":"page"},{"location":"tutorial/greenfunctions/","page":"GreenFunctions","title":"GreenFunctions","text":"warning: Caveat for multiorbital systems\nSince, currently, g(ω)[sᵢ, sⱼ] yields a Matrix over orbitals (instead of over sites), the above example requires single-orbital sites to work. In the future we will probably introduce a way to slice a GreenSolution over sites, similar to the way diagonal works. For the moment, one can use observables like ldos for visualization (see next section), which are all site-based by default.","category":"page"},{"location":"tutorial/lattices/#Lattices","page":"Lattices","title":"Lattices","text":"","category":"section"},{"location":"tutorial/lattices/#Constructing-a-Lattice-from-scratch","page":"Lattices","title":"Constructing a Lattice from scratch","text":"","category":"section"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Consider a lattice like graphene's. It has two sublattices, A and B, forming a 2D honeycomb pattern in space. The position of site A and B inside the unitcell are [0, -a0/(2√3)] and [0, a0/(2√3)], respectively. The Bravais vectors are A₁, A₂ = a0 * [± cos(π/3), sin(π/3)]. If we set the lattice constant to a0 = √3 (so the carbon-carbon distance is 1), one way to build this lattice in Quantica.jl would be","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> A₁, A₂ = √3 .* (cos(π/3), sin(π/3)),\n √3 .* (-cos(π/3), sin(π/3));\n\njulia> sA, sB = sublat((0, -1/2), name = :A),\n sublat((0, 1/2), name = :B);\n\njulia> lattice(sA, sB, bravais = (A₁, A₂))\nLattice{Float64,2,2} : 2D lattice in 2D space\n Bravais vectors : [[0.866025, 1.5], [-0.866025, 1.5]]\n Sublattices : 2\n Names : (:A, :B)\n Sites : (1, 1) --> 2 total per unit cell","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"tip: Tuple, SVector and SMatrix\nNote that we have used Tuples, such as (0, 1/2) instead of Vectors, like [0, 1/2]. In Julia small-length Tuples are much more efficient as containers than Vectors, since their length is known and fixed at compile time. Static vectors (SVector) and matrices (SMatrix) are also available to Quantica, which are just as efficient as Tuples, and they also implement linear algebra operations. They be entered as e.g. SA[0, 1/2] and SA[1 0; 0 1], respectively. For efficiency, always use Tuple, SVector and SMatrix in Quantica.jl where possible.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"If we don't plan to address the two sublattices individually, we could also fuse them into one, like","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> lat = lattice(sublat((0, 1/2), (0, -1/2)), bravais = (A₁, A₂))\nLattice{Float64,2,2} : 2D lattice in 2D space\n Bravais vectors : [[0.866025, 1.5], [-0.866025, 1.5]]\n Sublattices : 1\n Names : (:A,)\n Sites : (2,) --> 2 total per unit cell","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"This lattice has type Lattice{T,E,L}, with T = Float64 the numeric type of position coordinates, E = 2 the dimension of embedding space, and L = 2 the number of Bravais vectors (i.e. the lattice dimension). Both T and E, and even the Sublat names can be overridden when creating a lattice. One can also provide the Bravais vectors as a matrix, with each Aᵢ as a column.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> Amat = √3 * SA[-cos(π/3) cos(π/3); sin(π/3) sin(π/3)];\n\njulia> lat´ = lattice(sA, sB, bravais = Amat, type = Float32, dim = 3, names = (:C, :D))\nLattice{Float32,3,2} : 2D lattice in 3D space\n Bravais vectors : Vector{Float32}[[-0.866025, 1.5, 0.0], [0.866025, 1.5, 0.0]]\n Sublattices : 2\n Names : (:C, :D)\n Sites : (1, 1) --> 2 total per unit cell","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"tip: Advanced: `dim = Val(E)` vs. `dim = E`\nFor the dim keyword above we can alternatively use dim = Val(3), which is slightly more efficient, because the value is encoded as a type. This is a \"Julia thing\" (related to the concept of type stability), and can be ignored upon a first contact with Quantica.jl.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"One can also convert an existing lattice like the above to have a different type, embedding dimension, Bravais vectors and Sublat names with lattice(lat; kw...). For example","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> lat´´ = lattice(lat´, type = Float16, dim = 2, names = (:Boron, :Nitrogen))\nLattice{Float16,2,2} : 2D lattice in 2D space\n Bravais vectors : Vector{Float16}[[-0.866, 1.5], [0.866, 1.5]]\n Sublattices : 2\n Names : (:Boron, :Nitrogen)\n Sites : (1, 1) --> 2 total per unit cell","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"A list of site positions in a lattice lat can be obtained with sites(lat), or sites(lat, sublat) to restrict to a specific sublattice","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> sites(lat´´)\n2-element Vector{SVector{2, Float16}}:\n [0.0, -0.5]\n [0.0, 0.5]\n\njulia> sites(lat´´, :Nitrogen)\n1-element view(::Vector{SVector{2, Float16}}, 2:2) with eltype SVector{2, Float16}:\n [0.0, 0.5]","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Similarly, the Bravais matrix of a lat can be obtained with bravais_matrix(lat).","category":"page"},{"location":"tutorial/lattices/#Lattice-presets","page":"Lattices","title":"Lattice presets","text":"","category":"section"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Quantica.jl provides a range of presets. A preset is a pre-built object of some type. In particular we have Lattice presets, defined in the submodule LatticePresets (also called LP for convenience), that include a number of classical lattices in different dimensions:","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"LP.linear: linear 1D lattice\nLP.square: square 2D lattice\nLP.honeycomb: honeycomb 2D lattice\nLP.cubic: cubic 3D lattice\nLP.bcc: body-centered cubic 3D lattice\nLP.fcc: face-centered cubic 3D lattice","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"To obtain a lattice from a preset one simply calls it, e.g. LP.honecyomb(; kw...). One can modify any of these LatticePresets by passing a bravais, type, dim or names keyword. One can also use a new keyword a0 for the lattice constant (a0 = 1 by default). The lattice lat´´ above can thus be also obtained with","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> lat´´ = LP.honeycomb(a0 = √3, type = Float16, names = (:Boron, :Nitrogen))\nLattice{Float16,2,2} : 2D lattice in 2D space\n Bravais vectors : Vector{Float16}[[0.866, 1.5], [-0.866, 1.5]]\n Sublattices : 2\n Names : (:Boron, :Nitrogen)\n Sites : (1, 1) --> 2 total per unit cell","category":"page"},{"location":"tutorial/lattices/#Visualization","page":"Lattices","title":"Visualization","text":"","category":"section"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"To produce an interactive visualization of Lattices or other Quantica.jl object you need to load GLMakie.jl, CairoMakie.jl or some other plotting backend from the Makie repository (i.e. do using GLMakie, see also Installation). Then, a number of new plotting functions will become available. The main one is qplot. A Lattice is represented, by default, as the sites in a unitcell plus the Bravais vectors.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> using GLMakie\n\njulia> lat = LP.honeycomb()\n\njulia> qplot(lat, hide = nothing)","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"\"Honeycomb","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"qplot accepts a large number of keywords to customize your plot. In the case of lattice, most of these are passed over to the function plotlattice, specific to Lattices and Hamiltonians. In the case above, hide = nothing means \"don't hide any element of the plot\". See the qplot and plotlattice docstrings for details.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"tip: GLMakie.jl vs CairoMakie.jl\nGLMakie.jl is optimized for interactive GPU-accelerated, rasterized plots. If you need to export to PDF for publications or display plots inside a Jupyter notebook, use CairoMakie.jl instead, which in general renders non-interactive, but vector-based plots.","category":"page"},{"location":"tutorial/lattices/#siteselectors","page":"Lattices","title":"SiteSelectors","text":"","category":"section"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"A central concept in Quantica.jl is that of a \"selector\". There are two types of selectors, SiteSelectors and HopSelectors. SiteSelectors are a set of directives or rules that define a subset of its sites. SiteSelector rules are defined through three keywords:","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"region: a boolean function of allowed site positions r.\nsublats: allowed sublattices of selected sites\ncells: allowed cell indices of selected sites","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Similarly, HopSelectors can be used to select a number of site pairs, and will be used later to define hoppings in tight-binding models (see further below).","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"As an example, let us define a SiteSelector that picks all sites belonging to the :B sublattice of a given lattice within a circle of radius 10","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> s = siteselector(region = r -> norm(r) <= 10, sublats = :B)\nSiteSelector: a rule that defines a finite collection of sites in a lattice\n Region : Function\n Sublattices : B\n Cells : any","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Note that this selector is defined independently of the lattice. To apply it to a lattice lat we do lat[s], which results in a LatticeSlice (i.e. a finite portion, or slice, of lat)","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> lat = LP.honeycomb(); lat[s]\nLatticeSlice{Float64,2,2} : collection of subcells for a 2D lattice in 2D space\n Cells : 363\n Cell range : ([-11, -11], [11, 11])\n Total sites : 363","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"The Cell range above are the corners of a bounding box in cell-index space that contains all unit cell indices with at least one selected site.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Let's plot it","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> qplot(lat[s], hide = ())","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"\"A","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"tip: qplot selector\nThe above qplot(lat[s]) can also be written as qplot(lat, selector = s), which will be useful when plotting AbstractHamiltonians.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"tip: Sites of a LatticeSlice\nCollect the site positions of a LatticeSlice into a vector with collect(sites(ls)). If you do sites(ls) instead, you will get a lazy generator that can be used to iterate efficiently among site positions without allocating them in memory.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Apart from region and sublats we can also restrict the unitcells by their cell index. For example, to select all sites in unit cells within the above bounding box we can do","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> s´ = siteselector(cells = CartesianIndices((-11:11, -11:11)))\nSiteSelector: a rule that defines a finite collection of sites in a lattice\n Region : any\n Sublattices : any\n Cells : CartesianIndices((-11:11, -11:11))\n\njulia> lat[s´]\nLatticeSlice{Float64,2,2} : collection of subcells for a 2D lattice in 2D space\n Cells : 529\n Cell range : ([-11, -11], [11, 11])\n Total sites : 1058","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"We can often omit constructing the SiteSelector altogether by using the keywords directly","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> ls = lat[cells = n -> 0 <= n[1] <= 2 && abs(n[2]) < 3, sublats = :A]\nLatticeSlice{Float64,2,2} : collection of subcells for a 2D lattice in 2D space\n Cells : 15\n Cell range : ([0, -2], [2, 2])\n Total sites : 15","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Selectors are very expressive and powerful. Do check siteselector and hopselector docstrings for more details.","category":"page"},{"location":"tutorial/lattices/#Transforming-lattices","page":"Lattices","title":"Transforming lattices","text":"","category":"section"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"We can transform lattices using supercell, reverse, transform, translate.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"As a periodic structure, the choice of the unitcell in an unbounded lattice is, to an extent, arbitrary. Given a lattice lat we can obtain another with a unit cell 3 times larger with supercell(lat, 3)","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> lat = supercell(LP.honeycomb(), 3)\nLattice{Float64,2,2} : 2D lattice in 2D space\n Bravais vectors : [[1.5, 2.598076], [-1.5, 2.598076]]\n Sublattices : 2\n Names : (:A, :B)\n Sites : (9, 9) --> 18 total per unit cell","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"More generally, given a lattice lat with Bravais matrix Amat = bravais_matrix(lat), we can obtain a larger one with Bravais matrix Amat´ = Amat * S, where S is a square matrix of integers. In the example above, S = SA[3 0; 0 3]. The columns of S represent the coordinates of the new Bravais vectors in the basis of the old Bravais vectors. A more general example with e.g. S = SA[3 1; -1 2] can be written either in terms of S or of its columns","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> supercell(lat, SA[3 1; -1 2]) == supercell(lat, (3, -1), (1, 2))\ntrue","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"We can also use supercell to reduce the number of Bravais vectors, and hence the lattice dimensionality. To construct a new lattice with a single Bravais vector A₁´ = 3A₁ - A₂, just omit the second one","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> supercell(lat, (3, -1))\nLattice{Float64,2,1} : 1D lattice in 2D space\n Bravais vectors : [[6.0, 5.196152]]\n Sublattices : 2\n Names : (:A, :B)\n Sites : (27, 27) --> 54 total per unit cell","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Its important to note that the lattice will be bounded along directions different from the specified Bravais vectors. With the syntax above, the new unitcell will be minimal. We may however define how many sites to include in the new unitcell by adding a SiteSelector directive to be applied in the non-periodic directions. For example, to create a 10 * a0 wide, honeycomb nanoribbon we can do","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> lat = supercell(LP.honeycomb(), (1,-1), region = r -> -5 <= r[2] <= 5)\nLattice{Float64,2,1} : 1D lattice in 2D space\n Bravais vectors : [[1.0, 0.0]]\n Sublattices : 2\n Names : (:A, :B)\n Sites : (12, 12) --> 24 total per unit cell\n\njulia> qplot(lat[cells = -7:7])","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"\"Honeycomb","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"tip: No need to build selectors explicitly\nNote that we we didn't build a siteselector(region = ...) object to pass it to supercell. Instead, as shown above, we passed the corresponding keywords directly to supercell, which then takes care to build the selector internally.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"To simply reverse the direction of the Bravais vectors of a lattice, while leaving the site positions unchanged, use reverse (or reverse! to do it in-place)","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> reverse(LP.square())\nLattice{Float64,2,2} : 2D lattice in 2D space\n Bravais vectors : [[-1.0, -0.0], [-0.0, -1.0]]\n Sublattices : 1\n Names : (:A,)\n Sites : (1,) --> 1 total per unit cell","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"To transform a lattice, so that site positions r become f(r) use transform","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> f(r) = SA[0 1; 1 0] * r\nf (generic function with 1 method)\n\njulia> rotated_honeycomb = transform(LP.honeycomb(a0 = √3), f)\nLattice{Float64,2,2} : 2D lattice in 2D space\n Bravais vectors : [[1.5, 0.866025], [1.5, -0.866025]]\n Sublattices : 2\n Names : (:A, :B)\n Sites : (1, 1) --> 2 total per unit cell\n\njulia> sites(rotated_honeycomb)\n2-element Vector{SVector{2, Float64}}:\n [-0.5, 0.0]\n [0.5, 0.0]","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"To translate a lattice by a displacement vector δr use translate","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> δr = SA[0, 1];\n\njulia> sites(translate(rotated_honeycomb, δr))\n2-element Vector{SVector{2, Float64}}:\n [-0.5, 1.0]\n [0.5, 1.0]","category":"page"},{"location":"tutorial/lattices/#Currying:-chaining-transformations-with-the-operator","page":"Lattices","title":"Currying: chaining transformations with the |> operator","text":"","category":"section"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"Many functions in Quantica.jl have a \"curried\" version that allows them to be chained together using the pipe operator |>.","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"note: Definition of currying\nThe curried version of a function f(x1, x2...) is f´ = x1 -> f(x2...), so that the curried form of f(x1, x2...) is x2 |> f´(x2...), or f´(x2...)(x1). This gives the first argument x1 a privileged role. Users of object-oriented languages such as Python may find this use of the |> operator somewhat similar to the way the dot operator works there (i.e. x1.f(x2...)).","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"The last example above can then be written as","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"julia> LP.honeycomb(a0 = √3) |> transform(f) |> translate(δr) |> sites\n2-element Vector{SVector{2, Float64}}:\n [-0.5, 1.0]\n [0.5, 1.0]","category":"page"},{"location":"tutorial/lattices/","page":"Lattices","title":"Lattices","text":"This type of curried syntax is natural in Quantica, and will be used extensively in this tutorial.","category":"page"},{"location":"tutorial/glossary/#Glossary","page":"Glossary","title":"Glossary","text":"","category":"section"},{"location":"tutorial/glossary/","page":"Glossary","title":"Glossary","text":"This is a summary of the type of objects you will be studying.","category":"page"},{"location":"tutorial/glossary/","page":"Glossary","title":"Glossary","text":"Sublat: a sublattice, representing a number of identical sites within the unit cell of a bounded or unbounded lattice. Each site has a position in an E-dimensional space (E is called the embedding dimension). All sites in a given Sublat will be able to hold the same number of orbitals, and they can be thought of as identical atoms. Each Sublat in a Lattice can be given a unique name, by default :A, :B, etc.\nLattice: a collection of Sublats plus a collection of L Bravais vectors that define the periodicity of the lattice. A bounded lattice has L=0, and no Bravais vectors. A Lattice with L > 0 can be understood as a periodic (unbounded) collection of unit cells, each containing a set of sites, each of which belongs to a different sublattice.\nSiteSelector: a rule that defines a subset of sites in a Lattice (not necessarily restricted to a single unit cell)\nHopSelector: a rule that defines a subset of site pairs in a Lattice (not necessarily restricted to the same unit cell)\nLatticeSlice: a finite subset of sites in a Lattice, defined by their cell index (an L-dimensional integer vector, usually denoted by n or cell) and their site index within the unit cell (an integer). A LatticeSlice an be constructed by combining a Lattice and a (bounded) SiteSelector.\nAbstractModel: either a TightBindingModel or a ParametricModel\nTightBindingModel: a set of HoppingTerms and OnsiteTerms\nOnsiteTerm: a rule that, applied to a single site, produces a scalar or a (square) matrix that represents the intra-site Hamiltonian elements (single or multi-orbital)\nHoppingTerm: a rule that, applied to a pair of sites, produces a scalar or a matrix that represents the inter-site Hamiltonian elements (single or multi-orbital)\nParametricModel: a set of ParametricOnsiteTerms and ParametricHoppingTerms\nParametricOnsiteTerm: an OnsiteTerm that depends on a set of free parameters that can be adjusted, and that may or may not have a default value\nParametricHoppingTerm: a HoppingTerm that depends on parameters, like ParametricOnsiteTerm above\nAbstractHamiltonian: either a Hamiltonian or a ParametricHamiltonian\nHamiltonian: a Lattice combined with a TightBindingModel.\nIt also includes a specification of the number of orbitals in each Sublat in the Lattice. A Hamiltonian represents a tight-binding Hamiltonian sharing the same periodicity as the Lattice (it is translationally invariant under Bravais vector shifts).\nParametricHamiltonian: like the above, but using a ParametricModel, which makes it dependent on a set of free parameters that can be efficiently adjusted.\nAn h::AbstractHamiltonian can be used to produce a Bloch matrix h(ϕ; params...) of the same size as the number of orbitals per unit cell, where ϕ = [ϕᵢ...] are Bloch phases and params are values for the free parameters, if any.\nSpectrum: the set of eigenpairs (eigenvalues and corresponding eigenvectors) of a Bloch matrix. It can be computed with a number of EigenSolvers.\nBandstructure: a collection of spectra, evaluated over a discrete mesh (typically a discretization of the Brillouin zone), that is connected to its mesh neighbors into a linearly-interpolated approximation of the AbstractHamiltonian's bandstructure.\nSelfEnergy: an operator Σ(ω) defined to act on a LatticeSlice of an AbstractHamiltonian that depends on energy ω.\nOpenHamiltonian: an AbstractHamiltonian combined with a set of SelfEnergies\nGreenFunction: an OpenHamiltonian combined with a GreenSolver, which is an algorithm that can in general compute the retarded or advanced Green function at any energy between any subset of sites of the underlying lattice.\nGreenSlice: a GreenFunction evaluated on a specific set of sites, but at an unspecified energy\nGreenSolution: a GreenFunction evaluated at a specific energy, but on an unspecified set of sites\nObservable: a physical observable that can be expressed in terms of a GreenFunction.\nExamples of supported observables include local density of states, current density, transmission probability, conductance and Josephson current","category":"page"},{"location":"tutorial/hamiltonians/#Hamiltonians","page":"Hamiltonians","title":"Hamiltonians","text":"","category":"section"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"We build a Hamiltonian by combining a Lattice and a TightbindingModel, optionally specifying also the number of orbitals on each sublattice if there is more than one. A spinful graphene model (two orbitals per site in both sublattices) with nearest neighbor hopping t0 = 2.7 would be written as","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> lat = LP.honeycomb(); model = hopping(2.7*I);\n\njulia> h = hamiltonian(lat, model; orbitals = 2)\nHamiltonian{Float64,2,2}: Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 5\n Harmonic size : 2 × 2\n Orbitals : [2, 2]\n Element type : 2 × 2 blocks (ComplexF64)\n Onsites : 0\n Hoppings : 6\n Coordination : 3.0","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"A crucial thing to remember when defining multi-orbital Hamiltonians as the above is that onsite and hopping amplitudes need to be matrices of the correct size. The symbol I in Julia represents the identity matrix of any size, which is convenient to define a spin-preserving hopping in the case above. An alternative would be to use model = hopping(2.7*SA[1 0; 0 1]).","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"tip: Models with different number of orbitals per sublattice\nNon-homogeneous multiorbital models are more advanced but are fully supported in Quantica.jl. Just use orbitals = (n₁, n₂,...) to have nᵢ orbitals in sublattice i, and make sure your model is consistent with that. As in the case of the dim keyword in lattice, you can also use Val(nᵢ) for marginally faster construction.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"Similarly to LatticePresets, we also have HamiltonianPresets, also aliased as HP. Currently, we have only HP.graphene(...) and HP.twisted_bilayer_graphene(...), but we expect to extend this library in the future (see the docstring of HP).","category":"page"},{"location":"tutorial/hamiltonians/#A-more-elaborate-example:-the-Kane-Mele-model","page":"Hamiltonians","title":"A more elaborate example: the Kane-Mele model","text":"","category":"section"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"The Kane-Mele model for graphene describes intrinsic spin-orbit coupling (SOC), in the form of an imaginary second-nearest-neighbor hopping between same-sublattice sites, with a sign that alternates depending on hop direction dr. A possible implementation in Quantica.jl would be","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"SOC(dr) = 0.05 * ifelse(iseven(round(Int, atan(dr[2], dr[1])/(pi/3))), im, -im)\n\nmodel =\n hopping(1, range = neighbors(1)) +\n hopping((r, dr) -> SOC(dr); sublats = :A => :A, range = neighbors(2)) +\n hopping((r, dr) -> -SOC(dr); sublats = :B => :B, range = neighbors(2))\n\nh = LatticePresets.honeycomb() |> model\n\nqplot(h, inspector = true)","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"\"Kane-Mele","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"The inspector = true keyword enables interactive tooltips in the visualization of h that allows to navigate each onsite and hopping amplitude graphically. Note that sites connected to the unit cell of h by some hopping are included, but are rendered with partial transparency by default.","category":"page"},{"location":"tutorial/hamiltonians/#ParametricHamiltonians","page":"Hamiltonians","title":"ParametricHamiltonians","text":"","category":"section"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"If we use a ParametricModel instead of a simple TightBindingModel we will obtain a ParametricHamiltonian instead of a simple Hamiltonian, both of which are subtypes of the AbstractHamiltonian type","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> model_param = @hopping((; t = 2.7) -> t*I);\n\njulia> h_param = hamiltonian(lat, model_param; orbitals = 2)\nParametricHamiltonian{Float64,2,2}: Parametric Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 5\n Harmonic size : 2 × 2\n Orbitals : [2, 2]\n Element type : 2 × 2 blocks (ComplexF64)\n Onsites : 0\n Hoppings : 6\n Coordination : 3.0\n Parameters : [:t]","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"We can also apply Modifiers by passing them as extra arguments to hamiltonian, which results again in a ParametricHamiltonian with the parametric modifiers applied","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> peierls! = @hopping!((t, r, dr; Bz = 0) -> t * cis(-Bz/2 * SA[-r[2], r[1]]' * dr));\n\njulia> h_param_mod = hamiltonian(lat, model_param, peierls!; orbitals = 2)\nParametricHamiltonian{Float64,2,2}: Parametric Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 5\n Harmonic size : 2 × 2\n Orbitals : [2, 2]\n Element type : 2 × 2 blocks (ComplexF64)\n Onsites : 0\n Hoppings : 6\n Coordination : 3.0\n Parameters : [:Bz, :t]","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"Note that SA[-r[2], r[1]] above is a 2D SVector, because since the embedding dimension is E = 2, both r and dr are also 2D SVectors.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"We can also apply modifiers to an already constructed AbstractHamiltonian. The following is equivalent to the above","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> h_param_mod = hamiltonian(h_param, peierls!);","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"warning: Modifiers do not commute\nWe can add as many modifiers as we need by passing them as extra arguments to hamiltonian, and they will be applied sequentially, one by one. Beware, however, that modifiers do not necessarily commute, in the sense that the result will in general depend on their order.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"We can obtain a plain Hamiltonian from a ParametricHamiltonian by applying specific values to its parameters. To do so, simply use the call syntax with parameters as keyword arguments","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> h_param_mod(Bz = 0.1, t = 1)\nHamiltonian{Float64,2,2}: Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 5\n Harmonic size : 2 × 2\n Orbitals : [2, 2]\n Element type : 2 × 2 blocks (ComplexF64)\n Onsites : 0\n Hoppings : 6\n Coordination : 3.0","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"tip: Syntax `lat |> model` and `h |> modifier\nThe common cases lat |> hamiltonian(model) (or hamiltonian(lat, model)) and h |> hamiltonian(modifier) (or hamiltonian(h, modifier)) can be also written as lat |> model and h |> modifier, respectively. Hence hamiltonian(lat, model, modifier) may be written as lat |> model |> modifier. This form however does not allow to specify the number of orbitals per sublattice (it will be one, the default).","category":"page"},{"location":"tutorial/hamiltonians/#Obtaining-actual-matrices","page":"Hamiltonians","title":"Obtaining actual matrices","text":"","category":"section"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"For an L-dimensional h::AbstractHamiltonian (i.e. defined on a Lattice with L Bravais vectors), the Hamiltonian matrix between any unit cell with cell index n and another unit cell at n+dn (here known as a Hamiltonian \"harmonic\") is given by h[dn]","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> h[(1,0)]\n4×4 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 4 stored entries:\n ⋅ ⋅ 2.7+0.0im 0.0+0.0im\n ⋅ ⋅ 0.0+0.0im 2.7+0.0im\n ⋅ ⋅ ⋅ ⋅\n ⋅ ⋅ ⋅ ⋅\n\njulia> h[(0,0)]\n4×4 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 8 stored entries:\n ⋅ ⋅ 2.7+0.0im 0.0+0.0im\n ⋅ ⋅ 0.0+0.0im 2.7+0.0im\n 2.7+0.0im 0.0+0.0im ⋅ ⋅\n 0.0+0.0im 2.7+0.0im ⋅ ⋅","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"tip: Cell distance indices\nWe can use Tuples or SVectors for cell distance indices dn. An empty Tuple dn = () will always return the main intra-unitcell harmonic: h[()] = h[(0,0...)] = h[SA[0,0...]].","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"note: Bounded Hamiltonians\nIf the Hamiltonian has a bounded lattice (i.e. it has L=0 Bravais vectors), we will simply use an empty tuple to obtain its matrix h[()]. This is not in conflict with the above syntax.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"Note that if h is a ParametricHamiltonian, such as h_param above, we will get zeros in place of the unspecified parametric terms, unless we actually first specify the values of the parameters","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> h_param[(0,0)] # Parameter t is not specified -> it is not applied\n4×4 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 8 stored entries:\n ⋅ ⋅ 0.0+0.0im 0.0+0.0im\n ⋅ ⋅ 0.0+0.0im 0.0+0.0im\n 0.0+0.0im 0.0+0.0im ⋅ ⋅\n 0.0+0.0im 0.0+0.0im ⋅ ⋅\n\njulia> h_param(t=2)[(0,0)]\n4×4 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 8 stored entries:\n ⋅ ⋅ 2.0+0.0im 0.0+0.0im\n ⋅ ⋅ 0.0+0.0im 2.0+0.0im\n 2.0+0.0im 0.0+0.0im ⋅ ⋅\n 0.0+0.0im 2.0+0.0im ⋅ ⋅","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"note: ParametricHamiltonian harmonics\nThe above behavior for unspecified parameters is not set in stone and may change in future versions. Another option would be to apply their default values (which may, however, not exist).","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"We are usually not interested in the harmonics h[dn] themselves, but rather in the Bloch matrix of a Hamiltonian","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"H(phi) = sum_dn H_dn exp(-i phi * dn)","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"where H_dn are the Hamiltonian harmonics, phi = (phi_1 phi_2) = (kcdot A_1 kcdot A_2) are the Bloch phases, k is the Bloch wavevector and A_i are the Bravais vectors.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"We obtain the Bloch matrix using the syntax h(ϕ; params...)","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> h((0,0))\n4×4 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 8 stored entries:\n ⋅ ⋅ 8.1+0.0im 0.0+0.0im\n ⋅ ⋅ 0.0+0.0im 8.1+0.0im\n 8.1+0.0im 0.0+0.0im ⋅ ⋅\n 0.0+0.0im 8.1+0.0im ⋅ ⋅\n\njulia> h_param_mod((0.2, 0.3); B = 0.1)\n4×4 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 8 stored entries:\n ⋅ ⋅ 7.92559-1.33431im 0.0+0.0im\n ⋅ ⋅ 0.0+0.0im 7.92559-1.33431im\n 7.92559+1.33431im 0.0+0.0im ⋅ ⋅\n 0.0+0.0im 7.92559+1.33431im ⋅ ⋅","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"Note that unspecified parameters take their default values when using the call syntax (as per the standard Julia convention). Any unspecified parameter that does not have a default value will produce an UndefKeywordError error.","category":"page"},{"location":"tutorial/hamiltonians/#Transforming-Hamiltonians","page":"Hamiltonians","title":"Transforming Hamiltonians","text":"","category":"section"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"Like with lattices, we can transform an h::AbstractHamiltonians using supercell, reverse, transform and translate. All these except supercell operate only on the underlying lattice(h) of h, leaving the hoppings and onsite elements unchanged. Meanwhile, supercell acts on lattice(h) but also copies the hoppings and onsites of h onto the new sites, preserving the periodicity of the original h.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"Additionally, we can also use wrap, which makes h periodic along a number of its Bravais vectors, while leaving the rest unbounded.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> wrap(HP.graphene(), (0, :))\nHamiltonian{Float64,2,1}: Hamiltonian on a 1D Lattice in 2D space\n Bloch harmonics : 3\n Harmonic size : 2 × 2\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 4\n Coordination : 2.0","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"The phases argument of wrap(h, phases) is a Tuple of real numbers and/or colons (:), of length equal to the lattice dimension of h. Each real number ϕᵢ corresponds to a Bravais vector along which the transformed lattice will become periodic, picking up a phase exp(iϕᵢ) in the wrapping hoppings, while each colon leaves the lattice unbounded along the corresponding Bravais vector. In a way wrap is dual to supercell, in the sense that the it applies a different boundary condition to the lattice along the eliminated Bravais vectors, periodic instead of open, as in the case of supercell. The phases ϕᵢ are also connected to Bloch phases, in the sense that e.g. wrap(h, (ϕ₁, :))(ϕ₂) == h(ϕ₁, ϕ₂)","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"warning: Caveat of the Bloch-wrap duality\nThe relation wrap(h, phases)(()) = h(phases) is quite general. However, in some cases with position-dependent models, this may not hold. This may happen when some of the rapping hoppings added by wrap are already present in h, as in the case with hoppings at ranges equal or larger than half the size of the unit cell.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"It's important to understand that, when transforming an h::AbstractHamiltonian, the model used to build h is not re-evaluated. Hoppings and onsite energies are merely copied so as to preserve the periodicity of the original h. As a consequence, these two constructions give different Hamiltonians","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> h1 = LP.linear() |> supercell(4) |> hamiltonian(onsite(r -> r[1]));\n\njulia> h2 = LP.linear() |> hamiltonian(onsite(r -> r[1])) |> supercell(4);","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"In the case of h1 the onsite model is applied to the 4-site unitcell. Since each site has a different position, each gets a different onsite energy.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> h1[()]\n4×4 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 4 stored entries:\n 0.0+0.0im ⋅ ⋅ ⋅\n ⋅ 1.0+0.0im ⋅ ⋅\n ⋅ ⋅ 2.0+0.0im ⋅\n ⋅ ⋅ ⋅ 3.0+0.0im","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"In contrast h2 first gets the onsite model applied with a 1-site unitcell at position r = SA[0], so all sites in the lattice get onsite energy zero. Only then it is expanded with supercell, which generates a 4-site unitcell with zero onsite energy on all its sites","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"julia> h2[()]\n4×4 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 4 stored entries:\n 0.0+0.0im ⋅ ⋅ ⋅\n ⋅ 0.0+0.0im ⋅ ⋅\n ⋅ ⋅ 0.0+0.0im ⋅\n ⋅ ⋅ ⋅ 0.0+0.0im","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"As a consequence, h and supercell(h) represent exactly the same system, with the same observables, but with a different choice of unitcell.","category":"page"},{"location":"tutorial/hamiltonians/","page":"Hamiltonians","title":"Hamiltonians","text":"These two different behaviors make sense in different situations, so it is important to be aware of the order dependence of transformations. Similar considerations apply to transform, translate and wrap when models are position dependent.","category":"page"},{"location":"tutorial/tutorial/#Tutorial","page":"Welcome","title":"Tutorial","text":"","category":"section"},{"location":"tutorial/tutorial/","page":"Welcome","title":"Welcome","text":"Welcome to the Quantica.jl tutorial!","category":"page"},{"location":"tutorial/tutorial/","page":"Welcome","title":"Welcome","text":"Here you will learn how to use Quantica.jl to build and compute properties of tight-binding models. This includes","category":"page"},{"location":"tutorial/tutorial/","page":"Welcome","title":"Welcome","text":"Defining general Lattices in arbitrary dimensions\nDefining generic tight-binding Models with arbitrary parameter dependences\nBuilding Hamiltonians of mono- or multiorbital systems by combining Lattices and Models\nComputing Bandstructures of Hamiltonians\nComputing GreenFunctions of Hamiltonians or OpenHamiltonians (i.e. Hamiltonians with attached self-energies from other Hamiltonians, such as leads).\nComputing Observables from Green functions, such as spectral densities, current densities, local and nonlocal conductances, Josephson currents, critical currents, transmission probabilities, etc.","category":"page"},{"location":"tutorial/tutorial/","page":"Welcome","title":"Welcome","text":"Check the menu on the left for shortcuts to the relevant sections.","category":"page"},{"location":"tutorial/tutorial/","page":"Welcome","title":"Welcome","text":"tip: Check the docstrings\nFull usage instructions on all Quantica.jl functions can be found here or within the Julia REPL by querying their docstrings. For example, to obtain details on the hamiltonian function or on the available LatticePresets, just type ?hamiltonian or ?LatticePresets.","category":"page"},{"location":"api/#api","page":"API","title":"API","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"CurrentModule = Quantica","category":"page"},{"location":"api/","page":"API","title":"API","text":"","category":"page"},{"location":"api/","page":"API","title":"API","text":"Modules = [Quantica]","category":"page"},{"location":"api/#Quantica.EigenSolvers","page":"API","title":"Quantica.EigenSolvers","text":"EigenSolvers is a Quantica submodule containing several pre-defined eigensolvers. The alias ES can be used in place of EigenSolvers. Currently supported solvers are\n\nES.LinearAlgebra(; kw...) # Uses `eigen(mat; kw...)` from the `LinearAlgebra` package\nES.Arpack(; kw...) # Uses `eigs(mat; kw...)` from the `Arpack` package\nES.KrylovKit(params...; kw...) # Uses `eigsolve(mat, params...; kw...)` from the `KrylovKit` package\nES.ArnoldiMethod(; kw...) # Uses `partialschur(mat; kw...)` from the `ArnoldiMethod` package\n\nAdditionally, to compute interior eigenvalues, we can use a shift-invert method around energy ϵ0 (uses LinearMaps and a LinearSolve.lu factorization), combined with any solver s from the list above:\n\nES.ShiftInvert(s, ϵ0) # Perform a lu-based shift-invert with solver `s`\n\nIf the required packages are not already available, they will be automatically loaded when calling these solvers.\n\nExamples\n\njulia> h = HP.graphene(t0 = 1) |> supercell(10);\n\njulia> spectrum(h, (0,0), ES.ShiftInvert(ES.ArnoldiMethod(nev = 4), 0.0)) |> energies\n4-element Vector{ComplexF64}:\n -0.38196601125010465 + 3.686368662666227e-16im\n -0.6180339887498938 + 6.015655020129746e-17im\n 0.6180339887498927 + 2.6478518218421853e-16im\n 0.38196601125010476 - 1.741261108320361e-16im\n\nSee also\n\n`spectrum`, `bands`\n\n\n\n\n\n","category":"module"},{"location":"api/#Quantica.GreenSolvers","page":"API","title":"Quantica.GreenSolvers","text":"GreenSolvers is a Quantica submodule containing several pre-defined Green function solvers. The alias GS can be used in place of GS. Currently supported solvers and their possible keyword arguments are\n\nGS.SparseLU() : Direct inversion solver for 0D Hamiltonians using a SparseArrays.lu(hmat) factorization\nGS.Schur(; boundary = Inf) : Solver for 1D Hamiltonians based on a deflated, generalized Schur factorization\nboundary : 1D cell index of a boundary cell, or Inf for no boundaries. Equivalent to removing that specific cell from the lattice when computing the Green function.\nGS.KPM(; order = 100, bandrange = missing, kernel = I) : Kernel polynomial method solver for 0D Hamiltonians\norder : order of the expansion in Chebyshev polynomials Tₙ(h) of the Hamiltonian h (lowest possible order is n = 0).\nbandrange : a (min_energy, max_energy)::Tuple interval that encompasses the full band of the Hamiltonian. If missing, it is computed automatically.\nkernel : generalization that computes momenta as μₙ = Tr[Tₙ(h)*kernel], so that the local density of states (see ldos) becomes the density of the kernel operator.\nThis solver does not allow arbitrary indexing of the resulting g::GreenFunction, only on contacts g[contact_ind::Integer]. If the system has none, we can add a dummy contact using attach(h, nothing; sites...), see attach.\nGS.Bands(bands_arguments; boundary = missing, bands_kw...): solver based on the integration of bandstructure simplices\nbands_arguments: positional arguments passed on to bands\nbands_kw: keyword arguments passed on to bands\nboundary: either missing (no boundary), or dir => cell_pos, where dir::Integer is the Bravais vector normal to the boundary, and cell_pos::Integer the value of cell indices cells[dir] that define the boundary (i.e. cells[dir] <= cell_pos are vaccum)\nThis solver only allows zero or one boundary. WARNING: if a boundary is used, the algorithm may become unstable for very fine band meshes.\n\n\n\n\n\n","category":"module"},{"location":"api/#Quantica.HamiltonianPresets","page":"API","title":"Quantica.HamiltonianPresets","text":"HamiltonianPresets is a Quantica submodule containing several pre-defined Hamiltonians. The alias HP can be used in place of LatticePresets. Currently supported hamiltonians are\n\nHP.graphene(; kw...)\nHP.twisted_bilayer_graphene(; kw...)\n\nFor details on the keyword arguments kw see the corresponding docstring\n\njulia> HamiltonianPresets.twisted_bilayer_graphene(twistindices = (30, 1))\nHamiltonian{Float64,3,2}: Hamiltonian on a 2D Lattice in 3D space\n Bloch harmonics : 7\n Harmonic size : 11164 × 11164\n Orbitals : [1, 1, 1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 315684\n Coordination : 28.27696\n\nSee also\n\n`LatticePresets`, `RegionPresets`\n\n\n\n\n\n","category":"module"},{"location":"api/#Quantica.LatticePresets","page":"API","title":"Quantica.LatticePresets","text":"LatticePresets is a Quantica submodule containing several pre-defined lattices. The alias LP can be used in place of LatticePresets. Currently supported lattices are\n\nLP.linear(; a0 = 1, kw...) # linear lattice in 1D\nLP.square(; a0 = 1, kw...) # square lattice in 2D\nLP.triangular(; a0 = 1, kw...) # triangular lattice in 2D\nLP.honeycomb(; a0 = 1, kw...) # honeycomb lattice in 2D\nLP.cubic(; a0 = 1, kw...) # cubic lattice in 3D\nLP.fcc(; a0 = 1, kw...) # face-centered-cubic lattice in 3D\nLP.bcc(; a0 = 1, kw...) # body-centered-cubic lattice in 3D\nLP.hcp(; a0 = 1, kw...) # hexagonal-closed-packed lattice in 3D\n\nIn all cases a0 denotes the lattice constant, and kw... are extra keywords forwarded to lattice.\n\nExamples\n\njulia> LatticePresets.honeycomb(names = (:C, :D))\nLattice{Float64,2,2} : 2D lattice in 2D space\n Bravais vectors : [[0.5, 0.866025], [-0.5, 0.866025]]\n Sublattices : 2\n Names : (:C, :D)\n Sites : (1, 1) --> 2 total per unit cell\n\njulia> LatticePresets.cubic(bravais = ((1, 0), (0, 2)))\nLattice{Float64,3,2} : 2D lattice in 3D space\n Bravais vectors : [[1.0, 0.0, 0.0], [0.0, 2.0, 0.0]]\n Sublattices : 1\n Names : (:A,)\n Sites : (1,) --> 1 total per unit cell\n\nSee also\n\n`RegionPresets`, `HamiltonianPresets`\n\n\n\n\n\n","category":"module"},{"location":"api/#Quantica.RegionPresets","page":"API","title":"Quantica.RegionPresets","text":"RegionPresets is a Quantica submodule containing several pre-defined regions of type Region{E}, where E is the space dimension. The alias RP can be used in place of RegionPresets. Supported regions are\n\nRP.circle(radius = 10, center = (0, 0)) # 2D\nRP.ellipse((rx, ry) = (10, 15), center = (0, 0)) # 2D\nRP.square(side = 10, center = (0, 0)) # 2D\nRP.rectangle((sx, sy) = (10, 15), center = (0, 0)) # 2D\nRP.sphere(radius = 10, center = (0, 0, 0)) # 3D\nRP.spheroid((rx, ry, rz) = (10, 15, 20), center = (0, 0, 0)) # 3D\nRP.cube(side = 10, center = (0, 0, 0)) # 3D\nRP.cuboid((sx, sy, sz) = (10, 15, 20), center = (0, 0, 0)) # 3D\n\nCalling a f::Region{E} object on a r::Tuple or r::SVector with f(r) or f(r...) returns true or false if r is inside the region or not. Note that only the first E coordinates of r will be checked. Arbitrary boolean functions can also be wrapped in Region{E} to create custom regions, e.g. f = Region{2}(r -> r[1]^2 < r[2]).\n\nBoolean combinations of Regions are supported using &, |, xor and ! operators, such as annulus = RP.circle(10) & !RP.circle(5).\n\nExamples\n\njulia> RegionPresets.circle(10)(20, 0, 0)\nfalse\n\njulia> RegionPresets.circle(10)(0, 0, 20)\ntrue\n\nSee also\n\n`LatticePresets`, `HamiltonianPresets`\n\n\n\n\n\n","category":"module"},{"location":"api/#Quantica.BoxIterator","page":"API","title":"Quantica.BoxIterator","text":"BoxIterator(seed::SVector{N,Int}; maxiterations = TOOMANYITERS)\n\nCartesian iterator iter over SVector{N,Int}s (cells) that starts at seed and grows outwards in the form of a box of increasing sides (not necesarily equal) until it encompasses a certain N-dimensional region. To signal that a cell is in the desired region the user calls acceptcell!(iter, cell).\n\n\n\n\n\n","category":"type"},{"location":"api/#Base.reverse","page":"API","title":"Base.reverse","text":"reverse(lat_or_h::Union{Lattice,AbstractHamiltonian})\n\nBuild a new lattice or hamiltonian with the orientation of all Bravais vectors reversed.\n\nSee also\n\n`reverse!`, `transform`\n\n\n\n\n\n","category":"function"},{"location":"api/#Base.reverse!","page":"API","title":"Base.reverse!","text":"reverse!(lat_or_h::Union{Lattice,AbstractHamiltonian})\n\nIn-place version of reverse, inverts all Bravais vectors of lat_or_h.\n\nSee also\n\n`reverse`, `transform`\n\n\n\n\n\n","category":"function"},{"location":"api/#LinearAlgebra.ishermitian","page":"API","title":"LinearAlgebra.ishermitian","text":"ishermitian(h::Hamiltonian)\n\nCheck whether h is Hermitian. This is not supported for h::ParametricHamiltonian, as the result can depend of the specific values of its parameters.\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.attach","page":"API","title":"Quantica.attach","text":"attach(h::AbstractHamiltonian, args..; sites...)\nattach(h::OpenHamiltonian, args...; sites...)\n\nBuild an h´::OpenHamiltonian by attaching (adding) a Σ::SelfEnergy to a finite number of sites in h specified by siteselector(; sites...). This also defines a \"contact\" on said sites that can be referred to (with index i::Integer for the i-th attached contact) when slicing Green functions later. Self-energies are taken into account when building the Green function g(ω) = (ω - h´ - Σ(ω))⁻¹ of the resulting h´, see greenfunction.\n\nSelf-energy forms\n\nThe different forms of args yield different types of self-energies Σ. Currently supported forms are:\n\nattach(h, gs::GreenSlice, coupling::AbstractModel; sites...)\n\nAdds a generic self-energy Σ(ω) = V´⋅gs(ω)⋅V on h's sites, where V and V´ are couplings, given by coupling, between said sites and the LatticeSlice in gs. Allowed forms of gs include both g[bath_sites...] and g[contactind::Integer] where g is any GreenFunction.\n\nattach(h, model::ParametricModel; sites...)\n\nAdd self-energy Σᵢⱼ(ω) defined by a model composed of parametric terms (@onsite and @hopping) with ω as first argument, as in e.g. @onsite((ω, r) -> Σᵢᵢ(ω, r)) and @hopping((ω, r, dr) -> Σᵢⱼ(ω, r, dr))\n\nattach(h, nothing; sites...)\n\nAdd null self-energy Σᵢⱼ(ω) = 0 on selected sites, which in effect simply amounts to defining a contact on said sites, but does not lead to any dressing the Green function. This is useful for some GreenFunction solvers such as GS.KPM (see greenfunction), which need to know the sites of interest beforehand (the contact sites in this case).\n\nattach(h, g1D::GreenFunction; reverse = false, transform = identity, sites...)\n\nAdd a self-energy Σ(ω) = h₋₁⋅g1D(ω)[surface]⋅h₁ corresponding to a semi-infinite 1D lead (i.e. with a finite boundary, see greenfunction), where h₁ and h₋₁ are intercell couplings, and g1D is the lead GreenFunction. The g1D(ω) is taken at the suface unitcell, either adjacent to the boundary on its positive side (if reverse = false) or on its negative side (if reverse = true). The positions of the selected sites in h must match, modulo an arbitrary displacement, those of the lead unit cell, after applying transform to the latter. If they don't, use the attach syntax below.\n\nAdvanced: If the g1D does not have any self-energies, the produced self-energy is in fact an ExtendedSelfEnergy, which is numerically more stable than a naive implementation of RegularSelfEnergy's, since g1D(ω)[surface] is never actually computed. Conversely, if g1D has self-energies attached, a RegularSelfEnergy is produced.\n\nattach(h, g1D::GreenFunction, coupling::AbstractModel; reverse = false, transform = identity, sites...)\n\nAdd a self-energy Σ(ω) = V´⋅g1D(ω)[surface]⋅V corresponding to a 1D lead (semi-infinite or infinite), but with couplings V and V´, defined by coupling, between sites and the surface lead unitcell (or the one with index zero if there is no boundary) . See also Advanced note above.\n\nCurrying\n\nh |> attach(args...; sites...)\n\nCurried form equivalent to attach(h, args...; sites...).\n\nExamples\n\njulia> # A graphene flake with two out-of-plane cubic-lattice leads\n\njulia> g1D = LP.cubic() |> hamiltonian(hopping(1)) |> supercell((0,0,1), region = RP.square(4)) |> greenfunction(GS.Schur(boundary = 0));\n\njulia> coupling = hopping(1, range = 2);\n\njulia> gdisk = HP.graphene(a0 = 1, dim = 3) |> supercell(region = RP.circle(10)) |> attach(g1D, coupling; region = RP.square(4)) |> attach(g1D, coupling; region = RP.square(4), reverse = true) |> greenfunction;\n\n\nSee also\n\n`greenfunction`, `GreenSolvers`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.bands","page":"API","title":"Quantica.bands","text":"bands(h::AbstractHamiltonian, xcolᵢ...; kw...)\n\nConstruct a Bandstructure object, which contains in particular a collection of continuously connected Subbands of h, obtained by diagonalizing the matrix h(ϕs; params...) on an M-dimensional mesh of points (x₁, x₂, ..., xₘ), where each xᵢ takes values in the collection xcolᵢ. The mapping between points in the mesh points and values of (ϕs; params...) is defined by keyword mapping (identity by default, see Keywords). Diagonalization is multithreaded and will use all available Julia threads (start session with julia -t N to have N threads).\n\nbands(f::Function, xcolᵢ...; kw...)\n\nLike the above using f(ϕs)::AbstractMatrix in place of h(ϕs; params...), and returning a Vector{<:Subband} instead of a Bandstructure object. This is provided as a lower level driver without the added slicing functionality of a full Bandstructure object, see below.\n\nbands(h::AbstractHamiltonian; kw...)\n\nEquivalent to bands(h::AbstractHamiltonian, xcolᵢ...; kw...) with a default xcolᵢ = subdiv(-π, π, 49).\n\nKeywords\n\nsolver: eigensolver to use for each diagonalization (see Eigensolvers). Default: ES.LinearAlgebra()\nmapping: a function of the form (x, y, ...) -> ϕs or (x, y, ...) -> ftuple(ϕs...; params...) that translates points (x, y, ...) in the mesh to Bloch phases ϕs or phase+parameter FrankenTuples ftuple(ϕs...; params...). See also linecuts below. Default: identity\ntransform: function to apply to each eigenvalue after diagonalization. Default: identity\ndegtol::Real: maximum distance between to nearby eigenvalue so that they are classified as degenerate. Default: sqrt(eps)\nsplit::Bool: whether to split bands into disconnected subbands. Default: true\nprojectors::Bool: whether to compute interpolating subspaces in each simplex (for use as GreenSolver). Default: true\nwarn::Bool: whether to emit warning when band dislocations are encountered. Default: true\nshowprogress::Bool: whether to show or not a progress bar. Default: true\ndefects: (experimental) a collection of extra points to add to the mesh, typically the location of topological band defects such as Dirac points, so that interpolation avoids creating dislocation defects in the bands. You need to also increase patches to repair the subband dislocations using the added defect vertices. Default: ()\npatches::Integer: (experimental) if a dislocation is encountered, attempt to patch it by searching for the defect recursively to a given order, or using the provided defects (preferred). Default: 0\n\nCurrying\n\nh |> bands(xcolᵢ...; kw...)\n\nCurried form of bands equivalent to bands(h, xcolᵢ...; kw...)\n\nBand linecuts\n\nTo do a linecut of a bandstructure along a polygonal path in the L-dimensional Brillouin zone, mapping a set of 1D points xs to a set of nodes, with pts interpolation points in each segment, one can use the following convenient syntax\n\nbands(h, subdiv(xs, pts); mapping = (xs => nodes))\n\nHere nodes can be a collection of SVector{L} or of named Brillouin zone points from the list (:Γ,:K, :K´, :M, :X, :Y, :Z). If mapping = nodes, then xs defaults to 0:length(nodes)-1. See also subdiv for its alternative methods.\n\nIndexing and slicing\n\nb[i]\n\nExtract i-th subband from b::Bandstructure. i can also be a Vector, an AbstractRange or any other argument accepted by getindex(subbands::Vector, i)\n\nb[slice::Tuple]\n\nCompute a section of b::Bandstructure with a \"plane\" defined by slice = (ϕ₁, ϕ₂,..., ϕₗ[, ϵ]), where each ϕᵢ or ϵ can be a real number (representing a fixed momentum or energy) or a : (unconstrained along that dimension). For bands of an L-dimensional lattice, slice will be padded to an L+1-long tuple with : if necessary. The result is a collection of of sliced Subbands.\n\nExamples\n\njulia> phis = range(0, 2pi, length = 50); h = LP.honeycomb() |> hamiltonian(@hopping((; t = 1) -> t));\n\njulia> bands(h(t = 1), phis, phis)\nBandstructure{Float64,3,2}: 3D Bandstructure over a 2-dimensional parameter space of type Float64\n Subbands : 1\n Vertices : 5000\n Edges : 14602\n Simplices : 9588\n\njulia> bands(h, phis, phis; mapping = (x, y) -> ftuple(0, x; t = y/2π))\nBandstructure{Float64,3,2}: 3D Bandstructure over a 2-dimensional parameter space of type Float64\n Subbands : 1\n Vertices : 4950\n Edges : 14553\n Simplices : 9604\n\njulia> bands(h(t = 1), subdiv((0, 2, 3), (20, 30)); mapping = (0, 2, 3) => (:Γ, :M, :K))\nBandstructure{Float64,2,1}: 2D Bandstructure over a 1-dimensional parameter space of type Float64\n Subbands : 1\n Vertices : 97\n Edges : 96\n Simplices : 96\n\nSee also\n\n`spectrum`, `subdiv`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.bravais_matrix","page":"API","title":"Quantica.bravais_matrix","text":"bravais_matrix(lat::Lattice)\nbravais_matrix(h::AbstractHamiltonian)\n\nReturn the Bravais matrix of lattice lat or AbstractHamiltonian h, with Bravais vectors as its columns.\n\nExamples\n\njulia> lat = lattice(sublat((0,0)), bravais = ((1.0, 2), (3, 4)));\n\njulia> bravais_matrix(lat)\n2×2 SMatrix{2, 2, Float64, 4} with indices SOneTo(2)×SOneTo(2):\n 1.0 3.0\n 2.0 4.0\n\n\nSee also\n\n`lattice`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.cellsites","page":"API","title":"Quantica.cellsites","text":"cellsites(cell_indices, site_indices)\n\nSimple selector of sites with given site_indices in a given cell at cell_indices. Here, site_indices can be an index, a collection of integers or : (for all sites), and cell_indices should be a collection of L integers, where L is the lattice dimension.\n\nSee also\n\n`siteselector`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.combine","page":"API","title":"Quantica.combine","text":"combine(lats::Lattice...)\n\nIf all lats have compatible Bravais vectors, combine them into a single lattice. If necessary, sublattice names are renamed to remain unique.\n\ncombine(hams::AbstractHamiltonians...; coupling = TighbindingModel())\n\nCombine a collection hams of hamiltonians into one by combining their corresponding lattices, and optionally by adding a coupling between them, given by the hopping terms in coupling.\n\nNote that the coupling model will be applied to the combined lattice (which may have renamed sublattices to avoid name collissions). However, only hopping terms between different hams blocks will be applied.\n\nExamples\n\njulia> # Building Bernal-stacked bilayer graphene\n\njulia> hbot = HP.graphene(a0 = 1, dim = 3); htop = translate(hbot, (0, 1/√3, 1/√3));\n\njulia> h2 = combine(hbot, htop; coupling = hopping(1, sublats = :B => :C) |> plusadjoint))\n┌ Warning: Renamed repeated sublattice :A to :C\n└ @ Quantica ~/.julia/dev/Quantica/src/types.jl:60\n┌ Warning: Renamed repeated sublattice :B to :D\n└ @ Quantica ~/.julia/dev/Quantica/src/types.jl:60\nHamiltonian{Float64,3,2}: Hamiltonian on a 2D Lattice in 3D space\n Bloch harmonics : 5\n Harmonic size : 4 × 4\n Orbitals : [1, 1, 1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 14\n Coordination : 3.5\n\nSee also\n\n`hopping`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.conductance","page":"API","title":"Quantica.conductance","text":"conductance(gs::GreenSlice; nambu = false)\n\nGiven a slice gs = g[i::Integer, j::Integer] of a g::GreenFunction, build a partially evaluated object G::Conductance representing the zero-temperature, linear, differential conductance Gᵢⱼ = dIᵢ/dVⱼ between contacts i and j at arbitrary bias ω = eV in units of e^2/h. Gᵢⱼ is given by\n\n Gᵢⱼ = e^2/h × Tr{[im*δᵢⱼ(gʳ-gᵃ)Γⁱ-gʳΓⁱgᵃΓʲ]} (nambu = false)\n Gᵢⱼ = e^2/h × Tr{[im*δᵢⱼ(gʳ-gᵃ)Γⁱτₑ-gʳΓⁱτ₃gᵃΓʲτₑ]} (nambu = true)\n\nHere gʳ = g(ω) and gᵃ = (gʳ)' = g(ω') are the retarded and advanced Green function of the system, and Γⁱ = im * (Σⁱ - Σⁱ') is the decay rate at contact i. For Nambu systems (nambu = true), the matrices τₑ=[I 0; 0 0] and τ₃ = [I 0; 0 -I] ensure that charge reversal in Andreev reflections is properly taken into account. For normal systems (nambu = false), the total current at finite bias and temperatures is given by Iᵢ = eh dω ⱼ fᵢ(ω) - fⱼ(ω) Gᵢⱼ(ω), where fᵢ(ω) is the Fermi distribution in lead i.\n\nKeywords\n\nnambu : whether to consider the Hamiltonian of the system is written in a Nambu basis, each site containing N electron orbitals followed by N hole orbitals.\n\nFull evaluation\n\nG(ω; params...)\n\nCompute the conductance at the specified contacts.\n\nExamples\n\njulia> # A central system g0 with two 1D leads and transparent contacts\n\njulia> glead = LP.square() |> hamiltonian(hopping(1)) |> supercell((1,0), region = r->-2 greenfunction(GS.Schur(boundary = 0));\n\njulia> g0 = LP.square() |> hamiltonian(hopping(1)) |> supercell(region = r->-2 attach(glead, reverse = true) |> attach(glead) |> greenfunction;\n\njulia> G = conductance(g0[1])\nConductance{Float64}: Zero-temperature conductance dIᵢ/dVⱼ from contacts i,j, in units of e^2/h\n Current contact : 1\n Bias contact : 1\n\njulia> G(0.2)\n2.999999999999999\n\nSee also\n\n`greenfunction`, `ldos`, `current`, `josephson`, `transmission`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.current","page":"API","title":"Quantica.current","text":"current(gs::GreenSlice; charge = -I, direction = missing)\n\nBuild Js::CurrentDensitySlice, a partially evaluated object representing the equilibrium local current density Jᵢⱼ(ω) at arbitrary energy ω from site j to site i, both taken from a specific lattice slice. The current is computed along a given direction (see Keywords).\n\ncurrent(gω::GreenSolution; charge = -I, direction = missing)\n\nBuild Jω::CurrentDensitySolution, as above, but for Jᵢⱼ(ω) at a fixed ω and arbitrary sites i, j. See also greenfunction for details on building a GreenSlice and GreenSolution.\n\nThe local current density is defined here as Jᵢⱼ(ω) = (2h) rᵢⱼ Re Tr(Hᵢⱼgⱼᵢ(ω) - gᵢⱼ(ω)Hⱼᵢ) * charge, with the integrated local current given by Jᵢⱼ = f(ω) Jᵢⱼ(ω) dω. Here Hᵢⱼ is the hopping from site j at rⱼ to i at rᵢ, rᵢⱼ = rᵢ - rⱼ, charge is the charge of carriers in orbital space (see Keywords), and gᵢⱼ(ω) is the retarded Green function between said sites.\n\nKeywords\n\ncharge : for multiorbital sites, charge can be a general matrix, which allows to compute arbitrary currents, such as spin currents.\ndirection: as defined above, Jᵢⱼ(ω) is a vector. If direction is missing the norm |Jᵢⱼ(ω)| is returned. If it is an u::Union{SVector,Tuple}, u⋅Jᵢⱼ(ω) is returned. If an n::Integer, Jᵢⱼ(ω)[n] is returned.\n\nFull evaluation\n\nJω[sites...]\nJs(ω; params...)\n\nGiven a partially evaluated Jω::CurrentDensitySolution or ρs::CurrentDensitySlice, build a sparse matrix Jᵢⱼ(ω) along the specified direction of fully evaluated local current densities.\n\nExample\n\njulia> # A semi-infinite 1D lead with a magnetic field `B`\n\njulia> g = LP.square() |> hamiltonian(@hopping((r, dr; B = 0.1) -> cis(B * dr' * SA[r[2],-r[1]]))) |> supercell((1,0), region = r->-2 greenfunction(GS.Schur(boundary = 0));\n\njulia> J = current(g[cells = SA[1]])\nCurrentDensitySlice{Float64} : current density at a fixed location and arbitrary energy\n charge : LinearAlgebra.UniformScaling{Int64}(-1)\n direction : missing\n\njulia> J(0.2; B = 0.1)\n3×3 SparseArrays.SparseMatrixCSC{Float64, Int64} with 4 stored entries:\n ⋅ 0.0290138 ⋅\n 0.0290138 ⋅ 0.0290138\n ⋅ 0.0290138 ⋅\n\njulia> J(0.2; B = 0.0)\n3×3 SparseArrays.SparseMatrixCSC{Float64, Int64} with 4 stored entries:\n ⋅ 7.77156e-16 ⋅\n 7.77156e-16 ⋅ 5.55112e-16\n ⋅ 5.55112e-16 ⋅\n\n\nSee also\n\n`greenfunction`, `ldos`, `conductance`, `josephson`, `transmission`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.energies","page":"API","title":"Quantica.energies","text":"energies(sp::Spectrum)\n\nReturns the energies in sp as a vector of Numbers (not necessarily real). Equivalent to first(sp).\n\nSee also\n\n`spectrum`, `bands`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.greenfunction","page":"API","title":"Quantica.greenfunction","text":"greenfunction(h::Union{AbstractHamiltonian,OpenHamiltonian}, solver::GreenSolver)\n\nBuild a g::GreenFunction of Hamiltonian h using solver. See GreenSolvers for available solvers. If solver is not provided, a default solver is chosen automatically based on the type of h.\n\nCurrying\n\nh |> greenfunction(solver)\n\nCurried form equivalent to greenfunction(h, solver).\n\nPartial evaluation\n\nGreenFunctions allow independent, partial evaluation of their positions (producing a GreenSlice) and energy/parameters (producing a GreenSolution). Depending on the solver, this may avoid repeating calculations unnecesarily when sweeping over either of these with the other fixed.\n\ng[ss]\ng[siteselector(; ss...)]\n\nBuild a gs::GreenSlice that represents a Green function at arbitrary energy and parameter values, but at specific sites on the lattice defined by siteselector(; ss...), with ss::NamedTuple (see siteselector).\n\ng[contact_index::Integer]\n\nBuild a GreenSlice equivalent to g[contact_sites...], where contact_sites... correspond to sites in contact number contact_index (must have 1<= contact_index <= number_of_contacts). See attach for details on attaching contacts to a Hamiltonian.\n\ng[:]\n\nBuild a GreenSlice over all contacts.\n\ng[dst, src]\n\nBuild a gs::GreenSlice between sites specified by src and dst, which can take any of the forms above. Therefore, all the previous single-index slice forms correspond to a diagonal block g[i, i].\n\ng[diagonal(i, kernel = missing)]\n\nIf kernel = missing, efficiently construct diag(g[i, i]). If kernel is a matrix, return tr(g[site, site] * kernel) over each site encoded in i. Note that if there are several orbitals per site, these will have different length (i.e. number of orbitals vs number of sites). See also diagonal.\n\ng(ω; params...)\n\nBuild a gω::GreenSolution that represents a retarded Green function at arbitrary points on the lattice, but at fixed energy ω and system parameter values param. If ω is complex, the retarded or advanced Green function is returned, depending on sign(imag(ω)). If ω is Real, a small, positive imaginary part is automatically added internally to produce the retarded g.\n\ngω[i]\ngω[i, j]\ngs(ω; params...)\n\nFor any gω::GreenSolution or gs::GreenSlice, build the Green function matrix fully evaluated at fixed energy, parameters and positions. The matrix is dense and has scalar elements, so that any orbital structure on each site is flattened.\n\nExample\n\njulia> g = LP.honeycomb() |> hamiltonian(@hopping((; t = 1) -> t)) |> supercell(region = RP.circle(10)) |> greenfunction(GS.SparseLU())\nGreenFunction{Float64,2,0}: Green function of a Hamiltonian{Float64,2,0}\n Solver : AppliedSparseLUGreenSolver\n Contacts : 0\n Contact solvers : ()\n Contact sizes : ()\n ParametricHamiltonian{Float64,2,0}: Parametric Hamiltonian on a 0D Lattice in 2D space\n Bloch harmonics : 1\n Harmonic size : 726 × 726\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 2098\n Coordination : 2.88981\n Parameters : [:t]\n\njulia> gω = g(0.1; t = 2)\nGreenSolution{Float64,2,0}: Green function at arbitrary positions, but at a fixed energy\n\njulia> ss = (; region = RP.circle(2), sublats = :B);\n\njulia> gs = g[ss]\nGreenSlice{Float64,2,0}: Green function at arbitrary energy, but at a fixed lattice positions\n\njulia> gω[ss] == gs(0.1; t = 2)\ntrue\n\nSee also\n\n`GreenSolvers`, `diagonal`, `ldos`, `conductance`, `current`, `josephson`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.hamiltonian","page":"API","title":"Quantica.hamiltonian","text":"hamiltonian(lat::Lattice, model; orbitals = 1)\n\nCreate a Hamiltonian or ParametricHamiltonian by applying model to the lattice lat (see onsite, @onsite, hopping and @hopping for details on building tight-binding models).\n\nhamiltonian(lat::Lattice, model, modifiers...; orbitals = 1)\nhamiltonian(h::AbstractHamiltonian, modifiers...; orbitals = 1)\n\nCreate a ParametricHamiltonian where all onsite and hopping terms in model can be parametrically modified through the provided modifiers (see @onsite! and @hopping! for details on defining modifiers).\n\nKeywords\n\norbitals: number of orbitals per sublattice. If an Integer (or a Val{<:Integer} for type-stability), all sublattices will have the same number of orbitals. A collection of values indicates the orbitals on each sublattice.\n\nCurrying\n\nlat |> hamiltonian(model[, modifiers...]; kw...)\n\nCurried form of hamiltonian equivalent to hamiltonian(lat, model, modifiers...; kw...).\n\nlat |> model\n\nAlternative and less general curried form equivalent to hamiltonian(lat, model).\n\nh |> modifier\n\nAlternative and less general curried form equivalent to hamiltonian(h, modifier).\n\nIndexing\n\nh[dn::SVector{L,Int}]\nh[dn::NTuple{L,Int}]\n\nReturn the Bloch harmonic of an h::AbstractHamiltonian in the form of a SparseMatrixCSC with complex scalar eltype. This matrix is \"flat\", in the sense that it contains matrix elements between indivisual orbitals, not sites. This distinction is only relevant for multiorbital Hamiltonians. To access the non-flattened matrix use h[unflat(dn)] (see also unflat).\n\nh[()]\n\nSpecial syntax equivalent to h[(0...)], which access the fundamental Bloch harmonic.\n\nCall syntax\n\nph(; params...)\n\nReturn a h::Hamiltonian from a ph::ParametricHamiltonian by applying specific values to its parameters params. If ph is a non-parametric Hamiltonian instead, this is a no-op.\n\nh(φs; params...)\n\nReturn the flat, sparse Bloch matrix of h::AbstractHamiltonian at Bloch phases φs, with applied parameters params if h is a ParametricHamiltonian. The Bloch matrix is defined as\n\n H = ∑_dn exp(-im φs⋅dn) H_dn\n\nwhere H_dn = h[dn] is the dn flat Bloch harmonic of h, and φs[i] = k⋅aᵢ in terms of the wavevector k and the Bravais vectors aᵢ.\n\nExamples\n\njulia> h = hamiltonian(LP.honeycomb(), hopping(SA[0 1; 1 0], range = 1/√3), orbitals = 2)\nHamiltonian{Float64,2,2}: Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 5\n Harmonic size : 2 × 2\n Orbitals : [2, 2]\n Element type : 2 × 2 blocks (ComplexF64)\n Onsites : 0\n Hoppings : 6\n Coordination : 3.0\n\njulia> h((0,0))\n4×4 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 8 stored entries:\n ⋅ ⋅ 0.0+0.0im 3.0+0.0im\n ⋅ ⋅ 3.0+0.0im 0.0+0.0im\n 0.0+0.0im 3.0+0.0im ⋅ ⋅\n 3.0+0.0im 0.0+0.0im ⋅ ⋅\n\nSee also\n\n`lattice`, `onsite`, `hopping`, `@onsite`, `@hopping`, `@onsite!`, `@hopping!`, `ishermitian`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.hopping","page":"API","title":"Quantica.hopping","text":"hopping(t; hops...)\nhopping((r, dr) -> t(r, dr); hops...)\n\nBuild a TighbindingModel representing a uniform or a position-dependent hopping amplitude, respectively, on hops selected by hopselector(; hops...) (see hopselector for details).\n\nHops from a site at position r₁ to another at r₂ are described using the hop center r = (r₁ + r₂)/2 and the hop vector dr = r₂ - r₁. Hopping amplitudes t can be a Number (for hops between single-orbital sites), a UniformScaling (e.g. 2I) or an AbstractMatrix (use SMatrix for performance) of dimensions matching the number of orbitals in the selected sites. Models may be applied to a lattice lat to produce an Hamiltonian with hamiltonian(lat, model; ...), see hamiltonian. Position dependent models are forced to preserve the periodicity of the lattice.\n\nhopping(m::Union{TighbindingModel,ParametricModel}; hops...)\n\nConvert m into a new model with just hopping terms acting on hops.\n\nModel algebra\n\nModels can be combined using +, - and *, or conjugated with ', e.g. onsite(1) - 2 * hopping(1)'.\n\nExamples\n\njulia> model = hopping((r, dr) -> cis(dot(SA[r[2], -r[1]], dr)); dcells = (0,0)) + onsite(r -> rand())\nTightbindingModel: model with 2 terms\n HoppingTerm{Function}:\n Region : any\n Sublattice pairs : any\n Cell distances : (0, 0)\n Hopping range : Neighbors(1)\n Reverse hops : false\n Coefficient : 1\n OnsiteTerm{Function}:\n Region : any\n Sublattices : any\n Cells : any\n Coefficient : 1\n\njulia> LP.honeycomb() |> supercell(2) |> hamiltonian(model)\nHamiltonian{Float64,2,2}: Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 1\n Harmonic size : 8 × 8\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 8\n Hoppings : 16\n Coordination : 2.0\n\nSee also\n\n`onsite`, `@onsite`, `@hopping`, `@onsite!`, `@hopping!`, `hamiltonian`, `plusadjoint`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.hopselector","page":"API","title":"Quantica.hopselector","text":"hopselector(; range = neighbors(1), dcells = missing, sublats = missing, region = missing)\n\nReturn a HopSelector object that can be used to select a finite set of hops between sites in a lattice. Hops between two sites at positions r₁ = r - dr/2 and r₂ = r + dr, belonging to unit cells with a cell distance dn::SVector{L,Int} and to a sublattices with names s₁::Symbol and s₂::Symbol will be selected only if\n\n`region(r, dr) && (s₁ => s₂ in sublats) && (dcell in dcells) && (norm(dr) <= range)`\n\nIf any of these is missing it will not be used to constraint the selection.\n\nGeneralization\n\nWhile range is usually a Real, and sublats and dcells are usually collections of Pair{Symbol}s and SVectors, respectively, they also admit other possibilities:\n\nsublats = :A # Hops from :A to :A\nsublats = :A => :B # Hops from :A to :B sublattices, but not from :B to :A\nsublats = (:A => :B,) # Same as above\nsublats = (:A => :B, :C => :D) # Hopping from :A to :B or :C to :D\nsublats = (:A, :C) .=> (:B, :D) # Broadcasted pairs, same as above\nsublats = (:A, :C) => (:B, :D) # Direct product, (:A=>:B, :A=>:D, :C=>:B, :C=>D)\nsublats = 1 => 2 # Hops from 1st to 2nd sublat. All the above patterns also admit Ints\nsublats = (spec₁, spec₂, ...) # Hops matching any of the specs with any of the above forms\n\ndcells = dn::SVector{L,Integer} # Hops between cells separated by `dn`\ndcells = dn::NTuple{L,Integer} # Hops between cells separated by `SVector(dn)`\ndcells = f::Function # Hops between cells separated by `dn` such that `f(dn) == true`\n\nrange = neighbors(n) # Hops within the `n`-th nearest neighbor distance in the lattice\nrange = (min, max) # Hops at distance inside the `[min, max]` closed interval (bounds can also be `neighbors(n)`)\n\nUsage\n\nAlthough the constructor hopselector(; kw...) is exported, the end user does not usually need to call it directly. Instead, the keywords kw are input into different functions that allow filtering hops, which themselves call hopselector internally as needed. Some of these functions are\n\n- hopping(...; kw...) : hopping model term to be applied to site pairs specified by `kw`\n- @hopping(...; kw...) : parametric hopping model term to be applied to site pairs specified by `kw`\n- @hopping!(...; kw...) : hopping modifier to be applied to site pairs specified by `kw`\n\nExamples\n\njulia> h = LP.honeycomb() |> hamiltonian(hopping(1, range = neighbors(2), sublats = (:A, :B) .=> (:A, :B)))\nHamiltonian{Float64,2,2}: Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 7\n Harmonic size : 2 × 2\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 12\n Coordination : 6.0\n\njulia> h = LP.honeycomb() |> hamiltonian(hopping(1, range = (neighbors(2), neighbors(3)), sublats = (:A, :B) => (:A, :B)))\nHamiltonian{Float64,2,2}: Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 9\n Harmonic size : 2 × 2\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 18\n Coordination : 9.0\n\nSee also\n\n`siteselector`, `lattice`, `hopping`, `@hopping`, `@hopping!`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.josephson","page":"API","title":"Quantica.josephson","text":"josephson(gs::GreenSlice, ωmax; kBT = 0.0, phases = missing, imshift = missing, slope = 1, post = real, atol = 1e-7, quadgk_opts...)\n\nFor a gs = g[i::Integer] slice of the g::GreenFunction of a hybrid junction, build a partially evaluated object J::Integrator representing the equilibrium (static) Josephson current I_J flowing into g through contact i, integrated from -ωmax to ωmax (or from -ωmax to 0 at zero temperature kBT = 0). The result of I_J is given in units of qe/h (q is the dimensionless carrier charge). I_J can be written as I_J = Re dω f(ω) j(ω), where j(ω) = (qeh) 2Tr(ΣʳᵢGʳ - GʳΣʳᵢ)τz.\n\nFull evaluation\n\nJ(; params...)\n\nEvaluate the Josephson current I_J for the given g parameters params, if any.\n\nKeywords\n\nkBT : temperature in same energy units as the Hamiltonian\nphases : collection of superconducting phase biases to apply to the contact, so as to efficiently compute the full current-phase relation [I_J(ϕ) for ϕ in phases]. Note that each phase bias ϕ is applied by a [cis(-ϕ/2) 0; 0 cis(ϕ/2)] rotation to the self energy, which is almost free. If missing, a single I_J is returned.\nimshift: if missing the initial and final integration points ± ωmax are shifted by im * sqrt(eps(ωmax)), to avoid the real axis. Otherwise a shift im*imshift is applied (may be zero if ωmax is greater than the bandwidth).\nslope: if non-zero, the integration will be performed along a piecewise-linear path in the complex plane (-ωmax, -ωmax/2 * (1+slope*im), 0, ωmax/2 * (1+slope*im), ωmax), taking advantage of the holomorphic integrand f(ω) j(ω) and the Cauchy Integral Theorem for faster convergence.\npost: function to apply to the result of ∫ dω f(ω) j(ω) to obtain the result, post = real by default.\natol: absolute integration tolerance. The default 1e-7 is chosen to avoid excessive integration times when the current is actually zero.\nquadgk_opts : extra keyword arguments (other than atol) to pass on to the function QuadGK.quadgk that is used for the integration.\n\nExamples\n\njulia> glead = LP.square() |> hamiltonian(onsite(0.0005 * SA[0 1; 1 0]) + hopping(SA[1 0; 0 -1]), orbitals = 2) |> supercell((1,0), region = r->-2 greenfunction(GS.Schur(boundary = 0));\n\njulia> g0 = LP.square() |> hamiltonian(hopping(SA[1 0; 0 -1]), orbitals = 2) |> supercell(region = r->-2 attach(glead, reverse = true) |> attach(glead) |> greenfunction;\n\njulia> J = josephson(g0[1], 4; phases = subdiv(0, pi, 10))\nIntegrator: Complex-plane integrator\n Integration path : (-4.0 + 1.4901161193847656e-8im, -2.0 + 2.000000014901161im, 0.0 + 1.4901161193847656e-8im)\n Integration options : ()\n Integrand: :\n JosephsonDensity{Float64} : Equilibrium (dc) Josephson current observable before integration over energy\n kBT : 0.0\n Contact : 1\n Number of phase shifts : 10\n\njulia> J()\n10-element Vector{Float64}:\n -6.751348391359149e-16\n 0.0016315088241546964\n 0.003213820056117238\n 0.004699191781510955\n 0.0060427526322931946\n 0.0072038354411029185\n 0.008147188939639644\n 0.008844017741703502\n 0.009272686515034255\n -1.7744618723033526e-12\n\nSee also\n\n`greenfunction`,`ldos`, `current`, `conductance`, `transmission`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.lattice","page":"API","title":"Quantica.lattice","text":"lattice(sublats::Sublat...; bravais = (), dim, type, names)\nlattice(sublats::AbstractVector{<:Sublat}; bravais = (), dim, type, names)\n\nCreate a Lattice{T,E,L} from sublattices sublats, where L is the number of Bravais vectors given by bravais, T = type is the AbstractFloat type of spatial site coordinates, and dim = E is the spatial embedding dimension.\n\nlattice(lat::Lattice; bravais = missing, dim = missing, type = missing, names = missing)\n\nCreate a new lattice by applying any non-missing keywords to lat.\n\nlattice(x)\n\nReturn the parent lattice of object x, of type e.g. LatticeSlice, Hamiltonian, etc.\n\nKeywords\n\nbravais: a collection of one or more Bravais vectors of type NTuple{E} or SVector{E}. It can also be an AbstractMatrix of dimension E×L. The default bravais = () corresponds to a bounded lattice with no Bravais vectors.\nnames: a collection of Symbols. Can be used to rename sublats. Any repeated names will be replaced if necessary by :A, :B etc. to ensure that all sublattice names are unique.\n\nIndexing\n\nlat[kw...]\n\nIndexing into a lattice lat with keywords returns LatticeSlice representing a finite collection of sites selected by siteselector(; kw...). See siteselector for details on possible kw, and sites to obtain site positions.\n\nlat[]\n\nSpecial case equivalent to lat[cells = (0,...)] that returns a LatticeSlice of the zero-th unitcell.\n\nExamples\n\njulia> lat = lattice(sublat((0, 0)), sublat((0, 1)); bravais = (1, 0), type = Float32, dim = 3, names = (:up, :down))\nLattice{Float32,3,1} : 1D lattice in 3D space\n Bravais vectors : Vector{Float32}[[1.0, 0.0, 0.0]]\n Sublattices : 2\n Names : (:up, :down)\n Sites : (1, 1) --> 2 total per unit cell\n\njulia> lattice(lat; type = Float64, names = (:A, :B), dim = 2)\nLattice{Float64,2,1} : 1D lattice in 2D space\n Bravais vectors : [[1.0, 0.0]]\n Sublattices : 2\n Names : (:A, :B)\n Sites : (1, 1) --> 2 total per unit cell\n\nSee also\n\n`LatticePresets`, `sublat`, `sites`, `supercell`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.ldos","page":"API","title":"Quantica.ldos","text":"ldos(gs::GreenSlice; kernel = I)\n\nBuild ρs::LocalSpectralDensitySlice, a partially evaluated object representing the local density of states ρᵢ(ω) at specific sites i but at arbitrary energy ω.\n\nldos(gω::GreenSolution; kernel = I)\n\nBuild ρω::LocalSpectralDensitySolution, as above, but for ρᵢ(ω) at a fixed ω and arbitrary sites i. See also greenfunction for details on building a GreenSlice and GreenSolution.\n\nThe local density of states is defined here as ρᵢ(ω) = -Tr(gᵢᵢ(ω))π, where gᵢᵢ(ω) is the retarded Green function at a given site i.\n\nKeywords\n\nkernel : for multiorbital sites, kernel allows to compute a generalized ldos ρᵢ(ω) = -Tr(gᵢᵢ(ω) * kernel)/π, where gᵢᵢ(ω) is the retarded Green function at site i and energy ω. If kernel = missing, the complete, orbital-resolved ldos is returned.\n\nFull evaluation\n\nρω[sites...]\nρs(ω; params...)\n\nGiven a partially evaluated ρω::LocalSpectralDensitySolution or ρs::LocalSpectralDensitySlice, build a vector [ρ₁(ω), ρ₂(ω)...] of fully evaluated local densities of states.\n\nExample\n\njulia> g = HP.graphene(a0 = 1, t0 = 1) |> supercell(region = RP.circle(20)) |> attach(nothing, region = RP.circle(1)) |> greenfunction(GS.KPM(order = 300, bandrange = (-3.1, 3.1)))\nGreenFunction{Float64,2,0}: Green function of a Hamiltonian{Float64,2,0}\n Solver : AppliedKPMGreenSolver\n Contacts : 1\n Contact solvers : (SelfEnergyEmptySolver,)\n Contact sizes : (6,)\n Hamiltonian{Float64,2,0}: Hamiltonian on a 0D Lattice in 2D space\n Bloch harmonics : 1\n Harmonic size : 2898 × 2898\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 8522\n Coordination : 2.94065\n\njulia> ldos(g(0.2))[1]\n6-element Vector{Float64}:\n 0.036802204179316955\n 0.034933055722650375\n 0.03493305572265026\n 0.03493305572265034\n 0.03493305572265045\n 0.036802204179317045\n\njulia> ldos(g(0.2))[1] == -imag.(g[diagonal(1; kernel = I)](0.2)) ./ π\ntrue\n\nSee also\n\n`greenfunction`, `diagonal`, `current`, `conductance`, `josephson`, `transmission`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.neighbors","page":"API","title":"Quantica.neighbors","text":"neighbors(n::Int)\n\nCreate a Neighbors(n) object that represents a hopping range to distances corresponding to the n-th nearest neighbors in a given lattice, irrespective of their sublattice. Neighbors at equal distance do not count towards n.\n\nneighbors(n::Int, lat::Lattice)\n\nObtain the actual nth-nearest-neighbot distance between sites in lattice lat.\n\nSee also\n\n`hopping`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.onsite","page":"API","title":"Quantica.onsite","text":"onsite(o; sites...)\nonsite(r -> o(r); sites...)\n\nBuild a TighbindingModel representing a uniform or a position-dependent onsite potential, respectively, on sites selected by siteselector(; sites...) (see siteselector for details).\n\nSite positions are r::SVector{E}, where E is the embedding dimension of the lattice. The onsite potential o can be a Number (for single-orbital sites), a UniformScaling (e.g. 2I) or an AbstractMatrix (use SMatrix for performance) of dimensions matching the number of orbitals in the selected sites. Models may be applied to a lattice lat to produce a Hamiltonian with hamiltonian(lat, model; ...), see hamiltonian. Position dependent models are forced to preserve the periodicity of the lattice.\n\nonsite(m::{TighbindingModel,ParametricModel}; sites...)\n\nConvert m into a new model with just onsite terms acting on sites.\n\nModel algebra\n\nModels can be combined using +, - and *, or conjugated with ', e.g. onsite(1) - 2 * hopping(1)'.\n\nExamples\n\njulia> model = onsite(r -> norm(r) * SA[0 1; 1 0]; sublats = :A) - hopping(I; range = 2)\nTightbindingModel: model with 2 terms\n OnsiteTerm{Function}:\n Region : any\n Sublattices : A\n Cells : any\n Coefficient : 1\n HoppingTerm{LinearAlgebra.UniformScaling{Bool}}:\n Region : any\n Sublattice pairs : any\n Cell distances : any\n Hopping range : 2.0\n Reverse hops : false\n Coefficient : -1\n\njulia> LP.cubic() |> supercell(4) |> hamiltonian(model, orbitals = 2)\nHamiltonian{Float64,3,3}: Hamiltonian on a 3D Lattice in 3D space\n Bloch harmonics : 27\n Harmonic size : 64 × 64\n Orbitals : [2]\n Element type : 2 × 2 blocks (ComplexF64)\n Onsites : 64\n Hoppings : 2048\n Coordination : 32.0\n\nSee also\n\n`hopping`, `@onsite`, `@hopping`, `@onsite!`, `@hopping!`, `hamiltonian`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.plusadjoint","page":"API","title":"Quantica.plusadjoint","text":"plusadjoint(t::Model)\n\nReturns a model t + t'. This is a convenience function analogous to the + h.c. notation.\n\nExample\n\njulia> model = hopping(im, sublats = :A => :B) |> plusadjoint\nTightbindingModel: model with 2 terms\n HoppingTerm{Complex{Bool}}:\n Region : any\n Sublattice pairs : :A => :B\n Cell distances : any\n Hopping range : Neighbors(1)\n Reverse hops : false\n Coefficient : 1\n HoppingTerm{Complex{Int64}}:\n Region : any\n Sublattice pairs : :A => :B\n Cell distances : any\n Hopping range : Neighbors(1)\n Reverse hops : true\n Coefficient : 1\n\njulia> h = hamiltonian(LP.honeycomb(), model)\nHamiltonian{Float64,2,2}: Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 5\n Harmonic size : 2 × 2\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 6\n Coordination : 3.0\n\njulia> h((0,0))\n2×2 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 2 stored entries:\n ⋅ 0.0-3.0im\n 0.0+3.0im ⋅\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.sites","page":"API","title":"Quantica.sites","text":"sites(lat::Lattice[, sublat])\n\nReturn a collection of site positions in the unit cell of lattice lat. If a sublat::Symbol or sublat::Int is specified, only sites for the specified sublattice are returned.\n\nsites(ls::LatticeSlice)\n\nReturn a collection of positions of a LatticeSlice, generally obtained by indexing a lattice lat[sel...] with some siteselector keywords sel. See also lattice.\n\nNote: the returned collections can be of different types (vectors, generators, views...)\n\nExamples\n\njulia> sites(LatticePresets.honeycomb(), :A)\n1-element view(::Vector{SVector{2, Float64}}, 1:1) with eltype SVector{2, Float64}:\n [0.0, -0.2886751345948129]\n\nSee also\n\n`lattice`, `siteselector`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.siteselector","page":"API","title":"Quantica.siteselector","text":"siteselector(; region = missing, sublats = missing, cells = missing)\n\nReturn a SiteSelector object that can be used to select a finite set of sites in a lattice. Sites at position r::SVector{E}, belonging to a cell of index n::SVector{L,Int} and to a sublattice with name s::Symbol will be selected only if\n\n`region(r) && s in sublats && n in cells`\n\nAny missing region, sublat or cells will not be used to constraint the selection.\n\nGeneralization\n\nWhile sublats and cells are usually collections of Symbols and SVectors, respectively, they also admit other possibilities:\n\nIf either cells or sublats are a single cell or sublattice, they will be treated as single-element collections\nIf sublat is a collection of Integers, it will refer to sublattice numbers.\nIf cells is an i::Integer, it will be converted to an SVector{1}\nIf cells is a collection, each element will be converted to an SVector.\nIf cells is a boolean function, n in cells will be the result of cells(n)\n\nUsage\n\nAlthough the constructor siteselector(; kw...) is exported, the end user does not usually need to call it directly. Instead, the keywords kw are input into different functions that allow filtering sites, which themselves call siteselector internally as needed. Some of these functions are\n\ngetindex(lat::Lattice; kw...) : return a LatticeSlice with sites specified by kw (also lat[kw...])\nsupercell(lat::Lattice; kw...) : returns a bounded lattice with the sites specified by kw\nonsite(...; kw...) : onsite model term to be applied to sites specified by kw\n@onsite!(...; kw...) : onsite modifier to be applied to sites specified by kw\n\nSee also\n\n`hopselector`, `lattice`, `supercell`, `onsite`, `@onsite`, `@onsite!`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.spectrum","page":"API","title":"Quantica.spectrum","text":"spectrum(h::AbstractHamiltonian, ϕs; solver = EigenSolvers.LinearAlgebra(), transform = missing, params...)\n\nCompute the Spectrum of the Bloch matrix h(ϕs; params...) using the specified eigensolver, with transform applied to the resulting eigenenergies, if not missing. Eigenpairs are sorted by the real part of their energy. See EigenSolvers for available solvers and their options.\n\nspectrum(h::AbstractHamiltonian; kw...)\n\nFor a 0D h, equivalent to spectrum(h, (); kw...)\n\nspectrum(m::AbstractMatrix; solver = EigenSolvers.LinearAlgebra()], transform = missing)\n\nCompute the Spectrum of matrix m using solver and transform.\n\nspectrum(b::Bandstructure, ϕs)\n\nCompute the Spectrum corresponding to slicing the bandstructure b at point ϕs of its base mesh (see bands for details).\n\nIndexing and destructuring\n\nEigenenergies ϵs::Tuple and eigenstates ψs::Matrix can be extracted from a spectrum sp using any of the following\n\nϵs, ψs = sp\nϵs = first(sp)\nϵs = energies(sp)\nψs = last(sp)\nψs = states(sp)\n\nIn addition, one can extract the n eigenpairs closest (in real energy) to a given energy ϵ₀ with\n\nϵs, ψs = sp[1:n, around = ϵ₀]\n\nMore generally, sp[inds, around = ϵ₀] will take the eigenpairs at position given by inds after sorting by increasing distance to ϵ₀, or the closest eigenpair in inds is missing. If around is omitted, the ordering in sp is used.\n\nExamples\n\njulia> h = HP.graphene(t0 = 1); spectrum(h, (0,0))\nSpectrum{Float64,ComplexF64} :\nEnergies:\n2-element Vector{ComplexF64}:\n -2.9999999999999982 + 0.0im\n 2.9999999999999982 + 0.0im\nStates:\n2×2 Matrix{ComplexF64}:\n -0.707107+0.0im 0.707107+0.0im\n 0.707107+0.0im 0.707107+0.0im\n\nSee also\n\n`EigenSolvers`, `bands`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.states","page":"API","title":"Quantica.states","text":"states(sp::Spectrum)\n\nReturns the eigenstates in sp as columns of a matrix. Equivalent to last(sp).\n\nSee also\n\n`spectrum`, `bands`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.subdiv","page":"API","title":"Quantica.subdiv","text":"subdiv((x₁, x₂, ..., xₙ), (p₁, p₂, ..., pₙ₋₁))\n\nBuild a vector of values between x₁ and xₙ containing all xᵢ such that in each interval [xᵢ, xᵢ₊₁] there are pᵢ equally space values.\n\nsubdiv((x₁, x₂, ..., xₙ), p)\n\nSame as above with all pᵢ = p\n\nsubdiv(x₁, x₂, p)\n\nEquivalent to subdiv((x₁, x₂), p) == collect(range(x₁, x₂, length = p))\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.sublat","page":"API","title":"Quantica.sublat","text":"sublat(sites...; name::Symbol = :A)\nsublat(sites::AbstractVector; name::Symbol = :A)\n\nCreate a Sublat{E,T} that adds a sublattice, of name name, with sites at positions sites in E dimensional space. Sites positions can be entered as Tuples or SVectors.\n\nExamples\n\njulia> sublat((0.0, 0), (1, 1), (1, -1), name = :A)\nSublat{2,Float64} : sublattice of Float64-typed sites in 2D space\n Sites : 3\n Name : :A\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.supercell","page":"API","title":"Quantica.supercell","text":"supercell(lat::Lattice{E,L}, v::NTuple{L,Integer}...; seed = missing, kw...)\nsupercell(lat::Lattice{E,L}, uc::SMatrix{L,L´,Int}; seed = missing, kw...)\n\nGenerate a new Lattice from an L-dimensional lattice lat with a larger unit cell, such that its Bravais vectors are br´= br * uc. Here uc::SMatrix{L,L´,Int} is the integer supercell matrix, with the L´ vectors vs as its columns. If no v are given, the new lattice will have no Bravais vectors (i.e. it will be bounded, with its shape determined by keywords kw...). Likewise, if L´ < L, the resulting lattice will be bounded along L´ - L directions, as dictated by kw....\n\nOnly sites selected by siteselector(; kw...) will be included in the supercell (see siteselector for details on the available keywords kw). If no keyword region is given in kw, a single Bravais unit cell perpendicular to the v axes will be selected along the L-L´ bounded directions.\n\nsupercell(lattice::Lattice{E,L}, factors::Integer...; seed = missing, kw...)\n\nCall supercell with different scaling along each Bravais vector, so that supercell matrix uc is Diagonal(factors). If a single factor is given, uc = SMatrix{L,L}(factor * I)\n\nsupercell(h::Hamiltonian, v...; mincoordination = 0, seed = missing, kw...)\n\nTransform the Lattice of h to have a larger unit cell, while expanding the Hamiltonian accordingly.\n\nKeywords\n\nseed::NTuple{L,Integer}: starting cell index to perform search of included sites. By default seed = missing, which makes search start from the zero-th cell.\nmincoordination::Integer: minimum number of nonzero hopping neighbors required for sites to be included in the supercell. Sites with less coordination will be removed recursively, until all remaining sites satisfy mincoordination.\n\nCurrying\n\nlat_or_h |> supercell(v...; kw...)\n\nCurried syntax, equivalent to supercell(lat_or_h, v...; kw...)\n\nExamples\n\njulia> LatticePresets.square() |> supercell((1, 1), region = r -> 0 < r[1] < 5)\nLattice{Float64,2,1} : 1D lattice in 2D space\n Bravais vectors : [[1.0, 1.0]]\n Sublattices : 1\n Names : (:A,)\n Sites : (8,) --> 8 total per unit cell\n\njulia> LatticePresets.honeycomb() |> supercell(3)\nLattice{Float64,2,2} : 2D lattice in 2D space\n Bravais vectors : [[1.5, 2.598076], [-1.5, 2.598076]]\n Sublattices : 2\n Names : (:A, :B)\n Sites : (9, 9) --> 18 total per unit cell\n\nSee also\n\n`supercell`, `siteselector`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.transform","page":"API","title":"Quantica.transform","text":"transform(lat_or_h::Union{Lattice,AbstractHamiltonian}, f::Function)\n\nBuild a new lattice or hamiltonian transforming each site positions r into f(r).\n\nCurrying\n\nx |> transform(f::Function)\n\nCurried version of transform, equivalent to transform(f, x)\n\nNote: Unexported Quantica.transform! is also available for in-place transforms. Use with care, as aliasing (i.e. several objects sharing the modified one) can produce unexpected results.\n\nExamples\n\njulia> LatticePresets.square() |> transform(r -> 3r)\nLattice{Float64,2,2} : 2D lattice in 2D space\n Bravais vectors : [[3.0, 0.0], [0.0, 3.0]]\n Sublattices : 1\n Names : (:A,)\n Sites : (1,) --> 1 total per unit cell\n\nSee also\n\n`translate`, `reverse`, `reverse!`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.translate","page":"API","title":"Quantica.translate","text":"translate(lat::Lattice, δr)\n\nBuild a new lattice translating each site positions from r to r + δr, where δr can be a NTuple or an SVector in embedding space.\n\nCurrying\n\nx |> translate(δr)\n\nCurried version of translate, equivalent to translate(x, δr)\n\nNote: Unexported Quantica.translate! is also available for in-place translations. Use with care, as aliasing (i.e. several objects sharing the modified one) can produce unexpected results.\n\nExamples\n\njulia> LatticePresets.square() |> translate((3,3)) |> sites\n1-element Vector{SVector{2, Float64}}:\n [3.0, 3.0]\n\n\nSee also\n\n`transform`, `reverse`, `reverse!`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.transmission","page":"API","title":"Quantica.transmission","text":"transmission(gs::GreenSlice)\n\nGiven a slice gs = g[i::Integer, j::Integer] of a g::GreenFunction, build a partially evaluated object T::Transmission representing the normal transmission probability Tᵢⱼ(ω) from contact j to i at energy ω. It can be written as Tᵢⱼ = TrgʳΓⁱgᵃΓʲ. Here gʳ = g(ω) and gᵃ = (gʳ)' = g(ω') are the retarded and advanced Green function of the system, and Γⁱ = im * (Σⁱ - Σⁱ') is the decay rate at contact i\n\nFull evaluation\n\nT(ω; params...)\n\nCompute the transmission Tᵢⱼ(ω) at a given ω and for the specified params of g.\n\nExamples\n\njulia> # A central system g0 with two 1D leads and transparent contacts\n\njulia> glead = LP.honecycomb() |> hamiltonian(hopping(1)) |> supercell((1,-1), region = r->-2 greenfunction(GS.Schur(boundary = 0));\n\njulia> g0 = LP.honecycomb() |> hamiltonian(hopping(1)) |> supercell(region = r->-2 attach(glead, reverse = true) |> attach(glead) |> greenfunction;\n\njulia> T = transmission(g0[2, 1])\nTransmission: total transmission probability between two different contacts\n From contact : 1\n To contact : 2\n\njulia> T(0.2) # The difference from 3 is due to the automatic `im*sqrt(eps(Float64))` added to `ω`\n2.9999999410323537\n\njulia> T(0.2 + 0.00000000000001im)\n2.999999999999961\n\nSee also\n\n`greenfunction`, `conductance`, `ldos`, `current`, `josephson`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.unflat","page":"API","title":"Quantica.unflat","text":"unflat(dn)\n\nConstruct an u::Unflat object wrapping some indices dn. This object is meant to be used to index into a h::AbstractHamiltonian as h[u], which returns an non-flattened version of the Bloch harmonic h[dn]. Each element in the matrix h[u] is an SMatrix block representing onsite or hoppings between whole sites, in contrast to h[dn] where they are scalars representing single orbitals. This is only relevant for multi-orbital Hamiltonians h.\n\nunflat()\n\nEquivalent to unflat(())\n\nExamples\n\njulia> h = HP.graphene(orbitals = 2); h[unflat(0,0)])\n2×2 SparseArrays.SparseMatrixCSC{SMatrix{2, 2, ComplexF64, 4}, Int64} with 2 stored entries:\n ⋅ [2.7+0.0im 0.0+0.0im; 0.0+0.0im 2.7+0.0im]\n [2.7+0.0im 0.0+0.0im; 0.0+0.0im 2.7+0.0im] ⋅\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.wrap","page":"API","title":"Quantica.wrap","text":"wrap(h::AbstractHamiltonian, (ϕ₁, ϕ₂,...))\n\nFor an h of lattice dimension L and a set of L Bloch phases ϕ = (ϕ₁, ϕ₂,...), contruct a new zero-dimensional h´::AbstractHamiltonian for all Bravais vectors have been eliminated by wrapping the lattice onto itself along the corresponding Bravais vector. Intercell hoppings along wrapped directions will pick up a Bloch phase exp(-iϕ⋅dn).\n\nIf a number L´ of phases ϕᵢ are : instead of numbers, the corresponding Bravais vectors will not be wrapped, and the resulting h´ will have a finite lattice dimension L´.\n\nCurrying\n\nh |> wrap((ϕ₁, ϕ₂,...))\n\nCurrying syntax equivalent to wrap(h, (ϕ₁, ϕ₂,...)).\n\nExamples\n\njulia> h2D = HP.graphene(); h1D = wrap(h2D, (:, 0.2))\nHamiltonian{Float64,2,1}: Hamiltonian on a 1D Lattice in 2D space\n Bloch harmonics : 3\n Harmonic size : 2 × 2\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 4\n Coordination : 2.0\n\njulia> h2D((0.3, 0.2)) ≈ h1D(0.3)\ntrue\n\nSee also\n\n`hamiltonian`, `supercell`\n\n\n\n\n\n","category":"function"},{"location":"api/#Quantica.@hopping","page":"API","title":"Quantica.@hopping","text":"@hopping((; params...) -> t(; params...); hops...)\n@hopping((r, dr; params...) -> t(r; params...); hops...)\n\nBuild a ParametricModel representing a uniform or a position-dependent hopping amplitude, respectively, on hops selected by hopselector(; hops...) (see hopselector for details).\n\nHops from a site at position r₁ to another at r₂ are described using the hop center r = (r₁ + r₂)/2 and the hop vector dr = r₂ - r₁. Hopping amplitudes t can be a Number (for hops between single-orbital sites), a UniformScaling (e.g. 2I) or an AbstractMatrix (use SMatrix for performance) of dimensions matching the number of site orbitals in the selected sites. Parametric models may be applied to a lattice lat to produce a ParametricHamiltonian with hamiltonian(lat, model; ...), see hamiltonian. Position dependent models are forced to preserve the periodicity of the lattice.\n\nThe difference between regular and parametric tight-binding models (see onsite and hopping) is that parametric models may depend on arbitrary parameters, specified by the params keyword arguments. These are inherited by h::ParametricHamiltonian, which can then be evaluated very efficiently for different parameter values by callling h(; params...), to obtain a regular Hamiltonian without reconstructing it from scratch.\n\n@hopping((ω; params...) -> Σᵢⱼ(ω; params...); hops...)\n@hopping((ω, r, dr; params...) -> Σᵢⱼ(ω, r, dr; params...); hops...)\n\nSpecial form of a parametric hopping amplitude meant to model a self-energy (see attach).\n\nModel algebra\n\nParametric models can be combined using +, - and *, or conjugated with ', e.g. @onsite((; o=1) -> o) - 2 * hopping(1)'. The combined parametric models can share parameters.\n\nExamples\n\njulia> model = @hopping((r, dr; t = 1, A = Returns(SA[0,0])) -> t * cis(-dr' * A(r)))\nParametricModel: model with 1 term\n ParametricHoppingTerm{ParametricFunction{2}}\n Region : any\n Sublattice pairs : any\n Cell distances : any\n Hopping range : Neighbors(1)\n Reverse hops : false\n Coefficient : 1\n Parameters : [:t, :A]\n\njulia> LP.honeycomb() |> supercell(2) |> hamiltonian(model)\nParametricHamiltonian{Float64,2,2}: Parametric Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 5\n Harmonic size : 8 × 8\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 24\n Coordination : 3.0\n Parameters : [:A, :t]\n\nSee also\n\n`onsite`, `hopping`, `@onsite`, `@onsite!`, `@hopping!`, `attach`, `hamiltonian`\n\n\n\n\n\n","category":"macro"},{"location":"api/#Quantica.@hopping!","page":"API","title":"Quantica.@hopping!","text":"@hopping!((t; params...) -> t´(t; params...); hops...)\n@hopping!((t, r, dr; params...) -> t´(t, r, dr; params...); hops...)\n\nBuild a uniform or position-dependent hopping term modifier, respectively, acting on hops selected by hopselector(; hops...) (see hopselector for details).\n\nHops from a site at position r₁ to another at r₂ are described using the hop center r = (r₁ + r₂)/2 and the hop vector dr = r₂ - r₁. The original hopping amplitude is t, and the modified hopping is t´, which is a function of t and possibly r, dr. It may optionally also depend on parameters, enconded in params.\n\nModifiers are meant to be applied to an h:AbstractHamiltonian to obtain a ParametricHamiltonian (with hamiltonian(h, modifiers...) or hamiltonian(lat, model, modifiers...), see hamiltonian). Modifiers will affect only pre-existing model terms. In particular, if no onsite model has been applied to a specific site, its onsite potential will be zero, and will not be modified by any @onsite! modifier. Conversely, if an onsite model has been applied, @onsite! may modify the onsite potential even if it is zero. The same applies to @hopping!.\n\nExamples\n\njulia> model = hopping(1); peierls = @hopping!((t, r, dr; A = r -> SA[0,0]) -> t * cis(-dr' * A(r)))\nOnsiteModifier{ParametricFunction{3}}:\n Region : any\n Sublattice pairs : any\n Cell distances : any\n Hopping range : Neighbors(1)\n Reverse hops : false\n Parameters : [:A]\n\njulia> LP.honeycomb() |> hamiltonian(model) |> supercell(10) |> hamiltonian(peierls)\nParametricHamiltonian{Float64,2,2}: Parametric Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 5\n Harmonic size : 200 × 200\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 0\n Hoppings : 600\n Coordination : 3.0\n Parameters : [:A]\n\nSee also\n\n`onsite`, `hopping`, `@onsite`, `@hopping`, `@onsite!`, `hamiltonian`\n\n\n\n\n\n","category":"macro"},{"location":"api/#Quantica.@onsite","page":"API","title":"Quantica.@onsite","text":"@onsite((; params...) -> o(; params...); sites...)\n@onsite((r; params...) -> o(r; params...); sites...)\n\nBuild a ParametricModel representing a uniform or a position-dependent onsite potential, respectively, on sites selected by siteselector(; sites...) (see siteselector for details).\n\nSite positions are r::SVector{E}, where E is the embedding dimension of the lattice. The onsite potential o can be a Number (for single-orbital sites), a UniformScaling (e.g. 2I) or an AbstractMatrix (use SMatrix for performance) of dimensions matching the number of orbitals in the selected sites. Parametric models may be applied to a lattice lat to produce a ParametricHamiltonian with hamiltonian(lat, model; ...), see hamiltonian. Position dependent models are forced to preserve the periodicity of the lattice.\n\nThe difference between regular and parametric tight-binding models (see onsite and hopping) is that parametric models may depend on arbitrary parameters, specified by the params keyword arguments. These are inherited by h::ParametricHamiltonian, which can then be evaluated very efficiently for different parameter values by callling h(; params...), to obtain a regular Hamiltonian without reconstructing it from scratch.\n\n@onsite((ω; params...) -> Σᵢᵢ(ω; params...); sites...)\n@onsite((ω, r; params...) -> Σᵢᵢ(ω, r; params...); sites...)\n\nSpecial form of a parametric onsite potential meant to model a self-energy (see attach).\n\nModel algebra\n\nParametric models can be combined using +, - and *, or conjugated with ', e.g. @onsite((; o=1) -> o) - 2 * hopping(1)'. The combined parametric models can share parameters.\n\nExamples\n\njulia> model = @onsite((r; dμ = 0) -> (r[1] + dμ) * I; sublats = :A) + @onsite((; dμ = 0) -> - dμ * I; sublats = :B)\nParametricModel: model with 2 terms\n ParametricOnsiteTerm{ParametricFunction{1}}\n Region : any\n Sublattices : A\n Cells : any\n Coefficient : 1\n Parameters : [:dμ]\n ParametricOnsiteTerm{ParametricFunction{0}}\n Region : any\n Sublattices : B\n Cells : any\n Coefficient : 1\n Parameters : [:dμ]\n\njulia> LP.honeycomb() |> supercell(2) |> hamiltonian(model, orbitals = 2)\nParametricHamiltonian{Float64,2,2}: Parametric Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 1\n Harmonic size : 8 × 8\n Orbitals : [2, 2]\n Element type : 2 × 2 blocks (ComplexF64)\n Onsites : 8\n Hoppings : 0\n Coordination : 0.0\n Parameters : [:dμ]\n\nSee also\n\n`onsite`, `hopping`, `@hopping`, `@onsite!`, `@hopping!`, `attach`, `hamiltonian`\n\n\n\n\n\n","category":"macro"},{"location":"api/#Quantica.@onsite!","page":"API","title":"Quantica.@onsite!","text":"@onsite!((o; params...) -> o´(o; params...); sites...)\n@onsite!((o, r; params...) -> o´(o, r; params...); sites...)\n\nBuild a uniform or position-dependent onsite term modifier, respectively, acting on sites selected by siteselector(; sites...) (see siteselector for details).\n\nSite positions are r::SVector{E}, where E is the embedding dimension of the lattice. The original onsite potential is o, and the modified potential is o´, which is a function of o and possibly r. It may optionally also depend on parameters, enconded in params.\n\nModifiers are meant to be applied to an h:AbstractHamiltonian to obtain a ParametricHamiltonian (with hamiltonian(h, modifiers...) or hamiltonian(lat, model, modifiers...), see hamiltonian). Modifiers will affect only pre-existing model terms. In particular, if no onsite model has been applied to a specific site, its onsite potential will be zero, and will not be modified by any @onsite! modifier. Conversely, if an onsite model has been applied, @onsite! may modify the onsite potential even if it is zero. The same applies to @hopping!.\n\nExamples\n\njulia> model = onsite(0); disorder = @onsite!((o; W = 0) -> o + W * rand())\nOnsiteModifier{ParametricFunction{1}}:\n Region : any\n Sublattices : any\n Cells : any\n Parameters : [:W]\n\njulia> LP.honeycomb() |> hamiltonian(model) |> supercell(10) |> hamiltonian(disorder)\nParametricHamiltonian{Float64,2,2}: Parametric Hamiltonian on a 2D Lattice in 2D space\n Bloch harmonics : 1\n Harmonic size : 200 × 200\n Orbitals : [1, 1]\n Element type : scalar (ComplexF64)\n Onsites : 200\n Hoppings : 0\n Coordination : 0.0\n Parameters : [:W]\n\nSee also\n\n`onsite`, `hopping`, `@onsite`, `@hopping`, `@hopping!`, `hamiltonian`\n\n\n\n\n\n","category":"macro"},{"location":"tutorial/observables/#Observables","page":"Observables","title":"Observables","text":"","category":"section"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"We are almost at our destination now. We have defined a Lattice, a Model for our system, we applied the Model to the Lattice to obtain a Hamiltonian or a ParametricHamiltonian, and finally, after possibly attaching some contacts to outside reservoirs and specifying a GreenSolver, we obtained a GreenFunction. It is now time to use the GreenFunction to obtain some observables of interest.","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"Currently, we have the following observables built into Quantica.jl (with more to come in the future)","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"ldos: computes the local density of states at specific energy and sites\ncurrent: computes the local current density along specific directions, and at specific energy and sites\ntransmission: computes the total transmission between contacts\nconductance: computes the differential conductance dIᵢ/dVⱼ between contacts i and j\njosephson: computes the supercurrent and the current-phase relation through a given contact in a superconducting system","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"See the corresponding docstrings for full usage instructions. Here we will present some basic examples","category":"page"},{"location":"tutorial/observables/#Local-density-of-states-(LDOS)","page":"Observables","title":"Local density of states (LDOS)","text":"","category":"section"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"Let us compute the LDOS in a cavity like in the previous section. Instead of computing the Green function between a contact to an arbitrary point, we can construct an object ρ = ldos(g(ω)) without any contacts. By using a small imaginary part in ω, we broaden the discrete spectrum, and obtain a finite LDOS. Then, we can pass ρ directly as a site shader to qplot","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"julia> h = LP.square() |> onsite(4) - hopping(1) |> supercell(region = r -> norm(r) < 40*(1+0.2*cos(5*atan(r[2],r[1]))));\n\njulia> g = h|> greenfunction;\n\njulia> ρ = ldos(g(0.1 + 0.001im))\nLocalSpectralDensitySolution{Float64} : local density of states at fixed energy and arbitrary location\n kernel : LinearAlgebra.UniformScaling{Bool}(true)\n\njulia> qplot(h, hide = :hops, sitecolor = ρ, siteradius = ρ, minmaxsiteradius = (0, 2), sitecolormap = :balance)","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"\"LDOS\"","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"Note that ρ[sites...] produces a vector with the LDOS at sites defined by siteselector(; sites...) (ρ[] is the ldos over all sites). We can also define a kernel to be traced over orbitals to obtain the spectral density of site-local observables (see diagonal slicing in the preceding section).","category":"page"},{"location":"tutorial/observables/#Current","page":"Observables","title":"Current","text":"","category":"section"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"A similar computation can be done to obtain the current density, using J = current(g(ω), direction = missing). This time J[sᵢ, sⱼ] yields a sparse matrix of current densities along a given direction for each hopping (or the current norm if direction = missing). Passing J as a hopping shader yields the equilibrium current in a system. In the above example we can add a magnetic flux to make this current finite","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"julia> h = LP.square() |> supercell(region = r -> norm(r) < 40*(1+0.2*cos(5*atan(r[2],r[1])))) |> onsite(4) - @hopping((r, dr; B = 0.1) -> cis(B * dr[1] * r[2]));\n\njulia> g = h |> greenfunction;\n\njulia> J = current(g(0.1; B = 0.01))\nCurrentDensitySolution{Float64} : current density at a fixed energy and arbitrary location\n charge : LinearAlgebra.UniformScaling{Int64}(-1)\n direction : missing\n\njulia> qplot(h, siteradius = 0.08, sitecolor = :black, siteoutline = 0, hopradius = J, hopcolor = J, minmaxhopradius = (0, 2), hopcolormap = :balance, hopdarken = 0)","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"\"Current","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"note: Remember to construct supercell before applying position-dependent fields\nNote that we built the supercell before applying the model with the magnetic flux. Not doing so would make the gauge field be repeated in each unit cell when expanding the supercell. This was mentioned in the section on Hamiltonians, and is a common mistake when modeling systems with position dependent fields.","category":"page"},{"location":"tutorial/observables/#Transmission","page":"Observables","title":"Transmission","text":"","category":"section"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"The transmission Tᵢⱼ from contact j to contact i can be computed using transmission. This function accepts a GreenSlice between the contact. Let us recover the four-terminal setup of the preceding section, but let's make it bigger this time","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"julia> hcentral = LP.square() |> hopping(-1) |> supercell(region = RP.circle(100) | RP.rectangle((202, 50)) | RP.rectangle((50, 202)))\n\njulia> glead = LP.square() |> hopping(-1) |> supercell((1, 0), region = r -> abs(r[2]) <= 50/2) |> greenfunction(GS.Schur(boundary = 0));\n\njulia> Rot = r -> SA[0 -1; 1 0] * r; # 90º rotation function\n\njulia> g = hcentral |>\n attach(glead, region = r -> r[1] == 101) |>\n attach(glead, region = r -> r[1] == -101, reverse = true) |>\n attach(glead, region = r -> r[2] == 101, transform = Rot) |>\n attach(glead, region = r -> r[2] == -101, reverse = true, transform = Rot) |>\n greenfunction;\n\njulia> gx1 = sum(abs2, g(-3.96)[siteselector(), 1], dims = 2);\n\njulia> qplot(hcentral, hide = :hops, siteoutline = 1, sitecolor = (i, r) -> gx1[i], siteradius = (i, r) -> gx1[i], minmaxsiteradius = (0, 2), sitecolormap = :balance)","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"\"Green","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"It's apparent from the plot that the transmission from right to left (T₂₁ here) at this energy of 0.04 is larger than from right to top (T₃₁). Is this true in general? Let us compute the two transmissions as a function of energy. To show the progress of the calculation we can use a monitor package, such as ProgressMeter","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"julia> using ProgressMeter\n\njulia> T₂₁ = transmission(g[2,1]); T₃₁ = transmission(g[3,1]); ωs = subdiv(-4, 4, 201);\n\njulia> T₂₁ω = @showprogress [T₂₁(ω) for ω in ωs]; T₃₁ω = @showprogress [T₃₁(ω) for ω in ωs];\nProgress: 100%|██████████████████████████████████████████████████████████████| Time: 0:01:02\nProgress: 100%|██████████████████████████████████████████████████████████████| Time: 0:01:00\n\njulia> f = Figure(); a = Axis(f[1,1], xlabel = \"ω/t\", ylabel = \"T(ω)\"); lines!(a, ωs, T₂₁ω, label = L\"T_{2,1}\"); lines!(a, ωs, T₃₁ω, label = L\"T_{3,1}\"); axislegend(\"Transmission\", position = :lt); f","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"\"Total","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"So we indeed find that the 90-degree transmission T₃₁ is indeed larger than the forward transmission T₂₁ for all energies. The rapid oscillations are due to mesoscopic fluctuations.","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"note: Total transmission vs transmission probability\nNote that transmission gives the total transmission, which is the sum of the transmission probability from each orbital in the source contact to any other orbital in the drain contact. As such it is not normalized to 1, but to the number of source orbitals. It also gives the local conductance from a given contact in units of e^2h according to the Landauer formula, G_j = e^2h sum_i T_ij(eV).","category":"page"},{"location":"tutorial/observables/#Conductance","page":"Observables","title":"Conductance","text":"","category":"section"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"Local and non-local differential conductance G_ij = dI_idV_j can be computed with G = conductance(g[i,j]). Calling G(ω) returns the conductance at bias eV = omega in units of e^2h. Let's look at the local differential conductance into the right contact in the previous example","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"julia> G₁₁ = conductance(g[1,1])\nConductance{Float64}: Zero-temperature conductance dIᵢ/dVⱼ from contacts i,j, in units of e^2/h\n Current contact : 1\n Bias contact : 1\n\njulia> ωs = subdiv(-4, 4, 201); Gω = @showprogress [G₁₁(ω) for ω in ωs];\nProgress: 100%|██████████████████████████████████████████████████████████████| Time: 0:01:01\n\njulia> f = Figure(); a = Axis(f[1,1], xlabel = \"eV/t\", ylabel = \"G [e²/h]\"); lines!(a, ωs, Gω); f","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"\"Local","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"warning: Sign of non-local conductance\nIf you compute a non-local conductance such as conductance(g[2,1])(ω) in this example you will note it is negative. This is actually expected. It means that the current flowing into the system through the right contact when you increase the bias in a different contact is negative, because the current is actually flowing out into the right reservoir.","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"The conductance can also be computed for hybrid (normal-superconducting) systems. To do so, one first needs to write the model in the Nambu representation, i.e. with particle and hole orbitals on each site (first particles, then holes). In the above examples amounts to switching hopping(-1) to hamiltonian(onsite(Δ*σx) - hopping(σz), orbitals = 2), with σx = SA[0 1; 1 0], σz = SA[1 0; 0 -1] and Δ the pairing amplitude. Then we must specify G₁₁ = conductance(g[1,1], nambu = true) to take into account Andreev reflections. The above example with left, bottom and top leads superconducting (with Δ=0.3) yields the following conductance G₁₁ in the right (normal) lead (we leave the implementation as an exercise for the reader).","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"\"Local","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"Note that within the gap Andreev reflection leads to an enhancement of conductance, since the contacts are transparent","category":"page"},{"location":"tutorial/observables/#Josephson","page":"Observables","title":"Josephson","text":"","category":"section"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"The above example showcases normal-superconductor (NS) conductance, which is a Fermi-surface process in response to an electric bias on the normal contacts. In contrast, supercorconductor-superconductor junctions, also known as Josephson junctions, can exhibit supercurrents carried by the full Fermi sea even without a bias. Usually, this supercurrent flows in response to a phase bias between the superconductors, where by phase we mean the complex phase of the Δ order parameter.","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"We can compute the supercurrent or the full current-phase relation of a Josephson junction with the command josephson(gs::GreenSlice, ωmax), where gs = g[contact_id] and ωmax is the full bandwidth of the system (i.e. the maximum energy, in absolute value, spanned by the Fermi sea). This latter quantity can be an estimate or even an upper bound, as it is just used to know up to which energy we should integrate the supercurrent. Let us see an example.","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"julia> σz = SA[1 0; 0 -1];\n\njulia> central_region = RP.circle(50) & !RP.circle(40) | RP.rectangle((4, 10), (-50, 0)) | RP.rectangle((4, 10), (50, 0));\n\njulia> h = LP.square() |> hamiltonian(hopping(-σz), orbitals = 2) |> supercell(region = central_region)\n\njulia> Σ(ω, Δ) = SA[-ω Δ; conj(Δ) -ω]/sqrt(1-abs2(Δ))\n\njulia> g = h |>\n attach(@onsite((ω; Δ = 0.2) -> Σ(ω, Δ)); region = r -> r[1] < -51) |>\n attach(@onsite((ω; Δ = 0.2, phase = 0) -> Σ(ω, Δ*cis(phase))); region = r -> r[1] > 51) |>\n greenfunction\nGreenFunction{Float64,2,0}: Green function of a Hamiltonian{Float64,2,0}\n Solver : AppliedSparseLUGreenSolver\n Contacts : 2\n Contact solvers : (SelfEnergyModelSolver, SelfEnergyModelSolver)\n Contact sizes : (11, 11)\n Hamiltonian{Float64,2,0}: Hamiltonian on a 0D Lattice in 2D space\n Bloch harmonics : 1\n Harmonic size : 2884 × 2884\n Orbitals : [2]\n Element type : 2 × 2 blocks (ComplexF64)\n Onsites : 0\n Hoppings : 10800\n Coordination : 3.7448\n\njulia> J = josephson(g[1], 4.1)\nIntegrator: Complex-plane integrator\n Integration path : (-4.1 + 1.4901161193847656e-8im, -2.05 + 2.050000014901161im, 0.0 + 1.4901161193847656e-8im)\n Integration options : (atol = 1.0e-7,)\n Integrand: :\n JosephsonDensity{Float64} : Equilibrium (dc) Josephson current observable before integration over energy\n kBT : 0.0\n Contact : 1\n Number of phase shifts : 0\n\njulia> qplot(g)","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"\"Josephson","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"In this case we have chosen to introduce the superconducting leads with a model self-energy, corresponding to a BCS bulk, but any other self-energy form could be used. We have introduced the phase difference (phase) as a model parameter. We can now evaluate the zero-temperature Josephson current simply with","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"julia> J(phase = 0)\n-1.974396994480587e-16\n\njulia> J(phase = 0.2)\n0.004617597139699372","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"Note that finite temperatures can be taken using the kBT keyword argument for josephson, see docstring for details.","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"One is often interested in the critical current, which is the maximum of the Josephson current over all phase differences. Quantica.jl can compute the integral over a collection of phase differences simulataneously, which is more efficient that computing them one by one. This is done with","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"julia> φs = subdiv(0, pi, 11); J = josephson(g[1], 4.1; phases = φs)\n Integration path : (-4.1 + 1.4901161193847656e-8im, -2.05 + 2.050000014901161im, 0.0 + 1.4901161193847656e-8im)\n Integration options : (atol = 1.0e-7,)\n Integrand: :\n JosephsonDensity{Float64} : Equilibrium (dc) Josephson current observable before integration over energy\n kBT : 0.0\n Contact : 1\n Number of phase shifts : 11\n\njulia> Iφ = J()\n11-element Vector{Float64}:\n 1.868862401627357e-14\n 0.007231421775452674\n 0.014242855188877\n 0.02081870760779799\n 0.026752065104401878\n 0.031847203848574666\n 0.0359131410974842\n 0.03871895510547465\n 0.039762442694035505\n 0.03680096751905469\n 2.7677727119798235e-14\n\njulia> f = Figure(); a = Axis(f[1,1], xlabel = \"φ\", ylabel = \"I [e/h]\"); lines!(a, φs, Iφ); scatter!(a, φs, Iφ); f","category":"page"},{"location":"tutorial/observables/","page":"Observables","title":"Observables","text":"\"Josephson","category":"page"},{"location":"examples/#Examples","page":"Examples","title":"Examples","text":"","category":"section"},{"location":"tutorial/models/#Models","page":"Models","title":"Models","text":"","category":"section"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"We now will show how to build a generic single-particle tight-binding model, with generic Hamiltonian","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"H = sum_ialpha jbeta c_ialpha^dagger V_alphabeta(r_i r_j)c_jalpha","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"Here, α,β are orbital indices in each site, i,j are site indices, and rᵢ, rⱼ are site positions. In Quantica.jl we would write the above model as","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"julia> model = onsite(r -> V(r, r)) + hopping((r, dr) -> V(r-dr/2, r+dr/2))\nTightbindingModel: model with 2 terms\n OnsiteTerm{Function}:\n Region : any\n Sublattices : any\n Cells : any\n Coefficient : 1\n HoppingTerm{Function}:\n Region : any\n Sublattice pairs : any\n Cell distances : any\n Hopping range : Neighbors(1)\n Reverse hops : false\n Coefficient : 1","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"where V(rᵢ, rⱼ) is a function that returns a matrix (ideally an SMatrix) V_alphabeta(r_i r_j) of the required orbital dimensionality.","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"Note that when writing models we distinguish between onsite (rᵢ=rⱼ) and hopping (rᵢ≠rⱼ) terms. For the former, r is the site position. For the latter we use a bond-center and bond-distance (r, dr) parametrization of V, so that r₁, r₂ = r ∓ dr/2","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"If the onsite and hopping amplitudes do not depend on position, we can simply use constants","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"julia> model = onsite(1) - 2*hopping(1)\nTightbindingModel: model with 2 terms\n OnsiteTerm{Int64}:\n Region : any\n Sublattices : any\n Cells : any\n Coefficient : 1\n HoppingTerm{Int64}:\n Region : any\n Sublattice pairs : any\n Cell distances : any\n Hopping range : Neighbors(1)\n Reverse hops : false\n Coefficient : -2","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"tip: Model term algebra\nNote that we can combine model terms as in the above example by summing and subtracting them, and using constant coefficients.","category":"page"},{"location":"tutorial/models/#HopSelectors","page":"Models","title":"HopSelectors","text":"","category":"section"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"By default onsite terms apply to any site in a Lattice, and hopping terms apply to any pair of sites within nearest-neighbor distance (see the Hopping range: Neighbors(1) above).","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"We can change this default by specifying a SiteSelector or HopSelector for each term. SiteSelectors where already introduced to create LatticeSlices. HopSelectors are very similar, but support slightly different keywords:","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"region: to restrict according to bond center r and bond vector dr\nsublats: to restrict source and target sublattices\ndcells: to restrict the distance in cell index\nrange: to restrict the distance in real space","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"As an example, a HopSelector that selects any two sites at a distance between 1.0 and the second-nearest neighbor distance, with the first belonging to sublattice :B and the second to sublattice :A, and their bond center inside a unit circle","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"julia> hs = hopselector(range = (1.0, neighbors(2)), sublats = :B => :A, region = (r, dr) -> norm(r) < 1)\nHopSelector: a rule that defines a finite collection of hops between sites in a lattice\n Region : Function\n Sublattice pairs : :B => :A\n Cell distances : any\n Hopping range : (1.0, Neighbors(2))\n Reverse hops : false","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"We can now use this HopSelector to restrict the hoppings in a model, just as SiteSelectors can be used to restrict onsite terms","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"julia> model = plusadjoint(hopping(1, hs)) - 2*onsite(1, sublats = :B)\nTightbindingModel: model with 3 terms\n HoppingTerm{Int64}:\n Region : Function\n Sublattice pairs : :B => :A\n Cell distances : any\n Hopping range : (1.0, Neighbors(2))\n Reverse hops : false\n Coefficient : 1\n HoppingTerm{Int64}:\n Region : Function\n Sublattice pairs : :B => :A\n Cell distances : any\n Hopping range : (1.0, Neighbors(2))\n Reverse hops : true\n Coefficient : 1\n OnsiteTerm{Int64}:\n Region : any\n Sublattices : B\n Cells : any\n Coefficient : 1","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"Note that we can pass the Selector itself as a second argument to hopping and onsite, or alternatively use selector keywords directly as in the onsite above.","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"tip: plusadjoint function\nThe convenience function plusadjoint(term) = term + term' adds the Hermitian conjugate of its argument (term'), equivalent to the + h.c. notation often used in the literature.","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"note: Index-agnostic modeling\nThe Quantica.jl approach to defining tight-binding models does not rely explicitly on site indices (i,j above), since these are arbitrary, and may even be beyond the control of the user (for example after using supercell). Instead, we rely on physical properties of sites, such as position, distance or sublattice.","category":"page"},{"location":"tutorial/models/#Parametric-Models","page":"Models","title":"Parametric Models","text":"","category":"section"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"The models introduced above are non-parametric, in the sense that they encode fixed, numerical Hamiltonian matrix elements. In many problems, it is commonplace to have models that depend on a number of free parameters that will need to be adjusted during a calculation. For example, one may need to compute the phase diagram of a system as a function of a spin-orbit coupling or an applied magnetic field. For these cases, we have ParametricModels.","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"Parametric models are defined with","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"@onsite((; params...) -> ...; sites...)\n@onsite((r; params...) -> ...; sites...)\n@hopping((; params...) -> ...; hops...)\n@hopping((r, dr; params...) -> ...; hops...)","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"where the params keyword arguments define the free parameters, together with (optional) default values. Here is an example of a hopping model with a Peierls phase in the symmetric gauge, with the magnetic field Bz and the zero-field hopping t as free parameters","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"julia> model_perierls = @hopping((r, dr; Bz = 0, t = 1) -> t * cis(-im * Bz/2 * SA[-r[2], r[1], 0]' * dr))\nParametricModel: model with 1 term\n ParametricHoppingTerm{ParametricFunction{2}}\n Region : any\n Sublattice pairs : any\n Cell distances : any\n Hopping range : Neighbors(1)\n Reverse hops : false\n Coefficient : 1\n Parameters : [:B, :t]","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"One can linearly combine parametric and non-parametric models freely, omit parameter default values, and use any of the functional argument forms described for onsite and hopping (although not the constant argument form):","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"julia> model´ = 2 * (onsite(1) - 2 * @hopping((; t) -> t))\nParametricModel: model with 2 terms\n ParametricHoppingTerm{ParametricFunction{0}}\n Region : any\n Sublattice pairs : any\n Cell distances : any\n Hopping range : Neighbors(1)\n Reverse hops : false\n Coefficient : -4\n Parameters : [:t]\n OnsiteTerm{Int64}:\n Region : any\n Sublattices : any\n Cells : any\n Coefficient : 2","category":"page"},{"location":"tutorial/models/#Modifiers","page":"Models","title":"Modifiers","text":"","category":"section"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"There is a third model-related functionality known as OnsiteModifiers and HoppingModifiers. Given a model that defines a set of onsite and hopping amplitudes on a subset of sites and hops, one can define a parameter-dependent modification of a subset of said amplitudes. This is a useful way to introduce a new parameter dependence on an already defined model. Modifiers are built with","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"@onsite!((o; params...) -> new_onsite; sites...)\n@onsite!((o, r; params...) -> new_onsite; sites...)\n@hopping((t; params...) -> new_hopping; hops...)\n@hopping((t, r, dr; params...) -> new_hopping; hops...)","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"where the first argument o and t is the unmodified value of the onsite or hopping amplitude, respectively. Here sites and hops are once more keyword arguments to restrict the modification with a SiteSelector or HopSelector.","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"For example, the following HoppingModifier inserts a Peierls phase on all the hopping in a given model","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"julia> model_perierls! = @hopping!((t, r, dr; B = 0) -> t * cis(-Bz/2 * SA[-r[2], r[1], 0]' * dr))\nHoppingModifier{ParametricFunction{3}}:\n Region : any\n Sublattice pairs : any\n Cell distances : any\n Hopping range : Inf\n Reverse hops : false\n Parameters : [:B]","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"The difference with model_perierls is that model_perierls! will never add any new hoppings. It will only modify previously existing hoppings in a model. Modifiers are not models themselves, and cannot be summed to other models. They are instead meant to be applied sequentially after applying a model.","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"In the next section we show how models and modifiers can be used in practice to construct Hamiltonians.","category":"page"},{"location":"tutorial/models/","page":"Models","title":"Models","text":"note: Mind the `;`\nWhile syntax like onsite(2, sublats = :B) and onsite(2; sublats = :B) are equivalent in Julia, due to the way keyword arguments are parsed, the same is not true for macro calls like @onsite, @onsite!, @hopping and @hopping!. These macros just emulate the function call syntax. But to work you must currently always use the ; separator for keywords. Hence, something like @onsite((; p) -> p; sublats = :B) works, but @onsite((; p) -> p, sublats = :B) does not.","category":"page"},{"location":"tutorial/bandstructures/#Bandstructures","page":"Bandstructures","title":"Bandstructures","text":"","category":"section"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"The eigenpairs (eigenvalues and eigenvectors) of a Hamiltonian or ParametricHamiltonian at given Bloch phases ϕᵢ can be obtained with spectrum:","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"julia> h = LP.honeycomb() |> hopping(1); ϕᵢ = (0, π);\n\njulia> eᵢ, ψᵢ = spectrum(h, ϕᵢ; solver = EigenSolvers.LinearAlgebra())\nSpectrum{Float64,ComplexF64} :\nEnergies:\n2-element Vector{ComplexF64}:\n -1.0 + 0.0im\n 1.0 + 0.0im\nStates:\n2×2 Matrix{ComplexF64}:\n 0.707107-8.65956e-17im 0.707107-8.65956e-17im\n -0.707107+0.0im 0.707107+0.0im","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"The above destructuring syntax assigns eigenvalues and eigenvectors to eᵢ and ψᵢ, respectively. The available eigensolvers and their options can be checked in the EigenSolvers docstrings.","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"We define a \"bandstructure\" of an h::AbstractHamiltonian as a linear interpolation of its eigenpairs over a portion of the Brillouin zone, which is discretized with a base mesh of ϕᵢ values. At each ϕᵢ of the base mesh, the Bloch matrix h(ϕᵢ) is diagonalized with spectrum. The adjacent eigenpairs eⱼ(ϕᵢ), ψⱼ(ϕᵢ) are then connected (\"stitched\") together into a number of band meshes with vertices (ϕᵢ..., eⱼ(ϕᵢ)) by maximizing the overlap of adjacent ψⱼ(ϕᵢ) (since the bands should be continuuous). Degenerate eigenpairs are collected into a single node of the band mesh.","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"The bandstructure of an h::AbstractHamiltonian is computed using bands:","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"julia> ϕ₁points = ϕ₂points = range(0, 2π, length = 19);\n\njulia> b = bands(h, ϕ₁points, ϕ₂points)\nBandstructure{Float64,3,2}: 3D Bandstructure over a 2-dimensional parameter space of type Float64\n Subbands : 1\n Vertices : 720\n Edges : 2016\n Simplices : 1296","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"The first argument is the AbstractHamiltonian. Here it is defined on an L=2 dimensional lattice. The subsequent arguments are collections of Bloch phases on each of the L axes of the Brillouin zone, whose direct product ϕ₁points ⊗ ϕ₂points defines our base mesh of ϕᵢ points. Here it is a uniform 19×19 grid. We can once more use qplot to visualize the bandstructure, or more precisely the band meshes:","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"julia> using GLMakie; qplot(b, inspector = true)","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"\"Graphene","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"The dots on the bands are the band mesh vertices (ϕᵢ..., eⱼ(ϕᵢ)). They can be omitted with the qplot keyword hide = :nodes (or hide = :vertices, both are equivalent).","category":"page"},{"location":"tutorial/bandstructures/#Band-defects","page":"Bandstructures","title":"Band defects","text":"","category":"section"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"Note that the uniform grid contains the Dirac points. This is the reason for the number 19 of Bloch phases used above. Note also that it is identified as a point in the bands with degeneracy = 2 (the rest have degeneracy = 1). As mentioned, the points on the bands are connected based on eigenstate overlaps between adjacent ϕᵢs. This interpolation algorithm can deal with subspace degeneracies, as here. However, Dirac points (and Diabolical Points in general) must belong to the mesh for the method to work. If the number of points is reduced to 18 per axis, the Dirac points become unavoidable band dislocations, that appear as missing simplices in the bands:","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"\"Graphene","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"tip: Advanced: band defects and patching\nIf a Dirac point or other type of band dislocation point happens to not belong to the sampling grid, it can be added with the bands keyword defects. Then, it can be reconnected with the rest of the band by increasing the patches::Integer keyword (see bands docstring for details). This \"band repair\" functionality is experimental, and should only be necessary in some cases with Diabolical Points.","category":"page"},{"location":"tutorial/bandstructures/#Coordinate-mapping-and-band-linecuts","page":"Bandstructures","title":"Coordinate mapping and band linecuts","text":"","category":"section"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"The direct product of the ϕᵢpoints above define a rectangular mesh over which we want to compute the bandstructure. By default, this mesh is taken as a discretization of Bloch phases, so h(ϕᵢ) is diagonalized at each point of the base mesh. We might want, however, a different relation between the mesh and the parameters passed to h, for example if we wish to use wavevectors k instead of Bloch phases ϕᵢ = k⋅Aᵢ for the mesh. This is achieved with the mapping keyword, which accepts a function mapping = (mesh_points...) -> bloch_phases,","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"julia> h = LP.honeycomb() |> hopping(2); k₁points = range(-2π, 2π, length = 51); k₂points = range(-2π, 2π, length = 51);\n\njulia> Kpoints = [SA[cos(θ) -sin(θ); sin(θ) cos(θ)] * SA[4π/3,0] for θ in range(0, 5*2π/6, length = 6)];\n\njulia> ϕ(k...) = SA[k...]' * bravais_matrix(h)\nϕ (generic function with 1 method)\n\njulia> b = bands(h, k₁points, k₂points; mapping = ϕ, defects = Kpoints, patches = 20);\n\njulia> using GLMakie; qplot(b, hide = (:nodes, :wireframe), color = :orange)","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"\"Graphene","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"To compute a bandstructure linecut along a polygonal line in the Brillouin zone, we could once more use the mapping functionality, mapping a set of points xᵢ::Real in the mesh to Bloch phases ϕᵢ that defines the nodes of the polygonal path, and interpolating linearly between them. To avoid having to construct this mapping ourselves, mapping accepts a second type of input for this specific usecase, mapping = xᵢ => ϕᵢ. Here, ϕᵢ can be a collection of Tuples, SVector{L}, or even Symbols denoting common names for high-symmetry points in the Brillouin zone, such as :Γ, :K, :K´, :M, :X, :Y, and :Z. The following gives a Γ-K-M-Γ linecut for the bands above, where the (Γ, K, M, Γ) points lie at x = (0, 2, 3, 4), respectively, with 10 subdivisions in each segment,","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"julia> b = bands(h, subdiv((0, 2, 3, 4), 10); mapping = (0, 2, 3, 4) => (:Γ, :K, :M, :Γ));\n\njulia> qplot(b, axis = (; xticks = ([0, 2, 3, 4], [\"Γ\", \"K\", \"M\", \"Γ\"]), ylabel = \"ϵ\"))","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"\"Graphene","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"tip: subdiv\nThe subdiv function is a convenience function provided by Quantica.jl that generalizes range (see the corresponding docstring for comprehensive details). It is useful to create collections of numbers as subdivisions of intervals, as in the example above. In its simplest form subdiv(min, max, npoints) is is equivalent to range(min, max, length = npoints) or collect(LinRange(min, max, npoints))","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"The mapping keyword understand a third syntax that can be used to map a mesh to the space of Bloch phases and parameters of a ParametricHamiltonian. To this end we use mapping = (mesh_points...) -> ftuple(bloch_phases...; params...). The ftuple function creates a FrankenTuple, which is a hybrid between a Tuple and a NamedTuple. For example, in the following 1D SSH chain we can compute the bandstructure as a function of Bloch phase ϕ and hopping t´, and plot it using more customization options","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"julia> h = LP.linear() |> supercell(2) |> @hopping((r, dr; t = 1, t´ = 1) -> iseven(r[1]-1/2) ? t : t´);\n\njulia> b = bands(h, subdiv(0, 2π, 11), subdiv(0, 10, 11), mapping = (ϕ, y) -> ftuple(ϕ; t´ = y/5), patches = 20)\nBandstructure{Float64,3,2}: 3D Bandstructure over a 2-dimensional parameter space of type Float64\n Subbands : 1\n Vertices : 249\n Edges : 664\n Simplices : 416\n\njulia> qplot(b, nodedarken = 0.5, axis = (; aspect = (1,1,1), perspectiveness = 0.5, xlabel = \"ϕ\", ylabel = \"t´/t\", zlabel = \"ϵ\"), fancyaxis = false)","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"\"SSH","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"Note that since we didn't specify a value for t, it assumed its default t=1. In this case we needed to patch the defect at (ϕ, t´) = (π, 1) (topological transition) using the patches keyword to avoid a band dislocation.","category":"page"},{"location":"tutorial/bandstructures/#Band-indexing-and-slicing","page":"Bandstructures","title":"Band indexing and slicing","text":"","category":"section"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"The individual subbands in a given b::Bandstructure can be obtained with b[inds] with inds::Integer or inds::Vector, just as if b where a normal AbstractVector. The extracted subbands can also be plotted directly. The following example has 12 subbands, of which we extract and plot the first and last","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"julia> h = LP.triangular() |> supercell(4) |> hopping(1) + onsite(r -> 4*rand());\n\njulia> b = bands(h, subdiv(0, 2π, 31), subdiv(0, 2π, 31))\nBandstructure{Float64,3,2}: 3D Bandstructure over a 2-dimensional parameter space of type Float64\n Subbands : 12\n Vertices : 15376\n Edges : 44152\n Simplices : 28696\n\njulia> qplot(b, hide = (:nodes, :wireframe))\n\njulia> qplot(b[[1, end]], hide = (:nodes, :wireframe))","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"\"Extracting","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"For a band in a 2D Brillouin zone, we can also obtain the intersection of a bandstructure with a plane of constant energy ϵ=2 using the syntax b[(:,:,2)]. A section at fixed Bloch phase ϕ₁=0 (or mesh coordinate x₁=0 if mapping was used), can be obtained with b[(0,:,:)]. This type of band slicing can be generalized to higher dimensional bandstructures, or to more than one constrain (e.g. energy and/or a subset of Bloch phases). As an example, this would be the Fermi surface of a nearest-neighbor cubic-lattice Hamiltonian at Fermi energy µ = 0.2t","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"julia> pts = subdiv(0, 2π, 41); b = LP.cubic() |> hopping(1) |> bands(pts, pts, pts)\nBandstructure{Float64,4,3}: 4D Bandstructure over a 3-dimensional parameter space of type Float64\n Subbands : 1\n Vertices : 68921\n Edges : 462520\n Simplices : 384000\n\njulia> qplot(b[(:, :, :, 0.2)], hide = (:nodes, :wireframe))","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"\"Fermi","category":"page"},{"location":"tutorial/bandstructures/","page":"Bandstructures","title":"Bandstructures","text":"warning: On simplex orientation of bandstructure slices\nThe above example showcases a current (cosmetic) limitation of the band slicing algorithm: it sometimes fails to align all faces of the resulting manifold to the same orientation. The dark and bright regions of the surface above reveals that approximately half of the faces in this case are facing inward and the rest outward.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Quantica.jl logo)","category":"page"},{"location":"","page":"Home","title":"Home","text":"Quantica.jl is a Julia package for building generic tight-binding models and computing spectral and transport properties.","category":"page"},{"location":"#Installation","page":"Home","title":"Installation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"julia> import Pkg; Pkg.add(\"Quantica\")","category":"page"},{"location":"","page":"Home","title":"Home","text":"Quantica.jl requires Julia v1.9 or later. Some of its functionality, notably plotting, will become available only after using GLMakie, or some other plotting package from the Makie.jl family. Install GLMakie with","category":"page"},{"location":"","page":"Home","title":"Home","text":"julia> import Pkg; Pkg.add(\"GLMakie\")","category":"page"},{"location":"","page":"Home","title":"Home","text":"Then, to begin using Quantica, just load it by doing","category":"page"},{"location":"","page":"Home","title":"Home","text":"julia> using Quantica","category":"page"},{"location":"","page":"Home","title":"Home","text":"(and possibly also e.g. using GLMakie if you need to plot Quantica objects).","category":"page"},{"location":"#Asking-questions,-reporting-bugs","page":"Home","title":"Asking questions, reporting bugs","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"If you encounter problems, please read the tutorial and examples, your question is probably answered there. You can also check the docstring of each Quantica.jl function here or within the Julia REPL, by entering the function preceded by a ?, e.g. ?hamiltonian.","category":"page"},{"location":"","page":"Home","title":"Home","text":"If you are still stuck, you may sometimes find me (@pablosanjose) at the Julia Slack or Julia Discourse.","category":"page"},{"location":"","page":"Home","title":"Home","text":"If you believe you found a bug in Quantica.jl, please don't hesitate to file a GitHub issue, preferably with detailed instructions to reproduce it. Pull requests with fixes are also welcome!","category":"page"}] } diff --git a/dev/tutorial/bandstructures/index.html b/dev/tutorial/bandstructures/index.html index 57b6636b..95342e45 100644 --- a/dev/tutorial/bandstructures/index.html +++ b/dev/tutorial/bandstructures/index.html @@ -55,4 +55,4 @@ Edges : 462520 Simplices : 384000 -julia> qplot(b[(:, :, :, 0.2)], hide = (:nodes, :wireframe))Fermi surface of a cubic crystal at `µ = 0.2t`
        On simplex orientation of bandstructure slices

        The above example showcases a current (cosmetic) limitation of the band slicing algorithm: it sometimes fails to align all faces of the resulting manifold to the same orientation. The dark and bright regions of the surface above reveals that approximately half of the faces in this case are facing inward and the rest outward.

        +julia> qplot(b[(:, :, :, 0.2)], hide = (:nodes, :wireframe))Fermi surface of a cubic crystal at `µ = 0.2t`
        On simplex orientation of bandstructure slices

        The above example showcases a current (cosmetic) limitation of the band slicing algorithm: it sometimes fails to align all faces of the resulting manifold to the same orientation. The dark and bright regions of the surface above reveals that approximately half of the faces in this case are facing inward and the rest outward.

        diff --git a/dev/tutorial/glossary/index.html b/dev/tutorial/glossary/index.html index 1ab71d14..a48a4ab7 100644 --- a/dev/tutorial/glossary/index.html +++ b/dev/tutorial/glossary/index.html @@ -1,2 +1,2 @@ -Glossary · Quantica.jl

        Glossary

        This is a summary of the type of objects you will be studying.

        • Sublat: a sublattice, representing a number of identical sites within the unit cell of a bounded or unbounded lattice. Each site has a position in an E-dimensional space (E is called the embedding dimension). All sites in a given Sublat will be able to hold the same number of orbitals, and they can be thought of as identical atoms. Each Sublat in a Lattice can be given a unique name, by default :A, :B, etc.

        • Lattice: a collection of Sublats plus a collection of L Bravais vectors that define the periodicity of the lattice. A bounded lattice has L=0, and no Bravais vectors. A Lattice with L > 0 can be understood as a periodic (unbounded) collection of unit cells, each containing a set of sites, each of which belongs to a different sublattice.

        • SiteSelector: a rule that defines a subset of sites in a Lattice (not necessarily restricted to a single unit cell)

        • HopSelector: a rule that defines a subset of site pairs in a Lattice (not necessarily restricted to the same unit cell)

        • LatticeSlice: a finite subset of sites in a Lattice, defined by their cell index (an L-dimensional integer vector, usually denoted by n or cell) and their site index within the unit cell (an integer). A LatticeSlice an be constructed by combining a Lattice and a (bounded) SiteSelector.

        • AbstractModel: either a TightBindingModel or a ParametricModel

          • TightBindingModel: a set of HoppingTerms and OnsiteTerms
            • OnsiteTerm: a rule that, applied to a single site, produces a scalar or a (square) matrix that represents the intra-site Hamiltonian elements (single or multi-orbital)
            • HoppingTerm: a rule that, applied to a pair of sites, produces a scalar or a matrix that represents the inter-site Hamiltonian elements (single or multi-orbital)
          • ParametricModel: a set of ParametricOnsiteTerms and ParametricHoppingTerms
            • ParametricOnsiteTerm: an OnsiteTerm that depends on a set of free parameters that can be adjusted, and that may or may not have a default value
            • ParametricHoppingTerm: a HoppingTerm that depends on parameters, like ParametricOnsiteTerm above
        • AbstractHamiltonian: either a Hamiltonian or a ParametricHamiltonian

          • Hamiltonian: a Lattice combined with a TightBindingModel.

            It also includes a specification of the number of orbitals in each Sublat in the Lattice. A Hamiltonian represents a tight-binding Hamiltonian sharing the same periodicity as the Lattice (it is translationally invariant under Bravais vector shifts).

          • ParametricHamiltonian: like the above, but using a ParametricModel, which makes it dependent on a set of free parameters that can be efficiently adjusted.

          An h::AbstractHamiltonian can be used to produce a Bloch matrix h(ϕ; params...) of the same size as the number of orbitals per unit cell, where ϕ = [ϕᵢ...] are Bloch phases and params are values for the free parameters, if any.

        • Spectrum: the set of eigenpairs (eigenvalues and corresponding eigenvectors) of a Bloch matrix. It can be computed with a number of EigenSolvers.

        • Bandstructure: a collection of spectra, evaluated over a discrete mesh (typically a discretization of the Brillouin zone), that is connected to its mesh neighbors into a linearly-interpolated approximation of the AbstractHamiltonian's bandstructure.

        • SelfEnergy: an operator Σ(ω) defined to act on a LatticeSlice of an AbstractHamiltonian that depends on energy ω.

        • OpenHamiltonian: an AbstractHamiltonian combined with a set of SelfEnergies

        • GreenFunction: an OpenHamiltonian combined with a GreenSolver, which is an algorithm that can in general compute the retarded or advanced Green function at any energy between any subset of sites of the underlying lattice.

          • GreenSlice: a GreenFunction evaluated on a specific set of sites, but at an unspecified energy
          • GreenSolution: a GreenFunction evaluated at a specific energy, but on an unspecified set of sites
        • Observable: a physical observable that can be expressed in terms of a GreenFunction.

          Examples of supported observables include local density of states, current density, transmission probability, conductance and Josephson current

        +Glossary · Quantica.jl

        Glossary

        This is a summary of the type of objects you will be studying.

        • Sublat: a sublattice, representing a number of identical sites within the unit cell of a bounded or unbounded lattice. Each site has a position in an E-dimensional space (E is called the embedding dimension). All sites in a given Sublat will be able to hold the same number of orbitals, and they can be thought of as identical atoms. Each Sublat in a Lattice can be given a unique name, by default :A, :B, etc.

        • Lattice: a collection of Sublats plus a collection of L Bravais vectors that define the periodicity of the lattice. A bounded lattice has L=0, and no Bravais vectors. A Lattice with L > 0 can be understood as a periodic (unbounded) collection of unit cells, each containing a set of sites, each of which belongs to a different sublattice.

        • SiteSelector: a rule that defines a subset of sites in a Lattice (not necessarily restricted to a single unit cell)

        • HopSelector: a rule that defines a subset of site pairs in a Lattice (not necessarily restricted to the same unit cell)

        • LatticeSlice: a finite subset of sites in a Lattice, defined by their cell index (an L-dimensional integer vector, usually denoted by n or cell) and their site index within the unit cell (an integer). A LatticeSlice an be constructed by combining a Lattice and a (bounded) SiteSelector.

        • AbstractModel: either a TightBindingModel or a ParametricModel

          • TightBindingModel: a set of HoppingTerms and OnsiteTerms
            • OnsiteTerm: a rule that, applied to a single site, produces a scalar or a (square) matrix that represents the intra-site Hamiltonian elements (single or multi-orbital)
            • HoppingTerm: a rule that, applied to a pair of sites, produces a scalar or a matrix that represents the inter-site Hamiltonian elements (single or multi-orbital)
          • ParametricModel: a set of ParametricOnsiteTerms and ParametricHoppingTerms
            • ParametricOnsiteTerm: an OnsiteTerm that depends on a set of free parameters that can be adjusted, and that may or may not have a default value
            • ParametricHoppingTerm: a HoppingTerm that depends on parameters, like ParametricOnsiteTerm above
        • AbstractHamiltonian: either a Hamiltonian or a ParametricHamiltonian

          • Hamiltonian: a Lattice combined with a TightBindingModel.

            It also includes a specification of the number of orbitals in each Sublat in the Lattice. A Hamiltonian represents a tight-binding Hamiltonian sharing the same periodicity as the Lattice (it is translationally invariant under Bravais vector shifts).

          • ParametricHamiltonian: like the above, but using a ParametricModel, which makes it dependent on a set of free parameters that can be efficiently adjusted.

          An h::AbstractHamiltonian can be used to produce a Bloch matrix h(ϕ; params...) of the same size as the number of orbitals per unit cell, where ϕ = [ϕᵢ...] are Bloch phases and params are values for the free parameters, if any.

        • Spectrum: the set of eigenpairs (eigenvalues and corresponding eigenvectors) of a Bloch matrix. It can be computed with a number of EigenSolvers.

        • Bandstructure: a collection of spectra, evaluated over a discrete mesh (typically a discretization of the Brillouin zone), that is connected to its mesh neighbors into a linearly-interpolated approximation of the AbstractHamiltonian's bandstructure.

        • SelfEnergy: an operator Σ(ω) defined to act on a LatticeSlice of an AbstractHamiltonian that depends on energy ω.

        • OpenHamiltonian: an AbstractHamiltonian combined with a set of SelfEnergies

        • GreenFunction: an OpenHamiltonian combined with a GreenSolver, which is an algorithm that can in general compute the retarded or advanced Green function at any energy between any subset of sites of the underlying lattice.

          • GreenSlice: a GreenFunction evaluated on a specific set of sites, but at an unspecified energy
          • GreenSolution: a GreenFunction evaluated at a specific energy, but on an unspecified set of sites
        • Observable: a physical observable that can be expressed in terms of a GreenFunction.

          Examples of supported observables include local density of states, current density, transmission probability, conductance and Josephson current

        diff --git a/dev/tutorial/greenfunctions/index.html b/dev/tutorial/greenfunctions/index.html index 3ec6d68c..7f92d2ed 100644 --- a/dev/tutorial/greenfunctions/index.html +++ b/dev/tutorial/greenfunctions/index.html @@ -98,4 +98,4 @@ julia> gx1 = sum(abs2, g(0.1)[siteselector(), 1], dims = 2); -julia> qplot(h, hide = :hops, sitecolor = (i, r) -> gx1[i], siteradius = (i, r) -> gx1[i], minmaxsiteradius = (0, 2), sitecolormap = :balance)Green function from a contact on the right
        Caveat for multiorbital systems

        Since, currently, g(ω)[sᵢ, sⱼ] yields a Matrix over orbitals (instead of over sites), the above example requires single-orbital sites to work. In the future we will probably introduce a way to slice a GreenSolution over sites, similar to the way diagonal works. For the moment, one can use observables like ldos for visualization (see next section), which are all site-based by default.

        +julia> qplot(h, hide = :hops, sitecolor = (i, r) -> gx1[i], siteradius = (i, r) -> gx1[i], minmaxsiteradius = (0, 2), sitecolormap = :balance)Green function from a contact on the right
        Caveat for multiorbital systems

        Since, currently, g(ω)[sᵢ, sⱼ] yields a Matrix over orbitals (instead of over sites), the above example requires single-orbital sites to work. In the future we will probably introduce a way to slice a GreenSolution over sites, similar to the way diagonal works. For the moment, one can use observables like ldos for visualization (see next section), which are all site-based by default.

        diff --git a/dev/tutorial/hamiltonians/index.html b/dev/tutorial/hamiltonians/index.html index c69002ac..3e5dc420 100644 --- a/dev/tutorial/hamiltonians/index.html +++ b/dev/tutorial/hamiltonians/index.html @@ -104,4 +104,4 @@ 0.0+0.0im ⋅ ⋅ ⋅ ⋅ 0.0+0.0im ⋅ ⋅ ⋅ ⋅ 0.0+0.0im ⋅ - ⋅ ⋅ ⋅ 0.0+0.0im

        As a consequence, h and supercell(h) represent exactly the same system, with the same observables, but with a different choice of unitcell.

        These two different behaviors make sense in different situations, so it is important to be aware of the order dependence of transformations. Similar considerations apply to transform, translate and wrap when models are position dependent.

        + ⋅ ⋅ ⋅ 0.0+0.0im

        As a consequence, h and supercell(h) represent exactly the same system, with the same observables, but with a different choice of unitcell.

        These two different behaviors make sense in different situations, so it is important to be aware of the order dependence of transformations. Similar considerations apply to transform, translate and wrap when models are position dependent.

        diff --git a/dev/tutorial/lattices/index.html b/dev/tutorial/lattices/index.html index 9caafda6..0c0e3378 100644 --- a/dev/tutorial/lattices/index.html +++ b/dev/tutorial/lattices/index.html @@ -109,4 +109,4 @@ [0.5, 1.0]

        Currying: chaining transformations with the |> operator

        Many functions in Quantica.jl have a "curried" version that allows them to be chained together using the pipe operator |>.

        Definition of currying

        The curried version of a function f(x1, x2...) is f´ = x1 -> f(x2...), so that the curried form of f(x1, x2...) is x2 |> f´(x2...), or f´(x2...)(x1). This gives the first argument x1 a privileged role. Users of object-oriented languages such as Python may find this use of the |> operator somewhat similar to the way the dot operator works there (i.e. x1.f(x2...)).

        The last example above can then be written as

        julia> LP.honeycomb(a0 = √3) |> transform(f) |> translate(δr) |> sites
         2-element Vector{SVector{2, Float64}}:
          [-0.5, 1.0]
        - [0.5, 1.0]

        This type of curried syntax is natural in Quantica, and will be used extensively in this tutorial.

        + [0.5, 1.0]

        This type of curried syntax is natural in Quantica, and will be used extensively in this tutorial.

        diff --git a/dev/tutorial/models/index.html b/dev/tutorial/models/index.html index 83ae194e..f650f7db 100644 --- a/dev/tutorial/models/index.html +++ b/dev/tutorial/models/index.html @@ -81,4 +81,4 @@ Cell distances : any Hopping range : Inf Reverse hops : false - Parameters : [:B]

        The difference with model_perierls is that model_perierls! will never add any new hoppings. It will only modify previously existing hoppings in a model. Modifiers are not models themselves, and cannot be summed to other models. They are instead meant to be applied sequentially after applying a model.

        In the next section we show how models and modifiers can be used in practice to construct Hamiltonians.

        Mind the `;`

        While syntax like onsite(2, sublats = :B) and onsite(2; sublats = :B) are equivalent in Julia, due to the way keyword arguments are parsed, the same is not true for macro calls like @onsite, @onsite!, @hopping and @hopping!. These macros just emulate the function call syntax. But to work you must currently always use the ; separator for keywords. Hence, something like @onsite((; p) -> p; sublats = :B) works, but @onsite((; p) -> p, sublats = :B) does not.

        + Parameters : [:B]

        The difference with model_perierls is that model_perierls! will never add any new hoppings. It will only modify previously existing hoppings in a model. Modifiers are not models themselves, and cannot be summed to other models. They are instead meant to be applied sequentially after applying a model.

        In the next section we show how models and modifiers can be used in practice to construct Hamiltonians.

        Mind the `;`

        While syntax like onsite(2, sublats = :B) and onsite(2; sublats = :B) are equivalent in Julia, due to the way keyword arguments are parsed, the same is not true for macro calls like @onsite, @onsite!, @hopping and @hopping!. These macros just emulate the function call syntax. But to work you must currently always use the ; separator for keywords. Hence, something like @onsite((; p) -> p; sublats = :B) works, but @onsite((; p) -> p, sublats = :B) does not.

        diff --git a/dev/tutorial/observables/index.html b/dev/tutorial/observables/index.html index c44be320..ebff9e79 100644 --- a/dev/tutorial/observables/index.html +++ b/dev/tutorial/observables/index.html @@ -16,9 +16,9 @@ charge : LinearAlgebra.UniformScaling{Int64}(-1) direction : missing -julia> qplot(h, siteradius = 0.08, sitecolor = :black, siteoutline = 0, hopradius = J, hopcolor = J, minmaxhopradius = (0, 2), hopcolormap = :balance, hopdarken = 0)Current density with magnetic flux
        Remember to construct supercell before applying position-dependent fields

        Note that we built the supercell before applying the model with the magnetic flux. Not doing so would make the gauge field be repeated in each unit cell when expanding the supercell. This was mentioned in the section on Hamiltonians, and is a common mistake when modeling systems with position dependent fields.

        Transmission

        The transmission Tᵢⱼ from contact j to contact i can be computed using transmission. This function accepts a GreenSlice between the contact. Let us recover the four-terminal setup of the preceding section, but let's make it bigger this time

        julia> hcentral = LP.square() |> onsite(4) - hopping(1) |> supercell(region = RP.circle(100) | RP.rectangle((202, 50)) | RP.rectangle((50, 202)))
        +julia> qplot(h, siteradius = 0.08, sitecolor = :black, siteoutline = 0, hopradius = J, hopcolor = J, minmaxhopradius = (0, 2), hopcolormap = :balance, hopdarken = 0)
        Current density with magnetic flux
        Remember to construct supercell before applying position-dependent fields

        Note that we built the supercell before applying the model with the magnetic flux. Not doing so would make the gauge field be repeated in each unit cell when expanding the supercell. This was mentioned in the section on Hamiltonians, and is a common mistake when modeling systems with position dependent fields.

        Transmission

        The transmission Tᵢⱼ from contact j to contact i can be computed using transmission. This function accepts a GreenSlice between the contact. Let us recover the four-terminal setup of the preceding section, but let's make it bigger this time

        julia> hcentral = LP.square() |> hopping(-1) |> supercell(region = RP.circle(100) | RP.rectangle((202, 50)) | RP.rectangle((50, 202)))
         
        -julia> glead = LP.square() |> onsite(4) - hopping(1) |> supercell((1, 0), region = r -> abs(r[2]) <= 50/2) |> greenfunction(GS.Schur(boundary = 0));
        +julia> glead = LP.square() |> hopping(-1) |> supercell((1, 0), region = r -> abs(r[2]) <= 50/2) |> greenfunction(GS.Schur(boundary = 0));
         
         julia> Rot = r -> SA[0 -1; 1 0] * r;  # 90º rotation function
         
        @@ -29,11 +29,11 @@
                    attach(glead, region = r -> r[2] == -101, reverse = true, transform = Rot) |>
                    greenfunction;
         
        -julia> gx1 = sum(abs2, g(0.04)[siteselector(), 1], dims = 2);
        +julia> gx1 = sum(abs2, g(-3.96)[siteselector(), 1], dims = 2);
         
         julia> qplot(hcentral, hide = :hops, siteoutline = 1, sitecolor = (i, r) -> gx1[i], siteradius = (i, r) -> gx1[i], minmaxsiteradius = (0, 2), sitecolormap = :balance)
        Green function from right lead

        It's apparent from the plot that the transmission from right to left (T₂₁ here) at this energy of 0.04 is larger than from right to top (T₃₁). Is this true in general? Let us compute the two transmissions as a function of energy. To show the progress of the calculation we can use a monitor package, such as ProgressMeter

        julia> using ProgressMeter
         
        -julia> T₂₁ = transmission(g[2,1]); T₃₁ = transmission(g[3,1]); ωs = subdiv(0, 8, 201);
        +julia> T₂₁ = transmission(g[2,1]); T₃₁ = transmission(g[3,1]); ωs = subdiv(-4, 4, 201);
         
         julia> T₂₁ω = @showprogress [T₂₁(ω) for ω in ωs]; T₃₁ω = @showprogress [T₃₁(ω) for ω in ωs];
         Progress: 100%|██████████████████████████████████████████████████████████████| Time: 0:01:02
        @@ -44,7 +44,70 @@
           Current contact  : 1
           Bias contact     : 1
         
        -julia> Gω = @showprogress  [G₁₁(ω) for ω in ωs];
        +julia> ωs = subdiv(-4, 4, 201); Gω = @showprogress [G₁₁(ω) for ω in ωs];
         Progress: 100%|██████████████████████████████████████████████████████████████| Time: 0:01:01
         
        -julia> f = Figure(); a = Axis(f[1,1], xlabel = "eV/t", ylabel = "G [e²/h]"); lines!(a, ωs, Gω); f
        Local conductance from right contact
        Sign of non-local conductance

        If you compute a non-local conductance such as conductance(g[2,1])(ω) in this example you will note it is negative. This is actually expected. It means that the current flowing into the system through the right contact when you increase the bias in a different contact is negative, because the current is actually flowing out into the right reservoir.

        Josephson

        +julia> f = Figure(); a = Axis(f[1,1], xlabel = "eV/t", ylabel = "G [e²/h]"); lines!(a, ωs, Gω); fLocal conductance from right contact
        Sign of non-local conductance

        If you compute a non-local conductance such as conductance(g[2,1])(ω) in this example you will note it is negative. This is actually expected. It means that the current flowing into the system through the right contact when you increase the bias in a different contact is negative, because the current is actually flowing out into the right reservoir.

        The conductance can also be computed for hybrid (normal-superconducting) systems. To do so, one first needs to write the model in the Nambu representation, i.e. with particle and hole orbitals on each site (first particles, then holes). In the above examples amounts to switching hopping(-1) to hamiltonian(onsite(Δ*σx) - hopping(σz), orbitals = 2), with σx = SA[0 1; 1 0], σz = SA[1 0; 0 -1] and Δ the pairing amplitude. Then we must specify G₁₁ = conductance(g[1,1], nambu = true) to take into account Andreev reflections. The above example with left, bottom and top leads superconducting (with Δ=0.3) yields the following conductance G₁₁ in the right (normal) lead (we leave the implementation as an exercise for the reader).

        Local conductance from right contact, with other contacts superconducting

        Note that within the gap Andreev reflection leads to an enhancement of conductance, since the contacts are transparent

        Josephson

        The above example showcases normal-superconductor (NS) conductance, which is a Fermi-surface process in response to an electric bias on the normal contacts. In contrast, supercorconductor-superconductor junctions, also known as Josephson junctions, can exhibit supercurrents carried by the full Fermi sea even without a bias. Usually, this supercurrent flows in response to a phase bias between the superconductors, where by phase we mean the complex phase of the Δ order parameter.

        We can compute the supercurrent or the full current-phase relation of a Josephson junction with the command josephson(gs::GreenSlice, ωmax), where gs = g[contact_id] and ωmax is the full bandwidth of the system (i.e. the maximum energy, in absolute value, spanned by the Fermi sea). This latter quantity can be an estimate or even an upper bound, as it is just used to know up to which energy we should integrate the supercurrent. Let us see an example.

        julia> σz = SA[1 0; 0 -1];
        +
        +julia> central_region = RP.circle(50) & !RP.circle(40) | RP.rectangle((4, 10), (-50, 0)) | RP.rectangle((4, 10), (50, 0));
        +
        +julia> h = LP.square() |> hamiltonian(hopping(-σz), orbitals = 2) |> supercell(region = central_region)
        +
        +julia> Σ(ω, Δ) = SA[-ω Δ; conj(Δ) -ω]/sqrt(1-abs2(Δ))
        +
        +julia> g = h |>
        +    attach(@onsite((ω; Δ = 0.2) -> Σ(ω, Δ)); region = r -> r[1] < -51) |>
        +    attach(@onsite((ω; Δ = 0.2, phase = 0) -> Σ(ω, Δ*cis(phase))); region = r -> r[1] > 51) |>
        +    greenfunction
        +GreenFunction{Float64,2,0}: Green function of a Hamiltonian{Float64,2,0}
        +  Solver          : AppliedSparseLUGreenSolver
        +  Contacts        : 2
        +  Contact solvers : (SelfEnergyModelSolver, SelfEnergyModelSolver)
        +  Contact sizes   : (11, 11)
        +  Hamiltonian{Float64,2,0}: Hamiltonian on a 0D Lattice in 2D space
        +    Bloch harmonics  : 1
        +    Harmonic size    : 2884 × 2884
        +    Orbitals         : [2]
        +    Element type     : 2 × 2 blocks (ComplexF64)
        +    Onsites          : 0
        +    Hoppings         : 10800
        +    Coordination     : 3.7448
        +
        +julia> J = josephson(g[1], 4.1)
        +Integrator: Complex-plane integrator
        +  Integration path    : (-4.1 + 1.4901161193847656e-8im, -2.05 + 2.050000014901161im, 0.0 + 1.4901161193847656e-8im)
        +  Integration options : (atol = 1.0e-7,)
        +  Integrand:          :
        +  JosephsonDensity{Float64} : Equilibrium (dc) Josephson current observable before integration over energy
        +    kBT                     : 0.0
        +    Contact                 : 1
        +    Number of phase shifts  : 0
        +
        +julia> qplot(g)
        Josephson junction

        In this case we have chosen to introduce the superconducting leads with a model self-energy, corresponding to a BCS bulk, but any other self-energy form could be used. We have introduced the phase difference (phase) as a model parameter. We can now evaluate the zero-temperature Josephson current simply with

        julia> J(phase = 0)
        +-1.974396994480587e-16
        +
        +julia> J(phase = 0.2)
        +0.004617597139699372

        Note that finite temperatures can be taken using the kBT keyword argument for josephson, see docstring for details.

        One is often interested in the critical current, which is the maximum of the Josephson current over all phase differences. Quantica.jl can compute the integral over a collection of phase differences simulataneously, which is more efficient that computing them one by one. This is done with

        julia> φs = subdiv(0, pi, 11); J = josephson(g[1], 4.1; phases = φs)
        +  Integration path    : (-4.1 + 1.4901161193847656e-8im, -2.05 + 2.050000014901161im, 0.0 + 1.4901161193847656e-8im)
        +  Integration options : (atol = 1.0e-7,)
        +  Integrand:          :
        +  JosephsonDensity{Float64} : Equilibrium (dc) Josephson current observable before integration over energy
        +    kBT                     : 0.0
        +    Contact                 : 1
        +    Number of phase shifts  : 11
        +
        +julia> Iφ = J()
        +11-element Vector{Float64}:
        + 1.868862401627357e-14
        + 0.007231421775452674
        + 0.014242855188877
        + 0.02081870760779799
        + 0.026752065104401878
        + 0.031847203848574666
        + 0.0359131410974842
        + 0.03871895510547465
        + 0.039762442694035505
        + 0.03680096751905469
        + 2.7677727119798235e-14
        +
        +julia> f = Figure(); a = Axis(f[1,1], xlabel = "φ", ylabel = "I [e/h]"); lines!(a, φs, Iφ); scatter!(a, φs, Iφ); f
        Josephson junction current-phase relation diff --git a/dev/tutorial/tutorial/index.html b/dev/tutorial/tutorial/index.html index 64be6faf..87cd30cf 100644 --- a/dev/tutorial/tutorial/index.html +++ b/dev/tutorial/tutorial/index.html @@ -1,2 +1,2 @@ -Welcome · Quantica.jl

        Tutorial

        Welcome to the Quantica.jl tutorial!

        Here you will learn how to use Quantica.jl to build and compute properties of tight-binding models. This includes

        • Defining general Lattices in arbitrary dimensions
        • Defining generic tight-binding Models with arbitrary parameter dependences
        • Building Hamiltonians of mono- or multiorbital systems by combining Lattices and Models
        • Computing Bandstructures of Hamiltonians
        • Computing GreenFunctions of Hamiltonians or OpenHamiltonians (i.e. Hamiltonians with attached self-energies from other Hamiltonians, such as leads).
        • Computing Observables from Green functions, such as spectral densities, current densities, local and nonlocal conductances, Josephson currents, critical currents, transmission probabilities, etc.

        Check the menu on the left for shortcuts to the relevant sections.

        Check the docstrings

        Full usage instructions on all Quantica.jl functions can be found here or within the Julia REPL by querying their docstrings. For example, to obtain details on the hamiltonian function or on the available LatticePresets, just type ?hamiltonian or ?LatticePresets.

        +Welcome · Quantica.jl

        Tutorial

        Welcome to the Quantica.jl tutorial!

        Here you will learn how to use Quantica.jl to build and compute properties of tight-binding models. This includes

        • Defining general Lattices in arbitrary dimensions
        • Defining generic tight-binding Models with arbitrary parameter dependences
        • Building Hamiltonians of mono- or multiorbital systems by combining Lattices and Models
        • Computing Bandstructures of Hamiltonians
        • Computing GreenFunctions of Hamiltonians or OpenHamiltonians (i.e. Hamiltonians with attached self-energies from other Hamiltonians, such as leads).
        • Computing Observables from Green functions, such as spectral densities, current densities, local and nonlocal conductances, Josephson currents, critical currents, transmission probabilities, etc.

        Check the menu on the left for shortcuts to the relevant sections.

        Check the docstrings

        Full usage instructions on all Quantica.jl functions can be found here or within the Julia REPL by querying their docstrings. For example, to obtain details on the hamiltonian function or on the available LatticePresets, just type ?hamiltonian or ?LatticePresets.

      • HCe{ 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%0D6+e4D@JuK(r%4#7uQ(-ELUz5Kxk z4sR;H^x9`2TglcPbU<_L;p^ie%6rC$?(yu$TwntJmB}g2V_N2j2T30HbB~`y9+Y$w z!@y=U;ulUkf*5C;br5V1KmDRn>g>@t#3Sen1f|V~=TZmSx9_CLKvi;v*&n}svdcAp zhDXA_WeZnzERbz(HaSQtpGyca(y3Gz=>6X4(ZJ6c9Cpq*ks-KqEXbp5_$Po8;iHHg zjg+YF^egUE+~n_J2$?`KEHo7X-9()J`VGQjI(8^{DlU`4vvvH2tShhif_|v?-DtgQ z@GJvfPp^75(<33)F=ZnuS@<%1w&^{l2@JT&ez8{=vo&SxT#=}uHO5b2kXvQN45gLN zJ4i7+ltl}~W!k2i!zvHZ+;WgLsuwA7-QQ3J?4g6An+{X#Z8Qc36RZvmJWTB+eZ3V= z>}BD~wRm7>`Y@O`Tyg66x~HLf)M70!Rrkb(8FxV}dRfk|7w5nf$uzN2;X)x^uzun(i{)Cqj)DvBAF~9v9 zyx$e~6`=o^I}?3~mY8ujc1L(Qg@|j=u>W$AyX7l1^Ei&)WH$a<&Drl1|B`qjTG<&z z-cV%6I*CY62w@Q~sh!7YDBW$VASfNe&3e%fqmok%1lV(LYb>LOvkR^3srlWNeUOl&9kEClAWZ zcTU#8--rc{p157^yV8t-9vHkZ2{ebwh(3Y?^R&$2brjBySZ3@%VwbU6=s$f77*u}( zWg?uQ{bFEVxmsqrL_4=s@ZX9r7vIi|X*o(_f*jGrT z+1J@RG?5~j=$inr6E^c3A(0o+cS z;>+eBC0<5fsRUYKaQHAiZ|7x9+SwVenqwF#;BA5GgPS_)R_P;^AH|lC7BLxc9dJ#l z-M6NF+-+XIQJKv;Fi@IIb8U`tp?;LWbdoCi{_7vx@W5@+{Z7BgN!5tH-WH3AOwl7V z(ngH*qDC}gDbhI_%MYRkO!=ApHop85BJW5f4{~l27uFjzDx;N`A@x6)-knyVqmTV? zvHBOc9Gbu{P%W>G?d>OQ{rO`DA{1Ei!(I|hT}0~bgnWLOg+T36;vB8tECE>0ft_;aGgpm1sY4l3k& z2gT$@+40KOs#44|^_U+-Rg5 zrsCAFaMkVX=GT6!?0Tys{QZ>pC{h(>mJ;&N4?kv~l-HD}yUk`i^=rjAc43@;_vh!m zztr|>4{n6?!9nC5hXjXG7Hm)qZ;#KxA@SFH;qqVCNylSXy2gI=>tZa&&5@RPVZ2pQ z@7`(}V7k0k_*z1-_Iyd#L(No&vW+T)GLDQ$tP2+z=T485j=u&TRyN+X3uIjK!5EH&KGp-)A$6btqa*=m17ykwfwY z9FDm?SYRf>xL6ibvY^mpykph?7Cup&d;L1f^-98WX=aJnUt8W5tA#!UnG}sb9r_f@ z+?~(aF-ao9^>p5F`1PBX{Seo{$vPSvlbbfGRf_{MLPui!borac{a%CUhhsj46s%h zbdoc2to*(6G3c1tMg?x86sQquno4`{a3lf4VF@Gl)DTRHA2f%KxPbPgvCih}gXUyo zke{3rK~x#EAL;WyIa;P|qU1=Sq38W>v%*`s(Mao*6j(D*ye#VkUp}GcYLc7>%t#C% z@h34z^H;AF5XSPZa@LS0Dda5dYJXnmN3{?k($*FW4obpXNT|FVx%Gzkg)2Rt*v0 zii!O<(7TwL_~v)=&^4duh&^8LuYg$;2=9O`r(!%Rr~X(nO^{Pb0C+l47(Z|&T%U8+ zo-cf-;Zqh9dco>=+N=qx9USjs|8v0>oLsH_OrQ(TE~9^rk)dGMUt2mxATS6Vq!V;^ zE2P@9vDLG3EW8+Bp!!{jZyRwM@MwSRhv>o_&-Dxcl$*jv@|j%Ct(bWO%RhDe_h+`e zSGRb-W@G~nw_Hy} z&57@?{P79E>El&z6G(y7(X@}XIaPoAJ@+NT*=I$^`0|V7Dz5}3Hsc0Ee|5)owy4jX zTH0N^{m+$)?Z9i~;+HVSN*Z|GQS3G%RgoU*?H3RG`a(r$iJOw}rr9i6wrGknU8Y*NFRHA?MO^O66fC~*&7ttgIAFM1?({xC@ z@n;x={k`Qd`ISVf8G>Y@7S!>`{+`c#6MytJ=ovx{8!EkNo5uY8*5ox0KR}BW)5*9` z{}|Y}&TStXaN2LiZbbyW8qr)w`Be()f*P)m1ulB8gM=fI-_}v5GPfwOe%X)be!sb7 zQxraa1?JC>JwER+kp7uJTnSu9YQ3Qa3?Dx~wwl*`IsD9osKA5GwpWcT)AoWy zNuY%pcY(n{x?#t7ccD8>VSgiBT^V~|?qa3GMnPAEJ1Z>4C*K)d)7qEcs?*`Z8$$hn zWh&tTmyHQqftK!tKkl+g|2!vg{>~eo=bRYO_*v)$Pm^`6Fe_VNj;z3)Ky_zJ^?xex zzk7ZzYn8uV0C$itGd6fC@c3MIaLT8tQcIXIjSkM;CYiD?-6o#x@B0_plXJPzT&dM%NA@33I``-w)>RF?LEUs zo;8eA*JjS?JfqRvov)k;n)$LuT95fg5T3Vw0f%9(Ge&~fh(jf*EtV?%IZA3(vVM`@ zJ#TIv3am1}VqCAE$6uc@z(06B_T-hDBR)%F`jPa`rffWmH8c-lJmYrK)aV3T&~M+6 z@f$Na>zfU4=b#x)_et!dBnl+o)NA#^F1%+w5wNc-gkl&z{^NG)g(h^Me7KW7Fe#k* z^-XlKy?y2N(`Bjc4P0hLQz=6Q_k4}NWiBQu9+MlkkvGp7mS=a=;VU({2j-X6Yd@=~ zyMq6pdi<{u3%=)BjY1S~Fz$?``?kD9>q6*^?vK7@9)o>03Sr>vg?WAji9d?FZdw@d znDzJ+on|ly<4UBG%|Z@7-35E-7YxCy=#>laI-!4_zZA8<72YCd5&r4urjHAbi5p0g zwxa5TeYW=ll##}b%8L8An#oOxUjiQg_F1DBzlEzphiQ$Be!~BkdTs!{knvdD1(b2*i8s z$uboU8L-TWE(=jl`!glhG1ohXljrc*!&OX5=@!F??5-Scz>yI+cXz!DPf0!;UjIIk zW)6ojt&RR9o+O=!NrAYK$q;o*eh>G_xfp9>>-i9bm8-D^Ml>ywqUz`qenL9|NSc%aDLnzL#Kv z63Zi#Ks#)KCo*o7gfLp=wZR%gz1H}iHu%fRq_nxu-7CM}S;E`S;|P0@G*JT#Wot78 z=G+87I%gv;imw74usKn301YuY?iM^r0e|1wyW)2C9<&-P7XTBo!pl_X8*EdflUtx3 zNw0Tn3x>~7LmFu-Wx#m?NnZ%nIq0T9hw1ev--DKJcX9C7)hLSufpkXd`$oZ9vvI2E z{kF1J!(T2doK?1RR!dDUk?ipo0u=3YM-Y|)5~hn%zx?mD&}7`n2JBGq3;+g&goLO+ zXi$blxmKfOg>?+e1H|NI`v+^rU)=mkCwNBw;unUT%~>AflJ+pAWx?VrzmlT?H6!qW zBAFm*dxOco9Ycv3c0lc&;a4BoH$NGZb^#a8{r7L|CVqZ{yg$<-D|pYlzH*g!E}u!i zd5+9w_?}$T7h5o%c=XmLoLz3jYW9gRF#}- zI|)3wZ@+&$s=Ign82zPb;aP6mW#!tiQqwnfKQwOd(%0pcADWnMQ*su^3sOan($=K; zXFdp~YyV#NPtM8Sk~Zx4=cf6On9zA!BnK>_`hA|gmISQlnR#)$8ZL_MdBKtY8|