w2dynamics
A continuous-time hybridization-expansion Monte Carlo code for calculating n-particle Green's functions of the Anderson impurity model and within dynamical mean-field theory.
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: arxiv.org, sciencedirect.com -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.9%) to scientific vocabulary
Keywords
Repository
A continuous-time hybridization-expansion Monte Carlo code for calculating n-particle Green's functions of the Anderson impurity model and within dynamical mean-field theory.
Basic Info
Statistics
- Stars: 50
- Watchers: 14
- Forks: 23
- Open Issues: 5
- Releases: 6
Topics
Metadata Files
README.md
w2dynamics - Wien/Wuerzburg strong coupling solver
w2dynamics is a hybridization-expansion continuous-time quantum Monte Carlo package, developed jointly in Wien and Würzburg.
In any published papers arising from the use of w2dynamics, please cite:
M. Wallerberger, A. Hausoel, P. Gunacker, A. Kowalski, N. Parragh, F. Goth, K. Held, and G. Sangiovanni,
Comput. Phys. Commun. 235, 2 (2019)
https://www.sciencedirect.com/science/article/pii/S0010465518303217
arXiv:1801.10209 https://arxiv.org/abs/1801.10209
When using additional codes in conjunction with w2dynamics, do not forget to give credit to them as well.
w2dynamics contains:
- a multi-orbital quantum impurity solver for the Anderson impurity model
- dynamical mean field theory self-consistency loop,
- a maximum-entropy analytic continuation, as well as
- coupling to density functional theory.
The w2dynamics package allows for calculating one- and two-particle quantities; it includes worm and further novel sampling schemes. Details about its download, installation, functioning and the relevant parameters are provided.
Maintainers and principal authors:
- Markus Wallerberger
- Andreas Hausoel
- Patrik Gunacker
- Alexander Kowalski
- Nicolaus Parragh
- Florian Goth
- Karsten Held
- Giorgio Sangiovanni
Installation
Requirements:
- Python (>= 2.6)
- Fortran 90 compiler, e.g. GCC
- C++11 compiler, e.g. GCC
- CMake (>= 3.18)
- BLAS, ideally an optimized version as provided e.g. by OpenBLAS or Intel MKL
- LAPACK, ideally an optimized version as provided e.g. by OpenBLAS or Intel MKL
Further dependencies (automatically installed if not found):
- Python packages: numpy >= 1.10, scipy >= 0.10, h5py, mpi4py, configobj
- NFFT3 (for automatic building, its dependency FFTW3 is required)
- HDF5 (as a dependency of h5py)
To get the code use git:
$ git clone https://github.com/w2dynamics/w2dynamics.git
To build the code follow the cmake build model:
$ mkdir build
$ cd build
$ cmake .. [FURTHER_FLAGS_GO_HERE]
$ make
If CMake fails to find some native dependency automatically, command
line arguments of the form -D<PACKAGE>_ROOT=/path/to/package/ can
usually be used to explicitly specify installation prefixes that
should be searched, for example -DNFFT_ROOT=/path/to/nfft/ for
NFFT. For the Python packages, you should try to ensure that they can
be imported in the interpreter used by CMake. CMake can be instructed
to use a specific interpreter executable using
-DPYTHON_EXECUTABLE=/path/to/python. Consider especially that if a
Python 3 installation is found automatically, it will be preferred to
a Python 2 installation.
To run the unit tests (optional), run the following in the build directory:
$ make test
To install the code (optional), run the following in the build directory:
$ cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/prefix
$ make install
For example installation instructions for some operating systems and computing clusters, you can also visit our wiki page on installation.
Running the code
First, prepare a parameter file, which is usually named
Parameters.in. You can use the input files for the
tutorials
on our wiki as templates.
Next, run DMFT.py to use the self-consistency loop or cthyb if you
do a single-shot calculation. If you have installed the code (see
above), both executables should be placed in your path. If your
parameter file is not named Parameters.in or does not lie in your
current working directory, you have to specify it explicitly as a
command line argument. If you want to run your calculation using MPI
parallelization, use mpiexec or similar to execute the script.
$ DMFT.py [Parameters.in]
$ cthyb [Parameters.in]
$ mpiexec -n 10 DMFT.py [Parameters.in]
$ mpiexec -n 10 cthyb [Parameters.in]
The code will produce a file with a name like RunIdentifier-Timestamp.hdf5.
It is an archive of all quantities written by w2dynamics. You can navigate this
file using any hdf5-compatible analysis tool, such as jupyter, matlab, etc.
For your convenience, we have also included the tool hgrep, which allows
quick analysis of the data:
$ hgrep [options] (file|latest) quantity [[index] ...]
$ hgrep latest siw 1 1 1 1
will print the self-energy on the Matsubara axis from the first
iteration for the first inequality, orbital and spin as tabular
data. Add option -p for automatic plotting or have a look at the man
page hgrep.man or the examples in our
tutorials
for details.
Files and directories
w2dyn/auxiliaries/: auxiliary python routines (in/output, config files, etc.)w2dyn/dmft/: python package for DMFT self-consistency loopw2dyn/maxent/: Python wrapper for maximum entropy analytic continuationclusters/: template submission scripts for different clusterscmake/: cmake custom modulesdocs/: documentation (github wiki)Postproc/: postprocessing scriptspreproc/: preprocessing scriptssrc/: compiled modules loaded from pythonctqmc_fortran: Fortran 90 continuous-time quantum Monte Carlo solvermaxent: maximum entropy analytic continuation solvermtrng: Mersenne twister pseudorandom number generator
testsuite/: unit tests for the codecfg_converter.py: small script converting old-style config filescompletions.sh: file for bash completionscprun: convenience script copying input files to different directoryDMFT.py: main entry point for DMFT self-consistency loophgrep: utility for extracting data from HDF5 fileMaxent.py: main entry point for maximum entropy codesetup.py: Python installation script
Citation
If you use the w2dynamics package, please mention the following in the acknowledments:
The QMC simulations were carried out with the w2dynamics package available at https://github.com/w2dynamics/w2dynamics .
Owner
- Name: w2dynamics
- Login: w2dynamics
- Kind: organization
- Email: w2dynamics-devel@list.tuwien.ac.at
- Website: http://w2dynamics.github.io/
- Repositories: 1
- Profile: https://github.com/w2dynamics
w2dynamics collaboration for developing DMFT/CTHYB codes
Citation (CITATION)
In any published papers arising from the use of w2dynamics, please cite:
M. Wallerberger, A. Hausoel, P. Gunacker, A. Kowalski, N. Parragh, F. Goth, K. Held, and G. Sangiovanni,
Comput. Phys. Commun. 235, 2 (2019)
https://www.sciencedirect.com/science/article/pii/S0010465518303217
arXiv:1801.10209 https://arxiv.org/abs/1801.10209
When using additional codes in conjunction with w2dynamics, do not forget
to give credit to them as well!
Here's a basic bibtex entry for latex users:
@article{w2dynamics,
title = "w2dynamics: Local one- and two-particle quantities from dynamical mean field theory",
journal = "Computer Physics Communications",
volume = "235",
pages = "388 - 399",
year = "2019",
issn = "0010-4655",
doi = "https://doi.org/10.1016/j.cpc.2018.09.007",
url = "http://www.sciencedirect.com/science/article/pii/S0010465518303217",
author = "Markus Wallerberger and Andreas Hausoel and Patrik Gunacker and Alexander Kowalski and Nicolaus Parragh and Florian Goth and Karsten Held and Giorgio Sangiovanni",
keywords = "(continuous-time) quantum Monte Carlo, Anderson impurity model, Dynamical mean field theory, Green’s functions"
}
GitHub Events
Total
- Issues event: 1
- Watch event: 2
- Issue comment event: 1
- Push event: 5
- Pull request event: 2
- Fork event: 3
Last Year
- Issues event: 1
- Watch event: 2
- Issue comment event: 1
- Push event: 5
- Pull request event: 2
- Fork event: 3
Dependencies
- configobj *
- h5py *
- numpy *
- scipy *
- actions/cache v2 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite