Lattice2D.jl

A Julia package for constructing and visualizing 2D lattices for quantum many-body physics simulations.

Installation

using Pkg
Pkg.add("Lattice2D")

Models

The models implemented in this module is below.

Lattice2D.AbstractLatticeType
AbstractLattice{D}

格子の抽象型。Dは空間次元。 ising model などの格子モデルはこの型を継承して実装する。

source
Lattice2D.AbstractTopologyType
AbstractTopology

格子のトポロジーの抽象型。

  • Square: 正方格子
  • Triangular: 三角格子
  • Honeycomb: ハニカム格子
  • Kagome: カゴメ格子
source
Lattice2D.BondType
Bond

格子の辺を表す型。

  • src::Int: 辺の始点サイトのインデックス
  • dst::Int: 辺の終点サイトのインデックス
  • type::Int: 辺の種類(異なる結合定数を持つ辺を区別するため)
  • vector::Vector{Float64}: 辺のベクトル表現
source
Lattice2D.ConnectionType
Connection

単位胞内または単位胞間の接続ルール。

  • src_sub: 始点のサブ格子インデックス (1, 2, ...)
  • dst_sub: 終点のサブ格子インデックス
  • dx, dy: 終点がどの相対セルにあるか (0,0 なら同じ単位胞内)
  • type: 結合の種類
source
Lattice2D.Lattice2DType

Lattice2D{Topology<:AbstractTopology, T, B<:AbstractBoundaryCondition} 2次元格子を表す型。

  • Lx::Int: x方向の格子サイズ
  • Ly::Int: y方向の格子サイズ
  • N::Int: サイト総数
  • positions::Vector{Vector{T}}: 各サイトの位置ベクトル
  • nearest_neighbors::Vector{Vector{Int}}: 各サイトの最近接サイトのインデックスリスト
  • bonds::Vector{Bond}: 格子の辺のリスト
  • basis_vectors::Vector{Vector{T}}: 格子の基底ベクトル
  • reciprocal_vectors::Union{Vector{Vector{T}}, Nothing}: 逆格子ベクトル
  • sublattice_ids::Vector{Int}: 各サイトのサブ格子ID
  • is_bipartite::Bool: 格子が二部グラフかどうか
  • site_map::Union{Matrix{Int}, Nothing}: 格子上のサイトインデックスのマッピング
  • translation_x::Vector{Int}: x方向の平行移動ベクトル
  • translation_y::Vector{Int}: y方向の平行移動ベクトル
  • boundary::B: 境界条件
source
Lattice2D.UnitCellType
UnitCell{D, T}

格子の幾何学的定義データ。基本的に、この情報をもとに格子を構築する。 get_unit_cell(::Type{T}) 関数で各トポロジーに対応する単位胞データを取得する。

source
Lattice2D.build_latticeMethod
build_lattice(Topology::Type{<:AbstractTopology}, Lx::Int, Ly::Int; boundary::AbstractBoundaryCondition=PBC())

Construct a lattice with the specified topology, size, and boundary conditions. this function is available if unitcell information is defined.

source
Lattice2D.get_unit_cellMethod
get_unit_cell(::Type{T}) where T <: AbstractTopology

this function returns the UnitCell associated with the given Topology type. If the Topology type is not recognized, it throws an error.

source