Skip to content

ComDMFT is an ab initio code for simulating correlated quantum materials with crystalline symmetry. It combines the LQSGW code's DFT or qsGW calculations with an impurity problem describing strong on-atom correlations. The impurity problem is set up using Wannier90 and cRPA, and is solved with DMFT and the ComCTQMC impurity solver.

License

GPL-3.0, Unknown licenses found

Licenses found

GPL-3.0
LICENSE
Unknown
license.txt
Notifications You must be signed in to change notification settings

comscope/ComDMFT

Repository files navigation

1. ComDMFT

A computational materials physics code for simulating correlated quantum materials using Dynamic Mean Field Theory (DMFT) and its extension. It can calculate the electronic structure within three different mathods:

  • charge self-consistent LDA+Gutzwiller,
  • charge self-consistent LDA+DMFT,
  • and ab initio LQSGW+DMFT

For the copyright and license information, please see Copyright.txt and license.txt.

2. New version release announcement

A release for the 2021 Comscope Summer School, available on the 2021ComscopeSummerSchool branch

-Minor differences from the 2021 Official Release, which was a few weeks earlier. New tutorials are added.

2021. 2. 26, available on the 2021OfficialRelease branch

  • Updated interface to the LQSGW code. Now ComDMFT requires a single input file for the LQSGW code, the DMFT calculation, and its postprocessing.
  • Now ComDMFT provides an option to calculate quasiparticle bandstructures within LDA+DMFT as well as LQSGW+DMFT.
  • Now ComMDFT provides options to choose "s"- or "p"-type corrlated orbitals.

2020. 1. 6, available on the 2020OfficialRelease brance

  • Now ComDMFT can calculate antiferromagnetically ordered phase. Please go to tutorial directories (install_directory/tutorials/lda_dmft/NiO_afm and install_directory/tutorials/lqsgw_dmft/NiO_afm). Read pdf files to learn how to calculate the electronic structures of antiferromagnetically ordered NiO. You have two choices of charge self-consistent LDA+DMFT and LQSGW+DMFT.

2019. 1. 4

  • The first version has been released!!!
  • Please go to tutorial directory(install_directory/tutorials) to learn how to calculate the electronic structures of NiO, MnO, and FeSe. You have three choices of charge self-consistent LDA+Gutzwiller, charge self-consistent LDA+DMFT, and LQSGW+DMFT.

3. ComDMFT Installation

Prerequisites

ComDMFT consists of programs, executables, and scripts, written in Fortran90, c (c++) and Python3. Before you start the installation, you must make sure that the following packages are installed in your system.

  • Fortran, C, CXX compiler and blas/lapack library. The followings have been tested
    • ifort, icpc and mkl
  • MPI
  • Python3 (required package : numpy, scipy, tabulate, itertools, mpi4py, cython, matplotlib, Builtins, sympy, pymatgen, pyyaml and h5py)

Optional package

Download ComDMFT

 git clone https://github.com/comscope/ComDMFT.git

The directory contains the following sub-directories:

  • bin -- executable binaries and scripts
  • ComLowH -- program to construct low-energy Hamiltonian and tcalculate Delta
  • ComWann -- program to construct Wannier function by using wannier90 package (http://wannier.org/)
  • ComCoulomb -- program to calculate bosonic Weiss field
  • ComCTQMC -- ctqmc impurity solver
  • ComDC -- program to calculate double counted self-energy within local GW approximation
  • ComRISB -- program to perform Gutzwiller-rotationally invariant slave-boson calculations.
  • tutorials -- tutorials and inputfiles.
  • gw -- the LQSGW code
  • wannier90-2.1 -- the most recent version of Wannier90.

Compile ComDMFT package.

  • First, define the installation directory in the shell. For example in bash shell, use the following command adds $COMSUITE_BIN to your system $PATH

    export COMSUITE_BIN=install_directory/bin
    
  • Then, the compilers, libraries, and flags should be defined in the arch.mk file. An example to install ComDMFT on Cori at NERSC is as follows.

     ##### fortran
     F90 = ifort
     PF90 = ftn
     compfl = -O3
     
     ##### f2py
     fortran2python = f2py -c --fcompiler=intelem --compiler=intelem	   
    
     ### phdf5
     USE_HDF5 = defined  ### comment out this line if you don’t want to compile with hdf5 (for LDA+DMFT and LQSGW+DMFT)
    
     ifdef USE_HDF5
        FPPFLAGS += -DUSE_HDF5
        F90 = h5pfc
     endif
    
     ### C and C++
     CXX = CC
     CXX_MPI = CC -DHAVE_MPI
     
     ##### lapack library
     LAPACK_LIB = -mkl
    
     #### ComCTQMC
    
     BASE_CPPFLAGS = -DNDEBUG
     BASE_LIBS = -lm
     CXXFLAGS_CTQMC = -std=c++11 -fexceptions -Wall -O3
    
     #### ComRISB ######################
    
     FIX_FORM = -fixed
     FREE_FORM = -free
     PF90_RISB=h5pfc
     CXXFLAGS_RISB = -O2
    

    Below is the meaning of the each flag in the arch.mk.

    • F90 = ifort ; identify Fortran compiler for a serial fortran program
    • PF90 = ftn ; identify Fortran compiler for a MPI fortran program
    • compfl = -O3 ; compilation flag for Fortran programs
    • fortran2python: fortran to python interface generator
    • USE_HDF5 = defined ; compilation option to enable program to read and write data in hdf5 file format (only works for LDA+DMFT and LQSGW+DMFT for now). Comment out this line if you dont want to compile with hdf5
    • CXX = CC ; standard environment variable to identify the serial C++ compiler.
    • CXX_MPI = CC; identify the parallel C++ compiler
    • FPPFLAGS += -DUSE_HDF5; preprocessor definition to compile with HDF5 file format
    • F90 = h5pfc; identify Fortran compiler for hdf5 file format
    • LAPACK_LIB = -mkl ; specify LAPACK library
    • BASE_CPPFLAGS = -DNDEBUG ; generic C-preprocessor flags. NDEBUG stands for no-debug code.
    • BASE_LIBS = -lm ; generic libraries that are compiler independent. The -lm flag requests the math library.
    • CXXFLAGS_CTQMC = -std=c++11 -fexceptions -Wall -O3 ; list of compilation flags for C++ compiler for ComCTQMC. The -std=c++11 specifies that the code is written based on the C++ 2011 standard. The -fexceptions flag tells the compiler that it should generate code that support exceptions. The -Wall turns on all warnings.
    • FIX_FORM = -fixed: specify Fortran standard fixed format
    • FREE_FORM = -free: specify free format
    • PF90_RISB = h5pfc: identify hdf5 supported fortran compiler for COMRISB. Here we note that ComRISB support hdf5 partially, so that “USE_HDF5=defined” should be commented out for ComRISB.
    • CXXFLAGS_RISB = -O2: c compiler option for ComRISB
  • After setting up arch.mk, you need to run the following commands:

        make clean
        make
    

    All executable files then are in bin directory (You do not need to create bin directory by yourself).

About

ComDMFT is an ab initio code for simulating correlated quantum materials with crystalline symmetry. It combines the LQSGW code's DFT or qsGW calculations with an impurity problem describing strong on-atom correlations. The impurity problem is set up using Wannier90 and cRPA, and is solved with DMFT and the ComCTQMC impurity solver.

Resources

License

GPL-3.0, Unknown licenses found

Licenses found

GPL-3.0
LICENSE
Unknown
license.txt

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published