Skip to content

Dynamical Variational Monte Carlo (dVMC) method implemented and published in arxiv:1912.09960

License

Notifications You must be signed in to change notification settings

BCarnaval/dvmc-impurity-solver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dvmc-impurity-solver

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)

C Fortran Python Shell Script

LICENSE release

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.

Note

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.

Table of contents

References

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.

Dependencies

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:

Linux (Ubuntu)

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

MacOS

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.

Installation

  1. Clone the repository dvmc-impurity-solver on your machine
git clone https://github.com/BCarnaval/dvmc-impurity-solver
  1. Making the conventional CMake working directory
cd dvmc-impurity-solver
mkdir build && cd build
  1. 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).

  1. Compiling and linking the code with specified compiler settings and installing the binaries and dVMC CLI
make install
  1. Modifying $PYTHONPATH variable to make dvmc.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.

Usage

dvmc CLI (Command Line Interface)

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.

Samples

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.

Authors

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.

License

GNU General Public License version 3 (GPL v3). See LICENSE file for the details.