Code Monkey home page Code Monkey logo

comctqmc's Introduction

ComCTQMC

ComCTQMC is a quantum impurity solver which uses the continuous time quantum Monte Carlo (CTQMC) algorithm where the action of the quantum impurty is expanded in terms of the hybridisation functions (CT-HYB). It is a stand-alone impurity solver and also embedded in dynamical mean field theory (DMFT) including ComSuite (github.com/comscopt/comsuite) and Portobello.

Features

ComCTQMC features both partition-space and worm-space sampling in order to support the measurement of all one- and two-particle Green's functions along with any static observables which can be extracted from the reduced density matrix.

A GPU accelerated version is available for those with CUDA libraries and CUDA-capable devices (GPUs). GPUs can enable up to 600x acceleration of f-shell (14 orbital) problems or 5x acceleration of d-shell (10 orbital) problems. (Smaller problems should not use GPUs, as they will decelerate the CTQMC.)

The Team

The project is developed by ComScope (https://www.bnl.gov/comscope/) with support from the DOE office of Basic Sciences. The main developers are Drs. Corey Melnick ([email protected]) and Patrick S{e}mon.

Citing ComCTQMC

If you use ComCTQMC, please cite our pre-print (Arxiv paper to come).

Installation

Download the repository and unzip it, e.g., tar -xzvf ComCTQMC.tar.gz

The executables of ComCTQMC are compiled using make, and there are two executables to compile: CTQMC and EVALSIM.

Before making these executables, one must define which compilers and libraries to use. (See the next section for a list of required libraries and compilers.) The file ComCTQMC/Makefile.in provides fields in which to set these options, along with other compiler flags you might need to get ComCTQMC working on your computer or cluster. There are a number of examples located in ComCTQMC/cluster_makefiles which can be used to compile on Cori (NERSC/LBNL), Summit (OLCF/ORNL), or a Mac. The user guide provides some additional guidance on Makefile.in

Once configured, one should execute the following commands in the ~/ComCTQMC/ directory

(cpu version) make cpu (gpu version) make gpu

This will generate two executables: ~/ComCTQMC/bin/CTQMC and ~/ComCTQMC/bin/EVALSIM

If you change libraries, one should invoke make clean before building the executables

Requirements

A C++11 capable compiler. The code has been tested using GNU, clang, and intel commpilers. IBM (cray) compilers are not currently supported.

BLAS and LAPACK libraries -- tested with with Intel MKL, IBM ESSL, and NETLIB-LAPACK libraries.

(optional) MPI libraries -- required for parallelization across CPUs. Tested with OpenMPI and (IBM's) Spectrum-MPI libraries.

(optional) CUDA libraries and compiler -- required for the GPU accelerated version of the code. Tested with Cuda/10.1

(optional) CUTLASS libraries -- required for the GPU accelerated version of the code. Provided with ComCTQMC.

Usage

The general workflow required to use ComCTQMC is as follow:

  1. Navigate to the working directory
  2. Produce a parameter file, params.json (one can name this anything, provided it ends with .json)
  3. Produce a file defining the hybridisation functions, hyb.json (one can name this anything)
  4. (optional) Produce a file defining the bosonic hybridisation functions `dyn.json'
  5. run the CTQMC executable
  • (mpi enabled) mpirun -np X -npernode Y ComCTQMC/bin/CTQMC params
  • (otherwise) ComCTQMC/bin/CTQMC params
  1. Run the post-processing executable
  • (mpi enabled) mpirun -np Z -npernode Y ComCTQMC/bin/EVALSIM params
  • (otherwise) ComCTQMC/bin/EVALSIM params

For a description of the input and output files, we refer the reader to the user guide UserGuide.pdf.

Examples are available in ComCTQMC/examples

comctqmc's People

Contributors

cmelni avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

comctqmc's Issues

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.