Reference

Contents

Index

KagomeDSL.DoubleKagomeMethod

double triangle unit cell Kagome lattice

note n1 here is still the number of repititions of triangle in the a1 direction, so n1 is asserted to be even. The total number is n1 * n2 * 3 sites.

source
Carlo.init!Method
Carlo.init!(mc::MC, ctx::MCContext, params::AbstractDict)

Initialize the Monte Carlo object params

  • n1 : Int number of cells in x direction
  • n2 : Int number of cells in y direction
  • PBC : Tuple{Bool,2} boundary condition, e.g. (false, false)
source
Carlo.sweep!Method
Carlo.sweep!(mc::MC, ctx::MCContext) -> Nothing

Perform one Monte Carlo sweep for the Mott state simulation. This implements a two-spin swap update where electrons can exchange positions between different spin states at occupied sites.

Note: The W matrices are re-evaluated periodically (every n_occupied sweeps) to maintain numerical stability. If the re-evaluation fails due to singular matrices, a warning is issued and the simulation continues.

source
KagomeDSL.HmatMethod
Hmat(lat::DoubleKagome) -> Matrix{Float64}

Return the Spinor Hamiltonian matrix for a DoubleKagome lattice.

source
KagomeDSL.SzMethod
Sz(i::Int, kappa_up::Vector{Int}, kappa_down::Vector{Int}) -> Float64

$Sz = 1/2 (f^†_{↑} f_{↑} - f^†_{↓} f_{↓})$ Calculate the z-component of spin at site i given up and down spin configurations.

Returns: +1/2 for up spin -1/2 for down spin

Throws: ArgumentError: if site is doubly occupied or empty BoundsError: if i is outside the valid range

source
KagomeDSL.getOLMethod

The observable $O_L = \frac{<x|H|\psi_G>}{<x|\psi_G>}$ The Hamiltonian should be the real one!

source
KagomeDSL.getxprimeMethod

return $|x'> = H|x>$ where $H$ is the Heisenberg Hamiltonian Note $|x>$ here should also be a Mott state.

source
KagomeDSL.is_occupiedMethod
is_occupied(kappa::Vector{Int}, l::Int) -> Bool

Check if site l is occupied in the kappa configuration vector.

Throws: BoundsError: if l is outside the valid range of kappa

source
KagomeDSL.spinInteraction!Method
spinInteraction!(xprime::Dict, kappa_up::Vector{Int}, kappa_down::Vector{Int}, i::Int, j::Int)

Compute the spin flip term 1/2(S+i S-j + S-i S+j) contribution to xprime.

The function handles two cases:

  1. S+i S-j: when j has up spin and i has down spin
  2. S-i S+j: when i has up spin and j has down spin

Each case contributes with coefficient 1/2.

source
KagomeDSL.tilde_UMethod
tilde_U(U::AbstractMatrix, kappa::Vector{Int})

Creates a tilde matrix by rearranging rows of U according to kappa indices.

Parameters:

  • U: Source matrix of size (n × m)
  • kappa: Vector of indices where each non-zero value l indicates that row Rl of U should be placed at row l of the output

Returns:

  • A matrix of size (m × m) with same element type as U
source
KagomeDSL.update_W!Method
update_W!(W::AbstractMatrix; l::Int, K::Int)

Update the W matrix $W'_{I,j} = W_{I,j} - W_{I,l} / W_{K,l} * (W_{K,j} - \delta_{l,j})$

source