AbstractHamiltonians
Functions
FreeBird.AbstractHamiltonians — ModuleAbstractHamiltoniansModule for defining and implementing Hamiltonians.
FreeBird.AbstractHamiltonians.GenericLatticeHamiltonian — Typestruct GenericLatticeHamiltonian{N,U} <: ClassicalHamiltonianThe 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 UExamples
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] eVFreeBird.AbstractHamiltonians.MLatticeHamiltonian — Type struct MLatticeHamiltonian{C,N,U} <: ClassicalHamiltonianThe 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)