Coder Social home page Coder Social logo

numericaleft / numericaleft.jl Goto Github PK

View Code? Open in Web Editor NEW
35.0 3.0 7.0 3.48 MB

Numerical Effective Field Theory for Quantum Materials

Home Page: https://numericaleft.github.io/NumericalEFT.jl/dev

License: MIT License

Julia 99.20% Shell 0.30% Python 0.50%
quantum-statistics julia many-body-physics quantum-field-theory feynman-diagrams effective-field-theory

numericaleft.jl's Introduction

NumericalEFT

Numerical effective field theory toolbox for quantum many-body problem.

Stable Dev Build Status codecov

Motivation

Effective field theory (EFT) models the correlation functions of quantum many-body systems with an effective action defined below a certain energy/momentum scale. EFT has been widely used in high-energy physics, nuclear physics, and condensed matter physics. Originally, EFT was developed assuming the principle of locality, which states that an object is influenced directly only by its immediate surroundings. If one observes a long-range interaction between two particles (say, the Coulomb interaction between two electrons), then such interaction must be mediated by an intermediate particle called a gauge boson (the photon in the previous example).

All known theories of the elementary particles in our universe are local theories, but it does not mean the local EFT rules everything. Below the energy scales most relevant for human life, the speed of light can be safely assumed to be infinite so that effective physical laws are governed by an absolute Newtonian time. In those systems, an event at one point can cause a simultaneous result at another point. The EFTs describe such systems are then nonlocal.

We create this package to extend the conventional EFT to incorporate the nonlocality. Such nonlocal EFTs are typically much more difficult to calculate compared to the conventional EFTs. Analytic solution is not feasible anymore, and numerical solution is usually the only option. We thus develop this numerical package to solve the problem and make nonlocal EFT a practical tool for real-world applications, such as the electron liquids in real materials, chiral EFT in the neutron-rich matter, and all kinds of emergent low-energy field theories in lattice models.

Features

The package NumericalEFT.jl is a collection of several independent components, which are organized in the following infrastructure:

NumericalEFT

Most of the components have been published as independent packages, and you can test or use them separately. The packages are still fast-evolving, but many are production-ready.

Core packages: a set of self-contained and general-purpose tools.

  • Lehmann.jl: Discrete Lehmann representation (DLR) for imaginary-time/Matsubara frequency Green's function. For a generic Green's function at a temperature T, DLR is capable of representing it up to a given accuracy ϵ with a cost ~ log(1/T)log(1/ϵ), significantly cheaper than a naive approach with a cost ~ 1/(Tϵ).

  • FeynmanDiagram.jl: A mini-compiler that compiles generic multi-loop Feynman diagrams to a computational graph, which then can be efficiently manipulated or evaluated. The same type of computational graph has been the corner of neural-network-based machine learning.

  • MCIntegration.jl: An adaptive Monte Carlo calculator for general high dimensional integral. It is one of the most robust and fastest Monte Carlo integration packages on the market.

  • CompositeGrids.jl: Composite Cheybeshev/Gaussian/logarithmic grid systems for highly efficient one-dimensional interpolation and integration. It allows the user to combine different grids to represent nontrivial functions.

  • BrillouinZoneMeshes.jl: Compact mesh systems for representing and manipulating functions defined on generic Brillouin zone in 2D or 3D.

Toolbox packages: integrated software for quantum many-body problems

  • GreenFunc.jl: A software to calculate, manipulate and analyze the Green's functions and the vertex functions at the tree-level, which characterize the quantum field dynamics in the semiclassical limit ħ→0. It consists of:

    • A container of generic Green's functions based on the discrete Lehmann representation and adaptive mesh systems.
    • Several helper functions to generate typical Green's functions. For example, a set of functions to calculate the many-body Green's functions of a small cluster of Hubbard-type atoms is a small-scale exact diagonalization solver.
    • Import(export) Green's function from(to) the Triqs.
  • MultiLoop.jl (WIP): A software to calculate and analyze the quantum many-body effects beyond the semiclassical limit. It consists of:

    • Diagrammatic Monte Carlo calculator of multi-loop Feynman diagrams of correlation functions and vertex functions.
    • Renormalization technique to improve the perturbation theory.
    • Renormalization Group analysis.

Applications

  • ElectronGas.jl: A package that uses the numerical EFT to explore many-fermion systems with singular interactions. It can be used to study the uniform electron gas problem, Hertz-Millis theory, etc.

  • QuantumMaterials.jl (WIP): Ab-initio methods for real materials based on an effective field theory.

Installation

This package has been registered. So, simply type import Pkg; Pkg.add("NumericalEFT") in the Julia REPL to install.

Questions and Contributions

Contributions are very welcome, as are feature requests and suggestions. Please open an issue if you encounter any problems.

numericaleft.jl's People

Contributors

bzwang-phys avatar fsxbhyy avatar houpc avatar iintsjds avatar kunyuan avatar littlebug avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

numericaleft.jl's Issues

Improve README.md

README.md should provide basis description and tutorial of the codebase.

Generic MC variable

Make variables more generic in MC.

  • Replace the Tau variable with a continuous bounded variable.

document generation error on Github

Document generation failed on the master branch. Not clear why.

Error information:

ERROR: LoadError: LoadError: LoadError: syntax: invalid keyword argument syntax "id"
Stacktrace:
[1] top-level scope at /home/runner/work/QuantumStatistics.jl/QuantumStatistics.jl/src/diagram/parquet/vertex4.jl:65
[2] include(::Module, ::String) at ./Base.jl:377
[3] include(::String) at /home/runner/work/QuantumStatistics.jl/QuantumStatistics.jl/src/diagram/parquet/parquet.jl:1
[4] top-level scope at /home/runner/work/QuantumStatistics.jl/QuantumStatistics.jl/src/diagram/parquet/parquet.jl:14
[5] include(::Module, ::String) at ./Base.jl:377
[6] include(::String) at /home/runner/work/QuantumStatistics.jl/QuantumStatistics.jl/src/QuantumStatistics.jl:1
[7] top-level scope at /home/runner/work/QuantumStatistics.jl/QuantumStatistics.jl/src/QuantumStatistics.jl:27
[8] include(::Module, ::String) at ./Base.jl:377
[9] top-level scope at none:2
[10] eval at ./boot.jl:331 [inlined]
[11] eval(::Expr) at ./client.jl:449
[12] top-level scope at ./none:3
in expression starting at /home/runner/work/QuantumStatistics.jl/QuantumStatistics.jl/src/diagram/parquet/vertex4.jl:65
in expression starting at /home/runner/work/QuantumStatistics.jl/QuantumStatistics.jl/src/diagram/parquet/parquet.jl:14
in expression starting at /home/runner/work/QuantumStatistics.jl/QuantumStatistics.jl/src/QuantumStatistics.jl:27
ERROR: LoadError: Failed to precompile QuantumStatistics [08acf9d9-9812-4184-bb82-ed7be26454cb] to /home/runner/.julia/compiled/v1.4/QuantumStatistics/DeUoG_s77u2.ji.
Stacktrace:
[1] error(::String) at ./error.jl:33
[2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1272
[3] _require(::Base.PkgId) at ./loading.jl:1029
[4] require(::Base.PkgId) at ./loading.jl:927
[5] require(::Module, ::Symbol) at ./loading.jl:922
[6] include(::Module, ::String) at ./Base.jl:377
[7] exec_options(::Base.JLOptions) at ./client.jl:288
[8] _start() at ./client.jl:484
in expression starting at /home/runner/work/QuantumStatistics.jl/QuantumStatistics.jl/docs/make.jl:2

Composite Chebyshev grid for imaginary-time

Polynomial interpolation based on Chebyshev nodes provides interpolation polynomial minimizes the effect of Runge's phenomenon.

In the DLR module, the composite Chebyshev grid has been used to discretize the kernel in the Lehmman representation. The same grid can be used to fit generic imaginary-time correlators.

TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.

If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.

If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.