### Enter the Examples Directory Source: http://hauleweb.rutgers.edu/tutorials/Tutorial_docker.html Navigate to the examples directory inside the container. ```bash docker run -it haulek/edmftf cd ~/examples/ ``` -------------------------------- ### Initial configuration variables Source: http://hauleweb.rutgers.edu/tutorials/TaNi/TutorialTaNi.html Example of s_oo and Edc variable definitions. ```text # s_oo= [58.34111987610038, 57.99864526007574, 58.66792046452633, 58.15374868968896, 58.68284274853787, 11.52900772267362, 11.456232499198762, 11.35548455310819, 11.192604230189128, 11.111987546730667, 0, 0] # Edc= [59.842921188735275, 59.83356456338613, 59.79961530249243, 59.79826650028635, 59.826546613721476, 8.319863999593021, 8.299004410493579, 8.302522649084414, 8.236828534352366, 8.22545468607832, 0, 0] ``` -------------------------------- ### Interactive Setup Configuration Source: http://hauleweb.rutgers.edu/tutorials/Tutorial2a.html Interactive prompts for configuring the structure, symmetry, and k-points. ```text Enter reduction in %: 0 Use old or new scheme (o/N) : N Do you want to accept these radii; .... (a/d/r) : a specify nn-bondlength factor: 2 Ctrl-X-C continue with sgroup : c Ctrl-X-C continue with symmetry : c Ctrl-X-C continue with lstart : c specify switches for instgen_lapw (or press ENTER): ENTER SELECT XCPOT: 5 SELECT ENERGY : -6 Ctrl-X-C continue with kgen : c Ctrl-X-C Ctrl-X-C NUMBER OF K-POINTS : 500 Shift of k-mesh allowed. Do you want to shift: (0=no, 1=shift): 1 Ctrl-X-C continue with dstart or execute kgen again or exit (c/e/x) : c Ctrl-X-C do you want to perform a spinpolarized calculation : n ``` -------------------------------- ### Start an Interactive Docker Session Source: http://hauleweb.rutgers.edu/tutorials/Tutorial_docker.html Commands to start a container with volume mapping for local file access. Use the first command for Linux/macOS and the second for Windows paths. ```bash docker run -it -v ./examples:/root/examples haulek/edmftf /bin/bash ``` ```bash docker run -it -v :/root/examples haulek/edmftf /bin/bash ``` ```bash export FI_PROVIDER=^psm3 ``` -------------------------------- ### Local rotation parameters Source: http://hauleweb.rutgers.edu/tutorials/Tutorial2.html Example configuration for local rotation parameters. ```text 1 1 -1 # iatom, nL, locrot 2 3 1 # L, qsplit, cix 0.79186901 0.14777288 0.59254253 -0.03062084 0.97866938 -0.20314676 -0.60992282 0.14272147 0.77950288 ``` -------------------------------- ### Copy and List Files Source: http://hauleweb.rutgers.edu/tutorials/Tutorial_docker.html Copy necessary example files and binaries into the current directory and verify the contents. ```bash cp -r /app/examples/* . cp /app/eDMFT/bin/tbg_plt_* . ll ``` ```text drwxr-xr-x 3 root root 96 Jan 6 19:26 CrSb drwxr-xr-x 3 root root 96 Jan 6 19:26 MnO -rwxr-xr-x 1 root root 5202 Jan 6 19:26 plt_akplot.py -rw-r--r-- 1 root root 19709 Jan 6 19:26 plt_auxiliary.py -rwxr-xr-x 1 root root 7046 Jan 6 19:26 plt_dos.py -rwxr-xr-x 1 root root 8865 Jan 6 19:26 plt_gs.py -rwxr-xr-x 1 root root 1573 Jan 6 19:26 plt_info.py -rwxr-xr-x 1 root root 6178 Jan 6 19:26 plt_makplot.py -rwxr-xr-x 1 root root 9451 Jan 6 19:26 plt_sakplot.py -rwxr-xr-x 1 root root 4254 Jan 6 19:26 plt_spaght.py ``` -------------------------------- ### FFTW Library Configuration Source: http://hauleweb.rutgers.edu/tutorials/Installation.html Example of setting the FFTW library path. ```python fftwlib = "-lfftw3" # FFTW library ``` -------------------------------- ### GSL Library Configuration Source: http://hauleweb.rutgers.edu/tutorials/Installation.html Example of setting the GSL library path. ```python gsl = "-lgsl" # GSL library ``` -------------------------------- ### Define L, qsplit, and cix parameters Source: http://hauleweb.rutgers.edu/tutorials/TaNi/TutorialTaNi.html Configuration examples for L, qsplit, and cix parameters in the indmfl file. ```text 2 2 1 # L, qsplit, cix ``` ```text 2 2 1 # L, qsplit, cix for Ni1 2 2 2 # L, qsplit, cix for Ni2 2 2 3 # L, qsplit, cix for Ta1 2 2 4 # L, qsplit, cix for Ta2 2 2 5 # L, qsplit, cix for Ta3 2 2 6 # L, qsplit, cix for Ta4 ``` ```text 2 2 1 # L, qsplit, cix for Ni1 2 2 2 # L, qsplit, cix for Ni2 2 2 1 # L, qsplit, cix for Ta1 2 2 2 # L, qsplit, cix for Ta2 2 2 1 # L, qsplit, cix for Ta3 2 2 2 # L, qsplit, cix for Ta4 ``` -------------------------------- ### Configure Makefile.in for CTQMC Source: http://hauleweb.rutgers.edu/tutorials/Tutorial0.html Example configuration for the Makefile.in file to set up the compiler and libraries for the CTQMC solver. ```makefile PC++ = mpicxx PFLAGS = -D_MPI -O3 PLIBS = -framework Accelerate -lgsl -lgslcblas ``` -------------------------------- ### Complete eDMFT setup Source: http://hauleweb.rutgers.edu/tutorials/TaNi/TutorialTaNi.html Final confirmation of equivalent problems and calculation parameters. ```text Each set of equivalent correlated problems are listed below: 1 (Ni11 d) (Ni12 d) are equivalent. 2 (Ta13 d) (Ta14 d) (Ta15 d) (Ta16 d) are equivalent. Do you want to continue; or edit again? (c/e): c Range (in eV) of hybridization taken into account in impurity problems; default -10.0, 10.0: Perform calculation on real; or imaginary axis? (r/i): r Ctrl-X-C Ctrl-X-C ``` -------------------------------- ### Configuration file for build settings Source: http://hauleweb.rutgers.edu/tutorials/Installation.html This Python class defines the compiler, flags, and library paths required for the installation process. ```python #! /usr/bin/env python # -*- coding: utf-8 -*- class Config: prefix = "bin" # Installation path compiler = "GNU" # Compiler cxx = "g++-13" # C++ compiler cc = "gcc-13" cflags = "-O3" # compiling flags for C++ programs fflags = "-O3 -fallow-argument-mismatch" # compiling flags for Fortran programs ldflags = "" # linking flags for Fortran programs ompflag = "-fopenmp" # linker/compiler flag for openmp mpi_define = "-D_MPI" # should be -DMPI for mpi code and empty for serial code. pcc = "mpicc" # C compiler pcxx = "mpicxx" # C++ compiler pfc = "mpif90" # Fortran compiler blasname = "" # BLAS library blaslib = "-framework Accelerate" # BLAS library lapacklib = "" # LAPACK library fftwlib = "-L/opt/homebrew/lib -lfftw3_omp -lfftw3" # FFTW library gsl = "-I/opt/homebrew/include -L/opt/homebrew/lib -lgsl" # GSL library f2pylib = "--f90flags='-openmp '" # adding extra libraries for f2py f2pyflag = "--opt='-O3' " # adding extra options to f2py pybind11 = "-undefined dynamic_lookup" arflags = "rc" # ar flags make = "make" def __init__(self, version): self.version = version def __getattr__(self,key): return None ``` -------------------------------- ### Windows PowerShell: Run Python and install matplotlib Source: http://hauleweb.rutgers.edu/tutorials/Tutorial_docker.html For Windows users, use PowerShell to run Python, install matplotlib, and then execute the plotting script. ```powershell python python ../plt_spaght.py MnO.output1 -y-8:8 pip install matplotlib python ../plt_spaght.py MnO.output1 -y-8:8 ``` -------------------------------- ### FeSe.indmfi Configuration Source: http://hauleweb.rutgers.edu/tutorials/Tutorial2a.html Example content for the FeSe.indmfi file. ```text #================ # Siginds and crystal-field transformations for correlated orbitals ================ 2 5 5 # Number of independent kcix blocks, max dimension, max num-independent-components 1 5 5 # cix-num, dimension, num-independent-components #---------------- # Independent components are -------------- 'z^2' 'x^2-y^2' 'xz' 'yz' 'xy' #---------------- # Sigind follows -------------------------- 1 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 0 4 0 0 0 0 0 5 #---------------- # Transformation matrix follows ----------- 0.00000000 0.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.70710679 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.70710679 0.00000000 0.00000000 0.00000000 0.70710679 0.00000000 0.00000000 0.00000000 -0.70710679 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.70710679 0.00000000 0.00000000 0.00000000 0.70710679 0.00000000 0.00000000 -0.70710679 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.70710679 0.00000000 ``` -------------------------------- ### Configure LAPW initialization parameters Source: http://hauleweb.rutgers.edu/tutorials/TaNi/TutorialTaNi.html Interactive configuration steps for setting up the LAPW calculation environment. ```text Enter reduction in %: 0 Use old or new scheme (o/N) : N Do you want to accept these radii; .... (a/d/r) : a specify nn-bondlength factor: 2 Ctrl-X-C continue with sgroup : c Ctrl-X-C continue with symmetry : c Ctrl-X-C continue with lstart : c Eventually specify switches for instgen_lapw (or press ENTER): ENTER SELECT XCPOT: 5 SELECT ENERGY : -6 Ctrl-X-C continue with kgen : c Ctrl-X-C Ctrl-X-C NUMBER OF K-POINTS : 100 Shift of k-mesh allowed. Do you want to shift: (0=no, 1=shift): 1 Ctrl-X-C continue with dstart or execute kgen again or exit (c/e/x) : c Ctrl-X-C do you want to perform a spinpolarized calculation : n ``` -------------------------------- ### FeSe.indmfl Configuration Source: http://hauleweb.rutgers.edu/tutorials/Tutorial2a.html Example content for the FeSe.indmfl file. ```text 19 44 1 5 # hybridization band index nemin and nemax, renormalize for interstitials, projection type 1 0.025 0.025 200 -3.000000 1.000000 # matsubara, broadening-corr, broadening-noncorr, nomega, omega_min, omega_max (in eV) 2 # number of correlated atoms 1 1 0 # iatom, nL, locrot 2 2 1 # L, qsplit, cix 2 1 0 # iatom, nL, locrot 2 2 2 # L, qsplit, cix ``` -------------------------------- ### Initialize Wien2k calculation Source: http://hauleweb.rutgers.edu/tutorials/Tutorial4.html Run init_lapw to set up the Wien2k calculation. This is the first step in the manual workflow. ```bash init_lapw ``` -------------------------------- ### sig.inp self-energy input Source: http://hauleweb.rutgers.edu/tutorials/TaNi/TutorialTaNi.html Example of the self-energy input file format. ```text # s_oo= [57.2, 57.2, 57.2, 57.2, 57.2, 8.6, 8.6, 8.6, 8.6, 8.6] # Edc= [57.2, 57.2, 57.2, 57.2, 57.2, 8.6, 8.6, 8.6, 8.6, 8.6] 0.031415926535898 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.094247779607694 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.157079632679490 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.219911485751286 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 .... ``` -------------------------------- ### Prepare directories for phonon calculations Source: http://hauleweb.rutgers.edu/tutorials/Tutorial_phonons.html Create directories and copy the corresponding structure files for each displacement. ```bash for i in `seq 1 4`; do mkdir FeSe${i}; cp FeSe.structS-00${i} FeSe${i}/FeSe${i}.struct; done ``` -------------------------------- ### Example indmfl Configuration Source: http://hauleweb.rutgers.edu/tutorials/Tutorial1a.html Configuration file for DMFT impurity parameters. ```text 5 15 1 5 # hybridization band index nemin and nemax, renormalize for interstitials, projection type 0 0.025 0.025 200 -3.000000 1.000000 # matsubara, broadening-corr, broadening-noncorr, nomega, omega_min, omega_max (in eV) 1 # number of correlated atoms 1 1 0 # iatom, nL, locrot 2 7 1 # L, qsplit, cix ``` -------------------------------- ### Initialize and Run DMFT Workflow Source: http://hauleweb.rutgers.edu/tutorials/tut9/Tutorial9.html Commands to initialize the project, set up MPI prefixes, run DFT, and execute the DMFT loop. ```bash $WIEN_DMFT_ROOT/cif2indmf.py -w case.cif >& nohup_init.dat echo "mpirun -n $NSLOTS" > mpi_prefix.dat echo "mpirun -n $NSLOTS" > mpi_prefix.dat2 $WIENROOT/init_lapw -b -red 0 -vxc 5 -ecut -7.0 -numk 2000 >> nohup_init.dat $WIEN_DMFT_ROOT/run_dft.py >> nohup_dft.dat $WIEN_DMFT_ROOT/init_proj.py -a >> nohup_init.dat $WIEN_DMFT_ROOT/szero.py >> nohup_init.dat $WIEN_DMFT_ROOT/run_dmft.py >& nohup_dmft.dat ``` -------------------------------- ### Run init_lapw with interactive inputs for SrVO3 Source: http://hauleweb.rutgers.edu/tutorials/Tutorial1.html Interactive session for init_lapw. Enter reduction 0, new scheme (N), accept radii (a), nn-bondlength factor 2, then use Ctrl-X-C to continue through sgroup, symmetry, lstart, instgen_lapw (XCPOT=5, ENERGY=-6), kgen (500 k-points, shift=1), and finalize with c and n. ```text Enter reduction in %: 0 Use old or new scheme (o/N) : N Do you want to accept these radii; .... (a/d/r) : a specify nn-bondlength factor: 2 Ctrl-X-C continue with sgroup : c Ctrl-X-C continue with symmetry : c Ctrl-X-C continue with lstart : c specify switches for instgen_lapw (or press ENTER): ENTER SELECT XCPOT: 5 SELECT ENERGY : -6 Ctrl-X-C continue with kgen : c Ctrl-X-C Ctrl-X-C NUMBER OF K-POINTS : 500 Shift of k-mesh (0=no, 1=shift) : 1 Ctrl-X-C c Ctrl-X-C n ``` -------------------------------- ### f2py Library Configuration Source: http://hauleweb.rutgers.edu/tutorials/Installation.html Example of setting f2py library flags. ```python f2pylib = "--f90flags='-openmp ' --opt='-fast'" # adding extra libraries for f2py ``` -------------------------------- ### Initialize projections and zero parameters Source: http://hauleweb.rutgers.edu/tutorials/Tutorial4.html After generating inputs, run init_proj.py -a to initialize projections and szero.py to set up the zero parameters for the DMFT calculation. ```bash init_proj.py -a szero.py ``` -------------------------------- ### init_dmft.py output: qsplit options and selection Source: http://hauleweb.rutgers.edu/tutorials/Tutorial1.html Displays the qsplit options table and the prompt for selecting the local symmetry. The tutorial chooses qsplit 3 (t2g orbitals) for the V-1 d orbital. ```text Specify qsplit for each correlated orbital (default = 0): Qsplit Description ------ ------------------------------------------------------------ 0 average GF, non-correlated 1 |j,mj> basis, no symmetry, except time reversal (-jz=jz) -1 |j,mj> basis, no symmetry, not even time reversal (-jz=jz) 2 real harmonics basis, no symmetry, except spin (up=dn) -2 real harmonics basis, no symmetry, not even spin (up=dn) 3 t2g orbitals -3 eg orbitals 4 |j,mj>, only l-1/2 and l+1/2 5 axial symmetry in real harmonics 6 hexagonal symmetry in real harmonics 7 cubic symmetry in real harmonics 8 axial symmetry in real harmonics, up different than down 9 hexagonal symmetry in real harmonics, up different than down 10 cubic symmetry in real harmonics, up different then down 11 |j,mj> basis, non-zero off diagonal elements 12 real harmonics, non-zero off diagonal elements 13 J_eff=1/2 basis for 5d ions, non-magnetic with symmetry 14 J_eff=1/2 basis for 5d ions, no symmetry ------ ------------------------------------------------------------ 1 V-1 d: 3 ``` -------------------------------- ### OpenMP Flag Configuration Source: http://hauleweb.rutgers.edu/tutorials/Installation.html Example of setting the OpenMP flag in the configuration. ```python ompflag = "-fopenmp" ``` -------------------------------- ### SrVO3 Calculation Output Source: http://hauleweb.rutgers.edu/tutorials/tut9/Tutorial9.html Example output showing convergence metrics for SrVO3. ```text mu Vdc Etot Ftot+T*Simp Ftot+T*Simp n_latt n_imp Eimp[0] Eimp[-1] 8.661942 15.551639 -8710.159608 -8710.165781 -8710.158820 2.240679 2.237563 -0.085963 -1.448770 ``` -------------------------------- ### Configure nf0 parameter Source: http://hauleweb.rutgers.edu/tutorials/Tutorial1a.html Sets the nominal valence for the starting guess of double-counting. ```json "nf0" : [5 ] ``` -------------------------------- ### Run dmft_copy.py and params.dat setup Source: http://hauleweb.rutgers.edu/tutorials/Tutorial1a.html Command line invocation of the dmft_copy.py script that copies the DFT results from the specified directory to the current DMFT working directory. The params.dat file follows and sets the solver and loop parameters. ```bash dmft_copy.py ``` ```python solver = 'CTQMC' # impurity solver max_dmft_iterations = 1 # number of iteration of the dmft-loop only max_lda_iterations = 100 # number of iteration of the LDA-loop only finish = 10, # number of iterations on the full charge loop (1 = no charge self-consistency). ntail = 300 # on imaginary axis, number of points in the tail of the logarithmic mesh. # You should probably use 30 or so, but for testing 10 is OK. cc = 5e-6 property_btxt = 5e-6 recomputeEF = 0 # Recompute EF = 0, fixed. exactDc = 1 ``` -------------------------------- ### Initialize spin-orbit with initso Source: http://hauleweb.rutgers.edu/tutorials/Tutorial3.html Run initso to initialize spin-orbit coupling for the LAPW calculation. ```bash initso ``` -------------------------------- ### Impurity Moment Output Source: http://hauleweb.rutgers.edu/tutorials/tut9/Tutorial9.html Example output showing the calculated moments for different orbitals. ```text z^2 x^2-y^2 xz yz xy mom=[0.2345946764349459,0.2332270335931207,0.7098984906471872,0.6736290320800302,0.6922923990033716,] ``` -------------------------------- ### Iteration Info Output Source: http://hauleweb.rutgers.edu/tutorials/tut9/Tutorial9.html Example output from the iteration process showing convergence metrics. ```text mu Vdc Etot Ftot+T*Simp Ftot+T*Simp n_latt n_imp Eimp[0] Eimp[-1] 10.803055 18.468704 -77383.390671 -77383.399318 -77383.389914 2.540813 2.543642 0.025545 -1.150281 ``` -------------------------------- ### init_lapw command line options Source: http://hauleweb.rutgers.edu/tutorials/Tutorial1a.html Command-line invocation of init_lapw with options -b, -vxc 13, -ecut -6.0, -rkmax 7, and -numk 500. This is followed by run_lapw, x kgen, and run_lapw -NI to run the WIEN2k calculation. ```bash init_lapw -b -vxc 13 -ecut -6.0 -rkmax 7 -numk 500 run_lapw x kgen run_lapw -NI ``` -------------------------------- ### GSL with CBLAS Configuration Source: http://hauleweb.rutgers.edu/tutorials/Installation.html Example of setting the GSL library path including CBLAS. ```python gsl = "-lgslcblas -lgsl" # GSL library ``` -------------------------------- ### init_dmft.py qsplit options and selection Source: http://hauleweb.rutgers.edu/tutorials/Tutorial1a.html Prompt from init_dmft.py showing the qsplit options and the user's selection of 7 for cubic symmetry in real harmonics. ```text Specify qsplit for each correlated orbital (default = 0): Qsplit Description ------ ------------------------------------------------------------ 0 average GF, non-correlated 1 |j,mj> basis, no symmetry, except time reversal (-jz=jz) -1 |j,mj> basis, no symmetry, not even time reversal (-jz=jz) 2 real harmonics basis, no symmetry, except spin (up=dn) -2 real harmonics basis, no symmetry, not even spin (up=dn) 3 t2g orbitals -3 eg orbitals 4 |j,mj>, only l-1/2 and l+1/2 5 axial symmetry in real harmonics 6 hexagonal symmetry in real harmonics 7 cubic symmetry in real harmonics 8 axial symmetry in real harmonics, up different than down 9 hexagonal symmetry in real harmonics, up different than down 10 cubic symmetry in real harmonics, up different then down 11 |j,mj> basis, non-zero off diagonal elements 12 real harmonics, non-zero off diagonal elements 13 J_eff=1/2 basis for 5d ions, non-magnetic with symmetry 14 J_eff=1/2 basis for 5d ions, no symmetry ------ ------------------------------------------------------------ 1 Mn-1 d: 7 ```