AbstractHamiltonians
Functions
FreeBird.AbstractHamiltonians
— ModuleAbstractHamiltonians
Module for defining and implementing Hamiltonians.
FreeBird.AbstractHamiltonians.GenericLatticeHamiltonian
— Typestruct GenericLatticeHamiltonian{N,U} <: ClassicalHamiltonian
The GenericLatticeHamiltonian
struct represents a generic lattice Hamiltonian. It has an on-site interaction energy and a N
-elements vector of nth-neighbor interaction energies. Units of energy U
is also specified.
Fields
on_site_interaction::U
: The energy of on-site interactions.nth_neighbor_interactions::SVector{N, U}
: The energy of nth-neighbor interactions.
Constructors
GenericLatticeHamiltonian(on_site_interaction::Float64, nth_neighbor_interactions::Vector{Float64}, energy_units::Unitful.Units)
GenericLatticeHamiltonian(on_site_interaction::U, nth_neighbor_interactions::Vector{U}) where U
Examples
julia> ham = GenericLatticeHamiltonian(-0.04, [-0.01, -0.0025], u"eV")
GenericLatticeHamiltonian{2,Quantity{Float64, 𝐋² 𝐌 𝐓⁻², Unitful.FreeUnits{(eV,), 𝐋² 𝐌 𝐓⁻², nothing}}}:
on_site_interaction: -0.04 eV
nth_neighbor_interactions: [-0.01, -0.0025] eV
julia> ham = GenericLatticeHamiltonian(-0.04u"eV", [-0.01, -0.0025]*u"eV")
GenericLatticeHamiltonian{2,Quantity{Float64, 𝐋² 𝐌 𝐓⁻², Unitful.FreeUnits{(eV,), 𝐋² 𝐌 𝐓⁻², nothing}}}:
on_site_interaction: -0.04 eV
nth_neighbor_interactions: [-0.01, -0.0025] eV
FreeBird.AbstractHamiltonians.MLatticeHamiltonian
— Type struct MLatticeHamiltonian{C,N,U} <: ClassicalHamiltonian
The MLatticeHamiltonian
struct represents a multi-component lattice Hamiltonian. It has a matrix of GenericLatticeHamiltonian{N,U}
.
Fields
Hamiltonians::Matrix{GenericLatticeHamiltonian{N,U}}
: The matrix ofGenericLatticeHamiltonian{N,U}
.
Constructors
MLatticeHamiltonian(Hamiltonians::Vector{GenericLatticeHamiltonian{N,U}})
Examples
julia> hams = [GenericLatticeHamiltonian(-0.04, [-0.01, -0.0025], u"eV") for i in 1:4] # full flattened matrix
julia> mlham = MLatticeHamiltonian(hams)
julia> hams = [GenericLatticeHamiltonian(-0.04, [-0.01, -0.0025], u"eV") for i in 1:3] # upper triangular matrix
julia> mlham = MLatticeHamiltonian(2, hams)