This package computes the Variational Monte Carlo ground state and its associated Green function for the Hubbard model. Details on the physics associated to this package can be found at: arxiv.org:2307.15738.
This package is an extension of the dVMC package published in PhysRevX.10.041023 - (arxiv:1912.09960) which is itself based on the original mVMC open source mVMC package from: ComputPhysCommun.08.014 - (arXiv:1711.11418)
This package has essentially the same behavior as the code in PhysRevX.10.041023 but can now relax the constraint of translation invariance and periodic boundary condition. It also offers the possibility to include bath orbitals which are treated differently (no calcultion of the Green function on these orbitals). This new feature is very important to be able to use this Hubbard impurity solver solution as an impurity solver that can be conjugated with CPT, CDMFT, etc.
The present authors (Maxime Charlebois, Peter Rosenberg and Antoine de Lagrave) only work on these changes and not on the original mVMC package. You can find the original
README
of both original mVMC and dVMC packages in the./doc
directory.
You can look for the latest developments of this package at github.com/BCarnaval/dvmc-impurity-solver.
You are free to use this code as long as you respect the License terms. If you use it or learn from it, we ask that you cite the following article: arxiv.org:2307.15738: CDMFT-dVMC article, to be published in PhysRevB,
and potentially these articles: PhysRevB.106.245132 - (arxiv:2209.08092) : CPT-dVMC article. PhysRevX.10.041023 - (arxiv:1912.09960) : original dVMC article and software library. ComputPhysCommun.08.014 - (arXiv:1711.11418): original VMC article and software library.
In summary it requires C and Fortran compilers, cmake, openmpi, lapack-blas, python3 and pyqcm. Most of dependencies can be installed on a personal computer using these simple commands:
sudo apt update
sudo apt install git build-essential gcc gfortran make cmake libblas-dev liblapack-dev
sudo apt install openmpi-bin openmpi-doc libopenmpi-dev checkinstall
xcode-select --install
brew install git cmake open-mpi openblas lapack
After that, PyQCM v2.2.1 must be installed. Please rfer to the procedure detailed at the end of ./doc/INSTALL_DEPENDENCIES.md
. More information about the installation procedures and compatible versions of dependencies are detailed in this file.
- Clone the repository dvmc-impurity-solver on your machine
git clone https://github.com/BCarnaval/dvmc-impurity-solver
- Making the conventional CMake working directory
cd dvmc-impurity-solver
mkdir build && cd build
- Telling CMake to use specified configuration file based on user's compiler and OS. All
possible configurations can be found inside the
./config/
directory
cmake ..
or
cmake .. -DCONFIG=<chosen_config_file.cmake>
to use a specifig configuration as explained above (see ./config/
directory).
- Compiling and linking the code with specified compiler settings and installing the binaries and dVMC CLI
make install
- Modifying
$PYTHONPATH
variable to makedvmc.py
accessible as a module
export PYTHONPATH="$HOME/.local/share/dvmc:$PYTHONPATH"
(Note: Add this last line to your .bashrc
to make dVMC always accessible)
It is recommended to consult the original mVMC documentation to learn more about dependencies and parameters names. Note however that most of the cases present in the originale mVMC documentation are not covered by the present code.
Most of the usage information is contained inside the dvmc
command line tool
installed by CMake inside $HOME/.local/bin
on your system. If the command
dvmc --help
doesn't work on your machine, you should add this directory to your $PATH
so it can
be found as a command. To temporarily add this directory to your $PATH
you can use the
command
export PATH="$HOME/.local/bin:$PATH"
By running this command, your shell will be able to access the scripts in $HOME/.local/bin
until the current session is ended. To add it every time a shell session is
openned, you must add the previous line to the $HOME/.bashrc
file.
Detailed usage is not covered here. Instead many examples can be found
in the ./samples/
subdirectory. The easiest way to understand how to
use it is to run these examples. Go there to read the README.md
of the
examples that increase in complexity from 01
to 06
.
All changes from the original mVMC package were done by Maxime Charlebois, Peter Rosenberg and Antoine de Lagrave. Please email us if you have any question on this version of the code.
GNU General Public License version 3 (GPL v3).
See LICENSE
file for the details.