From e74462af4b385e593f4055b6f6f20f6e8063ac95 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Mon, 8 Apr 2024 22:38:51 +0000 Subject: [PATCH] build based on ca4c599 --- dev/.documenter-siteinfo.json | 2 +- dev/examples/{448535f8.svg => 141f2315.svg} | 76 +- dev/examples/index.html | 4 +- dev/index.html | 2 +- dev/internals/index.html | 2 +- dev/library/index.html | 99 +- dev/manual/bonds/1df9a4c1.svg | 353 - .../bonds/{d68ec864.svg => b026bcc0.svg} | 40462 ++++++++-------- .../bonds/{4ddbd6c4.svg => e11c49a9.svg} | 304 +- dev/manual/bonds/ed220c38.svg | 335 + .../bonds/{cd2017c9.svg => f978ecb8.svg} | 122 +- .../bonds/{3cd59971.svg => fcf69356.svg} | 126 +- dev/manual/bonds/index.html | 10 +- dev/manual/currents/index.html | 2 +- .../evolution/{a5eee69c.svg => 031afa73.svg} | 64 +- .../evolution/{5440029c.svg => 629f3253.svg} | 132 +- .../evolution/{8f8898dd.svg => 642249b9.svg} | 88 +- .../evolution/{03398e41.svg => 9afb850a.svg} | 78 +- .../evolution/{a0530ac9.svg => c3d21ace.svg} | 72 +- .../evolution/{a81b56a0.svg => e6127deb.svg} | 3238 +- .../evolution/{1bde3722.svg => f78e2ff3.svg} | 76 +- dev/manual/evolution/index.html | 26 +- dev/manual/greenfunction/index.html | 2 +- dev/manual/gs_density.png | Bin 632726 -> 638819 bytes .../{966c5009.svg => 56b3d0a4.svg} | 124 +- .../{4b5b7301.svg => 659181d4.svg} | 122 +- dev/manual/hamiltonian/69fab694.svg | 132 - dev/manual/hamiltonian/90cbfa00.svg | 132 + .../{3f0fc195.svg => 943ff154.svg} | 124 +- .../{0f36bf47.svg => d2a4344c.svg} | 124 +- dev/manual/hamiltonian/d8c64e7c.svg | 132 + dev/manual/hamiltonian/ded39c29.svg | 132 - dev/manual/hamiltonian/index.html | 14 +- .../lattice/{3b747d59.svg => 1db8d463.svg} | 602 +- .../lattice/{b03da4bc.svg => 29771633.svg} | 4478 +- .../lattice/{bb952ae7.svg => 2b55d2b8.svg} | 292 +- .../lattice/{75e19247.svg => 2d02e8c7.svg} | 614 +- .../lattice/{4175d3e6.svg => 57048c48.svg} | 298 +- .../lattice/{afdf4c3d.svg => 67826e0a.svg} | 944 +- .../lattice/{308c0e43.svg => 6c77ed59.svg} | 240 +- .../lattice/{5dc3ab53.svg => 792fbfd1.svg} | 3336 +- .../lattice/{739dba8f.svg => 98141201.svg} | 458 +- .../lattice/{8349a3f1.svg => a77702fa.svg} | 1646 +- .../lattice/{f2a4ccea.svg => b22f1967.svg} | 104 +- .../lattice/{bfed3d25.svg => b3953fc9.svg} | 884 +- .../lattice/{a6fbc259.svg => c5c11e42.svg} | 1310 +- .../lattice/{adbeef75.svg => f4e8dd10.svg} | 980 +- .../lattice/{b755204e.svg => f903457a.svg} | 310 +- .../lattice/{2a241c58.svg => fbbbb287.svg} | 7732 +-- dev/manual/lattice/index.html | 30 +- .../{12a7a267.svg => 1332333e.svg} | 160 +- .../{981fce60.svg => 2d20bdfe.svg} | 876 +- .../{6b7eb22d.svg => 48ec91ba.svg} | 540 +- .../{8805b403.svg => 5645fafb.svg} | 876 +- .../{680c338b.svg => aa7e0601.svg} | 2838 +- dev/manual/latticevalue/index.html | 10 +- .../operators/{0da4f8f0.svg => 8be31042.svg} | 208 +- .../operators/{59da11e6.svg => a699e4fc.svg} | 376 +- .../operators/{39ce1d89.svg => e0ce6af7.svg} | 906 +- dev/manual/operators/index.html | 8 +- dev/search_index.js | 2 +- 61 files changed, 38868 insertions(+), 38901 deletions(-) rename dev/examples/{448535f8.svg => 141f2315.svg} (86%) delete mode 100644 dev/manual/bonds/1df9a4c1.svg rename dev/manual/bonds/{d68ec864.svg => b026bcc0.svg} (66%) rename dev/manual/bonds/{4ddbd6c4.svg => e11c49a9.svg} (72%) create mode 100644 dev/manual/bonds/ed220c38.svg rename dev/manual/bonds/{cd2017c9.svg => f978ecb8.svg} (74%) rename dev/manual/bonds/{3cd59971.svg => fcf69356.svg} (74%) rename dev/manual/evolution/{a5eee69c.svg => 031afa73.svg} (86%) rename dev/manual/evolution/{5440029c.svg => 629f3253.svg} (96%) rename dev/manual/evolution/{8f8898dd.svg => 642249b9.svg} (94%) rename dev/manual/evolution/{03398e41.svg => 9afb850a.svg} (94%) rename dev/manual/evolution/{a0530ac9.svg => c3d21ace.svg} (86%) rename dev/manual/evolution/{a81b56a0.svg => e6127deb.svg} (68%) rename dev/manual/evolution/{1bde3722.svg => f78e2ff3.svg} (86%) rename dev/manual/hamiltonian/{966c5009.svg => 56b3d0a4.svg} (86%) rename dev/manual/hamiltonian/{4b5b7301.svg => 659181d4.svg} (76%) delete mode 100644 dev/manual/hamiltonian/69fab694.svg create mode 100644 dev/manual/hamiltonian/90cbfa00.svg rename dev/manual/hamiltonian/{3f0fc195.svg => 943ff154.svg} (86%) rename dev/manual/hamiltonian/{0f36bf47.svg => d2a4344c.svg} (83%) create mode 100644 dev/manual/hamiltonian/d8c64e7c.svg delete mode 100644 dev/manual/hamiltonian/ded39c29.svg rename dev/manual/lattice/{3b747d59.svg => 1db8d463.svg} (71%) rename dev/manual/lattice/{b03da4bc.svg => 29771633.svg} (66%) rename dev/manual/lattice/{bb952ae7.svg => 2b55d2b8.svg} (71%) rename dev/manual/lattice/{75e19247.svg => 2d02e8c7.svg} (69%) rename dev/manual/lattice/{4175d3e6.svg => 57048c48.svg} (70%) rename dev/manual/lattice/{afdf4c3d.svg => 67826e0a.svg} (76%) rename dev/manual/lattice/{308c0e43.svg => 6c77ed59.svg} (72%) rename dev/manual/lattice/{5dc3ab53.svg => 792fbfd1.svg} (66%) rename dev/manual/lattice/{739dba8f.svg => 98141201.svg} (71%) rename dev/manual/lattice/{8349a3f1.svg => a77702fa.svg} (70%) rename dev/manual/lattice/{f2a4ccea.svg => b22f1967.svg} (75%) rename dev/manual/lattice/{bfed3d25.svg => b3953fc9.svg} (72%) rename dev/manual/lattice/{a6fbc259.svg => c5c11e42.svg} (67%) rename dev/manual/lattice/{adbeef75.svg => f4e8dd10.svg} (67%) rename dev/manual/lattice/{b755204e.svg => f903457a.svg} (70%) rename dev/manual/lattice/{2a241c58.svg => fbbbb287.svg} (66%) rename dev/manual/latticevalue/{12a7a267.svg => 1332333e.svg} (57%) rename dev/manual/latticevalue/{981fce60.svg => 2d20bdfe.svg} (69%) rename dev/manual/latticevalue/{6b7eb22d.svg => 48ec91ba.svg} (80%) rename dev/manual/latticevalue/{8805b403.svg => 5645fafb.svg} (72%) rename dev/manual/latticevalue/{680c338b.svg => aa7e0601.svg} (81%) rename dev/manual/operators/{0da4f8f0.svg => 8be31042.svg} (81%) rename dev/manual/operators/{59da11e6.svg => a699e4fc.svg} (74%) rename dev/manual/operators/{39ce1d89.svg => e0ce6af7.svg} (75%) diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index 71ea67c1..e67175b2 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.9.4","generation_timestamp":"2024-04-08T22:17:18","documenter_version":"1.3.0"}} \ No newline at end of file +{"documenter":{"julia_version":"1.9.4","generation_timestamp":"2024-04-08T22:38:41","documenter_version":"1.3.0"}} \ No newline at end of file diff --git a/dev/examples/448535f8.svg b/dev/examples/141f2315.svg similarity index 86% rename from dev/examples/448535f8.svg rename to dev/examples/141f2315.svg index a36230b3..0fd91910 100644 --- a/dev/examples/448535f8.svg +++ b/dev/examples/141f2315.svg @@ -1,52 +1,52 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/examples/index.html b/dev/examples/index.html index fcd11846..8f9d2f51 100644 --- a/dev/examples/index.html +++ b/dev/examples/index.html @@ -66,7 +66,7 @@ plot(ds_bulk, label="ρ(t) (bulk)") plot!(differentiate(ds_bulk), label="dρ(t)/dt (bulk)") plot!(ds_edge, label="ρ(t) (edge)") -plot!(integrate(ds_edge), label="∫ρ(t)dt (edge)")Example block output

Hofstadter butterfly

The Hofstadter butterfly is a fractal-like structure that appears when the tight-binding model is subjected to a magnetic field. It is a plot of the energy spectrum as a function of the magnetic flux through the unit cell.

To create the Hofstadter butterfly, we will use the Landau gauge for the magnetic field. Note that we have to set periodic boundary conditions, and to make them compatible with the gauge field, they should be tweaked a little:

\[\psi(x + L_x, y) = \psi(x, y) e^{2\pi i B y L_x}, +plot!(integrate(ds_edge), label="∫ρ(t)dt (edge)")Example block output

Hofstadter butterfly

The Hofstadter butterfly is a fractal-like structure that appears when the tight-binding model is subjected to a magnetic field. It is a plot of the energy spectrum as a function of the magnetic flux through the unit cell.

To create the Hofstadter butterfly, we will use the Landau gauge for the magnetic field. Note that we have to set periodic boundary conditions, and to make them compatible with the gauge field, they should be tweaked a little:

\[\psi(x + L_x, y) = \psi(x, y) e^{2\pi i B y L_x}, \psi(x, y + L_y) = \psi(x, y)\]

Let us plot the Hofstadter butterfiles for square, triangular and honeycomb lattices. The magnetic field field will be changed from zero to one $\phi_0$ flux quantum per plaquette.

using LatticeModels, Plots
 
 function get_butterfly(l, lx, ly, plaquette_area)
@@ -116,4 +116,4 @@
     plot!(p, plot_title="E = $E, δ = $δ")
 end
 
-gif(anim, "ldos_animation.gif", fps=10)
Example block output +gif(anim, "ldos_animation.gif", fps=10)Example block output diff --git a/dev/index.html b/dev/index.html index 80ae7afb..177aeaa6 100644 --- a/dev/index.html +++ b/dev/index.html @@ -19,4 +19,4 @@ plot!(p[n^2+1], framestyle=:none) scatter!([NaN], zcolor=[NaN], clims=clims, leg=:none, cbar=:right, subplot=n^2+2, framestyle=:none, inset=bbox(0.0, 0.05, 0.95, 0.9), background_subplot=:transparent) -savefig("example.png")

See more examples in the Examples section.

+savefig("example.png")

See more examples in the Examples section.

diff --git a/dev/internals/index.html b/dev/internals/index.html index faff8f24..f8b038c5 100644 --- a/dev/internals/index.html +++ b/dev/internals/index.html @@ -1,4 +1,4 @@ Internals · LatticeModels.jl

This section contains the documentation for the internal structure of LatticeModels.jl.

Warning

This section of documentation is under construction. Some parts may be incomplete.

Advanced features

These features can be useful in non-trivial cases, but are not necessary for basic usage.

AbstractLattice interface

The base of LatticeModels.jl is its interfaces, allowing to define lattices with arbitrary geometry, topology and boundary conditions. The LatticeModels.AbstractLattice interface is the main interface for defining lattices.

Generally speaking, a lattice is a set of sites. Each site, in turn, has its spatial coordinates in its coords field and maybe some additional properties. It also must be a subtype of LatticeModels.AbstractSite.

Note that the bonds between sites and the boundary conditions are initially not part of the lattice, but are added to its metadata later.

Basic functions

Site lookup

Mutable lattices

Site properties

Lattice metadata

Shapes

AbstractBonds interface

The LatticeModels.AbstractBonds interface is used to define different types of bonds between sites. Most generally speaking, such object is a mapping that decides if the sites are connected for each pair.

Note that there are three basic types of bonds in LatticeModels.jl:

  • LatticeModels.AbstractBonds: a most general interface. Basically, it is just a mapping from site pairs to boolean values.
  • LatticeModels.DirectedBonds: this type of bonds defines a set of bonds that has a defined direction. The whole topology can be defined by the "destination" sites for each site. Since the bonds are usually sparse, the general performance of this type of bonds is much higher.
  • LatticeModels.AbstractTranslation: this is a subtype of DirectedBonds, where every site has one or zero "destination" sites. This allows to increase the performance even more, and also to transform the sites in a convenient manner:
site1 = lat[!, x = 1, y = 1]    # Get the site at [1, 1]
 T = Translation(lat, [1, 0])    # Translate the site by [1, 0] vector
-site2 = site1 + T               # `site2` is at [2, 1]

Adapting bonds to the lattice

Boundary conditions

Diagonalizing the Hamiltonian

It is very easy to diagonalize a matrix in Julia. However, problems can arise when the matrix is of some custom type (e. g. sparse or a GPU array). By default LatticeModels.jl makes use of KrylovKit.jl to solve the eigenproblem using the Lanczos algorithm for non-trivial matrix types. However, sometimes it is necessary to use a different algorithm. The LatticeModels.diagonalize_routine is a simple way to add a new algorithm to the default toolchain.

EvolutionSolvers

The LatticeModels.EvolutionSolver interface is used to solve the time-dependent Schrödinger equation. It is used in the Evolution struct to perform unitary evolution. As with the diagonalization problem, one can add a new algorithm to the default toolchain by creating a new EvolutionSolver type.

Currents

The LatticeModels.AbstractCurrents interface allows to define different types of currents on the lattice. This allows it to be a lazy object, which computes the currents only when needed.

To implement basic currents semantics, you need to define the following methods:

  • LatticeModels.lattice(your_currents): returns the lattice, on which the currents are defined.
  • Base.getindex(your_currents, i::Int, j::Int): returns the current between sites with numbers i and j. This is done in such a manner, because you do not usually need the site properties to calculate the currents.
+site2 = site1 + T # `site2` is at [2, 1]

Adapting bonds to the lattice

Boundary conditions

Diagonalizing the Hamiltonian

It is very easy to diagonalize a matrix in Julia. However, problems can arise when the matrix is of some custom type (e. g. sparse or a GPU array). By default LatticeModels.jl makes use of KrylovKit.jl to solve the eigenproblem using the Lanczos algorithm for non-trivial matrix types. However, sometimes it is necessary to use a different algorithm. The LatticeModels.diagonalize_routine is a simple way to add a new algorithm to the default toolchain.

EvolutionSolvers

The LatticeModels.EvolutionSolver interface is used to solve the time-dependent Schrödinger equation. It is used in the Evolution struct to perform unitary evolution. As with the diagonalization problem, one can add a new algorithm to the default toolchain by creating a new EvolutionSolver type.

Currents

The LatticeModels.AbstractCurrents interface allows to define different types of currents on the lattice. This allows it to be a lazy object, which computes the currents only when needed.

To implement basic currents semantics, you need to define the following methods:

  • LatticeModels.lattice(your_currents): returns the lattice, on which the currents are defined.
  • Base.getindex(your_currents, i::Int, j::Int): returns the current between sites with numbers i and j. This is done in such a manner, because you do not usually need the site properties to calculate the currents.
diff --git a/dev/library/index.html b/dev/library/index.html index b11a1521..3a2da291 100644 --- a/dev/library/index.html +++ b/dev/library/index.html @@ -1,5 +1,5 @@ -Library · LatticeModels.jl

Internals

Lattice basics

LatticeModels.SitePropertyType
SiteProperty

An abstract type for a property of a site.

This interface is used to define various properties of a site. They can be accessed using getsiteproperty. This interface is used in following places:

  • lattice[...] syntax to access sites with specific properties.
  • lattice_value[...] syntax to access values defined on sites with specific properties.
  • Functions to generate LatticeValues and operators for specific properties.

Examples

julia> using LatticeModels
+Library · LatticeModels.jl

Internals

Lattice basics

LatticeModels.SitePropertyType
SiteProperty

An abstract type for a property of a site.

This interface is used to define various properties of a site. They can be accessed using getsiteproperty. This interface is used in following places:

  • lattice[...] syntax to access sites with specific properties.
  • lattice_value[...] syntax to access values defined on sites with specific properties.
  • Functions to generate LatticeValues and operators for specific properties.

Examples

julia> using LatticeModels
 
 julia> l = SquareLattice(3, 3);
 
@@ -37,7 +37,7 @@
 
 julia> l[x = 1, y = 2, z = 3]   # No site with defined z property on a 2D lattice
 ERROR: ArgumentError: Invalid axis index 3 of a 2-dim site
-[...]
source
LatticeModels.site_indexFunction
site_index(lat, site[, range])

Return the index of the site in the lattice lat. If range is given, only search in the given range. Return nothing if the site is not found.

source
LatticeModels.site_indexFunction
site_index(lat, site[, range])

Return the index of the site in the lattice lat. If range is given, only search in the given range. Return nothing if the site is not found.

source
LatticeModels.GenericLatticeType
GenericLattice{SiteT}

A generic lattice of SiteT sites.

Example

julia> using LatticeModels
 
 julia> l = GenericLattice{2}()
 0-site GenericLattice{GenericSite{2}} in 2D space
@@ -58,7 +58,7 @@
   Site at [1.0, 0.0]
 
 julia> l[2]
-2-dim GenericSite{2} at [0.0, 1.0]
source
LatticeModels.BravaisSiteType
BravaisSite{N,NU,B}

A site of a BravaisLattice{N,NU,B} lattice.

Fields

  • unitcell: a UnitCell object representing the lattice unit cell.
  • latcoords: a SVector of size N representing the lattice coordinates of the site.
  • basindex: an Int representing the index of the site in the lattice basis.
  • coords: a SVector of size N representing the spatial coordinates of the site.
source
LatticeModels.UnitCellType
UnitCell(translations[, basis; offset, rotate])

Constructs a Bravais lattice unit cell with given translation vectors and locations of basis sites.

Arguments

  • translations: an AbstractMatrix of size N×N representing the translation vectors of the lattice.
  • basis: an AbstractMatrix of size N×NB representing the locations of basis sites. If not provided, the lattice basis will consist of one site located in the bottom-left corner of the unit cell.

Keyword arguments

  • offset: a keyword argument that specifies how to shift the lattice basis. Possible values:
    • :origin: no shift (default).
    • :center: shift the lattice so that the center of the basis is at the origin of the unit cell.
    • :centeralign: shift the lattice so that the center of the basis is at the center of the unit cell.
    • Also accepts an AbstractVector of size N to shift the lattice by a custom vector.
  • rotate: a keyword argument that specifies how to rotate the lattice basis. Possible values:
    • nothing: no rotation (default).
    • An AbstractMatrix of size N×N to rotate the lattice.
    • A Real number to rotate the lattice by this angle in radians.
    • Also accepts an AbstractMatrix of size N×N to rotate the lattice basis.
source
LatticeModels.span_unitcellsMethod
span_unitcells([f, ]unitcell, dims...[; boundaries, offset])

Construct a Bravais lattice by spanning unitcell in dims dimensions, filtered by f.

Arguments

  • f: a function that defines if the site is included in the lattice. Takes a BravaisSite, returns a Bool.
  • unitcell: a UnitCell object.
  • dims: a list of Integers or Ranges specifying the size of the lattice in each dimension.

Keyword arguments

  • default_translations: a list of BravaisTranslations to add to the lattice as default boundary condition axes.
  • boundaries: a BoundaryConditions object specifying the boundary conditions of the lattice.
  • rmdup: a Bool specifying whether to remove sites that are equivalent after applying the boundary conditions.
  • offset: the offset of the lattice from the origin. See UnitCell for details.
  • rotate: a rotation matrix to apply to the lattice. See UnitCell for details.

Keep in mind that the offset and rotation are applied to the unit cell before the lattice is spanned (and f is applied). To apply them after the lattice is spanned, use the postoffset and postrotate keywords.

Examples

julia> using LatticeModels
+2-dim GenericSite{2} at [0.0, 1.0]
source
LatticeModels.BravaisSiteType
BravaisSite{N,NU,B}

A site of a BravaisLattice{N,NU,B} lattice.

Fields

  • unitcell: a UnitCell object representing the lattice unit cell.
  • latcoords: a SVector of size N representing the lattice coordinates of the site.
  • basindex: an Int representing the index of the site in the lattice basis.
  • coords: a SVector of size N representing the spatial coordinates of the site.
source
LatticeModels.UnitCellType
UnitCell(translations[, basis; offset, rotate])

Constructs a Bravais lattice unit cell with given translation vectors and locations of basis sites.

Arguments

  • translations: an AbstractMatrix of size N×N representing the translation vectors of the lattice.
  • basis: an AbstractMatrix of size N×NB representing the locations of basis sites. If not provided, the lattice basis will consist of one site located in the bottom-left corner of the unit cell.

Keyword arguments

  • offset: a keyword argument that specifies how to shift the lattice basis. Possible values:
    • :origin: no shift (default).
    • :center: shift the lattice so that the center of the basis is at the origin of the unit cell.
    • :centeralign: shift the lattice so that the center of the basis is at the center of the unit cell.
    • Also accepts an AbstractVector of size N to shift the lattice by a custom vector.
  • rotate: a keyword argument that specifies how to rotate the lattice basis. Possible values:
    • nothing: no rotation (default).
    • An AbstractMatrix of size N×N to rotate the lattice.
    • A Real number to rotate the lattice by this angle in radians.
    • Also accepts an AbstractMatrix of size N×N to rotate the lattice basis.
source
LatticeModels.span_unitcellsMethod
span_unitcells([f, ]unitcell, dims...[; boundaries, offset])

Construct a Bravais lattice by spanning unitcell in dims dimensions, filtered by f.

Arguments

  • f: a function that defines if the site is included in the lattice. Takes a BravaisSite, returns a Bool.
  • unitcell: a UnitCell object.
  • dims: a list of Integers or Ranges specifying the size of the lattice in each dimension.

Keyword arguments

  • default_translations: a list of BravaisTranslations to add to the lattice as default boundary condition axes.
  • boundaries: a BoundaryConditions object specifying the boundary conditions of the lattice.
  • rmdup: a Bool specifying whether to remove sites that are equivalent after applying the boundary conditions.
  • offset: the offset of the lattice from the origin. See UnitCell for details.
  • rotate: a rotation matrix to apply to the lattice. See UnitCell for details.

Keep in mind that the offset and rotation are applied to the unit cell before the lattice is spanned (and f is applied). To apply them after the lattice is spanned, use the postoffset and postrotate keywords.

Examples

julia> using LatticeModels
 
 julia> using LatticeModels
 
@@ -76,7 +76,7 @@
     └      ┘ └      ┘
 
 julia> span_unitcells(uc, 3, 3) == SquareLattice(3, 3)
-true
source

Lattice constructors

LatticeModels.HoneycombLatticeType
HoneycombLattice

Represents a honeycomb lattice.

Lattice vectors: [1, 0] and [0.5, √3/2], two sites at [0, 0] and [0.5, √3/6] in each unit cell.


HoneycombLattice(a, b)

Construct a honeycomb lattice of a×b spanned unit cells.

source
LatticeModels.KagomeLatticeType
KagomeLattice

Represents a kagome lattice.

Lattice vectors: [1, 0] and [0.5, √3/2], three sites at [0, 0], [0.5, 0] and [0.25, √3/4] in each unit cell.


KagomeLattice(a, b)

Construct a kagome lattice of a×b spanned unit cells.

source
LatticeModels.TriangularLatticeType
TriangularLattice

Represents a triangular lattice. Lattice vectors: [1, 0] and [0.5, √3/2].


TriangularLattice(a, b)

Construct a triangular lattice of a×b spanned unit cells.

source
LatticeModels.GrapheneRibbonFunction
GrapheneRibbon(len, wid[, center; kw...])

Construct a graphene ribbon sample with zigzag edges. To get armchair edges, simply rotate the lattice by 90 degrees.

Arguments

  • len: the length of the ribbon.
  • wid: the width of the ribbon.
  • center: the unit cell coordinates of the bottom-left corner of the ribbon. Default is (0, 0).

All other keyword arguments are passed to span_unitcells (see its documentation for details).

source

Lattice constructors

LatticeModels.HoneycombLatticeType
HoneycombLattice

Represents a honeycomb lattice.

Lattice vectors: [1, 0] and [0.5, √3/2], two sites at [0, 0] and [0.5, √3/6] in each unit cell.


HoneycombLattice(a, b)

Construct a honeycomb lattice of a×b spanned unit cells.

source
LatticeModels.KagomeLatticeType
KagomeLattice

Represents a kagome lattice.

Lattice vectors: [1, 0] and [0.5, √3/2], three sites at [0, 0], [0.5, 0] and [0.25, √3/4] in each unit cell.


KagomeLattice(a, b)

Construct a kagome lattice of a×b spanned unit cells.

source
LatticeModels.TriangularLatticeType
TriangularLattice

Represents a triangular lattice. Lattice vectors: [1, 0] and [0.5, √3/2].


TriangularLattice(a, b)

Construct a triangular lattice of a×b spanned unit cells.

source
LatticeModels.GrapheneRibbonFunction
GrapheneRibbon(len, wid[, center; kw...])

Construct a graphene ribbon sample with zigzag edges. To get armchair edges, simply rotate the lattice by 90 degrees.

Arguments

  • len: the length of the ribbon.
  • wid: the width of the ribbon.
  • center: the unit cell coordinates of the bottom-left corner of the ribbon. Default is (0, 0).

All other keyword arguments are passed to span_unitcells (see its documentation for details).

source
LatticeModels.@bravaisdefMacro
@bravaisdef MyBravaisLattice UnitCell(...)
 @bravaisdef MyBravaisLattice N -> UnitCell(...)

Define a new Bravais lattice type MyBravaisLattice with a unit cell constructor UnitCell(expr). If the notation is N -> UnitCell(expr), the unit cell constructor will be dependent on the dimensionality N. otherwise, the dimensionality will be inferred from the unit cell. N is the dimensionality of the lattice.

Examples

julia> using LatticeModels
 
 julia> @bravaisdef MyBravaisLattice UnitCell([1 0; 0 1]);   # 2D square lattice
@@ -108,9 +108,9 @@
   2.00000 =>
     Bravais[2, 0]
     Bravais[0, 2]
-Boundary conditions: none
source
LatticeModels.BallNDType
BallND{N}([radius, center])

Construct a N-dimensional ball with a given radius and center. Note the aliases: Circle and Ball are BallND{2} and BallND{3} respectively.

Arguments

  • radius: The radius of the ball.
  • center: The center of the ball.
source
LatticeModels.PathType
Path(start, stop)

Construct a path from start to stop.

Arguments

  • start: The start of the path.
  • stop: The end of the path.
source
LatticeModels.PolygonType
Polygon{N}([radius, center])
-Polygon{N}([center; h])

Construct a regular N-sided polygon with a given (circumscribed) radius and center. Note the aliases: Triangle, Square, and Hexagon are Polygon{3}, Polygon{4}, and Polygon{6} respectively.

Arguments

  • radius: The (circumscribed) radius of the polygon.
  • center: The center of the polygon.

Keyword Arguments

  • h: The distance from the center to the vertices. If given, the radius is calculated as h / cos(pi / N).
source
LatticeModels.RectangleType
Rectangle(w, h)

Construct a rectangle with given horizontal and vertical intervals. Usage: Rectangle(1 .. 3, 2 .. 4).

Arguments

  • w: The horizontal range.
  • h: The vertical range.
source
LatticeModels.fillshapesMethod
fillshapes(uc, shapes...[; sites, scale, kw...])

Create a lattice sample with geometry defined by the given shapes. The lattice is filled with sites that are inside the shapes.

Arguments

  • uc: The UnitCell of the lattice. Might also be a lattice type.
  • shapes: The shapes to fill the lattice with.

Keyword Arguments

  • sites: If given, an attepmt will be made to fill the lattice with the given number of sites. The scaling will be approximate and relying on assumptions that the shapes do not overlap.
  • scale: The scaling factor for the shapes. If sites is given, the scaling factor will be calculated automatically.

All other keyword arguments are passed to the lattice constructor. See span_unitcells for more information.

source
LatticeModels.removedangling!Method
removedangling!(lat[; maxdepth])

Remove dangling sites from the lattice. A site is considered dangling if it has less than 2 neighbors. The function will remove all dangling sites and their neighbors recursively up to maxdepth levels.

source
LatticeModels.shaperadiusMethod
shape_radius(unitcell, shape, sites)
-shape_radius(lat, shape[, sites])

Calculate the radius of a shape such that it contains appriximately sites sites.

Arguments

  • unitcell: The UnitCell of the lattice. Might also be a lattice type.
  • lat: The lattice. It is considered that the lattice was constructed in the same shape.
  • shape: The shape to calculate the radius for.
  • sites: The number of sites the shape should contain.
source

Bonds

LatticeModels.AdjacencyMatrixType
AdjacencyMatrix{LT} where {LT<:Lattice}

Represents the bonds on some lattice.


AdjacencyMatrix(lat[, mat])

Construct an adjacency matrix from the mat matrix on the lat lattice.

If mat is not provided, it is assumed to be a zero matrix.

Example

julia> using LatticeModels
+Boundary conditions: none
source
LatticeModels.BallNDType
BallND{N}([radius, center])

Construct a N-dimensional ball with a given radius and center. Note the aliases: Circle and Ball are BallND{2} and BallND{3} respectively.

Arguments

  • radius: The radius of the ball.
  • center: The center of the ball.
source
LatticeModels.PathType
Path(start, stop)

Construct a path from start to stop.

Arguments

  • start: The start of the path.
  • stop: The end of the path.
source
LatticeModels.PolygonType
Polygon{N}([radius, center])
+Polygon{N}([center; h])

Construct a regular N-sided polygon with a given (circumscribed) radius and center. Note the aliases: Triangle, Square, and Hexagon are Polygon{3}, Polygon{4}, and Polygon{6} respectively.

Arguments

  • radius: The (circumscribed) radius of the polygon.
  • center: The center of the polygon.

Keyword Arguments

  • h: The distance from the center to the vertices. If given, the radius is calculated as h / cos(pi / N).
source
LatticeModels.RectangleType
Rectangle(w, h)

Construct a rectangle with given horizontal and vertical intervals. Usage: Rectangle(1 .. 3, 2 .. 4).

Arguments

  • w: The horizontal range.
  • h: The vertical range.
source
LatticeModels.fillshapesMethod
fillshapes(uc, shapes...[; sites, scale, kw...])

Create a lattice sample with geometry defined by the given shapes. The lattice is filled with sites that are inside the shapes.

Arguments

  • uc: The UnitCell of the lattice. Might also be a lattice type.
  • shapes: The shapes to fill the lattice with.

Keyword Arguments

  • sites: If given, an attepmt will be made to fill the lattice with the given number of sites. The scaling will be approximate and relying on assumptions that the shapes do not overlap.
  • scale: The scaling factor for the shapes. If sites is given, the scaling factor will be calculated automatically.

All other keyword arguments are passed to the lattice constructor. See span_unitcells for more information.

source
LatticeModels.removedangling!Method
removedangling!(lat[; maxdepth])

Remove dangling sites from the lattice. A site is considered dangling if it has less than 2 neighbors. The function will remove all dangling sites and their neighbors recursively up to maxdepth levels.

source
LatticeModels.shaperadiusMethod
shape_radius(unitcell, shape, sites)
+shape_radius(lat, shape[, sites])

Calculate the radius of a shape such that it contains appriximately sites sites.

Arguments

  • unitcell: The UnitCell of the lattice. Might also be a lattice type.
  • lat: The lattice. It is considered that the lattice was constructed in the same shape.
  • shape: The shape to calculate the radius for.
  • sites: The number of sites the shape should contain.
source

Bonds

LatticeModels.AdjacencyMatrixType
AdjacencyMatrix{LT} where {LT<:Lattice}

Represents the bonds on some lattice.


AdjacencyMatrix(lat[, mat])

Construct an adjacency matrix from the mat matrix on the lat lattice.

If mat is not provided, it is assumed to be a zero matrix.

Example

julia> using LatticeModels
 
 julia> l = SquareLattice(2, 2);
 
@@ -132,7 +132,7 @@
  ⋅  1  ⋅  ⋅
  1  ⋅  ⋅  1
  ⋅  ⋅  ⋅  1
- ⋅  1  1  ⋅
source
LatticeModels.AdjacencyMatrixMethod
AdjacencyMatrix(f, lat)

Constructs an adjacency matrix from the function f that returns if the sites are connected on the lat lattice.

source
LatticeModels.AdjacencyMatrixMethod
AdjacencyMatrix([lat, ]bonds...)

Constructs an adjacency matrix from the bonds. If lat is not provided, it is inferred from the bonds.

source
LatticeModels.SiteDistanceType
SiteDistance(f, lat)

A bonds type that connects sites based on the distance between them.

Arguments

  • f: A function that takes a distance and returns if the distance is allowed.
  • lat: The lattice where the bonds are defined.
source
LatticeModels.TranslationType
Translation <: AbstractTranslation

A spatial translation on some lattice.

Fields

  • lat: The lattice where the translations are defined.
  • R: The vector of the translation.

Example

julia> using LatticeModels
+ ⋅  1  1  ⋅
source
LatticeModels.AdjacencyMatrixMethod
AdjacencyMatrix(f, lat)

Constructs an adjacency matrix from the function f that returns if the sites are connected on the lat lattice.

source
LatticeModels.AdjacencyMatrixMethod
AdjacencyMatrix([lat, ]bonds...)

Constructs an adjacency matrix from the bonds. If lat is not provided, it is inferred from the bonds.

source
LatticeModels.SiteDistanceType
SiteDistance(f, lat)

A bonds type that connects sites based on the distance between them.

Arguments

  • f: A function that takes a distance and returns if the distance is allowed.
  • lat: The lattice where the bonds are defined.
source
LatticeModels.TranslationType
Translation <: AbstractTranslation

A spatial translation on some lattice.

Fields

  • lat: The lattice where the translations are defined.
  • R: The vector of the translation.

Example

julia> using LatticeModels
 
 julia> gl = GenericLattice([(1, 1), (1, 2), (2, 1), (2, 2)])
 4-site GenericLattice{GenericSite{2}} in 2D space:
@@ -152,9 +152,9 @@
 2-dim GenericSite{2} at [2.0, 1.0]
 
 julia> site1 - tr                       # Inverse translation
-2-dim GenericSite{2} at [0.0, 1.0]
source
LatticeModels.UndefinedLatticeType
UndefinedLattice

A lattice that is not defined. The bonds can be 'defined' on it in context where the lattice is already defined before, e. g. in construct_operator.

source
LatticeModels.adapt_bondsMethod
adapt_bonds(bonds, lat)

Adapt the bonds to the lattice lat. The output can be a different type of bonds, more fitting for the concrete type of lattice.

source
LatticeModels.sitedistanceMethod
sitedistance([lat, ]site1, site2)

Returns the distance between two sites on the lat lattice, taking boundary conditions into account.

Arguments

  • lat: The lattice where the sites are defined.
  • site1 and site2: The sites to measure the distance between.
source
LatticeModels.translate_to_nearestMethod
translate_to_nearest(lat, site1, site2)

Translate site2 to its equivalent nearest to site1 in the lattice lat, taking the boundary conditions into account.

source
LatticeModels.BravaisType
Bravais[ lattice_coords ]

A convenient constructor for a BravaisTranslation that does not permute sublattices.

source
LatticeModels.UndefinedLatticeType
UndefinedLattice

A lattice that is not defined. The bonds can be 'defined' on it in context where the lattice is already defined before, e. g. in construct_operator.

source
LatticeModels.adapt_bondsMethod
adapt_bonds(bonds, lat)

Adapt the bonds to the lattice lat. The output can be a different type of bonds, more fitting for the concrete type of lattice.

source
LatticeModels.sitedistanceMethod
sitedistance([lat, ]site1, site2)

Returns the distance between two sites on the lat lattice, taking boundary conditions into account.

Arguments

  • lat: The lattice where the sites are defined.
  • site1 and site2: The sites to measure the distance between.
source
LatticeModels.translate_to_nearestMethod
translate_to_nearest(lat, site1, site2)

Translate site2 to its equivalent nearest to site1 in the lattice lat, taking the boundary conditions into account.

source
LatticeModels.BravaisType
Bravais[ lattice_coords ]

A convenient constructor for a BravaisTranslation that does not permute sublattices.

source
LatticeModels.BravaisTranslationType
BravaisTranslation([site_indices, ]translate_uc)
 BravaisTranslation(site_indices)
-BravaisTranslation([site_indices; ]axis[, dist=1])

A convenient constructor for a BravaisTranslation object.

Arguments

  • site_indices: a ::Int => ::Int pair with indices of sites connected by the bond;

if omitted, the bond connects sites with the same sublattice index.

  • translate_uc: The unit cell offset.

Keyword arguments

  • axis: The hopping direction axis in terms of unit cell vectors.
  • dist: The hopping distance in terms of unit cell vectors.

If site_indices are equal or undefined and translate_uc is zero, the translation is considered to be a translation of all sites to themselves. An error will be thrown in this case.

source
LatticeModels.BravaisTranslationType
BravaisTranslation{T, N}

A struct representing bonds in some direction in a lattice.

Note that though the dimension count for the bond is static, it is automatically compatible with higher-dimensional lattices.

source
LatticeModels.NearestNeighborType
NearestNeighbor(lat[, N=1])

Returns the nearest neighbor bonds of order N for the lattice lat.

Example

julia> using LatticeModels
+BravaisTranslation([site_indices; ]axis[, dist=1])

A convenient constructor for a BravaisTranslation object.

Arguments

  • site_indices: a ::Int => ::Int pair with indices of sites connected by the bond;

if omitted, the bond connects sites with the same sublattice index.

  • translate_uc: The unit cell offset.

Keyword arguments

  • axis: The hopping direction axis in terms of unit cell vectors.
  • dist: The hopping distance in terms of unit cell vectors.

If site_indices are equal or undefined and translate_uc is zero, the translation is considered to be a translation of all sites to themselves. An error will be thrown in this case.

source
LatticeModels.BravaisTranslationType
BravaisTranslation{T, N}

A struct representing bonds in some direction in a lattice.

Note that though the dimension count for the bond is static, it is automatically compatible with higher-dimensional lattices.

source
LatticeModels.NearestNeighborType
NearestNeighbor(lat[, N=1])

Returns the nearest neighbor bonds of order N for the lattice lat.

Example

julia> using LatticeModels
 
 julia> lat = HoneycombLattice(5, 5);
 
@@ -179,7 +179,7 @@
   Bravais[1, -1, -1, 1]
   Bravais[1, 1, -1, 1]
    ⋮
- on 81-site SquareLattice in 4D space
source
LatticeModels.setnnbondsMethod
setnnbonds(lat, args...; overwrite=false)

Adds the nearest neighbor bonds args to the lattice lat. If overwrite is true, the default nearest neighbor bonds are replaced by args. Otherwise, the new bonds are merged with the default.

Each args can be a bonds type or a distance-bonds pair.

Example

julia> using LatticeModels
+ on 81-site SquareLattice in 4D space
source
LatticeModels.setnnbondsMethod
setnnbonds(lat, args...; overwrite=false)

Adds the nearest neighbor bonds args to the lattice lat. If overwrite is true, the default nearest neighbor bonds are replaced by args. Otherwise, the new bonds are merged with the default.

Each args can be a bonds type or a distance-bonds pair.

Example

julia> using LatticeModels
 
 julia> lat = SquareLattice(3, 3);
 
@@ -190,7 +190,7 @@
   #1 =>
     SiteDistance(0 .. 1)
   #2 =>
-    SiteDistance(1 .. 2)
source

Boundary conditions

LatticeModels.BoundaryConditionsType
BoundaryConditions

A collection of boundary conditions for a lattice.

Fields

  • bcs: A tuple of boundary conditions.
  • depth: The upper limit of the depth of the boundary conditions (used for routing).
source
LatticeModels.FunctionBoundaryType
FunctionBoundary <: Boundary

A boundary condition with a function that returns the phase factor for a given site. The boundary condition is encoded in form $ψ(x + R) = f(x)ψ(x)$, where $f(x)$ is the function and $R$ is the translation vector.


FunctionBoundary(f, translation)

Construct a FunctionBoundary with a given function and translation.

Arguments

  • f: The function that returns the phase factor for a given site.
  • translation: The translation vector of the boundary representad as AbstractTranslation. If an array is passed, it is converted to Translation automatically.
source
LatticeModels.TwistedBoundaryType
TwistedBoundary <: Boundary

A boundary condition with a phase twist. A PeriodicBoundary is a special case of TwistedBoundary with zero twist.


TwistedBoundary(translation, Θ)

Construct a TwistedBoundary with a given translation and twist angle.

Arguments

  • translation: The translation vector of the boundary representad as AbstractTranslation. If an array is passed, it is converted to Translation automatically.
  • Θ: The twist angle in radians.
source
LatticeModels.setboundariesMethod
setboundaries(lat, boundaries...[; checkboundaries=true, rmdup=false])

Set the boundary conditions for the lattice lat.

Arguments

  • lat: The lattice.
  • boundaries: The boundary conditions. It can be a single Boundary or a Tuple of Boundary objects.

Keyword arguments

  • checkboundaries: If true, check if the boundary conditions overlap within the lattice sites.
  • rmdup: If true, remove duplicate sites from the lattice.

Example

julia> using LatticeModels
+    SiteDistance(1 .. 2)
source

Boundary conditions

LatticeModels.BoundaryConditionsType
BoundaryConditions

A collection of boundary conditions for a lattice.

Fields

  • bcs: A tuple of boundary conditions.
  • depth: The upper limit of the depth of the boundary conditions (used for routing).
source
LatticeModels.FunctionBoundaryType
FunctionBoundary <: Boundary

A boundary condition with a function that returns the phase factor for a given site. The boundary condition is encoded in form $ψ(x + R) = f(x)ψ(x)$, where $f(x)$ is the function and $R$ is the translation vector.


FunctionBoundary(f, translation)

Construct a FunctionBoundary with a given function and translation.

Arguments

  • f: The function that returns the phase factor for a given site.
  • translation: The translation vector of the boundary representad as AbstractTranslation. If an array is passed, it is converted to Translation automatically.
source
LatticeModels.TwistedBoundaryType
TwistedBoundary <: Boundary

A boundary condition with a phase twist. A PeriodicBoundary is a special case of TwistedBoundary with zero twist.


TwistedBoundary(translation, Θ)

Construct a TwistedBoundary with a given translation and twist angle.

Arguments

  • translation: The translation vector of the boundary representad as AbstractTranslation. If an array is passed, it is converted to Translation automatically.
  • Θ: The twist angle in radians.
source
LatticeModels.setboundariesMethod
setboundaries(lat, boundaries...[; checkboundaries=true, rmdup=false])

Set the boundary conditions for the lattice lat.

Arguments

  • lat: The lattice.
  • boundaries: The boundary conditions. It can be a single Boundary or a Tuple of Boundary objects.

Keyword arguments

  • checkboundaries: If true, check if the boundary conditions overlap within the lattice sites.
  • rmdup: If true, remove duplicate sites from the lattice.

Example

julia> using LatticeModels
 
 julia> l = SquareLattice(4, 4);
 
@@ -199,7 +199,7 @@
 julia> l2.boundaries
 Boundary conditions (depth = 1):
   Bravais[4, 0] → periodic
-  Bravais[0, 4] → twist θ = 3.14
source

LatticeValue

LatticeModels.LatticeValueType
LatticeValue{T, LT}

Represents a value of type T on a LT lattice.

Fields

  • lattice: the AbstractLattice object the value is defined on
  • values: the values on different sites
source
LatticeModels.LatticeValueMethod
LatticeValue(lat, values)

Constructs a LatticeValue object.

Arguments

  • lat: the lattice the value is defined on.
  • values: an AbstractVector of values on the lattice.

Example

julia> using LatticeModels
+  Bravais[0, 4] → twist θ = 3.14
source

LatticeValue

LatticeModels.LatticeValueType
LatticeValue{T, LT}

Represents a value of type T on a LT lattice.

Fields

  • lattice: the AbstractLattice object the value is defined on
  • values: the values on different sites
source
LatticeModels.LatticeValueMethod
LatticeValue(lat, values)

Constructs a LatticeValue object.

Arguments

  • lat: the lattice the value is defined on.
  • values: an AbstractVector of values on the lattice.

Example

julia> using LatticeModels
 
 julia> l = SquareLattice(2, 2);
 
@@ -225,12 +225,12 @@
 Got following:
   #1: 4-site SquareLattice in 2D space
   #2: 9-site SquareLattice in 2D space
-[...]
source
LatticeModels.LatticeValueMethod
LatticeValue(lat, prop)

Generates a LatticeValue representing the site property prop on lattice lat.

Arguments

  • lat: the lattice the value is defined on.
  • prop: the SiteProperty to be represented. Can be a SiteProperty or a Symbol defining it.
source
LatticeModels.coordvalueMethod
coordvalue(lat, coord)

Generates a LatticeValue representing the spatial coordinate coord on lattice lat.

Arguments

  • lat: the lattice the value is defined on.
  • coord: the coordinate to be represented. Can be an integer or a symbol.
source
LatticeModels.projectMethod
project(lv, axis)

Projects the lv::LatticeValue along the given axis.

Arguments

  • lv: the LatticeValue to be projected.
  • axis: the SiteProperty describing the axis to be projected along.
source

Operators and observables

LatticeModels.LatticeValueMethod
LatticeValue(lat, prop)

Generates a LatticeValue representing the site property prop on lattice lat.

Arguments

  • lat: the lattice the value is defined on.
  • prop: the SiteProperty to be represented. Can be a SiteProperty or a Symbol defining it.
source
LatticeModels.coordvalueMethod
coordvalue(lat, coord)

Generates a LatticeValue representing the spatial coordinate coord on lattice lat.

Arguments

  • lat: the lattice the value is defined on.
  • coord: the coordinate to be represented. Can be an integer or a symbol.
source
LatticeModels.projectMethod
project(lv, axis)

Projects the lv::LatticeValue along the given axis.

Arguments

  • lv: the LatticeValue to be projected.
  • axis: the SiteProperty describing the axis to be projected along.
source

Operators and observables

LatticeModels.coordoperatorMethod
coordoperator(sys, crd)
 coordoperator(basis, crd)
-coordoperator(lat[, internal], crd)

Generate a coordinate operator for the given lattice.

Arguments

  • sys: a System for which the coordinate operators are to be generated.
  • basis: a one-particle Basis for which the coordinate operators are to be generated.
  • lat: a lattice for which the coordinate operators are to be generated.
  • internal: The basis for the internal degrees of freedom.
  • crd: The coordinate to generate the operator for. Must be an integer representing the coordinate index (e. g. 1 for x, 2 for y, etc.) or a symbol (e. g. :x, :y, etc.).
source
LatticeModels.coordoperatorsMethod
coordoperators(sys)
+coordoperator(lat[, internal], crd)

Generate a coordinate operator for the given lattice.

Arguments

  • sys: a System for which the coordinate operators are to be generated.
  • basis: a one-particle Basis for which the coordinate operators are to be generated.
  • lat: a lattice for which the coordinate operators are to be generated.
  • internal: The basis for the internal degrees of freedom.
  • crd: The coordinate to generate the operator for. Must be an integer representing the coordinate index (e. g. 1 for x, 2 for y, etc.) or a symbol (e. g. :x, :y, etc.).
source
LatticeModels.coordoperatorsMethod
coordoperators(sys)
 coordoperators(basis)
-coordoperators(lat[, internal])

Generate a Tuple of coordinate operators for the given lattice.

Arguments

  • sys: a System for which the coordinate operators are to be generated.
  • basis: a one-particle Basis for which the coordinate operators are to be generated.
  • lat: a lattice for which the coordinate operators are to be generated.
  • internal: The basis for the internal degrees of freedom.
source
QuantumOpticsBase.transitionFunction
QuantumOpticsBase.transition(sys::System, site1::LatticeSite, site2::LatticeSite[, op; field])
-QuantumOpticsBase.transition(sys::System, i1::Int, i2::Int[, op; field])

Generate a transition operator between two local states in lattice space. States can be defined by LatticeSites or integers.

Standard rules for functions accepting Systems apply.

source
LatticeModels.interactionMethod
interaction(f, [T, ]sys)

Create an two-site interaction operator for a given NParticles system. The function f takes two arguments, which are the two sites, and returns the interaction energy.

source
LatticeModels.interactionMethod
interaction(f, [T, ]sys, K[; affect_internal=true])

Create an 2K-site interaction operator for a given NParticles system. The function f takes two K-tuples of integer numbers, which are site indices for creation and annihilation operators, and returns the interaction energy.

If affect_internal is true (default), the interaction operator will act on the internal degrees of freedom as well, and f will take four K-tuples — lattice and internal indices for creation and annihilation operators. If the system has no internal degrees of freedom, affect_internal will automatically be set to false and f will take two K-tuples.

source
LatticeModels.localdensityMethod
localdensity(state)

Compute the local density of given state. The result is a LatticeValue with the same lattice as the input state.

Arguments

  • state: A Ket or Bra representing the wavefunction or an Operator representing the density matrix.
source

Hamiltonians

LatticeModels.HamiltonianType
Hamiltonian <: QuantumOpticsBase.DataOperator

A wrapper for a Hamiltonian operator. Contains the operator matrix and the system it acts on.


Hamiltonian(sys, op)

Create a Hamiltonian operator for a given system and a given operator.

Arguments

  • sys: the system the Hamiltonian acts on.
  • op: the operator matrix.

Example

julia> using LatticeModels
+coordoperators(lat[, internal])

Generate a Tuple of coordinate operators for the given lattice.

Arguments

  • sys: a System for which the coordinate operators are to be generated.
  • basis: a one-particle Basis for which the coordinate operators are to be generated.
  • lat: a lattice for which the coordinate operators are to be generated.
  • internal: The basis for the internal degrees of freedom.
source
QuantumOpticsBase.transitionFunction
QuantumOpticsBase.transition(sys::System, site1::LatticeSite, site2::LatticeSite[, op; field])
+QuantumOpticsBase.transition(sys::System, i1::Int, i2::Int[, op; field])

Generate a transition operator between two local states in lattice space. States can be defined by LatticeSites or integers.

Standard rules for functions accepting Systems apply.

source
LatticeModels.interactionMethod
interaction(f, [T, ]sys)

Create an two-site interaction operator for a given NParticles system. The function f takes two arguments, which are the two sites, and returns the interaction energy.

source
LatticeModels.interactionMethod
interaction(f, [T, ]sys, K[; affect_internal=true])

Create an 2K-site interaction operator for a given NParticles system. The function f takes two K-tuples of integer numbers, which are site indices for creation and annihilation operators, and returns the interaction energy.

If affect_internal is true (default), the interaction operator will act on the internal degrees of freedom as well, and f will take four K-tuples — lattice and internal indices for creation and annihilation operators. If the system has no internal degrees of freedom, affect_internal will automatically be set to false and f will take two K-tuples.

source
LatticeModels.localdensityMethod
localdensity(state)

Compute the local density of given state. The result is a LatticeValue with the same lattice as the input state.

Arguments

  • state: A Ket or Bra representing the wavefunction or an Operator representing the density matrix.
source

Hamiltonians

LatticeModels.HamiltonianType
Hamiltonian <: QuantumOpticsBase.DataOperator

A wrapper for a Hamiltonian operator. Contains the operator matrix and the system it acts on.


Hamiltonian(sys, op)

Create a Hamiltonian operator for a given system and a given operator.

Arguments

  • sys: the system the Hamiltonian acts on.
  • op: the operator matrix.

Example

julia> using LatticeModels
 
 julia> l = SquareLattice(4, 4);
 
@@ -261,13 +261,13 @@
 ERROR: Incompatible Hamiltonians:
   #1: One particle on 16-site SquareLattice in 2D space
   #2: One particle on 25-site SquareLattice in 2D space
-[...]
source
LatticeModels.NParticlesMethod
NParticles(lat[, internal], N[; T=0, statistics=FermiDirac])
 NParticles(sys, N[; T=0, statistics=FermiDirac])

Create a manybody system with a given lattice and a given number of particles.

Arguments

  • lat: the lattice of the system.
  • internal: The basis for the internal degrees of freedom.
  • sys: a one-particle system.
  • N: the number of particles in the system.

Keyword Arguments

  • T: the temperature of the system. Default is 0.
  • statistics: the statistics of the particles. Default is FermiDirac.

Example

julia> using LatticeModels
 
 julia> lat = SquareLattice(3, 3);
 
 julia> NParticles(lat, 4, statistics=BoseEinstein)
-NParticles(4 bosons) on 9-site SquareLattice in 2D space
source
LatticeModels.SystemMethod
System(lat[, internal; T, μ, N, statistics])

Create a system with a given lattice and optionally internal degrees of freedom.

Arguments

  • lat: the lattice of the system.
  • internal: The basis for the internal degrees of freedom.

Keyword Arguments

  • T: the temperature of the system. Default is 0.
  • μ: the chemical potential of the system. Use mu synonym if Unicode input is not available.
  • N: the number of particles in the system.
  • statistics: the statistics of the particles. Default is FermiDirac.

Example

julia> using LatticeModels
+NParticles(4 bosons) on 9-site SquareLattice in 2D space
source
LatticeModels.SystemMethod
System(lat[, internal; T, μ, N, statistics])

Create a system with a given lattice and optionally internal degrees of freedom.

Arguments

  • lat: the lattice of the system.
  • internal: The basis for the internal degrees of freedom.

Keyword Arguments

  • T: the temperature of the system. Default is 0.
  • μ: the chemical potential of the system. Use mu synonym if Unicode input is not available.
  • N: the number of particles in the system.
  • statistics: the statistics of the particles. Default is FermiDirac.

Example

julia> using LatticeModels
 
 julia> lat = SquareLattice(3, 3);
 
@@ -278,20 +278,8 @@
 4 non-interacting bosons on 9-site SquareLattice in 2D space
 
 julia> System(lat, mu=0, statistics=BoseEinstein)
-Non-interactng bosons with fixed μ=0.0 on 9-site SquareLattice in 2D space
source
LatticeModels.sampleMethod

Returns the Sample of the object.

Define this function for your type to implement Sample API.

Info

This function can be considered stable internal API. Feel free to use it in your packages.

source
LatticeModels.OperatorBuilderType
OperatorBuilder

A helper struct for building custom operators. This struct is used to build operators for a given system or lattice.

Example

l = SquareLattice(5, 5)
-builder = OperatorBuilder(l, field=LandauGauge(0.1), auto_hermitian=true)
-xhop = Bravais[1, 0]
-yhop = Bravais[0, 1]
-for site in l
-    x, y = site
-    builder[site, site] = x + 2y
-    builder[site, site + xhop] = 1
-    builder[site, site + yhop] = 1im
-    site2 = l[rand(1:25)]
-    builder[site, site2] += 1
-end
-H = Hamiltonian(builder)
source
LatticeModels.OperatorBuilderMethod
OperatorBuilder([T, ]sys, [; field=NoField(), auto_hermitian=false])
-OperatorBuilder([T, ]lat, [internal; field=NoField(), auto_hermitian=false])

Construct an OperatorBuilder for a given system or lattice.

Arguments

  • T: The type of the matrix elements. Defaults to ComplexF64.
  • sys: A System object representing the system.
  • lat: The lattice on which the operator is defined.
  • internal: The basis for the internal degrees of freedom.

Keyword arguments

  • field: The gauge field to use for the bond operators.
  • auto_hermitian: Whether to automatically add the hermitian conjugate of the operator. Defaults to false.

Example

julia> using LatticeModels
+Non-interactng bosons with fixed μ=0.0 on 9-site SquareLattice in 2D space
source
LatticeModels.sampleMethod

Returns the Sample of the object.

Define this function for your type to implement Sample API.

Info

This function can be considered stable internal API. Feel free to use it in your packages.

source
LatticeModels.OperatorBuilderType
OperatorBuilder

A helper struct for building custom operators. This struct is used to build operators for a given system or lattice.

source
LatticeModels.OperatorBuilderMethod
OperatorBuilder([T, ]sys, [; field=NoField(), auto_hermitian=false])
+OperatorBuilder([T, ]lat, [internal; field=NoField(), auto_hermitian=false])

Construct an OperatorBuilder for a given system or lattice.

Arguments

  • T: The type of the matrix elements. Defaults to ComplexF64.
  • sys: A System object representing the system.
  • lat: The lattice on which the operator is defined.
  • internal: The basis for the internal degrees of freedom.

Keyword arguments

  • field: The gauge field to use for the bond operators.
  • auto_hermitian: Whether to automatically add the hermitian conjugate of the operator. Defaults to false.

Example

julia> using LatticeModels
 
 julia> l = SquareLattice(5, 5);
 
@@ -299,12 +287,9 @@
 OperatorBuilder(field=LandauGauge(0.1), auto_hermitian=true)
 System: One particle on 25-site SquareLattice in 2D space
 
-julia> for site in l
-    site_hx = site + Bravais[1, 0]
-    builder[site, site_hx] = 1
-    site_hy = site + Bravais[0, 1]
-    builder[site, site_hy] = 1
-end
+julia> hx = Bravais[1, 0]; hy = Bravais[0, 1];
+
+julia> for site in l; builder[site, site + hx] = builder[site, site + hy] = 1; end
 
 julia> H = Hamiltonian(builder)
 Hamiltonian(dim=25x25)
@@ -319,16 +304,16 @@
 ⎣⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠈⠀⎦
 
 julia> H == tightbinding_hamiltonian(l, field=LandauGauge(0.1))
-true
source
LatticeModels.FastOperatorBuilderMethod
FastOperatorBuilder([T, ]sys, [; field=NoField(), auto_hermitian=false])
-FastOperatorBuilder([T, ]lat, [internal; field=NoField(), auto_hermitian=false])

Construct an OperatorBuilder for a given system or lattice. This version of the constructor uses a slightly faster internal representation of the operator matrix, but only allows increment/decrement assignments. builder[site1, site2] += 1 is allowed, but builder[site1, site2] = 1 is not.

source
LatticeModels.construct_hamiltonianMethod
construct_hamiltonian([T, ]sys, terms...[; field])
-construct_hamiltonian([T, ]lat[, internal, terms...; field])

Construct a Hamiltonian for the given system. Does the same as construct_operator, but wraps the result in a Hamiltonian type.

source
LatticeModels.construct_operatorMethod
construct_operator([T, ]sys, terms...[; field])
-construct_operator([T, ]lat[, internal, terms...; field])

Construct an operator for the given system.

Each of the terms describes a term of the Hamiltonian. The term can be given in several ways:

  • A DataOperator on the lattice, internal or composite basis (will be matched automatically).
  • A Pair of an "internal" and an "on-lattice" part (e.g. int_p => lat_p):
    • The "internal" part can be a DataOperator, a matrix or a number.
    • The "on-lattice" part can be a LatticeValue (represents a diagonal term), a site (represents a local on-site potential), a bond (represents a hopping term) or a site1 => site2 pair (represents a single hopping).
    • Identity "internal" or "on-lattice" parts can be omitted.

See documentation for more details.

Arguments

  • T: The element type of the Hamiltonian. Default is ComplexF64.
  • sys: The System for which the Hamiltonian is constructed.
  • lat: The lattice for which the Hamiltonian is constructed.
  • internal: The basis for the internal degrees of freedom.

Keyword Arguments

  • field: The gauge field to use for the bond operators. Default is NoField().
source
LatticeModels.tightbinding_hamiltonianMethod
tightbinding_hamiltonian([T, ]sys[, args...; t1=1, t2=0, t3=0, field])
-tightbinding_hamiltonian([T, ]lat[, internal, args...; t1=1, t2=0, t3=0, field])

Construct a tight-binding Hamiltonian for the given system.

Arguments

  • T: The element type of the Hamiltonian. Default is ComplexF64.
  • sys: The System for which the Hamiltonian is constructed.
  • lat: The lattice for which the Hamiltonian is constructed.
  • internal: The basis for the internal degrees of freedom.

All other arguments are interpreted as terms of the Hamiltonian and passed to construct_hamiltonian.

Keyword Arguments

  • t1, t2, t3: The hopping amplitudes for the nearest, next-nearest, and next-next-nearest neighbors, respectively.
  • field: The gauge field to use for the bond operators. Default is NoField().
source
LatticeModels.GaugeFieldType
GaugeField <: AbstractField

A gauge field defined by a vector potential function.


GaugeField(func; n)

Create a gauge field with a given vector potential function func.

Arguments

  • func: a function that takes a point in space and returns the vector potential at this point as a SVector or Tuple.
  • n: the number of steps to use in the trapezoidal rule integration.

Example

field = GaugeField(n = 10) do p
+true
source
LatticeModels.FastOperatorBuilderMethod
FastOperatorBuilder([T, ]sys, [; field=NoField(), auto_hermitian=false])
+FastOperatorBuilder([T, ]lat, [internal; field=NoField(), auto_hermitian=false])

Construct an OperatorBuilder for a given system or lattice. This version of the constructor uses a slightly faster internal representation of the operator matrix, but only allows increment/decrement assignments. builder[site1, site2] += 1 is allowed, but builder[site1, site2] = 1 is not.

source
LatticeModels.construct_hamiltonianMethod
construct_hamiltonian([T, ]sys, terms...[; field])
+construct_hamiltonian([T, ]lat[, internal, terms...; field])

Construct a Hamiltonian for the given system. Does the same as construct_operator, but wraps the result in a Hamiltonian type.

source
LatticeModels.construct_operatorMethod
construct_operator([T, ]sys, terms...[; field])
+construct_operator([T, ]lat[, internal, terms...; field])

Construct an operator for the given system.

Each of the terms describes a term of the Hamiltonian. The term can be given in several ways:

  • A DataOperator on the lattice, internal or composite basis (will be matched automatically).
  • A Pair of an "internal" and an "on-lattice" part (e.g. int_p => lat_p):
    • The "internal" part can be a DataOperator, a matrix or a number.
    • The "on-lattice" part can be a LatticeValue (represents a diagonal term), a site (represents a local on-site potential), a bond (represents a hopping term) or a site1 => site2 pair (represents a single hopping).
    • Identity "internal" or "on-lattice" parts can be omitted.

See documentation for more details.

Arguments

  • T: The element type of the Hamiltonian. Default is ComplexF64.
  • sys: The System for which the Hamiltonian is constructed.
  • lat: The lattice for which the Hamiltonian is constructed.
  • internal: The basis for the internal degrees of freedom.

Keyword Arguments

  • field: The gauge field to use for the bond operators. Default is NoField().
source
LatticeModels.tightbinding_hamiltonianMethod
tightbinding_hamiltonian([T, ]sys[, args...; t1=1, t2=0, t3=0, field])
+tightbinding_hamiltonian([T, ]lat[, internal, args...; t1=1, t2=0, t3=0, field])

Construct a tight-binding Hamiltonian for the given system.

Arguments

  • T: The element type of the Hamiltonian. Default is ComplexF64.
  • sys: The System for which the Hamiltonian is constructed.
  • lat: The lattice for which the Hamiltonian is constructed.
  • internal: The basis for the internal degrees of freedom.

All other arguments are interpreted as terms of the Hamiltonian and passed to construct_hamiltonian.

Keyword Arguments

  • t1, t2, t3: The hopping amplitudes for the nearest, next-nearest, and next-next-nearest neighbors, respectively.
  • field: The gauge field to use for the bond operators. Default is NoField().
source
LatticeModels.GaugeFieldType
GaugeField <: AbstractField

A gauge field defined by a vector potential function.


GaugeField(func; n)

Create a gauge field with a given vector potential function func.

Arguments

  • func: a function that takes a point in space and returns the vector potential at this point as a SVector or Tuple.
  • n: the number of steps to use in the trapezoidal rule integration.

Example

field = GaugeField(n = 10) do p
     (-0.5 * p[2], 0.5 * p[1], 0)
-end
source
LatticeModels.LineIntegralGaugeFieldType
LineIntegralGaugeField <: AbstractField

A gauge field defined by a line integral function.


LineIntegralGaugeField(func)

Create a gauge field with a given line integral function func. The function should take two points in space and return the line integral of the vector potential between these points.

Example

field = LineIntegralGaugeField() do p1, p2
+end
source
LatticeModels.LineIntegralGaugeFieldType
LineIntegralGaugeField <: AbstractField

A gauge field defined by a line integral function.


LineIntegralGaugeField(func)

Create a gauge field with a given line integral function func. The function should take two points in space and return the line integral of the vector potential between these points.

Example

field = LineIntegralGaugeField() do p1, p2
     0.5 * (p1[1] * p2[2] - p1[2] * p2[1])   # A = [-y/2, x/2, 0]
-end
source
LatticeModels.NoFieldType
NoField <: AbstractField

A stub object representing zero magnetic field. Use it as a default magnetic field argument in functions - this will not cause any performance overhead.

source
LatticeModels.line_integralMethod
line_integral(field, p1, p2[, n_steps=1])

Calculates the $\int_{p1}^{p2} \overrightarrow{A} \cdot \overrightarrow{dl}$ integral using the trapezoidal rule. Increase n_steps to improve accuracy (note that for linear field gauges like Landau or symmetrical the formula is already pefrectly accurate). If needed, redefine this function for specific field types — this is likely to boost accuracy and performance.

source
LatticeModels.vector_potentialMethod
vector_potential(field, point)

Returns vector potential $\overrightarrow{A}$ for field in location point.

This function should be defined for new field types, but it is not necessary unless you want to use built-in trapezoidal rule integrating.

source
LatticeModels.LandauGaugeType
LandauGauge <: AbstractField

An object representing Landau gauge uniform magnetic field along z-axis.

Fields

  • B: The magnetic field value
source
LatticeModels.PointFluxType
PointFlux{GaugeT} <: AbstractField

An object representing a small magnetic flux through given point. The field is directed along z-axis.

Fields

  • flux: The magnetic flux value.
  • point: A Tuple of x and y coordinates of the point.

PointFlux(flux, [point; gauge])

Construct a PointFlux object with given flux and point.

The optional gauge argument can be used to specify the gauge of the field. Possible values are :axial ($A(r) = B \times \frac{r}{|r|}$) and :singular (the the phase changes if the particle passes below the point). The default is :axial.

source
LatticeModels.SymmetricGaugeType
SymmetricGauge <: AbstractField

An object representing symmetrically gauged uniform magnetic field along z-axis.

Fields

  • B: The magnetic field value
source

Built-in models

LatticeModels.bosehubbardMethod
bosehubbard([type, ]lat, N[; U, T, t1, t2, t3, field])

$\hat{H} = \sum_{i,j}^\text{sites} t_{ij} c^\dagger_i c_j + \sum_i^\text{sites} \frac{U}{2} \hat{n}_i (\hat{n}_i - 1)$

Generates a Bose-Hubbard model hamiltonian on given lattice lat.

Arguments

  • type: The element type of the resulting operator. Default is ComplexF64.
  • N: The number of particles.

Keyword arguments

  • t1, t2, t3 denote the coefficient on first, second and third hoppings respectively. By default t1 is equal to one, the rest are zero.
  • U: The interaction strength. Default is zero.
  • T: The temperature of the system. Default is zero.
  • field: The magnetic field. Default is NoField().
source
LatticeModels.fermihubbardMethod
fermihubbard([type, ]lat, N[; U, T, t1, t2, t3, field])

$\hat{H} = \sum_{i,j}^\text{sites} t_{ij} c^\dagger_i c_j + \sum_i^\text{sites} \frac{U} \hat{n}_i^{\uparrow} \hat{n}_i^{\downarrow}$

Generates a Fermi-Hubbard model hamiltonian on given lattice lat.

Arguments

  • type: The element type of the resulting operator. Default is ComplexF64.
  • N: The number of particles.

Keyword arguments

  • t1, t2, t3 denote the coefficient on first, second and third hoppings respectively. By default t1 is equal to one, the rest are zero.
  • U: The interaction strength. Default is zero.
  • T: The temperature of the system. Default is zero.
  • field: The magnetic field. Default is NoField().
source
LatticeModels.haldaneFunction
haldane(lat, t1, t2[, m=0; T, μ, field, statistics])

$\hat{H} = \sum_i^\text{sublattice A} m c^\dagger_i c_i + \sum_j^\text{sublattice B} m c^\dagger_j c_j + \sum_{i, j}^\text{adjacent} \left( t_1 c^\dagger_i c_j + h. c. \right) + \sum_{i, j}^\text{2-connected, counter-clockwise} \left( i \cdot t_2 c^\dagger_i c_j + h. c. \right)$

Generates a Haldane topological insulator hamiltonian operator on given lattice lat.

Keyword arguments

  • T: The temperature of the system. Default is zero.
  • μ: The chemical potential. Use mu as a synonym if Unicode input is not available.
  • field: The magnetic field. Default is NoField().
  • statistics defines the particle statistics, either FermiDirac or BoseEinstein.
source
LatticeModels.kanemeleMethod
kanemele(lat, t1, t2[; T, μ, field, statistics])

$\hat{H} = \sum_{i, j}^\text{adjacent} \left( t_1 c^\dagger_i c_j + h. c. \right) + \sum_{i, j}^\text{2-connected, counter-clockwise} \left( i \cdot t_2 c^\dagger_i σ_z c_j + h. c. \right)$

Generates a Kane-Mele hamiltonian operator on given lattice lat.

Keyword arguments

  • T: The temperature of the system. Default is zero.
  • μ: The chemical potential. Use keyword mu as a synonym if Unicode input is not available.
  • field: The magnetic field. Default is NoField().
  • statistics defines the particle statistics, either FermiDirac or BoseEinstein.
source
LatticeModels.qwzMethod
qwz(m[; T, μ, field, statistics])
-qwz(lat[, m; T, μ, field, statistics])

$\hat{H} = \sum_i^\text{sites} m_i c^\dagger_i \sigma_z c_i + \sum_i^\text{sites} \left( c^\dagger_{i + \hat{x}} \frac{\sigma_z - i \sigma_x}{2} c_i + c^\dagger_{i + \hat{y}} \frac{\sigma_z - i \sigma_y}{2} c_i + h. c. \right)$

Generates a QWZ model hamiltonian operator on given square lattice lat.

Arguments

  • m (either a LatticeValue or a number) defines the $m_i$ factors

Keyword arguments

  • T: The temperature of the system. Default is zero.
  • μ: The chemical potential. Use mu as a synonym if Unicode input is not available.
  • field: The magnetic field. Default is NoField().
  • statistics defines the particle statistics, either FermiDirac or BoseEinstein.
source

Diagonalization

LatticeModels.densitymatrixMethod
densitymatrix(eig::Eigensystem[; T=0, μ, N, statistics, info=true])

Creates an Operator representing a equilibrium density matrix, given the eigensystem eig of the Hamiltonian.

The resulting distribution will be Fermi-Dirac or Bose-Einstein if the statistics is specified, otherwise the Gibbs distribution will be used.

Keyword arguments

  • T is the temperature of the system. Default is zero.
  • μ is the chemical potential. Use mu as a synonym if Unicode input is not available.
  • N is the number of particles. If specified, the chemical potential is found automatically.
  • statistics defines the particle statistics, either FermiDirac or BoseEinstein.
  • info is a boolean flag to enable/disable logging. Default is true.

Note that if eig is a diagonalized Hamiltonian, the μ, N and statistics parameters are inserted automatically.

source
LatticeModels.diagonalizeMethod
diagonalize(op::DataOperator[, routine; params...])

Finds eigenvalues and eigenvectors for a Operator and stores them in an Eigensystem.

Two routines are available:

  • :lapack uses the eigen function from the standard LinearAlgebra package.
  • :krylovkit uses the Lanczos algorithm from the KrylovKit package. Accepts following parameters:
    • v0 is the starting vector. Default is rand(ComplexF64, size(op.data, 1)).
    • n is the target number of eigenvectors. Default is 10.
    All other keyword arguments are passed to the KrylovKit.eigsolve function. See its documentation for details.
  • :auto automatically selects the routine based on the size of the operator.

The default routine is :lapack for dense operators. If the operator matrix is less than 5000×5000, it is automatically converted to a dense operator. In other cases :krylovkit is used.

Example

julia> using LatticeModels
+end
source
LatticeModels.NoFieldType
NoField <: AbstractField

A stub object representing zero magnetic field. Use it as a default magnetic field argument in functions - this will not cause any performance overhead.

source
LatticeModels.line_integralMethod
line_integral(field, p1, p2[, n_steps=1])

Calculates the $\int_{p1}^{p2} \overrightarrow{A} \cdot \overrightarrow{dl}$ integral using the trapezoidal rule. Increase n_steps to improve accuracy (note that for linear field gauges like Landau or symmetrical the formula is already pefrectly accurate). If needed, redefine this function for specific field types — this is likely to boost accuracy and performance.

source
LatticeModels.vector_potentialMethod
vector_potential(field, point)

Returns vector potential $\overrightarrow{A}$ for field in location point.

This function should be defined for new field types, but it is not necessary unless you want to use built-in trapezoidal rule integrating.

source
LatticeModels.LandauGaugeType
LandauGauge <: AbstractField

An object representing Landau gauge uniform magnetic field along z-axis.

Fields

  • B: The magnetic field value
source
LatticeModels.PointFluxType
PointFlux{GaugeT} <: AbstractField

An object representing a small magnetic flux through given point. The field is directed along z-axis.

Fields

  • flux: The magnetic flux value.
  • point: A Tuple of x and y coordinates of the point.

PointFlux(flux, [point; gauge])

Construct a PointFlux object with given flux and point.

The optional gauge argument can be used to specify the gauge of the field. Possible values are :axial ($A(r) = B \times \frac{r}{|r|}$) and :singular (the the phase changes if the particle passes below the point). The default is :axial.

source
LatticeModels.SymmetricGaugeType
SymmetricGauge <: AbstractField

An object representing symmetrically gauged uniform magnetic field along z-axis.

Fields

  • B: The magnetic field value
source

Built-in models

LatticeModels.bosehubbardMethod
bosehubbard([type, ]lat, N[; U, T, t1, t2, t3, field])

$\hat{H} = \sum_{i,j}^\text{sites} t_{ij} c^\dagger_i c_j + \sum_i^\text{sites} \frac{U}{2} \hat{n}_i (\hat{n}_i - 1)$

Generates a Bose-Hubbard model hamiltonian on given lattice lat.

Arguments

  • type: The element type of the resulting operator. Default is ComplexF64.
  • N: The number of particles.

Keyword arguments

  • t1, t2, t3 denote the coefficient on first, second and third hoppings respectively. By default t1 is equal to one, the rest are zero.
  • U: The interaction strength. Default is zero.
  • T: The temperature of the system. Default is zero.
  • field: The magnetic field. Default is NoField().
source
LatticeModels.fermihubbardMethod
fermihubbard([type, ]lat, N[; U, T, t1, t2, t3, field])

$\hat{H} = \sum_{i,j}^\text{sites} t_{ij} c^\dagger_i c_j + \sum_i^\text{sites} \frac{U} \hat{n}_i^{\uparrow} \hat{n}_i^{\downarrow}$

Generates a Fermi-Hubbard model hamiltonian on given lattice lat.

Arguments

  • type: The element type of the resulting operator. Default is ComplexF64.
  • N: The number of particles.

Keyword arguments

  • t1, t2, t3 denote the coefficient on first, second and third hoppings respectively. By default t1 is equal to one, the rest are zero.
  • U: The interaction strength. Default is zero.
  • T: The temperature of the system. Default is zero.
  • field: The magnetic field. Default is NoField().
source
LatticeModels.haldaneFunction
haldane(lat, t1, t2[, m=0; T, μ, field, statistics])

$\hat{H} = \sum_i^\text{sublattice A} m c^\dagger_i c_i + \sum_j^\text{sublattice B} m c^\dagger_j c_j + \sum_{i, j}^\text{adjacent} \left( t_1 c^\dagger_i c_j + h. c. \right) + \sum_{i, j}^\text{2-connected, counter-clockwise} \left( i \cdot t_2 c^\dagger_i c_j + h. c. \right)$

Generates a Haldane topological insulator hamiltonian operator on given lattice lat.

Keyword arguments

  • T: The temperature of the system. Default is zero.
  • μ: The chemical potential. Use mu as a synonym if Unicode input is not available.
  • field: The magnetic field. Default is NoField().
  • statistics defines the particle statistics, either FermiDirac or BoseEinstein.
source
LatticeModels.kanemeleMethod
kanemele(lat, t1, t2[; T, μ, field, statistics])

$\hat{H} = \sum_{i, j}^\text{adjacent} \left( t_1 c^\dagger_i c_j + h. c. \right) + \sum_{i, j}^\text{2-connected, counter-clockwise} \left( i \cdot t_2 c^\dagger_i σ_z c_j + h. c. \right)$

Generates a Kane-Mele hamiltonian operator on given lattice lat.

Keyword arguments

  • T: The temperature of the system. Default is zero.
  • μ: The chemical potential. Use keyword mu as a synonym if Unicode input is not available.
  • field: The magnetic field. Default is NoField().
  • statistics defines the particle statistics, either FermiDirac or BoseEinstein.
source
LatticeModels.qwzMethod
qwz(m[; T, μ, field, statistics])
+qwz(lat[, m; T, μ, field, statistics])

$\hat{H} = \sum_i^\text{sites} m_i c^\dagger_i \sigma_z c_i + \sum_i^\text{sites} \left( c^\dagger_{i + \hat{x}} \frac{\sigma_z - i \sigma_x}{2} c_i + c^\dagger_{i + \hat{y}} \frac{\sigma_z - i \sigma_y}{2} c_i + h. c. \right)$

Generates a QWZ model hamiltonian operator on given square lattice lat.

Arguments

  • m (either a LatticeValue or a number) defines the $m_i$ factors

Keyword arguments

  • T: The temperature of the system. Default is zero.
  • μ: The chemical potential. Use mu as a synonym if Unicode input is not available.
  • field: The magnetic field. Default is NoField().
  • statistics defines the particle statistics, either FermiDirac or BoseEinstein.
source

Diagonalization

LatticeModels.densitymatrixMethod
densitymatrix(eig::Eigensystem[; T=0, μ, N, statistics, info=true])

Creates an Operator representing a equilibrium density matrix, given the eigensystem eig of the Hamiltonian.

The resulting distribution will be Fermi-Dirac or Bose-Einstein if the statistics is specified, otherwise the Gibbs distribution will be used.

Keyword arguments

  • T is the temperature of the system. Default is zero.
  • μ is the chemical potential. Use mu as a synonym if Unicode input is not available.
  • N is the number of particles. If specified, the chemical potential is found automatically.
  • statistics defines the particle statistics, either FermiDirac or BoseEinstein.
  • info is a boolean flag to enable/disable logging. Default is true.

Note that if eig is a diagonalized Hamiltonian, the μ, N and statistics parameters are inserted automatically.

source
LatticeModels.diagonalizeMethod
diagonalize(op::DataOperator[, routine; params...])

Finds eigenvalues and eigenvectors for a Operator and stores them in an Eigensystem.

Two routines are available:

  • :lapack uses the eigen function from the standard LinearAlgebra package.
  • :krylovkit uses the Lanczos algorithm from the KrylovKit package. Accepts following parameters:
    • v0 is the starting vector. Default is rand(ComplexF64, size(op.data, 1)).
    • n is the target number of eigenvectors. Default is 10.
    All other keyword arguments are passed to the KrylovKit.eigsolve function. See its documentation for details.
  • :auto automatically selects the routine based on the size of the operator.

The default routine is :lapack for dense operators. If the operator matrix is less than 5000×5000, it is automatically converted to a dense operator. In other cases :krylovkit is used.

Example

julia> using LatticeModels
 
 julia> l = SquareLattice(4, 4);
 
@@ -344,12 +329,12 @@
 julia> eig = diagonalize(H)
 Diagonalized Hamiltonian (16 eigenvectors)
 Eigenvalues in range -3.23607 .. 3.23607
-System: One particle on 16-site SquareLattice in 2D space
source
LatticeModels.findgroundstateMethod
findgroundstate(eig::HamiltonianEigensystem)
 findgroundstate(ham::Hamiltonian)

Finds the ground state of a Hamiltonian. Returns the energy and the state.

Example

eig = diagonalize(ham)
-E, ψ = findgroundstate(eig)
source
LatticeModels.groundstateMethod
groundstate(eig::HamiltonianEigensystem)
 groundstate(ham::Hamiltonian)

Finds the ground state of a Hamiltonian. Returns the state.

Example

eig = diagonalize(ham)
-ψ = groundstate(eig)
source
LatticeModels.projectorMethod
projector(f, eig::Eigensystem)

Returns an Operator representing a function applied to the diagonalized operator defined by the formula below:

$\hat{\mathcal{P}} = \sum_i f(A_i) |\psi_i⟩⟨\psi_i|$

source
LatticeModels.projectorMethod
projector(eig::Eigensystem)

returns an Operator that projects onto the eigenvectors of the spectrum, defined by the formula below.

$\hat{\mathcal{P}} = \sum_i |\psi_i⟩⟨\psi_i|$

source

Green's function

LatticeModels.dosMethod
dos(eig[, E; broaden])
-dos(gf[, E; broaden])

Calculates the DOS (density of states) for a given eigensystem at energy E. If E is not specified, a function that calculates the DOS at a given energy is returned.

Arguments

  • eig is an Eigensystem or HamiltonianEigensystem.
  • gf is a GreenFunction.
  • E is the energy at which the DOS is calculated.

Keyword arguments

  • broaden is the broadening factor for the energy levels, default is 0.1.
source
LatticeModels.greenfunctionMethod
greenfunction(psi0, hamp, hamm[; E₀, tol, kw...])

Calculates the Green's function for a many-body system with a given initial state psi0.

Arguments

  • psi0 is the initial state.
  • hamp is the Hamiltonian for the subspace with one more particle than in psi0.
  • hamm is the Hamiltonian for the subspace with one less particle than in psi0.

Keyword arguments

  • E₀ is the energy shift for the Green's function. Default is 0. Use E0 as a synonym if Unicode input is not available.
  • tol is the tolerance for the new eigenvectors. Default is 1e-5.

All other keyword arguments are passed to the diagonalize function. See its documentation for details.

source
LatticeModels.ldosMethod
ldos(gf::GreenFunction, E[; broaden])

Calculates the LDOS (local density of states) for a given Green's function at energy E. broaden is the broadening factor for the energy levels, default is 0.1.

source

Currents

LatticeModels.CurrentsType
Currents <: AbstractCurrents

A AbstractCurrents instance that stores values for all currents explicitly.

source
LatticeModels.CurrentsMethod
Currents(currents[, adjacency_matrix])

Creates a Currents instance for currents.

Arguments

  • currents: The AbstractCurrents object to be turned into Currents. That might be time-consuming, because this requires evaluation of the current between all pairs.
  • adjacency_matrix: If provided, the current will be evaluated only between adjacent sites.

Examples

julia> using LatticeModels
+ψ = groundstate(eig)
source
LatticeModels.projectorMethod
projector(f, eig::Eigensystem)

Returns an Operator representing a function applied to the diagonalized operator defined by the formula below:

$\hat{\mathcal{P}} = \sum_i f(A_i) |\psi_i⟩⟨\psi_i|$

source
LatticeModels.projectorMethod
projector(eig::Eigensystem)

returns an Operator that projects onto the eigenvectors of the spectrum, defined by the formula below.

$\hat{\mathcal{P}} = \sum_i |\psi_i⟩⟨\psi_i|$

source

Green's function

LatticeModels.dosMethod
dos(eig[, E; broaden])
+dos(gf[, E; broaden])

Calculates the DOS (density of states) for a given eigensystem at energy E. If E is not specified, a function that calculates the DOS at a given energy is returned.

Arguments

  • eig is an Eigensystem or HamiltonianEigensystem.
  • gf is a GreenFunction.
  • E is the energy at which the DOS is calculated.

Keyword arguments

  • broaden is the broadening factor for the energy levels, default is 0.1.
source
LatticeModels.greenfunctionMethod
greenfunction(psi0, hamp, hamm[; E₀, tol, kw...])

Calculates the Green's function for a many-body system with a given initial state psi0.

Arguments

  • psi0 is the initial state.
  • hamp is the Hamiltonian for the subspace with one more particle than in psi0.
  • hamm is the Hamiltonian for the subspace with one less particle than in psi0.

Keyword arguments

  • E₀ is the energy shift for the Green's function. Default is 0. Use E0 as a synonym if Unicode input is not available.
  • tol is the tolerance for the new eigenvectors. Default is 1e-5.

All other keyword arguments are passed to the diagonalize function. See its documentation for details.

source
LatticeModels.ldosMethod
ldos(gf::GreenFunction, E[; broaden])

Calculates the LDOS (local density of states) for a given Green's function at energy E. broaden is the broadening factor for the energy levels, default is 0.1.

source

Currents

LatticeModels.CurrentsType
Currents <: AbstractCurrents

A AbstractCurrents instance that stores values for all currents explicitly.

source
LatticeModels.CurrentsMethod
Currents(currents[, adjacency_matrix])

Creates a Currents instance for currents.

Arguments

  • currents: The AbstractCurrents object to be turned into Currents. That might be time-consuming, because this requires evaluation of the current between all pairs.
  • adjacency_matrix: If provided, the current will be evaluated only between adjacent sites.

Examples

julia> using LatticeModels
 
 julia> lat = SquareLattice(4, 4); site1, site2 = lat[1:2];
 
@@ -365,7 +350,7 @@
 Currents{SparseArrays.SparseMatrixCSC{Float64, Int64}} on 16-site SquareLattice in 2D space
 
 julia> c2[site1, site2] ≈ currents[site1, site2]
-true
source
LatticeModels.DensityCurrentsType
DensityCurrents <: AbstractCurrents

Density currents for given state and given hamiltonian.


DensityCurrents(hamiltonian, state)

Constructs a DensityCurrents object for given hamiltonian and state.

Arguments

  • hamiltonian: A Hamiltonian object representing the Hamiltonian of the system.
  • state: A Ket or Bra representing the wavefunction or an Operator representing the density matrix.

Example

Examples

julia> using LatticeModels
+true
source
LatticeModels.DensityCurrentsType
DensityCurrents <: AbstractCurrents

Density currents for given state and given hamiltonian.


DensityCurrents(hamiltonian, state)

Constructs a DensityCurrents object for given hamiltonian and state.

Arguments

  • hamiltonian: A Hamiltonian object representing the Hamiltonian of the system.
  • state: A Ket or Bra representing the wavefunction or an Operator representing the density matrix.

Example

Examples

julia> using LatticeModels
 
 julia> lat = SquareLattice(4, 4);
 
@@ -375,7 +360,7 @@
 
 julia> currents = DensityCurrents(H1, psi)
 Density currents for system:
-One particle on 16-site SquareLattice in 2D space
source
LatticeModels.LocalOperatorCurrentsType
LocalOperatorCurrents <: AbstractCurrents

Local operator (e. g. spin) currents for given state and given hamiltonian.


LocalOperatorCurrents(hamiltonian, state, op)

Constructs a DensityCurrents object for given hamiltonian and state.

Arguments

  • hamiltonian: A Hamiltonian object representing the Hamiltonian of the system.
  • state: A Ket or Bra representing the wavefunction or an Operator representing the density matrix.
  • op: A local (on-site) operator; either an Operator or a matrix of such.

Example

julia> using LatticeModels
+One particle on 16-site SquareLattice in 2D space
source
LatticeModels.LocalOperatorCurrentsType
LocalOperatorCurrents <: AbstractCurrents

Local operator (e. g. spin) currents for given state and given hamiltonian.


LocalOperatorCurrents(hamiltonian, state, op)

Constructs a DensityCurrents object for given hamiltonian and state.

Arguments

  • hamiltonian: A Hamiltonian object representing the Hamiltonian of the system.
  • state: A Ket or Bra representing the wavefunction or an Operator representing the density matrix.
  • op: A local (on-site) operator; either an Operator or a matrix of such.

Example

julia> using LatticeModels
 
 julia> lat = SquareLattice(4, 4); site1, site2 = lat[1:2];
 
@@ -396,8 +381,8 @@
 
 julia> LocalOperatorCurrents(H1, psi, op2)
 ERROR: ArgumentError: Operator must be defined on the internal basis of the Hamiltonian.
-[...]
source
LatticeModels.SubCurrentsType
SubCurrents{CT<:AbstractCurrents} <: AbstractCurrents

A lazy wrapper for a Currents object representing the same currents but on a smaller lattice.

source
LatticeModels.currentsfromMethod
currentsfrom(currents, src)

Create a LatticeValue object with the currents from src region to all other sites.

Arguments

  • currents: The AbstractCurrents object to process.
  • src: The source region. Can be a site/collection of sites or a LatticeValue{Bool} mask.
source
LatticeModels.currentsfromtoFunction
currentsfromto(currents, src[, dst])

Finds the total current from src to dst regions. If dst is not provided, the current from src to all other sites is returned.

Arguments

  • currents: The AbstractCurrents object to process.
  • src: The source region.
  • dst: The destination region.

Both src and dst can be a site/collection of sites or a LatticeValue{Bool} mask.

source
LatticeModels.mapgroup_currentsMethod
mapgroup_currents(f, group, currents[; sortresults=false, sortpairsby])

Find the current between all possible pairs of sites, apply f to every site pair and group the result by value of f,

Arguments

  • f: This function will be applied to all site pairs. Must accept two AbstractSites.
  • group: This function will be used to group the current values for pairs with the same mapped value. Must accept a Vector of numbers.
  • currents: The AbstractCurrents object to process.

Keyword arguments

  • sortresults: if true, the output arrays will be sorted by results of f.
  • sortpairsby: if provided, the sites in each pair will be sorted by this function. Must accept one AbstractSite; by default the order of the sites in the pair matches their order in the lattice. The sign of the current will match the site order.
source

Evolution

LatticeModels.CachedExpType
CachedExp([ham; threshold=1e-10, nztol=1e-14])

A EvolutionSolver that finds the matrix exponential of the Hamiltonian and caches it. The matrix exponential is computed using a scaling and squaring method, so this solver works well with sparse or GPU arrays.

Arguments

  • ham: The Hamiltonian of the system. It can be an Operator or its matrix.
  • threshold: The threshold for the error in the matrix exponential.
  • nztol: The tolerance for dropping small elements in the matrix exponential if it is sparse.
source
LatticeModels.EvolutionType
Evolution([solver, ]hamiltonian, states...; timedomain, namedstates...)

Create an Evolution object that can be used to evolve states in time according to the Schrödinger equation.

Arguments

  • solver: A EvolutionSolver object that will be used to evolve the states. If omitted, a CachedExp solver will be created.
  • hamiltonian: The Hamiltonian of the system. It can be a matrix, a time-dependent operator or a function that returns the Hamiltonian at a given time.
  • states and namedstates: The states to be evolved. They can be Ket wavefunctions or DataOperator density matrices.
  • timedomain: The time domain to be used for the evolution. If omitted, the non-iterable Evolution object will be returned, and you will be able to call it with the time domain later.

See EvolutionSolver for more information about solvers.

Warning

Please note that the Evolution object is a stateful iterator. This means that it keeps track of the current time and the states as they evolve. You can perform evolution multiple times, but the timeline will be kept and the states will be updated in place.

Also do not edit the states in place, as this will affect the evolution. If you need to modify the states or save them, make a copy of them first.

source
LatticeModels.KrylovKitExpType
KrylovKitExp([ham; kw...])

A EvolutionSolver that uses the exponentiate function from KrylovKit.jl to evolve the wavefunction vectors. This solver is useful for large, sparse, time-dependent Hamiltonians.

Arguments

  • ham: The Hamiltonian of the system. It can be an Operator or its matrix.
  • kw...: Keyword arguments to be passed to exponentiate.
source
LatticeModels.TimeSequenceMethod
TimeSequence(f, ev, times)
-TimeSequence(f, ev_iter)

Constructs a TimeSequence by iterating the evolution iterator ev and applying the function f to each moment.

Arguments

  • f: A function that takes a moment and returns a value. The function is applied to each moment in the evolution.
  • ev: An Evolution object.
  • times: A range of times to evaluate the function at.
  • ev_iter: An evoltuion iterator that yields moments. Think of it as ev(times).
source
LatticeModels.differentiate!Method
differentiate!(tseq::TimeSequence)

Differentiate the values stored in tseq by time using the symmetric difference formula. The new values are written into tseq.

Example

julia> using LatticeModels
+[...]
source
LatticeModels.SubCurrentsType
SubCurrents{CT<:AbstractCurrents} <: AbstractCurrents

A lazy wrapper for a Currents object representing the same currents but on a smaller lattice.

source
LatticeModels.currentsfromMethod
currentsfrom(currents, src)

Create a LatticeValue object with the currents from src region to all other sites.

Arguments

  • currents: The AbstractCurrents object to process.
  • src: The source region. Can be a site/collection of sites or a LatticeValue{Bool} mask.
source
LatticeModels.currentsfromtoFunction
currentsfromto(currents, src[, dst])

Finds the total current from src to dst regions. If dst is not provided, the current from src to all other sites is returned.

Arguments

  • currents: The AbstractCurrents object to process.
  • src: The source region.
  • dst: The destination region.

Both src and dst can be a site/collection of sites or a LatticeValue{Bool} mask.

source
LatticeModels.mapgroup_currentsMethod
mapgroup_currents(f, group, currents[; sortresults=false, sortpairsby])

Find the current between all possible pairs of sites, apply f to every site pair and group the result by value of f,

Arguments

  • f: This function will be applied to all site pairs. Must accept two AbstractSites.
  • group: This function will be used to group the current values for pairs with the same mapped value. Must accept a Vector of numbers.
  • currents: The AbstractCurrents object to process.

Keyword arguments

  • sortresults: if true, the output arrays will be sorted by results of f.
  • sortpairsby: if provided, the sites in each pair will be sorted by this function. Must accept one AbstractSite; by default the order of the sites in the pair matches their order in the lattice. The sign of the current will match the site order.
source

Evolution

LatticeModels.CachedExpType
CachedExp([ham; threshold=1e-10, nztol=1e-14])

A EvolutionSolver that finds the matrix exponential of the Hamiltonian and caches it. The matrix exponential is computed using a scaling and squaring method, so this solver works well with sparse or GPU arrays.

Arguments

  • ham: The Hamiltonian of the system. It can be an Operator or its matrix.
  • threshold: The threshold for the error in the matrix exponential.
  • nztol: The tolerance for dropping small elements in the matrix exponential if it is sparse.
source
LatticeModels.EvolutionType
Evolution([solver, ]hamiltonian, states...; timedomain, namedstates...)

Create an Evolution object that can be used to evolve states in time according to the Schrödinger equation.

Arguments

  • solver: A EvolutionSolver object that will be used to evolve the states. If omitted, a CachedExp solver will be created.
  • hamiltonian: The Hamiltonian of the system. It can be a matrix, a time-dependent operator or a function that returns the Hamiltonian at a given time.
  • states and namedstates: The states to be evolved. They can be Ket wavefunctions or DataOperator density matrices.
  • timedomain: The time domain to be used for the evolution. If omitted, the non-iterable Evolution object will be returned, and you will be able to call it with the time domain later.

See EvolutionSolver for more information about solvers.

Warning

Please note that the Evolution object is a stateful iterator. This means that it keeps track of the current time and the states as they evolve. You can perform evolution multiple times, but the timeline will be kept and the states will be updated in place.

Also do not edit the states in place, as this will affect the evolution. If you need to modify the states or save them, make a copy of them first.

source
LatticeModels.KrylovKitExpType
KrylovKitExp([ham; kw...])

A EvolutionSolver that uses the exponentiate function from KrylovKit.jl to evolve the wavefunction vectors. This solver is useful for large, sparse, time-dependent Hamiltonians.

Arguments

  • ham: The Hamiltonian of the system. It can be an Operator or its matrix.
  • kw...: Keyword arguments to be passed to exponentiate.
source
LatticeModels.TimeSequenceMethod
TimeSequence(f, ev, times)
+TimeSequence(f, ev_iter)

Constructs a TimeSequence by iterating the evolution iterator ev and applying the function f to each moment.

Arguments

  • f: A function that takes a moment and returns a value. The function is applied to each moment in the evolution.
  • ev: An Evolution object.
  • times: A range of times to evaluate the function at.
  • ev_iter: An evoltuion iterator that yields moments. Think of it as ev(times).
source
LatticeModels.differentiate!Method
differentiate!(tseq::TimeSequence)

Differentiate the values stored in tseq by time using the symmetric difference formula. The new values are written into tseq.

Example

julia> using LatticeModels
 
 julia> tseq = TimeSequence(0:0.1:10, 0:0.1:10)  # f(t) = t
 TimeSequence{Float64} with 101 entry
@@ -425,7 +410,7 @@
   0.65 => 1.0
   0.75 => 1.0
   0.85 => 1.0
-  ⋮
source
LatticeModels.integrate!Method
integrate!(tseq::TimeSequence)

Integrate the values stored in tseq over time using the trapezoidal rule. The new values are written into tseq. The first value is set to zero.

Example

julia> using LatticeModels
+  ⋮
source
LatticeModels.integrate!Method
integrate!(tseq::TimeSequence)

Integrate the values stored in tseq over time using the trapezoidal rule. The new values are written into tseq. The first value is set to zero.

Example

julia> using LatticeModels
 
 julia> tseq = TimeSequence(0:0.1:10, 0:0.1:10)  # f(t) = t
 TimeSequence{Float64} with 101 entry
@@ -453,4 +438,4 @@
   0.6 => 0.18
   0.7 => 0.245
   0.8 => 0.32
-  ⋮
source

Internals

LatticeModels.AbstractLatticeType
AbstractLattice{SiteT}

An abstract type for a lattice of SiteT sites.

Methods for subtypes to implement

  • length(l::AbstractLattice): Return the number of sites in the lattice.
  • site_index(l::AbstractLattice, site::SiteT): Return the index of the site in the lattice.
  • getindex(l::AbstractLattice, i::Int): Return the site with the given index.
  • getindex(l::AbstractLattice, is::AbstractVector{Int}): Return an AbstractLattice with the sites at the given indices.

Optional methods for mutable lattices

  • emptymutable(l::AbstractLattice, ::Type{SiteT}): Return an empty mutable instance of lattice.
  • copymutable(l::AbstractLattice): Return a mutable copy of the lattice.
  • push!(l::AbstractLattice, site::SiteT): Add a site to the lattice.
  • deleteat!(l::AbstractLattice, is::AbstractVector{Int}): Remove the sites with the given indices from the lattice.
source
LatticeModels.AbstractSiteType
AbstractSite{N}

An abstract type for a site of a N-dimensional lattice.

Fields

  • coords: A SVector of size N representing the spatial coordinates of the site. All subtypes are expected to have this field.
source
LatticeModels.AbstractBondsType
AbstractBonds{LT}

An abstract type for bonds on some lattice.

Methods for subtypes to implement

  • lattice(bonds::AbstractBonds): Returns the lattice where the bonds are defined.
  • isadjacent(bonds::AbstractBonds, site1::AbstractSite, site2::AbstractSite): Returns if the sites are connected by the bonds.

Optional methods for subtypes to implement

  • adapt_bonds(bonds::AbstractBonds, l::AbstractLattice)
source
LatticeModels.DirectedBondsType
DirectedBonds{LT} <: AbstractBonds{LT}

An abstract type for bonds on some lattice that have a direction.

Methods for subtypes to implement

  • lattice(bonds::DirectionalBonds): Returns the lattice where the bonds are defined.
  • destinations(bonds::DirectionalBonds, site::AbstractSite): Returns the sites where the

site is connected to, accounting for the direction of the bonds.

source
LatticeModels.AbstractTranslationType
AbstractTranslation{LT}

An abstract type for translations on some lattice.

Methods for subtypes to implement

  • lattice(bonds::AbstractTranslation): Returns the lattice where the translations are defined.
  • destination(bonds::AbstractTranslation, site::AbstractSite): Returns the site where the site is translated to.

Optional methods for subtypes to implement

  • adapt_bonds(bonds::AbstractTranslation, l::AbstractLattice): Adapt the translation to the lattice l. The output can be a different type of translation, more fitting for the concrete type of lattice.
  • inv(bonds::AbstractTranslation): Returns the inverse of the translation, if any.
source
LatticeModels.AbstractCurrentsType
AbstractCurrents

Supertype for all type representing currents-like values on a lattice. Subtypes must implement Base.getindex(::Int, ::Int) and lattice functions.

source
LatticeModels.LookupTableType
LookupTable

A helper data structure to quickly find the index of a site in a lattice.

Relies on sitekey(site) and secondarykey(function) functions to determine the index of a site in the lattice.

Works well under following assumptions:

  • The sitekey is some integer property of the sites.
  • The sites in the lattice are ordered by sitekey.
  • The numbering is mostly contiguous, i.e. there are no (or few) gaps in the numbering.
  • The secondarykey is also integer, mostly contiguous, ordered and unique for all sites with the same sitekey.

Set them to nothing to disable usage.

source
LatticeModels.EvolutionSolverType
EvolutionSolver

Abstract type for solvers that can be used to evolve states in time according to the Schrödinger equation.

See also concrete implementations: CachedExp, KrylovKitExp.

Methods to implement

  • update_solver!(solver, hamiltonian, dt, force=false): Update the solver to evolve the states according to the given Hamiltonian and time step. If force is true, the solver should always update, even if the Hamiltonian and time step are seemingly the same as the previous ones.
  • step!(solver, state, cache): Evolve the given state in time using the solver. The cache argument is used to store intermediate results and can be nothing if the solver does not need it.
  • evolution_cache(solver, state): Return a cache object that can be used to store intermediate results for the given state. Returns nothing if the solver does not need a cache for the given state (this is the default implementation).
source
LatticeModels.addlookuptableFunction
addlookuptable(lat)

Adds a lookup table to the lattice lat and returns the lattice with the lookup table.

Warning

Make sure you add the lookup table to the lattice after you stop making changes to it. Otherwise the results may be unpredictable.

This operation is not in-place.

source
+ ⋮
source

Internals

LatticeModels.AbstractLatticeType
AbstractLattice{SiteT}

An abstract type for a lattice of SiteT sites.

Methods for subtypes to implement

  • length(l::AbstractLattice): Return the number of sites in the lattice.
  • site_index(l::AbstractLattice, site::SiteT): Return the index of the site in the lattice.
  • getindex(l::AbstractLattice, i::Int): Return the site with the given index.
  • getindex(l::AbstractLattice, is::AbstractVector{Int}): Return an AbstractLattice with the sites at the given indices.

Optional methods for mutable lattices

  • emptymutable(l::AbstractLattice, ::Type{SiteT}): Return an empty mutable instance of lattice.
  • copymutable(l::AbstractLattice): Return a mutable copy of the lattice.
  • push!(l::AbstractLattice, site::SiteT): Add a site to the lattice.
  • deleteat!(l::AbstractLattice, is::AbstractVector{Int}): Remove the sites with the given indices from the lattice.
source
LatticeModels.AbstractSiteType
AbstractSite{N}

An abstract type for a site of a N-dimensional lattice.

Fields

  • coords: A SVector of size N representing the spatial coordinates of the site. All subtypes are expected to have this field.
source
LatticeModels.AbstractBondsType
AbstractBonds{LT}

An abstract type for bonds on some lattice.

Methods for subtypes to implement

  • lattice(bonds::AbstractBonds): Returns the lattice where the bonds are defined.
  • isadjacent(bonds::AbstractBonds, site1::AbstractSite, site2::AbstractSite): Returns if the sites are connected by the bonds.

Optional methods for subtypes to implement

  • adapt_bonds(bonds::AbstractBonds, l::AbstractLattice)
source
LatticeModels.DirectedBondsType
DirectedBonds{LT} <: AbstractBonds{LT}

An abstract type for bonds on some lattice that have a direction.

Methods for subtypes to implement

  • lattice(bonds::DirectionalBonds): Returns the lattice where the bonds are defined.
  • destinations(bonds::DirectionalBonds, site::AbstractSite): Returns the sites where the

site is connected to, accounting for the direction of the bonds.

source
LatticeModels.AbstractTranslationType
AbstractTranslation{LT}

An abstract type for translations on some lattice.

Methods for subtypes to implement

  • lattice(bonds::AbstractTranslation): Returns the lattice where the translations are defined.
  • destination(bonds::AbstractTranslation, site::AbstractSite): Returns the site where the site is translated to.

Optional methods for subtypes to implement

  • adapt_bonds(bonds::AbstractTranslation, l::AbstractLattice): Adapt the translation to the lattice l. The output can be a different type of translation, more fitting for the concrete type of lattice.
  • inv(bonds::AbstractTranslation): Returns the inverse of the translation, if any.
source
LatticeModels.AbstractCurrentsType
AbstractCurrents

Supertype for all type representing currents-like values on a lattice. Subtypes must implement Base.getindex(::Int, ::Int) and lattice functions.

source
LatticeModels.LookupTableType
LookupTable

A helper data structure to quickly find the index of a site in a lattice.

Relies on sitekey(site) and secondarykey(function) functions to determine the index of a site in the lattice.

Works well under following assumptions:

  • The sitekey is some integer property of the sites.
  • The sites in the lattice are ordered by sitekey.
  • The numbering is mostly contiguous, i.e. there are no (or few) gaps in the numbering.
  • The secondarykey is also integer, mostly contiguous, ordered and unique for all sites with the same sitekey.

Set them to nothing to disable usage.

source
LatticeModels.EvolutionSolverType
EvolutionSolver

Abstract type for solvers that can be used to evolve states in time according to the Schrödinger equation.

See also concrete implementations: CachedExp, KrylovKitExp.

Methods to implement

  • update_solver!(solver, hamiltonian, dt, force=false): Update the solver to evolve the states according to the given Hamiltonian and time step. If force is true, the solver should always update, even if the Hamiltonian and time step are seemingly the same as the previous ones.
  • step!(solver, state, cache): Evolve the given state in time using the solver. The cache argument is used to store intermediate results and can be nothing if the solver does not need it.
  • evolution_cache(solver, state): Return a cache object that can be used to store intermediate results for the given state. Returns nothing if the solver does not need a cache for the given state (this is the default implementation).
source
LatticeModels.addlookuptableFunction
addlookuptable(lat)

Adds a lookup table to the lattice lat and returns the lattice with the lookup table.

Warning

Make sure you add the lookup table to the lattice after you stop making changes to it. Otherwise the results may be unpredictable.

This operation is not in-place.

source
diff --git a/dev/manual/bonds/1df9a4c1.svg b/dev/manual/bonds/1df9a4c1.svg deleted file mode 100644 index e03839b9..00000000 --- a/dev/manual/bonds/1df9a4c1.svg +++ /dev/null @@ -1,353 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/manual/bonds/d68ec864.svg b/dev/manual/bonds/b026bcc0.svg similarity index 66% rename from dev/manual/bonds/d68ec864.svg rename to dev/manual/bonds/b026bcc0.svg index d3a93bf4..8d39171b 100644 --- a/dev/manual/bonds/d68ec864.svg +++ b/dev/manual/bonds/b026bcc0.svg @@ -1,20246 +1,20246 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/bonds/4ddbd6c4.svg b/dev/manual/bonds/e11c49a9.svg similarity index 72% rename from dev/manual/bonds/4ddbd6c4.svg rename to dev/manual/bonds/e11c49a9.svg index 0e9dd16a..f46772b1 100644 --- a/dev/manual/bonds/4ddbd6c4.svg +++ b/dev/manual/bonds/e11c49a9.svg @@ -1,167 +1,167 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/bonds/ed220c38.svg b/dev/manual/bonds/ed220c38.svg new file mode 100644 index 00000000..bdd550cf --- /dev/null +++ b/dev/manual/bonds/ed220c38.svg @@ -0,0 +1,335 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/bonds/cd2017c9.svg b/dev/manual/bonds/f978ecb8.svg similarity index 74% rename from dev/manual/bonds/cd2017c9.svg rename to dev/manual/bonds/f978ecb8.svg index 06ace384..e7f92cd9 100644 --- a/dev/manual/bonds/cd2017c9.svg +++ b/dev/manual/bonds/f978ecb8.svg @@ -1,76 +1,76 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/bonds/3cd59971.svg b/dev/manual/bonds/fcf69356.svg similarity index 74% rename from dev/manual/bonds/3cd59971.svg rename to dev/manual/bonds/fcf69356.svg index 0d9bf355..2f4ceb31 100644 --- a/dev/manual/bonds/3cd59971.svg +++ b/dev/manual/bonds/fcf69356.svg @@ -1,78 +1,78 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/bonds/index.html b/dev/manual/bonds/index.html index f6b9bc36..dde994af 100644 --- a/dev/manual/bonds/index.html +++ b/dev/manual/bonds/index.html @@ -17,17 +17,17 @@ end plot(adj) # Plot what we've got -plot!(l, showbonds=false) # And the lattice itselfExample block output

As you can see, the adjacency matrix is a writable object, so you can change the bonds as you like. In this example we deleted vertical bonds between the four center sites and the boundary of the lattice.

There are many ways to create an adjacency matrix — for example, you can use a function that takes two sites and returns if they are connected. This is useful when you need to define bonds in a more complex way:

adj2 = AdjacencyMatrix(l) do site1, site2
+plot!(l, showbonds=false)   # And the lattice itself
Example block output

As you can see, the adjacency matrix is a writable object, so you can change the bonds as you like. In this example we deleted vertical bonds between the four center sites and the boundary of the lattice.

There are many ways to create an adjacency matrix — for example, you can use a function that takes two sites and returns if they are connected. This is useful when you need to define bonds in a more complex way:

adj2 = AdjacencyMatrix(l) do site1, site2
     dx = site1.x - site2.x
     dy = site1.y - site2.y
     return abs(dx * dy) == 1    # Diagonal bonds
 end
 plot(adj2)
-plot!(l, showbonds=false)
Example block output

Translations

A "translation" is a special type of bonds that has a distinct direction (e. g. each pair of sites consists of a "source" and a "target" site). Also it must define exactly one destination for each source site (if any).

An example is the Translation — it allows defining bonds between sites that are shifted by a certain vector.

using LatticeModels, Plots
+plot!(l, showbonds=false)
Example block output

Translations

A "translation" is a special type of bonds that has a distinct direction (e. g. each pair of sites consists of a "source" and a "target" site). Also it must define exactly one destination for each source site (if any).

An example is the Translation — it allows defining bonds between sites that are shifted by a certain vector.

using LatticeModels, Plots
 l = GrapheneRibbon(6, 4)        # A convenient constructor for a honeycomb lattice
 tr = Translation(l, [1, 2√3/3])
 plot(tr)
-plot!(l, ls=:dash, linecolor=:grey)
Example block output

Another type of translation is the BravaisTranslation. It translates sites on a Bravais lattice in terms of the lattice vectors:

tr2 = BravaisTranslation(1 => 2, [0, 1])
+plot!(l, ls=:dash, linecolor=:grey)
Example block output

Another type of translation is the BravaisTranslation. It translates sites on a Bravais lattice in terms of the lattice vectors:

tr2 = BravaisTranslation(1 => 2, [0, 1])
 tr1 == tr2  # true

What does this notation mean? We take the first site in the unit cell; then we go to the unit cell shifted by [0, 1] and take the second site from there. Note that the first example described the same translation, but in terms of positions, not unit cell indices.

Note

You can omit the pair of indices if you want to translate the unit cell regardless of the site index. Bravais[j1, j2, ...] is shorthand for BravaisTranslation([j1, j2, ...]).

You can use translations to shift a site, for example: site2 = site1 + tr, just like with regular vectors. Another use-case for translations is in defining boundary conditions, as we will see in the next section.

Boundary conditions

The most general form of boundary conditions supported by this package is this:

\[\psi(r + R) = \psi(r) f(r)\]

where R is a translation vector and f is some function. This is a generalization of periodic boundary conditions, which are a special case of this form.

These conditions are in fact applied not to the lattice itself, but to the Hamiltonian. Think of it as a way to replace the $c(r)^\dagger c(r')$ hopping with $c(r)^\dagger c(r' - R) f(r')$, if the $r'$ site is not present in the lattice, but $r' - R$ is.

In general, there are three types of boundary conditions:

  • PeriodicBoundary — the most common type of boundary conditions. Just periodicity with no factor.
  • TwistedBoundary — periodicity with a phase factor that does not depend on $r$.
  • FunctionBoundary — general form of boundary conditions.

The constructor for the boundary accepts two arguments — the phase (or the function) and the translation.

As an example, let us consider the example with the Hofsadter butterfly from the Examples page. The magnetic field B changes from zero to one flux quantum per plaquette, for each value of B we calculate the energy spectrum of an infinite lattice and plot it.

Let's consider a periodic lattice instead. We want to apply magnetic field in the Landau gauge to it, and since the translation operators include the vector potential $\mathcal{A}$, we have to tweak the boundary conditions a little:

\[\psi(x + L_x, y) = \psi(x, y) e^{2\pi i B y L_x}, \psi(x, y + L_y) = \psi(x, y)\]

This can be done with the FunctionBoundary:

using LatticeModels, Plots
 l = HoneycombLattice(10, 10)
@@ -49,7 +49,7 @@
     append!(points_E, dg.values)
     append!(points_B, fill(B, length(dg.values)))
 end
-scatter(points_B, points_E, xlabel="B", ylabel="E", leg=false, ms=1)
Example block output

Note that we could have set the boundary conditions to the lattice in one line. In fact, we already did this in the Examples section:

lb = setboundaries(l, [Lx, 0] => f, [0, Ly] => true)

Let's explain this notation:

  • Each pair consists of a translation on the left and a "boundary specifier" on the right. A simple vector, like here, is interpreted as a Translation — you can use any translation type here, Bravais[-5, 10] instead of [0, Ly] would work as well.
  • The second argument can be one of the following:
    • true/false — a periodic or open boundary condition.
    • A number θ — a twisted boundary condition with a phase factor exp(im * θ).
    • A function f — a general boundary condition.
  • Sometimes the lattice includes default translation axes, and you can use their aliases as translations. For example, for a 10x10 square lattice setboundaries(l, :axis1 => f, :axis2 => true) is equivalent to setboundaries(l, [10, 0] => f, [0, 10] => true).

Note that you can pass boundary conditions to the lattice constructor as well. We could not do this in the previous example, because the boundary conditions depended on the magnetic field B. However, if you have a fixed boundary condition, you can pass it to the lattice constructor like this:

lb = HoneycombLattice(10, 10, boundaries=([Lx, 0] => f, [0, Ly] => true))

This is equivalent to the setboundaries call from the previous example.

Note

In our example we imposed periodic boundary conditions in shape of a rectangle $0 < x < L_x$, $0 < y < L_y$. However, the lattice itself is more like a parallelogram, because of its unit cell shape. This is not a problem, because this shape is still periodic in terms of these translations along x and y.

If the periodicity is violated, for example, if the both r and r + R sites are present in the lattice, an error will be thrown.

Generic lattice

The GenericLattice is a tool you might want to use if you need to define a lattice with a more complex geometry. It is basically just a collection of arbitrary sites. As an example, let's define a lattice with a naive random geometry:

using LatticeModels, Plots
+scatter(points_B, points_E, xlabel="B", ylabel="E", leg=false, ms=1)
Example block output

Note that we could have set the boundary conditions to the lattice in one line. In fact, we already did this in the Examples section:

lb = setboundaries(l, [Lx, 0] => f, [0, Ly] => true)

Let's explain this notation:

  • Each pair consists of a translation on the left and a "boundary specifier" on the right. A simple vector, like here, is interpreted as a Translation — you can use any translation type here, Bravais[-5, 10] instead of [0, Ly] would work as well.
  • The second argument can be one of the following:
    • true/false — a periodic or open boundary condition.
    • A number θ — a twisted boundary condition with a phase factor exp(im * θ).
    • A function f — a general boundary condition.
  • Sometimes the lattice includes default translation axes, and you can use their aliases as translations. For example, for a 10x10 square lattice setboundaries(l, :axis1 => f, :axis2 => true) is equivalent to setboundaries(l, [10, 0] => f, [0, 10] => true).

Note that you can pass boundary conditions to the lattice constructor as well. We could not do this in the previous example, because the boundary conditions depended on the magnetic field B. However, if you have a fixed boundary condition, you can pass it to the lattice constructor like this:

lb = HoneycombLattice(10, 10, boundaries=([Lx, 0] => f, [0, Ly] => true))

This is equivalent to the setboundaries call from the previous example.

Note

In our example we imposed periodic boundary conditions in shape of a rectangle $0 < x < L_x$, $0 < y < L_y$. However, the lattice itself is more like a parallelogram, because of its unit cell shape. This is not a problem, because this shape is still periodic in terms of these translations along x and y.

If the periodicity is violated, for example, if the both r and r + R sites are present in the lattice, an error will be thrown.

Generic lattice

The GenericLattice is a tool you might want to use if you need to define a lattice with a more complex geometry. It is basically just a collection of arbitrary sites. As an example, let's define a lattice with a naive random geometry:

using LatticeModels, Plots
 l = GenericLattice{2}()         # 2D lattice
 for i in 1:100
     pt = rand(2) * 5
@@ -59,4 +59,4 @@
 l2 = setboundaries(l, [0, 5] => true, [5, 0] => true)  # Periodic boundary conditions
 bonds = SiteDistance(<(1), l2)  # Connect sites that are closer than 1
 plot(bonds)
-plot!(l2)       # Unlike Bravais lattices, GenericLattice does not have default bonds
Example block output

This tool is not very mature yet, but it can be useful for tasks not related to Bravais lattices. Note that boundary conditions or default nearest-neighbor hoppings can be set to the GenericLattice as well.

+plot!(l2) # Unlike Bravais lattices, GenericLattice does not have default bondsExample block output

This tool is not very mature yet, but it can be useful for tasks not related to Bravais lattices. Note that boundary conditions or default nearest-neighbor hoppings can be set to the GenericLattice as well.

diff --git a/dev/manual/currents/index.html b/dev/manual/currents/index.html index ac8d0e76..d41d83e6 100644 --- a/dev/manual/currents/index.html +++ b/dev/manual/currents/index.html @@ -1,2 +1,2 @@ -Currents · LatticeModels.jl +Currents · LatticeModels.jl diff --git a/dev/manual/evolution/a5eee69c.svg b/dev/manual/evolution/031afa73.svg similarity index 86% rename from dev/manual/evolution/a5eee69c.svg rename to dev/manual/evolution/031afa73.svg index 9763299b..82a7f5a2 100644 --- a/dev/manual/evolution/a5eee69c.svg +++ b/dev/manual/evolution/031afa73.svg @@ -1,46 +1,46 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/evolution/5440029c.svg b/dev/manual/evolution/629f3253.svg similarity index 96% rename from dev/manual/evolution/5440029c.svg rename to dev/manual/evolution/629f3253.svg index cc50aadc..774f4ab9 100644 --- a/dev/manual/evolution/5440029c.svg +++ b/dev/manual/evolution/629f3253.svg @@ -1,80 +1,80 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/evolution/8f8898dd.svg b/dev/manual/evolution/642249b9.svg similarity index 94% rename from dev/manual/evolution/8f8898dd.svg rename to dev/manual/evolution/642249b9.svg index 4e641380..30672113 100644 --- a/dev/manual/evolution/8f8898dd.svg +++ b/dev/manual/evolution/642249b9.svg @@ -1,58 +1,58 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/evolution/03398e41.svg b/dev/manual/evolution/9afb850a.svg similarity index 94% rename from dev/manual/evolution/03398e41.svg rename to dev/manual/evolution/9afb850a.svg index ebbb6bd0..53602304 100644 --- a/dev/manual/evolution/03398e41.svg +++ b/dev/manual/evolution/9afb850a.svg @@ -1,54 +1,54 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/evolution/a0530ac9.svg b/dev/manual/evolution/c3d21ace.svg similarity index 86% rename from dev/manual/evolution/a0530ac9.svg rename to dev/manual/evolution/c3d21ace.svg index ef757a4c..014bde4a 100644 --- a/dev/manual/evolution/a0530ac9.svg +++ b/dev/manual/evolution/c3d21ace.svg @@ -1,50 +1,50 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/evolution/a81b56a0.svg b/dev/manual/evolution/e6127deb.svg similarity index 68% rename from dev/manual/evolution/a81b56a0.svg rename to dev/manual/evolution/e6127deb.svg index fd0074b2..07b86176 100644 --- a/dev/manual/evolution/a81b56a0.svg +++ b/dev/manual/evolution/e6127deb.svg @@ -1,1608 +1,1608 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/evolution/1bde3722.svg b/dev/manual/evolution/f78e2ff3.svg similarity index 86% rename from dev/manual/evolution/1bde3722.svg rename to dev/manual/evolution/f78e2ff3.svg index cbf720f5..bafa5997 100644 --- a/dev/manual/evolution/1bde3722.svg +++ b/dev/manual/evolution/f78e2ff3.svg @@ -1,52 +1,52 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/evolution/index.html b/dev/manual/evolution/index.html index c7bd9809..90c27c49 100644 --- a/dev/manual/evolution/index.html +++ b/dev/manual/evolution/index.html @@ -21,14 +21,14 @@ plot!(real.(psi.data) .+ t / 3, c=:blue, lab="") plot!(imag.(psi.data) .+ t / 3, c=:red, lab="") end -plot!()Example block output

We got a pretty plot of a Gaussian wavepacket moving to the right. Let us discuss what happened here in-depth.

We set the Hamiltonian to be a constant operator. Since we perform the evolution in even time steps, and the Hamiltonian is not time-dependent, we can precompute the exponential of the Hamiltonian $\hat{U} = e^{-i H t}$ and use it in the evolution. This is done automatically here.

The Evolution struct is not an iterator. Instead, it is a callable object that returns an iterator. This is done to allow for more flexibility, as you can see below.

The Evolution struct always yields stateful iterators. This means that the psi in the loop is actually the same object, and it is updated on each iteration. This is done to reduce memory allocations and improve performance. Do not edit the states in the loop, as it will affect the results.

This allows continuing the evolution from the last state. Let's stick to the previous example and add some more iterations:

for moment in ev(50:5:100)
+plot!()
Example block output

We got a pretty plot of a Gaussian wavepacket moving to the right. Let us discuss what happened here in-depth.

We set the Hamiltonian to be a constant operator. Since we perform the evolution in even time steps, and the Hamiltonian is not time-dependent, we can precompute the exponential of the Hamiltonian $\hat{U} = e^{-i H t}$ and use it in the evolution. This is done automatically here.

The Evolution struct is not an iterator. Instead, it is a callable object that returns an iterator. This is done to allow for more flexibility, as you can see below.

The Evolution struct always yields stateful iterators. This means that the psi in the loop is actually the same object, and it is updated on each iteration. This is done to reduce memory allocations and improve performance. Do not edit the states in the loop, as it will affect the results.

This allows continuing the evolution from the last state. Let's stick to the previous example and add some more iterations:

for moment in ev(50:5:100)
     t = moment.t        # Get the time
     psi = moment.state  # Get the state
     # moment.H is the Hamiltonian, but it is not used here
     plot!(real.(psi.data) .+ t / 3, c=:blue, lab="")
     plot!(imag.(psi.data) .+ t / 3, c=:red, lab="")
 end
-plot!()
Example block output
Tip

If you do not need to iterate over a single Evolution object multiple times, you can use a shorthand. This notation:

for moment in Evolution(H, psi0, timedomain=0:5:50)
+plot!()
Example block output
Tip

If you do not need to iterate over a single Evolution object multiple times, you can use a shorthand. This notation:

for moment in Evolution(H, psi0, timedomain=0:5:50)
     # ...
 end

is equivalent to this:

ev = Evolution(H, psi0)
 for moment in ev(0:5:50)
@@ -47,7 +47,7 @@
     plot!(abs2.(psi1.data) .+ t / 3, c=:black, lab="")
     plot!(abs2.(psi2.data) .+ t / 3, c=:green, lab="")
 end
-plot!()
Example block output

Note that accessing moment.state will throw an error here, because there is more than one state. Instead, you can access all them as a tuple with moment.states or each one separately with moment[1], moment[2], etc. Also you can still unpack the moment as psi1, psi2, Ht, t = moment, which will do the very same thing.

The Evolution struct also allows assigning aliases to the states. You can do this by passing the initial states as keyword arguments. This code will produce the same result as in the previous example:

p = plot(title="Two Gaussian wavepackets evolution", xlabel="x", yticks=:none)
+plot!()
Example block output

Note that accessing moment.state will throw an error here, because there is more than one state. Instead, you can access all them as a tuple with moment.states or each one separately with moment[1], moment[2], etc. Also you can still unpack the moment as psi1, psi2, Ht, t = moment, which will do the very same thing.

The Evolution struct also allows assigning aliases to the states. You can do this by passing the initial states as keyword arguments. This code will produce the same result as in the previous example:

p = plot(title="Two Gaussian wavepackets evolution", xlabel="x", yticks=:none)
 
 ev = Evolution(H, psi1=psi0_1, psi2=psi0_2)
 for moment in ev(0:5:50)
@@ -99,17 +99,17 @@
     Evolution(KrylovKitExp(), ht, psi, timedomain=ts, showprogress=false)]
 @time dens2 = [localdensity(moment.state)[site] for moment in
     Evolution(KrylovKitExp(), ht, psi, timedomain=ts, showprogress=false)]
CachedExp:
-  5.237863 seconds (5.70 M allocations: 9.428 GiB, 11.15% gc time, 3.58% compilation time)
-  4.654123 seconds (5.58 M allocations: 9.421 GiB, 10.52% gc time, 1.09% compilation time)
-  4.611697 seconds (5.58 M allocations: 9.421 GiB, 9.54% gc time, 1.11% compilation time)
+  5.107128 seconds (5.70 M allocations: 9.428 GiB, 10.50% gc time, 3.86% compilation time)
+  4.431639 seconds (5.58 M allocations: 9.421 GiB, 10.52% gc time, 1.17% compilation time)
+  4.515306 seconds (5.58 M allocations: 9.421 GiB, 9.34% gc time, 1.18% compilation time)
 
 KrylovKitExp:
-  8.773507 seconds (14.93 M allocations: 3.582 GiB, 12.11% gc time, 68.73% compilation time)
-  2.684396 seconds (5.58 M allocations: 3.019 GiB, 29.76% gc time, 2.03% compilation time)
-  2.769629 seconds (5.58 M allocations: 3.019 GiB, 32.41% gc time, 1.95% compilation time)

The first attempt took some time because of the precompilation required, but overall the KrylovKitExp solver turned out to be faster in this case. Let's plot the results to make sure they are the same:

using Plots
+  8.504633 seconds (14.93 M allocations: 3.582 GiB, 12.10% gc time, 68.57% compilation time)
+  2.648612 seconds (5.58 M allocations: 3.019 GiB, 29.55% gc time, 2.13% compilation time)
+  2.729404 seconds (5.58 M allocations: 3.019 GiB, 31.95% gc time, 2.00% compilation time)

The first attempt took some time because of the precompilation required, but overall the KrylovKitExp solver turned out to be faster in this case. Let's plot the results to make sure they are the same:

using Plots
 plot(ts, dens1, label="CachedExp", xlabel="t", ylabel="ρ(x=20, y=20)",
     ylims=(0, NaN), size=(800, 400))
-plot!(ts, dens2, label="KrylovKitExp")
Example block output

A significant drawback of KrylovKitExp solver is that it works only with wavefunctions — it does not support density matrices.

Note

Generally, the Evolution struct supports only Schrödinger/von Neumann equations. If you need to solve the master equation, you can use the functions from the QuantumOptics package.

However, a solver for the master equation can be implemented on top of the Evolution struct using this EvolutionSolver interface. Please file an issue if you are interested in this feature.

TimeSequence

The TimeSequence struct is used to store and manipulate time-dependent data. It is a dictionary-like object that maps time points to values. The values can be any type, including arrays, matrices, and even lattice-specific types like LatticeValue.

Let's calculate the evolution of a ground state of a tight-binding model after a magnetic field is adiaiabatically turned on. We will store the local density at each time step and use it to plot the local density depending on time, as well as its time derivative and integral over time:

using LatticeModels, Plots
+plot!(ts, dens2, label="KrylovKitExp")
Example block output

A significant drawback of KrylovKitExp solver is that it works only with wavefunctions — it does not support density matrices.

Note

Generally, the Evolution struct supports only Schrödinger/von Neumann equations. If you need to solve the master equation, you can use the functions from the QuantumOptics package.

However, a solver for the master equation can be implemented on top of the Evolution struct using this EvolutionSolver interface. Please file an issue if you are interested in this feature.

TimeSequence

The TimeSequence struct is used to store and manipulate time-dependent data. It is a dictionary-like object that maps time points to values. The values can be any type, including arrays, matrices, and even lattice-specific types like LatticeValue.

Let's calculate the evolution of a ground state of a tight-binding model after a magnetic field is adiaiabatically turned on. We will store the local density at each time step and use it to plot the local density depending on time, as well as its time derivative and integral over time:

using LatticeModels, Plots
 l = SquareLattice(20, 20)
 h(B) = tightbinding_hamiltonian(l, field=LandauGauge(B))
 
@@ -124,12 +124,12 @@
 end
 
 plot(densities[!, x = 10, y = 10], label="ρ(t) (bulk)")
-plot!(densities[!, x = 1, y = 10], label="ρ(t) (edge)")
Example block output
Tip

The very same result could be achieved without writing the loop, using the TimeSequence constructor with a function. This way it will automatically iterate over the Evolution object and store the results:

densities = TimeSequence(Evolution(ht, psi), 0:0.1:2τ) do moment
+plot!(densities[!, x = 1, y = 10], label="ρ(t) (edge)")
Example block output
Tip

The very same result could be achieved without writing the loop, using the TimeSequence constructor with a function. This way it will automatically iterate over the Evolution object and store the results:

densities = TimeSequence(Evolution(ht, psi), 0:0.1:2τ) do moment
     localdensity(moment.state)
 end

Note that we can index a TimeSequence of LatticeValues the same way as a LatticeValue itself, which will produce another TimeSequence with the same time domain. This is because TimeSequence forwards almost all the indexing operations to the values it stores.

This type also supports time indexing and slicing. You can combine these types of indexing by using the t keyword for the time axis — all other arguments will be treated as spatial coordinates. Let's plot the local density at the center of the lattice and the local density at the edge of the lattice at the same time point:

p = plot(layout=2, size=(1000, 500))
 plot!(p[1], densities[0.5])
 plot!(p[2], densities[!, x=10, y=10, t=0.5 .. 3.5], label="ρ(t) (bulk)")
-plot!(p[2], densities[!, x=1, y=10, t=5 .. 10], label="ρ(t) (edge)")
Example block output

Another very useful feature of the TimeSequence is that it can be integrated and differentiated over time using the integrate and differentiate functions. Let's plot the time derivative and integral of the local density in the bulk of the lattice:

densities_bulk = densities[!, x = 10, y = 10]
+plot!(p[2], densities[!, x=1, y=10, t=5 .. 10], label="ρ(t) (edge)")
Example block output

Another very useful feature of the TimeSequence is that it can be integrated and differentiated over time using the integrate and differentiate functions. Let's plot the time derivative and integral of the local density in the bulk of the lattice:

densities_bulk = densities[!, x = 10, y = 10]
 plot(densities_bulk, label="ρ(t) (bulk)")
 plot!(differentiate(densities_bulk), label="dρ(t)/dt (bulk)")
-plot!(integrate(densities_bulk), label="∫ρ(t)dt (bulk)")
Example block output
+plot!(integrate(densities_bulk), label="∫ρ(t)dt (bulk)")Example block output
diff --git a/dev/manual/greenfunction/index.html b/dev/manual/greenfunction/index.html index 7ea62968..a9d1376a 100644 --- a/dev/manual/greenfunction/index.html +++ b/dev/manual/greenfunction/index.html @@ -25,4 +25,4 @@ Green's function element (6 â†, 0 â bands) julia> G[site1, site2](0.1) == G(0.1)[site1, site2] -true

Note that the Green's function is evaluated by exactly diagonalizing the Hamiltonian. This is not the most efficient way to calculate it, but it is the easiest to implement. Use brackets G[site1, site2] to get the Green's function between two sites, and call it with a frequency to evaluate it.

Note the three main types that provide the Green's function functionality:

  • The GreenFunction, which is the main type for Green's functions. It stores the diagonalized Hamiltonian in an efficient way to optimize the Green's function calculation. Can be indexed with sites and called with a frequency.
  • The GreenFunctionElement, which is an element of the Green's function matrix. It stores the bands that correspond to the Green's function element. Can be called with a frequency.
  • The GreenFunctionEval, which is the result of the Green's function evaluation. It stores the evaluated Green's function and the lattice it corresponds to. Can be indexed with sites.

Thus, G[site1, site2] creates a GreenFunctionElement object, while G(0.1) creates a GreenFunctionEval object. This explains why G[site1, site2](0.1) is the same as G(0.1)[site1, site2], but the former is more efficient — it doesn't have to evaluate the whole Green's function matrix.

Many-body Green's function

Density of states

+true

Note that the Green's function is evaluated by exactly diagonalizing the Hamiltonian. This is not the most efficient way to calculate it, but it is the easiest to implement. Use brackets G[site1, site2] to get the Green's function between two sites, and call it with a frequency to evaluate it.

Note the three main types that provide the Green's function functionality:

  • The GreenFunction, which is the main type for Green's functions. It stores the diagonalized Hamiltonian in an efficient way to optimize the Green's function calculation. Can be indexed with sites and called with a frequency.
  • The GreenFunctionElement, which is an element of the Green's function matrix. It stores the bands that correspond to the Green's function element. Can be called with a frequency.
  • The GreenFunctionEval, which is the result of the Green's function evaluation. It stores the evaluated Green's function and the lattice it corresponds to. Can be indexed with sites.

Thus, G[site1, site2] creates a GreenFunctionElement object, while G(0.1) creates a GreenFunctionEval object. This explains why G[site1, site2](0.1) is the same as G(0.1)[site1, site2], but the former is more efficient — it doesn't have to evaluate the whole Green's function matrix.

Many-body Green's function

Density of states

diff --git a/dev/manual/gs_density.png b/dev/manual/gs_density.png index a9da33986cddebfae2d4471a9b8765ba185e4965..ef300f29b2b50415743d94e193491ec830d75a60 100644 GIT binary patch literal 638819 zcmdpdg^ov5)h=jySq#2kWOh8B&55gySqWUQ@W(PML_Bw+p`f5n;hItyiJZ;GgG4vXWxZ zdjAgh+c#h#s~QlwrV3NlQIJ z8ItVoOF%*3JuH8Yx2_;Zti0i<&ek9%|I0#*IRrjVJR6a&YLLNvo5AVt)Ux{ONyPrt zl+)<&2O<0CM^_Oi+^VY6>iYV2Z|%JG<dc4%=ee2r3 zDhQs)pPJXLQ7No(Ihgs#!RxpwC9dr8{aervuXAaZBqA1*ei#Iz3f*UQA2zImj4B(v zZ~vOG%+JlacfcSt=#?$Yw1GFq$H%{a$K`Y9E*nEsTX5{k1eI8BWw1dMBFSys3#idqobn{f)9x* z9^=9Y&%XX#$%>Q74I|{l`QF29+}mwb`Jc-%CM>pmauWDKBH(omg3vZxatmXT{dn4X z;ypI;LL!`KKH`~flk;A8Fy@=1g-8dUw4EQmKC-g1hS6Yc)y93{>{G<{9WaV~XJR%r z)5V%3PQ%P*HByx4&8zp}%o^A>w||e!(_G?R6y7;*_Dd3f%K7_+sr{~seKk9rXJ7E~ zCW5_FmZ?=O@J0QqkLM5T{%>Jz>x1;=hhf`{3B@EY{({Fu9=n-UOH`{;(azgR=01Pt z&Ap}Dyl&3zyfz5U7V`4)dcNb%O5AS7C@OGoVL9y`U)|y|Xelu!lsbg;7?DU8m=47+ z+jpVl|L|!_#0e$lZ&E-q^u52Nh~S%S!OH#9PZ6P}Ud!ZW-qmZnR$9NZAGVDexUrZ2 z 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

!^t3 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

XXi?EzoU_j6jC4VVItrz4CvvP9n%t#B95 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

i9W<#0frj*L);ySg4qg@ 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

1=U_Y#R4Ynd)sU`^K5#umF^f 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%0DA#Fd`tmsIn*03!*bmK< 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%0AcJgpp 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

kb++Ry92`-`m!RB&)qP*Y!ybZAOI?wy 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

+vgtVM{Qb4?+9nghl7c?<|q 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

{+AU|#Ikq(slUOmq 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 {;!od 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%0A%&hAb#&45)H-HFj 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%0A8Scsu9|3xF_9pP_3$Fes1BbnZ>?O`xg> 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 diff --git a/dev/manual/hamiltonian/966c5009.svg b/dev/manual/hamiltonian/56b3d0a4.svg similarity index 86% rename from dev/manual/hamiltonian/966c5009.svg rename to dev/manual/hamiltonian/56b3d0a4.svg index 93c0de85..23b95d70 100644 --- a/dev/manual/hamiltonian/966c5009.svg +++ b/dev/manual/hamiltonian/56b3d0a4.svg @@ -1,82 +1,82 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + diff --git a/dev/manual/hamiltonian/4b5b7301.svg b/dev/manual/hamiltonian/659181d4.svg similarity index 76% rename from dev/manual/hamiltonian/4b5b7301.svg rename to dev/manual/hamiltonian/659181d4.svg index c2c57402..3ba45c75 100644 --- a/dev/manual/hamiltonian/4b5b7301.svg +++ b/dev/manual/hamiltonian/659181d4.svg @@ -1,80 +1,80 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + diff --git a/dev/manual/hamiltonian/69fab694.svg b/dev/manual/hamiltonian/69fab694.svg deleted file mode 100644 index b173b6f1..00000000 --- a/dev/manual/hamiltonian/69fab694.svg +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/manual/hamiltonian/90cbfa00.svg b/dev/manual/hamiltonian/90cbfa00.svg new file mode 100644 index 00000000..94190761 --- /dev/null +++ b/dev/manual/hamiltonian/90cbfa00.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/hamiltonian/3f0fc195.svg b/dev/manual/hamiltonian/943ff154.svg similarity index 86% rename from dev/manual/hamiltonian/3f0fc195.svg rename to dev/manual/hamiltonian/943ff154.svg index 4452e6f8..99a95dc5 100644 --- a/dev/manual/hamiltonian/3f0fc195.svg +++ b/dev/manual/hamiltonian/943ff154.svg @@ -1,82 +1,82 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + diff --git a/dev/manual/hamiltonian/0f36bf47.svg b/dev/manual/hamiltonian/d2a4344c.svg similarity index 83% rename from dev/manual/hamiltonian/0f36bf47.svg rename to dev/manual/hamiltonian/d2a4344c.svg index db1230bc..b5c30644 100644 --- a/dev/manual/hamiltonian/0f36bf47.svg +++ b/dev/manual/hamiltonian/d2a4344c.svg @@ -1,82 +1,82 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + diff --git a/dev/manual/hamiltonian/d8c64e7c.svg b/dev/manual/hamiltonian/d8c64e7c.svg new file mode 100644 index 00000000..3b56b8e2 --- /dev/null +++ b/dev/manual/hamiltonian/d8c64e7c.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/hamiltonian/ded39c29.svg b/dev/manual/hamiltonian/ded39c29.svg deleted file mode 100644 index 5118e5e3..00000000 --- a/dev/manual/hamiltonian/ded39c29.svg +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dev/manual/hamiltonian/index.html b/dev/manual/hamiltonian/index.html index b1e894e2..30d0a6b2 100644 --- a/dev/manual/hamiltonian/index.html +++ b/dev/manual/hamiltonian/index.html @@ -4,14 +4,14 @@ sys = System(l, SpinBasis(1//2), μ = 0, T = 1) H = tightbinding_hamiltonian(sys) P = densitymatrix(H, info=false) -heatmap(localdensity(P))Example block output

The first two arguments of the System constructor are the lattice and the basis of the on-site degrees of freedom. The latter can be any QuantumOptics.Basis object — refer to the QuantumOptics.jl documentation for more information. Omit the second argument if you don't have any on-site degrees of freedom.

Here are all parameters that can be passed to the System constructor:

  • mu or μ: the chemical potential of the system.
  • N: set this instead of mu to fix the number of particles — the chemical potential will be calculated automatically. Setting both N and mu will raise an error.
  • statistics: the statistics of the particles, either FermiDirac or BoseEinstein. If not set, the statistics is FermiDirac if mu or N is set, and Gibbs otherwise (i.e. the system consist of one particle).
  • T: the temperature of the system. The default is 0.

Note that you can pass the very same arguments directly to the tightbinding_hamiltonian. Also keyword arguments can be passed to the densitymatrix function — they will be used to evaluate the distribution function. These lines are equivalent to the previous example:

H = tightbinding_hamiltonian(l, SpinBasis(1//2))
+heatmap(localdensity(P))
Example block output

In this case we have created a system with defined chemical potential and temperature. Note that you can use mu instead of μ if you prefer (or if you are using a non-UTF8 compatible editor). The tightbinding_hamiltonian function creates a tight-binding Hamiltonian for the given system, and the densitymatrix function calculates the density matrix.

The first two arguments of the System constructor are the lattice and the basis of the on-site degrees of freedom. The latter can be any QuantumOptics.Basis object — refer to the QuantumOptics.jl documentation for more information. Omit the second argument if you don't have any on-site degrees of freedom.

Here are all parameters that can be passed to the System constructor:

  • mu or μ: the chemical potential of the system.
  • N: set this instead of mu to fix the number of particles — the chemical potential will be calculated automatically. Setting both N and mu will raise an error.
  • statistics: the statistics of the particles, either FermiDirac or BoseEinstein. If not set, the statistics is FermiDirac if mu or N is set, and Gibbs otherwise (i.e. the system consist of one particle).
  • T: the temperature of the system. The default is 0.

Note that you can pass the very same arguments directly to the tightbinding_hamiltonian. Also keyword arguments can be passed to the densitymatrix function — they will be used to evaluate the distribution function. These lines are equivalent to the previous example:

H = tightbinding_hamiltonian(l, SpinBasis(1//2))
 P = densitymatrix(H, μ = 0, T = 1, info = false)

Basic tight-binding Hamiltonian

The tightbinding_hamiltonian function creates a basic tight-binding Hamiltonian defined by this formula:

\[H = t_1 \sum_{\langle i, j \rangle} c_i^\dagger c_j + \text{h.c.} + t_2 \sum_{\langle\langle i, j \rangle\rangle} c_i^\dagger c_j + \text{h.c.} + t_3 \sum_{\langle\langle\langle i, j \rangle\rangle\rangle} c_i^\dagger c_j + \text{h.c.} + \ldots\]

where $c_i^\dagger$ and $c_i$ are the creation and annihilation operators on site $i$. The $t_1$, $t_2$ and $t_3$ are responsible for the hopping between the nearest, next-nearest, etc. neighbors. Note that they can be factors or operators that act on the on-site degrees of freedom.

By default only the nearest-neighbor hopping is included, all other factors are zero. You can set them to any value you want using the t1, t2, t3, keyword arguments:

sz = sigmaz(SpinBasis(1//2))
 H2 = tightbinding_hamiltonian(sys, t1 = sz, t2 = [1 0; 0 -1], t3 = -0.5)
 P2 = densitymatrix(H2, info=false)
-heatmap(localdensity(P2))
Example block output

Here sz is the operator that projects the spin on the $z$ axis. Note that we can use a matrix instead, how we did with t2: in this case it will be interpreted as the hopping operator acting on the on-site degrees of freedom.

The constructor function

There are many cases where more complex Hamiltonians are needed. In this case, you can use the construct_hamiltonian function. This function takes a system and several arguments, each describing a term in the Hamiltonian. As an example, let's consider the same Hamiltonian as in the previous example:

using LatticeModels, Plots
+heatmap(localdensity(P2))
Example block output

Here sz is the operator that projects the spin on the $z$ axis. Note that we can use a matrix instead, how we did with t2: in this case it will be interpreted as the hopping operator acting on the on-site degrees of freedom.

The constructor function

There are many cases where more complex Hamiltonians are needed. In this case, you can use the construct_hamiltonian function. This function takes a system and several arguments, each describing a term in the Hamiltonian. As an example, let's consider the same Hamiltonian as in the previous example:

using LatticeModels, Plots
 l = SquareLattice(4, 4)
 spin = SpinBasis(1//2)
 sys = System(l, spin, μ = 0, T = 1)
@@ -22,7 +22,7 @@
     [1 0; 0 -1] => NearestNeighbor(2),
     -0.5 => NearestNeighbor(3))
 P = densitymatrix(H, info=false)
-heatmap(localdensity(P))
Example block output

Basically, every term is a pair of an operator acting on the on-site degrees of freedom and an object describing the lattice part. The lattice part can be one of the following:

  • On-site term: $\sum_i t_i c_i^\dagger c_i$. In this case, the operator is applied to every site.
    • A single site describes a single $t_i c_i^\dagger c_i$ term. A convenient way to create an on-site potential.
    • A LatticeValue object describes the t_i coefficients for every site.
  • Hopping term: $\sum_{\langle i, j \rangle} t_{ij} c_i^\dagger c_j + h.c.$. Terms like this are used to describe the hopping between different sites.
    • A single site1 => site2 pair describes a single hopping term between site1 and site2.
    • An AbstractBonds object describes the hopping topology. See the Adjacency and boundary conditions section for more information on them.
  • Arbitrary operator: any QuantumOptics.Operator object can be passed as a term, in which case it will be automatically embedded into the Hamiltonian.
    • Note that a matrix can be passed as an operator, in which case it will be interpreted as one acting on the on-site degrees of freedom. To act on the lattice, use Operator(l, matrix) — this will create a lattice operator that acts on the lattice l with the given matrix.

To showcase the flexibility of the construct_hamiltonian function, let's consider a more complex example. We will create a Hamiltonian of the QWZ model of a topological insulator (on a square lattice).

The QWZ model Hamiltonian is defined by the following formula:

\[\hat{H} = +heatmap(localdensity(P))Example block output

Basically, every term is a pair of an operator acting on the on-site degrees of freedom and an object describing the lattice part. The lattice part can be one of the following:

  • On-site term: $\sum_i t_i c_i^\dagger c_i$. In this case, the operator is applied to every site.
    • A single site describes a single $t_i c_i^\dagger c_i$ term. A convenient way to create an on-site potential.
    • A LatticeValue object describes the t_i coefficients for every site.
  • Hopping term: $\sum_{\langle i, j \rangle} t_{ij} c_i^\dagger c_j + h.c.$. Terms like this are used to describe the hopping between different sites.
    • A single site1 => site2 pair describes a single hopping term between site1 and site2.
    • An AbstractBonds object describes the hopping topology. See the Adjacency and boundary conditions section for more information on them.
  • Arbitrary operator: any QuantumOptics.Operator object can be passed as a term, in which case it will be automatically embedded into the Hamiltonian.
    • Note that a matrix can be passed as an operator, in which case it will be interpreted as one acting on the on-site degrees of freedom. To act on the lattice, use Operator(l, matrix) — this will create a lattice operator that acts on the lattice l with the given matrix.

To showcase the flexibility of the construct_hamiltonian function, let's consider a more complex example. We will create a Hamiltonian of the QWZ model of a topological insulator (on a square lattice).

The QWZ model Hamiltonian is defined by the following formula:

\[\hat{H} = \sum_i^\text{sites} m_i c^\dagger_i \sigma_z c_i + \sum_i^\text{sites} \left( c^\dagger_{i + \hat{x}} \frac{\sigma_z - i \sigma_x}{2} c_i + @@ -46,7 +46,7 @@ 0.1 => NearestNeighbor(2)) # Next-nearest neighbor hopping P = densitymatrix(H, info=false) -heatmap(localdensity(P))Example block output

Note that the qwz function can be used to create the QWZ Hamiltonian in a more convenient way. The construct_hamiltonian function is more flexible and can be used to create any Hamiltonian you want.

Note

The construct_hamiltonian function creates a Hamiltonian object, which is a QuantumOptics.Operator object, but with some additional info like particle statistics or chemical potential. You can use it as a regular operator, but if you encounter any problems, you can always convert it to a regular operator using the Operator function or by calling construct_operator instead of construct_hamiltonian.

The operator builder

The construct_hamiltonian function is a convenient way to create Hamiltonians, but it is sometimes more convenient to set all the individual $c_i^\dagger c_j$ terms manually. This can be done using the OperatorBuilder object.

Here is an example of how to create the same Hamiltonian as in the previous example using the OperatorBuilder:

using LatticeModels, Plots
+heatmap(localdensity(P))
Example block output

Note that the qwz function can be used to create the QWZ Hamiltonian in a more convenient way. The construct_hamiltonian function is more flexible and can be used to create any Hamiltonian you want.

Note

The construct_hamiltonian function creates a Hamiltonian object, which is a QuantumOptics.Operator object, but with some additional info like particle statistics or chemical potential. You can use it as a regular operator, but if you encounter any problems, you can always convert it to a regular operator using the Operator function or by calling construct_operator instead of construct_hamiltonian.

The operator builder

The construct_hamiltonian function is a convenient way to create Hamiltonians, but it is sometimes more convenient to set all the individual $c_i^\dagger c_j$ terms manually. This can be done using the OperatorBuilder object.

Here is an example of how to create the same Hamiltonian as in the previous example using the OperatorBuilder:

using LatticeModels, Plots
 l = SquareLattice(4, 4)
 spin = SpinBasis(1//2)
 sys = System(l, spin, μ = 0, T = 1)
@@ -72,11 +72,11 @@
 
 H2 = Hamiltonian(builder)
 P = densitymatrix(H, info=false)
-heatmap(localdensity(P))
Example block output

Note that builder[site1, site2] is not a regular indexing operation. The return value of it is not an matrix or operator, but rather a special object that makes increment/decrement operations possible. Do not use this value in other contexts.

Tip

Use FastOperatorBuilder instead of OperatorBuilder if you need to create a large Hamiltonian. It is a little bit faster, but doesn't support direct assignment builder[site, site] = ...; use += or -= instead.

Gauge fields

There is a convenient way to add gauge fields to the Hamiltonian, and it is done by using the GaugeField objects. It is an interface for different types of gauge fields, like the Landau gauge. To add field to the Hamiltonian, use the field keyword argument:

using LatticeModels, Plots
+heatmap(localdensity(P))
Example block output

Note that builder[site1, site2] is not a regular indexing operation. The return value of it is not an matrix or operator, but rather a special object that makes increment/decrement operations possible. Do not use this value in other contexts.

Tip

Use FastOperatorBuilder instead of OperatorBuilder if you need to create a large Hamiltonian. It is a little bit faster, but doesn't support direct assignment builder[site, site] = ...; use += or -= instead.

Gauge fields

There is a convenient way to add gauge fields to the Hamiltonian, and it is done by using the GaugeField objects. It is an interface for different types of gauge fields, like the Landau gauge. To add field to the Hamiltonian, use the field keyword argument:

using LatticeModels, Plots
 l = SquareLattice(4, 4)
 H = tightbinding_hamiltonian(l, field=LandauGauge(0.1))
 P = densitymatrix(H, info=false)
-heatmap(localdensity(P))
Example block output

This adds a magnetic field in the Landau gauge to the Hamiltonian: $\overrightarrow{\mathcal{A}} = B x \overrightarrow{e_y}$. It adds a phase factor to the hopping terms, which is calculated using Peierls substitution.

Here are all types of gauge fields supported by this package:

  • LandauGauge(B) — the Landau gauge, with the magnetic field B in the $z$ direction.
  • SymmetricGauge(B) — the symmetric gauge, with the magnetic field B in the $z$ direction.
  • PointFlux(Phi, center=(0, 0); gauge=:axial) — a point flux in the point center with the flux Phi. The gauge argument can be either :axial (default) or :singular.
  • GaugeField(f; n) — a general magnetic field. The f is a function that takes a coordinate vector and returns the vector potential $\mathcal{A}$ at this point. The line integrals are calculated using the n-point trapezoidal rule. Note that the n must be set explicitly.
  • LineIntegralGaugeField(f) — a general magnetic field. The f is a function that takes two coordinate vectors and returns the $\int_{\vec{r}_1}^{\vec{r}_2} \mathcal{A} \cdot d\vec{r}$ line integral of the vector potential between these points.

Different types of fields can be added together:

julia> using LatticeModels
+heatmap(localdensity(P))
Example block output

This adds a magnetic field in the Landau gauge to the Hamiltonian: $\overrightarrow{\mathcal{A}} = B x \overrightarrow{e_y}$. It adds a phase factor to the hopping terms, which is calculated using Peierls substitution.

Here are all types of gauge fields supported by this package:

  • LandauGauge(B) — the Landau gauge, with the magnetic field B in the $z$ direction.
  • SymmetricGauge(B) — the symmetric gauge, with the magnetic field B in the $z$ direction.
  • PointFlux(Phi, center=(0, 0); gauge=:axial) — a point flux in the point center with the flux Phi. The gauge argument can be either :axial (default) or :singular.
  • GaugeField(f; n) — a general magnetic field. The f is a function that takes a coordinate vector and returns the vector potential $\mathcal{A}$ at this point. The line integrals are calculated using the n-point trapezoidal rule. Note that the n must be set explicitly.
  • LineIntegralGaugeField(f) — a general magnetic field. The f is a function that takes two coordinate vectors and returns the $\int_{\vec{r}_1}^{\vec{r}_2} \mathcal{A} \cdot d\vec{r}$ line integral of the vector potential between these points.

Different types of fields can be added together:

julia> using LatticeModels
 
 julia> f1 = LandauGauge(0.1)
 Landau gauge uniform field; B = 0.1 flux quanta per 1×1 area
@@ -96,4 +96,4 @@
     builder[site, site_y] = 1
 end
 H2 = Hamiltonian(builder)
-H2 == tightbinding_hamiltonian(l, field=LandauGauge(0.1) + PointFlux(0.3, (0.5, 0.5)))
true

To find out more about operators, diagonalization and observables, proceed to the next section.

+H2 == tightbinding_hamiltonian(l, field=LandauGauge(0.1) + PointFlux(0.3, (0.5, 0.5)))
true

To find out more about operators, diagonalization and observables, proceed to the next section.

diff --git a/dev/manual/lattice/3b747d59.svg b/dev/manual/lattice/1db8d463.svg similarity index 71% rename from dev/manual/lattice/3b747d59.svg rename to dev/manual/lattice/1db8d463.svg index cd81e032..819ae069 100644 --- a/dev/manual/lattice/3b747d59.svg +++ b/dev/manual/lattice/1db8d463.svg @@ -1,316 +1,316 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/lattice/b03da4bc.svg b/dev/manual/lattice/29771633.svg similarity index 66% rename from dev/manual/lattice/b03da4bc.svg rename to dev/manual/lattice/29771633.svg index aafd70ed..b0a077a6 100644 --- a/dev/manual/lattice/b03da4bc.svg +++ b/dev/manual/lattice/29771633.svg @@ -1,2254 +1,2254 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/lattice/bb952ae7.svg b/dev/manual/lattice/2b55d2b8.svg similarity index 71% rename from dev/manual/lattice/bb952ae7.svg rename to dev/manual/lattice/2b55d2b8.svg index 0e8f99c6..ed5bff74 100644 --- a/dev/manual/lattice/bb952ae7.svg +++ b/dev/manual/lattice/2b55d2b8.svg @@ -1,161 +1,161 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/lattice/75e19247.svg b/dev/manual/lattice/2d02e8c7.svg similarity index 69% rename from dev/manual/lattice/75e19247.svg rename to dev/manual/lattice/2d02e8c7.svg index 86b96a45..1d8bb475 100644 --- a/dev/manual/lattice/75e19247.svg +++ b/dev/manual/lattice/2d02e8c7.svg @@ -1,322 +1,322 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/lattice/4175d3e6.svg b/dev/manual/lattice/57048c48.svg similarity index 70% rename from dev/manual/lattice/4175d3e6.svg rename to dev/manual/lattice/57048c48.svg index 5bda231e..90aaf953 100644 --- a/dev/manual/lattice/4175d3e6.svg +++ b/dev/manual/lattice/57048c48.svg @@ -1,164 +1,164 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/lattice/afdf4c3d.svg b/dev/manual/lattice/67826e0a.svg similarity index 76% rename from dev/manual/lattice/afdf4c3d.svg rename to dev/manual/lattice/67826e0a.svg index 62487be8..720471ef 100644 --- a/dev/manual/lattice/afdf4c3d.svg +++ b/dev/manual/lattice/67826e0a.svg @@ -1,486 +1,486 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/lattice/308c0e43.svg b/dev/manual/lattice/6c77ed59.svg similarity index 72% rename from dev/manual/lattice/308c0e43.svg rename to dev/manual/lattice/6c77ed59.svg index 9dbe2161..6919ef31 100644 --- a/dev/manual/lattice/308c0e43.svg +++ b/dev/manual/lattice/6c77ed59.svg @@ -1,135 +1,135 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/lattice/5dc3ab53.svg b/dev/manual/lattice/792fbfd1.svg similarity index 66% rename from dev/manual/lattice/5dc3ab53.svg rename to dev/manual/lattice/792fbfd1.svg index e5e32c6e..f2e789d8 100644 --- a/dev/manual/lattice/5dc3ab53.svg +++ b/dev/manual/lattice/792fbfd1.svg @@ -1,1683 +1,1683 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/lattice/739dba8f.svg b/dev/manual/lattice/98141201.svg similarity index 71% rename from dev/manual/lattice/739dba8f.svg rename to dev/manual/lattice/98141201.svg index a97b794b..64212ec3 100644 --- a/dev/manual/lattice/739dba8f.svg +++ b/dev/manual/lattice/98141201.svg @@ -1,244 +1,244 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/lattice/8349a3f1.svg b/dev/manual/lattice/a77702fa.svg similarity index 70% rename from dev/manual/lattice/8349a3f1.svg rename to dev/manual/lattice/a77702fa.svg index fe39789c..d5c46ce3 100644 --- a/dev/manual/lattice/8349a3f1.svg +++ b/dev/manual/lattice/a77702fa.svg @@ -1,842 +1,842 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/lattice/f2a4ccea.svg b/dev/manual/lattice/b22f1967.svg similarity index 75% rename from dev/manual/lattice/f2a4ccea.svg rename to dev/manual/lattice/b22f1967.svg index 5dcf12ae..f5614097 100644 --- a/dev/manual/lattice/f2a4ccea.svg +++ b/dev/manual/lattice/b22f1967.svg @@ -1,67 +1,67 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/lattice/bfed3d25.svg b/dev/manual/lattice/b3953fc9.svg similarity index 72% rename from dev/manual/lattice/bfed3d25.svg rename to dev/manual/lattice/b3953fc9.svg index 468d232b..662aaf21 100644 --- a/dev/manual/lattice/bfed3d25.svg +++ b/dev/manual/lattice/b3953fc9.svg @@ -1,456 +1,456 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/lattice/a6fbc259.svg b/dev/manual/lattice/c5c11e42.svg similarity index 67% rename from dev/manual/lattice/a6fbc259.svg rename to dev/manual/lattice/c5c11e42.svg index 2d929094..bb85adbb 100644 --- a/dev/manual/lattice/a6fbc259.svg +++ b/dev/manual/lattice/c5c11e42.svg @@ -1,670 +1,670 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/lattice/adbeef75.svg b/dev/manual/lattice/f4e8dd10.svg similarity index 67% rename from dev/manual/lattice/adbeef75.svg rename to dev/manual/lattice/f4e8dd10.svg index e2e237f6..8d16df1c 100644 --- a/dev/manual/lattice/adbeef75.svg +++ b/dev/manual/lattice/f4e8dd10.svg @@ -1,505 +1,505 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/lattice/b755204e.svg b/dev/manual/lattice/f903457a.svg similarity index 70% rename from dev/manual/lattice/b755204e.svg rename to dev/manual/lattice/f903457a.svg index 16ec8900..1b328fba 100644 --- a/dev/manual/lattice/b755204e.svg +++ b/dev/manual/lattice/f903457a.svg @@ -1,170 +1,170 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/lattice/2a241c58.svg b/dev/manual/lattice/fbbbb287.svg similarity index 66% rename from dev/manual/lattice/2a241c58.svg rename to dev/manual/lattice/fbbbb287.svg index 3e57d076..80dd3d3b 100644 --- a/dev/manual/lattice/2a241c58.svg +++ b/dev/manual/lattice/fbbbb287.svg @@ -1,3881 +1,3881 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/lattice/index.html b/dev/manual/lattice/index.html index 3e060195..81fcf277 100644 --- a/dev/manual/lattice/index.html +++ b/dev/manual/lattice/index.html @@ -1,22 +1,22 @@ Defining the lattice · LatticeModels.jl

Lattices

This chapter describes the basic functionality of this package — creating and manipulating lattices.

Basics

Creating a lattice is simple. If you want to work with Bravais lattices, there are plenty of predefined types in the package. For example, to create a square lattice, you can use the SquareLattice type:

using LatticeModels, Plots
 l = SquareLattice(10, 10)
-plot(l)
Example block output

This will create a 10x10 square lattice. Note that you can create a plot by simply using the plot function from the Plots package.

SquareLattice(10, 10) notation means that we take a square lattice unit cell and translate it 10 times in the x and y directions. This syntax can be extended a little bit:

l = HoneycombLattice(-2:2, -2:2)
+plot(l)
Example block output

This will create a 10x10 square lattice. Note that you can create a plot by simply using the plot function from the Plots package.

SquareLattice(10, 10) notation means that we take a square lattice unit cell and translate it 10 times in the x and y directions. This syntax can be extended a little bit:

l = HoneycombLattice(-2:2, -2:2)
 plot(l)
-plot!(l[j1 = 0, j2 = 0], c=:red, ms=6)
Example block output

What happened here? We created a honeycomb lattice by translating the unit cell from -2 to 2 in both directions. Then we plotted the lattice and highlighted the unit cell at the origin to make it more visible. l[j1 = 0, j2 = 0] allowed us selecting part of the lattice by specifying the indices of the unit cell (j1 and j2 are the indices of the unit cell in the first and second directions, respectively).

If we need to create a lattice with a less trivial shape, we can use any function we need:

l = TriangularLattice(-10:10, -10:10) do site
+plot!(l[j1 = 0, j2 = 0], c=:red, ms=6)
Example block output

What happened here? We created a honeycomb lattice by translating the unit cell from -2 to 2 in both directions. Then we plotted the lattice and highlighted the unit cell at the origin to make it more visible. l[j1 = 0, j2 = 0] allowed us selecting part of the lattice by specifying the indices of the unit cell (j1 and j2 are the indices of the unit cell in the first and second directions, respectively).

If we need to create a lattice with a less trivial shape, we can use any function we need:

l = TriangularLattice(-10:10, -10:10) do site
     return 4 < sqrt(site.x^2 + site.y^2) < 8     # Create a ring-shaped lattice
 end
-plot(l)
Example block output

Here the lattice constructor first translated the unit cell from -10 to 10 in both directions, and then applied the function to each site to create a ring-shaped lattice. This is similar to the filter function in Julia — in fact, you can use filter or filter! on an existing lattice to create a new one as well.

There are other things you can control when creating a lattice, such as the lattice offset & rotation.

l1 = SquareLattice(-2:2, -2:2)
+plot(l)
Example block output

Here the lattice constructor first translated the unit cell from -10 to 10 in both directions, and then applied the function to each site to create a ring-shaped lattice. This is similar to the filter function in Julia — in fact, you can use filter or filter! on an existing lattice to create a new one as well.

There are other things you can control when creating a lattice, such as the lattice offset & rotation.

l1 = SquareLattice(-2:2, -2:2)
 l2 = SquareLattice(-2:2, -2:2, offset=:centeralign)
 l3 = SquareLattice(-2:2, -2:2, rotate=pi/3, offset=[6, -1.5])
 plot(l1, lab="No offset", shape=:circle)
 plot!(l2, lab="Center the unit cell", shape=:star)
-plot!(l3, lab="Shifted and rotated by π/3", shape=:square)
Example block output

To find out more about offset and rotation, see UnitCell — the keywords are described there.

Note

If you use both offset/rotation and a function to create a lattice, the function will be applied to the sites after the offset/rotation is applied. Use the postoffset and postrotate keywords to control the position and orientation of the lattice after the function is applied.

The lattices implement the AbstractSet interface, so you can use all the set operations on them — union, intersect, setdiff etc.

l1 = SquareLattice(-2:0, -2:0)
+plot!(l3, lab="Shifted and rotated by π/3", shape=:square)
Example block output

To find out more about offset and rotation, see UnitCell — the keywords are described there.

Note

If you use both offset/rotation and a function to create a lattice, the function will be applied to the sites after the offset/rotation is applied. Use the postoffset and postrotate keywords to control the position and orientation of the lattice after the function is applied.

The lattices implement the AbstractSet interface, so you can use all the set operations on them — union, intersect, setdiff etc.

l1 = SquareLattice(-2:0, -2:0)
 l2 = SquareLattice(0:2, 0:2)
 l3 = SquareLattice(-3:3, -3:3)
 l = setdiff(l3, union(l1, l2))
 plot(l)
-plot!(union(l1, l2), showbonds=false, alpha=0.3)
Example block output

Sites

Let's find out what sites actually are. A site is generally a point in the lattice. It is defined by its position in space and maybe some additional properties. In case of a Bravais lattice these additional properties are unit cell indices and the index in the unit cell.

A lattice is generally a set-like structure that allows indexing. Let's take a closer look in the REPL:

julia> using LatticeModels, Plots
julia> l = HoneycombLattice(-2:2, -2:2)50-site 2-dim Bravais lattice with 2-site basis in 2D space +plot!(union(l1, l2), showbonds=false, alpha=0.3)
Example block output

Sites

Let's find out what sites actually are. A site is generally a point in the lattice. It is defined by its position in space and maybe some additional properties. In case of a Bravais lattice these additional properties are unit cell indices and the index in the unit cell.

A lattice is generally a set-like structure that allows indexing. Let's take a closer look in the REPL:

julia> using LatticeModels, Plots
julia> l = HoneycombLattice(-2:2, -2:2)50-site 2-dim Bravais lattice with 2-site basis in 2D space Unit cell: Basis site coordinates: ┌ ┐ ┌ ┐ @@ -47,37 +47,37 @@ 1 => 2, [-1, 1] Boundary conditions: none
julia> site = l[1] # Get the first site2-dim Bravais lattice site in 2D space at [-3.0, -1.7320508075688772]
julia> site.x # Get the x-coordinate of the site-3.0
julia> site.j2 # Get the second index of the unit cell-2
julia> site.index # Get the index of the site in the unit cell1
julia> x, y = site # Destructure the site2-dim Bravais lattice site in 2D space at [-3.0, -1.7320508075688772]

As we see, we can access the properties of the site simply as fields of the site object. We can also destructure the site to get its coordinates.

Julia 1.8

Accessing the properties of the site as fields like site.x requires Julia 1.8 and later. This limitation is imposed with purpose, since this seriously affects runtime performance in earlier versions. You will still be able to destructure the site to get its coordinates, or use the following fields:

  • site.coords — the position of the site
  • site.latcoords — the unit cell indices
  • site.index — the index of the site in the unit cell

Properties like x, j1, index etc. are part of a general SiteProperty interface. You can use them to create 'slices' of lattices:

slice = l[j1 = 0 .. 2, j2 = -2 .. 0, index=1]  # Get a slice of the lattice
 plot(l)
-plot!(slice, c=:red, ms=6)
Example block output

Here 0 .. 2 and -2 .. 0 are intervals defining the ranges of the unit cell indices. You can use any collection instead of then if you need.

Finding sites by their properties can be done with the same notation:

julia> l[x = 1.5, y = √3/2]    # Find the site with x = 1.5 and y = √3/22-dim Bravais lattice site in 2D space at [1.5, 0.8660254037844386]
julia> l[x = 1.2, y = 3] # No such site, throws an errorERROR: BoundsError: attempt to access 50-site HoneycombLattice in 2D space at index [(x = 1.2, y = 3)]

This is notation is convenient yet type-unstable, since it returns a Site object if there is one site satisfying the condition — otherwise a lattice is returned. To make sure that the result is indeed a site, add ! to the beginning of the condition:

julia> l[!, x = 1.5, y = √3/2]    # Find the site with x = 1.5 and y = √3/22-dim Bravais lattice site in 2D space at [1.5, 0.8660254037844386]
julia> l[!, x = 1.5] # More than one site, throws an errorERROR: ArgumentError: More than one site satisfies parameter conditions

Note that pair notation is also supported. You can use it to access the properties of the site using the Coord and LatticeCoord types. For example, the following two lines are equivalent to ones above:

julia> l[!, Coord(1) => 1.5, Coord(2) => √3/2] # Same as l[!, x = 1.5, y = √3/2]2-dim Bravais lattice site in 2D space at [1.5, 0.8660254037844386]
julia> l[!, Coord(1) => 1.5] # Same as l[!, x = 1.5]ERROR: ArgumentError: More than one site satisfies parameter conditions

This notation improves performance on Julia 1.7 and earlier, since it does not need any type-inference tricks to work fast. You may also find it useful when you work with multi-dimensional lattices.

Here is a short list of site properties you can use:

  • x, y, z — the position of the site. Alternatively, you can use x1, x2, x3, x4 and so on to access the coordinates of the site in the unit cell. Use Coord(i) to access the i-th coordinate using pair notation.
  • j1, j2, j3 and so on — the indices of the unit cell. Use LatticeCoord(i) to access the i-th index using pair notation.
  • index — the index of the site in the unit cell. Use BasisIndex() to access it using pair notation.

Custom UnitCell

You can also create a lattice from a custom unit cell:

using LatticeModels, Plots
+plot!(slice, c=:red, ms=6)
Example block output

Here 0 .. 2 and -2 .. 0 are intervals defining the ranges of the unit cell indices. You can use any collection instead of then if you need.

Finding sites by their properties can be done with the same notation:

julia> l[x = 1.5, y = √3/2]    # Find the site with x = 1.5 and y = √3/22-dim Bravais lattice site in 2D space at [1.5, 0.8660254037844386]
julia> l[x = 1.2, y = 3] # No such site, throws an errorERROR: BoundsError: attempt to access 50-site HoneycombLattice in 2D space at index [(x = 1.2, y = 3)]

This is notation is convenient yet type-unstable, since it returns a Site object if there is one site satisfying the condition — otherwise a lattice is returned. To make sure that the result is indeed a site, add ! to the beginning of the condition:

julia> l[!, x = 1.5, y = √3/2]    # Find the site with x = 1.5 and y = √3/22-dim Bravais lattice site in 2D space at [1.5, 0.8660254037844386]
julia> l[!, x = 1.5] # More than one site, throws an errorERROR: ArgumentError: More than one site satisfies parameter conditions

Note that pair notation is also supported. You can use it to access the properties of the site using the Coord and LatticeCoord types. For example, the following two lines are equivalent to ones above:

julia> l[!, Coord(1) => 1.5, Coord(2) => √3/2] # Same as l[!, x = 1.5, y = √3/2]2-dim Bravais lattice site in 2D space at [1.5, 0.8660254037844386]
julia> l[!, Coord(1) => 1.5] # Same as l[!, x = 1.5]ERROR: ArgumentError: More than one site satisfies parameter conditions

This notation improves performance on Julia 1.7 and earlier, since it does not need any type-inference tricks to work fast. You may also find it useful when you work with multi-dimensional lattices.

Here is a short list of site properties you can use:

  • x, y, z — the position of the site. Alternatively, you can use x1, x2, x3, x4 and so on to access the coordinates of the site in the unit cell. Use Coord(i) to access the i-th coordinate using pair notation.
  • j1, j2, j3 and so on — the indices of the unit cell. Use LatticeCoord(i) to access the i-th index using pair notation.
  • index — the index of the site in the unit cell. Use BasisIndex() to access it using pair notation.

Custom UnitCell

You can also create a lattice from a custom unit cell:

using LatticeModels, Plots
 # This will be our custom honeycomb lattice unit cell
 # First argument - vectors of the unit cell
 # Second argument - radius-vectors for the sites in the unit cell
 uc = UnitCell([[1/2, sqrt(3)/2] [-1/2, sqrt(3)/2]], [[0, sqrt(3)/6] [0, -sqrt(3)/6]])
-plot(uc)    # Plot the unit cell
Example block output

Note that both arguments are actually matrices — the first one is a matrix of the unit cell vectors, and the second one is a matrix of the site positions in the unit cell. However, here we used concatenation to create the matrices for the sake of readability: remember that [[a, b] [c, d]] is equivalent to [a c; b d].

To create a lattice, we can use the span_unitcells function:

l = span_unitcells(uc, -5:5, -5:5) do site
+plot(uc)    # Plot the unit cell
Example block output

Note that both arguments are actually matrices — the first one is a matrix of the unit cell vectors, and the second one is a matrix of the site positions in the unit cell. However, here we used concatenation to create the matrices for the sake of readability: remember that [[a, b] [c, d]] is equivalent to [a c; b d].

To create a lattice, we can use the span_unitcells function:

l = span_unitcells(uc, -5:5, -5:5) do site
     x, y = site
     return abs(y) < 5 &&
         abs(y * 1 / 2 + x * sqrt(3) / 2) < 5 &&
         abs(y * 1 / 2 - x * sqrt(3) / 2) < 5
 end   # Create a hex shape
-plot(l)
Example block output

In fact, the constructors we discussed earlier are just a shorthand for span_unitcells with a predefined unit cell. You can use span_unitcells to create a lattice from any unit cell you want.

Shapes

The shapes framework is a powerful tool for creating lattices of arbitrary geometry:

using LatticeModels, Plots
+plot(l)
Example block output

In fact, the constructors we discussed earlier are just a shorthand for span_unitcells with a predefined unit cell. You can use span_unitcells to create a lattice from any unit cell you want.

Shapes

The shapes framework is a powerful tool for creating lattices of arbitrary geometry:

using LatticeModels, Plots
 l = SquareLattice{2}(Hexagon(10, [-10, 0]), Circle(10, [10, 0]))
-plot(l)
Example block output

Here we created a square lattice in shape of a hexagon and a circle. The first argument of the shape is its radius (for the hexagon it is the distance from its center to the vortices), and the second argument is the center of the shape. Other possible shapes include Rectangle, Polygon, SiteAt and Path.

complex_l = SquareLattice{2}(   # Here you have to specify the dimension of the lattice
+plot(l)
Example block output

Here we created a square lattice in shape of a hexagon and a circle. The first argument of the shape is its radius (for the hexagon it is the distance from its center to the vortices), and the second argument is the center of the shape. Other possible shapes include Rectangle, Polygon, SiteAt and Path.

complex_l = SquareLattice{2}(   # Here you have to specify the dimension of the lattice
     Circle(10), Circle(10, [20, 0]), Circle(10, [10, 10√3]),
     !Circle(5), !Circle(5, [20, 0]), !Circle(5, [10, 10√3]),
     Rectangle(-5 .. 5, -14 .. -12), Rectangle(15 .. 25, -14 .. -12),
     Path([-12, 32], [32, 32]), SiteAt([0, 0]), SiteAt([20, 0])
 )
-plot(complex_l)
Example block output

Note that adding ! before the shape inverts it. This is useful when you need to create a lattice with a hole in it.

Sometimes the shape can become ill-formed — this happens when the unit cell has non-trivial geometry. In this case you may need to remove the dangling sites using the removedangling! function. For example, they can arise when creating a path on a honeycomb lattice:

l = HoneycombLattice(Circle(3, [0, 0]), Circle(3, [-2, 10]), Path([0, 0], [-2, 10]))
+plot(complex_l)
Example block output

Note that adding ! before the shape inverts it. This is useful when you need to create a lattice with a hole in it.

Sometimes the shape can become ill-formed — this happens when the unit cell has non-trivial geometry. In this case you may need to remove the dangling sites using the removedangling! function. For example, they can arise when creating a path on a honeycomb lattice:

l = HoneycombLattice(Circle(3, [0, 0]), Circle(3, [-2, 10]), Path([0, 0], [-2, 10]))
 p = plot(size=(800, 350), layout=(1, 2))
 plot!(p[1], l, title="With dangling sites")
 removedangling!(l)
-plot!(p[2], l, title="Without dangling sites")
Example block output

Let's discuss what is happening under the hood. The HoneycombLattice constructor calls the fillshapes function, which estimates the unitcells one has to span for each shape, and adds the sites that are in the shape to the lattice.

You can also use addshapes! to add shapes to an existing lattice and deleteshapes! to remove them. These functions, however, do not support the ! notation for inverting shapes.

One last, but not least, thing to mention is that this framework allows approximate scaling. If you need a lattice with distinct shape and, say, roughly 1000 sites, you can use the sites keyword to specify the number of sites you need:

l = TriangularLattice(sites=1000, Circle(1, [-1, 0]), Circle(1, [1, 0]), Circle(1, [0, √3]))
-plot(l, title = "$(length(l)) ≈ 1000 sites")
Example block output

You can also use the shaperadius function to estimate the radius of the shape that will give you the desired number of sites:[1]

circ = SquareLattice{2}(Circle(), sites=150)
+plot!(p[2], l, title="Without dangling sites")
Example block output

Let's discuss what is happening under the hood. The HoneycombLattice constructor calls the fillshapes function, which estimates the unitcells one has to span for each shape, and adds the sites that are in the shape to the lattice.

You can also use addshapes! to add shapes to an existing lattice and deleteshapes! to remove them. These functions, however, do not support the ! notation for inverting shapes.

One last, but not least, thing to mention is that this framework allows approximate scaling. If you need a lattice with distinct shape and, say, roughly 1000 sites, you can use the sites keyword to specify the number of sites you need:

l = TriangularLattice(sites=1000, Circle(1, [-1, 0]), Circle(1, [1, 0]), Circle(1, [0, √3]))
+plot(l, title = "$(length(l)) ≈ 1000 sites")
Example block output

You can also use the shaperadius function to estimate the radius of the shape that will give you the desired number of sites:[1]

circ = SquareLattice{2}(Circle(), sites=150)
 r = shaperadius(circ, Circle())
 plot(circ, lab = "$(length(circ)) ≈ 150 sites")
-plot!(Circle(r), c=:grey, ls=:dash, lab = "r ≈ $r")
Example block output
Note

Radius estimation is not always precise and works under following assumptions:

  • The shapes are large enough to contain the unit cell and do not intersect with each other.
  • The inverted shapes are all contained in the non-inverted ones, and also do not intersect with each other.

Multi-dimensional lattices

This package supports multi-dimensional lattices. You can create a lattice of any dimension by creating a suitable unit cell first. Or by passing the required amount of axes to the lattice constructor, if the type supports it:

using LatticeModels, Plots
+plot!(Circle(r), c=:grey, ls=:dash, lab = "r ≈ $r")
Example block output
Note

Radius estimation is not always precise and works under following assumptions:

  • The shapes are large enough to contain the unit cell and do not intersect with each other.
  • The inverted shapes are all contained in the non-inverted ones, and also do not intersect with each other.

Multi-dimensional lattices

This package supports multi-dimensional lattices. You can create a lattice of any dimension by creating a suitable unit cell first. Or by passing the required amount of axes to the lattice constructor, if the type supports it:

using LatticeModels, Plots
 l = SquareLattice(5, 4, 3)
-plot(l)     # A 3D cubic lattice
Example block output

Also remember that the dimensions of the lattice are not necessarily spatial dimensions. For example, you can create a bilayer Graphene lattice by defining a unit cell with two layers:

# Bilayer Graphene with shifted layers
+plot(l)     # A 3D cubic lattice
Example block output

Also remember that the dimensions of the lattice are not necessarily spatial dimensions. For example, you can create a bilayer Graphene lattice by defining a unit cell with two layers:

# Bilayer Graphene with shifted layers
 uc = UnitCell([[1, 0, 0] [1/2, √3/2, 0]],
     [[0, 0, 0] [1/2, √3/6, 0] [0, 0, √3/3] [-1/2, -√3/6, √3/3]])
 l = span_unitcells(uc, -2:2, -2:2)
-plot(l, lc=:grey, zwiden=1.3)
Example block output

Effectively, it is a 2D lattice in 3D space. Note that you can always project a multi-dimensional lattice or its slice to a 2D plane when plotting it:

plot(l[index=(1, 2)], axes=(:x, :y))    # Plot the first layer
Example block output

Bonds and hoppings

In the scope of this package, bonds are not considered part of the lattice, but rather a separate structure that connects sites. You can assign nearest-neighbour hoppings to the lattice (of course, since you can see them on the plot), but in general the lattice and the bonds are separate entities. The reasoning behind this is that in some cases you may need to use different sets of bonds for different models.

To find out more about bonds, adjacency and boundary conditions, see the next chapter: Adjacency and boundary conditions.

  • 1Actually, the shaperadius function returns the scaling factor for the shape set. However, Circle() by default creates a circle with radius 1, so the scaling factor is equal to the radius of the circle.
+plot(l, lc=:grey, zwiden=1.3)Example block output

Effectively, it is a 2D lattice in 3D space. Note that you can always project a multi-dimensional lattice or its slice to a 2D plane when plotting it:

plot(l[index=(1, 2)], axes=(:x, :y))    # Plot the first layer
Example block output

Bonds and hoppings

In the scope of this package, bonds are not considered part of the lattice, but rather a separate structure that connects sites. You can assign nearest-neighbour hoppings to the lattice (of course, since you can see them on the plot), but in general the lattice and the bonds are separate entities. The reasoning behind this is that in some cases you may need to use different sets of bonds for different models.

To find out more about bonds, adjacency and boundary conditions, see the next chapter: Adjacency and boundary conditions.

  • 1Actually, the shaperadius function returns the scaling factor for the shape set. However, Circle() by default creates a circle with radius 1, so the scaling factor is equal to the radius of the circle.
diff --git a/dev/manual/latticevalue/12a7a267.svg b/dev/manual/latticevalue/1332333e.svg similarity index 57% rename from dev/manual/latticevalue/12a7a267.svg rename to dev/manual/latticevalue/1332333e.svg index be2524d9..b7e4169a 100644 --- a/dev/manual/latticevalue/12a7a267.svg +++ b/dev/manual/latticevalue/1332333e.svg @@ -1,100 +1,100 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + diff --git a/dev/manual/latticevalue/981fce60.svg b/dev/manual/latticevalue/2d20bdfe.svg similarity index 69% rename from dev/manual/latticevalue/981fce60.svg rename to dev/manual/latticevalue/2d20bdfe.svg index 3700316c..a996b5e6 100644 --- a/dev/manual/latticevalue/981fce60.svg +++ b/dev/manual/latticevalue/2d20bdfe.svg @@ -1,458 +1,458 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + diff --git a/dev/manual/latticevalue/6b7eb22d.svg b/dev/manual/latticevalue/48ec91ba.svg similarity index 80% rename from dev/manual/latticevalue/6b7eb22d.svg rename to dev/manual/latticevalue/48ec91ba.svg index 5fc7166e..47c5d2ca 100644 --- a/dev/manual/latticevalue/6b7eb22d.svg +++ b/dev/manual/latticevalue/48ec91ba.svg @@ -1,290 +1,290 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + diff --git a/dev/manual/latticevalue/8805b403.svg b/dev/manual/latticevalue/5645fafb.svg similarity index 72% rename from dev/manual/latticevalue/8805b403.svg rename to dev/manual/latticevalue/5645fafb.svg index b1d1a431..01a9dba8 100644 --- a/dev/manual/latticevalue/8805b403.svg +++ b/dev/manual/latticevalue/5645fafb.svg @@ -1,458 +1,458 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + diff --git a/dev/manual/latticevalue/680c338b.svg b/dev/manual/latticevalue/aa7e0601.svg similarity index 81% rename from dev/manual/latticevalue/680c338b.svg rename to dev/manual/latticevalue/aa7e0601.svg index 8073e8d7..fb0e933a 100644 --- a/dev/manual/latticevalue/680c338b.svg +++ b/dev/manual/latticevalue/aa7e0601.svg @@ -1,290 +1,290 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + diff --git a/dev/manual/latticevalue/index.html b/dev/manual/latticevalue/index.html index b8be7fbe..2dc0f3b8 100644 --- a/dev/manual/latticevalue/index.html +++ b/dev/manual/latticevalue/index.html @@ -8,7 +8,7 @@ v[x = -2 .. 0] .= 3 # set the value to 3 on the left half of the lattice r = randn(l) # create a random lattice value (normal distribution) v2 = v .^ 2 .+ r # broadcast operations work as expected -heatmap(v2)Example block output

The LatticeValue type implements basic vector creation operations: zero, zeros, one, ones, rand, randn, fill, copy. Slices and views are also supported.

There are also other AbstractVector methods you can use:

julia> sum(abs2, v2)1220.1022519035657
julia> extrema(v2)(-1.2104402144891826, 10.221942233909214)
julia> argmax(v2)2-dim Bravais lattice site in 2D space at [-2.0, -1.0]
julia> ms = findall(x -> x < 3, v2)8-element Vector{LatticeModels.BravaisSite{2, 2, UnitCell{2, 2, 1, 4, 2}}}: +heatmap(v2)
Example block output

The LatticeValue type implements basic vector creation operations: zero, zeros, one, ones, rand, randn, fill, copy. Slices and views are also supported.

There are also other AbstractVector methods you can use:

julia> sum(abs2, v2)1173.4608109501255
julia> extrema(v2)(-0.3345562441130406, 10.405293526805167)
julia> argmax(v2)2-dim Bravais lattice site in 2D space at [0.0, 1.0]
julia> ms = findall(x -> x < 3, v2)8-element Vector{LatticeModels.BravaisSite{2, 2, UnitCell{2, 2, 1, 4, 2}}}: Site at [1.0, -2.0] Site at [1.0, -1.0] Site at [1.0, 0.0] @@ -16,7 +16,7 @@ Site at [1.0, 2.0] Site at [2.0, -2.0] Site at [2.0, -1.0] - Site at [2.0, 0.0]
julia> v2[first(ms)]0.2972449690382064

Indexing and slicing

Let's talk a bit more about the indexing and slicing of LatticeValue. There are several ways to index a LatticeValue. The return value in this case is either a scalar or another LatticeValue with a narrowed domain. The following indexing methods are supported:

  • v[site] returns the value at site site.
  • v[[site1, site2, ...]] returns a LatticeValue with the values at the specified sites. site1, site2, etc. are single sites grouped into an abstract array. The return value is a LatticeValue with the same values but narrowed to the specified sites.
  • v[lat] returns a LatticeValue with the same values but narrowed to the sites of lattice lat. lat here must be a lattice, which is a subset of the lattice of v.
  • v[mask] returns a LatticeValue with the same values but narrowed to the sites where mask is true. mask here must be a LatticeValue of Bool type, defined on the same (or a superset of the) lattice.
  • v[x = 1 .. 2, y = 1 .. 2] returns a LatticeValue with the same values but narrowed to the sites where the x coordinate is in the range 1 .. 2 and the y coordinate is in the range 1 .. 2. The keyword arguments here must be the names of the site parameters (see Sites), and the values can be any containers or single values. Pair notation is also supported: v[Coord(1) => 1 .. 2, Coord(2) => 1 .. 2].

This indexing is valid for both reading and writing. Remember, however, that the right-hand side of the assignment must be a LatticeValue or a scalar value (in which case the destination site must be a single site, otherwise an error will be thrown).

Therefore, l[x=1, y=1] = 1 is not a valid assignment, because the left-hand side can contain multiple sites[1] (for example, if it is a 3D lattice). But l[!, x=1, y=1] = 1 is a valid assignment — adding ! to the index means that the left-hand side is a single site.

Note

The same indexing methods can be used to slice a lattice, a GreenFunction, a Currents object or a TimeSequence.

Iteration and broadcasting

You can consider a LatticeValue as a vector of values, with its indices being the sites of the lattice. Therefore, iterating over v will yield the values of the LaticeValue, and eachindex(v) will return the lattice it is defined on.

Broadcasting operations work as expected. For example, v .+ 1 will add 1 to each value of v, and v .+ r will add the corresponding values of v and r. However, there are some limitations: you cannot broadcast a LatticeValue with anything other than a scalar or another LatticeValue. Also the lattices must be the same, otherwise an error will be thrown.

julia> using LatticeModels
julia> l = SquareLattice(4, 4);
julia> x, y = coordvalues(l)2-element Vector{LatticeValue{Float64, LatticeWithMetadata{LatticeModels.BravaisLattice{2, 2, UnitCell{2, 2, 1, 4, 2}}, params(:latticetype, :defaulttranslations, :nnbonds, :boundaries)}}}: + Site at [2.0, 0.0]
julia> v2[first(ms)]0.8728782850017317

Indexing and slicing

Let's talk a bit more about the indexing and slicing of LatticeValue. There are several ways to index a LatticeValue. The return value in this case is either a scalar or another LatticeValue with a narrowed domain. The following indexing methods are supported:

  • v[site] returns the value at site site.
  • v[[site1, site2, ...]] returns a LatticeValue with the values at the specified sites. site1, site2, etc. are single sites grouped into an abstract array. The return value is a LatticeValue with the same values but narrowed to the specified sites.
  • v[lat] returns a LatticeValue with the same values but narrowed to the sites of lattice lat. lat here must be a lattice, which is a subset of the lattice of v.
  • v[mask] returns a LatticeValue with the same values but narrowed to the sites where mask is true. mask here must be a LatticeValue of Bool type, defined on the same (or a superset of the) lattice.
  • v[x = 1 .. 2, y = 1 .. 2] returns a LatticeValue with the same values but narrowed to the sites where the x coordinate is in the range 1 .. 2 and the y coordinate is in the range 1 .. 2. The keyword arguments here must be the names of the site parameters (see Sites), and the values can be any containers or single values. Pair notation is also supported: v[Coord(1) => 1 .. 2, Coord(2) => 1 .. 2].

This indexing is valid for both reading and writing. Remember, however, that the right-hand side of the assignment must be a LatticeValue or a scalar value (in which case the destination site must be a single site, otherwise an error will be thrown).

Therefore, l[x=1, y=1] = 1 is not a valid assignment, because the left-hand side can contain multiple sites[1] (for example, if it is a 3D lattice). But l[!, x=1, y=1] = 1 is a valid assignment — adding ! to the index means that the left-hand side is a single site.

Note

The same indexing methods can be used to slice a lattice, a GreenFunction, a Currents object or a TimeSequence.

Iteration and broadcasting

You can consider a LatticeValue as a vector of values, with its indices being the sites of the lattice. Therefore, iterating over v will yield the values of the LaticeValue, and eachindex(v) will return the lattice it is defined on.

Broadcasting operations work as expected. For example, v .+ 1 will add 1 to each value of v, and v .+ r will add the corresponding values of v and r. However, there are some limitations: you cannot broadcast a LatticeValue with anything other than a scalar or another LatticeValue. Also the lattices must be the same, otherwise an error will be thrown.

julia> using LatticeModels
julia> l = SquareLattice(4, 4);
julia> x, y = coordvalues(l)2-element Vector{LatticeValue{Float64, LatticeWithMetadata{LatticeModels.BravaisLattice{2, 2, UnitCell{2, 2, 1, 4, 2}}, params(:latticetype, :defaulttranslations, :nnbonds, :boundaries)}}}: LatticeValue{Float64} on a 16-site SquareLattice in 2D space LatticeValue{Float64} on a 16-site SquareLattice in 2D space
julia> v = zeros(l)LatticeValue{Float64} on a 16-site SquareLattice in 2D space Values stored in a Vector{Float64}: @@ -44,10 +44,10 @@ println("Average local density in the bulk: ", mean(dens[bulk])) println("Average local density on the edge: ", mean(dens[edge]))
Average local density in the bulk: 0.0015137976913621933
 Average local density on the edge: 0.008495254779782493

The average local density in the bulk is much higher than on the edge, as expected.

Visualization

One key feature of LatticeValue is that it can be visualized using the Plots.jl package. There are several ways to do it.

The "classical" way is just to use the plot function. The result will be a scatter plot of the lattice sites with the value of the LatticeValue as the color and size of the markers.

Let us continue with the previous example:

using Plots
-plot(dens)
Example block output

This is the default behavior. You can customize the plot as usual with Plots.jl — for example, you can change the colormap, the marker size, etc. You can also set markerscale=false to disable the scaling of the marker size by the value of the LatticeValue:

# Dark theme makes everything look cooler
+plot(dens)
Example block output

This is the default behavior. You can customize the plot as usual with Plots.jl — for example, you can change the colormap, the marker size, etc. You can also set markerscale=false to disable the scaling of the marker size by the value of the LatticeValue:

# Dark theme makes everything look cooler
 plot(dens, markerscale=false, markersize=12, c=:inferno,
-    title="Local density of the ground state", bg=:black)
Example block output

Another way to visualize a LatticeValue is to use the shape plot seriestype=:shape, or heatmap function. This will create a tile plot of the lattice sites with the value of the LatticeValue as the color of the tiles.

heatmap(dens, title="Local density of the ground state")
Example block output

You can also use pass shape=:circle to create a scatter plot with large circles instead of the default markers. The difference here is that the size of the circles will scale with the plot, unlike the markers in the scatter plot. markerscale is also supported here, but by default it is set to false.

Let's showcase all of these options:

p = plot(size=(1000, 850), layout=(2, 2))
+    title="Local density of the ground state", bg=:black)
Example block output

Another way to visualize a LatticeValue is to use the shape plot seriestype=:shape, or heatmap function. This will create a tile plot of the lattice sites with the value of the LatticeValue as the color of the tiles.

heatmap(dens, title="Local density of the ground state")
Example block output

You can also use pass shape=:circle to create a scatter plot with large circles instead of the default markers. The difference here is that the size of the circles will scale with the plot, unlike the markers in the scatter plot. markerscale is also supported here, but by default it is set to false.

Let's showcase all of these options:

p = plot(size=(1000, 850), layout=(2, 2))
 heatmap!(p[1], dens, title="Hexagons, no scale")
 heatmap!(p[2], dens, markerscale=true, title="Hexagons, scale")
 heatmap!(p[3], dens, shape=:circle, title="Circles, no scale")
-heatmap!(p[4], dens, shape=:circle, markerscale=true, title="Circles, scale")
Example block output
Tip

The shape plot is slower than the scatter plot, because it creates a separate shape for each site. If you are creating an animation or a large plot, you may want to use the scatter plot with custom-shaped markers instead.

  • 1This is somewhat similar to the behavior of arrays in Julia: v[1:1] = 1 will throw an error, even though the left-hand side is a single-element array.
+heatmap!(p[4], dens, shape=:circle, markerscale=true, title="Circles, scale")Example block output
Tip

The shape plot is slower than the scatter plot, because it creates a separate shape for each site. If you are creating an animation or a large plot, you may want to use the scatter plot with custom-shaped markers instead.

  • 1This is somewhat similar to the behavior of arrays in Julia: v[1:1] = 1 will throw an error, even though the left-hand side is a single-element array.
diff --git a/dev/manual/operators/0da4f8f0.svg b/dev/manual/operators/8be31042.svg similarity index 81% rename from dev/manual/operators/0da4f8f0.svg rename to dev/manual/operators/8be31042.svg index 91847f4d..237761ec 100644 --- a/dev/manual/operators/0da4f8f0.svg +++ b/dev/manual/operators/8be31042.svg @@ -1,124 +1,124 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + diff --git a/dev/manual/operators/59da11e6.svg b/dev/manual/operators/a699e4fc.svg similarity index 74% rename from dev/manual/operators/59da11e6.svg rename to dev/manual/operators/a699e4fc.svg index 5294543d..f4efd5e2 100644 --- a/dev/manual/operators/59da11e6.svg +++ b/dev/manual/operators/a699e4fc.svg @@ -1,208 +1,208 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + diff --git a/dev/manual/operators/39ce1d89.svg b/dev/manual/operators/e0ce6af7.svg similarity index 75% rename from dev/manual/operators/39ce1d89.svg rename to dev/manual/operators/e0ce6af7.svg index bc8bd7ba..9346d1e9 100644 --- a/dev/manual/operators/39ce1d89.svg +++ b/dev/manual/operators/e0ce6af7.svg @@ -1,212 +1,212 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/manual/operators/index.html b/dev/manual/operators/index.html index a7a401c7..7532c551 100644 --- a/dev/manual/operators/index.html +++ b/dev/manual/operators/index.html @@ -31,7 +31,7 @@ l = GrapheneRibbon(6, 4) H = tightbinding_hamiltonian(l) d = localdensity(groundstate(H)) -plot(d)Example block output

The localdensity function uses the following formula to calculate the density at each site: $\rho_i = \text{Tr}(\hat{n}_i \hat{\rho})$, where $\hat{n}_i$ is the number operator at site $i$ and $\hat{\rho}$ is the density matrix. Note that if the values are complex, the function will return the real part of them. This is what makes the next example work.

The local Chern marker is a quantity that can be used to detect topological phases in a lattice model. It can be calculated using the following formula:

\[\mathcal{C}(r) = 4\pi \text{Im} \langle r | P X P Y P | r \rangle\]

Here $P$ is the projector onto the occupied states (e. g. the density matrix), and $X$ and $Y$ are the position operators. The local Chern marker is a real number that can be calculated for each site in the lattice.

Let's do this for a QWZ model Hamiltonian on a square lattice:

l = SquareLattice(6, 6)
+plot(d)
Example block output

The localdensity function uses the following formula to calculate the density at each site: $\rho_i = \text{Tr}(\hat{n}_i \hat{\rho})$, where $\hat{n}_i$ is the number operator at site $i$ and $\hat{\rho}$ is the density matrix. Note that if the values are complex, the function will return the real part of them. This is what makes the next example work.

The local Chern marker is a quantity that can be used to detect topological phases in a lattice model. It can be calculated using the following formula:

\[\mathcal{C}(r) = 4\pi \text{Im} \langle r | P X P Y P | r \rangle\]

Here $P$ is the projector onto the occupied states (e. g. the density matrix), and $X$ and $Y$ are the position operators. The local Chern marker is a real number that can be calculated for each site in the lattice.

Let's do this for a QWZ model Hamiltonian on a square lattice:

l = SquareLattice(6, 6)
 sys = l ⊗ SpinBasis(1//2)
 ms = ones(l)
 ms[x = 3 .. 4, y = 3 .. 4] .= -1
@@ -40,7 +40,7 @@
 P = densitymatrix(H, mu=0, statistics=FermiDirac)
 X, Y = coordoperators(sys)
 c = localdensity(-4π * im * P * X * P * Y * P)
-heatmap(c, title="Local Chern marker")
Example block output

Diagonalizing

To diagonalize a Hamiltonian or any other operator, you can use the diagonalize function. It takes an operator and returns a EigenSystem object with the eigenvalues and eigenvectors of the operator.

using LatticeModels, Plots
+heatmap(c, title="Local Chern marker")
Example block output

Diagonalizing

To diagonalize a Hamiltonian or any other operator, you can use the diagonalize function. It takes an operator and returns a EigenSystem object with the eigenvalues and eigenvectors of the operator.

using LatticeModels, Plots
 l = GrapheneRibbon(6, 4)
 H = haldane(l, 0.1, 1)
 eig = diagonalize(H)
Diagonalized Hamiltonian (48 eigenvectors)
@@ -51,7 +51,7 @@
 p = plot(layout = @layout[a b; c], size=(800, 800))
 plot!(p[1], localdensity(psi), title="Ground state")
 plot!(p[2], localdensity(psi2), title="Zero energy state")
-scatter!(p[3], eig.values, title="Spectrum", lab="")
Example block output
Tip

You can find the ground state of a Hamiltonian in one line using the groundstate function:

psi = groundstate(H)

To evaluate both the ground state and its energy, use the findgroundstate function:

E0, psi = findgroundstate(H)

The diagonalize function under its hood uses the eigen function from the LinearAlgebra standard library. However, this does not work for non-trivial matrix types (e. g. sparse matrices or GPU arrays). For such cases you can pass the second argument to the diagonalize function, which is a Symbol indicating the method to use for diagonalization. To use the eigsolve function from the KrylovKit.jl package, you can pass :krylovkit as the second argument. Since this solves the eigenvalue problem iteratively, you can also pass the keyword arguments: n for the number of eigenvalues to compute, v0 for the initial guess, and the keyword arguments for the eigsolve function.

l = SquareLattice(100, 100)             # A really big lattice
+scatter!(p[3], eig.values, title="Spectrum", lab="")
Example block output
Tip

You can find the ground state of a Hamiltonian in one line using the groundstate function:

psi = groundstate(H)

To evaluate both the ground state and its energy, use the findgroundstate function:

E0, psi = findgroundstate(H)

The diagonalize function under its hood uses the eigen function from the LinearAlgebra standard library. However, this does not work for non-trivial matrix types (e. g. sparse matrices or GPU arrays). For such cases you can pass the second argument to the diagonalize function, which is a Symbol indicating the method to use for diagonalization. To use the eigsolve function from the KrylovKit.jl package, you can pass :krylovkit as the second argument. Since this solves the eigenvalue problem iteratively, you can also pass the keyword arguments: n for the number of eigenvalues to compute, v0 for the initial guess, and the keyword arguments for the eigsolve function.

l = SquareLattice(100, 100)             # A really big lattice
 H = tightbinding_hamiltonian(l)
 eig = diagonalize(H, :krylovkit, n=9)   # Compute only 9 eigenvalues with smallest real part
 p = plot(layout=9, leg=false, size=(1000, 900))
@@ -82,4 +82,4 @@
 P1 = projector(x -> x < 0, eig)             # Projector onto the states with energy < 0
 P2 = projector(x -> 1 / (1 + exp(x)), eig)  # Fermi-Dirac distribution
 P3 = projector(eig[1:4])                    # Projector onto the first 4 states
-# Note how we slice the `eig` object to get the first 4 states
+# Note how we slice the `eig` object to get the first 4 states diff --git a/dev/search_index.js b/dev/search_index.js index 0a562530..4d30a9e8 100644 --- a/dev/search_index.js +++ b/dev/search_index.js @@ -1,3 +1,3 @@ var documenterSearchIndex = {"docs": -[{"location":"manual/bonds/#Adjacency-and-boundary-conditions","page":"Adding bonds","title":"Adjacency and boundary conditions","text":"","category":"section"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"This chapter describes how to define bonds between sites in a lattice and how to use them to define boundary conditions.","category":"page"},{"location":"manual/bonds/#General-bonds","page":"Adding bonds","title":"General bonds","text":"","category":"section"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"There are several ways to define bonds between sites in a lattice. The most general way is to define a function that takes two sites and returns if they are connected. ","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"Generally, all objects that define bonds are subtypes of the AbstractBonds type. Here is a short overview of types of bonds that are supported by this package:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"AdjacencyMatrix — a simple matrix that defines if two sites are connected.\nSiteDistance — connectivity based on the distance between sites.\nNearestNeighbor — connects nearest neighbors on a given lattice. You can specify the order of the neighbors (e. g. first, second, etc.) by passing an integer to the constructor: NearestNeighbor(2).\nTranslation — connects two sites that are shifted by a certain vector.\nBravaisTranslation — connects two sites in a Bravais lattice unit cell. Unlike the Translation, it is defined in terms of the lattice axes and the site indices.","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"Let's begin with the AdjacencyMatrix. It is a simple wrapper around a boolean-valued matrix that defines if two sites are connected. Here is an example of how to use it:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"using LatticeModels, Plots\nl = SquareLattice(4, 4)\n\n# Define a nearest neighbor adjacency matrix\nadj = AdjacencyMatrix(l, NearestNeighbor())\n\n# Let's disconnect the center sites from the rest vertically\nfor x in 2:3\n site1 = l[x=x, y=2]\n site2 = l[x=x, y=1]\n adj[site1, site2] = false\n\n site3 = l[x=x, y=3]\n site4 = l[x=x, y=4]\n adj[site3, site4] = false\nend\n\nplot(adj) # Plot what we've got\nplot!(l, showbonds=false) # And the lattice itself","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"As you can see, the adjacency matrix is a writable object, so you can change the bonds as you like. In this example we deleted vertical bonds between the four center sites and the boundary of the lattice.","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"There are many ways to create an adjacency matrix — for example, you can use a function that takes two sites and returns if they are connected. This is useful when you need to define bonds in a more complex way:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"adj2 = AdjacencyMatrix(l) do site1, site2\n dx = site1.x - site2.x\n dy = site1.y - site2.y\n return abs(dx * dy) == 1 # Diagonal bonds\nend\nplot(adj2)\nplot!(l, showbonds=false)","category":"page"},{"location":"manual/bonds/#Translations","page":"Adding bonds","title":"Translations","text":"","category":"section"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"A \"translation\" is a special type of bonds that has a distinct direction (e. g. each pair of sites consists of a \"source\" and a \"target\" site). Also it must define exactly one destination for each source site (if any).","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"An example is the Translation — it allows defining bonds between sites that are shifted by a certain vector. ","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"using LatticeModels, Plots\nl = GrapheneRibbon(6, 4) # A convenient constructor for a honeycomb lattice\ntr = Translation(l, [1, 2√3/3])\nplot(tr)\nplot!(l, ls=:dash, linecolor=:grey)","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"Another type of translation is the BravaisTranslation. It translates sites on a Bravais lattice in terms of the lattice vectors:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"tr2 = BravaisTranslation(1 => 2, [0, 1])\ntr1 == tr2 # true","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"What does this notation mean? We take the first site in the unit cell; then we go to the unit cell shifted by [0, 1] and take the second site from there. Note that the first example described the same translation, but in terms of positions, not unit cell indices.","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"note: Note\nYou can omit the pair of indices if you want to translate the unit cell regardless of the site index. Bravais[j1, j2, ...] is shorthand for BravaisTranslation([j1, j2, ...]). ","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"You can use translations to shift a site, for example: site2 = site1 + tr, just like with regular vectors. Another use-case for translations is in defining boundary conditions, as we will see in the next section.","category":"page"},{"location":"manual/bonds/#boundary_conditions","page":"Adding bonds","title":"Boundary conditions","text":"","category":"section"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"The most general form of boundary conditions supported by this package is this:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"psi(r + R) = psi(r) f(r)","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"where R is a translation vector and f is some function. This is a generalization of periodic boundary conditions, which are a special case of this form.","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"These conditions are in fact applied not to the lattice itself, but to the Hamiltonian. Think of it as a way to replace the c(r)^dagger c(r) hopping with c(r)^dagger c(r - R) f(r), if the r site is not present in the lattice, but r - R is.","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"In general, there are three types of boundary conditions:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"PeriodicBoundary — the most common type of boundary conditions. Just periodicity with no factor.\nTwistedBoundary — periodicity with a phase factor that does not depend on r.\nFunctionBoundary — general form of boundary conditions.","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"The constructor for the boundary accepts two arguments — the phase (or the function) and the translation. ","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"As an example, let us consider the example with the Hofsadter butterfly from the Examples page. The magnetic field B changes from zero to one flux quantum per plaquette, for each value of B we calculate the energy spectrum of an infinite lattice and plot it. ","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"Let's consider a periodic lattice instead. We want to apply magnetic field in the Landau gauge to it, and since the translation operators include the vector potential mathcalA, we have to tweak the boundary conditions a little:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"psi(x + L_x y) = psi(x y) e^2pi i B y L_x\npsi(x y + L_y) = psi(x y)","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"This can be done with the FunctionBoundary:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"using LatticeModels, Plots\nl = HoneycombLattice(10, 10)\nLx = 10\nLy = 5√3\nn_plaquettes = 100\nB_step = 1 / (Lx * Ly) # Field step: one flux quantum through all plaquettes\nB_max = n_plaquettes * B_step # Until one flux quantum per plaquette\n\npoints_E = Float64[]\npoints_B = Float64[]\nfor B in 0:B_step:B_max\n f(site) = exp(2π * im * B * site.y * Lx)\n xboundary = FunctionBoundary(f, [Lx, 0])\n yboundary = PeriodicBoundary([0, Ly])\n lb = setboundaries(l, xboundary, yboundary)\n H = tightbinding_hamiltonian(lb, field=LandauGauge(B))\n dg = diagonalize(H)\n append!(points_E, dg.values)\n append!(points_B, fill(B, length(dg.values)))\nend\nscatter(points_B, points_E, xlabel=\"B\", ylabel=\"E\", leg=false, ms=1)","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"Note that we could have set the boundary conditions to the lattice in one line. In fact, we already did this in the Examples section:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"lb = setboundaries(l, [Lx, 0] => f, [0, Ly] => true)","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"Let's explain this notation:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"Each pair consists of a translation on the left and a \"boundary specifier\" on the right. A simple vector, like here, is interpreted as a Translation — you can use any translation type here, Bravais[-5, 10] instead of [0, Ly] would work as well.\nThe second argument can be one of the following:\ntrue/false — a periodic or open boundary condition.\nA number θ — a twisted boundary condition with a phase factor exp(im * θ).\nA function f — a general boundary condition.\nSometimes the lattice includes default translation axes, and you can use their aliases as translations. For example, for a 10x10 square lattice setboundaries(l, :axis1 => f, :axis2 => true) is equivalent to setboundaries(l, [10, 0] => f, [0, 10] => true).","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"Note that you can pass boundary conditions to the lattice constructor as well. We could not do this in the previous example, because the boundary conditions depended on the magnetic field B. However, if you have a fixed boundary condition, you can pass it to the lattice constructor like this:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"lb = HoneycombLattice(10, 10, boundaries=([Lx, 0] => f, [0, Ly] => true))","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"This is equivalent to the setboundaries call from the previous example. ","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"note: Note\nIn our example we imposed periodic boundary conditions in shape of a rectangle 0 x L_x, 0 y L_y. However, the lattice itself is more like a parallelogram, because of its unit cell shape. This is not a problem, because this shape is still periodic in terms of these translations along x and y.If the periodicity is violated, for example, if the both r and r + R sites are present in the lattice, an error will be thrown.","category":"page"},{"location":"manual/bonds/#Generic-lattice","page":"Adding bonds","title":"Generic lattice","text":"","category":"section"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"The GenericLattice is a tool you might want to use if you need to define a lattice with a more complex geometry. It is basically just a collection of arbitrary sites. As an example, let's define a lattice with a naive random geometry:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"using LatticeModels, Plots\nl = GenericLattice{2}() # 2D lattice\nfor i in 1:100\n pt = rand(2) * 5\n md = minimum(site -> norm(pt - site.coords), l, init=1.0)\n md > 0.5 && push!(l, pt) # Add a site if it is far enough from the others\nend\nl2 = setboundaries(l, [0, 5] => true, [5, 0] => true) # Periodic boundary conditions\nbonds = SiteDistance(<(1), l2) # Connect sites that are closer than 1\nplot(bonds)\nplot!(l2) # Unlike Bravais lattices, GenericLattice does not have default bonds","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"This tool is not very mature yet, but it can be useful for tasks not related to Bravais lattices. Note that boundary conditions or default nearest-neighbor hoppings can be set to the GenericLattice as well.","category":"page"},{"location":"manual/currents/#Currents","page":"Currents","title":"Currents","text":"","category":"section"},{"location":"manual/currents/#Basics","page":"Currents","title":"Basics","text":"","category":"section"},{"location":"manual/currents/#Common-Operations","page":"Currents","title":"Common Operations","text":"","category":"section"},{"location":"manual/currents/#Visualization","page":"Currents","title":"Visualization","text":"","category":"section"},{"location":"manual/lattice/#Lattices","page":"Defining the lattice","title":"Lattices","text":"","category":"section"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"This chapter describes the basic functionality of this package — creating and manipulating lattices.","category":"page"},{"location":"manual/lattice/#Basics","page":"Defining the lattice","title":"Basics","text":"","category":"section"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Creating a lattice is simple. If you want to work with Bravais lattices, there are plenty of predefined types in the package. For example, to create a square lattice, you can use the SquareLattice type:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"using LatticeModels, Plots\nl = SquareLattice(10, 10)\nplot(l)","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"This will create a 10x10 square lattice. Note that you can create a plot by simply using the plot function from the Plots package.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"SquareLattice(10, 10) notation means that we take a square lattice unit cell and translate it 10 times in the x and y directions. This syntax can be extended a little bit:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l = HoneycombLattice(-2:2, -2:2)\nplot(l)\nplot!(l[j1 = 0, j2 = 0], c=:red, ms=6)","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"What happened here? We created a honeycomb lattice by translating the unit cell from -2 to 2 in both directions. Then we plotted the lattice and highlighted the unit cell at the origin to make it more visible. l[j1 = 0, j2 = 0] allowed us selecting part of the lattice by specifying the indices of the unit cell (j1 and j2 are the indices of the unit cell in the first and second directions, respectively).","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"If we need to create a lattice with a less trivial shape, we can use any function we need:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l = TriangularLattice(-10:10, -10:10) do site\n return 4 < sqrt(site.x^2 + site.y^2) < 8 # Create a ring-shaped lattice\nend\nplot(l)","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Here the lattice constructor first translated the unit cell from -10 to 10 in both directions, and then applied the function to each site to create a ring-shaped lattice. This is similar to the filter function in Julia — in fact, you can use filter or filter! on an existing lattice to create a new one as well.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"There are other things you can control when creating a lattice, such as the lattice offset & rotation.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l1 = SquareLattice(-2:2, -2:2)\nl2 = SquareLattice(-2:2, -2:2, offset=:centeralign)\nl3 = SquareLattice(-2:2, -2:2, rotate=pi/3, offset=[6, -1.5])\nplot(l1, lab=\"No offset\", shape=:circle)\nplot!(l2, lab=\"Center the unit cell\", shape=:star)\nplot!(l3, lab=\"Shifted and rotated by π/3\", shape=:square)","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"To find out more about offset and rotation, see UnitCell — the keywords are described there.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"note: Note\nIf you use both offset/rotation and a function to create a lattice, the function will be applied to the sites after the offset/rotation is applied. Use the postoffset and postrotate keywords to control the position and orientation of the lattice after the function is applied.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"The lattices implement the AbstractSet interface, so you can use all the set operations on them — union, intersect, setdiff etc.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l1 = SquareLattice(-2:0, -2:0)\nl2 = SquareLattice(0:2, 0:2)\nl3 = SquareLattice(-3:3, -3:3)\nl = setdiff(l3, union(l1, l2))\nplot(l)\nplot!(union(l1, l2), showbonds=false, alpha=0.3)","category":"page"},{"location":"manual/lattice/#Sites","page":"Defining the lattice","title":"Sites","text":"","category":"section"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Let's find out what sites actually are. A site is generally a point in the lattice. It is defined by its position in space and maybe some additional properties. In case of a Bravais lattice these additional properties are unit cell indices and the index in the unit cell.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"A lattice is generally a set-like structure that allows indexing. Let's take a closer look in the REPL:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"using LatticeModels, Plots\nl = HoneycombLattice(-2:2, -2:2)\nsite = l[1] # Get the first site\nsite.x # Get the x-coordinate of the site\nsite.j2 # Get the second index of the unit cell\nsite.index # Get the index of the site in the unit cell\nx, y = site # Destructure the site","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"As we see, we can access the properties of the site simply as fields of the site object. We can also destructure the site to get its coordinates.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"compat: Julia 1.8\nAccessing the properties of the site as fields like site.x requires Julia 1.8 and later. This limitation is imposed with purpose, since this seriously affects runtime performance in earlier versions. You will still be able to destructure the site to get its coordinates, or use the following fields:site.coords — the position of the site\nsite.latcoords — the unit cell indices\nsite.index — the index of the site in the unit cell","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Properties like x, j1, index etc. are part of a general SiteProperty interface. You can use them to create 'slices' of lattices:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"slice = l[j1 = 0 .. 2, j2 = -2 .. 0, index=1] # Get a slice of the lattice\nplot(l)\nplot!(slice, c=:red, ms=6)","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Here 0 .. 2 and -2 .. 0 are intervals defining the ranges of the unit cell indices. You can use any collection instead of then if you need.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Finding sites by their properties can be done with the same notation:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l[x = 1.5, y = √3/2] # Find the site with x = 1.5 and y = √3/2\nl[x = 1.2, y = 3] # No such site, throws an error","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"This is notation is convenient yet type-unstable, since it returns a Site object if there is one site satisfying the condition — otherwise a lattice is returned. To make sure that the result is indeed a site, add ! to the beginning of the condition:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l[!, x = 1.5, y = √3/2] # Find the site with x = 1.5 and y = √3/2\nl[!, x = 1.5] # More than one site, throws an error","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Note that pair notation is also supported. You can use it to access the properties of the site using the Coord and LatticeCoord types. For example, the following two lines are equivalent to ones above:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l[!, Coord(1) => 1.5, Coord(2) => √3/2] # Same as l[!, x = 1.5, y = √3/2]\nl[!, Coord(1) => 1.5] # Same as l[!, x = 1.5]","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"This notation improves performance on Julia 1.7 and earlier, since it does not need any type-inference tricks to work fast. You may also find it useful when you work with multi-dimensional lattices.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Here is a short list of site properties you can use:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"x, y, z — the position of the site. Alternatively, you can use x1, x2, x3, x4 and so on to access the coordinates of the site in the unit cell. Use Coord(i) to access the i-th coordinate using pair notation.\nj1, j2, j3 and so on — the indices of the unit cell. Use LatticeCoord(i) to access the i-th index using pair notation.\nindex — the index of the site in the unit cell. Use BasisIndex() to access it using pair notation.","category":"page"},{"location":"manual/lattice/#Custom-UnitCell","page":"Defining the lattice","title":"Custom UnitCell","text":"","category":"section"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"You can also create a lattice from a custom unit cell:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"using LatticeModels, Plots\n# This will be our custom honeycomb lattice unit cell\n# First argument - vectors of the unit cell\n# Second argument - radius-vectors for the sites in the unit cell\nuc = UnitCell([[1/2, sqrt(3)/2] [-1/2, sqrt(3)/2]], [[0, sqrt(3)/6] [0, -sqrt(3)/6]])\nplot(uc) # Plot the unit cell","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Note that both arguments are actually matrices — the first one is a matrix of the unit cell vectors, and the second one is a matrix of the site positions in the unit cell. However, here we used concatenation to create the matrices for the sake of readability: remember that [[a, b] [c, d]] is equivalent to [a c; b d].","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"To create a lattice, we can use the span_unitcells function:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l = span_unitcells(uc, -5:5, -5:5) do site\n x, y = site\n return abs(y) < 5 && \n abs(y * 1 / 2 + x * sqrt(3) / 2) < 5 && \n abs(y * 1 / 2 - x * sqrt(3) / 2) < 5\nend # Create a hex shape\nplot(l)","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"In fact, the constructors we discussed earlier are just a shorthand for span_unitcells with a predefined unit cell. You can use span_unitcells to create a lattice from any unit cell you want.","category":"page"},{"location":"manual/lattice/#Shapes","page":"Defining the lattice","title":"Shapes","text":"","category":"section"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"The shapes framework is a powerful tool for creating lattices of arbitrary geometry:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"using LatticeModels, Plots\nl = SquareLattice{2}(Hexagon(10, [-10, 0]), Circle(10, [10, 0]))\nplot(l)","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Here we created a square lattice in shape of a hexagon and a circle. The first argument of the shape is its radius (for the hexagon it is the distance from its center to the vortices), and the second argument is the center of the shape. Other possible shapes include Rectangle, Polygon, SiteAt and Path.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"complex_l = SquareLattice{2}( # Here you have to specify the dimension of the lattice\n Circle(10), Circle(10, [20, 0]), Circle(10, [10, 10√3]),\n !Circle(5), !Circle(5, [20, 0]), !Circle(5, [10, 10√3]),\n Rectangle(-5 .. 5, -14 .. -12), Rectangle(15 .. 25, -14 .. -12),\n Path([-12, 32], [32, 32]), SiteAt([0, 0]), SiteAt([20, 0])\n)\nplot(complex_l)","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Note that adding ! before the shape inverts it. This is useful when you need to create a lattice with a hole in it.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Sometimes the shape can become ill-formed — this happens when the unit cell has non-trivial geometry. In this case you may need to remove the dangling sites using the removedangling! function. For example, they can arise when creating a path on a honeycomb lattice:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l = HoneycombLattice(Circle(3, [0, 0]), Circle(3, [-2, 10]), Path([0, 0], [-2, 10]))\np = plot(size=(800, 350), layout=(1, 2))\nplot!(p[1], l, title=\"With dangling sites\")\nremovedangling!(l)\nplot!(p[2], l, title=\"Without dangling sites\")","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Let's discuss what is happening under the hood. The HoneycombLattice constructor calls the fillshapes function, which estimates the unitcells one has to span for each shape, and adds the sites that are in the shape to the lattice. ","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"You can also use addshapes! to add shapes to an existing lattice and deleteshapes! to remove them. These functions, however, do not support the ! notation for inverting shapes.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"One last, but not least, thing to mention is that this framework allows approximate scaling. If you need a lattice with distinct shape and, say, roughly 1000 sites, you can use the sites keyword to specify the number of sites you need:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l = TriangularLattice(sites=1000, Circle(1, [-1, 0]), Circle(1, [1, 0]), Circle(1, [0, √3]))\nplot(l, title = \"$(length(l)) ≈ 1000 sites\")","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"You can also use the shaperadius function to estimate the radius of the shape that will give you the desired number of sites:[1]","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"circ = SquareLattice{2}(Circle(), sites=150)\nr = shaperadius(circ, Circle())\nplot(circ, lab = \"$(length(circ)) ≈ 150 sites\")\nplot!(Circle(r), c=:grey, ls=:dash, lab = \"r ≈ $r\")","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"[1]: Actually, the shaperadius function returns the scaling factor for the shape set. However, Circle() by default creates a circle with radius 1, so the scaling factor is equal to the radius of the circle.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"note: Note\nRadius estimation is not always precise and works under following assumptions:The shapes are large enough to contain the unit cell and do not intersect with each other.\nThe inverted shapes are all contained in the non-inverted ones, and also do not intersect with each other.","category":"page"},{"location":"manual/lattice/#Multi-dimensional-lattices","page":"Defining the lattice","title":"Multi-dimensional lattices","text":"","category":"section"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"This package supports multi-dimensional lattices. You can create a lattice of any dimension by creating a suitable unit cell first. Or by passing the required amount of axes to the lattice constructor, if the type supports it:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"using LatticeModels, Plots\nl = SquareLattice(5, 4, 3)\nplot(l) # A 3D cubic lattice","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Also remember that the dimensions of the lattice are not necessarily spatial dimensions. For example, you can create a bilayer Graphene lattice by defining a unit cell with two layers:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"# Bilayer Graphene with shifted layers\nuc = UnitCell([[1, 0, 0] [1/2, √3/2, 0]], \n [[0, 0, 0] [1/2, √3/6, 0] [0, 0, √3/3] [-1/2, -√3/6, √3/3]]) \nl = span_unitcells(uc, -2:2, -2:2)\nplot(l, lc=:grey, zwiden=1.3)","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Effectively, it is a 2D lattice in 3D space. Note that you can always project a multi-dimensional lattice or its slice to a 2D plane when plotting it:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"plot(l[index=(1, 2)], axes=(:x, :y)) # Plot the first layer","category":"page"},{"location":"manual/lattice/#Bonds-and-hoppings","page":"Defining the lattice","title":"Bonds and hoppings","text":"","category":"section"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"In the scope of this package, bonds are not considered part of the lattice, but rather a separate structure that connects sites. You can assign nearest-neighbour hoppings to the lattice (of course, since you can see them on the plot), but in general the lattice and the bonds are separate entities. The reasoning behind this is that in some cases you may need to use different sets of bonds for different models.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"To find out more about bonds, adjacency and boundary conditions, see the next chapter: Adjacency and boundary conditions.","category":"page"},{"location":"manual/evolution/#Evolution","page":"Evolution","title":"Evolution","text":"","category":"section"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"This chapter describes several ways to work with time evolution of quantum systems on lattices. It features Evolution — a powerful struct that represents the time evolution of a quantum system according to the Schrödinger equation, and TimeSequence, which is used to store and process time-dependent data.","category":"page"},{"location":"manual/evolution/#Basics","page":"Evolution","title":"Basics","text":"","category":"section"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The Evolution struct is used to represent the time evolution of a quantum system. It contains the Hamiltonian and the initial state (or states) of the system. To evaluate the time evolution, you can write this:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"using LatticeModels, Plots\nlat = Chain(200)\n\n# Define the initial state: a Gaussian wavepacket\nx = coordvalue(lat, :x)\npsi0 = ketstate(@. exp(-0.02 * (x - 50) ^ 2 - im * 0.3x))\n\n# Define the Hamiltonian\nH = tightbinding_hamiltonian(lat)\n\n# Create the plot\nplot(title=\"Gaussian wavepacket evolution\", xlabel=\"x\", yticks=:none)\n# Empty plots for the legend\nplot!([NaN], c = :blue, label=\"Re\") \nplot!([NaN], c = :red, label=\"Im\") \n\nev = Evolution(H, psi0)\nfor moment in ev(0:5:50)\n psi, Ht, t = moment # Unpack to get the state, Hamiltonian and time\n plot!(real.(psi.data) .+ t / 3, c=:blue, lab=\"\")\n plot!(imag.(psi.data) .+ t / 3, c=:red, lab=\"\")\nend\nplot!()","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"We got a pretty plot of a Gaussian wavepacket moving to the right. Let us discuss what happened here in-depth.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"We set the Hamiltonian to be a constant operator. Since we perform the evolution in even time steps, and the Hamiltonian is not time-dependent, we can precompute the exponential of the Hamiltonian hatU = e^-i H t and use it in the evolution. This is done automatically here.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The Evolution struct is not an iterator. Instead, it is a callable object that returns an iterator. This is done to allow for more flexibility, as you can see below.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The Evolution struct always yields stateful iterators. This means that the psi in the loop is actually the same object, and it is updated on each iteration. This is done to reduce memory allocations and improve performance. Do not edit the states in the loop, as it will affect the results.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"This allows continuing the evolution from the last state. Let's stick to the previous example and add some more iterations:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"for moment in ev(50:5:100)\n t = moment.t # Get the time\n psi = moment.state # Get the state\n # moment.H is the Hamiltonian, but it is not used here\n plot!(real.(psi.data) .+ t / 3, c=:blue, lab=\"\")\n plot!(imag.(psi.data) .+ t / 3, c=:red, lab=\"\")\nend\nplot!()","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"tip: Tip\nIf you do not need to iterate over a single Evolution object multiple times, you can use a shorthand. This notation:for moment in Evolution(H, psi0, timedomain=0:5:50)\n # ...\nendis equivalent to this:ev = Evolution(H, psi0)\nfor moment in ev(0:5:50)\n # ...\nend","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"Note that we used a different notation to access the state and the time. You can use any of these two, whichever you find more convenient in your situation:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"Fields: psi = moment.state; Ht = moment.H; t = moment.t\nUnpacking: psi, Ht, t = moment","category":"page"},{"location":"manual/evolution/#Multiple-initial-states","page":"Evolution","title":"Multiple initial states","text":"","category":"section"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The Evolution struct can also accept multiple initial states. Let's create two Gaussian wavepackets and evolve them:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"# Define the initial states: two Gaussian wavepackets\npsi0_1 = ketstate(@. exp(-0.02 * (x - 50) ^ 2 - im * 0.3x))\npsi0_2 = ketstate(@. exp(-0.02 * (x - 150) ^ 2 + im * 0.3x))\n\np = plot(title=\"Two Gaussian wavepackets evolution\", xlabel=\"x\", yticks=:none)\n\nev = Evolution(H, psi0_1, psi0_2) # Pass the initial states as keyword arguments\nfor moment in ev(0:5:50)\n psi1 = moment[1]\n psi2 = moment[2]\n t = moment.t\n plot!(abs2.(psi1.data) .+ t / 3, c=:black, lab=\"\")\n plot!(abs2.(psi2.data) .+ t / 3, c=:green, lab=\"\")\nend\nplot!()","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"Note that accessing moment.state will throw an error here, because there is more than one state. Instead, you can access all them as a tuple with moment.states or each one separately with moment[1], moment[2], etc. Also you can still unpack the moment as psi1, psi2, Ht, t = moment, which will do the very same thing.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The Evolution struct also allows assigning aliases to the states. You can do this by passing the initial states as keyword arguments. This code will produce the same result as in the previous example:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"p = plot(title=\"Two Gaussian wavepackets evolution\", xlabel=\"x\", yticks=:none)\n\nev = Evolution(H, psi1=psi0_1, psi2=psi0_2)\nfor moment in ev(0:5:50)\n t = moment.t\n plot!(abs2.(moment.psi1.data) .+ t / 3, c=:black, lab=\"\")\n plot!(abs2.(moment.psi2.data) .+ t / 3, c=:green, lab=\"\")\nend\nplot!()","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"moment.states will be a named tuple with the states in this case. This way you can access the states as moment.psi1, moment.psi2, etc. You can still use indices moment[1], moment[2] or unpack the moment as psi1, psi2, Ht, t = moment. The choice is yours.","category":"page"},{"location":"manual/evolution/#Time-dependent-Hamiltonian","page":"Evolution","title":"Time-dependent Hamiltonian","text":"","category":"section"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"If the Hamiltonian is time-dependent, you can pass a function that returns the Hamiltonian at the given time. This function should accept a single argument — the time. An example of a time-dependent Hamiltonian is the one with a magnetic field that changes in time from the Examples section:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"using LatticeModels, Plots\nl = TriangularLattice(Circle(10), !Circle(5))\nremovedangling!(l)\nh(B) = tightbinding_hamiltonian(l, field=PointFlux(B))\ndiag = diagonalize(h(0))\n\nP_0 = densitymatrix(diag, mu = 0)\nτ = 10\nht(t) = h(0.1 * min(t, τ) / τ)\nev = Evolution(ht, P_0)\n\nanim = @animate for moment in ev(0:0.1:2τ)\n ρ, Ht, t = moment\n curr = DensityCurrents(Ht, ρ)\n plot(curr, title=\"t = $t\", clims=(0, 0.005), size=(1000, 700))\nend\ngif(anim, \"currents.gif\")","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"Here we applied magnetic field that changes in time. The flux is increased linearly from 0 to 0.1 in 10 time units, and then stays constant. The animation shows the density currents in the lattice at each time step.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"To make the Hamiltonian time-dependent in the previous example, we defined a function ht(t) = h(0.1 * min(t, τ) / τ). This function returns the Hamiltonian with the flux 0.1 * min(t, τ) / τ at the given time t. The Evolution struct then uses this function to calculate the Hamiltonian at each time step.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The exponent for the time-dependent Hamiltonian is cached for each time step. This means that on the second half of the evolution interval, the exponent is calculated only once, and then reused for each time step. This improves performance. To improve it even more, you can pre-calculate the static Hamiltonian:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"const H1 = h(0.1) # Make it constant to enforce type stability\nht(t) = t > τ ? H1 : h(0.1 * t / τ)","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"note: Note\nThe Evolution checks the Hamiltonian equality by storing a reference to the last Hamiltonian. Thes means that if you return the same object each time in the Hamiltonian function, the exponent will not be recalculated, even if you changed the Hamiltonian. To force the recalculation, wrap the return value into a Ref.Note that you can also use QuantumOptics.TimeDependentOperator interface — this might be more convenient, as it eliminates extra allocations more efficiently, and exponent caching for them is disabled by default.","category":"page"},{"location":"manual/evolution/#Solvers","page":"Evolution","title":"Solvers","text":"","category":"section"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The Evolution struct can use several solvers to calculate the time evolution. You can set the solver to use explicitly this way:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"ev = Evolution(CachedExp(threshold=1e-12, nztol=1e-15), H, psi0)","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The CachedExp solver is the default option, and it works in a very simple way: at each time step it calculates the exponent of the Hamiltonian hatU = e^-i H Delta t and applies it to the state. It also caches the exponent to avoid recalculating it if the Hamiltonian and the timestep are the same.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The exponent is calculated using a custom-implemented scaling and squaring algorithm. Contrary to the exp function from the LinearAlgebra package, it works with sparse matrices and GPU arrays also, while performance on dense matrices is comparable. However, some precision loss is possible, especially for large time steps, so you can adjust the tolerance for your case with these parameters:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"threshold — the threshold for the error in the exponent calculation. Limits the number of iterations in the Taylor series expansion. The default value is 1e-10.\nnztol — the tolerance for the zero elements in the Hamiltonian. Works only for sparse matrices — the elements with the absolute value less than nztol are considered zero. The default value is 1e-14.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The CachedExp solver is universal and works well in most cases. However, it is not the most efficient one. In some specific cases you might want to use a more specialized solver. For example, the KrylovKitExp solver can be faster if the Hamiltonian is large, sparse and dependent on time. It uses the exponentiate function from the KrylovKit package to calculate the exponent.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"Let's run some performance tests:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"using LatticeModels\nl = SquareLattice(40, 40)\nh(B) = tightbinding_hamiltonian(l, field=LandauGauge(B))\n\n# The initial state is the ground state of the Hamiltonian with B = 0\npsi = groundstate(h(0))\nτ = 10\nht(t) = h(0.1 * min(t, τ) / τ)\nts = 0:0.1:2τ\nsite = l[!, x = 20, y = 20]\n\nprintln(\"CachedExp:\")\n# We can evaluate the density at x = 20, y = 20 in a one-liner\n@time dens1 = [localdensity(moment.state)[site] for moment in \n Evolution(CachedExp(), ht, psi, timedomain=ts, showprogress=false)]\n@time dens1 = [localdensity(moment.state)[site] for moment in \n Evolution(CachedExp(), ht, psi, timedomain=ts, showprogress=false)]\n@time dens1 = [localdensity(moment.state)[site] for moment in \n Evolution(CachedExp(), ht, psi, timedomain=ts, showprogress=false)]\n\nprintln(\"\\nKrylovKitExp:\")\n@time dens2 = [localdensity(moment.state)[site] for moment in \n Evolution(KrylovKitExp(), ht, psi, timedomain=ts, showprogress=false)]\n@time dens2 = [localdensity(moment.state)[site] for moment in \n Evolution(KrylovKitExp(), ht, psi, timedomain=ts, showprogress=false)]\n@time dens2 = [localdensity(moment.state)[site] for moment in \n Evolution(KrylovKitExp(), ht, psi, timedomain=ts, showprogress=false)]\nnothing # hide","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The first attempt took some time because of the precompilation required, but overall the KrylovKitExp solver turned out to be faster in this case. Let's plot the results to make sure they are the same:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"using Plots\nplot(ts, dens1, label=\"CachedExp\", xlabel=\"t\", ylabel=\"ρ(x=20, y=20)\", \n ylims=(0, NaN), size=(800, 400))\nplot!(ts, dens2, label=\"KrylovKitExp\")","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"A significant drawback of KrylovKitExp solver is that it works only with wavefunctions — it does not support density matrices.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"note: Note\nGenerally, the Evolution struct supports only Schrödinger/von Neumann equations. If you need to solve the master equation, you can use the functions from the QuantumOptics package.However, a solver for the master equation can be implemented on top of the Evolution struct using this EvolutionSolver interface. Please file an issue if you are interested in this feature.","category":"page"},{"location":"manual/evolution/#TimeSequence","page":"Evolution","title":"TimeSequence","text":"","category":"section"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The TimeSequence struct is used to store and manipulate time-dependent data. It is a dictionary-like object that maps time points to values. The values can be any type, including arrays, matrices, and even lattice-specific types like LatticeValue.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"Let's calculate the evolution of a ground state of a tight-binding model after a magnetic field is adiaiabatically turned on. We will store the local density at each time step and use it to plot the local density depending on time, as well as its time derivative and integral over time:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"using LatticeModels, Plots\nl = SquareLattice(20, 20)\nh(B) = tightbinding_hamiltonian(l, field=LandauGauge(B))\n\n# The initial state is the ground state of the Hamiltonian with B = 0\npsi = groundstate(h(0))\nτ = 10\nht(t) = h(0.1 * min(t, τ) / τ)\ndensities = TimeSequence{LatticeValue}()\n\nfor moment in Evolution(ht, psi, timedomain=0:0.1:2τ)\n densities[moment.t] = localdensity(moment.state)\nend\n\nplot(densities[!, x = 10, y = 10], label=\"ρ(t) (bulk)\")\nplot!(densities[!, x = 1, y = 10], label=\"ρ(t) (edge)\")","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"tip: Tip\nThe very same result could be achieved without writing the loop, using the TimeSequence constructor with a function. This way it will automatically iterate over the Evolution object and store the results:densities = TimeSequence(Evolution(ht, psi), 0:0.1:2τ) do moment\n localdensity(moment.state)\nend","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"Note that we can index a TimeSequence of LatticeValues the same way as a LatticeValue itself, which will produce another TimeSequence with the same time domain. This is because TimeSequence forwards almost all the indexing operations to the values it stores.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"This type also supports time indexing and slicing. You can combine these types of indexing by using the t keyword for the time axis — all other arguments will be treated as spatial coordinates. Let's plot the local density at the center of the lattice and the local density at the edge of the lattice at the same time point:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"p = plot(layout=2, size=(1000, 500))\nplot!(p[1], densities[0.5])\nplot!(p[2], densities[!, x=10, y=10, t=0.5 .. 3.5], label=\"ρ(t) (bulk)\")\nplot!(p[2], densities[!, x=1, y=10, t=5 .. 10], label=\"ρ(t) (edge)\")","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"Another very useful feature of the TimeSequence is that it can be integrated and differentiated over time using the integrate and differentiate functions. Let's plot the time derivative and integral of the local density in the bulk of the lattice:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"densities_bulk = densities[!, x = 10, y = 10]\nplot(densities_bulk, label=\"ρ(t) (bulk)\")\nplot!(differentiate(densities_bulk), label=\"dρ(t)/dt (bulk)\")\nplot!(integrate(densities_bulk), label=\"∫ρ(t)dt (bulk)\")","category":"page"},{"location":"library/#Internals","page":"Library","title":"Internals","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]","category":"page"},{"location":"library/#Lattice-basics","page":"Library","title":"Lattice basics","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"core/lattice.jl\", \"lattices/genericlattice.jl\", \"lattices/bravais/unitcell.jl\", \n \"lattices/bravais/lattice.jl\"]\nFilter = t -> t ∉ (LatticeModels.AbstractLattice, LatticeModels.AbstractSite)","category":"page"},{"location":"library/#LatticeModels.IncompatibleLattices","page":"Library","title":"LatticeModels.IncompatibleLattices","text":"IncompatibleLattices([header, ]lat1, lat2)\n\nAn exception thrown when two lattices are incompatible.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.SiteProperty","page":"Library","title":"LatticeModels.SiteProperty","text":"SiteProperty\n\nAn abstract type for a property of a site.\n\nThis interface is used to define various properties of a site. They can be accessed using getsiteproperty. This interface is used in following places:\n\nlattice[...] syntax to access sites with specific properties.\nlattice_value[...] syntax to access values defined on sites with specific properties.\nFunctions to generate LatticeValues and operators for specific properties.\n\nExamples\n\njulia> using LatticeModels\n\njulia> l = SquareLattice(3, 3);\n\njulia> l[x = 1, y = 2] # Get site with x = 1 and y = 2\n2-dim Bravais lattice site in 2D space at [1.0, 2.0]\n\njulia> l[x = 1] # Get sublattice with x = 1\n3-site 2-dim Bravais lattice in 2D space\nUnit cell:\n Basis site coordinates:\n ┌ ┐\n │ 0.000│\n │ 0.000│\n └ ┘\n Translation vectors:\n ┌ ┐ ┌ ┐\n │ 1.000│ │ 0.000│\n │ 0.000│ │ 1.000│\n └ ┘ └ ┘\nLattice type: SquareLattice{2}\nDefault translations:\n :axis1 → Bravais[3, 0]\n :axis2 → Bravais[0, 3]\nNearest neighbor hoppings:\n 1.00000 =>\n Bravais[1, 0]\n Bravais[0, 1]\n 1.41421 =>\n Bravais[1, -1]\n Bravais[1, 1]\n 2.00000 =>\n Bravais[2, 0]\n Bravais[0, 2]\nBoundary conditions: none\n\njulia> l[x = 1, y = 2, z = 3] # No site with defined z property on a 2D lattice\nERROR: ArgumentError: Invalid axis index 3 of a 2-dim site\n[...]\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.check_issublattice-Tuple{LatticeModels.AbstractLattice, LatticeModels.AbstractLattice}","page":"Library","title":"LatticeModels.check_issublattice","text":"Checks if l1 is sublattice of l2. Throws an error if not.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.check_samelattice-Tuple{Any, Any}","page":"Library","title":"LatticeModels.check_samelattice","text":"Checks if l1 and l2 objects are defined on the same lattice. Throws an error if not.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.check_samesites-Tuple{Any, Any}","page":"Library","title":"LatticeModels.check_samesites","text":"Checks if l1 and l2 objects are defined on the same sites. Throws an error if not.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.lattice-Tuple{LatticeModels.AbstractLattice}","page":"Library","title":"LatticeModels.lattice","text":"lattice(any)\n\nReturn the lattice of the given object (an operator, LatticeValue, ...)\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.site_index","page":"Library","title":"LatticeModels.site_index","text":"site_index(lat, site[, range])\n\nReturn the index of the site in the lattice lat. If range is given, only search in the given range. Return nothing if the site is not found.\n\n\n\n\n\n","category":"function"},{"location":"library/#LatticeModels.GenericLattice","page":"Library","title":"LatticeModels.GenericLattice","text":"GenericLattice{SiteT}\n\nA generic lattice of SiteT sites.\n\nExample\n\njulia> using LatticeModels\n\njulia> l = GenericLattice{2}()\n0-site GenericLattice{GenericSite{2}} in 2D space\n\njulia> push!(l, GenericSite(0, 0)) # Add a site at (0, 0)\n1-site GenericLattice{GenericSite{2}} in 2D space:\n Site at [0.0, 0.0]\n\njulia> push!(l, (0, 1)) # Add a site at (0, 1)\n2-site GenericLattice{GenericSite{2}} in 2D space:\n Site at [0.0, 0.0]\n Site at [0.0, 1.0]\n\njulia> push!(l, [1, 0]) # Add a site at (1, 0)\n3-site GenericLattice{GenericSite{2}} in 2D space:\n Site at [0.0, 0.0]\n Site at [0.0, 1.0]\n Site at [1.0, 0.0]\n\njulia> l[2]\n2-dim GenericSite{2} at [0.0, 1.0]\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.GenericLattice-Tuple{LatticeModels.AbstractLattice}","page":"Library","title":"LatticeModels.GenericLattice","text":"GenericLattice(lat)\n\nConstructs a GenericLattice from some other lattice lat.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.GenericLattice-Union{Tuple{}, Tuple{N}} where N","page":"Library","title":"LatticeModels.GenericLattice","text":"GenericLattice{N}()\n\nConstructs an empty N-dimensional GenericLattice of GenericSites.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.GenericLattice-Union{Tuple{}, Tuple{SiteT}} where SiteT<:LatticeModels.AbstractSite","page":"Library","title":"LatticeModels.GenericLattice","text":"GenericLattice{SiteType}()\n\nConstructs an empty GenericLattice of SiteType sites.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.GenericSite","page":"Library","title":"LatticeModels.GenericSite","text":"GenericSite{N}\n\nA generic site in an N-dimensional lattice.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.BravaisSite","page":"Library","title":"LatticeModels.BravaisSite","text":"BravaisSite{N,NU,B}\n\nA site of a BravaisLattice{N,NU,B} lattice.\n\nFields\n\nunitcell: a UnitCell object representing the lattice unit cell.\nlatcoords: a SVector of size N representing the lattice coordinates of the site.\nbasindex: an Int representing the index of the site in the lattice basis.\ncoords: a SVector of size N representing the spatial coordinates of the site.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.UnitCell","page":"Library","title":"LatticeModels.UnitCell","text":"UnitCell(translations[, basis; offset, rotate])\n\nConstructs a Bravais lattice unit cell with given translation vectors and locations of basis sites.\n\nArguments\n\ntranslations: an AbstractMatrix of size N×N representing the translation vectors of the lattice.\nbasis: an AbstractMatrix of size N×NB representing the locations of basis sites. If not provided, the lattice basis will consist of one site located in the bottom-left corner of the unit cell.\n\nKeyword arguments\n\noffset: a keyword argument that specifies how to shift the lattice basis. Possible values:\n:origin: no shift (default).\n:center: shift the lattice so that the center of the basis is at the origin of the unit cell.\n:centeralign: shift the lattice so that the center of the basis is at the center of the unit cell.\nAlso accepts an AbstractVector of size N to shift the lattice by a custom vector.\nrotate: a keyword argument that specifies how to rotate the lattice basis. Possible values:\nnothing: no rotation (default).\nAn AbstractMatrix of size N×N to rotate the lattice.\nA Real number to rotate the lattice by this angle in radians.\nAlso accepts an AbstractMatrix of size N×N to rotate the lattice basis.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.span_unitcells-Union{Tuple{NB}, Tuple{NU}, Tuple{N}, Tuple{Any, UnitCell{N, NU, NB}, Vararg{Union{Integer, OrdinalRange{<:Integer, <:Integer}}, NU}}} where {N, NU, NB}","page":"Library","title":"LatticeModels.span_unitcells","text":"span_unitcells([f, ]unitcell, dims...[; boundaries, offset])\n\nConstruct a Bravais lattice by spanning unitcell in dims dimensions, filtered by f.\n\nArguments\n\nf: a function that defines if the site is included in the lattice. Takes a BravaisSite, returns a Bool.\nunitcell: a UnitCell object.\ndims: a list of Integers or Ranges specifying the size of the lattice in each dimension.\n\nKeyword arguments\n\ndefault_translations: a list of BravaisTranslations to add to the lattice as default boundary condition axes.\nboundaries: a BoundaryConditions object specifying the boundary conditions of the lattice.\nrmdup: a Bool specifying whether to remove sites that are equivalent after applying the boundary conditions.\noffset: the offset of the lattice from the origin. See UnitCell for details.\nrotate: a rotation matrix to apply to the lattice. See UnitCell for details.\n\nKeep in mind that the offset and rotation are applied to the unit cell before the lattice is spanned (and f is applied). To apply them after the lattice is spanned, use the postoffset and postrotate keywords.\n\nExamples\n\njulia> using LatticeModels\n\njulia> using LatticeModels\n\njulia> uc = UnitCell([[1, 0] [0, 1]])\n1-site Unit cell of a 2-dim Bravais lattice in 2D space:\n Basis site coordinates:\n ┌ ┐\n │ 0.000│\n │ 0.000│\n └ ┘\n Translation vectors:\n ┌ ┐ ┌ ┐\n │ 1.000│ │ 0.000│\n │ 0.000│ │ 1.000│\n └ ┘ └ ┘\n\njulia> span_unitcells(uc, 3, 3) == SquareLattice(3, 3)\ntrue\n\n\n\n\n\n","category":"method"},{"location":"library/#Lattice-constructors","page":"Library","title":"Lattice constructors","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"zoo/lattices.jl\", \"zoo/shapes.jl\"]","category":"page"},{"location":"library/#LatticeModels.HoneycombLattice","page":"Library","title":"LatticeModels.HoneycombLattice","text":"HoneycombLattice\n\nRepresents a honeycomb lattice.\n\nLattice vectors: [1, 0] and [0.5, √3/2], two sites at [0, 0] and [0.5, √3/6] in each unit cell.\n\n\n\nHoneycombLattice(a, b)\n\nConstruct a honeycomb lattice of a×b spanned unit cells.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.KagomeLattice","page":"Library","title":"LatticeModels.KagomeLattice","text":"KagomeLattice\n\nRepresents a kagome lattice.\n\nLattice vectors: [1, 0] and [0.5, √3/2], three sites at [0, 0], [0.5, 0] and [0.25, √3/4] in each unit cell.\n\n\n\nKagomeLattice(a, b)\n\nConstruct a kagome lattice of a×b spanned unit cells.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.SquareLattice","page":"Library","title":"LatticeModels.SquareLattice","text":"SquareLattice{N}\n\nRepresents a square lattice in N dimensions.\n\n\n\nSquareLattice(sz...)\n\nConstruct a square lattice of size sz.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.TriangularLattice","page":"Library","title":"LatticeModels.TriangularLattice","text":"TriangularLattice\n\nRepresents a triangular lattice. Lattice vectors: [1, 0] and [0.5, √3/2].\n\n\n\nTriangularLattice(a, b)\n\nConstruct a triangular lattice of a×b spanned unit cells.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.Chain-Tuple{Function, Any}","page":"Library","title":"LatticeModels.Chain","text":"Chain(sz)\n\nConstruct a 1D chain lattice of size sz.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.GrapheneRibbon","page":"Library","title":"LatticeModels.GrapheneRibbon","text":"GrapheneRibbon(len, wid[, center; kw...])\n\nConstruct a graphene ribbon sample with zigzag edges. To get armchair edges, simply rotate the lattice by 90 degrees.\n\nArguments\n\nlen: the length of the ribbon.\nwid: the width of the ribbon.\ncenter: the unit cell coordinates of the bottom-left corner of the ribbon. Default is (0, 0).\n\nAll other keyword arguments are passed to span_unitcells (see its documentation for details).\n\n\n\n\n\n","category":"function"},{"location":"library/#LatticeModels.@bravaisdef-Tuple{Any, Any}","page":"Library","title":"LatticeModels.@bravaisdef","text":"@bravaisdef MyBravaisLattice UnitCell(...)\n@bravaisdef MyBravaisLattice N -> UnitCell(...)\n\nDefine a new Bravais lattice type MyBravaisLattice with a unit cell constructor UnitCell(expr). If the notation is N -> UnitCell(expr), the unit cell constructor will be dependent on the dimensionality N. otherwise, the dimensionality will be inferred from the unit cell. N is the dimensionality of the lattice.\n\nExamples\n\njulia> using LatticeModels\n\njulia> @bravaisdef MyBravaisLattice UnitCell([1 0; 0 1]); # 2D square lattice\n\njulia> MyBravaisLattice(3, 3)\n9-site 2-dim Bravais lattice in 2D space\nUnit cell:\n Basis site coordinates:\n ┌ ┐\n │ 0.000│\n │ 0.000│\n └ ┘\n Translation vectors:\n ┌ ┐ ┌ ┐\n │ 1.000│ │ 0.000│\n │ 0.000│ │ 1.000│\n └ ┘ └ ┘\nLattice type: MyBravaisLattice\nDefault translations:\n :axis1 → Bravais[3, 0]\n :axis2 → Bravais[0, 3]\nNearest neighbor hoppings:\n 1.00000 =>\n Bravais[1, 0]\n Bravais[0, 1]\n 1.41421 =>\n Bravais[1, -1]\n Bravais[1, 1]\n 2.00000 =>\n Bravais[2, 0]\n Bravais[0, 2]\nBoundary conditions: none\n\n\n\n\n\n","category":"macro"},{"location":"library/#LatticeModels.BallND","page":"Library","title":"LatticeModels.BallND","text":"BallND{N}([radius, center])\n\nConstruct a N-dimensional ball with a given radius and center. Note the aliases: Circle and Ball are BallND{2} and BallND{3} respectively.\n\nArguments\n\nradius: The radius of the ball.\ncenter: The center of the ball.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.Path","page":"Library","title":"LatticeModels.Path","text":"Path(start, stop)\n\nConstruct a path from start to stop.\n\nArguments\n\nstart: The start of the path.\nstop: The end of the path.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.Polygon","page":"Library","title":"LatticeModels.Polygon","text":"Polygon{N}([radius, center])\nPolygon{N}([center; h])\n\nConstruct a regular N-sided polygon with a given (circumscribed) radius and center. Note the aliases: Triangle, Square, and Hexagon are Polygon{3}, Polygon{4}, and Polygon{6} respectively.\n\nArguments\n\nradius: The (circumscribed) radius of the polygon.\ncenter: The center of the polygon.\n\nKeyword Arguments\n\nh: The distance from the center to the vertices. If given, the radius is calculated as h / cos(pi / N).\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.Rectangle","page":"Library","title":"LatticeModels.Rectangle","text":"Rectangle(w, h)\n\nConstruct a rectangle with given horizontal and vertical intervals. Usage: Rectangle(1 .. 3, 2 .. 4).\n\nArguments\n\nw: The horizontal range.\nh: The vertical range.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.SiteAt","page":"Library","title":"LatticeModels.SiteAt","text":"SiteAt(coords)\n\nRepresents a single site at the given coordinates.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.fillshapes-Union{Tuple{N}, Tuple{UnitCell{Sym, N} where Sym, Vararg{LatticeModels.AbstractShape}}} where N","page":"Library","title":"LatticeModels.fillshapes","text":"fillshapes(uc, shapes...[; sites, scale, kw...])\n\nCreate a lattice sample with geometry defined by the given shapes. The lattice is filled with sites that are inside the shapes.\n\nArguments\n\nuc: The UnitCell of the lattice. Might also be a lattice type.\nshapes: The shapes to fill the lattice with.\n\nKeyword Arguments\n\nsites: If given, an attepmt will be made to fill the lattice with the given number of sites. The scaling will be approximate and relying on assumptions that the shapes do not overlap.\nscale: The scaling factor for the shapes. If sites is given, the scaling factor will be calculated automatically.\n\nAll other keyword arguments are passed to the lattice constructor. See span_unitcells for more information.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.removedangling!-Tuple{LatticeModels.AbstractLattice}","page":"Library","title":"LatticeModels.removedangling!","text":"removedangling!(lat[; maxdepth])\n\nRemove dangling sites from the lattice. A site is considered dangling if it has less than 2 neighbors. The function will remove all dangling sites and their neighbors recursively up to maxdepth levels.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.shaperadius-Tuple{UnitCell, LatticeModels.AbstractShape, Int64}","page":"Library","title":"LatticeModels.shaperadius","text":"shape_radius(unitcell, shape, sites)\nshape_radius(lat, shape[, sites])\n\nCalculate the radius of a shape such that it contains appriximately sites sites.\n\nArguments\n\nunitcell: The UnitCell of the lattice. Might also be a lattice type.\nlat: The lattice. It is considered that the lattice was constructed in the same shape.\nshape: The shape to calculate the radius for.\nsites: The number of sites the shape should contain.\n\n\n\n\n\n","category":"method"},{"location":"library/#Bonds","page":"Library","title":"Bonds","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"core/bonds.jl\", \"lattices/bravais/bonds.jl\", \"lattices/bravais/nearestneighbor.jl\"]\nFilter = t -> t ∉ (LatticeModels.AbstractBonds, LatticeModels.AbstractTranslation, \n LatticeModels.DirectedBonds)","category":"page"},{"location":"library/#LatticeModels.AdjacencyMatrix","page":"Library","title":"LatticeModels.AdjacencyMatrix","text":"AdjacencyMatrix{LT} where {LT<:Lattice}\n\nRepresents the bonds on some lattice.\n\n\n\nAdjacencyMatrix(lat[, mat])\n\nConstruct an adjacency matrix from the mat matrix on the lat lattice.\n\nIf mat is not provided, it is assumed to be a zero matrix.\n\nExample\n\njulia> using LatticeModels\n\njulia> l = SquareLattice(2, 2);\n\njulia> a = AdjacencyMatrix(l)\nAdjacency matrix on 4-site SquareLattice in 2D space\nValues in a 4×4 SparseArrays.SparseMatrixCSC{Bool, Int64} with 0 stored entries:\n ⋅ ⋅ ⋅ ⋅\n ⋅ ⋅ ⋅ ⋅\n ⋅ ⋅ ⋅ ⋅\n ⋅ ⋅ ⋅ ⋅\n\njulia> site1, site2, site3, site4 = l;\n\njulia> a[site1, site2] = a[site2, site4] = a[site3, site4] = true;\n\njulia> a\nAdjacency matrix on 4-site SquareLattice in 2D space\nValues in a 4×4 SparseArrays.SparseMatrixCSC{Bool, Int64} with 6 stored entries:\n ⋅ 1 ⋅ ⋅\n 1 ⋅ ⋅ 1\n ⋅ ⋅ ⋅ 1\n ⋅ 1 1 ⋅\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.AdjacencyMatrix-Tuple{Function, LatticeModels.AbstractLattice}","page":"Library","title":"LatticeModels.AdjacencyMatrix","text":"AdjacencyMatrix(f, lat)\n\nConstructs an adjacency matrix from the function f that returns if the sites are connected on the lat lattice.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.AdjacencyMatrix-Tuple{LatticeModels.AbstractBonds, Vararg{LatticeModels.AbstractBonds}}","page":"Library","title":"LatticeModels.AdjacencyMatrix","text":"AdjacencyMatrix([lat, ]bonds...)\n\nConstructs an adjacency matrix from the bonds. If lat is not provided, it is inferred from the bonds.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.SiteDistance","page":"Library","title":"LatticeModels.SiteDistance","text":"SiteDistance(f, lat)\n\nA bonds type that connects sites based on the distance between them.\n\nArguments\n\nf: A function that takes a distance and returns if the distance is allowed.\nlat: The lattice where the bonds are defined.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.Translation","page":"Library","title":"LatticeModels.Translation","text":"Translation <: AbstractTranslation\n\nA spatial translation on some lattice.\n\nFields\n\nlat: The lattice where the translations are defined.\nR: The vector of the translation.\n\nExample\n\njulia> using LatticeModels\n\njulia> gl = GenericLattice([(1, 1), (1, 2), (2, 1), (2, 2)])\n4-site GenericLattice{GenericSite{2}} in 2D space:\n Site at [1.0, 1.0]\n Site at [1.0, 2.0]\n Site at [2.0, 1.0]\n Site at [2.0, 2.0]\n\njulia> tr = Translation(gl, [1, 0]) # Translation by [1, 0]\nTranslation by [1.0, 0.0]\n on 4-site GenericLattice{GenericSite{2}} in 2D space\n\njulia> site1 = gl[!, x = 1, y = 1] # Site at [1, 1]\n2-dim GenericSite{2} at [1.0, 1.0]\n\njulia> site1 + tr # Translated site\n2-dim GenericSite{2} at [2.0, 1.0]\n\njulia> site1 - tr # Inverse translation\n2-dim GenericSite{2} at [0.0, 1.0]\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.UndefinedLattice","page":"Library","title":"LatticeModels.UndefinedLattice","text":"UndefinedLattice\n\nA lattice that is not defined. The bonds can be 'defined' on it in context where the lattice is already defined before, e. g. in construct_operator.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.adapt_bonds-Tuple{Any, LatticeModels.AbstractLattice}","page":"Library","title":"LatticeModels.adapt_bonds","text":"adapt_bonds(bonds, lat)\n\nAdapt the bonds to the lattice lat. The output can be a different type of bonds, more fitting for the concrete type of lattice.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.adjacentsites-Tuple{AdjacencyMatrix, LatticeModels.AbstractSite}","page":"Library","title":"LatticeModels.adjacentsites","text":"adjacentsites(bonds, site)\n\nReturns the sites that are connected to site by the bonds.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.sitedistance-Tuple{LatticeModels.AbstractLattice, LatticeModels.AbstractSite, LatticeModels.AbstractSite}","page":"Library","title":"LatticeModels.sitedistance","text":"sitedistance([lat, ]site1, site2)\n\nReturns the distance between two sites on the lat lattice, taking boundary conditions into account.\n\nArguments\n\nlat: The lattice where the sites are defined.\nsite1 and site2: The sites to measure the distance between.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.translate_to_nearest-Tuple{LatticeModels.AbstractLattice, LatticeModels.AbstractSite, LatticeModels.AbstractSite}","page":"Library","title":"LatticeModels.translate_to_nearest","text":"translate_to_nearest(lat, site1, site2)\n\nTranslate site2 to its equivalent nearest to site1 in the lattice lat, taking the boundary conditions into account.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.Bravais","page":"Library","title":"LatticeModels.Bravais","text":"Bravais[ lattice_coords ]\n\nA convenient constructor for a BravaisTranslation that does not permute sublattices.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.BravaisTranslation","page":"Library","title":"LatticeModels.BravaisTranslation","text":"BravaisTranslation([site_indices, ]translate_uc)\nBravaisTranslation(site_indices)\nBravaisTranslation([site_indices; ]axis[, dist=1])\n\nA convenient constructor for a BravaisTranslation object.\n\nArguments\n\nsite_indices: a ::Int => ::Int pair with indices of sites connected by the bond;\n\nif omitted, the bond connects sites with the same sublattice index.\n\ntranslate_uc: The unit cell offset.\n\nKeyword arguments\n\naxis: The hopping direction axis in terms of unit cell vectors.\ndist: The hopping distance in terms of unit cell vectors.\n\nIf site_indices are equal or undefined and translate_uc is zero, the translation is considered to be a translation of all sites to themselves. An error will be thrown in this case.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.BravaisTranslation-2","page":"Library","title":"LatticeModels.BravaisTranslation","text":"BravaisTranslation{T, N}\n\nA struct representing bonds in some direction in a lattice.\n\nNote that though the dimension count for the bond is static, it is automatically compatible with higher-dimensional lattices.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.NearestNeighbor","page":"Library","title":"LatticeModels.NearestNeighbor","text":"NearestNeighbor(lat[, N=1])\n\nReturns the nearest neighbor bonds of order N for the lattice lat.\n\nExample\n\njulia> using LatticeModels\n\njulia> lat = HoneycombLattice(5, 5);\n\njulia> NearestNeighbor(lat)\nBravaisSiteMapping with 3 translations:\n 1 => 2, [0, -1]\n 1 => 2, [-1, 0]\n 1 => 2, [0, 0]\n on 50-site HoneycombLattice in 2D space\n\njulia> lat = SquareLattice(3, 3, 3, 3);\n\njulia> NearestNeighbor(lat, 4)\nBravaisSiteMapping with 12 translations:\n Bravais[1, -1, -1, -1]\n Bravais[1, 1, -1, -1]\n Bravais[1, -1, 1, -1]\n Bravais[1, 1, 1, -1]\n Bravais[2, 0, 0, 0]\n Bravais[0, 2, 0, 0]\n Bravais[0, 0, 2, 0]\n Bravais[1, -1, -1, 1]\n Bravais[1, 1, -1, 1]\n ⋮\n on 81-site SquareLattice in 4D space\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.NearestNeighbor-2","page":"Library","title":"LatticeModels.NearestNeighbor","text":"NearestNeighbor{N}\n\nA bonds type that connects sites that are nearest neighbors of order N on some lattice.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.getnnbonds-Tuple{LatticeModels.AbstractLattice}","page":"Library","title":"LatticeModels.getnnbonds","text":"getnnbonds(lat)\n\nReturns the nearest neighbor bonds of the lattice lat.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.setnnbonds-Tuple{LatticeModels.AbstractLattice, Vararg{LatticeModels.AbstractBonds}}","page":"Library","title":"LatticeModels.setnnbonds","text":"setnnbonds(lat, args...; overwrite=false)\n\nAdds the nearest neighbor bonds args to the lattice lat. If overwrite is true, the default nearest neighbor bonds are replaced by args. Otherwise, the new bonds are merged with the default.\n\nEach args can be a bonds type or a distance-bonds pair.\n\nExample\n\njulia> using LatticeModels\n\njulia> lat = SquareLattice(3, 3);\n\njulia> lat2 = setnnbonds(lat, SiteDistance(0 .. 1), SiteDistance(1 .. 2));\n\njulia> lat2.nnbonds\nNearest neighbor hoppings:\n #1 =>\n SiteDistance(0 .. 1)\n #2 =>\n SiteDistance(1 .. 2)\n\n\n\n\n\n","category":"method"},{"location":"library/#Boundary-conditions","page":"Library","title":"Boundary conditions","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"core/boundaries.jl\"]","category":"page"},{"location":"library/#LatticeModels.BoundaryConditions","page":"Library","title":"LatticeModels.BoundaryConditions","text":"BoundaryConditions\n\nA collection of boundary conditions for a lattice.\n\nFields\n\nbcs: A tuple of boundary conditions.\ndepth: The upper limit of the depth of the boundary conditions (used for routing).\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.FunctionBoundary","page":"Library","title":"LatticeModels.FunctionBoundary","text":"FunctionBoundary <: Boundary\n\nA boundary condition with a function that returns the phase factor for a given site. The boundary condition is encoded in form ψ(x + R) = f(x)ψ(x), where f(x) is the function and R is the translation vector.\n\n\n\nFunctionBoundary(f, translation)\n\nConstruct a FunctionBoundary with a given function and translation.\n\nArguments\n\nf: The function that returns the phase factor for a given site.\ntranslation: The translation vector of the boundary representad as AbstractTranslation. If an array is passed, it is converted to Translation automatically.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.TwistedBoundary","page":"Library","title":"LatticeModels.TwistedBoundary","text":"TwistedBoundary <: Boundary\n\nA boundary condition with a phase twist. A PeriodicBoundary is a special case of TwistedBoundary with zero twist.\n\n\n\nTwistedBoundary(translation, Θ)\n\nConstruct a TwistedBoundary with a given translation and twist angle.\n\nArguments\n\ntranslation: The translation vector of the boundary representad as AbstractTranslation. If an array is passed, it is converted to Translation automatically.\nΘ: The twist angle in radians.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.PeriodicBoundary-Tuple{Any}","page":"Library","title":"LatticeModels.PeriodicBoundary","text":"PeriodicBoundary(translation)\n\nConstruct a PeriodicBoundary with a given translation.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.setboundaries-Tuple{LatticeModels.AbstractLattice, BoundaryConditions}","page":"Library","title":"LatticeModels.setboundaries","text":"setboundaries(lat, boundaries...[; checkboundaries=true, rmdup=false])\n\nSet the boundary conditions for the lattice lat.\n\nArguments\n\nlat: The lattice.\nboundaries: The boundary conditions. It can be a single Boundary or a Tuple of Boundary objects.\n\nKeyword arguments\n\ncheckboundaries: If true, check if the boundary conditions overlap within the lattice sites.\nrmdup: If true, remove duplicate sites from the lattice.\n\nExample\n\njulia> using LatticeModels\n\njulia> l = SquareLattice(4, 4);\n\njulia> l2 = setboundaries(l, [4, 0] => true, [0, 4] => pi);\n\njulia> l2.boundaries\nBoundary conditions (depth = 1):\n Bravais[4, 0] → periodic\n Bravais[0, 4] → twist θ = 3.14\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeValue","page":"Library","title":"LatticeValue","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"core/latticevalue.jl\"]","category":"page"},{"location":"library/#LatticeModels.LatticeValue","page":"Library","title":"LatticeModels.LatticeValue","text":"LatticeValue{T, LT}\n\nRepresents a value of type T on a LT lattice.\n\nFields\n\nlattice: the AbstractLattice object the value is defined on\nvalues: the values on different sites\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.LatticeValue-Tuple{LatticeModels.AbstractLattice, AbstractVector}","page":"Library","title":"LatticeModels.LatticeValue","text":"LatticeValue(lat, values)\n\nConstructs a LatticeValue object.\n\nArguments\n\nlat: the lattice the value is defined on.\nvalues: an AbstractVector of values on the lattice.\n\nExample\n\njulia> using LatticeModels\n\njulia> l = SquareLattice(2, 2);\n\njulia> LatticeValue(l, [1, 2, 3, 4]) # Custom values\nLatticeValue{Int64} on a 4-site SquareLattice in 2D space\nValues stored in a Vector{Int64}:\n[1, 2, 3, 4]\n\njulia> x = LatticeValue(l, :x) # x-coordinate\nLatticeValue{Float64} on a 4-site SquareLattice in 2D space\nValues stored in a Vector{Float64}:\n[1.0, 1.0, 2.0, 2.0]\n\njulia> l2 = SquareLattice(3, 3);\n\njulia> y = LatticeValue(l2, :y) # y-coordinate\nLatticeValue{Float64} on a 9-site SquareLattice in 2D space\nValues stored in a Vector{Float64}:\n[1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0]\n\njulia> x + y\nERROR: Matching lattices expected.\nGot following:\n #1: 4-site SquareLattice in 2D space\n #2: 9-site SquareLattice in 2D space\n[...]\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.LatticeValue-Tuple{LatticeModels.AbstractLattice, LatticeModels.SiteProperty}","page":"Library","title":"LatticeModels.LatticeValue","text":"LatticeValue(lat, prop)\n\nGenerates a LatticeValue representing the site property prop on lattice lat.\n\nArguments\n\nlat: the lattice the value is defined on.\nprop: the SiteProperty to be represented. Can be a SiteProperty or a Symbol defining it.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.brastate-Tuple{LatticeValue}","page":"Library","title":"LatticeModels.brastate","text":"brastate(lv)\n\nConverts a LatticeValue to a Bra wavefunction vector.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.coordvalue-Tuple{LatticeModels.AbstractLattice, Int64}","page":"Library","title":"LatticeModels.coordvalue","text":"coordvalue(lat, coord)\n\nGenerates a LatticeValue representing the spatial coordinate coord on lattice lat.\n\nArguments\n\nlat: the lattice the value is defined on.\ncoord: the coordinate to be represented. Can be an integer or a symbol.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.coordvalues-Tuple{LatticeModels.AbstractLattice}","page":"Library","title":"LatticeModels.coordvalues","text":"coordvalues(lat)\n\nGenerates a tuple of LatticeValues representing spatial coordinates on lattice lat.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.ketstate-Tuple{LatticeValue}","page":"Library","title":"LatticeModels.ketstate","text":"ketstate(lv)\n\nConverts a LatticeValue to a Ket wavefunction vector.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.project-Tuple{LatticeValue, LatticeModels.SiteProperty}","page":"Library","title":"LatticeModels.project","text":"project(lv, axis)\n\nProjects the lv::LatticeValue along the given axis.\n\nArguments\n\nlv: the LatticeValue to be projected.\naxis: the SiteProperty describing the axis to be projected along.\n\n\n\n\n\n","category":"method"},{"location":"library/#Operators-and-observables","page":"Library","title":"Operators and observables","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"operators/bases.jl\", \"operators/miscoperators.jl\", \"operators/manybody.jl\", \n \"operators/latticeutils.jl\"]","category":"page"},{"location":"library/#LatticeModels.LatticeBasis","page":"Library","title":"LatticeModels.LatticeBasis","text":"LatticeBasis <: QuantumOpticsBase.Basis\n\nBasis for a lattice system.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.coordoperator-Tuple{Union{LatticeBasis, CompositeBasis{S, Tuple{BT, LatticeBasis{LT}}} where {S, BT, LT}}, Any}","page":"Library","title":"LatticeModels.coordoperator","text":"coordoperator(sys, crd)\ncoordoperator(basis, crd)\ncoordoperator(lat[, internal], crd)\n\nGenerate a coordinate operator for the given lattice.\n\nArguments\n\nsys: a System for which the coordinate operators are to be generated.\nbasis: a one-particle Basis for which the coordinate operators are to be generated.\nlat: a lattice for which the coordinate operators are to be generated.\ninternal: The basis for the internal degrees of freedom.\ncrd: The coordinate to generate the operator for. Must be an integer representing the coordinate index (e. g. 1 for x, 2 for y, etc.) or a symbol (e. g. :x, :y, etc.).\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.coordoperators-Tuple{Union{LatticeBasis, CompositeBasis{S, Tuple{BT, LatticeBasis{LT}}} where {S, BT, LT}}}","page":"Library","title":"LatticeModels.coordoperators","text":"coordoperators(sys)\ncoordoperators(basis)\ncoordoperators(lat[, internal])\n\nGenerate a Tuple of coordinate operators for the given lattice.\n\nArguments\n\nsys: a System for which the coordinate operators are to be generated.\nbasis: a one-particle Basis for which the coordinate operators are to be generated.\nlat: a lattice for which the coordinate operators are to be generated.\ninternal: The basis for the internal degrees of freedom.\n\n\n\n\n\n","category":"method"},{"location":"library/#QuantumOpticsBase.transition","page":"Library","title":"QuantumOpticsBase.transition","text":"QuantumOpticsBase.transition(sys::System, site1::LatticeSite, site2::LatticeSite[, op; field])\nQuantumOpticsBase.transition(sys::System, i1::Int, i2::Int[, op; field])\n\nGenerate a transition operator between two local states in lattice space. States can be defined by LatticeSites or integers.\n\nStandard rules for functions accepting Systems apply.\n\n\n\n\n\n","category":"function"},{"location":"library/#LatticeModels.interaction-Tuple{Function, Type{<:Number}, NParticles}","page":"Library","title":"LatticeModels.interaction","text":"interaction(f, [T, ]sys)\n\nCreate an two-site interaction operator for a given NParticles system. The function f takes two arguments, which are the two sites, and returns the interaction energy.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.interaction-Union{Tuple{K}, Tuple{Function, Type{<:Number}, NParticles, Val{K}}} where K","page":"Library","title":"LatticeModels.interaction","text":"interaction(f, [T, ]sys, K[; affect_internal=true])\n\nCreate an 2K-site interaction operator for a given NParticles system. The function f takes two K-tuples of integer numbers, which are site indices for creation and annihilation operators, and returns the interaction energy.\n\nIf affect_internal is true (default), the interaction operator will act on the internal degrees of freedom as well, and f will take four K-tuples — lattice and internal indices for creation and annihilation operators. If the system has no internal degrees of freedom, affect_internal will automatically be set to false and f will take two K-tuples.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.AdjacencyMatrix-Tuple{DataOperator{BT, BT} where BT<:Union{LatticeBasis, CompositeBasis{S, Tuple{BT, LatticeBasis{LT}}} where {S, BT, LT}}}","page":"Library","title":"LatticeModels.AdjacencyMatrix","text":"AdjacencyMatrix(op::Operator)\n\nGenerates an AdjacencyMatrix for the provided operator.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.localdensity-Tuple{Union{DataOperator{var\"#s184\", var\"#s184\"}, Bra{var\"#s184\"}, Ket{var\"#s184\"}} where var\"#s184\"<:Union{LatticeBasis, CompositeBasis{S, Tuple{BT, LatticeBasis{LT}}} where {S, BT, LT}}}","page":"Library","title":"LatticeModels.localdensity","text":"localdensity(state)\n\nCompute the local density of given state. The result is a LatticeValue with the same lattice as the input state.\n\nArguments\n\nstate: A Ket or Bra representing the wavefunction or an Operator representing the density matrix.\n\n\n\n\n\n","category":"method"},{"location":"library/#Hamiltonians","page":"Library","title":"Hamiltonians","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"operators/system.jl\", \"operators/builder.jl\", \"operators/constructoperator.jl\",\n \"operators/magneticfield.jl\", \"zoo/magneticfields.jl\"]","category":"page"},{"location":"library/#LatticeModels.Hamiltonian","page":"Library","title":"LatticeModels.Hamiltonian","text":"Hamiltonian <: QuantumOpticsBase.DataOperator\n\nA wrapper for a Hamiltonian operator. Contains the operator matrix and the system it acts on.\n\n\n\nHamiltonian(sys, op)\n\nCreate a Hamiltonian operator for a given system and a given operator.\n\nArguments\n\nsys: the system the Hamiltonian acts on.\nop: the operator matrix.\n\nExample\n\njulia> using LatticeModels\n\njulia> l = SquareLattice(4, 4);\n\njulia> H = tightbinding_hamiltonian(l)\nHamiltonian(dim=16x16)\nSystem: One particle on 16-site SquareLattice in 2D space\n16×16 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 48 stored entries:\n⎡⠪⡢⠑⢄⠀⠀⠀⠀⎤\n⎢⠑⢄⠪⡢⠑⢄⠀⠀⎥\n⎢⠀⠀⠑⢄⠪⡢⠑⢄⎥\n⎣⠀⠀⠀⠀⠑⢄⠪⡢⎦\n\njulia> l2 = SquareLattice(5, 5);\n\njulia> H2 = tightbinding_hamiltonian(l2)\nHamiltonian(dim=25x25)\nSystem: One particle on 25-site SquareLattice in 2D space\n25×25 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 80 stored entries:\n⎡⠪⡢⡈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⎤\n⎢⠢⡈⠠⡢⡈⠢⡀⠀⠀⠀⠀⠀⠀⎥\n⎢⠀⠈⠢⡈⠊⡠⡈⠢⡀⠀⠀⠀⠀⎥\n⎢⠀⠀⠀⠈⠢⡈⠪⠂⡈⠢⡀⠀⠀⎥\n⎢⠀⠀⠀⠀⠀⠈⠢⡈⠪⡢⠈⠢⡀⎥\n⎢⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠪⡢⡀⎥\n⎣⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠈⠀⎦\n\njulia> H + H2\nERROR: Incompatible Hamiltonians:\n #1: One particle on 16-site SquareLattice in 2D space\n #2: One particle on 25-site SquareLattice in 2D space\n[...]\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.NParticles-Union{Tuple{SampleT}, Tuple{SampleT, Any}} where SampleT<:LatticeModels.Sample","page":"Library","title":"LatticeModels.NParticles","text":"NParticles(lat[, internal], N[; T=0, statistics=FermiDirac])\nNParticles(sys, N[; T=0, statistics=FermiDirac])\n\nCreate a manybody system with a given lattice and a given number of particles.\n\nArguments\n\nlat: the lattice of the system.\ninternal: The basis for the internal degrees of freedom.\nsys: a one-particle system.\nN: the number of particles in the system.\n\nKeyword Arguments\n\nT: the temperature of the system. Default is 0.\nstatistics: the statistics of the particles. Default is FermiDirac.\n\nExample\n\njulia> using LatticeModels\n\njulia> lat = SquareLattice(3, 3);\n\njulia> NParticles(lat, 4, statistics=BoseEinstein)\nNParticles(4 bosons) on 9-site SquareLattice in 2D space\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.System-Tuple{LatticeModels.Sample}","page":"Library","title":"LatticeModels.System","text":"System(lat[, internal; T, μ, N, statistics])\n\nCreate a system with a given lattice and optionally internal degrees of freedom.\n\nArguments\n\nlat: the lattice of the system.\ninternal: The basis for the internal degrees of freedom.\n\nKeyword Arguments\n\nT: the temperature of the system. Default is 0.\nμ: the chemical potential of the system. Use mu synonym if Unicode input is not available.\nN: the number of particles in the system.\nstatistics: the statistics of the particles. Default is FermiDirac.\n\nExample\n\njulia> using LatticeModels\n\njulia> lat = SquareLattice(3, 3);\n\njulia> System(lat)\nOne particle on 9-site SquareLattice in 2D space\n\njulia> System(lat, N=4, statistics=BoseEinstein)\n4 non-interacting bosons on 9-site SquareLattice in 2D space\n\njulia> System(lat, mu=0, statistics=BoseEinstein)\nNon-interactng bosons with fixed μ=0.0 on 9-site SquareLattice in 2D space\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.sample-Tuple{LatticeBasis}","page":"Library","title":"LatticeModels.sample","text":"Returns the Sample of the object.\n\nDefine this function for your type to implement Sample API.\n\ninfo: Info\nThis function can be considered stable internal API. Feel free to use it in your packages.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.OperatorBuilder","page":"Library","title":"LatticeModels.OperatorBuilder","text":"OperatorBuilder\n\nA helper struct for building custom operators. This struct is used to build operators for a given system or lattice.\n\nExample\n\nl = SquareLattice(5, 5)\nbuilder = OperatorBuilder(l, field=LandauGauge(0.1), auto_hermitian=true)\nxhop = Bravais[1, 0]\nyhop = Bravais[0, 1]\nfor site in l\n x, y = site\n builder[site, site] = x + 2y\n builder[site, site + xhop] = 1\n builder[site, site + yhop] = 1im\n site2 = l[rand(1:25)]\n builder[site, site2] += 1\nend\nH = Hamiltonian(builder)\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.OperatorBuilder-Union{Tuple{FieldT}, Tuple{SystemT}, Tuple{Type{<:Number}, SystemT}} where {SystemT<:System, FieldT<:LatticeModels.AbstractField}","page":"Library","title":"LatticeModels.OperatorBuilder","text":"OperatorBuilder([T, ]sys, [; field=NoField(), auto_hermitian=false])\nOperatorBuilder([T, ]lat, [internal; field=NoField(), auto_hermitian=false])\n\nConstruct an OperatorBuilder for a given system or lattice.\n\nArguments\n\nT: The type of the matrix elements. Defaults to ComplexF64.\nsys: A System object representing the system.\nlat: The lattice on which the operator is defined.\ninternal: The basis for the internal degrees of freedom.\n\nKeyword arguments\n\nfield: The gauge field to use for the bond operators.\nauto_hermitian: Whether to automatically add the hermitian conjugate of the operator. Defaults to false.\n\nExample\n\njulia> using LatticeModels\n\njulia> l = SquareLattice(5, 5);\n\njulia> builder = OperatorBuilder(l, field=LandauGauge(0.1), auto_hermitian=true)\nOperatorBuilder(field=LandauGauge(0.1), auto_hermitian=true)\nSystem: One particle on 25-site SquareLattice in 2D space\n\njulia> for site in l\n site_hx = site + Bravais[1, 0]\n builder[site, site_hx] = 1\n site_hy = site + Bravais[0, 1]\n builder[site, site_hy] = 1\nend\n\njulia> H = Hamiltonian(builder)\nHamiltonian(dim=25x25)\nSystem: One particle on 25-site SquareLattice in 2D space\n25×25 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 80 stored entries:\n⎡⠪⡢⡈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⎤\n⎢⠢⡈⠠⡢⡈⠢⡀⠀⠀⠀⠀⠀⠀⎥\n⎢⠀⠈⠢⡈⠊⡠⡈⠢⡀⠀⠀⠀⠀⎥\n⎢⠀⠀⠀⠈⠢⡈⠪⠂⡈⠢⡀⠀⠀⎥\n⎢⠀⠀⠀⠀⠀⠈⠢⡈⠪⡢⠈⠢⡀⎥\n⎢⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠪⡢⡀⎥\n⎣⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠈⠀⎦\n\njulia> H == tightbinding_hamiltonian(l, field=LandauGauge(0.1))\ntrue\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.FastOperatorBuilder-Union{Tuple{FieldT}, Tuple{SystemT}, Tuple{Type{<:Number}, SystemT}} where {SystemT<:System, FieldT<:LatticeModels.AbstractField}","page":"Library","title":"LatticeModels.FastOperatorBuilder","text":"FastOperatorBuilder([T, ]sys, [; field=NoField(), auto_hermitian=false])\nFastOperatorBuilder([T, ]lat, [internal; field=NoField(), auto_hermitian=false])\n\nConstruct an OperatorBuilder for a given system or lattice. This version of the constructor uses a slightly faster internal representation of the operator matrix, but only allows increment/decrement assignments. builder[site1, site2] += 1 is allowed, but builder[site1, site2] = 1 is not.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.construct_hamiltonian-Tuple{Type, System, Vararg{Any}}","page":"Library","title":"LatticeModels.construct_hamiltonian","text":"construct_hamiltonian([T, ]sys, terms...[; field])\nconstruct_hamiltonian([T, ]lat[, internal, terms...; field])\n\nConstruct a Hamiltonian for the given system. Does the same as construct_operator, but wraps the result in a Hamiltonian type.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.construct_operator-Tuple{Type, System, Vararg{Any}}","page":"Library","title":"LatticeModels.construct_operator","text":"construct_operator([T, ]sys, terms...[; field])\nconstruct_operator([T, ]lat[, internal, terms...; field])\n\nConstruct an operator for the given system.\n\nEach of the terms describes a term of the Hamiltonian. The term can be given in several ways:\n\nA DataOperator on the lattice, internal or composite basis (will be matched automatically).\nA Pair of an \"internal\" and an \"on-lattice\" part (e.g. int_p => lat_p):\nThe \"internal\" part can be a DataOperator, a matrix or a number.\nThe \"on-lattice\" part can be a LatticeValue (represents a diagonal term), a site (represents a local on-site potential), a bond (represents a hopping term) or a site1 => site2 pair (represents a single hopping).\nIdentity \"internal\" or \"on-lattice\" parts can be omitted.\n\nSee documentation for more details.\n\nArguments\n\nT: The element type of the Hamiltonian. Default is ComplexF64.\nsys: The System for which the Hamiltonian is constructed.\nlat: The lattice for which the Hamiltonian is constructed.\ninternal: The basis for the internal degrees of freedom.\n\nKeyword Arguments\n\nfield: The gauge field to use for the bond operators. Default is NoField().\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.tightbinding_hamiltonian-Tuple{Type, System, Vararg{Any}}","page":"Library","title":"LatticeModels.tightbinding_hamiltonian","text":"tightbinding_hamiltonian([T, ]sys[, args...; t1=1, t2=0, t3=0, field])\ntightbinding_hamiltonian([T, ]lat[, internal, args...; t1=1, t2=0, t3=0, field])\n\nConstruct a tight-binding Hamiltonian for the given system.\n\nArguments\n\nT: The element type of the Hamiltonian. Default is ComplexF64.\nsys: The System for which the Hamiltonian is constructed.\nlat: The lattice for which the Hamiltonian is constructed.\ninternal: The basis for the internal degrees of freedom.\n\nAll other arguments are interpreted as terms of the Hamiltonian and passed to construct_hamiltonian.\n\nKeyword Arguments\n\nt1, t2, t3: The hopping amplitudes for the nearest, next-nearest, and next-next-nearest neighbors, respectively.\nfield: The gauge field to use for the bond operators. Default is NoField().\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.GaugeField","page":"Library","title":"LatticeModels.GaugeField","text":"GaugeField <: AbstractField\n\nA gauge field defined by a vector potential function.\n\n\n\nGaugeField(func; n)\n\nCreate a gauge field with a given vector potential function func.\n\nArguments\n\nfunc: a function that takes a point in space and returns the vector potential at this point as a SVector or Tuple.\nn: the number of steps to use in the trapezoidal rule integration.\n\nExample\n\nfield = GaugeField(n = 10) do p\n (-0.5 * p[2], 0.5 * p[1], 0)\nend\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.LineIntegralGaugeField","page":"Library","title":"LatticeModels.LineIntegralGaugeField","text":"LineIntegralGaugeField <: AbstractField\n\nA gauge field defined by a line integral function.\n\n\n\nLineIntegralGaugeField(func)\n\nCreate a gauge field with a given line integral function func. The function should take two points in space and return the line integral of the vector potential between these points.\n\nExample\n\nfield = LineIntegralGaugeField() do p1, p2\n 0.5 * (p1[1] * p2[2] - p1[2] * p2[1]) # A = [-y/2, x/2, 0]\nend\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.NoField","page":"Library","title":"LatticeModels.NoField","text":"NoField <: AbstractField\n\nA stub object representing zero magnetic field. Use it as a default magnetic field argument in functions - this will not cause any performance overhead.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.line_integral-Tuple{LatticeModels.AbstractField, Any, Any}","page":"Library","title":"LatticeModels.line_integral","text":"line_integral(field, p1, p2[, n_steps=1])\n\nCalculates the int_p1^p2 overrightarrowA cdot overrightarrowdl integral using the trapezoidal rule. Increase n_steps to improve accuracy (note that for linear field gauges like Landau or symmetrical the formula is already pefrectly accurate). If needed, redefine this function for specific field types — this is likely to boost accuracy and performance.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.vector_potential-Tuple{LatticeModels.AbstractField, Any}","page":"Library","title":"LatticeModels.vector_potential","text":"vector_potential(field, point)\n\nReturns vector potential overrightarrowA for field in location point.\n\nThis function should be defined for new field types, but it is not necessary unless you want to use built-in trapezoidal rule integrating.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.LandauGauge","page":"Library","title":"LatticeModels.LandauGauge","text":"LandauGauge <: AbstractField\n\nAn object representing Landau gauge uniform magnetic field along z-axis.\n\nFields\n\nB: The magnetic field value\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.PointFlux","page":"Library","title":"LatticeModels.PointFlux","text":"PointFlux{GaugeT} <: AbstractField\n\nAn object representing a small magnetic flux through given point. The field is directed along z-axis.\n\nFields\n\nflux: The magnetic flux value.\npoint: A Tuple of x and y coordinates of the point.\n\n\n\nPointFlux(flux, [point; gauge])\n\nConstruct a PointFlux object with given flux and point.\n\nThe optional gauge argument can be used to specify the gauge of the field. Possible values are :axial (A(r) = B times fracrr) and :singular (the the phase changes if the particle passes below the point). The default is :axial.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.SymmetricGauge","page":"Library","title":"LatticeModels.SymmetricGauge","text":"SymmetricGauge <: AbstractField\n\nAn object representing symmetrically gauged uniform magnetic field along z-axis.\n\nFields\n\nB: The magnetic field value\n\n\n\n\n\n","category":"type"},{"location":"library/#Built-in-models","page":"Library","title":"Built-in models","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"zoo/models.jl\"]","category":"page"},{"location":"library/#LatticeModels.bosehubbard-Tuple{Type, LatticeModels.AbstractLattice, Int64}","page":"Library","title":"LatticeModels.bosehubbard","text":"bosehubbard([type, ]lat, N[; U, T, t1, t2, t3, field])\n\nhatH = sum_ij^textsites t_ij c^dagger_i c_j + sum_i^textsites fracU2 hatn_i (hatn_i - 1)\n\nGenerates a Bose-Hubbard model hamiltonian on given lattice lat.\n\nArguments\n\ntype: The element type of the resulting operator. Default is ComplexF64.\nN: The number of particles.\n\nKeyword arguments\n\nt1, t2, t3 denote the coefficient on first, second and third hoppings respectively. By default t1 is equal to one, the rest are zero.\nU: The interaction strength. Default is zero.\nT: The temperature of the system. Default is zero.\nfield: The magnetic field. Default is NoField().\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.fermihubbard-Tuple{Type, LatticeModels.AbstractLattice, Int64}","page":"Library","title":"LatticeModels.fermihubbard","text":"fermihubbard([type, ]lat, N[; U, T, t1, t2, t3, field])\n\nhatH = sum_ij^textsites t_ij c^dagger_i c_j + sum_i^textsites fracU hatn_i^uparrow hatn_i^downarrow\n\nGenerates a Fermi-Hubbard model hamiltonian on given lattice lat.\n\nArguments\n\ntype: The element type of the resulting operator. Default is ComplexF64.\nN: The number of particles.\n\nKeyword arguments\n\nt1, t2, t3 denote the coefficient on first, second and third hoppings respectively. By default t1 is equal to one, the rest are zero.\nU: The interaction strength. Default is zero.\nT: The temperature of the system. Default is zero.\nfield: The magnetic field. Default is NoField().\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.haldane","page":"Library","title":"LatticeModels.haldane","text":"haldane(lat, t1, t2[, m=0; T, μ, field, statistics])\n\nhatH = sum_i^textsublattice A m c^dagger_i c_i + sum_j^textsublattice B m c^dagger_j c_j + sum_i j^textadjacent left( t_1 c^dagger_i c_j + h c right) + sum_i j^text2-connected counter-clockwise left( i cdot t_2 c^dagger_i c_j + h c right)\n\nGenerates a Haldane topological insulator hamiltonian operator on given lattice lat.\n\nKeyword arguments\n\nT: The temperature of the system. Default is zero.\nμ: The chemical potential. Use mu as a synonym if Unicode input is not available.\nfield: The magnetic field. Default is NoField().\nstatistics defines the particle statistics, either FermiDirac or BoseEinstein.\n\n\n\n\n\n","category":"function"},{"location":"library/#LatticeModels.kanemele-Tuple{System, Real, Real}","page":"Library","title":"LatticeModels.kanemele","text":"kanemele(lat, t1, t2[; T, μ, field, statistics])\n\nhatH = sum_i j^textadjacent left( t_1 c^dagger_i c_j + h c right) + sum_i j^text2-connected counter-clockwise left( i cdot t_2 c^dagger_i σ_z c_j + h c right)\n\nGenerates a Kane-Mele hamiltonian operator on given lattice lat.\n\nKeyword arguments\n\nT: The temperature of the system. Default is zero.\nμ: The chemical potential. Use keyword mu as a synonym if Unicode input is not available.\nfield: The magnetic field. Default is NoField().\nstatistics defines the particle statistics, either FermiDirac or BoseEinstein.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.qwz-Tuple{LatticeValue}","page":"Library","title":"LatticeModels.qwz","text":"qwz(m[; T, μ, field, statistics])\nqwz(lat[, m; T, μ, field, statistics])\n\nhatH = sum_i^textsites m_i c^dagger_i sigma_z c_i + sum_i^textsites left( c^dagger_i + hatx fracsigma_z - i sigma_x2 c_i + c^dagger_i + haty fracsigma_z - i sigma_y2 c_i + h c right)\n\nGenerates a QWZ model hamiltonian operator on given square lattice lat.\n\nArguments\n\nm (either a LatticeValue or a number) defines the m_i factors\n\nKeyword arguments\n\nT: The temperature of the system. Default is zero.\nμ: The chemical potential. Use mu as a synonym if Unicode input is not available.\nfield: The magnetic field. Default is NoField().\nstatistics defines the particle statistics, either FermiDirac or BoseEinstein.\n\n\n\n\n\n","category":"method"},{"location":"library/#Diagonalization","page":"Library","title":"Diagonalization","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"spectrum.jl\"]","category":"page"},{"location":"library/#LatticeModels.Eigensystem","page":"Library","title":"LatticeModels.Eigensystem","text":"Eigensystem{LT, MT} where {LT<:AbstractLattice, MT<:AbstractMatrix}\n\nEigenvalues and eigenvectors for some operator.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.densitymatrix-Tuple{LatticeModels.HamiltonianEigensystem{<:LatticeModels.FixedMu}}","page":"Library","title":"LatticeModels.densitymatrix","text":"densitymatrix(eig::Eigensystem[; T=0, μ, N, statistics, info=true])\n\nCreates an Operator representing a equilibrium density matrix, given the eigensystem eig of the Hamiltonian.\n\nThe resulting distribution will be Fermi-Dirac or Bose-Einstein if the statistics is specified, otherwise the Gibbs distribution will be used.\n\nKeyword arguments\n\nT is the temperature of the system. Default is zero.\nμ is the chemical potential. Use mu as a synonym if Unicode input is not available.\nN is the number of particles. If specified, the chemical potential is found automatically.\nstatistics defines the particle statistics, either FermiDirac or BoseEinstein.\ninfo is a boolean flag to enable/disable logging. Default is true.\n\nNote that if eig is a diagonalized Hamiltonian, the μ, N and statistics parameters are inserted automatically.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.diagonalize-Tuple{Hamiltonian, Val}","page":"Library","title":"LatticeModels.diagonalize","text":"diagonalize(op::DataOperator[, routine; params...])\n\nFinds eigenvalues and eigenvectors for a Operator and stores them in an Eigensystem.\n\nTwo routines are available:\n\n:lapack uses the eigen function from the standard LinearAlgebra package.\n:krylovkit uses the Lanczos algorithm from the KrylovKit package. Accepts following parameters:\nv0 is the starting vector. Default is rand(ComplexF64, size(op.data, 1)).\nn is the target number of eigenvectors. Default is 10.\nAll other keyword arguments are passed to the KrylovKit.eigsolve function. See its documentation for details.\n:auto automatically selects the routine based on the size of the operator.\n\nThe default routine is :lapack for dense operators. If the operator matrix is less than 5000×5000, it is automatically converted to a dense operator. In other cases :krylovkit is used.\n\nExample\n\njulia> using LatticeModels\n\njulia> l = SquareLattice(4, 4);\n\njulia> H = tightbinding_hamiltonian(l)\nHamiltonian(dim=16x16)\nSystem: One particle on 16-site SquareLattice in 2D space\n16×16 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 48 stored entries:\n⎡⠪⡢⠑⢄⠀⠀⠀⠀⎤\n⎢⠑⢄⠪⡢⠑⢄⠀⠀⎥\n⎢⠀⠀⠑⢄⠪⡢⠑⢄⎥\n⎣⠀⠀⠀⠀⠑⢄⠪⡢⎦\n\njulia> eig = diagonalize(H)\nDiagonalized Hamiltonian (16 eigenvectors)\nEigenvalues in range -3.23607 .. 3.23607\nSystem: One particle on 16-site SquareLattice in 2D space\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.findgroundstate-Tuple{LatticeModels.HamiltonianEigensystem}","page":"Library","title":"LatticeModels.findgroundstate","text":"findgroundstate(eig::HamiltonianEigensystem)\nfindgroundstate(ham::Hamiltonian)\n\nFinds the ground state of a Hamiltonian. Returns the energy and the state.\n\nExample\n\neig = diagonalize(ham)\nE, ψ = findgroundstate(eig)\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.groundstate-Tuple{Any}","page":"Library","title":"LatticeModels.groundstate","text":"groundstate(eig::HamiltonianEigensystem)\ngroundstate(ham::Hamiltonian)\n\nFinds the ground state of a Hamiltonian. Returns the state.\n\nExample\n\neig = diagonalize(ham)\nψ = groundstate(eig)\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.projector-Tuple{Any, LatticeModels.AbstractEigensystem}","page":"Library","title":"LatticeModels.projector","text":"projector(f, eig::Eigensystem)\n\nReturns an Operator representing a function applied to the diagonalized operator defined by the formula below:\n\nhatmathcalP = sum_i f(A_i) psi_ipsi_i\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.projector-Tuple{LatticeModels.AbstractEigensystem}","page":"Library","title":"LatticeModels.projector","text":"projector(eig::Eigensystem)\n\nreturns an Operator that projects onto the eigenvectors of the spectrum, defined by the formula below.\n\nhatmathcalP = sum_i psi_ipsi_i\n\n\n\n\n\n","category":"method"},{"location":"library/#Green's-function","page":"Library","title":"Green's function","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"greenfunction.jl\"]","category":"page"},{"location":"library/#LatticeModels.GreenFunction","page":"Library","title":"LatticeModels.GreenFunction","text":"GreenFunction\n\nA Green's function for a given lattice and Hamiltonian.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.diagonalelements-Tuple{LatticeModels.GreenFunctionEval{<:System{<:LatticeModels.Sample{LT, Nothing} where LT}}}","page":"Library","title":"LatticeModels.diagonalelements","text":"diagonalelements(gf::GreenFunctionEval)\n\nReturn the diagonal elements of the Green's function as a LatticeValue.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.dos-Tuple{LatticeModels.AbstractEigensystem, Any}","page":"Library","title":"LatticeModels.dos","text":"dos(eig[, E; broaden])\ndos(gf[, E; broaden])\n\nCalculates the DOS (density of states) for a given eigensystem at energy E. If E is not specified, a function that calculates the DOS at a given energy is returned.\n\nArguments\n\neig is an Eigensystem or HamiltonianEigensystem.\ngf is a GreenFunction.\nE is the energy at which the DOS is calculated.\n\nKeyword arguments\n\nbroaden is the broadening factor for the energy levels, default is 0.1.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.greenfunction-Tuple{Any, Ket, Hamiltonian, Hamiltonian}","page":"Library","title":"LatticeModels.greenfunction","text":"greenfunction(psi0, hamp, hamm[; E₀, tol, kw...])\n\nCalculates the Green's function for a many-body system with a given initial state psi0.\n\nArguments\n\npsi0 is the initial state.\nhamp is the Hamiltonian for the subspace with one more particle than in psi0.\nhamm is the Hamiltonian for the subspace with one less particle than in psi0.\n\nKeyword arguments\n\nE₀ is the energy shift for the Green's function. Default is 0. Use E0 as a synonym if Unicode input is not available.\ntol is the tolerance for the new eigenvectors. Default is 1e-5.\n\nAll other keyword arguments are passed to the diagonalize function. See its documentation for details.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.greenfunction-Tuple{Any, LatticeModels.HamiltonianEigensystem{<:LatticeModels.OneParticleBasisSystem}}","page":"Library","title":"LatticeModels.greenfunction","text":"greenfunction(ham_eig::HamiltonianEigensystem)\n\nCreates a Green's function for a given one-body Hamiltonian eigensystem.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.ldos-Tuple{GreenFunction, Real}","page":"Library","title":"LatticeModels.ldos","text":"ldos(gf::GreenFunction, E[; broaden])\n\nCalculates the LDOS (local density of states) for a given Green's function at energy E. broaden is the broadening factor for the energy levels, default is 0.1.\n\n\n\n\n\n","category":"method"},{"location":"library/#Currents","page":"Library","title":"Currents","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"currents.jl\", \"zoo/currents.jl\"]\nFilter = t -> t ∉ (LatticeModels.AbstractCurrents, LatticeModels.AbstractTranslation)","category":"page"},{"location":"library/#LatticeModels.Currents","page":"Library","title":"LatticeModels.Currents","text":"Currents <: AbstractCurrents\n\nA AbstractCurrents instance that stores values for all currents explicitly.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.Currents-Tuple{LatticeModels.AbstractCurrents}","page":"Library","title":"LatticeModels.Currents","text":"Currents(currents[, adjacency_matrix])\n\nCreates a Currents instance for currents.\n\nArguments\n\ncurrents: The AbstractCurrents object to be turned into Currents. That might be time-consuming, because this requires evaluation of the current between all pairs.\nadjacency_matrix: If provided, the current will be evaluated only between adjacent sites.\n\nExamples\n\njulia> using LatticeModels\n\njulia> lat = SquareLattice(4, 4); site1, site2 = lat[1:2];\n\njulia> H0 = tightbinding_hamiltonian(lat); psi = groundstate(H0);\n\njulia> H1 = tightbinding_hamiltonian(lat, field=LandauGauge(0.1));\n\njulia> currents = DensityCurrents(H1, psi)\nDensity currents for system:\nOne particle on 16-site SquareLattice in 2D space\n\njulia> c2 = Currents(currents)\nCurrents{SparseArrays.SparseMatrixCSC{Float64, Int64}} on 16-site SquareLattice in 2D space\n\njulia> c2[site1, site2] ≈ currents[site1, site2]\ntrue\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.DensityCurrents","page":"Library","title":"LatticeModels.DensityCurrents","text":"DensityCurrents <: AbstractCurrents\n\nDensity currents for given state and given hamiltonian.\n\n\n\nDensityCurrents(hamiltonian, state)\n\nConstructs a DensityCurrents object for given hamiltonian and state.\n\nArguments\n\nhamiltonian: A Hamiltonian object representing the Hamiltonian of the system.\nstate: A Ket or Bra representing the wavefunction or an Operator representing the density matrix.\n\nExample\n\nExamples\n\njulia> using LatticeModels\n\njulia> lat = SquareLattice(4, 4);\n\njulia> H0 = tightbinding_hamiltonian(lat); psi = groundstate(H0);\n\njulia> H1 = tightbinding_hamiltonian(lat, field=LandauGauge(0.1));\n\njulia> currents = DensityCurrents(H1, psi)\nDensity currents for system:\nOne particle on 16-site SquareLattice in 2D space\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.LocalOperatorCurrents","page":"Library","title":"LatticeModels.LocalOperatorCurrents","text":"LocalOperatorCurrents <: AbstractCurrents\n\nLocal operator (e. g. spin) currents for given state and given hamiltonian.\n\n\n\nLocalOperatorCurrents(hamiltonian, state, op)\n\nConstructs a DensityCurrents object for given hamiltonian and state.\n\nArguments\n\nhamiltonian: A Hamiltonian object representing the Hamiltonian of the system.\nstate: A Ket or Bra representing the wavefunction or an Operator representing the density matrix.\nop: A local (on-site) operator; either an Operator or a matrix of such.\n\nExample\n\njulia> using LatticeModels\n\njulia> lat = SquareLattice(4, 4); site1, site2 = lat[1:2];\n\njulia> H0 = qwz(lat); psi = groundstate(H0);\n\njulia> H1 = qwz(lat, field=LandauGauge(0.1));\n\njulia> op = [1 0; 0 -1]; # Spin operator\n\njulia> currents = LocalOperatorCurrents(H1, psi, op)\nCurrents of Operator(Spin(1/2))\n 1 0\n 0 -1\nFor system:\nOne particle on (16-site SquareLattice in 2D space) ⊗ Spin(1/2)\n\njulia> op2 = one(SpinBasis(3//2)); # Invalid operator\n\njulia> LocalOperatorCurrents(H1, psi, op2)\nERROR: ArgumentError: Operator must be defined on the internal basis of the Hamiltonian.\n[...]\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.SubCurrents","page":"Library","title":"LatticeModels.SubCurrents","text":"SubCurrents{CT<:AbstractCurrents} <: AbstractCurrents\n\nA lazy wrapper for a Currents object representing the same currents but on a smaller lattice.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.currentsfrom-Tuple{LatticeModels.AbstractCurrents, Any}","page":"Library","title":"LatticeModels.currentsfrom","text":"currentsfrom(currents, src)\n\nCreate a LatticeValue object with the currents from src region to all other sites.\n\nArguments\n\ncurrents: The AbstractCurrents object to process.\nsrc: The source region. Can be a site/collection of sites or a LatticeValue{Bool} mask.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.currentsfromto","page":"Library","title":"LatticeModels.currentsfromto","text":"currentsfromto(currents, src[, dst])\n\nFinds the total current from src to dst regions. If dst is not provided, the current from src to all other sites is returned.\n\nArguments\n\ncurrents: The AbstractCurrents object to process.\nsrc: The source region.\ndst: The destination region.\n\nBoth src and dst can be a site/collection of sites or a LatticeValue{Bool} mask.\n\n\n\n\n\n","category":"function"},{"location":"library/#LatticeModels.lattice-Tuple{LatticeModels.AbstractCurrents}","page":"Library","title":"LatticeModels.lattice","text":"Gets the lattice where the given AbstractCurrents object is defined.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.mapgroup_currents-Tuple{Function, Function, LatticeModels.AbstractCurrents}","page":"Library","title":"LatticeModels.mapgroup_currents","text":"mapgroup_currents(f, group, currents[; sortresults=false, sortpairsby])\n\nFind the current between all possible pairs of sites, apply f to every site pair and group the result by value of f,\n\nArguments\n\nf: This function will be applied to all site pairs. Must accept two AbstractSites.\ngroup: This function will be used to group the current values for pairs with the same mapped value. Must accept a Vector of numbers.\ncurrents: The AbstractCurrents object to process.\n\nKeyword arguments\n\nsortresults: if true, the output arrays will be sorted by results of f.\nsortpairsby: if provided, the sites in each pair will be sorted by this function. Must accept one AbstractSite; by default the order of the sites in the pair matches their order in the lattice. The sign of the current will match the site order.\n\n\n\n\n\n","category":"method"},{"location":"library/#Evolution","page":"Library","title":"Evolution","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"evolution.jl\", \"timesequence.jl\"]\nFilter = t -> t ∉ (LatticeModels.EvolutionSolver,)","category":"page"},{"location":"library/#LatticeModels.CachedExp","page":"Library","title":"LatticeModels.CachedExp","text":"CachedExp([ham; threshold=1e-10, nztol=1e-14])\n\nA EvolutionSolver that finds the matrix exponential of the Hamiltonian and caches it. The matrix exponential is computed using a scaling and squaring method, so this solver works well with sparse or GPU arrays.\n\nArguments\n\nham: The Hamiltonian of the system. It can be an Operator or its matrix.\nthreshold: The threshold for the error in the matrix exponential.\nnztol: The tolerance for dropping small elements in the matrix exponential if it is sparse.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.Evolution","page":"Library","title":"LatticeModels.Evolution","text":"Evolution([solver, ]hamiltonian, states...; timedomain, namedstates...)\n\nCreate an Evolution object that can be used to evolve states in time according to the Schrödinger equation.\n\nArguments\n\nsolver: A EvolutionSolver object that will be used to evolve the states. If omitted, a CachedExp solver will be created.\nhamiltonian: The Hamiltonian of the system. It can be a matrix, a time-dependent operator or a function that returns the Hamiltonian at a given time.\nstates and namedstates: The states to be evolved. They can be Ket wavefunctions or DataOperator density matrices.\ntimedomain: The time domain to be used for the evolution. If omitted, the non-iterable Evolution object will be returned, and you will be able to call it with the time domain later.\n\nSee EvolutionSolver for more information about solvers.\n\nwarning: Warning\nPlease note that the Evolution object is a stateful iterator. This means that it keeps track of the current time and the states as they evolve. You can perform evolution multiple times, but the timeline will be kept and the states will be updated in place.Also do not edit the states in place, as this will affect the evolution. If you need to modify the states or save them, make a copy of them first.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.KrylovKitExp","page":"Library","title":"LatticeModels.KrylovKitExp","text":"KrylovKitExp([ham; kw...])\n\nA EvolutionSolver that uses the exponentiate function from KrylovKit.jl to evolve the wavefunction vectors. This solver is useful for large, sparse, time-dependent Hamiltonians.\n\nArguments\n\nham: The Hamiltonian of the system. It can be an Operator or its matrix.\nkw...: Keyword arguments to be passed to exponentiate.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.TimeSequence","page":"Library","title":"LatticeModels.TimeSequence","text":"TimeSequence{ET}\n\nA time-ordered sequence of values.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.TimeSequence-Tuple{Any, AbstractVector}","page":"Library","title":"LatticeModels.TimeSequence","text":"TimeSequence(times, values)\n\nConstructs a TimeSequence with the given times and values.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.TimeSequence-Tuple{Function, LatticeModels.EvolutionIterator}","page":"Library","title":"LatticeModels.TimeSequence","text":"TimeSequence(f, ev, times)\nTimeSequence(f, ev_iter)\n\nConstructs a TimeSequence by iterating the evolution iterator ev and applying the function f to each moment.\n\nArguments\n\nf: A function that takes a moment and returns a value. The function is applied to each moment in the evolution.\nev: An Evolution object.\ntimes: A range of times to evaluate the function at.\nev_iter: An evoltuion iterator that yields moments. Think of it as ev(times).\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.TimeSequence-Union{Tuple{}, Tuple{ET}} where ET","page":"Library","title":"LatticeModels.TimeSequence","text":"TimeSequence{ET}()\n\nConstructs an empty TimeSequence with eltype ET.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.differentiate!-Tuple{TimeSequence}","page":"Library","title":"LatticeModels.differentiate!","text":"differentiate!(tseq::TimeSequence)\n\nDifferentiate the values stored in tseq by time using the symmetric difference formula. The new values are written into tseq.\n\nExample\n\njulia> using LatticeModels\n\njulia> tseq = TimeSequence(0:0.1:10, 0:0.1:10) # f(t) = t\nTimeSequence{Float64} with 101 entry\nTimestamps in range 0.0 .. 10.0:\n 0.0 => 0.0\n 0.1 => 0.1\n 0.2 => 0.2\n 0.3 => 0.3\n 0.4 => 0.4\n 0.5 => 0.5\n 0.6 => 0.6\n 0.7 => 0.7\n 0.8 => 0.8\n ⋮\n\njulia> differentiate!(tseq) # f'(t) = 1\nTimeSequence{Float64} with 100 entries\nTimestamps in range 0.05 .. 9.95:\n 0.05 => 1.0\n 0.15 => 1.0\n 0.25 => 1.0\n 0.35 => 1.0\n 0.45 => 1.0\n 0.55 => 1.0\n 0.65 => 1.0\n 0.75 => 1.0\n 0.85 => 1.0\n ⋮\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.differentiate-Tuple{TimeSequence}","page":"Library","title":"LatticeModels.differentiate","text":"differentiate(tseq::TimeSequence)\n\nDifferentiate the values stored in tseq and create a copy; see differentiate!.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.integrate!-Tuple{TimeSequence}","page":"Library","title":"LatticeModels.integrate!","text":"integrate!(tseq::TimeSequence)\n\nIntegrate the values stored in tseq over time using the trapezoidal rule. The new values are written into tseq. The first value is set to zero.\n\nExample\n\njulia> using LatticeModels\n\njulia> tseq = TimeSequence(0:0.1:10, 0:0.1:10) # f(t) = t\nTimeSequence{Float64} with 101 entry\nTimestamps in range 0.0 .. 10.0:\n 0.0 => 0.0\n 0.1 => 0.1\n 0.2 => 0.2\n 0.3 => 0.3\n 0.4 => 0.4\n 0.5 => 0.5\n 0.6 => 0.6\n 0.7 => 0.7\n 0.8 => 0.8\n ⋮\n\njulia> integrate!(tseq) # F(t) = t^2 / 2\nTimeSequence{Float64} with 101 entry\nTimestamps in range 0.0 .. 10.0:\n 0.0 => 0.0\n 0.1 => 0.005\n 0.2 => 0.02\n 0.3 => 0.045\n 0.4 => 0.08\n 0.5 => 0.125\n 0.6 => 0.18\n 0.7 => 0.245\n 0.8 => 0.32\n ⋮\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.integrate-Tuple{TimeSequence}","page":"Library","title":"LatticeModels.integrate","text":"integrate(tseq::TimeSequence)\n\nIntegrate the values stored in tseq and create a copy; see integrate!.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.timerange-Tuple{TimeSequence}","page":"Library","title":"LatticeModels.timerange","text":"timerange(tseq::TimeSequence)\n\nReturns the range of the timestamps of the TimeSequence.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.timestamps-Tuple{TimeSequence}","page":"Library","title":"LatticeModels.timestamps","text":"timestamps(tseq::TimeSequence)\n\nReturns the timestamps of the TimeSequence.\n\n\n\n\n\n","category":"method"},{"location":"library/#Internals-2","page":"Library","title":"Internals","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"LatticeModels.AbstractLattice\nLatticeModels.AbstractSite\nLatticeModels.AbstractBonds\nLatticeModels.DirectedBonds\nLatticeModels.AbstractTranslation\nLatticeModels.AbstractCurrents\nLatticeModels.LookupTable\nLatticeModels.EvolutionSolver\nLatticeModels.addlookuptable","category":"page"},{"location":"library/#LatticeModels.AbstractLattice","page":"Library","title":"LatticeModels.AbstractLattice","text":"AbstractLattice{SiteT}\n\nAn abstract type for a lattice of SiteT sites.\n\nMethods for subtypes to implement\n\nlength(l::AbstractLattice): Return the number of sites in the lattice.\nsite_index(l::AbstractLattice, site::SiteT): Return the index of the site in the lattice.\ngetindex(l::AbstractLattice, i::Int): Return the site with the given index.\ngetindex(l::AbstractLattice, is::AbstractVector{Int}): Return an AbstractLattice with the sites at the given indices.\n\nOptional methods for mutable lattices\n\nemptymutable(l::AbstractLattice, ::Type{SiteT}): Return an empty mutable instance of lattice.\ncopymutable(l::AbstractLattice): Return a mutable copy of the lattice.\npush!(l::AbstractLattice, site::SiteT): Add a site to the lattice.\ndeleteat!(l::AbstractLattice, is::AbstractVector{Int}): Remove the sites with the given indices from the lattice.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.AbstractSite","page":"Library","title":"LatticeModels.AbstractSite","text":"AbstractSite{N}\n\nAn abstract type for a site of a N-dimensional lattice.\n\nFields\n\ncoords: A SVector of size N representing the spatial coordinates of the site. All subtypes are expected to have this field.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.AbstractBonds","page":"Library","title":"LatticeModels.AbstractBonds","text":"AbstractBonds{LT}\n\nAn abstract type for bonds on some lattice.\n\nMethods for subtypes to implement\n\nlattice(bonds::AbstractBonds): Returns the lattice where the bonds are defined.\nisadjacent(bonds::AbstractBonds, site1::AbstractSite, site2::AbstractSite): Returns if the sites are connected by the bonds.\n\nOptional methods for subtypes to implement\n\nadapt_bonds(bonds::AbstractBonds, l::AbstractLattice)\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.DirectedBonds","page":"Library","title":"LatticeModels.DirectedBonds","text":"DirectedBonds{LT} <: AbstractBonds{LT}\n\nAn abstract type for bonds on some lattice that have a direction.\n\nMethods for subtypes to implement\n\nlattice(bonds::DirectionalBonds): Returns the lattice where the bonds are defined.\ndestinations(bonds::DirectionalBonds, site::AbstractSite): Returns the sites where the\n\nsite is connected to, accounting for the direction of the bonds.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.AbstractTranslation","page":"Library","title":"LatticeModels.AbstractTranslation","text":"AbstractTranslation{LT}\n\nAn abstract type for translations on some lattice.\n\nMethods for subtypes to implement\n\nlattice(bonds::AbstractTranslation): Returns the lattice where the translations are defined.\ndestination(bonds::AbstractTranslation, site::AbstractSite): Returns the site where the site is translated to.\n\nOptional methods for subtypes to implement\n\nadapt_bonds(bonds::AbstractTranslation, l::AbstractLattice): Adapt the translation to the lattice l. The output can be a different type of translation, more fitting for the concrete type of lattice.\ninv(bonds::AbstractTranslation): Returns the inverse of the translation, if any.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.AbstractCurrents","page":"Library","title":"LatticeModels.AbstractCurrents","text":"AbstractCurrents\n\nSupertype for all type representing currents-like values on a lattice. Subtypes must implement Base.getindex(::Int, ::Int) and lattice functions.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.LookupTable","page":"Library","title":"LatticeModels.LookupTable","text":"LookupTable\n\nA helper data structure to quickly find the index of a site in a lattice.\n\nRelies on sitekey(site) and secondarykey(function) functions to determine the index of a site in the lattice.\n\nWorks well under following assumptions:\n\nThe sitekey is some integer property of the sites.\nThe sites in the lattice are ordered by sitekey.\nThe numbering is mostly contiguous, i.e. there are no (or few) gaps in the numbering.\nThe secondarykey is also integer, mostly contiguous, ordered and unique for all sites with the same sitekey.\n\nSet them to nothing to disable usage.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.EvolutionSolver","page":"Library","title":"LatticeModels.EvolutionSolver","text":"EvolutionSolver\n\nAbstract type for solvers that can be used to evolve states in time according to the Schrödinger equation.\n\nSee also concrete implementations: CachedExp, KrylovKitExp.\n\nMethods to implement\n\nupdate_solver!(solver, hamiltonian, dt, force=false): Update the solver to evolve the states according to the given Hamiltonian and time step. If force is true, the solver should always update, even if the Hamiltonian and time step are seemingly the same as the previous ones.\nstep!(solver, state, cache): Evolve the given state in time using the solver. The cache argument is used to store intermediate results and can be nothing if the solver does not need it.\nevolution_cache(solver, state): Return a cache object that can be used to store intermediate results for the given state. Returns nothing if the solver does not need a cache for the given state (this is the default implementation).\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.addlookuptable","page":"Library","title":"LatticeModels.addlookuptable","text":"addlookuptable(lat)\n\nAdds a lookup table to the lattice lat and returns the lattice with the lookup table.\n\nwarning: Warning\nMake sure you add the lookup table to the lattice after you stop making changes to it. Otherwise the results may be unpredictable.This operation is not in-place.\n\n\n\n\n\n","category":"function"},{"location":"internals/","page":"Internals","title":"Internals","text":"This section contains the documentation for the internal structure of LatticeModels.jl. ","category":"page"},{"location":"internals/","page":"Internals","title":"Internals","text":"warning: Warning\nThis section of documentation is under construction. Some parts may be incomplete.","category":"page"},{"location":"internals/#Advanced-features","page":"Internals","title":"Advanced features","text":"","category":"section"},{"location":"internals/","page":"Internals","title":"Internals","text":"These features can be useful in non-trivial cases, but are not necessary for basic usage.","category":"page"},{"location":"internals/#AbstractLattice-interface","page":"Internals","title":"AbstractLattice interface","text":"","category":"section"},{"location":"internals/","page":"Internals","title":"Internals","text":"The base of LatticeModels.jl is its interfaces, allowing to define lattices with arbitrary geometry, topology and boundary conditions. The LatticeModels.AbstractLattice interface is the main interface for defining lattices.","category":"page"},{"location":"internals/","page":"Internals","title":"Internals","text":"Generally speaking, a lattice is a set of sites. Each site, in turn, has its spatial coordinates in its coords field and maybe some additional properties. It also must be a subtype of LatticeModels.AbstractSite.","category":"page"},{"location":"internals/","page":"Internals","title":"Internals","text":"Note that the bonds between sites and the boundary conditions are initially not part of the lattice, but are added to its metadata later.","category":"page"},{"location":"internals/#Basic-functions","page":"Internals","title":"Basic functions","text":"","category":"section"},{"location":"internals/#Site-lookup","page":"Internals","title":"Site lookup","text":"","category":"section"},{"location":"internals/#Mutable-lattices","page":"Internals","title":"Mutable lattices","text":"","category":"section"},{"location":"internals/#Site-properties","page":"Internals","title":"Site properties","text":"","category":"section"},{"location":"internals/#Lattice-metadata","page":"Internals","title":"Lattice metadata","text":"","category":"section"},{"location":"internals/#Shapes","page":"Internals","title":"Shapes","text":"","category":"section"},{"location":"internals/#AbstractBonds-interface","page":"Internals","title":"AbstractBonds interface","text":"","category":"section"},{"location":"internals/","page":"Internals","title":"Internals","text":"The LatticeModels.AbstractBonds interface is used to define different types of bonds between sites. Most generally speaking, such object is a mapping that decides if the sites are connected for each pair.","category":"page"},{"location":"internals/","page":"Internals","title":"Internals","text":"Note that there are three basic types of bonds in LatticeModels.jl:","category":"page"},{"location":"internals/","page":"Internals","title":"Internals","text":"LatticeModels.AbstractBonds: a most general interface. Basically, it is just a mapping from site pairs to boolean values.\nLatticeModels.DirectedBonds: this type of bonds defines a set of bonds that has a defined direction. The whole topology can be defined by the \"destination\" sites for each site. Since the bonds are usually sparse, the general performance of this type of bonds is much higher.\nLatticeModels.AbstractTranslation: this is a subtype of DirectedBonds, where every site has one or zero \"destination\" sites. This allows to increase the performance even more, and also to transform the sites in a convenient manner:","category":"page"},{"location":"internals/","page":"Internals","title":"Internals","text":"site1 = lat[!, x = 1, y = 1] # Get the site at [1, 1]\nT = Translation(lat, [1, 0]) # Translate the site by [1, 0] vector\nsite2 = site1 + T # `site2` is at [2, 1]","category":"page"},{"location":"internals/#Adapting-bonds-to-the-lattice","page":"Internals","title":"Adapting bonds to the lattice","text":"","category":"section"},{"location":"internals/#Boundary-conditions","page":"Internals","title":"Boundary conditions","text":"","category":"section"},{"location":"internals/#Diagonalizing-the-Hamiltonian","page":"Internals","title":"Diagonalizing the Hamiltonian","text":"","category":"section"},{"location":"internals/","page":"Internals","title":"Internals","text":"It is very easy to diagonalize a matrix in Julia. However, problems can arise when the matrix is of some custom type (e. g. sparse or a GPU array). By default LatticeModels.jl makes use of KrylovKit.jl to solve the eigenproblem using the Lanczos algorithm for non-trivial matrix types. However, sometimes it is necessary to use a different algorithm. The LatticeModels.diagonalize_routine is a simple way to add a new algorithm to the default toolchain.","category":"page"},{"location":"internals/#EvolutionSolvers","page":"Internals","title":"EvolutionSolvers","text":"","category":"section"},{"location":"internals/","page":"Internals","title":"Internals","text":"The LatticeModels.EvolutionSolver interface is used to solve the time-dependent Schrödinger equation. It is used in the Evolution struct to perform unitary evolution. As with the diagonalization problem, one can add a new algorithm to the default toolchain by creating a new EvolutionSolver type.","category":"page"},{"location":"internals/#Currents","page":"Internals","title":"Currents","text":"","category":"section"},{"location":"internals/","page":"Internals","title":"Internals","text":"The LatticeModels.AbstractCurrents interface allows to define different types of currents on the lattice. This allows it to be a lazy object, which computes the currents only when needed.","category":"page"},{"location":"internals/","page":"Internals","title":"Internals","text":"To implement basic currents semantics, you need to define the following methods:","category":"page"},{"location":"internals/","page":"Internals","title":"Internals","text":"LatticeModels.lattice(your_currents): returns the lattice, on which the currents are defined.\nBase.getindex(your_currents, i::Int, j::Int): returns the current between sites with numbers i and j. This is done in such a manner, because you do not usually need the site properties to calculate the currents.","category":"page"},{"location":"manual/greenfunction/#Green's-function","page":"Green's function","title":"Green's function","text":"","category":"section"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"This chapter is dedicated to the Green's function formalism. It is a powerful tool for studying many-body systems, especially in the context of condensed matter physics. The Green's function is a matrix-valued function of two variables, which can be used to calculate various physical quantities, such as the density of states or some topological invariants.","category":"page"},{"location":"manual/greenfunction/#Introduction","page":"Green's function","title":"Introduction","text":"","category":"section"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"In the scope of this package, the Green's function is defined by this formula:","category":"page"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"G_alphabeta(omega) = langle 0 hata_alpha frac1omega - (hatH - E_0) hata_beta^dagger 0 rangle - \nlangle 0 hata_alpha^dagger frac1omega + (hatH - E_0) hata_beta 0 rangle","category":"page"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"where H is the Hamiltonian of the system, 0 rangle is the ground state of the system (which is the vacuum for non-interacting systems), E_0 is its energy and hata_alpha and hata_beta are the annihilation operators of the basis states. The Green's function is a matrix-valued function of the frequency omega. Note that this is the formula for bosons — fermions are not supported yet.","category":"page"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"This is how we can calculate the Green's function in the package:","category":"page"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"julia> using LatticeModels\n\njulia> l = SquareLattice(3, 2);\n\njulia> H = tightbinding_hamiltonian(l);\n\njulia> G = greenfunction(diagonalize(H))\nGreen's function for 6-site SquareLattice in 2D space\n\njulia> G(0.1) # Evaluate the Green's function at the frequency 0.1\nEvaluated Green's function for 6-site SquareLattice in 2D space\n6×6 Matrix{ComplexF64}:\n -0.209531+0.0im 0.0321264+0.0im … -0.108521+0.0im 1.04223+0.0im\n 0.0321264+0.0im -0.209531+0.0im 1.04223+0.0im -0.108521+0.0im\n -1.05308+0.0im 0.212743+0.0im -1.05308+0.0im 0.212743+0.0im\n 0.212743+0.0im -1.05308+0.0im 0.212743+0.0im -1.05308+0.0im\n -0.108521+0.0im 1.04223+0.0im -0.209531+0.0im 0.0321264+0.0im\n 1.04223+0.0im -0.108521+0.0im … 0.0321264+0.0im -0.209531+0.0im\n\njulia> site1 = l[!, x=1, y=1]; site2 = l[!, x=2, y=2];\n\njulia> G[site1, site2]\nGreen's function element (6 â†, 0 â bands)\n\njulia> G[site1, site2](0.1) == G(0.1)[site1, site2]\ntrue","category":"page"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"Note that the Green's function is evaluated by exactly diagonalizing the Hamiltonian. This is not the most efficient way to calculate it, but it is the easiest to implement. Use brackets G[site1, site2] to get the Green's function between two sites, and call it with a frequency to evaluate it. ","category":"page"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"Note the three main types that provide the Green's function functionality:","category":"page"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"The GreenFunction, which is the main type for Green's functions. It stores the diagonalized Hamiltonian in an efficient way to optimize the Green's function calculation. Can be indexed with sites and called with a frequency.\nThe GreenFunctionElement, which is an element of the Green's function matrix. It stores the bands that correspond to the Green's function element. Can be called with a frequency.\nThe GreenFunctionEval, which is the result of the Green's function evaluation. It stores the evaluated Green's function and the lattice it corresponds to. Can be indexed with sites.","category":"page"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"Thus, G[site1, site2] creates a GreenFunctionElement object, while G(0.1) creates a GreenFunctionEval object. This explains why G[site1, site2](0.1) is the same as G(0.1)[site1, site2], but the former is more efficient — it doesn't have to evaluate the whole Green's function matrix.","category":"page"},{"location":"manual/greenfunction/#Many-body-Green's-function","page":"Green's function","title":"Many-body Green's function","text":"","category":"section"},{"location":"manual/greenfunction/#Density-of-states","page":"Green's function","title":"Density of states","text":"","category":"section"},{"location":"manual/hamiltonian/#Systems-and-Hamiltonians","page":"Constructing the Hamiltonian","title":"Systems and Hamiltonians","text":"","category":"section"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"This section describes how to define the Hamiltonian of a system. The system, in this context, is a lattice, a basis describing on-site degrees of freedom, and some additional parameters like temperature or chemical potential.","category":"page"},{"location":"manual/hamiltonian/#Defining-the-system","page":"Constructing the Hamiltonian","title":"Defining the system","text":"","category":"section"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"First of all, we need to define the system. This is done by calling System. For example, if we want to create non-interacting fermions with spin 1/2, zero chemical potential and temperature 1, we can do the following:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"using LatticeModels, Plots\nl = SquareLattice(4, 4);\nsys = System(l, SpinBasis(1//2), μ = 0, T = 1)\nH = tightbinding_hamiltonian(sys)\nP = densitymatrix(H, info=false)\nheatmap(localdensity(P))","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"In this case we have created a system with defined chemical potential and temperature. Note that you can use mu instead of μ if you prefer (or if you are using a non-UTF8 compatible editor). The tightbinding_hamiltonian function creates a tight-binding Hamiltonian for the given system, and the densitymatrix function calculates the density matrix.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"The first two arguments of the System constructor are the lattice and the basis of the on-site degrees of freedom. The latter can be any QuantumOptics.Basis object — refer to the QuantumOptics.jl documentation for more information. Omit the second argument if you don't have any on-site degrees of freedom.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"Here are all parameters that can be passed to the System constructor:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"mu or μ: the chemical potential of the system.\nN: set this instead of mu to fix the number of particles — the chemical potential will be calculated automatically. Setting both N and mu will raise an error.\nstatistics: the statistics of the particles, either FermiDirac or BoseEinstein. If not set, the statistics is FermiDirac if mu or N is set, and Gibbs otherwise (i.e. the system consist of one particle).\nT: the temperature of the system. The default is 0.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"Note that you can pass the very same arguments directly to the tightbinding_hamiltonian. Also keyword arguments can be passed to the densitymatrix function — they will be used to evaluate the distribution function. These lines are equivalent to the previous example:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"H = tightbinding_hamiltonian(l, SpinBasis(1//2))\nP = densitymatrix(H, μ = 0, T = 1, info = false)","category":"page"},{"location":"manual/hamiltonian/#Basic-tight-binding-Hamiltonian","page":"Constructing the Hamiltonian","title":"Basic tight-binding Hamiltonian","text":"","category":"section"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"The tightbinding_hamiltonian function creates a basic tight-binding Hamiltonian defined by this formula:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"H = t_1 sum_langle i j rangle c_i^dagger c_j + texthc + \n t_2 sum_langlelangle i j ranglerangle c_i^dagger c_j + texthc + \n t_3 sum_langlelanglelangle i j rangleranglerangle c_i^dagger c_j + texthc +\n ldots","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"where c_i^dagger and c_i are the creation and annihilation operators on site i. The t_1, t_2 and t_3 are responsible for the hopping between the nearest, next-nearest, etc. neighbors. Note that they can be factors or operators that act on the on-site degrees of freedom.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"By default only the nearest-neighbor hopping is included, all other factors are zero. You can set them to any value you want using the t1, t2, t3, keyword arguments:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"sz = sigmaz(SpinBasis(1//2))\nH2 = tightbinding_hamiltonian(sys, t1 = sz, t2 = [1 0; 0 -1], t3 = -0.5)\nP2 = densitymatrix(H2, info=false)\nheatmap(localdensity(P2))","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"Here sz is the operator that projects the spin on the z axis. Note that we can use a matrix instead, how we did with t2: in this case it will be interpreted as the hopping operator acting on the on-site degrees of freedom.","category":"page"},{"location":"manual/hamiltonian/#The-constructor-function","page":"Constructing the Hamiltonian","title":"The constructor function","text":"","category":"section"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"There are many cases where more complex Hamiltonians are needed. In this case, you can use the construct_hamiltonian function. This function takes a system and several arguments, each describing a term in the Hamiltonian. As an example, let's consider the same Hamiltonian as in the previous example:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"using LatticeModels, Plots\nl = SquareLattice(4, 4)\nspin = SpinBasis(1//2)\nsys = System(l, spin, μ = 0, T = 1)\n\nsz = sigmaz(spin)\nH = construct_hamiltonian(sys, \n sz => NearestNeighbor(1),\n [1 0; 0 -1] => NearestNeighbor(2),\n -0.5 => NearestNeighbor(3))\nP = densitymatrix(H, info=false)\nheatmap(localdensity(P))","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"Basically, every term is a pair of an operator acting on the on-site degrees of freedom and an object describing the lattice part. The lattice part can be one of the following:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"On-site term: sum_i t_i c_i^dagger c_i. In this case, the operator is applied to every site.\nA single site describes a single t_i c_i^dagger c_i term. A convenient way to create an on-site potential.\nA LatticeValue object describes the t_i coefficients for every site.\nHopping term: sum_langle i j rangle t_ij c_i^dagger c_j + hc. Terms like this are used to describe the hopping between different sites.\nA single site1 => site2 pair describes a single hopping term between site1 and site2.\nAn AbstractBonds object describes the hopping topology. See the Adjacency and boundary conditions section for more information on them.\nArbitrary operator: any QuantumOptics.Operator object can be passed as a term, in which case it will be automatically embedded into the Hamiltonian.\nNote that a matrix can be passed as an operator, in which case it will be interpreted as one acting on the on-site degrees of freedom. To act on the lattice, use Operator(l, matrix) — this will create a lattice operator that acts on the lattice l with the given matrix.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"To showcase the flexibility of the construct_hamiltonian function, let's consider a more complex example. We will create a Hamiltonian of the QWZ model of a topological insulator (on a square lattice).","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"The QWZ model Hamiltonian is defined by the following formula:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"hatH =\nsum_i^textsites m_i c^dagger_i sigma_z c_i +\nsum_i^textsites left(\nc^dagger_i + hatx fracsigma_z - i sigma_x2 c_i +\nc^dagger_i + haty fracsigma_z - i sigma_y2 c_i +\nh c right)","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"We will take m_i = 1 and add some disorder to the on-site term. Also we will add electric field in the x direction, local on-site potential on site at (2 2) and a new hopping term between the next-nearest neighbors.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"To do this, we need to create the Hamiltonian like this:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"using LatticeModels, Plots\nl = SquareLattice(4, 4)\nspin = SpinBasis(1//2)\nsys = System(l, spin, μ = 0, T = 1)\n\nsx, sy, sz = sigmax(spin), sigmay(spin), sigmaz(spin)\nsite = l[!, x = 2, y = 2]\nx = LatticeValue(l, :x)\nE = 0.1 # Electric field strength\n\nH = construct_hamiltonian(sys,\n sz => 1 .+ 0.1 .* randn(l), # Random on-site potential\n (sz - im * sx) / 2 => Bravais[1, 0], # x-direction hoppings\n (sz - im * sy) / 2 => Bravais[0, 1], # y-direction hoppings\n 0.5 => site, # Local potential on site (2, 2)\n E * x, # Electric field in the x direction\n 0.1 => NearestNeighbor(2)) # Next-nearest neighbor hopping\n\nP = densitymatrix(H, info=false)\nheatmap(localdensity(P))","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"Note that the qwz function can be used to create the QWZ Hamiltonian in a more convenient way. The construct_hamiltonian function is more flexible and can be used to create any Hamiltonian you want.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"note: Note\nThe construct_hamiltonian function creates a Hamiltonian object, which is a QuantumOptics.Operator object, but with some additional info like particle statistics or chemical potential. You can use it as a regular operator, but if you encounter any problems, you can always convert it to a regular operator using the Operator function or by calling construct_operator instead of construct_hamiltonian.","category":"page"},{"location":"manual/hamiltonian/#The-operator-builder","page":"Constructing the Hamiltonian","title":"The operator builder","text":"","category":"section"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"The construct_hamiltonian function is a convenient way to create Hamiltonians, but it is sometimes more convenient to set all the individual c_i^dagger c_j terms manually. This can be done using the OperatorBuilder object.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"Here is an example of how to create the same Hamiltonian as in the previous example using the OperatorBuilder:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"using LatticeModels, Plots\nl = SquareLattice(4, 4)\nspin = SpinBasis(1//2)\nsys = System(l, spin, μ = 0, T = 1)\n\nsx, sy, sz = sigmax(spin), sigmay(spin), sigmaz(spin)\nbuilder = OperatorBuilder(sys, auto_hermitian = true)\nfor site in l\n site_x = site + Bravais[1, 0]\n site_y = site + Bravais[0, 1]\n builder[site, site] = (1 + 0.1 * randn()) * sz\n builder[site, site_x] = (sz - im * sx) / 2\n builder[site, site_y] = (sz - im * sy) / 2\n\n builder[site, site] += 0.5 * E * site.x\n for site2 in adjacentsites(NearestNeighbor(l, 2), site)\n # note that the coefficient is 0.05, not 0.1, because every bond is counted twice\n builder[site, site2] += 0.05 \n end\nend\n\nc_site = l[!, x = 2, y = 2]\nbuilder[c_site, c_site] += 0.5 # Added local potential on site (2, 2)\n\nH2 = Hamiltonian(builder)\nP = densitymatrix(H, info=false)\nheatmap(localdensity(P))","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"Note that builder[site1, site2] is not a regular indexing operation. The return value of it is not an matrix or operator, but rather a special object that makes increment/decrement operations possible. Do not use this value in other contexts.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"tip: Tip\nUse FastOperatorBuilder instead of OperatorBuilder if you need to create a large Hamiltonian. It is a little bit faster, but doesn't support direct assignment builder[site, site] = ...; use += or -= instead.","category":"page"},{"location":"manual/hamiltonian/#Gauge-fields","page":"Constructing the Hamiltonian","title":"Gauge fields","text":"","category":"section"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"There is a convenient way to add gauge fields to the Hamiltonian, and it is done by using the GaugeField objects. It is an interface for different types of gauge fields, like the Landau gauge. To add field to the Hamiltonian, use the field keyword argument:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"using LatticeModels, Plots\nl = SquareLattice(4, 4)\nH = tightbinding_hamiltonian(l, field=LandauGauge(0.1))\nP = densitymatrix(H, info=false)\nheatmap(localdensity(P))","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"This adds a magnetic field in the Landau gauge to the Hamiltonian: overrightarrowmathcalA = B x overrightarrowe_y. It adds a phase factor to the hopping terms, which is calculated using Peierls substitution.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"Here are all types of gauge fields supported by this package:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"LandauGauge(B) — the Landau gauge, with the magnetic field B in the z direction.\nSymmetricGauge(B) — the symmetric gauge, with the magnetic field B in the z direction.\nPointFlux(Phi, center=(0, 0); gauge=:axial) — a point flux in the point center with the flux Phi. The gauge argument can be either :axial (default) or :singular.\nGaugeField(f; n) — a general magnetic field. The f is a function that takes a coordinate vector and returns the vector potential mathcalA at this point. The line integrals are calculated using the n-point trapezoidal rule. Note that the n must be set explicitly.\nLineIntegralGaugeField(f) — a general magnetic field. The f is a function that takes two coordinate vectors and returns the int_vecr_1^vecr_2 mathcalA cdot dvecr line integral of the vector potential between these points.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"Different types of fields can be added together:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"julia> using LatticeModels\n\njulia> f1 = LandauGauge(0.1)\nLandau gauge uniform field; B = 0.1 flux quanta per 1×1 area\n\njulia> f2 = SymmetricGauge(0.2)\nSymmetric gauge uniform field; B = 0.2 flux quanta per 1×1 area\n\njulia> f3 = PointFlux(0.3, (0.5, 0.5))\nPoint flux field through point (0.5, 0.5), axial gauge; Φ = 0.3 flux quanta\n\njulia> f1 + f2 + f3\nLandauGauge(0.1) + SymmetricGauge(0.2) + PointFlux(0.3, (0.5, 0.5); gauge=:axial)","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"You can pass these objects using the field keyword argument to the tightbinding_hamiltonian, construct_hamiltonian, and OperatorBuilder functions to add the gauge field to the Hamiltonian:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"builder = OperatorBuilder(l, auto_hermitian = true, field = LandauGauge(0.1) + PointFlux(0.3, (0.5, 0.5)))\nfor site in l\n site_x = site + Bravais[1, 0]\n site_y = site + Bravais[0, 1]\n builder[site, site_x] = 1\n builder[site, site_y] = 1\nend\nH2 = Hamiltonian(builder)\nH2 == tightbinding_hamiltonian(l, field=LandauGauge(0.1) + PointFlux(0.3, (0.5, 0.5)))","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"To find out more about operators, diagonalization and observables, proceed to the next section.","category":"page"},{"location":"manual/latticevalue/#Working-with-LatticeValues","page":"Working with 'LatticeValue's","title":"Working with LatticeValues","text":"","category":"section"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"This chapter introduces the LatticeValue type, which describes a value defined on the sites of a lattice. LatticeValue implements the AbstractArray interface and is used to represent quantities such as the magnetization or local density of a state.","category":"page"},{"location":"manual/latticevalue/#Basics","page":"Working with 'LatticeValue's","title":"Basics","text":"","category":"section"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"The LatticeValue type is actually a wrapper around a Vector of values, where each value is associated with a site of the lattice. Working with LatticeValue is very similar to working with a Vector, but with some additional functionality.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"using LatticeModels, Plots\n\nl = SquareLattice(-2:2, -2:2)\nx = coordvalue(l, :x) # get the x coordinate of the lattice sites\nv = zeros(Int, l) # create a lattice value with zeros\nv[x = 1 .. 2, y = 1 .. 2] = x # set the value to the x coordinate on the top right\nv[x = -2 .. 0] .= 3 # set the value to 3 on the left half of the lattice\nr = randn(l) # create a random lattice value (normal distribution)\nv2 = v .^ 2 .+ r # broadcast operations work as expected\nheatmap(v2)","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"The LatticeValue type implements basic vector creation operations: zero, zeros, one, ones, rand, randn, fill, copy. Slices and views are also supported.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"There are also other AbstractVector methods you can use:","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"sum(abs2, v2)\nextrema(v2)\nargmax(v2)\nms = findall(x -> x < 3, v2)\nv2[first(ms)]","category":"page"},{"location":"manual/latticevalue/#Indexing-and-slicing","page":"Working with 'LatticeValue's","title":"Indexing and slicing","text":"","category":"section"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"Let's talk a bit more about the indexing and slicing of LatticeValue. There are several ways to index a LatticeValue. The return value in this case is either a scalar or another LatticeValue with a narrowed domain. The following indexing methods are supported:","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"v[site] returns the value at site site.\nv[[site1, site2, ...]] returns a LatticeValue with the values at the specified sites. site1, site2, etc. are single sites grouped into an abstract array. The return value is a LatticeValue with the same values but narrowed to the specified sites.\nv[lat] returns a LatticeValue with the same values but narrowed to the sites of lattice lat. lat here must be a lattice, which is a subset of the lattice of v.\nv[mask] returns a LatticeValue with the same values but narrowed to the sites where mask is true. mask here must be a LatticeValue of Bool type, defined on the same (or a superset of the) lattice.\nv[x = 1 .. 2, y = 1 .. 2] returns a LatticeValue with the same values but narrowed to the sites where the x coordinate is in the range 1 .. 2 and the y coordinate is in the range 1 .. 2. The keyword arguments here must be the names of the site parameters (see Sites), and the values can be any containers or single values. Pair notation is also supported: v[Coord(1) => 1 .. 2, Coord(2) => 1 .. 2].","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"This indexing is valid for both reading and writing. Remember, however, that the right-hand side of the assignment must be a LatticeValue or a scalar value (in which case the destination site must be a single site, otherwise an error will be thrown). ","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"Therefore, l[x=1, y=1] = 1 is not a valid assignment, because the left-hand side can contain multiple sites[1] (for example, if it is a 3D lattice). But l[!, x=1, y=1] = 1 is a valid assignment — adding ! to the index means that the left-hand side is a single site.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"[1]: This is somewhat similar to the behavior of arrays in Julia: v[1:1] = 1 will throw an error, even though the left-hand side is a single-element array.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"note: Note\nThe same indexing methods can be used to slice a lattice, a GreenFunction, a Currents object or a TimeSequence.","category":"page"},{"location":"manual/latticevalue/#Iteration-and-broadcasting","page":"Working with 'LatticeValue's","title":"Iteration and broadcasting","text":"","category":"section"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"You can consider a LatticeValue as a vector of values, with its indices being the sites of the lattice. Therefore, iterating over v will yield the values of the LaticeValue, and eachindex(v) will return the lattice it is defined on.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"Broadcasting operations work as expected. For example, v .+ 1 will add 1 to each value of v, and v .+ r will add the corresponding values of v and r. However, there are some limitations: you cannot broadcast a LatticeValue with anything other than a scalar or another LatticeValue. Also the lattices must be the same, otherwise an error will be thrown.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"using LatticeModels\nl = SquareLattice(4, 4);\nx, y = coordvalues(l)\nv = zeros(l)\nv[x .< y] = x # This will work\nv[y = 1] .= 1 # This will work\nv[x .> y] .= y # This will not work - RHS on a different lattice\nv[x = 1] .= [1, 2, 3, 4] # This will not work - RHS is a vector","category":"page"},{"location":"manual/latticevalue/#Common-operations","page":"Working with 'LatticeValue's","title":"Common operations","text":"","category":"section"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"There are several common use-cases for the LatticeValue type. We will discuss some of them here.","category":"page"},{"location":"manual/latticevalue/#External-parameter-of-a-system","page":"Working with 'LatticeValue's","title":"External parameter of a system","text":"","category":"section"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"In many cases, you need to define a parameter that depends on the site that is used in the Hamiltonian. For example, the on-site potential in the tight-binding model. You can use LatticeValue for this purpose.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"using LatticeModels\nl = SquareLattice(4, 4)\nv = zeros(l)\nv[y = 0 .. 2] .= 1.0 # add a potential barrier\nH = tightbinding_hamiltonian(l, v, t1=-1.0) # create a tight-binding Hamiltonian","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"Here v is a LatticeValue that represents the on-site potential. In other models you can use it to represent the magnetic field, for example: see qwz.","category":"page"},{"location":"manual/latticevalue/#Wavefunctions","page":"Working with 'LatticeValue's","title":"Wavefunctions","text":"","category":"section"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"In some cases you need a custom-defined wavefunction. You can use LatticeValue for this purpose.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"using LatticeModels\nl = SquareLattice(10, 10)\nx, y = coordvalues(l)\nspin = SpinBasis(1//2) # create a spin basis\ngauss = @. exp(-0.5 * ((x - 5) ^ 2 + (y - 5) ^ 2)) # create a Gaussian\nwave = @. exp(im * (x + y)) # create a plane wave\nψ = basisstate(spin, 1) ⊗ (@. gauss .* wave) + \n basisstate(spin, 2) ⊗ (@. gauss * conj(wave))","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"Here ψ is a QuantumOptics.Ket wavefunction. In this example it is a superposition of two states with opposite spins and different momenta.","category":"page"},{"location":"manual/latticevalue/#Processing-data","page":"Working with 'LatticeValue's","title":"Processing data","text":"","category":"section"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"Many observables like local density are returned as a LatticeValue. You can process it quite easily.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"using LatticeModels, Statistics\nl = HoneycombLattice(Hexagon(), sites=120)\nH = tightbinding_hamiltonian(l, t1=-1.0) # create a tight-binding Hamiltonian\ndens = localdensity(groundstate(H)) # calculate the local density of the ground state\nbulk = l[x = 2 .. 9, y = 2 .. 9]\nedge = setdiff(l, bulk)\nprintln(\"Average local density in the bulk: \", mean(dens[bulk]))\nprintln(\"Average local density on the edge: \", mean(dens[edge]))","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"The average local density in the bulk is much higher than on the edge, as expected.","category":"page"},{"location":"manual/latticevalue/#Visualization","page":"Working with 'LatticeValue's","title":"Visualization","text":"","category":"section"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"One key feature of LatticeValue is that it can be visualized using the Plots.jl package. There are several ways to do it.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"The \"classical\" way is just to use the plot function. The result will be a scatter plot of the lattice sites with the value of the LatticeValue as the color and size of the markers.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"Let us continue with the previous example:","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"using Plots\nplot(dens)","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"This is the default behavior. You can customize the plot as usual with Plots.jl — for example, you can change the colormap, the marker size, etc. You can also set markerscale=false to disable the scaling of the marker size by the value of the LatticeValue:","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"# Dark theme makes everything look cooler\nplot(dens, markerscale=false, markersize=12, c=:inferno, \n title=\"Local density of the ground state\", bg=:black)","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"Another way to visualize a LatticeValue is to use the shape plot seriestype=:shape, or heatmap function. This will create a tile plot of the lattice sites with the value of the LatticeValue as the color of the tiles.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"heatmap(dens, title=\"Local density of the ground state\")","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"You can also use pass shape=:circle to create a scatter plot with large circles instead of the default markers. The difference here is that the size of the circles will scale with the plot, unlike the markers in the scatter plot. markerscale is also supported here, but by default it is set to false.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"Let's showcase all of these options:","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"p = plot(size=(1000, 850), layout=(2, 2))\nheatmap!(p[1], dens, title=\"Hexagons, no scale\")\nheatmap!(p[2], dens, markerscale=true, title=\"Hexagons, scale\")\nheatmap!(p[3], dens, shape=:circle, title=\"Circles, no scale\")\nheatmap!(p[4], dens, shape=:circle, markerscale=true, title=\"Circles, scale\")","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"tip: Tip\nThe shape plot is slower than the scatter plot, because it creates a separate shape for each site. If you are creating an animation or a large plot, you may want to use the scatter plot with custom-shaped markers instead.","category":"page"},{"location":"examples/#Examples","page":"Examples","title":"Examples","text":"","category":"section"},{"location":"examples/#Lowest-states-in-a-tight-binding-model","page":"Examples","title":"Lowest states in a tight-binding model","text":"","category":"section"},{"location":"examples/","page":"Examples","title":"Examples","text":"The tight-binding model Hamiltonian is defined by this formula (the sum is performed over adjacent sites):","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"hatH = sum_i j^textsites left( c^dagger_i c_j + h c right)","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"Here we take a square lattice and build a Hamiltonian for it. Then we find its eigenstates and plot their local density on heatmaps.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"using LatticeModels\nusing Plots\n# Generate a 40x40 square lattice\nl = SquareLattice(40, 40)\n# Define the tight-binding model Hamiltonian\nH = tightbinding_hamiltonian(l)\n\n# Calculate eigenvalues and eigenvectors\ndiag = diagonalize(H)\n\nn = 5\nclims = (0, 0.0045)\np = plot(layout = @layout[grid(n, n) a{0.1w}], size=(1000, 850))\nfor i in 1:n^2\n E_rounded = round(diag.values[i], sigdigits=4)\n plot!(p[i], localdensity(diag[i]), title=\"\\$E_{$i} = $E_rounded\\$\", st=:shape, \n clims=clims, c=:inferno, cbar=:none, lw=0, framestyle=:none, xlab=\"\", ylab=\"\")\nend\n\n# The following lines are kinda hacky; they draw one colorbar for all heatmaps\nplot!(p[n^2+1], framestyle=:none)\nscatter!([NaN], zcolor=[NaN], clims=clims, leg=:none, cbar=:right, subplot=n^2+2, \n background_subplot=:transparent, framestyle=:none, inset=bbox(0.0, 0.05, 0.95, 0.9))\nsavefig(\"local_density.png\")\nnothing # hide","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"(Image: )","category":"page"},{"location":"examples/#Currents-on-a-ring-shaped-sample","page":"Examples","title":"Currents on a ring-shaped sample","text":"","category":"section"},{"location":"examples/","page":"Examples","title":"Examples","text":"In this example we create a ring-shaped sample of a triangular lattice. Then we adiabatically turn on magnetic field through the hole and see currents emerge.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"using LatticeModels\nusing Plots\n\nl = TriangularLattice(Circle(10), !Circle(5))\nremovedangling!(l)\nh(B) = tightbinding_hamiltonian(l, field=PointFlux(B))\ndiag = diagonalize(h(0))\n\n# Find density matrix for filled bands (e. g. energy < 0)\nP_0 = densitymatrix(diag, mu = 0)\n# Perform unitary evolution\nτ = 10\nev = Evolution(t -> h(0.1 * min(t, τ) / τ), P_0)\nanim = @animate for state in ev(0:0.1:2τ)\n P, H, t = state\n # Find the density and plot it\n p = plot(layout=2, size=(1000, 500))\n plot!(p[1], localdensity(P), clims=(0, 1), st=:shape)\n\n # Show currents on the plot\n plot!(p[2], DensityCurrents(H, P), clims=(0, 0.005), lw=1, arrowheadsize=0.3)\n plot!(plottitle=\"t = $t\")\nend\n\ngif(anim, \"adiabatic_flux.gif\")","category":"page"},{"location":"examples/#Time-sequences","page":"Examples","title":"Time sequences","text":"","category":"section"},{"location":"examples/","page":"Examples","title":"Examples","text":"In this example we will see how to use TimeSequence to store and manipulate time-dependent data.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"We will calculate the evolution of a ground state of a tight-binding model after a magnetic field is turned on. We will store the local density at each time step and use it to plot the local density depending on time, as well as its time derivative and integral over time.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"using LatticeModels, Plots\n\nl = SquareLattice(20, 20)\nH = tightbinding_hamiltonian(l)\npsi_0 = groundstate(H)\nH1 = tightbinding_hamiltonian(l, field=LandauGauge(0.1))\nev = Evolution(H1, psi_0)\n\ndensities = TimeSequence{LatticeValue}()\nfor (psi, _, t) in ev(0:0.1:10)\n densities[t] = localdensity(psi)\nend\n\nsite_bulk = l[!, x = 10, y = 10]\nsite_edge = l[!, x = 10, y = 1]\nds_bulk = densities[site_bulk]\nds_edge = densities[site_edge]\nplot(ds_bulk, label=\"ρ(t) (bulk)\")\nplot!(differentiate(ds_bulk), label=\"dρ(t)/dt (bulk)\")\nplot!(ds_edge, label=\"ρ(t) (edge)\")\nplot!(integrate(ds_edge), label=\"∫ρ(t)dt (edge)\")","category":"page"},{"location":"examples/#Hofstadter-butterfly","page":"Examples","title":"Hofstadter butterfly","text":"","category":"section"},{"location":"examples/","page":"Examples","title":"Examples","text":"The Hofstadter butterfly is a fractal-like structure that appears when the tight-binding model is subjected to a magnetic field. It is a plot of the energy spectrum as a function of the magnetic flux through the unit cell.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"To create the Hofstadter butterfly, we will use the Landau gauge for the magnetic field. Note that we have to set periodic boundary conditions, and to make them compatible with the gauge field, they should be tweaked a little:","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"psi(x + L_x y) = psi(x y) e^2pi i B y L_x\npsi(x y + L_y) = psi(x y)","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"Let us plot the Hofstadter butterfiles for square, triangular and honeycomb lattices. The magnetic field field will be changed from zero to one phi_0 flux quantum per plaquette.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"using LatticeModels, Plots\n\nfunction get_butterfly(l, lx, ly, plaquette_area)\n xs = Float64[]\n ys = Float64[]\n area = lx * ly\n dflux = 1 / area\n totflux = 1 / plaquette_area\n for B in 0:dflux:totflux\n # magnetic boundary conditions\n f(site) = exp(2pi * im * B * site.y * lx)\n lb = setboundaries(l, [lx, 0] => f, [0, ly] => true)\n H = tightbinding_hamiltonian(lb, field=LandauGauge(B))\n dg = diagonalize(H)\n append!(xs, fill(B, length(dg.values)))\n append!(ys, dg.values)\n end\n return xs, ys\nend\n\np = plot(layout = @layout[a b; _ c{0.5w} _], size=(800, 500), leg=false,\n xlabel=\"B\", ylabel=\"E\")\nscatter!(p[1], title=\"Square lattice\",\n get_butterfly(SquareLattice(10, 10), 10, 10, 1), ms=1)\nscatter!(p[2], title=\"Triangluar lattice\",\n get_butterfly(TriangularLattice(10, 10), 10, 5 * sqrt(3), sqrt(3) / 4), ms=1)\nscatter!(p[3], title=\"Honeycomb lattice\",\n get_butterfly(HoneycombLattice(10, 10), 10, 5 * sqrt(3), sqrt(3) / 2), ms=1)\nsavefig(\"hofstadter_butterfly.png\")\nnothing # hide","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"(Image: )","category":"page"},{"location":"examples/#LDOS-animation","page":"Examples","title":"LDOS animation","text":"","category":"section"},{"location":"examples/","page":"Examples","title":"Examples","text":"Local density can be a bit ambiguous for degenerate eigenstates. That's where the LDOS (e. g. the Local Density of States) will be helpful.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"The formula for the LDOS is the following:","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"textLDOS_alpha(E) = textIm G_alphaalpha(E - idelta)","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"where G is the Green's function and delta is the broadening.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"Let's create an animation presenting the DOS and LDOS for a square lattice with a hole indside. We will use the QWZ model hamiltonian, because it has a two-zone band structure, which will make the results more interesting. See qwz for more information about the QWZ model.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"using LatticeModels\nusing Plots\nl = SquareLattice(20, 20)\nl_center = l[j1 = 8 .. 13, j2 = 8 .. 13]\nsetdiff!(l, l_center) # remove the center\nH = qwz(l)\n\ndg = diagonalize(H)\nδ = 0.1\nEs = -4:0.1:4\nEs_d = -4:0.01:4\nG = greenfunction(dg)\nanim = @animate for E in Es\n print(\"\\rE = $E\") # hide\n p = plot(layout=2, size=(800, 400))\n plot!(p[1], Es_d, dos(G, broaden=δ), lab=\"\", title=\"DOS\")\n vline!(p[1], [E], lab=\"\")\n plot!(p[2], ldos(G, E, broaden=δ), st=:shape, \n c=:inferno, clims=(0, NaN), title=\"LDOS\", lw=0)\n plot!(p, plot_title=\"E = $E, δ = $δ\")\nend\n\ngif(anim, \"ldos_animation.gif\", fps=10)","category":"page"},{"location":"#LatticeModels.jl","page":"Home","title":"LatticeModels.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"This package provides a set of tools to simulate different quantum lattice systems.","category":"page"},{"location":"#Installation","page":"Home","title":"Installation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Paste the following line into the Julia REPL:","category":"page"},{"location":"","page":"Home","title":"Home","text":"]add https://github.com/aryavorskiy/LatticeModels.jl","category":"page"},{"location":"","page":"Home","title":"Home","text":"or","category":"page"},{"location":"","page":"Home","title":"Home","text":"import Pkg; Pkg.add(url=\"https://github.com/aryavorskiy/LatticeModels.jl\")","category":"page"},{"location":"","page":"Home","title":"Home","text":"compat: Compat\nThis package has tested compatibility with Julia v1.6. Use with caution on lower versions.","category":"page"},{"location":"#Package-features","page":"Home","title":"Package features","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Bravais lattices with arbitrary geometry or boundary conditions.\nPowerful operator generation tools.\nBackend-independent computations: linear operators can be of any array type, allowing to use sparse or GPU arrays when needed.\nManybody computations.\nSmart unitary evolution reducing excessive computations where possible.\nSupports visualization with Plots.jl.\nCompatible with QuantumOptics.jl.","category":"page"},{"location":"#Similar-packages","page":"Home","title":"Similar packages","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Packages such as Quantica.jl, pybinding and Kwant provide similar functionality. However, they are in general designed for other purposes and lack some features that are present in LatticeModels.jl:","category":"page"},{"location":"","page":"Home","title":"Home","text":"Schrödinger equation solvers with time-dependent Hamiltonians. Only Kwant provides similar functionality with its Tkwant module, but it lacks the performance and flexibility in some cases.\nConvenient tools for setting periodic boundary conditions and gauge fields. The only way to do this in Kwant or Pybinding is to manually set the hopping values.\nA flexible interface for defining new types of lattices and bonds. Random lattices can be implemented on top of GenericLattice with ease.\nManybody computations. LatticeModels.jl can handle manybody systems with particle interaction.","category":"page"},{"location":"","page":"Home","title":"Home","text":"Overall, while Kwant and pybinding are mostly focused on quantum transport problems and Quantica.jl is designed to find various properties of lattices, LatticeModels.jl focuses on dynamic simulations.","category":"page"},{"location":"#Usage-example","page":"Home","title":"Usage example","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"This simple code plots local density for lowest energy states of a square tight-binding lattice.","category":"page"},{"location":"","page":"Home","title":"Home","text":"using LatticeModels, Plots\n\nl = SquareLattice(40, 40)\nH = tightbinding_hamiltonian(l)\ndiag = diagonalize(H)\n\nn = 5\nclims = (0, 0.0045)\np = plot(layout = @layout[ grid(n, n) a{0.1w}], size=(1000, 850))\nfor i in 1:n^2\n # Plot local density on each subplot\n E_rounded = round(diag.values[i], sigdigits=4)\n plot!(p[i], localdensity(diag[i]), title=\"\\$E_{$i} = $E_rounded\\$\", st=:shape, \n clims=clims, c=:inferno, cbar=:none, lw=0, framestyle=:none, xlab=\"\", ylab=\"\")\nend\n\n# The following lines are kinda hacky; they draw one colorbar for all heatmaps\nplot!(p[n^2+1], framestyle=:none)\nscatter!([NaN], zcolor=[NaN], clims=clims, leg=:none, cbar=:right, subplot=n^2+2, \n framestyle=:none, inset=bbox(0.0, 0.05, 0.95, 0.9), background_subplot=:transparent)\nsavefig(\"example.png\")\nnothing # hide","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: )","category":"page"},{"location":"","page":"Home","title":"Home","text":"See more examples in the Examples section.","category":"page"},{"location":"manual/operators/#States-and-Operators","page":"States and Operators","title":"States and Operators","text":"","category":"section"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"In the previous chapter we have seen how to define a Hamiltonian for a lattice model. In this chapter we will see how to work with other types of operators, such as measurements and diagonalizing.","category":"page"},{"location":"manual/operators/#Builtins","page":"States and Operators","title":"Builtins","text":"","category":"section"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"There are some basic building blocks that can be used to create states and operators. These are the basisstate, diagonaloperator and transition functions, taken from QuantumOptics.jl package, but extended to work with lattices.","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"The basisstate function creates a state vector with a in the basis of a lattice. Normally it takes a QuantumOptics.Basis and an index as arguments, and returns a Ket object. However, you can use a lattice and a site as arguments to create a state vector in the basis of the lattice:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"using LatticeModels\nl = SquareLattice(6, 6);\nsite = l[!, x = 3, y = 3]\nl_bas, ind = LatticeBasis(l), site_index(l, site);\npsi1 = basisstate(l_bas, ind); # The pure QuantumOptics.jl way\npsi2 = basisstate(l, site); # The LatticeModels.jl way\npsi1 == psi2","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"If you work in a composite system (e. g. a lattice with a spin degree of freedom), you can construct the state as tensor product of the states for each subsystem:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"spin = SpinBasis(1//2)\npsi_composite = basisstate(spin, 1) ⊗ basisstate(l, site) # Note the order!","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"note: Note\nThe order of the tensor product is important. The first argument is the on-site degrees of freedom, and the second is the lattice. This convention is consistent in the rest of the package — the reason behind this is performance of construct_operator and OperatorBuilder.If this order is not followed, you will probably get an error somewhere in your calculations.","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"The diagonaloperator function creates a diagonal operator in the basis of a lattice. Normally it takes a QuantumOptics.Basis and a vector of values (or a single value) as arguments, and returns an Operator object. There are several convenient ways to use this function with lattices. As an example let's consider the position operator in the basis of a lattice:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"xval = coordvalue(l, :x)\nX_1 = diagonaloperator(l_bas, xval.values); # The pure QuantumOptics.jl way\nX_2 = diagonaloperator(l, :x); # The LatticeModels.jl way, with a site property\nX_3 = diagonaloperator(xval); # The LatticeModels.jl way, with a LatticeValue\nX_1 == X_2 == X_3","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"This notation allows converting any LatticeValue or Site parameter to an operator. Hence, diagonaloperator(l, Coord(1)) is also valid and will return the same operator.","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"tip: Tip\nGenerally, a good value to create a custom diagonal operator is by using the LatticeValue approach. Consider this example: in the Haldane model the diagonal part is m on the A sublattice and -m on the B sublattice. You can create this operator with the following code:l = HoneycombLattice(6, 6)\nm = 3\nms = LatticeValue(l) do site\n site.index == 1 ? m : -m\nend\nOp = diagonaloperator(ms)","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"Also note the coordoperator and coordoperators functions that do the same thing as coordvalue and coordvalues, but return the operator instead of the value:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"X, Y = coordoperators(l);\nX == X_1","category":"page"},{"location":"manual/operators/#Measurements","page":"States and Operators","title":"Measurements","text":"","category":"section"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"The most common type of measurements is the local density: the average number of particles at each site. This can be calculated using the localdensity function — it takes a state (a QuantumOptics.Ket vector or a QuantumOptics.Operator representing the density matrix) and returns a LatticeValue with the density at each site.","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"using LatticeModels, Plots\nl = GrapheneRibbon(6, 4)\nH = tightbinding_hamiltonian(l)\nd = localdensity(groundstate(H))\nplot(d)","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"The localdensity function uses the following formula to calculate the density at each site: rho_i = textTr(hatn_i hatrho), where hatn_i is the number operator at site i and hatrho is the density matrix. Note that if the values are complex, the function will return the real part of them. This is what makes the next example work.","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"The local Chern marker is a quantity that can be used to detect topological phases in a lattice model. It can be calculated using the following formula:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"mathcalC(r) = 4pi textIm langle r P X P Y P r rangle","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"Here P is the projector onto the occupied states (e. g. the density matrix), and X and Y are the position operators. The local Chern marker is a real number that can be calculated for each site in the lattice.","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"Let's do this for a QWZ model Hamiltonian on a square lattice:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"l = SquareLattice(6, 6)\nsys = l ⊗ SpinBasis(1//2)\nms = ones(l)\nms[x = 3 .. 4, y = 3 .. 4] .= -1\nH = qwz(l, ms)\n\nP = densitymatrix(H, mu=0, statistics=FermiDirac)\nX, Y = coordoperators(sys)\nc = localdensity(-4π * im * P * X * P * Y * P)\nheatmap(c, title=\"Local Chern marker\")","category":"page"},{"location":"manual/operators/#Diagonalizing","page":"States and Operators","title":"Diagonalizing","text":"","category":"section"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"To diagonalize a Hamiltonian or any other operator, you can use the diagonalize function. It takes an operator and returns a EigenSystem object with the eigenvalues and eigenvectors of the operator.","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"using LatticeModels, Plots\nl = GrapheneRibbon(6, 4)\nH = haldane(l, 0.1, 1)\neig = diagonalize(H)","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"This struct simplifies the access to the eigenvalues and eigenvectors of the operator. You can access the eigenvalues with eig.values, and eigenvectors as Kets can be obtained with the bracket notation eig[i] or eig[value = E]:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"# The states are sorted by real part of the eigenvalues, so\npsi = eig[1] # `psi` is the ground state\npsi2 = eig[value = 0] # `psi2` is the state with zero energy\np = plot(layout = @layout[a b; c], size=(800, 800))\nplot!(p[1], localdensity(psi), title=\"Ground state\")\nplot!(p[2], localdensity(psi2), title=\"Zero energy state\")\nscatter!(p[3], eig.values, title=\"Spectrum\", lab=\"\")","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"tip: Tip\nYou can find the ground state of a Hamiltonian in one line using the groundstate function:psi = groundstate(H)To evaluate both the ground state and its energy, use the findgroundstate function:E0, psi = findgroundstate(H)","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"The diagonalize function under its hood uses the eigen function from the LinearAlgebra standard library. However, this does not work for non-trivial matrix types (e. g. sparse matrices or GPU arrays). For such cases you can pass the second argument to the diagonalize function, which is a Symbol indicating the method to use for diagonalization. To use the eigsolve function from the KrylovKit.jl package, you can pass :krylovkit as the second argument. Since this solves the eigenvalue problem iteratively, you can also pass the keyword arguments: n for the number of eigenvalues to compute, v0 for the initial guess, and the keyword arguments for the eigsolve function.","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"l = SquareLattice(100, 100) # A really big lattice\nH = tightbinding_hamiltonian(l)\neig = diagonalize(H, :krylovkit, n=9) # Compute only 9 eigenvalues with smallest real part\np = plot(layout=9, leg=false, size=(1000, 900))\nfor i in 1:9\n plot!(p[i], localdensity(eig[i]), title=\"E = $(round(eig.values[i], digits=5))\",\n ms=2, msw=0, msa=0) # Plot with small markers with no outline\nend\nplot!()\nsavefig(\"gs_density.png\") # hide\nnothing # hide","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"(Image: )","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"EigenSystem objects have a wide range of applications in this package. One of them is creating equilibrium states for a given Hamiltonian. This can be done using the densitymatrix function, which is described in the next section.","category":"page"},{"location":"manual/operators/#Density-matrix","page":"States and Operators","title":"Density matrix","text":"","category":"section"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"After you diagonalize a Hamiltonian, you can calculate the density matrix for the system. Use the densitymatrix function to do this:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"using LatticeModels\nl = SquareLattice(6, 6)\nsys = System(l, SpinBasis(1//2), mu=0, statistics=FermiDirac, T=0.1)\nH = tightbinding_hamiltonian(sys)\neig = diagonalize(H)\nP1 = densitymatrix(eig) # Use the default parameters from the `System`\nP2 = densitymatrix(eig, \n statistics=BoseEinstein, T=0, mu=1) # Or you can override them\nnothing # hide","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"Note that the densitymatrix function can also be applied to a Hamiltonian object, in which case it will first diagonalize the Hamiltonian and then calculate the density matrix:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"P1_1 = densitymatrix(H)\n@assert P1 ≈ P1_1\nP2_1 = densitymatrix(H, statistics=BoseEinstein, T=0, mu=1)\n@assert P2 ≈ P2_1\nnothing # hide","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"The densitymatrix function uses a simple formula to calculate the density matrix:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"hatrho = sum_i rho(E_i) psi_i rangle langle psi_i ","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"Here E_i are the eigenvalues of the operator, psi_i are the corresponding eigenvectors, and rho(E) is the distribution function defined by the statistics, T, and mu parameters. By default, when no additional parameters are passed to the System or densitymatrix, the density matrix will be a thermal state at zero temperature.","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"The basis for these computations is the projector function, which takes a function p and an EigenSystem object d that represents the diagonalized operator hatO. The return value is an operator hatP defined by the formula:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"hatO = sum_i E_i psi_i rangle langle psi_i hspace1cm\nhatP = sum_i p(E_i) psi_i rangle langle psi_i ","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"Here E_i are the eigenvalues of the operator hatO, and psi_i rangle are the corresponding eigenvectors. The function p is applied to the eigenvalues to obtain the diagonal elements of the density matrix. Here is an example of how to use this function:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"l = SquareLattice(6, 6)\nH = tightbinding_hamiltonian(l)\neig = diagonalize(H)\nP1 = projector(x -> x < 0, eig) # Projector onto the states with energy < 0\nP2 = projector(x -> 1 / (1 + exp(x)), eig) # Fermi-Dirac distribution\nP3 = projector(eig[1:4]) # Projector onto the first 4 states\n# Note how we slice the `eig` object to get the first 4 states","category":"page"}] +[{"location":"manual/bonds/#Adjacency-and-boundary-conditions","page":"Adding bonds","title":"Adjacency and boundary conditions","text":"","category":"section"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"This chapter describes how to define bonds between sites in a lattice and how to use them to define boundary conditions.","category":"page"},{"location":"manual/bonds/#General-bonds","page":"Adding bonds","title":"General bonds","text":"","category":"section"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"There are several ways to define bonds between sites in a lattice. The most general way is to define a function that takes two sites and returns if they are connected. ","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"Generally, all objects that define bonds are subtypes of the AbstractBonds type. Here is a short overview of types of bonds that are supported by this package:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"AdjacencyMatrix — a simple matrix that defines if two sites are connected.\nSiteDistance — connectivity based on the distance between sites.\nNearestNeighbor — connects nearest neighbors on a given lattice. You can specify the order of the neighbors (e. g. first, second, etc.) by passing an integer to the constructor: NearestNeighbor(2).\nTranslation — connects two sites that are shifted by a certain vector.\nBravaisTranslation — connects two sites in a Bravais lattice unit cell. Unlike the Translation, it is defined in terms of the lattice axes and the site indices.","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"Let's begin with the AdjacencyMatrix. It is a simple wrapper around a boolean-valued matrix that defines if two sites are connected. Here is an example of how to use it:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"using LatticeModels, Plots\nl = SquareLattice(4, 4)\n\n# Define a nearest neighbor adjacency matrix\nadj = AdjacencyMatrix(l, NearestNeighbor())\n\n# Let's disconnect the center sites from the rest vertically\nfor x in 2:3\n site1 = l[x=x, y=2]\n site2 = l[x=x, y=1]\n adj[site1, site2] = false\n\n site3 = l[x=x, y=3]\n site4 = l[x=x, y=4]\n adj[site3, site4] = false\nend\n\nplot(adj) # Plot what we've got\nplot!(l, showbonds=false) # And the lattice itself","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"As you can see, the adjacency matrix is a writable object, so you can change the bonds as you like. In this example we deleted vertical bonds between the four center sites and the boundary of the lattice.","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"There are many ways to create an adjacency matrix — for example, you can use a function that takes two sites and returns if they are connected. This is useful when you need to define bonds in a more complex way:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"adj2 = AdjacencyMatrix(l) do site1, site2\n dx = site1.x - site2.x\n dy = site1.y - site2.y\n return abs(dx * dy) == 1 # Diagonal bonds\nend\nplot(adj2)\nplot!(l, showbonds=false)","category":"page"},{"location":"manual/bonds/#Translations","page":"Adding bonds","title":"Translations","text":"","category":"section"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"A \"translation\" is a special type of bonds that has a distinct direction (e. g. each pair of sites consists of a \"source\" and a \"target\" site). Also it must define exactly one destination for each source site (if any).","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"An example is the Translation — it allows defining bonds between sites that are shifted by a certain vector. ","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"using LatticeModels, Plots\nl = GrapheneRibbon(6, 4) # A convenient constructor for a honeycomb lattice\ntr = Translation(l, [1, 2√3/3])\nplot(tr)\nplot!(l, ls=:dash, linecolor=:grey)","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"Another type of translation is the BravaisTranslation. It translates sites on a Bravais lattice in terms of the lattice vectors:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"tr2 = BravaisTranslation(1 => 2, [0, 1])\ntr1 == tr2 # true","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"What does this notation mean? We take the first site in the unit cell; then we go to the unit cell shifted by [0, 1] and take the second site from there. Note that the first example described the same translation, but in terms of positions, not unit cell indices.","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"note: Note\nYou can omit the pair of indices if you want to translate the unit cell regardless of the site index. Bravais[j1, j2, ...] is shorthand for BravaisTranslation([j1, j2, ...]). ","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"You can use translations to shift a site, for example: site2 = site1 + tr, just like with regular vectors. Another use-case for translations is in defining boundary conditions, as we will see in the next section.","category":"page"},{"location":"manual/bonds/#boundary_conditions","page":"Adding bonds","title":"Boundary conditions","text":"","category":"section"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"The most general form of boundary conditions supported by this package is this:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"psi(r + R) = psi(r) f(r)","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"where R is a translation vector and f is some function. This is a generalization of periodic boundary conditions, which are a special case of this form.","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"These conditions are in fact applied not to the lattice itself, but to the Hamiltonian. Think of it as a way to replace the c(r)^dagger c(r) hopping with c(r)^dagger c(r - R) f(r), if the r site is not present in the lattice, but r - R is.","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"In general, there are three types of boundary conditions:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"PeriodicBoundary — the most common type of boundary conditions. Just periodicity with no factor.\nTwistedBoundary — periodicity with a phase factor that does not depend on r.\nFunctionBoundary — general form of boundary conditions.","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"The constructor for the boundary accepts two arguments — the phase (or the function) and the translation. ","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"As an example, let us consider the example with the Hofsadter butterfly from the Examples page. The magnetic field B changes from zero to one flux quantum per plaquette, for each value of B we calculate the energy spectrum of an infinite lattice and plot it. ","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"Let's consider a periodic lattice instead. We want to apply magnetic field in the Landau gauge to it, and since the translation operators include the vector potential mathcalA, we have to tweak the boundary conditions a little:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"psi(x + L_x y) = psi(x y) e^2pi i B y L_x\npsi(x y + L_y) = psi(x y)","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"This can be done with the FunctionBoundary:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"using LatticeModels, Plots\nl = HoneycombLattice(10, 10)\nLx = 10\nLy = 5√3\nn_plaquettes = 100\nB_step = 1 / (Lx * Ly) # Field step: one flux quantum through all plaquettes\nB_max = n_plaquettes * B_step # Until one flux quantum per plaquette\n\npoints_E = Float64[]\npoints_B = Float64[]\nfor B in 0:B_step:B_max\n f(site) = exp(2π * im * B * site.y * Lx)\n xboundary = FunctionBoundary(f, [Lx, 0])\n yboundary = PeriodicBoundary([0, Ly])\n lb = setboundaries(l, xboundary, yboundary)\n H = tightbinding_hamiltonian(lb, field=LandauGauge(B))\n dg = diagonalize(H)\n append!(points_E, dg.values)\n append!(points_B, fill(B, length(dg.values)))\nend\nscatter(points_B, points_E, xlabel=\"B\", ylabel=\"E\", leg=false, ms=1)","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"Note that we could have set the boundary conditions to the lattice in one line. In fact, we already did this in the Examples section:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"lb = setboundaries(l, [Lx, 0] => f, [0, Ly] => true)","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"Let's explain this notation:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"Each pair consists of a translation on the left and a \"boundary specifier\" on the right. A simple vector, like here, is interpreted as a Translation — you can use any translation type here, Bravais[-5, 10] instead of [0, Ly] would work as well.\nThe second argument can be one of the following:\ntrue/false — a periodic or open boundary condition.\nA number θ — a twisted boundary condition with a phase factor exp(im * θ).\nA function f — a general boundary condition.\nSometimes the lattice includes default translation axes, and you can use their aliases as translations. For example, for a 10x10 square lattice setboundaries(l, :axis1 => f, :axis2 => true) is equivalent to setboundaries(l, [10, 0] => f, [0, 10] => true).","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"Note that you can pass boundary conditions to the lattice constructor as well. We could not do this in the previous example, because the boundary conditions depended on the magnetic field B. However, if you have a fixed boundary condition, you can pass it to the lattice constructor like this:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"lb = HoneycombLattice(10, 10, boundaries=([Lx, 0] => f, [0, Ly] => true))","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"This is equivalent to the setboundaries call from the previous example. ","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"note: Note\nIn our example we imposed periodic boundary conditions in shape of a rectangle 0 x L_x, 0 y L_y. However, the lattice itself is more like a parallelogram, because of its unit cell shape. This is not a problem, because this shape is still periodic in terms of these translations along x and y.If the periodicity is violated, for example, if the both r and r + R sites are present in the lattice, an error will be thrown.","category":"page"},{"location":"manual/bonds/#Generic-lattice","page":"Adding bonds","title":"Generic lattice","text":"","category":"section"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"The GenericLattice is a tool you might want to use if you need to define a lattice with a more complex geometry. It is basically just a collection of arbitrary sites. As an example, let's define a lattice with a naive random geometry:","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"using LatticeModels, Plots\nl = GenericLattice{2}() # 2D lattice\nfor i in 1:100\n pt = rand(2) * 5\n md = minimum(site -> norm(pt - site.coords), l, init=1.0)\n md > 0.5 && push!(l, pt) # Add a site if it is far enough from the others\nend\nl2 = setboundaries(l, [0, 5] => true, [5, 0] => true) # Periodic boundary conditions\nbonds = SiteDistance(<(1), l2) # Connect sites that are closer than 1\nplot(bonds)\nplot!(l2) # Unlike Bravais lattices, GenericLattice does not have default bonds","category":"page"},{"location":"manual/bonds/","page":"Adding bonds","title":"Adding bonds","text":"This tool is not very mature yet, but it can be useful for tasks not related to Bravais lattices. Note that boundary conditions or default nearest-neighbor hoppings can be set to the GenericLattice as well.","category":"page"},{"location":"manual/currents/#Currents","page":"Currents","title":"Currents","text":"","category":"section"},{"location":"manual/currents/#Basics","page":"Currents","title":"Basics","text":"","category":"section"},{"location":"manual/currents/#Common-Operations","page":"Currents","title":"Common Operations","text":"","category":"section"},{"location":"manual/currents/#Visualization","page":"Currents","title":"Visualization","text":"","category":"section"},{"location":"manual/lattice/#Lattices","page":"Defining the lattice","title":"Lattices","text":"","category":"section"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"This chapter describes the basic functionality of this package — creating and manipulating lattices.","category":"page"},{"location":"manual/lattice/#Basics","page":"Defining the lattice","title":"Basics","text":"","category":"section"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Creating a lattice is simple. If you want to work with Bravais lattices, there are plenty of predefined types in the package. For example, to create a square lattice, you can use the SquareLattice type:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"using LatticeModels, Plots\nl = SquareLattice(10, 10)\nplot(l)","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"This will create a 10x10 square lattice. Note that you can create a plot by simply using the plot function from the Plots package.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"SquareLattice(10, 10) notation means that we take a square lattice unit cell and translate it 10 times in the x and y directions. This syntax can be extended a little bit:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l = HoneycombLattice(-2:2, -2:2)\nplot(l)\nplot!(l[j1 = 0, j2 = 0], c=:red, ms=6)","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"What happened here? We created a honeycomb lattice by translating the unit cell from -2 to 2 in both directions. Then we plotted the lattice and highlighted the unit cell at the origin to make it more visible. l[j1 = 0, j2 = 0] allowed us selecting part of the lattice by specifying the indices of the unit cell (j1 and j2 are the indices of the unit cell in the first and second directions, respectively).","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"If we need to create a lattice with a less trivial shape, we can use any function we need:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l = TriangularLattice(-10:10, -10:10) do site\n return 4 < sqrt(site.x^2 + site.y^2) < 8 # Create a ring-shaped lattice\nend\nplot(l)","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Here the lattice constructor first translated the unit cell from -10 to 10 in both directions, and then applied the function to each site to create a ring-shaped lattice. This is similar to the filter function in Julia — in fact, you can use filter or filter! on an existing lattice to create a new one as well.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"There are other things you can control when creating a lattice, such as the lattice offset & rotation.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l1 = SquareLattice(-2:2, -2:2)\nl2 = SquareLattice(-2:2, -2:2, offset=:centeralign)\nl3 = SquareLattice(-2:2, -2:2, rotate=pi/3, offset=[6, -1.5])\nplot(l1, lab=\"No offset\", shape=:circle)\nplot!(l2, lab=\"Center the unit cell\", shape=:star)\nplot!(l3, lab=\"Shifted and rotated by π/3\", shape=:square)","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"To find out more about offset and rotation, see UnitCell — the keywords are described there.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"note: Note\nIf you use both offset/rotation and a function to create a lattice, the function will be applied to the sites after the offset/rotation is applied. Use the postoffset and postrotate keywords to control the position and orientation of the lattice after the function is applied.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"The lattices implement the AbstractSet interface, so you can use all the set operations on them — union, intersect, setdiff etc.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l1 = SquareLattice(-2:0, -2:0)\nl2 = SquareLattice(0:2, 0:2)\nl3 = SquareLattice(-3:3, -3:3)\nl = setdiff(l3, union(l1, l2))\nplot(l)\nplot!(union(l1, l2), showbonds=false, alpha=0.3)","category":"page"},{"location":"manual/lattice/#Sites","page":"Defining the lattice","title":"Sites","text":"","category":"section"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Let's find out what sites actually are. A site is generally a point in the lattice. It is defined by its position in space and maybe some additional properties. In case of a Bravais lattice these additional properties are unit cell indices and the index in the unit cell.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"A lattice is generally a set-like structure that allows indexing. Let's take a closer look in the REPL:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"using LatticeModels, Plots\nl = HoneycombLattice(-2:2, -2:2)\nsite = l[1] # Get the first site\nsite.x # Get the x-coordinate of the site\nsite.j2 # Get the second index of the unit cell\nsite.index # Get the index of the site in the unit cell\nx, y = site # Destructure the site","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"As we see, we can access the properties of the site simply as fields of the site object. We can also destructure the site to get its coordinates.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"compat: Julia 1.8\nAccessing the properties of the site as fields like site.x requires Julia 1.8 and later. This limitation is imposed with purpose, since this seriously affects runtime performance in earlier versions. You will still be able to destructure the site to get its coordinates, or use the following fields:site.coords — the position of the site\nsite.latcoords — the unit cell indices\nsite.index — the index of the site in the unit cell","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Properties like x, j1, index etc. are part of a general SiteProperty interface. You can use them to create 'slices' of lattices:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"slice = l[j1 = 0 .. 2, j2 = -2 .. 0, index=1] # Get a slice of the lattice\nplot(l)\nplot!(slice, c=:red, ms=6)","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Here 0 .. 2 and -2 .. 0 are intervals defining the ranges of the unit cell indices. You can use any collection instead of then if you need.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Finding sites by their properties can be done with the same notation:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l[x = 1.5, y = √3/2] # Find the site with x = 1.5 and y = √3/2\nl[x = 1.2, y = 3] # No such site, throws an error","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"This is notation is convenient yet type-unstable, since it returns a Site object if there is one site satisfying the condition — otherwise a lattice is returned. To make sure that the result is indeed a site, add ! to the beginning of the condition:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l[!, x = 1.5, y = √3/2] # Find the site with x = 1.5 and y = √3/2\nl[!, x = 1.5] # More than one site, throws an error","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Note that pair notation is also supported. You can use it to access the properties of the site using the Coord and LatticeCoord types. For example, the following two lines are equivalent to ones above:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l[!, Coord(1) => 1.5, Coord(2) => √3/2] # Same as l[!, x = 1.5, y = √3/2]\nl[!, Coord(1) => 1.5] # Same as l[!, x = 1.5]","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"This notation improves performance on Julia 1.7 and earlier, since it does not need any type-inference tricks to work fast. You may also find it useful when you work with multi-dimensional lattices.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Here is a short list of site properties you can use:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"x, y, z — the position of the site. Alternatively, you can use x1, x2, x3, x4 and so on to access the coordinates of the site in the unit cell. Use Coord(i) to access the i-th coordinate using pair notation.\nj1, j2, j3 and so on — the indices of the unit cell. Use LatticeCoord(i) to access the i-th index using pair notation.\nindex — the index of the site in the unit cell. Use BasisIndex() to access it using pair notation.","category":"page"},{"location":"manual/lattice/#Custom-UnitCell","page":"Defining the lattice","title":"Custom UnitCell","text":"","category":"section"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"You can also create a lattice from a custom unit cell:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"using LatticeModels, Plots\n# This will be our custom honeycomb lattice unit cell\n# First argument - vectors of the unit cell\n# Second argument - radius-vectors for the sites in the unit cell\nuc = UnitCell([[1/2, sqrt(3)/2] [-1/2, sqrt(3)/2]], [[0, sqrt(3)/6] [0, -sqrt(3)/6]])\nplot(uc) # Plot the unit cell","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Note that both arguments are actually matrices — the first one is a matrix of the unit cell vectors, and the second one is a matrix of the site positions in the unit cell. However, here we used concatenation to create the matrices for the sake of readability: remember that [[a, b] [c, d]] is equivalent to [a c; b d].","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"To create a lattice, we can use the span_unitcells function:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l = span_unitcells(uc, -5:5, -5:5) do site\n x, y = site\n return abs(y) < 5 && \n abs(y * 1 / 2 + x * sqrt(3) / 2) < 5 && \n abs(y * 1 / 2 - x * sqrt(3) / 2) < 5\nend # Create a hex shape\nplot(l)","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"In fact, the constructors we discussed earlier are just a shorthand for span_unitcells with a predefined unit cell. You can use span_unitcells to create a lattice from any unit cell you want.","category":"page"},{"location":"manual/lattice/#Shapes","page":"Defining the lattice","title":"Shapes","text":"","category":"section"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"The shapes framework is a powerful tool for creating lattices of arbitrary geometry:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"using LatticeModels, Plots\nl = SquareLattice{2}(Hexagon(10, [-10, 0]), Circle(10, [10, 0]))\nplot(l)","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Here we created a square lattice in shape of a hexagon and a circle. The first argument of the shape is its radius (for the hexagon it is the distance from its center to the vortices), and the second argument is the center of the shape. Other possible shapes include Rectangle, Polygon, SiteAt and Path.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"complex_l = SquareLattice{2}( # Here you have to specify the dimension of the lattice\n Circle(10), Circle(10, [20, 0]), Circle(10, [10, 10√3]),\n !Circle(5), !Circle(5, [20, 0]), !Circle(5, [10, 10√3]),\n Rectangle(-5 .. 5, -14 .. -12), Rectangle(15 .. 25, -14 .. -12),\n Path([-12, 32], [32, 32]), SiteAt([0, 0]), SiteAt([20, 0])\n)\nplot(complex_l)","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Note that adding ! before the shape inverts it. This is useful when you need to create a lattice with a hole in it.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Sometimes the shape can become ill-formed — this happens when the unit cell has non-trivial geometry. In this case you may need to remove the dangling sites using the removedangling! function. For example, they can arise when creating a path on a honeycomb lattice:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l = HoneycombLattice(Circle(3, [0, 0]), Circle(3, [-2, 10]), Path([0, 0], [-2, 10]))\np = plot(size=(800, 350), layout=(1, 2))\nplot!(p[1], l, title=\"With dangling sites\")\nremovedangling!(l)\nplot!(p[2], l, title=\"Without dangling sites\")","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Let's discuss what is happening under the hood. The HoneycombLattice constructor calls the fillshapes function, which estimates the unitcells one has to span for each shape, and adds the sites that are in the shape to the lattice. ","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"You can also use addshapes! to add shapes to an existing lattice and deleteshapes! to remove them. These functions, however, do not support the ! notation for inverting shapes.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"One last, but not least, thing to mention is that this framework allows approximate scaling. If you need a lattice with distinct shape and, say, roughly 1000 sites, you can use the sites keyword to specify the number of sites you need:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"l = TriangularLattice(sites=1000, Circle(1, [-1, 0]), Circle(1, [1, 0]), Circle(1, [0, √3]))\nplot(l, title = \"$(length(l)) ≈ 1000 sites\")","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"You can also use the shaperadius function to estimate the radius of the shape that will give you the desired number of sites:[1]","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"circ = SquareLattice{2}(Circle(), sites=150)\nr = shaperadius(circ, Circle())\nplot(circ, lab = \"$(length(circ)) ≈ 150 sites\")\nplot!(Circle(r), c=:grey, ls=:dash, lab = \"r ≈ $r\")","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"[1]: Actually, the shaperadius function returns the scaling factor for the shape set. However, Circle() by default creates a circle with radius 1, so the scaling factor is equal to the radius of the circle.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"note: Note\nRadius estimation is not always precise and works under following assumptions:The shapes are large enough to contain the unit cell and do not intersect with each other.\nThe inverted shapes are all contained in the non-inverted ones, and also do not intersect with each other.","category":"page"},{"location":"manual/lattice/#Multi-dimensional-lattices","page":"Defining the lattice","title":"Multi-dimensional lattices","text":"","category":"section"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"This package supports multi-dimensional lattices. You can create a lattice of any dimension by creating a suitable unit cell first. Or by passing the required amount of axes to the lattice constructor, if the type supports it:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"using LatticeModels, Plots\nl = SquareLattice(5, 4, 3)\nplot(l) # A 3D cubic lattice","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Also remember that the dimensions of the lattice are not necessarily spatial dimensions. For example, you can create a bilayer Graphene lattice by defining a unit cell with two layers:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"# Bilayer Graphene with shifted layers\nuc = UnitCell([[1, 0, 0] [1/2, √3/2, 0]], \n [[0, 0, 0] [1/2, √3/6, 0] [0, 0, √3/3] [-1/2, -√3/6, √3/3]]) \nl = span_unitcells(uc, -2:2, -2:2)\nplot(l, lc=:grey, zwiden=1.3)","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"Effectively, it is a 2D lattice in 3D space. Note that you can always project a multi-dimensional lattice or its slice to a 2D plane when plotting it:","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"plot(l[index=(1, 2)], axes=(:x, :y)) # Plot the first layer","category":"page"},{"location":"manual/lattice/#Bonds-and-hoppings","page":"Defining the lattice","title":"Bonds and hoppings","text":"","category":"section"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"In the scope of this package, bonds are not considered part of the lattice, but rather a separate structure that connects sites. You can assign nearest-neighbour hoppings to the lattice (of course, since you can see them on the plot), but in general the lattice and the bonds are separate entities. The reasoning behind this is that in some cases you may need to use different sets of bonds for different models.","category":"page"},{"location":"manual/lattice/","page":"Defining the lattice","title":"Defining the lattice","text":"To find out more about bonds, adjacency and boundary conditions, see the next chapter: Adjacency and boundary conditions.","category":"page"},{"location":"manual/evolution/#Evolution","page":"Evolution","title":"Evolution","text":"","category":"section"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"This chapter describes several ways to work with time evolution of quantum systems on lattices. It features Evolution — a powerful struct that represents the time evolution of a quantum system according to the Schrödinger equation, and TimeSequence, which is used to store and process time-dependent data.","category":"page"},{"location":"manual/evolution/#Basics","page":"Evolution","title":"Basics","text":"","category":"section"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The Evolution struct is used to represent the time evolution of a quantum system. It contains the Hamiltonian and the initial state (or states) of the system. To evaluate the time evolution, you can write this:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"using LatticeModels, Plots\nlat = Chain(200)\n\n# Define the initial state: a Gaussian wavepacket\nx = coordvalue(lat, :x)\npsi0 = ketstate(@. exp(-0.02 * (x - 50) ^ 2 - im * 0.3x))\n\n# Define the Hamiltonian\nH = tightbinding_hamiltonian(lat)\n\n# Create the plot\nplot(title=\"Gaussian wavepacket evolution\", xlabel=\"x\", yticks=:none)\n# Empty plots for the legend\nplot!([NaN], c = :blue, label=\"Re\") \nplot!([NaN], c = :red, label=\"Im\") \n\nev = Evolution(H, psi0)\nfor moment in ev(0:5:50)\n psi, Ht, t = moment # Unpack to get the state, Hamiltonian and time\n plot!(real.(psi.data) .+ t / 3, c=:blue, lab=\"\")\n plot!(imag.(psi.data) .+ t / 3, c=:red, lab=\"\")\nend\nplot!()","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"We got a pretty plot of a Gaussian wavepacket moving to the right. Let us discuss what happened here in-depth.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"We set the Hamiltonian to be a constant operator. Since we perform the evolution in even time steps, and the Hamiltonian is not time-dependent, we can precompute the exponential of the Hamiltonian hatU = e^-i H t and use it in the evolution. This is done automatically here.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The Evolution struct is not an iterator. Instead, it is a callable object that returns an iterator. This is done to allow for more flexibility, as you can see below.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The Evolution struct always yields stateful iterators. This means that the psi in the loop is actually the same object, and it is updated on each iteration. This is done to reduce memory allocations and improve performance. Do not edit the states in the loop, as it will affect the results.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"This allows continuing the evolution from the last state. Let's stick to the previous example and add some more iterations:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"for moment in ev(50:5:100)\n t = moment.t # Get the time\n psi = moment.state # Get the state\n # moment.H is the Hamiltonian, but it is not used here\n plot!(real.(psi.data) .+ t / 3, c=:blue, lab=\"\")\n plot!(imag.(psi.data) .+ t / 3, c=:red, lab=\"\")\nend\nplot!()","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"tip: Tip\nIf you do not need to iterate over a single Evolution object multiple times, you can use a shorthand. This notation:for moment in Evolution(H, psi0, timedomain=0:5:50)\n # ...\nendis equivalent to this:ev = Evolution(H, psi0)\nfor moment in ev(0:5:50)\n # ...\nend","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"Note that we used a different notation to access the state and the time. You can use any of these two, whichever you find more convenient in your situation:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"Fields: psi = moment.state; Ht = moment.H; t = moment.t\nUnpacking: psi, Ht, t = moment","category":"page"},{"location":"manual/evolution/#Multiple-initial-states","page":"Evolution","title":"Multiple initial states","text":"","category":"section"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The Evolution struct can also accept multiple initial states. Let's create two Gaussian wavepackets and evolve them:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"# Define the initial states: two Gaussian wavepackets\npsi0_1 = ketstate(@. exp(-0.02 * (x - 50) ^ 2 - im * 0.3x))\npsi0_2 = ketstate(@. exp(-0.02 * (x - 150) ^ 2 + im * 0.3x))\n\np = plot(title=\"Two Gaussian wavepackets evolution\", xlabel=\"x\", yticks=:none)\n\nev = Evolution(H, psi0_1, psi0_2) # Pass the initial states as keyword arguments\nfor moment in ev(0:5:50)\n psi1 = moment[1]\n psi2 = moment[2]\n t = moment.t\n plot!(abs2.(psi1.data) .+ t / 3, c=:black, lab=\"\")\n plot!(abs2.(psi2.data) .+ t / 3, c=:green, lab=\"\")\nend\nplot!()","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"Note that accessing moment.state will throw an error here, because there is more than one state. Instead, you can access all them as a tuple with moment.states or each one separately with moment[1], moment[2], etc. Also you can still unpack the moment as psi1, psi2, Ht, t = moment, which will do the very same thing.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The Evolution struct also allows assigning aliases to the states. You can do this by passing the initial states as keyword arguments. This code will produce the same result as in the previous example:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"p = plot(title=\"Two Gaussian wavepackets evolution\", xlabel=\"x\", yticks=:none)\n\nev = Evolution(H, psi1=psi0_1, psi2=psi0_2)\nfor moment in ev(0:5:50)\n t = moment.t\n plot!(abs2.(moment.psi1.data) .+ t / 3, c=:black, lab=\"\")\n plot!(abs2.(moment.psi2.data) .+ t / 3, c=:green, lab=\"\")\nend\nplot!()","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"moment.states will be a named tuple with the states in this case. This way you can access the states as moment.psi1, moment.psi2, etc. You can still use indices moment[1], moment[2] or unpack the moment as psi1, psi2, Ht, t = moment. The choice is yours.","category":"page"},{"location":"manual/evolution/#Time-dependent-Hamiltonian","page":"Evolution","title":"Time-dependent Hamiltonian","text":"","category":"section"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"If the Hamiltonian is time-dependent, you can pass a function that returns the Hamiltonian at the given time. This function should accept a single argument — the time. An example of a time-dependent Hamiltonian is the one with a magnetic field that changes in time from the Examples section:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"using LatticeModels, Plots\nl = TriangularLattice(Circle(10), !Circle(5))\nremovedangling!(l)\nh(B) = tightbinding_hamiltonian(l, field=PointFlux(B))\ndiag = diagonalize(h(0))\n\nP_0 = densitymatrix(diag, mu = 0)\nτ = 10\nht(t) = h(0.1 * min(t, τ) / τ)\nev = Evolution(ht, P_0)\n\nanim = @animate for moment in ev(0:0.1:2τ)\n ρ, Ht, t = moment\n curr = DensityCurrents(Ht, ρ)\n plot(curr, title=\"t = $t\", clims=(0, 0.005), size=(1000, 700))\nend\ngif(anim, \"currents.gif\")","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"Here we applied magnetic field that changes in time. The flux is increased linearly from 0 to 0.1 in 10 time units, and then stays constant. The animation shows the density currents in the lattice at each time step.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"To make the Hamiltonian time-dependent in the previous example, we defined a function ht(t) = h(0.1 * min(t, τ) / τ). This function returns the Hamiltonian with the flux 0.1 * min(t, τ) / τ at the given time t. The Evolution struct then uses this function to calculate the Hamiltonian at each time step.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The exponent for the time-dependent Hamiltonian is cached for each time step. This means that on the second half of the evolution interval, the exponent is calculated only once, and then reused for each time step. This improves performance. To improve it even more, you can pre-calculate the static Hamiltonian:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"const H1 = h(0.1) # Make it constant to enforce type stability\nht(t) = t > τ ? H1 : h(0.1 * t / τ)","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"note: Note\nThe Evolution checks the Hamiltonian equality by storing a reference to the last Hamiltonian. Thes means that if you return the same object each time in the Hamiltonian function, the exponent will not be recalculated, even if you changed the Hamiltonian. To force the recalculation, wrap the return value into a Ref.Note that you can also use QuantumOptics.TimeDependentOperator interface — this might be more convenient, as it eliminates extra allocations more efficiently, and exponent caching for them is disabled by default.","category":"page"},{"location":"manual/evolution/#Solvers","page":"Evolution","title":"Solvers","text":"","category":"section"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The Evolution struct can use several solvers to calculate the time evolution. You can set the solver to use explicitly this way:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"ev = Evolution(CachedExp(threshold=1e-12, nztol=1e-15), H, psi0)","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The CachedExp solver is the default option, and it works in a very simple way: at each time step it calculates the exponent of the Hamiltonian hatU = e^-i H Delta t and applies it to the state. It also caches the exponent to avoid recalculating it if the Hamiltonian and the timestep are the same.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The exponent is calculated using a custom-implemented scaling and squaring algorithm. Contrary to the exp function from the LinearAlgebra package, it works with sparse matrices and GPU arrays also, while performance on dense matrices is comparable. However, some precision loss is possible, especially for large time steps, so you can adjust the tolerance for your case with these parameters:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"threshold — the threshold for the error in the exponent calculation. Limits the number of iterations in the Taylor series expansion. The default value is 1e-10.\nnztol — the tolerance for the zero elements in the Hamiltonian. Works only for sparse matrices — the elements with the absolute value less than nztol are considered zero. The default value is 1e-14.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The CachedExp solver is universal and works well in most cases. However, it is not the most efficient one. In some specific cases you might want to use a more specialized solver. For example, the KrylovKitExp solver can be faster if the Hamiltonian is large, sparse and dependent on time. It uses the exponentiate function from the KrylovKit package to calculate the exponent.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"Let's run some performance tests:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"using LatticeModels\nl = SquareLattice(40, 40)\nh(B) = tightbinding_hamiltonian(l, field=LandauGauge(B))\n\n# The initial state is the ground state of the Hamiltonian with B = 0\npsi = groundstate(h(0))\nτ = 10\nht(t) = h(0.1 * min(t, τ) / τ)\nts = 0:0.1:2τ\nsite = l[!, x = 20, y = 20]\n\nprintln(\"CachedExp:\")\n# We can evaluate the density at x = 20, y = 20 in a one-liner\n@time dens1 = [localdensity(moment.state)[site] for moment in \n Evolution(CachedExp(), ht, psi, timedomain=ts, showprogress=false)]\n@time dens1 = [localdensity(moment.state)[site] for moment in \n Evolution(CachedExp(), ht, psi, timedomain=ts, showprogress=false)]\n@time dens1 = [localdensity(moment.state)[site] for moment in \n Evolution(CachedExp(), ht, psi, timedomain=ts, showprogress=false)]\n\nprintln(\"\\nKrylovKitExp:\")\n@time dens2 = [localdensity(moment.state)[site] for moment in \n Evolution(KrylovKitExp(), ht, psi, timedomain=ts, showprogress=false)]\n@time dens2 = [localdensity(moment.state)[site] for moment in \n Evolution(KrylovKitExp(), ht, psi, timedomain=ts, showprogress=false)]\n@time dens2 = [localdensity(moment.state)[site] for moment in \n Evolution(KrylovKitExp(), ht, psi, timedomain=ts, showprogress=false)]\nnothing # hide","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The first attempt took some time because of the precompilation required, but overall the KrylovKitExp solver turned out to be faster in this case. Let's plot the results to make sure they are the same:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"using Plots\nplot(ts, dens1, label=\"CachedExp\", xlabel=\"t\", ylabel=\"ρ(x=20, y=20)\", \n ylims=(0, NaN), size=(800, 400))\nplot!(ts, dens2, label=\"KrylovKitExp\")","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"A significant drawback of KrylovKitExp solver is that it works only with wavefunctions — it does not support density matrices.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"note: Note\nGenerally, the Evolution struct supports only Schrödinger/von Neumann equations. If you need to solve the master equation, you can use the functions from the QuantumOptics package.However, a solver for the master equation can be implemented on top of the Evolution struct using this EvolutionSolver interface. Please file an issue if you are interested in this feature.","category":"page"},{"location":"manual/evolution/#TimeSequence","page":"Evolution","title":"TimeSequence","text":"","category":"section"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"The TimeSequence struct is used to store and manipulate time-dependent data. It is a dictionary-like object that maps time points to values. The values can be any type, including arrays, matrices, and even lattice-specific types like LatticeValue.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"Let's calculate the evolution of a ground state of a tight-binding model after a magnetic field is adiaiabatically turned on. We will store the local density at each time step and use it to plot the local density depending on time, as well as its time derivative and integral over time:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"using LatticeModels, Plots\nl = SquareLattice(20, 20)\nh(B) = tightbinding_hamiltonian(l, field=LandauGauge(B))\n\n# The initial state is the ground state of the Hamiltonian with B = 0\npsi = groundstate(h(0))\nτ = 10\nht(t) = h(0.1 * min(t, τ) / τ)\ndensities = TimeSequence{LatticeValue}()\n\nfor moment in Evolution(ht, psi, timedomain=0:0.1:2τ)\n densities[moment.t] = localdensity(moment.state)\nend\n\nplot(densities[!, x = 10, y = 10], label=\"ρ(t) (bulk)\")\nplot!(densities[!, x = 1, y = 10], label=\"ρ(t) (edge)\")","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"tip: Tip\nThe very same result could be achieved without writing the loop, using the TimeSequence constructor with a function. This way it will automatically iterate over the Evolution object and store the results:densities = TimeSequence(Evolution(ht, psi), 0:0.1:2τ) do moment\n localdensity(moment.state)\nend","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"Note that we can index a TimeSequence of LatticeValues the same way as a LatticeValue itself, which will produce another TimeSequence with the same time domain. This is because TimeSequence forwards almost all the indexing operations to the values it stores.","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"This type also supports time indexing and slicing. You can combine these types of indexing by using the t keyword for the time axis — all other arguments will be treated as spatial coordinates. Let's plot the local density at the center of the lattice and the local density at the edge of the lattice at the same time point:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"p = plot(layout=2, size=(1000, 500))\nplot!(p[1], densities[0.5])\nplot!(p[2], densities[!, x=10, y=10, t=0.5 .. 3.5], label=\"ρ(t) (bulk)\")\nplot!(p[2], densities[!, x=1, y=10, t=5 .. 10], label=\"ρ(t) (edge)\")","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"Another very useful feature of the TimeSequence is that it can be integrated and differentiated over time using the integrate and differentiate functions. Let's plot the time derivative and integral of the local density in the bulk of the lattice:","category":"page"},{"location":"manual/evolution/","page":"Evolution","title":"Evolution","text":"densities_bulk = densities[!, x = 10, y = 10]\nplot(densities_bulk, label=\"ρ(t) (bulk)\")\nplot!(differentiate(densities_bulk), label=\"dρ(t)/dt (bulk)\")\nplot!(integrate(densities_bulk), label=\"∫ρ(t)dt (bulk)\")","category":"page"},{"location":"library/#Internals","page":"Library","title":"Internals","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]","category":"page"},{"location":"library/#Lattice-basics","page":"Library","title":"Lattice basics","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"core/lattice.jl\", \"lattices/genericlattice.jl\", \"lattices/bravais/unitcell.jl\", \n \"lattices/bravais/lattice.jl\"]\nFilter = t -> t ∉ (LatticeModels.AbstractLattice, LatticeModels.AbstractSite)","category":"page"},{"location":"library/#LatticeModels.IncompatibleLattices","page":"Library","title":"LatticeModels.IncompatibleLattices","text":"IncompatibleLattices([header, ]lat1, lat2)\n\nAn exception thrown when two lattices are incompatible.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.SiteProperty","page":"Library","title":"LatticeModels.SiteProperty","text":"SiteProperty\n\nAn abstract type for a property of a site.\n\nThis interface is used to define various properties of a site. They can be accessed using getsiteproperty. This interface is used in following places:\n\nlattice[...] syntax to access sites with specific properties.\nlattice_value[...] syntax to access values defined on sites with specific properties.\nFunctions to generate LatticeValues and operators for specific properties.\n\nExamples\n\njulia> using LatticeModels\n\njulia> l = SquareLattice(3, 3);\n\njulia> l[x = 1, y = 2] # Get site with x = 1 and y = 2\n2-dim Bravais lattice site in 2D space at [1.0, 2.0]\n\njulia> l[x = 1] # Get sublattice with x = 1\n3-site 2-dim Bravais lattice in 2D space\nUnit cell:\n Basis site coordinates:\n ┌ ┐\n │ 0.000│\n │ 0.000│\n └ ┘\n Translation vectors:\n ┌ ┐ ┌ ┐\n │ 1.000│ │ 0.000│\n │ 0.000│ │ 1.000│\n └ ┘ └ ┘\nLattice type: SquareLattice{2}\nDefault translations:\n :axis1 → Bravais[3, 0]\n :axis2 → Bravais[0, 3]\nNearest neighbor hoppings:\n 1.00000 =>\n Bravais[1, 0]\n Bravais[0, 1]\n 1.41421 =>\n Bravais[1, -1]\n Bravais[1, 1]\n 2.00000 =>\n Bravais[2, 0]\n Bravais[0, 2]\nBoundary conditions: none\n\njulia> l[x = 1, y = 2, z = 3] # No site with defined z property on a 2D lattice\nERROR: ArgumentError: Invalid axis index 3 of a 2-dim site\n[...]\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.check_issublattice-Tuple{LatticeModels.AbstractLattice, LatticeModels.AbstractLattice}","page":"Library","title":"LatticeModels.check_issublattice","text":"Checks if l1 is sublattice of l2. Throws an error if not.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.check_samelattice-Tuple{Any, Any}","page":"Library","title":"LatticeModels.check_samelattice","text":"Checks if l1 and l2 objects are defined on the same lattice. Throws an error if not.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.check_samesites-Tuple{Any, Any}","page":"Library","title":"LatticeModels.check_samesites","text":"Checks if l1 and l2 objects are defined on the same sites. Throws an error if not.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.lattice-Tuple{LatticeModels.AbstractLattice}","page":"Library","title":"LatticeModels.lattice","text":"lattice(any)\n\nReturn the lattice of the given object (an operator, LatticeValue, ...)\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.site_index","page":"Library","title":"LatticeModels.site_index","text":"site_index(lat, site[, range])\n\nReturn the index of the site in the lattice lat. If range is given, only search in the given range. Return nothing if the site is not found.\n\n\n\n\n\n","category":"function"},{"location":"library/#LatticeModels.GenericLattice","page":"Library","title":"LatticeModels.GenericLattice","text":"GenericLattice{SiteT}\n\nA generic lattice of SiteT sites.\n\nExample\n\njulia> using LatticeModels\n\njulia> l = GenericLattice{2}()\n0-site GenericLattice{GenericSite{2}} in 2D space\n\njulia> push!(l, GenericSite(0, 0)) # Add a site at (0, 0)\n1-site GenericLattice{GenericSite{2}} in 2D space:\n Site at [0.0, 0.0]\n\njulia> push!(l, (0, 1)) # Add a site at (0, 1)\n2-site GenericLattice{GenericSite{2}} in 2D space:\n Site at [0.0, 0.0]\n Site at [0.0, 1.0]\n\njulia> push!(l, [1, 0]) # Add a site at (1, 0)\n3-site GenericLattice{GenericSite{2}} in 2D space:\n Site at [0.0, 0.0]\n Site at [0.0, 1.0]\n Site at [1.0, 0.0]\n\njulia> l[2]\n2-dim GenericSite{2} at [0.0, 1.0]\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.GenericLattice-Tuple{LatticeModels.AbstractLattice}","page":"Library","title":"LatticeModels.GenericLattice","text":"GenericLattice(lat)\n\nConstructs a GenericLattice from some other lattice lat.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.GenericLattice-Union{Tuple{}, Tuple{N}} where N","page":"Library","title":"LatticeModels.GenericLattice","text":"GenericLattice{N}()\n\nConstructs an empty N-dimensional GenericLattice of GenericSites.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.GenericLattice-Union{Tuple{}, Tuple{SiteT}} where SiteT<:LatticeModels.AbstractSite","page":"Library","title":"LatticeModels.GenericLattice","text":"GenericLattice{SiteType}()\n\nConstructs an empty GenericLattice of SiteType sites.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.GenericSite","page":"Library","title":"LatticeModels.GenericSite","text":"GenericSite{N}\n\nA generic site in an N-dimensional lattice.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.BravaisSite","page":"Library","title":"LatticeModels.BravaisSite","text":"BravaisSite{N,NU,B}\n\nA site of a BravaisLattice{N,NU,B} lattice.\n\nFields\n\nunitcell: a UnitCell object representing the lattice unit cell.\nlatcoords: a SVector of size N representing the lattice coordinates of the site.\nbasindex: an Int representing the index of the site in the lattice basis.\ncoords: a SVector of size N representing the spatial coordinates of the site.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.UnitCell","page":"Library","title":"LatticeModels.UnitCell","text":"UnitCell(translations[, basis; offset, rotate])\n\nConstructs a Bravais lattice unit cell with given translation vectors and locations of basis sites.\n\nArguments\n\ntranslations: an AbstractMatrix of size N×N representing the translation vectors of the lattice.\nbasis: an AbstractMatrix of size N×NB representing the locations of basis sites. If not provided, the lattice basis will consist of one site located in the bottom-left corner of the unit cell.\n\nKeyword arguments\n\noffset: a keyword argument that specifies how to shift the lattice basis. Possible values:\n:origin: no shift (default).\n:center: shift the lattice so that the center of the basis is at the origin of the unit cell.\n:centeralign: shift the lattice so that the center of the basis is at the center of the unit cell.\nAlso accepts an AbstractVector of size N to shift the lattice by a custom vector.\nrotate: a keyword argument that specifies how to rotate the lattice basis. Possible values:\nnothing: no rotation (default).\nAn AbstractMatrix of size N×N to rotate the lattice.\nA Real number to rotate the lattice by this angle in radians.\nAlso accepts an AbstractMatrix of size N×N to rotate the lattice basis.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.span_unitcells-Union{Tuple{NB}, Tuple{NU}, Tuple{N}, Tuple{Any, UnitCell{N, NU, NB}, Vararg{Union{Integer, OrdinalRange{<:Integer, <:Integer}}, NU}}} where {N, NU, NB}","page":"Library","title":"LatticeModels.span_unitcells","text":"span_unitcells([f, ]unitcell, dims...[; boundaries, offset])\n\nConstruct a Bravais lattice by spanning unitcell in dims dimensions, filtered by f.\n\nArguments\n\nf: a function that defines if the site is included in the lattice. Takes a BravaisSite, returns a Bool.\nunitcell: a UnitCell object.\ndims: a list of Integers or Ranges specifying the size of the lattice in each dimension.\n\nKeyword arguments\n\ndefault_translations: a list of BravaisTranslations to add to the lattice as default boundary condition axes.\nboundaries: a BoundaryConditions object specifying the boundary conditions of the lattice.\nrmdup: a Bool specifying whether to remove sites that are equivalent after applying the boundary conditions.\noffset: the offset of the lattice from the origin. See UnitCell for details.\nrotate: a rotation matrix to apply to the lattice. See UnitCell for details.\n\nKeep in mind that the offset and rotation are applied to the unit cell before the lattice is spanned (and f is applied). To apply them after the lattice is spanned, use the postoffset and postrotate keywords.\n\nExamples\n\njulia> using LatticeModels\n\njulia> using LatticeModels\n\njulia> uc = UnitCell([[1, 0] [0, 1]])\n1-site Unit cell of a 2-dim Bravais lattice in 2D space:\n Basis site coordinates:\n ┌ ┐\n │ 0.000│\n │ 0.000│\n └ ┘\n Translation vectors:\n ┌ ┐ ┌ ┐\n │ 1.000│ │ 0.000│\n │ 0.000│ │ 1.000│\n └ ┘ └ ┘\n\njulia> span_unitcells(uc, 3, 3) == SquareLattice(3, 3)\ntrue\n\n\n\n\n\n","category":"method"},{"location":"library/#Lattice-constructors","page":"Library","title":"Lattice constructors","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"zoo/lattices.jl\", \"zoo/shapes.jl\"]","category":"page"},{"location":"library/#LatticeModels.HoneycombLattice","page":"Library","title":"LatticeModels.HoneycombLattice","text":"HoneycombLattice\n\nRepresents a honeycomb lattice.\n\nLattice vectors: [1, 0] and [0.5, √3/2], two sites at [0, 0] and [0.5, √3/6] in each unit cell.\n\n\n\nHoneycombLattice(a, b)\n\nConstruct a honeycomb lattice of a×b spanned unit cells.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.KagomeLattice","page":"Library","title":"LatticeModels.KagomeLattice","text":"KagomeLattice\n\nRepresents a kagome lattice.\n\nLattice vectors: [1, 0] and [0.5, √3/2], three sites at [0, 0], [0.5, 0] and [0.25, √3/4] in each unit cell.\n\n\n\nKagomeLattice(a, b)\n\nConstruct a kagome lattice of a×b spanned unit cells.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.SquareLattice","page":"Library","title":"LatticeModels.SquareLattice","text":"SquareLattice{N}\n\nRepresents a square lattice in N dimensions.\n\n\n\nSquareLattice(sz...)\n\nConstruct a square lattice of size sz.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.TriangularLattice","page":"Library","title":"LatticeModels.TriangularLattice","text":"TriangularLattice\n\nRepresents a triangular lattice. Lattice vectors: [1, 0] and [0.5, √3/2].\n\n\n\nTriangularLattice(a, b)\n\nConstruct a triangular lattice of a×b spanned unit cells.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.Chain-Tuple{Function, Any}","page":"Library","title":"LatticeModels.Chain","text":"Chain(sz)\n\nConstruct a 1D chain lattice of size sz.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.GrapheneRibbon","page":"Library","title":"LatticeModels.GrapheneRibbon","text":"GrapheneRibbon(len, wid[, center; kw...])\n\nConstruct a graphene ribbon sample with zigzag edges. To get armchair edges, simply rotate the lattice by 90 degrees.\n\nArguments\n\nlen: the length of the ribbon.\nwid: the width of the ribbon.\ncenter: the unit cell coordinates of the bottom-left corner of the ribbon. Default is (0, 0).\n\nAll other keyword arguments are passed to span_unitcells (see its documentation for details).\n\n\n\n\n\n","category":"function"},{"location":"library/#LatticeModels.@bravaisdef-Tuple{Any, Any}","page":"Library","title":"LatticeModels.@bravaisdef","text":"@bravaisdef MyBravaisLattice UnitCell(...)\n@bravaisdef MyBravaisLattice N -> UnitCell(...)\n\nDefine a new Bravais lattice type MyBravaisLattice with a unit cell constructor UnitCell(expr). If the notation is N -> UnitCell(expr), the unit cell constructor will be dependent on the dimensionality N. otherwise, the dimensionality will be inferred from the unit cell. N is the dimensionality of the lattice.\n\nExamples\n\njulia> using LatticeModels\n\njulia> @bravaisdef MyBravaisLattice UnitCell([1 0; 0 1]); # 2D square lattice\n\njulia> MyBravaisLattice(3, 3)\n9-site 2-dim Bravais lattice in 2D space\nUnit cell:\n Basis site coordinates:\n ┌ ┐\n │ 0.000│\n │ 0.000│\n └ ┘\n Translation vectors:\n ┌ ┐ ┌ ┐\n │ 1.000│ │ 0.000│\n │ 0.000│ │ 1.000│\n └ ┘ └ ┘\nLattice type: MyBravaisLattice\nDefault translations:\n :axis1 → Bravais[3, 0]\n :axis2 → Bravais[0, 3]\nNearest neighbor hoppings:\n 1.00000 =>\n Bravais[1, 0]\n Bravais[0, 1]\n 1.41421 =>\n Bravais[1, -1]\n Bravais[1, 1]\n 2.00000 =>\n Bravais[2, 0]\n Bravais[0, 2]\nBoundary conditions: none\n\n\n\n\n\n","category":"macro"},{"location":"library/#LatticeModels.BallND","page":"Library","title":"LatticeModels.BallND","text":"BallND{N}([radius, center])\n\nConstruct a N-dimensional ball with a given radius and center. Note the aliases: Circle and Ball are BallND{2} and BallND{3} respectively.\n\nArguments\n\nradius: The radius of the ball.\ncenter: The center of the ball.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.Path","page":"Library","title":"LatticeModels.Path","text":"Path(start, stop)\n\nConstruct a path from start to stop.\n\nArguments\n\nstart: The start of the path.\nstop: The end of the path.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.Polygon","page":"Library","title":"LatticeModels.Polygon","text":"Polygon{N}([radius, center])\nPolygon{N}([center; h])\n\nConstruct a regular N-sided polygon with a given (circumscribed) radius and center. Note the aliases: Triangle, Square, and Hexagon are Polygon{3}, Polygon{4}, and Polygon{6} respectively.\n\nArguments\n\nradius: The (circumscribed) radius of the polygon.\ncenter: The center of the polygon.\n\nKeyword Arguments\n\nh: The distance from the center to the vertices. If given, the radius is calculated as h / cos(pi / N).\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.Rectangle","page":"Library","title":"LatticeModels.Rectangle","text":"Rectangle(w, h)\n\nConstruct a rectangle with given horizontal and vertical intervals. Usage: Rectangle(1 .. 3, 2 .. 4).\n\nArguments\n\nw: The horizontal range.\nh: The vertical range.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.SiteAt","page":"Library","title":"LatticeModels.SiteAt","text":"SiteAt(coords)\n\nRepresents a single site at the given coordinates.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.fillshapes-Union{Tuple{N}, Tuple{UnitCell{Sym, N} where Sym, Vararg{LatticeModels.AbstractShape}}} where N","page":"Library","title":"LatticeModels.fillshapes","text":"fillshapes(uc, shapes...[; sites, scale, kw...])\n\nCreate a lattice sample with geometry defined by the given shapes. The lattice is filled with sites that are inside the shapes.\n\nArguments\n\nuc: The UnitCell of the lattice. Might also be a lattice type.\nshapes: The shapes to fill the lattice with.\n\nKeyword Arguments\n\nsites: If given, an attepmt will be made to fill the lattice with the given number of sites. The scaling will be approximate and relying on assumptions that the shapes do not overlap.\nscale: The scaling factor for the shapes. If sites is given, the scaling factor will be calculated automatically.\n\nAll other keyword arguments are passed to the lattice constructor. See span_unitcells for more information.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.removedangling!-Tuple{LatticeModels.AbstractLattice}","page":"Library","title":"LatticeModels.removedangling!","text":"removedangling!(lat[; maxdepth])\n\nRemove dangling sites from the lattice. A site is considered dangling if it has less than 2 neighbors. The function will remove all dangling sites and their neighbors recursively up to maxdepth levels.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.shaperadius-Tuple{UnitCell, LatticeModels.AbstractShape, Int64}","page":"Library","title":"LatticeModels.shaperadius","text":"shape_radius(unitcell, shape, sites)\nshape_radius(lat, shape[, sites])\n\nCalculate the radius of a shape such that it contains appriximately sites sites.\n\nArguments\n\nunitcell: The UnitCell of the lattice. Might also be a lattice type.\nlat: The lattice. It is considered that the lattice was constructed in the same shape.\nshape: The shape to calculate the radius for.\nsites: The number of sites the shape should contain.\n\n\n\n\n\n","category":"method"},{"location":"library/#Bonds","page":"Library","title":"Bonds","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"core/bonds.jl\", \"lattices/bravais/bonds.jl\", \"lattices/bravais/nearestneighbor.jl\"]\nFilter = t -> t ∉ (LatticeModels.AbstractBonds, LatticeModels.AbstractTranslation, \n LatticeModels.DirectedBonds)","category":"page"},{"location":"library/#LatticeModels.AdjacencyMatrix","page":"Library","title":"LatticeModels.AdjacencyMatrix","text":"AdjacencyMatrix{LT} where {LT<:Lattice}\n\nRepresents the bonds on some lattice.\n\n\n\nAdjacencyMatrix(lat[, mat])\n\nConstruct an adjacency matrix from the mat matrix on the lat lattice.\n\nIf mat is not provided, it is assumed to be a zero matrix.\n\nExample\n\njulia> using LatticeModels\n\njulia> l = SquareLattice(2, 2);\n\njulia> a = AdjacencyMatrix(l)\nAdjacency matrix on 4-site SquareLattice in 2D space\nValues in a 4×4 SparseArrays.SparseMatrixCSC{Bool, Int64} with 0 stored entries:\n ⋅ ⋅ ⋅ ⋅\n ⋅ ⋅ ⋅ ⋅\n ⋅ ⋅ ⋅ ⋅\n ⋅ ⋅ ⋅ ⋅\n\njulia> site1, site2, site3, site4 = l;\n\njulia> a[site1, site2] = a[site2, site4] = a[site3, site4] = true;\n\njulia> a\nAdjacency matrix on 4-site SquareLattice in 2D space\nValues in a 4×4 SparseArrays.SparseMatrixCSC{Bool, Int64} with 6 stored entries:\n ⋅ 1 ⋅ ⋅\n 1 ⋅ ⋅ 1\n ⋅ ⋅ ⋅ 1\n ⋅ 1 1 ⋅\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.AdjacencyMatrix-Tuple{Function, LatticeModels.AbstractLattice}","page":"Library","title":"LatticeModels.AdjacencyMatrix","text":"AdjacencyMatrix(f, lat)\n\nConstructs an adjacency matrix from the function f that returns if the sites are connected on the lat lattice.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.AdjacencyMatrix-Tuple{LatticeModels.AbstractBonds, Vararg{LatticeModels.AbstractBonds}}","page":"Library","title":"LatticeModels.AdjacencyMatrix","text":"AdjacencyMatrix([lat, ]bonds...)\n\nConstructs an adjacency matrix from the bonds. If lat is not provided, it is inferred from the bonds.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.SiteDistance","page":"Library","title":"LatticeModels.SiteDistance","text":"SiteDistance(f, lat)\n\nA bonds type that connects sites based on the distance between them.\n\nArguments\n\nf: A function that takes a distance and returns if the distance is allowed.\nlat: The lattice where the bonds are defined.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.Translation","page":"Library","title":"LatticeModels.Translation","text":"Translation <: AbstractTranslation\n\nA spatial translation on some lattice.\n\nFields\n\nlat: The lattice where the translations are defined.\nR: The vector of the translation.\n\nExample\n\njulia> using LatticeModels\n\njulia> gl = GenericLattice([(1, 1), (1, 2), (2, 1), (2, 2)])\n4-site GenericLattice{GenericSite{2}} in 2D space:\n Site at [1.0, 1.0]\n Site at [1.0, 2.0]\n Site at [2.0, 1.0]\n Site at [2.0, 2.0]\n\njulia> tr = Translation(gl, [1, 0]) # Translation by [1, 0]\nTranslation by [1.0, 0.0]\n on 4-site GenericLattice{GenericSite{2}} in 2D space\n\njulia> site1 = gl[!, x = 1, y = 1] # Site at [1, 1]\n2-dim GenericSite{2} at [1.0, 1.0]\n\njulia> site1 + tr # Translated site\n2-dim GenericSite{2} at [2.0, 1.0]\n\njulia> site1 - tr # Inverse translation\n2-dim GenericSite{2} at [0.0, 1.0]\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.UndefinedLattice","page":"Library","title":"LatticeModels.UndefinedLattice","text":"UndefinedLattice\n\nA lattice that is not defined. The bonds can be 'defined' on it in context where the lattice is already defined before, e. g. in construct_operator.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.adapt_bonds-Tuple{Any, LatticeModels.AbstractLattice}","page":"Library","title":"LatticeModels.adapt_bonds","text":"adapt_bonds(bonds, lat)\n\nAdapt the bonds to the lattice lat. The output can be a different type of bonds, more fitting for the concrete type of lattice.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.adjacentsites-Tuple{AdjacencyMatrix, LatticeModels.AbstractSite}","page":"Library","title":"LatticeModels.adjacentsites","text":"adjacentsites(bonds, site)\n\nReturns the sites that are connected to site by the bonds.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.sitedistance-Tuple{LatticeModels.AbstractLattice, LatticeModels.AbstractSite, LatticeModels.AbstractSite}","page":"Library","title":"LatticeModels.sitedistance","text":"sitedistance([lat, ]site1, site2)\n\nReturns the distance between two sites on the lat lattice, taking boundary conditions into account.\n\nArguments\n\nlat: The lattice where the sites are defined.\nsite1 and site2: The sites to measure the distance between.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.translate_to_nearest-Tuple{LatticeModels.AbstractLattice, LatticeModels.AbstractSite, LatticeModels.AbstractSite}","page":"Library","title":"LatticeModels.translate_to_nearest","text":"translate_to_nearest(lat, site1, site2)\n\nTranslate site2 to its equivalent nearest to site1 in the lattice lat, taking the boundary conditions into account.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.Bravais","page":"Library","title":"LatticeModels.Bravais","text":"Bravais[ lattice_coords ]\n\nA convenient constructor for a BravaisTranslation that does not permute sublattices.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.BravaisTranslation","page":"Library","title":"LatticeModels.BravaisTranslation","text":"BravaisTranslation([site_indices, ]translate_uc)\nBravaisTranslation(site_indices)\nBravaisTranslation([site_indices; ]axis[, dist=1])\n\nA convenient constructor for a BravaisTranslation object.\n\nArguments\n\nsite_indices: a ::Int => ::Int pair with indices of sites connected by the bond;\n\nif omitted, the bond connects sites with the same sublattice index.\n\ntranslate_uc: The unit cell offset.\n\nKeyword arguments\n\naxis: The hopping direction axis in terms of unit cell vectors.\ndist: The hopping distance in terms of unit cell vectors.\n\nIf site_indices are equal or undefined and translate_uc is zero, the translation is considered to be a translation of all sites to themselves. An error will be thrown in this case.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.BravaisTranslation-2","page":"Library","title":"LatticeModels.BravaisTranslation","text":"BravaisTranslation{T, N}\n\nA struct representing bonds in some direction in a lattice.\n\nNote that though the dimension count for the bond is static, it is automatically compatible with higher-dimensional lattices.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.NearestNeighbor","page":"Library","title":"LatticeModels.NearestNeighbor","text":"NearestNeighbor{N}\n\nA bonds type that connects sites that are nearest neighbors of order N on some lattice.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.NearestNeighbor-2","page":"Library","title":"LatticeModels.NearestNeighbor","text":"NearestNeighbor(lat[, N=1])\n\nReturns the nearest neighbor bonds of order N for the lattice lat.\n\nExample\n\njulia> using LatticeModels\n\njulia> lat = HoneycombLattice(5, 5);\n\njulia> NearestNeighbor(lat)\nBravaisSiteMapping with 3 translations:\n 1 => 2, [0, -1]\n 1 => 2, [-1, 0]\n 1 => 2, [0, 0]\n on 50-site HoneycombLattice in 2D space\n\njulia> lat = SquareLattice(3, 3, 3, 3);\n\njulia> NearestNeighbor(lat, 4)\nBravaisSiteMapping with 12 translations:\n Bravais[1, -1, -1, -1]\n Bravais[1, 1, -1, -1]\n Bravais[1, -1, 1, -1]\n Bravais[1, 1, 1, -1]\n Bravais[2, 0, 0, 0]\n Bravais[0, 2, 0, 0]\n Bravais[0, 0, 2, 0]\n Bravais[1, -1, -1, 1]\n Bravais[1, 1, -1, 1]\n ⋮\n on 81-site SquareLattice in 4D space\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.getnnbonds-Tuple{LatticeModels.AbstractLattice}","page":"Library","title":"LatticeModels.getnnbonds","text":"getnnbonds(lat)\n\nReturns the nearest neighbor bonds of the lattice lat.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.setnnbonds-Tuple{LatticeModels.AbstractLattice, Vararg{LatticeModels.AbstractBonds}}","page":"Library","title":"LatticeModels.setnnbonds","text":"setnnbonds(lat, args...; overwrite=false)\n\nAdds the nearest neighbor bonds args to the lattice lat. If overwrite is true, the default nearest neighbor bonds are replaced by args. Otherwise, the new bonds are merged with the default.\n\nEach args can be a bonds type or a distance-bonds pair.\n\nExample\n\njulia> using LatticeModels\n\njulia> lat = SquareLattice(3, 3);\n\njulia> lat2 = setnnbonds(lat, SiteDistance(0 .. 1), SiteDistance(1 .. 2));\n\njulia> lat2.nnbonds\nNearest neighbor hoppings:\n #1 =>\n SiteDistance(0 .. 1)\n #2 =>\n SiteDistance(1 .. 2)\n\n\n\n\n\n","category":"method"},{"location":"library/#Boundary-conditions","page":"Library","title":"Boundary conditions","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"core/boundaries.jl\"]","category":"page"},{"location":"library/#LatticeModels.BoundaryConditions","page":"Library","title":"LatticeModels.BoundaryConditions","text":"BoundaryConditions\n\nA collection of boundary conditions for a lattice.\n\nFields\n\nbcs: A tuple of boundary conditions.\ndepth: The upper limit of the depth of the boundary conditions (used for routing).\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.FunctionBoundary","page":"Library","title":"LatticeModels.FunctionBoundary","text":"FunctionBoundary <: Boundary\n\nA boundary condition with a function that returns the phase factor for a given site. The boundary condition is encoded in form ψ(x + R) = f(x)ψ(x), where f(x) is the function and R is the translation vector.\n\n\n\nFunctionBoundary(f, translation)\n\nConstruct a FunctionBoundary with a given function and translation.\n\nArguments\n\nf: The function that returns the phase factor for a given site.\ntranslation: The translation vector of the boundary representad as AbstractTranslation. If an array is passed, it is converted to Translation automatically.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.TwistedBoundary","page":"Library","title":"LatticeModels.TwistedBoundary","text":"TwistedBoundary <: Boundary\n\nA boundary condition with a phase twist. A PeriodicBoundary is a special case of TwistedBoundary with zero twist.\n\n\n\nTwistedBoundary(translation, Θ)\n\nConstruct a TwistedBoundary with a given translation and twist angle.\n\nArguments\n\ntranslation: The translation vector of the boundary representad as AbstractTranslation. If an array is passed, it is converted to Translation automatically.\nΘ: The twist angle in radians.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.PeriodicBoundary-Tuple{Any}","page":"Library","title":"LatticeModels.PeriodicBoundary","text":"PeriodicBoundary(translation)\n\nConstruct a PeriodicBoundary with a given translation.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.setboundaries-Tuple{LatticeModels.AbstractLattice, BoundaryConditions}","page":"Library","title":"LatticeModels.setboundaries","text":"setboundaries(lat, boundaries...[; checkboundaries=true, rmdup=false])\n\nSet the boundary conditions for the lattice lat.\n\nArguments\n\nlat: The lattice.\nboundaries: The boundary conditions. It can be a single Boundary or a Tuple of Boundary objects.\n\nKeyword arguments\n\ncheckboundaries: If true, check if the boundary conditions overlap within the lattice sites.\nrmdup: If true, remove duplicate sites from the lattice.\n\nExample\n\njulia> using LatticeModels\n\njulia> l = SquareLattice(4, 4);\n\njulia> l2 = setboundaries(l, [4, 0] => true, [0, 4] => pi);\n\njulia> l2.boundaries\nBoundary conditions (depth = 1):\n Bravais[4, 0] → periodic\n Bravais[0, 4] → twist θ = 3.14\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeValue","page":"Library","title":"LatticeValue","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"core/latticevalue.jl\"]","category":"page"},{"location":"library/#LatticeModels.LatticeValue","page":"Library","title":"LatticeModels.LatticeValue","text":"LatticeValue{T, LT}\n\nRepresents a value of type T on a LT lattice.\n\nFields\n\nlattice: the AbstractLattice object the value is defined on\nvalues: the values on different sites\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.LatticeValue-Tuple{LatticeModels.AbstractLattice, AbstractVector}","page":"Library","title":"LatticeModels.LatticeValue","text":"LatticeValue(lat, values)\n\nConstructs a LatticeValue object.\n\nArguments\n\nlat: the lattice the value is defined on.\nvalues: an AbstractVector of values on the lattice.\n\nExample\n\njulia> using LatticeModels\n\njulia> l = SquareLattice(2, 2);\n\njulia> LatticeValue(l, [1, 2, 3, 4]) # Custom values\nLatticeValue{Int64} on a 4-site SquareLattice in 2D space\nValues stored in a Vector{Int64}:\n[1, 2, 3, 4]\n\njulia> x = LatticeValue(l, :x) # x-coordinate\nLatticeValue{Float64} on a 4-site SquareLattice in 2D space\nValues stored in a Vector{Float64}:\n[1.0, 1.0, 2.0, 2.0]\n\njulia> l2 = SquareLattice(3, 3);\n\njulia> y = LatticeValue(l2, :y) # y-coordinate\nLatticeValue{Float64} on a 9-site SquareLattice in 2D space\nValues stored in a Vector{Float64}:\n[1.0, 2.0, 3.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0]\n\njulia> x + y\nERROR: Matching lattices expected.\nGot following:\n #1: 4-site SquareLattice in 2D space\n #2: 9-site SquareLattice in 2D space\n[...]\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.LatticeValue-Tuple{LatticeModels.AbstractLattice, LatticeModels.SiteProperty}","page":"Library","title":"LatticeModels.LatticeValue","text":"LatticeValue(lat, prop)\n\nGenerates a LatticeValue representing the site property prop on lattice lat.\n\nArguments\n\nlat: the lattice the value is defined on.\nprop: the SiteProperty to be represented. Can be a SiteProperty or a Symbol defining it.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.brastate-Tuple{LatticeValue}","page":"Library","title":"LatticeModels.brastate","text":"brastate(lv)\n\nConverts a LatticeValue to a Bra wavefunction vector.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.coordvalue-Tuple{LatticeModels.AbstractLattice, Int64}","page":"Library","title":"LatticeModels.coordvalue","text":"coordvalue(lat, coord)\n\nGenerates a LatticeValue representing the spatial coordinate coord on lattice lat.\n\nArguments\n\nlat: the lattice the value is defined on.\ncoord: the coordinate to be represented. Can be an integer or a symbol.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.coordvalues-Tuple{LatticeModels.AbstractLattice}","page":"Library","title":"LatticeModels.coordvalues","text":"coordvalues(lat)\n\nGenerates a tuple of LatticeValues representing spatial coordinates on lattice lat.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.ketstate-Tuple{LatticeValue}","page":"Library","title":"LatticeModels.ketstate","text":"ketstate(lv)\n\nConverts a LatticeValue to a Ket wavefunction vector.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.project-Tuple{LatticeValue, LatticeModels.SiteProperty}","page":"Library","title":"LatticeModels.project","text":"project(lv, axis)\n\nProjects the lv::LatticeValue along the given axis.\n\nArguments\n\nlv: the LatticeValue to be projected.\naxis: the SiteProperty describing the axis to be projected along.\n\n\n\n\n\n","category":"method"},{"location":"library/#Operators-and-observables","page":"Library","title":"Operators and observables","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"operators/bases.jl\", \"operators/miscoperators.jl\", \"operators/manybody.jl\", \n \"operators/latticeutils.jl\"]","category":"page"},{"location":"library/#LatticeModels.LatticeBasis","page":"Library","title":"LatticeModels.LatticeBasis","text":"LatticeBasis <: QuantumOpticsBase.Basis\n\nBasis for a lattice system.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.coordoperator-Tuple{Union{LatticeBasis, CompositeBasis{S, Tuple{BT, LatticeBasis{LT}}} where {S, BT, LT}}, Any}","page":"Library","title":"LatticeModels.coordoperator","text":"coordoperator(sys, crd)\ncoordoperator(basis, crd)\ncoordoperator(lat[, internal], crd)\n\nGenerate a coordinate operator for the given lattice.\n\nArguments\n\nsys: a System for which the coordinate operators are to be generated.\nbasis: a one-particle Basis for which the coordinate operators are to be generated.\nlat: a lattice for which the coordinate operators are to be generated.\ninternal: The basis for the internal degrees of freedom.\ncrd: The coordinate to generate the operator for. Must be an integer representing the coordinate index (e. g. 1 for x, 2 for y, etc.) or a symbol (e. g. :x, :y, etc.).\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.coordoperators-Tuple{Union{LatticeBasis, CompositeBasis{S, Tuple{BT, LatticeBasis{LT}}} where {S, BT, LT}}}","page":"Library","title":"LatticeModels.coordoperators","text":"coordoperators(sys)\ncoordoperators(basis)\ncoordoperators(lat[, internal])\n\nGenerate a Tuple of coordinate operators for the given lattice.\n\nArguments\n\nsys: a System for which the coordinate operators are to be generated.\nbasis: a one-particle Basis for which the coordinate operators are to be generated.\nlat: a lattice for which the coordinate operators are to be generated.\ninternal: The basis for the internal degrees of freedom.\n\n\n\n\n\n","category":"method"},{"location":"library/#QuantumOpticsBase.transition","page":"Library","title":"QuantumOpticsBase.transition","text":"QuantumOpticsBase.transition(sys::System, site1::LatticeSite, site2::LatticeSite[, op; field])\nQuantumOpticsBase.transition(sys::System, i1::Int, i2::Int[, op; field])\n\nGenerate a transition operator between two local states in lattice space. States can be defined by LatticeSites or integers.\n\nStandard rules for functions accepting Systems apply.\n\n\n\n\n\n","category":"function"},{"location":"library/#LatticeModels.interaction-Tuple{Function, Type{<:Number}, NParticles}","page":"Library","title":"LatticeModels.interaction","text":"interaction(f, [T, ]sys)\n\nCreate an two-site interaction operator for a given NParticles system. The function f takes two arguments, which are the two sites, and returns the interaction energy.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.interaction-Union{Tuple{K}, Tuple{Function, Type{<:Number}, NParticles, Val{K}}} where K","page":"Library","title":"LatticeModels.interaction","text":"interaction(f, [T, ]sys, K[; affect_internal=true])\n\nCreate an 2K-site interaction operator for a given NParticles system. The function f takes two K-tuples of integer numbers, which are site indices for creation and annihilation operators, and returns the interaction energy.\n\nIf affect_internal is true (default), the interaction operator will act on the internal degrees of freedom as well, and f will take four K-tuples — lattice and internal indices for creation and annihilation operators. If the system has no internal degrees of freedom, affect_internal will automatically be set to false and f will take two K-tuples.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.AdjacencyMatrix-Tuple{DataOperator{BT, BT} where BT<:Union{LatticeBasis, CompositeBasis{S, Tuple{BT, LatticeBasis{LT}}} where {S, BT, LT}}}","page":"Library","title":"LatticeModels.AdjacencyMatrix","text":"AdjacencyMatrix(op::Operator)\n\nGenerates an AdjacencyMatrix for the provided operator.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.localdensity-Tuple{Union{DataOperator{var\"#s184\", var\"#s184\"}, Bra{var\"#s184\"}, Ket{var\"#s184\"}} where var\"#s184\"<:Union{LatticeBasis, CompositeBasis{S, Tuple{BT, LatticeBasis{LT}}} where {S, BT, LT}}}","page":"Library","title":"LatticeModels.localdensity","text":"localdensity(state)\n\nCompute the local density of given state. The result is a LatticeValue with the same lattice as the input state.\n\nArguments\n\nstate: A Ket or Bra representing the wavefunction or an Operator representing the density matrix.\n\n\n\n\n\n","category":"method"},{"location":"library/#Hamiltonians","page":"Library","title":"Hamiltonians","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"operators/system.jl\", \"operators/builder.jl\", \"operators/constructoperator.jl\",\n \"operators/magneticfield.jl\", \"zoo/magneticfields.jl\"]","category":"page"},{"location":"library/#LatticeModels.Hamiltonian","page":"Library","title":"LatticeModels.Hamiltonian","text":"Hamiltonian <: QuantumOpticsBase.DataOperator\n\nA wrapper for a Hamiltonian operator. Contains the operator matrix and the system it acts on.\n\n\n\nHamiltonian(sys, op)\n\nCreate a Hamiltonian operator for a given system and a given operator.\n\nArguments\n\nsys: the system the Hamiltonian acts on.\nop: the operator matrix.\n\nExample\n\njulia> using LatticeModels\n\njulia> l = SquareLattice(4, 4);\n\njulia> H = tightbinding_hamiltonian(l)\nHamiltonian(dim=16x16)\nSystem: One particle on 16-site SquareLattice in 2D space\n16×16 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 48 stored entries:\n⎡⠪⡢⠑⢄⠀⠀⠀⠀⎤\n⎢⠑⢄⠪⡢⠑⢄⠀⠀⎥\n⎢⠀⠀⠑⢄⠪⡢⠑⢄⎥\n⎣⠀⠀⠀⠀⠑⢄⠪⡢⎦\n\njulia> l2 = SquareLattice(5, 5);\n\njulia> H2 = tightbinding_hamiltonian(l2)\nHamiltonian(dim=25x25)\nSystem: One particle on 25-site SquareLattice in 2D space\n25×25 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 80 stored entries:\n⎡⠪⡢⡈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⎤\n⎢⠢⡈⠠⡢⡈⠢⡀⠀⠀⠀⠀⠀⠀⎥\n⎢⠀⠈⠢⡈⠊⡠⡈⠢⡀⠀⠀⠀⠀⎥\n⎢⠀⠀⠀⠈⠢⡈⠪⠂⡈⠢⡀⠀⠀⎥\n⎢⠀⠀⠀⠀⠀⠈⠢⡈⠪⡢⠈⠢⡀⎥\n⎢⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠪⡢⡀⎥\n⎣⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠈⠀⎦\n\njulia> H + H2\nERROR: Incompatible Hamiltonians:\n #1: One particle on 16-site SquareLattice in 2D space\n #2: One particle on 25-site SquareLattice in 2D space\n[...]\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.NParticles-Union{Tuple{SampleT}, Tuple{SampleT, Any}} where SampleT<:LatticeModels.Sample","page":"Library","title":"LatticeModels.NParticles","text":"NParticles(lat[, internal], N[; T=0, statistics=FermiDirac])\nNParticles(sys, N[; T=0, statistics=FermiDirac])\n\nCreate a manybody system with a given lattice and a given number of particles.\n\nArguments\n\nlat: the lattice of the system.\ninternal: The basis for the internal degrees of freedom.\nsys: a one-particle system.\nN: the number of particles in the system.\n\nKeyword Arguments\n\nT: the temperature of the system. Default is 0.\nstatistics: the statistics of the particles. Default is FermiDirac.\n\nExample\n\njulia> using LatticeModels\n\njulia> lat = SquareLattice(3, 3);\n\njulia> NParticles(lat, 4, statistics=BoseEinstein)\nNParticles(4 bosons) on 9-site SquareLattice in 2D space\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.System-Tuple{LatticeModels.Sample}","page":"Library","title":"LatticeModels.System","text":"System(lat[, internal; T, μ, N, statistics])\n\nCreate a system with a given lattice and optionally internal degrees of freedom.\n\nArguments\n\nlat: the lattice of the system.\ninternal: The basis for the internal degrees of freedom.\n\nKeyword Arguments\n\nT: the temperature of the system. Default is 0.\nμ: the chemical potential of the system. Use mu synonym if Unicode input is not available.\nN: the number of particles in the system.\nstatistics: the statistics of the particles. Default is FermiDirac.\n\nExample\n\njulia> using LatticeModels\n\njulia> lat = SquareLattice(3, 3);\n\njulia> System(lat)\nOne particle on 9-site SquareLattice in 2D space\n\njulia> System(lat, N=4, statistics=BoseEinstein)\n4 non-interacting bosons on 9-site SquareLattice in 2D space\n\njulia> System(lat, mu=0, statistics=BoseEinstein)\nNon-interactng bosons with fixed μ=0.0 on 9-site SquareLattice in 2D space\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.sample-Tuple{LatticeBasis}","page":"Library","title":"LatticeModels.sample","text":"Returns the Sample of the object.\n\nDefine this function for your type to implement Sample API.\n\ninfo: Info\nThis function can be considered stable internal API. Feel free to use it in your packages.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.OperatorBuilder","page":"Library","title":"LatticeModels.OperatorBuilder","text":"OperatorBuilder\n\nA helper struct for building custom operators. This struct is used to build operators for a given system or lattice.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.OperatorBuilder-Union{Tuple{FieldT}, Tuple{SystemT}, Tuple{Type{<:Number}, SystemT}} where {SystemT<:System, FieldT<:LatticeModels.AbstractField}","page":"Library","title":"LatticeModels.OperatorBuilder","text":"OperatorBuilder([T, ]sys, [; field=NoField(), auto_hermitian=false])\nOperatorBuilder([T, ]lat, [internal; field=NoField(), auto_hermitian=false])\n\nConstruct an OperatorBuilder for a given system or lattice.\n\nArguments\n\nT: The type of the matrix elements. Defaults to ComplexF64.\nsys: A System object representing the system.\nlat: The lattice on which the operator is defined.\ninternal: The basis for the internal degrees of freedom.\n\nKeyword arguments\n\nfield: The gauge field to use for the bond operators.\nauto_hermitian: Whether to automatically add the hermitian conjugate of the operator. Defaults to false.\n\nExample\n\njulia> using LatticeModels\n\njulia> l = SquareLattice(5, 5);\n\njulia> builder = OperatorBuilder(l, field=LandauGauge(0.1), auto_hermitian=true)\nOperatorBuilder(field=LandauGauge(0.1), auto_hermitian=true)\nSystem: One particle on 25-site SquareLattice in 2D space\n\njulia> hx = Bravais[1, 0]; hy = Bravais[0, 1];\n\njulia> for site in l; builder[site, site + hx] = builder[site, site + hy] = 1; end\n\njulia> H = Hamiltonian(builder)\nHamiltonian(dim=25x25)\nSystem: One particle on 25-site SquareLattice in 2D space\n25×25 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 80 stored entries:\n⎡⠪⡢⡈⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⎤\n⎢⠢⡈⠠⡢⡈⠢⡀⠀⠀⠀⠀⠀⠀⎥\n⎢⠀⠈⠢⡈⠊⡠⡈⠢⡀⠀⠀⠀⠀⎥\n⎢⠀⠀⠀⠈⠢⡈⠪⠂⡈⠢⡀⠀⠀⎥\n⎢⠀⠀⠀⠀⠀⠈⠢⡈⠪⡢⠈⠢⡀⎥\n⎢⠀⠀⠀⠀⠀⠀⠀⠈⠢⡀⠪⡢⡀⎥\n⎣⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠈⠀⎦\n\njulia> H == tightbinding_hamiltonian(l, field=LandauGauge(0.1))\ntrue\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.FastOperatorBuilder-Union{Tuple{FieldT}, Tuple{SystemT}, Tuple{Type{<:Number}, SystemT}} where {SystemT<:System, FieldT<:LatticeModels.AbstractField}","page":"Library","title":"LatticeModels.FastOperatorBuilder","text":"FastOperatorBuilder([T, ]sys, [; field=NoField(), auto_hermitian=false])\nFastOperatorBuilder([T, ]lat, [internal; field=NoField(), auto_hermitian=false])\n\nConstruct an OperatorBuilder for a given system or lattice. This version of the constructor uses a slightly faster internal representation of the operator matrix, but only allows increment/decrement assignments. builder[site1, site2] += 1 is allowed, but builder[site1, site2] = 1 is not.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.construct_hamiltonian-Tuple{Type, System, Vararg{Any}}","page":"Library","title":"LatticeModels.construct_hamiltonian","text":"construct_hamiltonian([T, ]sys, terms...[; field])\nconstruct_hamiltonian([T, ]lat[, internal, terms...; field])\n\nConstruct a Hamiltonian for the given system. Does the same as construct_operator, but wraps the result in a Hamiltonian type.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.construct_operator-Tuple{Type, System, Vararg{Any}}","page":"Library","title":"LatticeModels.construct_operator","text":"construct_operator([T, ]sys, terms...[; field])\nconstruct_operator([T, ]lat[, internal, terms...; field])\n\nConstruct an operator for the given system.\n\nEach of the terms describes a term of the Hamiltonian. The term can be given in several ways:\n\nA DataOperator on the lattice, internal or composite basis (will be matched automatically).\nA Pair of an \"internal\" and an \"on-lattice\" part (e.g. int_p => lat_p):\nThe \"internal\" part can be a DataOperator, a matrix or a number.\nThe \"on-lattice\" part can be a LatticeValue (represents a diagonal term), a site (represents a local on-site potential), a bond (represents a hopping term) or a site1 => site2 pair (represents a single hopping).\nIdentity \"internal\" or \"on-lattice\" parts can be omitted.\n\nSee documentation for more details.\n\nArguments\n\nT: The element type of the Hamiltonian. Default is ComplexF64.\nsys: The System for which the Hamiltonian is constructed.\nlat: The lattice for which the Hamiltonian is constructed.\ninternal: The basis for the internal degrees of freedom.\n\nKeyword Arguments\n\nfield: The gauge field to use for the bond operators. Default is NoField().\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.tightbinding_hamiltonian-Tuple{Type, System, Vararg{Any}}","page":"Library","title":"LatticeModels.tightbinding_hamiltonian","text":"tightbinding_hamiltonian([T, ]sys[, args...; t1=1, t2=0, t3=0, field])\ntightbinding_hamiltonian([T, ]lat[, internal, args...; t1=1, t2=0, t3=0, field])\n\nConstruct a tight-binding Hamiltonian for the given system.\n\nArguments\n\nT: The element type of the Hamiltonian. Default is ComplexF64.\nsys: The System for which the Hamiltonian is constructed.\nlat: The lattice for which the Hamiltonian is constructed.\ninternal: The basis for the internal degrees of freedom.\n\nAll other arguments are interpreted as terms of the Hamiltonian and passed to construct_hamiltonian.\n\nKeyword Arguments\n\nt1, t2, t3: The hopping amplitudes for the nearest, next-nearest, and next-next-nearest neighbors, respectively.\nfield: The gauge field to use for the bond operators. Default is NoField().\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.GaugeField","page":"Library","title":"LatticeModels.GaugeField","text":"GaugeField <: AbstractField\n\nA gauge field defined by a vector potential function.\n\n\n\nGaugeField(func; n)\n\nCreate a gauge field with a given vector potential function func.\n\nArguments\n\nfunc: a function that takes a point in space and returns the vector potential at this point as a SVector or Tuple.\nn: the number of steps to use in the trapezoidal rule integration.\n\nExample\n\nfield = GaugeField(n = 10) do p\n (-0.5 * p[2], 0.5 * p[1], 0)\nend\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.LineIntegralGaugeField","page":"Library","title":"LatticeModels.LineIntegralGaugeField","text":"LineIntegralGaugeField <: AbstractField\n\nA gauge field defined by a line integral function.\n\n\n\nLineIntegralGaugeField(func)\n\nCreate a gauge field with a given line integral function func. The function should take two points in space and return the line integral of the vector potential between these points.\n\nExample\n\nfield = LineIntegralGaugeField() do p1, p2\n 0.5 * (p1[1] * p2[2] - p1[2] * p2[1]) # A = [-y/2, x/2, 0]\nend\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.NoField","page":"Library","title":"LatticeModels.NoField","text":"NoField <: AbstractField\n\nA stub object representing zero magnetic field. Use it as a default magnetic field argument in functions - this will not cause any performance overhead.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.line_integral-Tuple{LatticeModels.AbstractField, Any, Any}","page":"Library","title":"LatticeModels.line_integral","text":"line_integral(field, p1, p2[, n_steps=1])\n\nCalculates the int_p1^p2 overrightarrowA cdot overrightarrowdl integral using the trapezoidal rule. Increase n_steps to improve accuracy (note that for linear field gauges like Landau or symmetrical the formula is already pefrectly accurate). If needed, redefine this function for specific field types — this is likely to boost accuracy and performance.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.vector_potential-Tuple{LatticeModels.AbstractField, Any}","page":"Library","title":"LatticeModels.vector_potential","text":"vector_potential(field, point)\n\nReturns vector potential overrightarrowA for field in location point.\n\nThis function should be defined for new field types, but it is not necessary unless you want to use built-in trapezoidal rule integrating.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.LandauGauge","page":"Library","title":"LatticeModels.LandauGauge","text":"LandauGauge <: AbstractField\n\nAn object representing Landau gauge uniform magnetic field along z-axis.\n\nFields\n\nB: The magnetic field value\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.PointFlux","page":"Library","title":"LatticeModels.PointFlux","text":"PointFlux{GaugeT} <: AbstractField\n\nAn object representing a small magnetic flux through given point. The field is directed along z-axis.\n\nFields\n\nflux: The magnetic flux value.\npoint: A Tuple of x and y coordinates of the point.\n\n\n\nPointFlux(flux, [point; gauge])\n\nConstruct a PointFlux object with given flux and point.\n\nThe optional gauge argument can be used to specify the gauge of the field. Possible values are :axial (A(r) = B times fracrr) and :singular (the the phase changes if the particle passes below the point). The default is :axial.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.SymmetricGauge","page":"Library","title":"LatticeModels.SymmetricGauge","text":"SymmetricGauge <: AbstractField\n\nAn object representing symmetrically gauged uniform magnetic field along z-axis.\n\nFields\n\nB: The magnetic field value\n\n\n\n\n\n","category":"type"},{"location":"library/#Built-in-models","page":"Library","title":"Built-in models","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"zoo/models.jl\"]","category":"page"},{"location":"library/#LatticeModels.bosehubbard-Tuple{Type, LatticeModels.AbstractLattice, Int64}","page":"Library","title":"LatticeModels.bosehubbard","text":"bosehubbard([type, ]lat, N[; U, T, t1, t2, t3, field])\n\nhatH = sum_ij^textsites t_ij c^dagger_i c_j + sum_i^textsites fracU2 hatn_i (hatn_i - 1)\n\nGenerates a Bose-Hubbard model hamiltonian on given lattice lat.\n\nArguments\n\ntype: The element type of the resulting operator. Default is ComplexF64.\nN: The number of particles.\n\nKeyword arguments\n\nt1, t2, t3 denote the coefficient on first, second and third hoppings respectively. By default t1 is equal to one, the rest are zero.\nU: The interaction strength. Default is zero.\nT: The temperature of the system. Default is zero.\nfield: The magnetic field. Default is NoField().\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.fermihubbard-Tuple{Type, LatticeModels.AbstractLattice, Int64}","page":"Library","title":"LatticeModels.fermihubbard","text":"fermihubbard([type, ]lat, N[; U, T, t1, t2, t3, field])\n\nhatH = sum_ij^textsites t_ij c^dagger_i c_j + sum_i^textsites fracU hatn_i^uparrow hatn_i^downarrow\n\nGenerates a Fermi-Hubbard model hamiltonian on given lattice lat.\n\nArguments\n\ntype: The element type of the resulting operator. Default is ComplexF64.\nN: The number of particles.\n\nKeyword arguments\n\nt1, t2, t3 denote the coefficient on first, second and third hoppings respectively. By default t1 is equal to one, the rest are zero.\nU: The interaction strength. Default is zero.\nT: The temperature of the system. Default is zero.\nfield: The magnetic field. Default is NoField().\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.haldane","page":"Library","title":"LatticeModels.haldane","text":"haldane(lat, t1, t2[, m=0; T, μ, field, statistics])\n\nhatH = sum_i^textsublattice A m c^dagger_i c_i + sum_j^textsublattice B m c^dagger_j c_j + sum_i j^textadjacent left( t_1 c^dagger_i c_j + h c right) + sum_i j^text2-connected counter-clockwise left( i cdot t_2 c^dagger_i c_j + h c right)\n\nGenerates a Haldane topological insulator hamiltonian operator on given lattice lat.\n\nKeyword arguments\n\nT: The temperature of the system. Default is zero.\nμ: The chemical potential. Use mu as a synonym if Unicode input is not available.\nfield: The magnetic field. Default is NoField().\nstatistics defines the particle statistics, either FermiDirac or BoseEinstein.\n\n\n\n\n\n","category":"function"},{"location":"library/#LatticeModels.kanemele-Tuple{System, Real, Real}","page":"Library","title":"LatticeModels.kanemele","text":"kanemele(lat, t1, t2[; T, μ, field, statistics])\n\nhatH = sum_i j^textadjacent left( t_1 c^dagger_i c_j + h c right) + sum_i j^text2-connected counter-clockwise left( i cdot t_2 c^dagger_i σ_z c_j + h c right)\n\nGenerates a Kane-Mele hamiltonian operator on given lattice lat.\n\nKeyword arguments\n\nT: The temperature of the system. Default is zero.\nμ: The chemical potential. Use keyword mu as a synonym if Unicode input is not available.\nfield: The magnetic field. Default is NoField().\nstatistics defines the particle statistics, either FermiDirac or BoseEinstein.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.qwz-Tuple{LatticeValue}","page":"Library","title":"LatticeModels.qwz","text":"qwz(m[; T, μ, field, statistics])\nqwz(lat[, m; T, μ, field, statistics])\n\nhatH = sum_i^textsites m_i c^dagger_i sigma_z c_i + sum_i^textsites left( c^dagger_i + hatx fracsigma_z - i sigma_x2 c_i + c^dagger_i + haty fracsigma_z - i sigma_y2 c_i + h c right)\n\nGenerates a QWZ model hamiltonian operator on given square lattice lat.\n\nArguments\n\nm (either a LatticeValue or a number) defines the m_i factors\n\nKeyword arguments\n\nT: The temperature of the system. Default is zero.\nμ: The chemical potential. Use mu as a synonym if Unicode input is not available.\nfield: The magnetic field. Default is NoField().\nstatistics defines the particle statistics, either FermiDirac or BoseEinstein.\n\n\n\n\n\n","category":"method"},{"location":"library/#Diagonalization","page":"Library","title":"Diagonalization","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"spectrum.jl\"]","category":"page"},{"location":"library/#LatticeModels.Eigensystem","page":"Library","title":"LatticeModels.Eigensystem","text":"Eigensystem{LT, MT} where {LT<:AbstractLattice, MT<:AbstractMatrix}\n\nEigenvalues and eigenvectors for some operator.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.densitymatrix-Tuple{LatticeModels.HamiltonianEigensystem{<:LatticeModels.FixedMu}}","page":"Library","title":"LatticeModels.densitymatrix","text":"densitymatrix(eig::Eigensystem[; T=0, μ, N, statistics, info=true])\n\nCreates an Operator representing a equilibrium density matrix, given the eigensystem eig of the Hamiltonian.\n\nThe resulting distribution will be Fermi-Dirac or Bose-Einstein if the statistics is specified, otherwise the Gibbs distribution will be used.\n\nKeyword arguments\n\nT is the temperature of the system. Default is zero.\nμ is the chemical potential. Use mu as a synonym if Unicode input is not available.\nN is the number of particles. If specified, the chemical potential is found automatically.\nstatistics defines the particle statistics, either FermiDirac or BoseEinstein.\ninfo is a boolean flag to enable/disable logging. Default is true.\n\nNote that if eig is a diagonalized Hamiltonian, the μ, N and statistics parameters are inserted automatically.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.diagonalize-Tuple{Hamiltonian, Val}","page":"Library","title":"LatticeModels.diagonalize","text":"diagonalize(op::DataOperator[, routine; params...])\n\nFinds eigenvalues and eigenvectors for a Operator and stores them in an Eigensystem.\n\nTwo routines are available:\n\n:lapack uses the eigen function from the standard LinearAlgebra package.\n:krylovkit uses the Lanczos algorithm from the KrylovKit package. Accepts following parameters:\nv0 is the starting vector. Default is rand(ComplexF64, size(op.data, 1)).\nn is the target number of eigenvectors. Default is 10.\nAll other keyword arguments are passed to the KrylovKit.eigsolve function. See its documentation for details.\n:auto automatically selects the routine based on the size of the operator.\n\nThe default routine is :lapack for dense operators. If the operator matrix is less than 5000×5000, it is automatically converted to a dense operator. In other cases :krylovkit is used.\n\nExample\n\njulia> using LatticeModels\n\njulia> l = SquareLattice(4, 4);\n\njulia> H = tightbinding_hamiltonian(l)\nHamiltonian(dim=16x16)\nSystem: One particle on 16-site SquareLattice in 2D space\n16×16 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 48 stored entries:\n⎡⠪⡢⠑⢄⠀⠀⠀⠀⎤\n⎢⠑⢄⠪⡢⠑⢄⠀⠀⎥\n⎢⠀⠀⠑⢄⠪⡢⠑⢄⎥\n⎣⠀⠀⠀⠀⠑⢄⠪⡢⎦\n\njulia> eig = diagonalize(H)\nDiagonalized Hamiltonian (16 eigenvectors)\nEigenvalues in range -3.23607 .. 3.23607\nSystem: One particle on 16-site SquareLattice in 2D space\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.findgroundstate-Tuple{LatticeModels.HamiltonianEigensystem}","page":"Library","title":"LatticeModels.findgroundstate","text":"findgroundstate(eig::HamiltonianEigensystem)\nfindgroundstate(ham::Hamiltonian)\n\nFinds the ground state of a Hamiltonian. Returns the energy and the state.\n\nExample\n\neig = diagonalize(ham)\nE, ψ = findgroundstate(eig)\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.groundstate-Tuple{Any}","page":"Library","title":"LatticeModels.groundstate","text":"groundstate(eig::HamiltonianEigensystem)\ngroundstate(ham::Hamiltonian)\n\nFinds the ground state of a Hamiltonian. Returns the state.\n\nExample\n\neig = diagonalize(ham)\nψ = groundstate(eig)\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.projector-Tuple{Any, LatticeModels.AbstractEigensystem}","page":"Library","title":"LatticeModels.projector","text":"projector(f, eig::Eigensystem)\n\nReturns an Operator representing a function applied to the diagonalized operator defined by the formula below:\n\nhatmathcalP = sum_i f(A_i) psi_ipsi_i\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.projector-Tuple{LatticeModels.AbstractEigensystem}","page":"Library","title":"LatticeModels.projector","text":"projector(eig::Eigensystem)\n\nreturns an Operator that projects onto the eigenvectors of the spectrum, defined by the formula below.\n\nhatmathcalP = sum_i psi_ipsi_i\n\n\n\n\n\n","category":"method"},{"location":"library/#Green's-function","page":"Library","title":"Green's function","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"greenfunction.jl\"]","category":"page"},{"location":"library/#LatticeModels.GreenFunction","page":"Library","title":"LatticeModels.GreenFunction","text":"GreenFunction\n\nA Green's function for a given lattice and Hamiltonian.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.diagonalelements-Tuple{LatticeModels.GreenFunctionEval{<:System{<:LatticeModels.Sample{LT, Nothing} where LT}}}","page":"Library","title":"LatticeModels.diagonalelements","text":"diagonalelements(gf::GreenFunctionEval)\n\nReturn the diagonal elements of the Green's function as a LatticeValue.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.dos-Tuple{LatticeModels.AbstractEigensystem, Any}","page":"Library","title":"LatticeModels.dos","text":"dos(eig[, E; broaden])\ndos(gf[, E; broaden])\n\nCalculates the DOS (density of states) for a given eigensystem at energy E. If E is not specified, a function that calculates the DOS at a given energy is returned.\n\nArguments\n\neig is an Eigensystem or HamiltonianEigensystem.\ngf is a GreenFunction.\nE is the energy at which the DOS is calculated.\n\nKeyword arguments\n\nbroaden is the broadening factor for the energy levels, default is 0.1.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.greenfunction-Tuple{Any, Ket, Hamiltonian, Hamiltonian}","page":"Library","title":"LatticeModels.greenfunction","text":"greenfunction(psi0, hamp, hamm[; E₀, tol, kw...])\n\nCalculates the Green's function for a many-body system with a given initial state psi0.\n\nArguments\n\npsi0 is the initial state.\nhamp is the Hamiltonian for the subspace with one more particle than in psi0.\nhamm is the Hamiltonian for the subspace with one less particle than in psi0.\n\nKeyword arguments\n\nE₀ is the energy shift for the Green's function. Default is 0. Use E0 as a synonym if Unicode input is not available.\ntol is the tolerance for the new eigenvectors. Default is 1e-5.\n\nAll other keyword arguments are passed to the diagonalize function. See its documentation for details.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.greenfunction-Tuple{Any, LatticeModels.HamiltonianEigensystem{<:LatticeModels.OneParticleBasisSystem}}","page":"Library","title":"LatticeModels.greenfunction","text":"greenfunction(ham_eig::HamiltonianEigensystem)\n\nCreates a Green's function for a given one-body Hamiltonian eigensystem.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.ldos-Tuple{GreenFunction, Real}","page":"Library","title":"LatticeModels.ldos","text":"ldos(gf::GreenFunction, E[; broaden])\n\nCalculates the LDOS (local density of states) for a given Green's function at energy E. broaden is the broadening factor for the energy levels, default is 0.1.\n\n\n\n\n\n","category":"method"},{"location":"library/#Currents","page":"Library","title":"Currents","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"currents.jl\", \"zoo/currents.jl\"]\nFilter = t -> t ∉ (LatticeModels.AbstractCurrents, LatticeModels.AbstractTranslation)","category":"page"},{"location":"library/#LatticeModels.Currents","page":"Library","title":"LatticeModels.Currents","text":"Currents <: AbstractCurrents\n\nA AbstractCurrents instance that stores values for all currents explicitly.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.Currents-Tuple{LatticeModels.AbstractCurrents}","page":"Library","title":"LatticeModels.Currents","text":"Currents(currents[, adjacency_matrix])\n\nCreates a Currents instance for currents.\n\nArguments\n\ncurrents: The AbstractCurrents object to be turned into Currents. That might be time-consuming, because this requires evaluation of the current between all pairs.\nadjacency_matrix: If provided, the current will be evaluated only between adjacent sites.\n\nExamples\n\njulia> using LatticeModels\n\njulia> lat = SquareLattice(4, 4); site1, site2 = lat[1:2];\n\njulia> H0 = tightbinding_hamiltonian(lat); psi = groundstate(H0);\n\njulia> H1 = tightbinding_hamiltonian(lat, field=LandauGauge(0.1));\n\njulia> currents = DensityCurrents(H1, psi)\nDensity currents for system:\nOne particle on 16-site SquareLattice in 2D space\n\njulia> c2 = Currents(currents)\nCurrents{SparseArrays.SparseMatrixCSC{Float64, Int64}} on 16-site SquareLattice in 2D space\n\njulia> c2[site1, site2] ≈ currents[site1, site2]\ntrue\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.DensityCurrents","page":"Library","title":"LatticeModels.DensityCurrents","text":"DensityCurrents <: AbstractCurrents\n\nDensity currents for given state and given hamiltonian.\n\n\n\nDensityCurrents(hamiltonian, state)\n\nConstructs a DensityCurrents object for given hamiltonian and state.\n\nArguments\n\nhamiltonian: A Hamiltonian object representing the Hamiltonian of the system.\nstate: A Ket or Bra representing the wavefunction or an Operator representing the density matrix.\n\nExample\n\nExamples\n\njulia> using LatticeModels\n\njulia> lat = SquareLattice(4, 4);\n\njulia> H0 = tightbinding_hamiltonian(lat); psi = groundstate(H0);\n\njulia> H1 = tightbinding_hamiltonian(lat, field=LandauGauge(0.1));\n\njulia> currents = DensityCurrents(H1, psi)\nDensity currents for system:\nOne particle on 16-site SquareLattice in 2D space\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.LocalOperatorCurrents","page":"Library","title":"LatticeModels.LocalOperatorCurrents","text":"LocalOperatorCurrents <: AbstractCurrents\n\nLocal operator (e. g. spin) currents for given state and given hamiltonian.\n\n\n\nLocalOperatorCurrents(hamiltonian, state, op)\n\nConstructs a DensityCurrents object for given hamiltonian and state.\n\nArguments\n\nhamiltonian: A Hamiltonian object representing the Hamiltonian of the system.\nstate: A Ket or Bra representing the wavefunction or an Operator representing the density matrix.\nop: A local (on-site) operator; either an Operator or a matrix of such.\n\nExample\n\njulia> using LatticeModels\n\njulia> lat = SquareLattice(4, 4); site1, site2 = lat[1:2];\n\njulia> H0 = qwz(lat); psi = groundstate(H0);\n\njulia> H1 = qwz(lat, field=LandauGauge(0.1));\n\njulia> op = [1 0; 0 -1]; # Spin operator\n\njulia> currents = LocalOperatorCurrents(H1, psi, op)\nCurrents of Operator(Spin(1/2))\n 1 0\n 0 -1\nFor system:\nOne particle on (16-site SquareLattice in 2D space) ⊗ Spin(1/2)\n\njulia> op2 = one(SpinBasis(3//2)); # Invalid operator\n\njulia> LocalOperatorCurrents(H1, psi, op2)\nERROR: ArgumentError: Operator must be defined on the internal basis of the Hamiltonian.\n[...]\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.SubCurrents","page":"Library","title":"LatticeModels.SubCurrents","text":"SubCurrents{CT<:AbstractCurrents} <: AbstractCurrents\n\nA lazy wrapper for a Currents object representing the same currents but on a smaller lattice.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.currentsfrom-Tuple{LatticeModels.AbstractCurrents, Any}","page":"Library","title":"LatticeModels.currentsfrom","text":"currentsfrom(currents, src)\n\nCreate a LatticeValue object with the currents from src region to all other sites.\n\nArguments\n\ncurrents: The AbstractCurrents object to process.\nsrc: The source region. Can be a site/collection of sites or a LatticeValue{Bool} mask.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.currentsfromto","page":"Library","title":"LatticeModels.currentsfromto","text":"currentsfromto(currents, src[, dst])\n\nFinds the total current from src to dst regions. If dst is not provided, the current from src to all other sites is returned.\n\nArguments\n\ncurrents: The AbstractCurrents object to process.\nsrc: The source region.\ndst: The destination region.\n\nBoth src and dst can be a site/collection of sites or a LatticeValue{Bool} mask.\n\n\n\n\n\n","category":"function"},{"location":"library/#LatticeModels.lattice-Tuple{LatticeModels.AbstractCurrents}","page":"Library","title":"LatticeModels.lattice","text":"Gets the lattice where the given AbstractCurrents object is defined.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.mapgroup_currents-Tuple{Function, Function, LatticeModels.AbstractCurrents}","page":"Library","title":"LatticeModels.mapgroup_currents","text":"mapgroup_currents(f, group, currents[; sortresults=false, sortpairsby])\n\nFind the current between all possible pairs of sites, apply f to every site pair and group the result by value of f,\n\nArguments\n\nf: This function will be applied to all site pairs. Must accept two AbstractSites.\ngroup: This function will be used to group the current values for pairs with the same mapped value. Must accept a Vector of numbers.\ncurrents: The AbstractCurrents object to process.\n\nKeyword arguments\n\nsortresults: if true, the output arrays will be sorted by results of f.\nsortpairsby: if provided, the sites in each pair will be sorted by this function. Must accept one AbstractSite; by default the order of the sites in the pair matches their order in the lattice. The sign of the current will match the site order.\n\n\n\n\n\n","category":"method"},{"location":"library/#Evolution","page":"Library","title":"Evolution","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"Modules = [LatticeModels]\nPages = [\"evolution.jl\", \"timesequence.jl\"]\nFilter = t -> t ∉ (LatticeModels.EvolutionSolver,)","category":"page"},{"location":"library/#LatticeModels.CachedExp","page":"Library","title":"LatticeModels.CachedExp","text":"CachedExp([ham; threshold=1e-10, nztol=1e-14])\n\nA EvolutionSolver that finds the matrix exponential of the Hamiltonian and caches it. The matrix exponential is computed using a scaling and squaring method, so this solver works well with sparse or GPU arrays.\n\nArguments\n\nham: The Hamiltonian of the system. It can be an Operator or its matrix.\nthreshold: The threshold for the error in the matrix exponential.\nnztol: The tolerance for dropping small elements in the matrix exponential if it is sparse.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.Evolution","page":"Library","title":"LatticeModels.Evolution","text":"Evolution([solver, ]hamiltonian, states...; timedomain, namedstates...)\n\nCreate an Evolution object that can be used to evolve states in time according to the Schrödinger equation.\n\nArguments\n\nsolver: A EvolutionSolver object that will be used to evolve the states. If omitted, a CachedExp solver will be created.\nhamiltonian: The Hamiltonian of the system. It can be a matrix, a time-dependent operator or a function that returns the Hamiltonian at a given time.\nstates and namedstates: The states to be evolved. They can be Ket wavefunctions or DataOperator density matrices.\ntimedomain: The time domain to be used for the evolution. If omitted, the non-iterable Evolution object will be returned, and you will be able to call it with the time domain later.\n\nSee EvolutionSolver for more information about solvers.\n\nwarning: Warning\nPlease note that the Evolution object is a stateful iterator. This means that it keeps track of the current time and the states as they evolve. You can perform evolution multiple times, but the timeline will be kept and the states will be updated in place.Also do not edit the states in place, as this will affect the evolution. If you need to modify the states or save them, make a copy of them first.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.KrylovKitExp","page":"Library","title":"LatticeModels.KrylovKitExp","text":"KrylovKitExp([ham; kw...])\n\nA EvolutionSolver that uses the exponentiate function from KrylovKit.jl to evolve the wavefunction vectors. This solver is useful for large, sparse, time-dependent Hamiltonians.\n\nArguments\n\nham: The Hamiltonian of the system. It can be an Operator or its matrix.\nkw...: Keyword arguments to be passed to exponentiate.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.TimeSequence","page":"Library","title":"LatticeModels.TimeSequence","text":"TimeSequence{ET}\n\nA time-ordered sequence of values.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.TimeSequence-Tuple{Any, AbstractVector}","page":"Library","title":"LatticeModels.TimeSequence","text":"TimeSequence(times, values)\n\nConstructs a TimeSequence with the given times and values.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.TimeSequence-Tuple{Function, LatticeModels.EvolutionIterator}","page":"Library","title":"LatticeModels.TimeSequence","text":"TimeSequence(f, ev, times)\nTimeSequence(f, ev_iter)\n\nConstructs a TimeSequence by iterating the evolution iterator ev and applying the function f to each moment.\n\nArguments\n\nf: A function that takes a moment and returns a value. The function is applied to each moment in the evolution.\nev: An Evolution object.\ntimes: A range of times to evaluate the function at.\nev_iter: An evoltuion iterator that yields moments. Think of it as ev(times).\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.TimeSequence-Union{Tuple{}, Tuple{ET}} where ET","page":"Library","title":"LatticeModels.TimeSequence","text":"TimeSequence{ET}()\n\nConstructs an empty TimeSequence with eltype ET.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.differentiate!-Tuple{TimeSequence}","page":"Library","title":"LatticeModels.differentiate!","text":"differentiate!(tseq::TimeSequence)\n\nDifferentiate the values stored in tseq by time using the symmetric difference formula. The new values are written into tseq.\n\nExample\n\njulia> using LatticeModels\n\njulia> tseq = TimeSequence(0:0.1:10, 0:0.1:10) # f(t) = t\nTimeSequence{Float64} with 101 entry\nTimestamps in range 0.0 .. 10.0:\n 0.0 => 0.0\n 0.1 => 0.1\n 0.2 => 0.2\n 0.3 => 0.3\n 0.4 => 0.4\n 0.5 => 0.5\n 0.6 => 0.6\n 0.7 => 0.7\n 0.8 => 0.8\n ⋮\n\njulia> differentiate!(tseq) # f'(t) = 1\nTimeSequence{Float64} with 100 entries\nTimestamps in range 0.05 .. 9.95:\n 0.05 => 1.0\n 0.15 => 1.0\n 0.25 => 1.0\n 0.35 => 1.0\n 0.45 => 1.0\n 0.55 => 1.0\n 0.65 => 1.0\n 0.75 => 1.0\n 0.85 => 1.0\n ⋮\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.differentiate-Tuple{TimeSequence}","page":"Library","title":"LatticeModels.differentiate","text":"differentiate(tseq::TimeSequence)\n\nDifferentiate the values stored in tseq and create a copy; see differentiate!.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.integrate!-Tuple{TimeSequence}","page":"Library","title":"LatticeModels.integrate!","text":"integrate!(tseq::TimeSequence)\n\nIntegrate the values stored in tseq over time using the trapezoidal rule. The new values are written into tseq. The first value is set to zero.\n\nExample\n\njulia> using LatticeModels\n\njulia> tseq = TimeSequence(0:0.1:10, 0:0.1:10) # f(t) = t\nTimeSequence{Float64} with 101 entry\nTimestamps in range 0.0 .. 10.0:\n 0.0 => 0.0\n 0.1 => 0.1\n 0.2 => 0.2\n 0.3 => 0.3\n 0.4 => 0.4\n 0.5 => 0.5\n 0.6 => 0.6\n 0.7 => 0.7\n 0.8 => 0.8\n ⋮\n\njulia> integrate!(tseq) # F(t) = t^2 / 2\nTimeSequence{Float64} with 101 entry\nTimestamps in range 0.0 .. 10.0:\n 0.0 => 0.0\n 0.1 => 0.005\n 0.2 => 0.02\n 0.3 => 0.045\n 0.4 => 0.08\n 0.5 => 0.125\n 0.6 => 0.18\n 0.7 => 0.245\n 0.8 => 0.32\n ⋮\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.integrate-Tuple{TimeSequence}","page":"Library","title":"LatticeModels.integrate","text":"integrate(tseq::TimeSequence)\n\nIntegrate the values stored in tseq and create a copy; see integrate!.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.timerange-Tuple{TimeSequence}","page":"Library","title":"LatticeModels.timerange","text":"timerange(tseq::TimeSequence)\n\nReturns the range of the timestamps of the TimeSequence.\n\n\n\n\n\n","category":"method"},{"location":"library/#LatticeModels.timestamps-Tuple{TimeSequence}","page":"Library","title":"LatticeModels.timestamps","text":"timestamps(tseq::TimeSequence)\n\nReturns the timestamps of the TimeSequence.\n\n\n\n\n\n","category":"method"},{"location":"library/#Internals-2","page":"Library","title":"Internals","text":"","category":"section"},{"location":"library/","page":"Library","title":"Library","text":"LatticeModels.AbstractLattice\nLatticeModels.AbstractSite\nLatticeModels.AbstractBonds\nLatticeModels.DirectedBonds\nLatticeModels.AbstractTranslation\nLatticeModels.AbstractCurrents\nLatticeModels.LookupTable\nLatticeModels.EvolutionSolver\nLatticeModels.addlookuptable","category":"page"},{"location":"library/#LatticeModels.AbstractLattice","page":"Library","title":"LatticeModels.AbstractLattice","text":"AbstractLattice{SiteT}\n\nAn abstract type for a lattice of SiteT sites.\n\nMethods for subtypes to implement\n\nlength(l::AbstractLattice): Return the number of sites in the lattice.\nsite_index(l::AbstractLattice, site::SiteT): Return the index of the site in the lattice.\ngetindex(l::AbstractLattice, i::Int): Return the site with the given index.\ngetindex(l::AbstractLattice, is::AbstractVector{Int}): Return an AbstractLattice with the sites at the given indices.\n\nOptional methods for mutable lattices\n\nemptymutable(l::AbstractLattice, ::Type{SiteT}): Return an empty mutable instance of lattice.\ncopymutable(l::AbstractLattice): Return a mutable copy of the lattice.\npush!(l::AbstractLattice, site::SiteT): Add a site to the lattice.\ndeleteat!(l::AbstractLattice, is::AbstractVector{Int}): Remove the sites with the given indices from the lattice.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.AbstractSite","page":"Library","title":"LatticeModels.AbstractSite","text":"AbstractSite{N}\n\nAn abstract type for a site of a N-dimensional lattice.\n\nFields\n\ncoords: A SVector of size N representing the spatial coordinates of the site. All subtypes are expected to have this field.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.AbstractBonds","page":"Library","title":"LatticeModels.AbstractBonds","text":"AbstractBonds{LT}\n\nAn abstract type for bonds on some lattice.\n\nMethods for subtypes to implement\n\nlattice(bonds::AbstractBonds): Returns the lattice where the bonds are defined.\nisadjacent(bonds::AbstractBonds, site1::AbstractSite, site2::AbstractSite): Returns if the sites are connected by the bonds.\n\nOptional methods for subtypes to implement\n\nadapt_bonds(bonds::AbstractBonds, l::AbstractLattice)\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.DirectedBonds","page":"Library","title":"LatticeModels.DirectedBonds","text":"DirectedBonds{LT} <: AbstractBonds{LT}\n\nAn abstract type for bonds on some lattice that have a direction.\n\nMethods for subtypes to implement\n\nlattice(bonds::DirectionalBonds): Returns the lattice where the bonds are defined.\ndestinations(bonds::DirectionalBonds, site::AbstractSite): Returns the sites where the\n\nsite is connected to, accounting for the direction of the bonds.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.AbstractTranslation","page":"Library","title":"LatticeModels.AbstractTranslation","text":"AbstractTranslation{LT}\n\nAn abstract type for translations on some lattice.\n\nMethods for subtypes to implement\n\nlattice(bonds::AbstractTranslation): Returns the lattice where the translations are defined.\ndestination(bonds::AbstractTranslation, site::AbstractSite): Returns the site where the site is translated to.\n\nOptional methods for subtypes to implement\n\nadapt_bonds(bonds::AbstractTranslation, l::AbstractLattice): Adapt the translation to the lattice l. The output can be a different type of translation, more fitting for the concrete type of lattice.\ninv(bonds::AbstractTranslation): Returns the inverse of the translation, if any.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.AbstractCurrents","page":"Library","title":"LatticeModels.AbstractCurrents","text":"AbstractCurrents\n\nSupertype for all type representing currents-like values on a lattice. Subtypes must implement Base.getindex(::Int, ::Int) and lattice functions.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.LookupTable","page":"Library","title":"LatticeModels.LookupTable","text":"LookupTable\n\nA helper data structure to quickly find the index of a site in a lattice.\n\nRelies on sitekey(site) and secondarykey(function) functions to determine the index of a site in the lattice.\n\nWorks well under following assumptions:\n\nThe sitekey is some integer property of the sites.\nThe sites in the lattice are ordered by sitekey.\nThe numbering is mostly contiguous, i.e. there are no (or few) gaps in the numbering.\nThe secondarykey is also integer, mostly contiguous, ordered and unique for all sites with the same sitekey.\n\nSet them to nothing to disable usage.\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.EvolutionSolver","page":"Library","title":"LatticeModels.EvolutionSolver","text":"EvolutionSolver\n\nAbstract type for solvers that can be used to evolve states in time according to the Schrödinger equation.\n\nSee also concrete implementations: CachedExp, KrylovKitExp.\n\nMethods to implement\n\nupdate_solver!(solver, hamiltonian, dt, force=false): Update the solver to evolve the states according to the given Hamiltonian and time step. If force is true, the solver should always update, even if the Hamiltonian and time step are seemingly the same as the previous ones.\nstep!(solver, state, cache): Evolve the given state in time using the solver. The cache argument is used to store intermediate results and can be nothing if the solver does not need it.\nevolution_cache(solver, state): Return a cache object that can be used to store intermediate results for the given state. Returns nothing if the solver does not need a cache for the given state (this is the default implementation).\n\n\n\n\n\n","category":"type"},{"location":"library/#LatticeModels.addlookuptable","page":"Library","title":"LatticeModels.addlookuptable","text":"addlookuptable(lat)\n\nAdds a lookup table to the lattice lat and returns the lattice with the lookup table.\n\nwarning: Warning\nMake sure you add the lookup table to the lattice after you stop making changes to it. Otherwise the results may be unpredictable.This operation is not in-place.\n\n\n\n\n\n","category":"function"},{"location":"internals/","page":"Internals","title":"Internals","text":"This section contains the documentation for the internal structure of LatticeModels.jl. ","category":"page"},{"location":"internals/","page":"Internals","title":"Internals","text":"warning: Warning\nThis section of documentation is under construction. Some parts may be incomplete.","category":"page"},{"location":"internals/#Advanced-features","page":"Internals","title":"Advanced features","text":"","category":"section"},{"location":"internals/","page":"Internals","title":"Internals","text":"These features can be useful in non-trivial cases, but are not necessary for basic usage.","category":"page"},{"location":"internals/#AbstractLattice-interface","page":"Internals","title":"AbstractLattice interface","text":"","category":"section"},{"location":"internals/","page":"Internals","title":"Internals","text":"The base of LatticeModels.jl is its interfaces, allowing to define lattices with arbitrary geometry, topology and boundary conditions. The LatticeModels.AbstractLattice interface is the main interface for defining lattices.","category":"page"},{"location":"internals/","page":"Internals","title":"Internals","text":"Generally speaking, a lattice is a set of sites. Each site, in turn, has its spatial coordinates in its coords field and maybe some additional properties. It also must be a subtype of LatticeModels.AbstractSite.","category":"page"},{"location":"internals/","page":"Internals","title":"Internals","text":"Note that the bonds between sites and the boundary conditions are initially not part of the lattice, but are added to its metadata later.","category":"page"},{"location":"internals/#Basic-functions","page":"Internals","title":"Basic functions","text":"","category":"section"},{"location":"internals/#Site-lookup","page":"Internals","title":"Site lookup","text":"","category":"section"},{"location":"internals/#Mutable-lattices","page":"Internals","title":"Mutable lattices","text":"","category":"section"},{"location":"internals/#Site-properties","page":"Internals","title":"Site properties","text":"","category":"section"},{"location":"internals/#Lattice-metadata","page":"Internals","title":"Lattice metadata","text":"","category":"section"},{"location":"internals/#Shapes","page":"Internals","title":"Shapes","text":"","category":"section"},{"location":"internals/#AbstractBonds-interface","page":"Internals","title":"AbstractBonds interface","text":"","category":"section"},{"location":"internals/","page":"Internals","title":"Internals","text":"The LatticeModels.AbstractBonds interface is used to define different types of bonds between sites. Most generally speaking, such object is a mapping that decides if the sites are connected for each pair.","category":"page"},{"location":"internals/","page":"Internals","title":"Internals","text":"Note that there are three basic types of bonds in LatticeModels.jl:","category":"page"},{"location":"internals/","page":"Internals","title":"Internals","text":"LatticeModels.AbstractBonds: a most general interface. Basically, it is just a mapping from site pairs to boolean values.\nLatticeModels.DirectedBonds: this type of bonds defines a set of bonds that has a defined direction. The whole topology can be defined by the \"destination\" sites for each site. Since the bonds are usually sparse, the general performance of this type of bonds is much higher.\nLatticeModels.AbstractTranslation: this is a subtype of DirectedBonds, where every site has one or zero \"destination\" sites. This allows to increase the performance even more, and also to transform the sites in a convenient manner:","category":"page"},{"location":"internals/","page":"Internals","title":"Internals","text":"site1 = lat[!, x = 1, y = 1] # Get the site at [1, 1]\nT = Translation(lat, [1, 0]) # Translate the site by [1, 0] vector\nsite2 = site1 + T # `site2` is at [2, 1]","category":"page"},{"location":"internals/#Adapting-bonds-to-the-lattice","page":"Internals","title":"Adapting bonds to the lattice","text":"","category":"section"},{"location":"internals/#Boundary-conditions","page":"Internals","title":"Boundary conditions","text":"","category":"section"},{"location":"internals/#Diagonalizing-the-Hamiltonian","page":"Internals","title":"Diagonalizing the Hamiltonian","text":"","category":"section"},{"location":"internals/","page":"Internals","title":"Internals","text":"It is very easy to diagonalize a matrix in Julia. However, problems can arise when the matrix is of some custom type (e. g. sparse or a GPU array). By default LatticeModels.jl makes use of KrylovKit.jl to solve the eigenproblem using the Lanczos algorithm for non-trivial matrix types. However, sometimes it is necessary to use a different algorithm. The LatticeModels.diagonalize_routine is a simple way to add a new algorithm to the default toolchain.","category":"page"},{"location":"internals/#EvolutionSolvers","page":"Internals","title":"EvolutionSolvers","text":"","category":"section"},{"location":"internals/","page":"Internals","title":"Internals","text":"The LatticeModels.EvolutionSolver interface is used to solve the time-dependent Schrödinger equation. It is used in the Evolution struct to perform unitary evolution. As with the diagonalization problem, one can add a new algorithm to the default toolchain by creating a new EvolutionSolver type.","category":"page"},{"location":"internals/#Currents","page":"Internals","title":"Currents","text":"","category":"section"},{"location":"internals/","page":"Internals","title":"Internals","text":"The LatticeModels.AbstractCurrents interface allows to define different types of currents on the lattice. This allows it to be a lazy object, which computes the currents only when needed.","category":"page"},{"location":"internals/","page":"Internals","title":"Internals","text":"To implement basic currents semantics, you need to define the following methods:","category":"page"},{"location":"internals/","page":"Internals","title":"Internals","text":"LatticeModels.lattice(your_currents): returns the lattice, on which the currents are defined.\nBase.getindex(your_currents, i::Int, j::Int): returns the current between sites with numbers i and j. This is done in such a manner, because you do not usually need the site properties to calculate the currents.","category":"page"},{"location":"manual/greenfunction/#Green's-function","page":"Green's function","title":"Green's function","text":"","category":"section"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"This chapter is dedicated to the Green's function formalism. It is a powerful tool for studying many-body systems, especially in the context of condensed matter physics. The Green's function is a matrix-valued function of two variables, which can be used to calculate various physical quantities, such as the density of states or some topological invariants.","category":"page"},{"location":"manual/greenfunction/#Introduction","page":"Green's function","title":"Introduction","text":"","category":"section"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"In the scope of this package, the Green's function is defined by this formula:","category":"page"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"G_alphabeta(omega) = langle 0 hata_alpha frac1omega - (hatH - E_0) hata_beta^dagger 0 rangle - \nlangle 0 hata_alpha^dagger frac1omega + (hatH - E_0) hata_beta 0 rangle","category":"page"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"where H is the Hamiltonian of the system, 0 rangle is the ground state of the system (which is the vacuum for non-interacting systems), E_0 is its energy and hata_alpha and hata_beta are the annihilation operators of the basis states. The Green's function is a matrix-valued function of the frequency omega. Note that this is the formula for bosons — fermions are not supported yet.","category":"page"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"This is how we can calculate the Green's function in the package:","category":"page"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"julia> using LatticeModels\n\njulia> l = SquareLattice(3, 2);\n\njulia> H = tightbinding_hamiltonian(l);\n\njulia> G = greenfunction(diagonalize(H))\nGreen's function for 6-site SquareLattice in 2D space\n\njulia> G(0.1) # Evaluate the Green's function at the frequency 0.1\nEvaluated Green's function for 6-site SquareLattice in 2D space\n6×6 Matrix{ComplexF64}:\n -0.209531+0.0im 0.0321264+0.0im … -0.108521+0.0im 1.04223+0.0im\n 0.0321264+0.0im -0.209531+0.0im 1.04223+0.0im -0.108521+0.0im\n -1.05308+0.0im 0.212743+0.0im -1.05308+0.0im 0.212743+0.0im\n 0.212743+0.0im -1.05308+0.0im 0.212743+0.0im -1.05308+0.0im\n -0.108521+0.0im 1.04223+0.0im -0.209531+0.0im 0.0321264+0.0im\n 1.04223+0.0im -0.108521+0.0im … 0.0321264+0.0im -0.209531+0.0im\n\njulia> site1 = l[!, x=1, y=1]; site2 = l[!, x=2, y=2];\n\njulia> G[site1, site2]\nGreen's function element (6 â†, 0 â bands)\n\njulia> G[site1, site2](0.1) == G(0.1)[site1, site2]\ntrue","category":"page"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"Note that the Green's function is evaluated by exactly diagonalizing the Hamiltonian. This is not the most efficient way to calculate it, but it is the easiest to implement. Use brackets G[site1, site2] to get the Green's function between two sites, and call it with a frequency to evaluate it. ","category":"page"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"Note the three main types that provide the Green's function functionality:","category":"page"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"The GreenFunction, which is the main type for Green's functions. It stores the diagonalized Hamiltonian in an efficient way to optimize the Green's function calculation. Can be indexed with sites and called with a frequency.\nThe GreenFunctionElement, which is an element of the Green's function matrix. It stores the bands that correspond to the Green's function element. Can be called with a frequency.\nThe GreenFunctionEval, which is the result of the Green's function evaluation. It stores the evaluated Green's function and the lattice it corresponds to. Can be indexed with sites.","category":"page"},{"location":"manual/greenfunction/","page":"Green's function","title":"Green's function","text":"Thus, G[site1, site2] creates a GreenFunctionElement object, while G(0.1) creates a GreenFunctionEval object. This explains why G[site1, site2](0.1) is the same as G(0.1)[site1, site2], but the former is more efficient — it doesn't have to evaluate the whole Green's function matrix.","category":"page"},{"location":"manual/greenfunction/#Many-body-Green's-function","page":"Green's function","title":"Many-body Green's function","text":"","category":"section"},{"location":"manual/greenfunction/#Density-of-states","page":"Green's function","title":"Density of states","text":"","category":"section"},{"location":"manual/hamiltonian/#Systems-and-Hamiltonians","page":"Constructing the Hamiltonian","title":"Systems and Hamiltonians","text":"","category":"section"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"This section describes how to define the Hamiltonian of a system. The system, in this context, is a lattice, a basis describing on-site degrees of freedom, and some additional parameters like temperature or chemical potential.","category":"page"},{"location":"manual/hamiltonian/#Defining-the-system","page":"Constructing the Hamiltonian","title":"Defining the system","text":"","category":"section"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"First of all, we need to define the system. This is done by calling System. For example, if we want to create non-interacting fermions with spin 1/2, zero chemical potential and temperature 1, we can do the following:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"using LatticeModels, Plots\nl = SquareLattice(4, 4);\nsys = System(l, SpinBasis(1//2), μ = 0, T = 1)\nH = tightbinding_hamiltonian(sys)\nP = densitymatrix(H, info=false)\nheatmap(localdensity(P))","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"In this case we have created a system with defined chemical potential and temperature. Note that you can use mu instead of μ if you prefer (or if you are using a non-UTF8 compatible editor). The tightbinding_hamiltonian function creates a tight-binding Hamiltonian for the given system, and the densitymatrix function calculates the density matrix.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"The first two arguments of the System constructor are the lattice and the basis of the on-site degrees of freedom. The latter can be any QuantumOptics.Basis object — refer to the QuantumOptics.jl documentation for more information. Omit the second argument if you don't have any on-site degrees of freedom.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"Here are all parameters that can be passed to the System constructor:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"mu or μ: the chemical potential of the system.\nN: set this instead of mu to fix the number of particles — the chemical potential will be calculated automatically. Setting both N and mu will raise an error.\nstatistics: the statistics of the particles, either FermiDirac or BoseEinstein. If not set, the statistics is FermiDirac if mu or N is set, and Gibbs otherwise (i.e. the system consist of one particle).\nT: the temperature of the system. The default is 0.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"Note that you can pass the very same arguments directly to the tightbinding_hamiltonian. Also keyword arguments can be passed to the densitymatrix function — they will be used to evaluate the distribution function. These lines are equivalent to the previous example:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"H = tightbinding_hamiltonian(l, SpinBasis(1//2))\nP = densitymatrix(H, μ = 0, T = 1, info = false)","category":"page"},{"location":"manual/hamiltonian/#Basic-tight-binding-Hamiltonian","page":"Constructing the Hamiltonian","title":"Basic tight-binding Hamiltonian","text":"","category":"section"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"The tightbinding_hamiltonian function creates a basic tight-binding Hamiltonian defined by this formula:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"H = t_1 sum_langle i j rangle c_i^dagger c_j + texthc + \n t_2 sum_langlelangle i j ranglerangle c_i^dagger c_j + texthc + \n t_3 sum_langlelanglelangle i j rangleranglerangle c_i^dagger c_j + texthc +\n ldots","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"where c_i^dagger and c_i are the creation and annihilation operators on site i. The t_1, t_2 and t_3 are responsible for the hopping between the nearest, next-nearest, etc. neighbors. Note that they can be factors or operators that act on the on-site degrees of freedom.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"By default only the nearest-neighbor hopping is included, all other factors are zero. You can set them to any value you want using the t1, t2, t3, keyword arguments:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"sz = sigmaz(SpinBasis(1//2))\nH2 = tightbinding_hamiltonian(sys, t1 = sz, t2 = [1 0; 0 -1], t3 = -0.5)\nP2 = densitymatrix(H2, info=false)\nheatmap(localdensity(P2))","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"Here sz is the operator that projects the spin on the z axis. Note that we can use a matrix instead, how we did with t2: in this case it will be interpreted as the hopping operator acting on the on-site degrees of freedom.","category":"page"},{"location":"manual/hamiltonian/#The-constructor-function","page":"Constructing the Hamiltonian","title":"The constructor function","text":"","category":"section"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"There are many cases where more complex Hamiltonians are needed. In this case, you can use the construct_hamiltonian function. This function takes a system and several arguments, each describing a term in the Hamiltonian. As an example, let's consider the same Hamiltonian as in the previous example:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"using LatticeModels, Plots\nl = SquareLattice(4, 4)\nspin = SpinBasis(1//2)\nsys = System(l, spin, μ = 0, T = 1)\n\nsz = sigmaz(spin)\nH = construct_hamiltonian(sys, \n sz => NearestNeighbor(1),\n [1 0; 0 -1] => NearestNeighbor(2),\n -0.5 => NearestNeighbor(3))\nP = densitymatrix(H, info=false)\nheatmap(localdensity(P))","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"Basically, every term is a pair of an operator acting on the on-site degrees of freedom and an object describing the lattice part. The lattice part can be one of the following:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"On-site term: sum_i t_i c_i^dagger c_i. In this case, the operator is applied to every site.\nA single site describes a single t_i c_i^dagger c_i term. A convenient way to create an on-site potential.\nA LatticeValue object describes the t_i coefficients for every site.\nHopping term: sum_langle i j rangle t_ij c_i^dagger c_j + hc. Terms like this are used to describe the hopping between different sites.\nA single site1 => site2 pair describes a single hopping term between site1 and site2.\nAn AbstractBonds object describes the hopping topology. See the Adjacency and boundary conditions section for more information on them.\nArbitrary operator: any QuantumOptics.Operator object can be passed as a term, in which case it will be automatically embedded into the Hamiltonian.\nNote that a matrix can be passed as an operator, in which case it will be interpreted as one acting on the on-site degrees of freedom. To act on the lattice, use Operator(l, matrix) — this will create a lattice operator that acts on the lattice l with the given matrix.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"To showcase the flexibility of the construct_hamiltonian function, let's consider a more complex example. We will create a Hamiltonian of the QWZ model of a topological insulator (on a square lattice).","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"The QWZ model Hamiltonian is defined by the following formula:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"hatH =\nsum_i^textsites m_i c^dagger_i sigma_z c_i +\nsum_i^textsites left(\nc^dagger_i + hatx fracsigma_z - i sigma_x2 c_i +\nc^dagger_i + haty fracsigma_z - i sigma_y2 c_i +\nh c right)","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"We will take m_i = 1 and add some disorder to the on-site term. Also we will add electric field in the x direction, local on-site potential on site at (2 2) and a new hopping term between the next-nearest neighbors.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"To do this, we need to create the Hamiltonian like this:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"using LatticeModels, Plots\nl = SquareLattice(4, 4)\nspin = SpinBasis(1//2)\nsys = System(l, spin, μ = 0, T = 1)\n\nsx, sy, sz = sigmax(spin), sigmay(spin), sigmaz(spin)\nsite = l[!, x = 2, y = 2]\nx = LatticeValue(l, :x)\nE = 0.1 # Electric field strength\n\nH = construct_hamiltonian(sys,\n sz => 1 .+ 0.1 .* randn(l), # Random on-site potential\n (sz - im * sx) / 2 => Bravais[1, 0], # x-direction hoppings\n (sz - im * sy) / 2 => Bravais[0, 1], # y-direction hoppings\n 0.5 => site, # Local potential on site (2, 2)\n E * x, # Electric field in the x direction\n 0.1 => NearestNeighbor(2)) # Next-nearest neighbor hopping\n\nP = densitymatrix(H, info=false)\nheatmap(localdensity(P))","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"Note that the qwz function can be used to create the QWZ Hamiltonian in a more convenient way. The construct_hamiltonian function is more flexible and can be used to create any Hamiltonian you want.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"note: Note\nThe construct_hamiltonian function creates a Hamiltonian object, which is a QuantumOptics.Operator object, but with some additional info like particle statistics or chemical potential. You can use it as a regular operator, but if you encounter any problems, you can always convert it to a regular operator using the Operator function or by calling construct_operator instead of construct_hamiltonian.","category":"page"},{"location":"manual/hamiltonian/#The-operator-builder","page":"Constructing the Hamiltonian","title":"The operator builder","text":"","category":"section"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"The construct_hamiltonian function is a convenient way to create Hamiltonians, but it is sometimes more convenient to set all the individual c_i^dagger c_j terms manually. This can be done using the OperatorBuilder object.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"Here is an example of how to create the same Hamiltonian as in the previous example using the OperatorBuilder:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"using LatticeModels, Plots\nl = SquareLattice(4, 4)\nspin = SpinBasis(1//2)\nsys = System(l, spin, μ = 0, T = 1)\n\nsx, sy, sz = sigmax(spin), sigmay(spin), sigmaz(spin)\nbuilder = OperatorBuilder(sys, auto_hermitian = true)\nfor site in l\n site_x = site + Bravais[1, 0]\n site_y = site + Bravais[0, 1]\n builder[site, site] = (1 + 0.1 * randn()) * sz\n builder[site, site_x] = (sz - im * sx) / 2\n builder[site, site_y] = (sz - im * sy) / 2\n\n builder[site, site] += 0.5 * E * site.x\n for site2 in adjacentsites(NearestNeighbor(l, 2), site)\n # note that the coefficient is 0.05, not 0.1, because every bond is counted twice\n builder[site, site2] += 0.05 \n end\nend\n\nc_site = l[!, x = 2, y = 2]\nbuilder[c_site, c_site] += 0.5 # Added local potential on site (2, 2)\n\nH2 = Hamiltonian(builder)\nP = densitymatrix(H, info=false)\nheatmap(localdensity(P))","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"Note that builder[site1, site2] is not a regular indexing operation. The return value of it is not an matrix or operator, but rather a special object that makes increment/decrement operations possible. Do not use this value in other contexts.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"tip: Tip\nUse FastOperatorBuilder instead of OperatorBuilder if you need to create a large Hamiltonian. It is a little bit faster, but doesn't support direct assignment builder[site, site] = ...; use += or -= instead.","category":"page"},{"location":"manual/hamiltonian/#Gauge-fields","page":"Constructing the Hamiltonian","title":"Gauge fields","text":"","category":"section"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"There is a convenient way to add gauge fields to the Hamiltonian, and it is done by using the GaugeField objects. It is an interface for different types of gauge fields, like the Landau gauge. To add field to the Hamiltonian, use the field keyword argument:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"using LatticeModels, Plots\nl = SquareLattice(4, 4)\nH = tightbinding_hamiltonian(l, field=LandauGauge(0.1))\nP = densitymatrix(H, info=false)\nheatmap(localdensity(P))","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"This adds a magnetic field in the Landau gauge to the Hamiltonian: overrightarrowmathcalA = B x overrightarrowe_y. It adds a phase factor to the hopping terms, which is calculated using Peierls substitution.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"Here are all types of gauge fields supported by this package:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"LandauGauge(B) — the Landau gauge, with the magnetic field B in the z direction.\nSymmetricGauge(B) — the symmetric gauge, with the magnetic field B in the z direction.\nPointFlux(Phi, center=(0, 0); gauge=:axial) — a point flux in the point center with the flux Phi. The gauge argument can be either :axial (default) or :singular.\nGaugeField(f; n) — a general magnetic field. The f is a function that takes a coordinate vector and returns the vector potential mathcalA at this point. The line integrals are calculated using the n-point trapezoidal rule. Note that the n must be set explicitly.\nLineIntegralGaugeField(f) — a general magnetic field. The f is a function that takes two coordinate vectors and returns the int_vecr_1^vecr_2 mathcalA cdot dvecr line integral of the vector potential between these points.","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"Different types of fields can be added together:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"julia> using LatticeModels\n\njulia> f1 = LandauGauge(0.1)\nLandau gauge uniform field; B = 0.1 flux quanta per 1×1 area\n\njulia> f2 = SymmetricGauge(0.2)\nSymmetric gauge uniform field; B = 0.2 flux quanta per 1×1 area\n\njulia> f3 = PointFlux(0.3, (0.5, 0.5))\nPoint flux field through point (0.5, 0.5), axial gauge; Φ = 0.3 flux quanta\n\njulia> f1 + f2 + f3\nLandauGauge(0.1) + SymmetricGauge(0.2) + PointFlux(0.3, (0.5, 0.5); gauge=:axial)","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"You can pass these objects using the field keyword argument to the tightbinding_hamiltonian, construct_hamiltonian, and OperatorBuilder functions to add the gauge field to the Hamiltonian:","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"builder = OperatorBuilder(l, auto_hermitian = true, field = LandauGauge(0.1) + PointFlux(0.3, (0.5, 0.5)))\nfor site in l\n site_x = site + Bravais[1, 0]\n site_y = site + Bravais[0, 1]\n builder[site, site_x] = 1\n builder[site, site_y] = 1\nend\nH2 = Hamiltonian(builder)\nH2 == tightbinding_hamiltonian(l, field=LandauGauge(0.1) + PointFlux(0.3, (0.5, 0.5)))","category":"page"},{"location":"manual/hamiltonian/","page":"Constructing the Hamiltonian","title":"Constructing the Hamiltonian","text":"To find out more about operators, diagonalization and observables, proceed to the next section.","category":"page"},{"location":"manual/latticevalue/#Working-with-LatticeValues","page":"Working with 'LatticeValue's","title":"Working with LatticeValues","text":"","category":"section"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"This chapter introduces the LatticeValue type, which describes a value defined on the sites of a lattice. LatticeValue implements the AbstractArray interface and is used to represent quantities such as the magnetization or local density of a state.","category":"page"},{"location":"manual/latticevalue/#Basics","page":"Working with 'LatticeValue's","title":"Basics","text":"","category":"section"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"The LatticeValue type is actually a wrapper around a Vector of values, where each value is associated with a site of the lattice. Working with LatticeValue is very similar to working with a Vector, but with some additional functionality.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"using LatticeModels, Plots\n\nl = SquareLattice(-2:2, -2:2)\nx = coordvalue(l, :x) # get the x coordinate of the lattice sites\nv = zeros(Int, l) # create a lattice value with zeros\nv[x = 1 .. 2, y = 1 .. 2] = x # set the value to the x coordinate on the top right\nv[x = -2 .. 0] .= 3 # set the value to 3 on the left half of the lattice\nr = randn(l) # create a random lattice value (normal distribution)\nv2 = v .^ 2 .+ r # broadcast operations work as expected\nheatmap(v2)","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"The LatticeValue type implements basic vector creation operations: zero, zeros, one, ones, rand, randn, fill, copy. Slices and views are also supported.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"There are also other AbstractVector methods you can use:","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"sum(abs2, v2)\nextrema(v2)\nargmax(v2)\nms = findall(x -> x < 3, v2)\nv2[first(ms)]","category":"page"},{"location":"manual/latticevalue/#Indexing-and-slicing","page":"Working with 'LatticeValue's","title":"Indexing and slicing","text":"","category":"section"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"Let's talk a bit more about the indexing and slicing of LatticeValue. There are several ways to index a LatticeValue. The return value in this case is either a scalar or another LatticeValue with a narrowed domain. The following indexing methods are supported:","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"v[site] returns the value at site site.\nv[[site1, site2, ...]] returns a LatticeValue with the values at the specified sites. site1, site2, etc. are single sites grouped into an abstract array. The return value is a LatticeValue with the same values but narrowed to the specified sites.\nv[lat] returns a LatticeValue with the same values but narrowed to the sites of lattice lat. lat here must be a lattice, which is a subset of the lattice of v.\nv[mask] returns a LatticeValue with the same values but narrowed to the sites where mask is true. mask here must be a LatticeValue of Bool type, defined on the same (or a superset of the) lattice.\nv[x = 1 .. 2, y = 1 .. 2] returns a LatticeValue with the same values but narrowed to the sites where the x coordinate is in the range 1 .. 2 and the y coordinate is in the range 1 .. 2. The keyword arguments here must be the names of the site parameters (see Sites), and the values can be any containers or single values. Pair notation is also supported: v[Coord(1) => 1 .. 2, Coord(2) => 1 .. 2].","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"This indexing is valid for both reading and writing. Remember, however, that the right-hand side of the assignment must be a LatticeValue or a scalar value (in which case the destination site must be a single site, otherwise an error will be thrown). ","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"Therefore, l[x=1, y=1] = 1 is not a valid assignment, because the left-hand side can contain multiple sites[1] (for example, if it is a 3D lattice). But l[!, x=1, y=1] = 1 is a valid assignment — adding ! to the index means that the left-hand side is a single site.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"[1]: This is somewhat similar to the behavior of arrays in Julia: v[1:1] = 1 will throw an error, even though the left-hand side is a single-element array.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"note: Note\nThe same indexing methods can be used to slice a lattice, a GreenFunction, a Currents object or a TimeSequence.","category":"page"},{"location":"manual/latticevalue/#Iteration-and-broadcasting","page":"Working with 'LatticeValue's","title":"Iteration and broadcasting","text":"","category":"section"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"You can consider a LatticeValue as a vector of values, with its indices being the sites of the lattice. Therefore, iterating over v will yield the values of the LaticeValue, and eachindex(v) will return the lattice it is defined on.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"Broadcasting operations work as expected. For example, v .+ 1 will add 1 to each value of v, and v .+ r will add the corresponding values of v and r. However, there are some limitations: you cannot broadcast a LatticeValue with anything other than a scalar or another LatticeValue. Also the lattices must be the same, otherwise an error will be thrown.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"using LatticeModels\nl = SquareLattice(4, 4);\nx, y = coordvalues(l)\nv = zeros(l)\nv[x .< y] = x # This will work\nv[y = 1] .= 1 # This will work\nv[x .> y] .= y # This will not work - RHS on a different lattice\nv[x = 1] .= [1, 2, 3, 4] # This will not work - RHS is a vector","category":"page"},{"location":"manual/latticevalue/#Common-operations","page":"Working with 'LatticeValue's","title":"Common operations","text":"","category":"section"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"There are several common use-cases for the LatticeValue type. We will discuss some of them here.","category":"page"},{"location":"manual/latticevalue/#External-parameter-of-a-system","page":"Working with 'LatticeValue's","title":"External parameter of a system","text":"","category":"section"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"In many cases, you need to define a parameter that depends on the site that is used in the Hamiltonian. For example, the on-site potential in the tight-binding model. You can use LatticeValue for this purpose.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"using LatticeModels\nl = SquareLattice(4, 4)\nv = zeros(l)\nv[y = 0 .. 2] .= 1.0 # add a potential barrier\nH = tightbinding_hamiltonian(l, v, t1=-1.0) # create a tight-binding Hamiltonian","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"Here v is a LatticeValue that represents the on-site potential. In other models you can use it to represent the magnetic field, for example: see qwz.","category":"page"},{"location":"manual/latticevalue/#Wavefunctions","page":"Working with 'LatticeValue's","title":"Wavefunctions","text":"","category":"section"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"In some cases you need a custom-defined wavefunction. You can use LatticeValue for this purpose.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"using LatticeModels\nl = SquareLattice(10, 10)\nx, y = coordvalues(l)\nspin = SpinBasis(1//2) # create a spin basis\ngauss = @. exp(-0.5 * ((x - 5) ^ 2 + (y - 5) ^ 2)) # create a Gaussian\nwave = @. exp(im * (x + y)) # create a plane wave\nψ = basisstate(spin, 1) ⊗ (@. gauss .* wave) + \n basisstate(spin, 2) ⊗ (@. gauss * conj(wave))","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"Here ψ is a QuantumOptics.Ket wavefunction. In this example it is a superposition of two states with opposite spins and different momenta.","category":"page"},{"location":"manual/latticevalue/#Processing-data","page":"Working with 'LatticeValue's","title":"Processing data","text":"","category":"section"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"Many observables like local density are returned as a LatticeValue. You can process it quite easily.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"using LatticeModels, Statistics\nl = HoneycombLattice(Hexagon(), sites=120)\nH = tightbinding_hamiltonian(l, t1=-1.0) # create a tight-binding Hamiltonian\ndens = localdensity(groundstate(H)) # calculate the local density of the ground state\nbulk = l[x = 2 .. 9, y = 2 .. 9]\nedge = setdiff(l, bulk)\nprintln(\"Average local density in the bulk: \", mean(dens[bulk]))\nprintln(\"Average local density on the edge: \", mean(dens[edge]))","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"The average local density in the bulk is much higher than on the edge, as expected.","category":"page"},{"location":"manual/latticevalue/#Visualization","page":"Working with 'LatticeValue's","title":"Visualization","text":"","category":"section"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"One key feature of LatticeValue is that it can be visualized using the Plots.jl package. There are several ways to do it.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"The \"classical\" way is just to use the plot function. The result will be a scatter plot of the lattice sites with the value of the LatticeValue as the color and size of the markers.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"Let us continue with the previous example:","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"using Plots\nplot(dens)","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"This is the default behavior. You can customize the plot as usual with Plots.jl — for example, you can change the colormap, the marker size, etc. You can also set markerscale=false to disable the scaling of the marker size by the value of the LatticeValue:","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"# Dark theme makes everything look cooler\nplot(dens, markerscale=false, markersize=12, c=:inferno, \n title=\"Local density of the ground state\", bg=:black)","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"Another way to visualize a LatticeValue is to use the shape plot seriestype=:shape, or heatmap function. This will create a tile plot of the lattice sites with the value of the LatticeValue as the color of the tiles.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"heatmap(dens, title=\"Local density of the ground state\")","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"You can also use pass shape=:circle to create a scatter plot with large circles instead of the default markers. The difference here is that the size of the circles will scale with the plot, unlike the markers in the scatter plot. markerscale is also supported here, but by default it is set to false.","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"Let's showcase all of these options:","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"p = plot(size=(1000, 850), layout=(2, 2))\nheatmap!(p[1], dens, title=\"Hexagons, no scale\")\nheatmap!(p[2], dens, markerscale=true, title=\"Hexagons, scale\")\nheatmap!(p[3], dens, shape=:circle, title=\"Circles, no scale\")\nheatmap!(p[4], dens, shape=:circle, markerscale=true, title=\"Circles, scale\")","category":"page"},{"location":"manual/latticevalue/","page":"Working with 'LatticeValue's","title":"Working with 'LatticeValue's","text":"tip: Tip\nThe shape plot is slower than the scatter plot, because it creates a separate shape for each site. If you are creating an animation or a large plot, you may want to use the scatter plot with custom-shaped markers instead.","category":"page"},{"location":"examples/#Examples","page":"Examples","title":"Examples","text":"","category":"section"},{"location":"examples/#Lowest-states-in-a-tight-binding-model","page":"Examples","title":"Lowest states in a tight-binding model","text":"","category":"section"},{"location":"examples/","page":"Examples","title":"Examples","text":"The tight-binding model Hamiltonian is defined by this formula (the sum is performed over adjacent sites):","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"hatH = sum_i j^textsites left( c^dagger_i c_j + h c right)","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"Here we take a square lattice and build a Hamiltonian for it. Then we find its eigenstates and plot their local density on heatmaps.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"using LatticeModels\nusing Plots\n# Generate a 40x40 square lattice\nl = SquareLattice(40, 40)\n# Define the tight-binding model Hamiltonian\nH = tightbinding_hamiltonian(l)\n\n# Calculate eigenvalues and eigenvectors\ndiag = diagonalize(H)\n\nn = 5\nclims = (0, 0.0045)\np = plot(layout = @layout[grid(n, n) a{0.1w}], size=(1000, 850))\nfor i in 1:n^2\n E_rounded = round(diag.values[i], sigdigits=4)\n plot!(p[i], localdensity(diag[i]), title=\"\\$E_{$i} = $E_rounded\\$\", st=:shape, \n clims=clims, c=:inferno, cbar=:none, lw=0, framestyle=:none, xlab=\"\", ylab=\"\")\nend\n\n# The following lines are kinda hacky; they draw one colorbar for all heatmaps\nplot!(p[n^2+1], framestyle=:none)\nscatter!([NaN], zcolor=[NaN], clims=clims, leg=:none, cbar=:right, subplot=n^2+2, \n background_subplot=:transparent, framestyle=:none, inset=bbox(0.0, 0.05, 0.95, 0.9))\nsavefig(\"local_density.png\")\nnothing # hide","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"(Image: )","category":"page"},{"location":"examples/#Currents-on-a-ring-shaped-sample","page":"Examples","title":"Currents on a ring-shaped sample","text":"","category":"section"},{"location":"examples/","page":"Examples","title":"Examples","text":"In this example we create a ring-shaped sample of a triangular lattice. Then we adiabatically turn on magnetic field through the hole and see currents emerge.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"using LatticeModels\nusing Plots\n\nl = TriangularLattice(Circle(10), !Circle(5))\nremovedangling!(l)\nh(B) = tightbinding_hamiltonian(l, field=PointFlux(B))\ndiag = diagonalize(h(0))\n\n# Find density matrix for filled bands (e. g. energy < 0)\nP_0 = densitymatrix(diag, mu = 0)\n# Perform unitary evolution\nτ = 10\nev = Evolution(t -> h(0.1 * min(t, τ) / τ), P_0)\nanim = @animate for state in ev(0:0.1:2τ)\n P, H, t = state\n # Find the density and plot it\n p = plot(layout=2, size=(1000, 500))\n plot!(p[1], localdensity(P), clims=(0, 1), st=:shape)\n\n # Show currents on the plot\n plot!(p[2], DensityCurrents(H, P), clims=(0, 0.005), lw=1, arrowheadsize=0.3)\n plot!(plottitle=\"t = $t\")\nend\n\ngif(anim, \"adiabatic_flux.gif\")","category":"page"},{"location":"examples/#Time-sequences","page":"Examples","title":"Time sequences","text":"","category":"section"},{"location":"examples/","page":"Examples","title":"Examples","text":"In this example we will see how to use TimeSequence to store and manipulate time-dependent data.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"We will calculate the evolution of a ground state of a tight-binding model after a magnetic field is turned on. We will store the local density at each time step and use it to plot the local density depending on time, as well as its time derivative and integral over time.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"using LatticeModels, Plots\n\nl = SquareLattice(20, 20)\nH = tightbinding_hamiltonian(l)\npsi_0 = groundstate(H)\nH1 = tightbinding_hamiltonian(l, field=LandauGauge(0.1))\nev = Evolution(H1, psi_0)\n\ndensities = TimeSequence{LatticeValue}()\nfor (psi, _, t) in ev(0:0.1:10)\n densities[t] = localdensity(psi)\nend\n\nsite_bulk = l[!, x = 10, y = 10]\nsite_edge = l[!, x = 10, y = 1]\nds_bulk = densities[site_bulk]\nds_edge = densities[site_edge]\nplot(ds_bulk, label=\"ρ(t) (bulk)\")\nplot!(differentiate(ds_bulk), label=\"dρ(t)/dt (bulk)\")\nplot!(ds_edge, label=\"ρ(t) (edge)\")\nplot!(integrate(ds_edge), label=\"∫ρ(t)dt (edge)\")","category":"page"},{"location":"examples/#Hofstadter-butterfly","page":"Examples","title":"Hofstadter butterfly","text":"","category":"section"},{"location":"examples/","page":"Examples","title":"Examples","text":"The Hofstadter butterfly is a fractal-like structure that appears when the tight-binding model is subjected to a magnetic field. It is a plot of the energy spectrum as a function of the magnetic flux through the unit cell.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"To create the Hofstadter butterfly, we will use the Landau gauge for the magnetic field. Note that we have to set periodic boundary conditions, and to make them compatible with the gauge field, they should be tweaked a little:","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"psi(x + L_x y) = psi(x y) e^2pi i B y L_x\npsi(x y + L_y) = psi(x y)","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"Let us plot the Hofstadter butterfiles for square, triangular and honeycomb lattices. The magnetic field field will be changed from zero to one phi_0 flux quantum per plaquette.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"using LatticeModels, Plots\n\nfunction get_butterfly(l, lx, ly, plaquette_area)\n xs = Float64[]\n ys = Float64[]\n area = lx * ly\n dflux = 1 / area\n totflux = 1 / plaquette_area\n for B in 0:dflux:totflux\n # magnetic boundary conditions\n f(site) = exp(2pi * im * B * site.y * lx)\n lb = setboundaries(l, [lx, 0] => f, [0, ly] => true)\n H = tightbinding_hamiltonian(lb, field=LandauGauge(B))\n dg = diagonalize(H)\n append!(xs, fill(B, length(dg.values)))\n append!(ys, dg.values)\n end\n return xs, ys\nend\n\np = plot(layout = @layout[a b; _ c{0.5w} _], size=(800, 500), leg=false,\n xlabel=\"B\", ylabel=\"E\")\nscatter!(p[1], title=\"Square lattice\",\n get_butterfly(SquareLattice(10, 10), 10, 10, 1), ms=1)\nscatter!(p[2], title=\"Triangluar lattice\",\n get_butterfly(TriangularLattice(10, 10), 10, 5 * sqrt(3), sqrt(3) / 4), ms=1)\nscatter!(p[3], title=\"Honeycomb lattice\",\n get_butterfly(HoneycombLattice(10, 10), 10, 5 * sqrt(3), sqrt(3) / 2), ms=1)\nsavefig(\"hofstadter_butterfly.png\")\nnothing # hide","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"(Image: )","category":"page"},{"location":"examples/#LDOS-animation","page":"Examples","title":"LDOS animation","text":"","category":"section"},{"location":"examples/","page":"Examples","title":"Examples","text":"Local density can be a bit ambiguous for degenerate eigenstates. That's where the LDOS (e. g. the Local Density of States) will be helpful.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"The formula for the LDOS is the following:","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"textLDOS_alpha(E) = textIm G_alphaalpha(E - idelta)","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"where G is the Green's function and delta is the broadening.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"Let's create an animation presenting the DOS and LDOS for a square lattice with a hole indside. We will use the QWZ model hamiltonian, because it has a two-zone band structure, which will make the results more interesting. See qwz for more information about the QWZ model.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"using LatticeModels\nusing Plots\nl = SquareLattice(20, 20)\nl_center = l[j1 = 8 .. 13, j2 = 8 .. 13]\nsetdiff!(l, l_center) # remove the center\nH = qwz(l)\n\ndg = diagonalize(H)\nδ = 0.1\nEs = -4:0.1:4\nEs_d = -4:0.01:4\nG = greenfunction(dg)\nanim = @animate for E in Es\n print(\"\\rE = $E\") # hide\n p = plot(layout=2, size=(800, 400))\n plot!(p[1], Es_d, dos(G, broaden=δ), lab=\"\", title=\"DOS\")\n vline!(p[1], [E], lab=\"\")\n plot!(p[2], ldos(G, E, broaden=δ), st=:shape, \n c=:inferno, clims=(0, NaN), title=\"LDOS\", lw=0)\n plot!(p, plot_title=\"E = $E, δ = $δ\")\nend\n\ngif(anim, \"ldos_animation.gif\", fps=10)","category":"page"},{"location":"#LatticeModels.jl","page":"Home","title":"LatticeModels.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"This package provides a set of tools to simulate different quantum lattice systems.","category":"page"},{"location":"#Installation","page":"Home","title":"Installation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Paste the following line into the Julia REPL:","category":"page"},{"location":"","page":"Home","title":"Home","text":"]add https://github.com/aryavorskiy/LatticeModels.jl","category":"page"},{"location":"","page":"Home","title":"Home","text":"or","category":"page"},{"location":"","page":"Home","title":"Home","text":"import Pkg; Pkg.add(url=\"https://github.com/aryavorskiy/LatticeModels.jl\")","category":"page"},{"location":"","page":"Home","title":"Home","text":"compat: Compat\nThis package has tested compatibility with Julia v1.6. Use with caution on lower versions.","category":"page"},{"location":"#Package-features","page":"Home","title":"Package features","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Bravais lattices with arbitrary geometry or boundary conditions.\nPowerful operator generation tools.\nBackend-independent computations: linear operators can be of any array type, allowing to use sparse or GPU arrays when needed.\nManybody computations.\nSmart unitary evolution reducing excessive computations where possible.\nSupports visualization with Plots.jl.\nCompatible with QuantumOptics.jl.","category":"page"},{"location":"#Similar-packages","page":"Home","title":"Similar packages","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Packages such as Quantica.jl, pybinding and Kwant provide similar functionality. However, they are in general designed for other purposes and lack some features that are present in LatticeModels.jl:","category":"page"},{"location":"","page":"Home","title":"Home","text":"Schrödinger equation solvers with time-dependent Hamiltonians. Only Kwant provides similar functionality with its Tkwant module, but it lacks the performance and flexibility in some cases.\nConvenient tools for setting periodic boundary conditions and gauge fields. The only way to do this in Kwant or Pybinding is to manually set the hopping values.\nA flexible interface for defining new types of lattices and bonds. Random lattices can be implemented on top of GenericLattice with ease.\nManybody computations. LatticeModels.jl can handle manybody systems with particle interaction.","category":"page"},{"location":"","page":"Home","title":"Home","text":"Overall, while Kwant and pybinding are mostly focused on quantum transport problems and Quantica.jl is designed to find various properties of lattices, LatticeModels.jl focuses on dynamic simulations.","category":"page"},{"location":"#Usage-example","page":"Home","title":"Usage example","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"This simple code plots local density for lowest energy states of a square tight-binding lattice.","category":"page"},{"location":"","page":"Home","title":"Home","text":"using LatticeModels, Plots\n\nl = SquareLattice(40, 40)\nH = tightbinding_hamiltonian(l)\ndiag = diagonalize(H)\n\nn = 5\nclims = (0, 0.0045)\np = plot(layout = @layout[ grid(n, n) a{0.1w}], size=(1000, 850))\nfor i in 1:n^2\n # Plot local density on each subplot\n E_rounded = round(diag.values[i], sigdigits=4)\n plot!(p[i], localdensity(diag[i]), title=\"\\$E_{$i} = $E_rounded\\$\", st=:shape, \n clims=clims, c=:inferno, cbar=:none, lw=0, framestyle=:none, xlab=\"\", ylab=\"\")\nend\n\n# The following lines are kinda hacky; they draw one colorbar for all heatmaps\nplot!(p[n^2+1], framestyle=:none)\nscatter!([NaN], zcolor=[NaN], clims=clims, leg=:none, cbar=:right, subplot=n^2+2, \n framestyle=:none, inset=bbox(0.0, 0.05, 0.95, 0.9), background_subplot=:transparent)\nsavefig(\"example.png\")\nnothing # hide","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: )","category":"page"},{"location":"","page":"Home","title":"Home","text":"See more examples in the Examples section.","category":"page"},{"location":"manual/operators/#States-and-Operators","page":"States and Operators","title":"States and Operators","text":"","category":"section"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"In the previous chapter we have seen how to define a Hamiltonian for a lattice model. In this chapter we will see how to work with other types of operators, such as measurements and diagonalizing.","category":"page"},{"location":"manual/operators/#Builtins","page":"States and Operators","title":"Builtins","text":"","category":"section"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"There are some basic building blocks that can be used to create states and operators. These are the basisstate, diagonaloperator and transition functions, taken from QuantumOptics.jl package, but extended to work with lattices.","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"The basisstate function creates a state vector with a in the basis of a lattice. Normally it takes a QuantumOptics.Basis and an index as arguments, and returns a Ket object. However, you can use a lattice and a site as arguments to create a state vector in the basis of the lattice:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"using LatticeModels\nl = SquareLattice(6, 6);\nsite = l[!, x = 3, y = 3]\nl_bas, ind = LatticeBasis(l), site_index(l, site);\npsi1 = basisstate(l_bas, ind); # The pure QuantumOptics.jl way\npsi2 = basisstate(l, site); # The LatticeModels.jl way\npsi1 == psi2","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"If you work in a composite system (e. g. a lattice with a spin degree of freedom), you can construct the state as tensor product of the states for each subsystem:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"spin = SpinBasis(1//2)\npsi_composite = basisstate(spin, 1) ⊗ basisstate(l, site) # Note the order!","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"note: Note\nThe order of the tensor product is important. The first argument is the on-site degrees of freedom, and the second is the lattice. This convention is consistent in the rest of the package — the reason behind this is performance of construct_operator and OperatorBuilder.If this order is not followed, you will probably get an error somewhere in your calculations.","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"The diagonaloperator function creates a diagonal operator in the basis of a lattice. Normally it takes a QuantumOptics.Basis and a vector of values (or a single value) as arguments, and returns an Operator object. There are several convenient ways to use this function with lattices. As an example let's consider the position operator in the basis of a lattice:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"xval = coordvalue(l, :x)\nX_1 = diagonaloperator(l_bas, xval.values); # The pure QuantumOptics.jl way\nX_2 = diagonaloperator(l, :x); # The LatticeModels.jl way, with a site property\nX_3 = diagonaloperator(xval); # The LatticeModels.jl way, with a LatticeValue\nX_1 == X_2 == X_3","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"This notation allows converting any LatticeValue or Site parameter to an operator. Hence, diagonaloperator(l, Coord(1)) is also valid and will return the same operator.","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"tip: Tip\nGenerally, a good value to create a custom diagonal operator is by using the LatticeValue approach. Consider this example: in the Haldane model the diagonal part is m on the A sublattice and -m on the B sublattice. You can create this operator with the following code:l = HoneycombLattice(6, 6)\nm = 3\nms = LatticeValue(l) do site\n site.index == 1 ? m : -m\nend\nOp = diagonaloperator(ms)","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"Also note the coordoperator and coordoperators functions that do the same thing as coordvalue and coordvalues, but return the operator instead of the value:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"X, Y = coordoperators(l);\nX == X_1","category":"page"},{"location":"manual/operators/#Measurements","page":"States and Operators","title":"Measurements","text":"","category":"section"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"The most common type of measurements is the local density: the average number of particles at each site. This can be calculated using the localdensity function — it takes a state (a QuantumOptics.Ket vector or a QuantumOptics.Operator representing the density matrix) and returns a LatticeValue with the density at each site.","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"using LatticeModels, Plots\nl = GrapheneRibbon(6, 4)\nH = tightbinding_hamiltonian(l)\nd = localdensity(groundstate(H))\nplot(d)","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"The localdensity function uses the following formula to calculate the density at each site: rho_i = textTr(hatn_i hatrho), where hatn_i is the number operator at site i and hatrho is the density matrix. Note that if the values are complex, the function will return the real part of them. This is what makes the next example work.","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"The local Chern marker is a quantity that can be used to detect topological phases in a lattice model. It can be calculated using the following formula:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"mathcalC(r) = 4pi textIm langle r P X P Y P r rangle","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"Here P is the projector onto the occupied states (e. g. the density matrix), and X and Y are the position operators. The local Chern marker is a real number that can be calculated for each site in the lattice.","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"Let's do this for a QWZ model Hamiltonian on a square lattice:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"l = SquareLattice(6, 6)\nsys = l ⊗ SpinBasis(1//2)\nms = ones(l)\nms[x = 3 .. 4, y = 3 .. 4] .= -1\nH = qwz(l, ms)\n\nP = densitymatrix(H, mu=0, statistics=FermiDirac)\nX, Y = coordoperators(sys)\nc = localdensity(-4π * im * P * X * P * Y * P)\nheatmap(c, title=\"Local Chern marker\")","category":"page"},{"location":"manual/operators/#Diagonalizing","page":"States and Operators","title":"Diagonalizing","text":"","category":"section"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"To diagonalize a Hamiltonian or any other operator, you can use the diagonalize function. It takes an operator and returns a EigenSystem object with the eigenvalues and eigenvectors of the operator.","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"using LatticeModels, Plots\nl = GrapheneRibbon(6, 4)\nH = haldane(l, 0.1, 1)\neig = diagonalize(H)","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"This struct simplifies the access to the eigenvalues and eigenvectors of the operator. You can access the eigenvalues with eig.values, and eigenvectors as Kets can be obtained with the bracket notation eig[i] or eig[value = E]:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"# The states are sorted by real part of the eigenvalues, so\npsi = eig[1] # `psi` is the ground state\npsi2 = eig[value = 0] # `psi2` is the state with zero energy\np = plot(layout = @layout[a b; c], size=(800, 800))\nplot!(p[1], localdensity(psi), title=\"Ground state\")\nplot!(p[2], localdensity(psi2), title=\"Zero energy state\")\nscatter!(p[3], eig.values, title=\"Spectrum\", lab=\"\")","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"tip: Tip\nYou can find the ground state of a Hamiltonian in one line using the groundstate function:psi = groundstate(H)To evaluate both the ground state and its energy, use the findgroundstate function:E0, psi = findgroundstate(H)","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"The diagonalize function under its hood uses the eigen function from the LinearAlgebra standard library. However, this does not work for non-trivial matrix types (e. g. sparse matrices or GPU arrays). For such cases you can pass the second argument to the diagonalize function, which is a Symbol indicating the method to use for diagonalization. To use the eigsolve function from the KrylovKit.jl package, you can pass :krylovkit as the second argument. Since this solves the eigenvalue problem iteratively, you can also pass the keyword arguments: n for the number of eigenvalues to compute, v0 for the initial guess, and the keyword arguments for the eigsolve function.","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"l = SquareLattice(100, 100) # A really big lattice\nH = tightbinding_hamiltonian(l)\neig = diagonalize(H, :krylovkit, n=9) # Compute only 9 eigenvalues with smallest real part\np = plot(layout=9, leg=false, size=(1000, 900))\nfor i in 1:9\n plot!(p[i], localdensity(eig[i]), title=\"E = $(round(eig.values[i], digits=5))\",\n ms=2, msw=0, msa=0) # Plot with small markers with no outline\nend\nplot!()\nsavefig(\"gs_density.png\") # hide\nnothing # hide","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"(Image: )","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"EigenSystem objects have a wide range of applications in this package. One of them is creating equilibrium states for a given Hamiltonian. This can be done using the densitymatrix function, which is described in the next section.","category":"page"},{"location":"manual/operators/#Density-matrix","page":"States and Operators","title":"Density matrix","text":"","category":"section"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"After you diagonalize a Hamiltonian, you can calculate the density matrix for the system. Use the densitymatrix function to do this:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"using LatticeModels\nl = SquareLattice(6, 6)\nsys = System(l, SpinBasis(1//2), mu=0, statistics=FermiDirac, T=0.1)\nH = tightbinding_hamiltonian(sys)\neig = diagonalize(H)\nP1 = densitymatrix(eig) # Use the default parameters from the `System`\nP2 = densitymatrix(eig, \n statistics=BoseEinstein, T=0, mu=1) # Or you can override them\nnothing # hide","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"Note that the densitymatrix function can also be applied to a Hamiltonian object, in which case it will first diagonalize the Hamiltonian and then calculate the density matrix:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"P1_1 = densitymatrix(H)\n@assert P1 ≈ P1_1\nP2_1 = densitymatrix(H, statistics=BoseEinstein, T=0, mu=1)\n@assert P2 ≈ P2_1\nnothing # hide","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"The densitymatrix function uses a simple formula to calculate the density matrix:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"hatrho = sum_i rho(E_i) psi_i rangle langle psi_i ","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"Here E_i are the eigenvalues of the operator, psi_i are the corresponding eigenvectors, and rho(E) is the distribution function defined by the statistics, T, and mu parameters. By default, when no additional parameters are passed to the System or densitymatrix, the density matrix will be a thermal state at zero temperature.","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"The basis for these computations is the projector function, which takes a function p and an EigenSystem object d that represents the diagonalized operator hatO. The return value is an operator hatP defined by the formula:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"hatO = sum_i E_i psi_i rangle langle psi_i hspace1cm\nhatP = sum_i p(E_i) psi_i rangle langle psi_i ","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"Here E_i are the eigenvalues of the operator hatO, and psi_i rangle are the corresponding eigenvectors. The function p is applied to the eigenvalues to obtain the diagonal elements of the density matrix. Here is an example of how to use this function:","category":"page"},{"location":"manual/operators/","page":"States and Operators","title":"States and Operators","text":"l = SquareLattice(6, 6)\nH = tightbinding_hamiltonian(l)\neig = diagonalize(H)\nP1 = projector(x -> x < 0, eig) # Projector onto the states with energy < 0\nP2 = projector(x -> 1 / (1 + exp(x)), eig) # Fermi-Dirac distribution\nP3 = projector(eig[1:4]) # Projector onto the first 4 states\n# Note how we slice the `eig` object to get the first 4 states","category":"page"}] }

In this case we have created a system with defined chemical potential and temperature. Note that you can use mu instead of μ if you prefer (or if you are using a non-UTF8 compatible editor). The tightbinding_hamiltonian function creates a tight-binding Hamiltonian for the given system, and the densitymatrix function calculates the density matrix.