All Projects → Quantum-Many-Body → QuantumLattices.jl

Quantum-Many-Body / QuantumLattices.jl

Licence: other
Julia package for the construction of quantum lattice systems.

Programming Languages

julia
2034 projects

Projects that are alternatives of or similar to QuantumLattices.jl

PyQMagen
A method which combines quantum many-body calculation and unbiased optimizers to automatically learn effective Hamiltonians for quantum magnets
Stars: ✭ 21 (-73.42%)
Mutual labels:  condensed-matter-physics, quantum-many-body
Synthetic-data-gen
Various methods for generating synthetic data for data science and ML
Stars: ✭ 57 (-27.85%)
Mutual labels:  symbolic-computation
DiffEqPhysics.jl
A library for building differential equations arising from physical problems for physics-informed and scientific machine learning (SciML)
Stars: ✭ 46 (-41.77%)
Mutual labels:  hamiltonian
Symbolic-computation-Python
Symbolic computation using SymPy and various applications
Stars: ✭ 18 (-77.22%)
Mutual labels:  symbolic-computation
kanren
An extensible, lightweight relational/logic programming DSL written in pure Python
Stars: ✭ 111 (+40.51%)
Mutual labels:  symbolic-computation
Bracmat
Programming language for symbolic computation with unusual combination of pattern matching features: Tree patterns, associative patterns and expressions embedded in patterns.
Stars: ✭ 42 (-46.84%)
Mutual labels:  symbolic-computation
ML-CM-2019
Machine Learning in Condensed Matter Physics 2019 course repository
Stars: ✭ 51 (-35.44%)
Mutual labels:  condensed-matter-physics
Abacus
Advanced Combinatorics and Algebraic Number Theory Symbolic Computation library for JavaScript, Python
Stars: ✭ 16 (-79.75%)
Mutual labels:  symbolic-computation
mathiu.cpp
mathiu : a simple computer algebra system in C++.
Stars: ✭ 58 (-26.58%)
Mutual labels:  symbolic-computation
CC33Z
Curso de Ciência da Computação
Stars: ✭ 50 (-36.71%)
Mutual labels:  symbolic-computation
SymbolicTensors.jl
Manipulate tensors symbolically in Julia! Currently needs a SymPy dependency, but work is ongoing to change the backend to SymbolicUtils.jl
Stars: ✭ 26 (-67.09%)
Mutual labels:  symbolic-computation
SciLean
Scientific computing in Lean 4
Stars: ✭ 86 (+8.86%)
Mutual labels:  symbolic-computation
SymbolicControlSystems.jl
An interface between ControlSystems.jl and SymPy.jl
Stars: ✭ 20 (-74.68%)
Mutual labels:  symbolic-computation
HamiltonianSolver
Numerically solves equations of motion for a given Hamiltonian function
Stars: ✭ 51 (-35.44%)
Mutual labels:  hamiltonian
Hedgehog Lab
Run, compile and execute JavaScript for Scientific Computing and Data Visualization TOTALLY TOTALLY TOTALLY in your BROWSER! An open source scientific computing environment for JavaScript TOTALLY in your browser, matrix operations with GPU acceleration, TeX support, data visualization and symbolic computation.
Stars: ✭ 1,797 (+2174.68%)
Mutual labels:  symbolic-computation
hamilton
A scalable general purpose micro-framework for defining dataflows. You can use it to create dataframes, numpy matrices, python objects, ML models, etc.
Stars: ✭ 612 (+674.68%)
Mutual labels:  hamiltonian
Metatheory.jl
General purpose algebraic metaprogramming and symbolic computation library for the Julia programming language: E-Graphs & equality saturation, term rewriting and more.
Stars: ✭ 266 (+236.71%)
Mutual labels:  symbolic-computation
HashedExpression
Type-safe modelling DSL, symbolic transformation, and code generation for solving optimization problems.
Stars: ✭ 40 (-49.37%)
Mutual labels:  symbolic-computation
symbolic-pymc
Tools for the symbolic manipulation of PyMC models, Theano, and TensorFlow graphs.
Stars: ✭ 58 (-26.58%)
Mutual labels:  symbolic-computation
Kelvin
A powerful language for symbolic computation written in Swift.
Stars: ✭ 23 (-70.89%)
Mutual labels:  symbolic-computation

QuantumLattices.jl

CI codecov 996.icu LICENSE LICENSE Code Style: Blue ColPrac: Contributor's Guide on Collaborative Practices for Community Packages

Julia package for the construction of quantum lattice systems.

Welcome to QuantumLattices. Here we provide a general framework to construct the operator-formed Hamiltonian of any quantum lattice system, with the inputs as simple as its description by the natural language. This operator-formed Hamiltonian supports complete symbolic computations when combined with SymPy, and can serve as a convenient frontend of quantum many-body algorithms, such as TBA (tight-bind approximation), LSWT (linear spin wave theory), SCMF (self-consistent mean field theory), ED (exact diagonalization), CPT/VCA (cluster perturbation theory / variational cluster approach), DMRG (density matrix renormalization group), etc. Generic interfaces are defined to provide a unified access to these algorithms with automatic project management.

Installation

In Julia v1.8+, please type ] in the REPL to use the package mode, then type this command:

pkg> add QuantumLattices

Package Features

The mathematical foundations of our package is that the operators in a lattice Hamiltonian:

  • act on local Hilbert spaces, and
  • form an algebra over the complex field.

Based on this, the package has the following features:

  • Unitcell Description Framework: the Hamiltonian can be constructed based on the unitcell of a lattice with the information of the local algebra acting on the local Hilbert space living on each point and the terms that couples different degrees of freedom on the same or different points. Such information can be input into the program as simple as describing the quantum system in a usual research paper.

  • Complete Symbolic Computation: with only this package, symbolic computation between operators is realized while the coefficient of any operator remains numeric; by integrating it with SymPy, complete symbolic computation can be achieved and no modifications need be made on the methods in this package.

  • Generic Frontend of Many-Body Algorithms: with the operator-formed Hamiltonian as the foothold, quantum many-body algorithms can be initialized in quite similar ways with only minor modifications needed. Moreover, automatic project management is realized, including that of result recording, data caching, parameter updating, information logging, dependency managing, etc.

Supported Systems

Four common categories of quantum lattice systems in condensed matter physics are supported:

  • canonical complex fermionic systems
  • canonical complex and hard-core bosonic systems
  • SU(2) spin systems
  • Phononic systems

Furthermore, other systems can be supported easily by extending the generic protocols provided in this package.

Supported Algorithms

Concrete algorithms could be considered as the "backend" of quantum lattice systems. They are developed in separate packages (still in progress):

  • TBA: tight-binding approximation for complex-fermionic/complex-bosonic/phononic systems;
  • SCMF: self-consistent mean field theory for complex fermionic systems;
  • ED: exact diagonalization for complex-fermionic/hard-core-bosonic/local-spin systems;
  • CPT/VCA: cluster perturbation theory and variational cluster approach for complex fermionic and local spin systems;
  • DMRG: density matrix renormalization group for complex-fermionic/hard-core-bosonic/local-spin systems;
  • LSWT: linear spin wave theory for magnetically ordered local-spin systems.

Getting Started

  • [Tutorials: unitcell description](@ref UnitcellDescriptionIntroduction)
  • [Tutorials: advanced topics](@ref AdvancedTopicsIntroduction)

Note

Due to the fast development of this package, releases with different minor version numbers are not guaranteed to be compatible with previous ones before the release of v1.0.0. Comments are welcomed in the GitHub issues.

Contact

[email protected]

Python counterpart

HamiltonianPy: in fact, the authors of this Julia package worked on the python package at first and only turned to Julia later.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].