GithubHelp home page GithubHelp logo

beddalumia / mottlab Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 1.0 18.39 MB

MOTT transition within MATLAB. Blazing fast IPT code treating Bethe-Hubbard model at half-filling.

License: BSD 3-Clause "New" or "Revised" License

MATLAB 92.62% Shell 7.38%
dmft ipt hubbard-model perturbation-theory dynamical-mean-field-theory mott-transition matlab

mottlab's Introduction

What MOTTlab is

An efficient implementation of (real axis) IPT-based dynamical mean-field theory for the half-filled Mott-Hubbard transition on the Bethe lattice, within pure MATLAB.

What you can get out of it

Here we present a few examples of what you can obtain fiddling around the MOTTlab.

Characterize the interaction-driven quantum Mott transition through different physical markers, such as the timeless classic quasiparticle renormalization weight ZF , or the quantized Luttinger integral IL, getting some exotic hints of a topological interpretation.

Mott-Transition-Markers-zeroT

Truly visualize what happens at different relevant temperatures by means of pretty animations!

Temperature DOS SELF-ENERGY
T -> 0: 2nd order MIT Mott-Transition-AnimatedDOS-zeroT Mott-Transition-AnimatedSIGMA-zeroT
Intermediate T: 1st order MIT Mott-Transition-AnimatedDOS-intermediateT Mott-Transition-AnimatedSIGMA-intermediateT
High T: supercritical MIT Mott-Transition-AnimatedDOS-highT Mott-Transition-AnimatedSIGMA-highT

Dependencies

I've tried hard to avoid exceeding with the infamous MathWorks add-ons. At the moment the only additional dependence is the Signal Processing Toolbox, which provides an efficient implementation of the discrete Hilbert transforms, at the heart of the numerical evaluation of the Kramers-Kronig relationships. Nevertheless I provide also a FOSS options, through GNU Octave packages.

First of all you need to install the main software. The easiest way that I know is through Homebrew (you won't need sudo rights, they just take care of everything):

brew install octave

Then run an instance of Octave in your shell (just type octave) and install the control package, by typing:

pkg install -forge control

Finally proceed to install the signal package, which provides a FOSS implementation1 of the hilbert() function:

pkg install -forge signal

You should now be set... enjoy!

Licensing and legacy code

This code has been implemented taking inspiration from these didactic sources:

  1. Kristjan Haule lecture on lattice vs local SOPT (local copy).
  2. Marcelo Rozenberg lecture on DMFT and the MIT (local copy) and the hands-on material linked therein, in particular a tutorial-intended jupyter notebook provided by Óscar Nájera under the BSD 3-Clause License.

Here we provide an efficient pure MATLAB rewrite of the original real-axis IPT algorithm, complemented by basic phase-diagram workflows, convergence and self-mixing control and various post-processing tools. Further material is being added gradually, with the aim to explore novel research ideas. You can find here a roadmap of the project, with a concise description of each addition and references to the relevant research papers.

Everything mantains the original BSD 3-Clause License. You can read more about permitted use and conditions in the LICENSE file.

© 2020 | Gabriele Bellomia

Footnotes

  1. note that while the MATLAB fft family is always built on top of FFTW, with Octave you could end up wrapping FFTPACK instead, depending on how your binaries have been built.

mottlab's People

Contributors

beddalumia avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

mottlab's Issues

Optimize Luttinger integral evaluation

IL calculation requires a very high frequency resolution (wres ~ 2^15). This causes the convolutions in the SOPT function to saturate almost all the cpu time (~90% of the DMFT_loop self-time). So we want to build a optimized convolution function, that could give a noticeable speedup within our specific requirements (very long arrays to convolve, equal in length).

The idea: FFT-based convolution exploiting the "power of 2" golden rule.

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.