Changelog
Version 3.3.0
solid_dmft 3.3.0 is a major release, compatible with TRIQS 3.3, updated to the latest app4triqs skeleton, and bringing major changes to the code:
the input parser is switched to a general toml parser, i.e. strings have to be passed in quotes, boolean parameters given without capitalization, and lists passed with brackets. Check below separate section for detailed changes.
the new input parser allows to define for each impurity problem a different solver if wanted, i.e. d-shell with cthyb and p-shell with Hartree-Fock. See new text NiO-cthyb
docker images are automatically build on each push for all major releases to ghcr.io
switch from old ctseg to new ctseg_j solver
allow CRM Dyson solver for both cthyb and ctseg to obtain Sigma_imp from G_tau: “crm_dyson_solver=true” and dlr_wmax and dlr_eps (see https://triqs.github.io/triqs/unstable/documentation/python_api/triqs.gf.dlr_crm_dyson_solver.html#module-triqs.gf.dlr_crm_dyson_solver for details)
add new DC schemes ‘crpa_static’, ‘crpa_static_qp’, ‘crpa_dynamic’
use cRPA calculated Uijkl as interaction via ‘crpa’, ‘crpa_density_density’, ‘dyn_density_density’, ‘dyn_full’ hint types
read interaction tensor from AIMBES h5
new experimental gw_embedding module. See gw_embedding/gw_flow.py for details allowing to run solid_dmft on top of AIMBES
allow to use Pade for AC in post-processing
We thank all contributors: Sophie Beck, Thomas Hahn, Alexander Hampel, Henri Menke, Maximilian Merkel, and Nils Wentzell
Find below an itemized list of changes in this release.
General
merge dev GW embedding (includes other fixes as well) (#78)
pass gw params to all methods
multiple solvers and toml input parser (#74)
added toml to docker images
Restore Python 3.8 compatibility for dictionary merge (#63)
Allow mathematical expression to be passed for random_seed (#61)
allow PCB to read from TRIQS TB object
respack fit slater for p shell
add Pade Sigma analytic continuation and refine tests
add simple_intra interaction, for intro orbital only interaction
add dc_orb_shift param to allow orbital dependent shift in impurity levels
allow 0.0 mixing to perform stat sampling
switch all pytest to unit tests
new toml input parser
The following input parameters can now be a list per impurity:
general_params
: U, J, U_prime, ratio_F4_F2, h_int_type, enforce_off_diag, dc_typeadvanced_params
: dc_U, dc_J, dc_fixed_occ, map_solver_struct, pick_solver_struct, mapped_solver_struct_degeneracies
Multiple solvers can be used, which only solve the impurity problems specified in
idx_impurities
general parameter
solver_type
moved to solver section and renamed totype
general parameter
n_l
moved to solver sectiongeneral parameter
measure_chi
moved to solver sectiongeneral parameter
delta_interface
moved to solver section
All possible input parameters are defined in the
python/solid_dmft/io_tools/default.toml
according to toml format the config file is now called .toml (instead of .ini), and boolean are not capitalized, strings are given with quotes and lists are given with brackets.
Documentation of the input is now generated from
python/solid_dmft/io_tools/documentation.txt
For an example, refer to the new integration test (see below)
Updated interface to python scripts wrapping solid_dmft: new routine
main.run_dmft
that expects the params as python dictionaries, which are then supplemented with the defaults etc equivalent to what happens when reading in a toml filethe existence of the parameter
general_params['beta']
now determines if a imaginary- or real-frequency grid is used within solid_dmftBug fix: Slater interaction for p orbitals can now be constructed
Renaming of solver parameters for the different solvers is now moved to
solver.py
. The idea is that every other part of solid_dmft should care as little as possible what solvers are used, with the details abstracted by the SolverStructure classIn
solver.py
, all solver parameters that are passed to the triqs solver are transferred to a dicttriqs_solver_params
. When adding new triqs solver parameter to solid_dmft in the future, they also need to be added within solver.py.
In the determination of the block structure, the largely unused parameter
general_params['block_suppress_orbital_symm']
removed. Its behavior can be replaced by usingadvanced_params['mapped_solver_struct_degeneracies']
Integration tests: previously existing tests updated, new tests added. One with ftps solver (requires installation of ftps, otherwise just passes without doing anything) and one with a combination of CT-HYB and Hartree solver
Unit tests: added test for toml-related functionality
read_config.py
removed and the functionality for dealing with the dicts from reading a toml file moved topostproc_toml_dict.py
io_tools/verify_input_params.py
contains all checks of the input params that the code performs before starting the DMFT calculationsUpdated the documentation of the input parameters
doc
add comment that proj in postprocessing is only correct for diag A(k,w)
update NNO magnetic tutorial
fix Vasp CSC tutorial for PNO after CSC fixes
build
add new tests for CRM Dyson solver (requires triqs 3.3)
add new GW embedding tests that run optionally with -DTest_GW_embedding=ON
modify basic SVO test to do crm test instead of gl
add useful apt packages to openmpi image
use ghcr.io images when testing PR
ci: build and cache base image separately (#70)
use new auto build ghcr.io docker images
add GitHub Actions workflow for Docker images (#66)
simplify dockerfile for github ci
trigger pypi build on tags
add pypi workflow
update Vasp patches for ver 6.4
Cleaned up VASP diff files for CSC
use cmake variable to determine max number of mpi ranks during testing
other fixes
Added warning for matrix-valued selfenergy continuation
draw colorbar only once in kslices
PCB bug aprx Sigma as diagonal if interpolation is used
broken FS: np.shape -> len
fix small FTPS problems and introduce a different eta for FTPS
maxent test precision fix and test dependency
use of origin in Fermi surface
fix calculation of Akw for off-diag Sigma
Version 3.2.3
solid_dmft version 3.2.3 and 3.2.2 are minor releases that fixes bugs in the post-processing routines and brings small new improvements:
allow 0.0 mixing to perform stat sampling
allow mathematical expression to be passed for random_seed
fix broken FS plot in PCB: np.shape -> len
fix PCB bug aprx Sigma as diagonal if interpolation is used
fix PCB to draw coloarbar only once in kslices
We thank all contributors: Alexander Hampel, Henri Menke
Version 3.2.1
solid_dmft version 3.2.1 is a minor release that automatizes the pypi packaging release
Version 3.2.0
solid_dmft version 3.2.0 is a release that
adds Jenkins CI support via flatiron-jenkins
includes several fixes to match the latest triqs 3.2.x release
changes the Z estimate to a correct linear fit of the first two Matsubara frequencies
fixes for QE and Vasp CSC
add option to add a magnetic field in DMFT
add solid_dmft JOSS paper reference (doi.org/10.21105/joss.04623)
add simple Ntot interaction
allow Uprime!=U-2J in Kanamori
updates the tutorials
introduces input output documentation
add support for the TRIQS Hartree Solver
add RESPACK support
We thank all contributors: Sophie Beck, Alberto Carta, Alexander Hampel, Max Merkel, Harrison LaBollita, Nils Wentzell
Find below an itemized list of changes in this release.
General
fix SzSz measurement in triqs unstable
Updated mpich VASP5 docker file to include HF solver
add hartree solver
feat: add regular kmesh option to pcb postproc
Fix to charge-self-consistency with Vasp (#48)
removed QE fix files which are now in official release
Modified dockerfile to add pmi support for cray supercomputing environments
add RESPACK postprocessing routines (#38)
Added correction to energy calculation
add triqs logos to skeleton and include ico in install directive of doc
change name of dft_mu to mu_initial_guess
support different DFT cubic basis conventions (#36)
allow magnetic calculation for CSC (output den correction is always averaged)
fix sym bug in hubbardI postprocessing
always calculate dft_mu at start of calculation
add h_field_it to remove magnetic field after x iterations
Write solid_dmft hash to h5
fix delta interface of cthyb for multiple sites with different block structures
correctly use tail fitted Sigma from cthyb not via double dyson equation
add paper ref to toml
minor addition of post-processing script: add_local Hamiltonian, separate from add_lambda. We might remove add_lambda
update doc with JOSS references
Bug fix for changes in sumk mesh definition in maxent_gf_latt
adapt vasp patch files for ver6.3.2
function to det n_orb_solver, fix test
apply block picker before block mapping
fix header writing for obs file
add pick solver struct option to select specific blocks for the impurity problem
fix print for failing comparison test
allow different interaction Hamiltonians per impurity
enforce PEP standard in interaction Hamiltonian
print optimal alpha in other maxent scripts
final corrections for PCB functions
add proj_on_orb functionality to Akw
fix bug in max_G_diff function ignoring norm_temp
change Sigma_imp_iw / _w to Sigma_imp (DFTTools unstable)
fix load Sigma with new gf_struct in triqs 3.1.x
adapt to sumk mesh changes in dfttools
Made the way mesh is stored in maxent_gf_latt consistent with maxent_gf_imp
fix
fix deg shells in magnetic calculations
fix parameter n_orb in hint construction
doc strings of cRPA avering for Slater
critical bug in hubbardI interface
PCB fermi surface plot
updates from triqs unstable
simple Z estimate as linear fit
PCB: removing “linearize” function, changing the model
delta_interface with SOC and store solver options
convert warmup cycles to int automatically
problem with ish vs icrsh in PCB Thanks @HenryScottx for reporting!
h_int uses now n_orb instead of orb_names
build
adapt jenkins CI files
simplify docker image
update openmpi docker file with clang-15
update CI dockerfile
Updated docker file to ubuntu 22
feat
enable MPI for maxent_gf_imp post-processing routines
add possibility to specify Uprime in Kanamori interaction
add loc_n_min / max arg for cthyb
add additional support for hartree when computing DC from the solver
add Ntot interaction
doc
Added observables documentation for DMFT output
Updated tutorial svo one-shot
test
fix tests after Hartree additions
add Hartree Solver test
Integration test for maxent gf imp and latt, bug fixes to both scripts (#30)
add new test for pcb get_dmft_bands function
Version 3.1.5
solid_dmft version 3.1.5 is a patch-release that improves / fixes the following issues:
fix to charge-self-consistency with Vasp and QE
feat add loc_n_min / max arg for cthyb
fix simple Z estimate as linear fit
adapt docker images for ubuntu 22.04
Contributors: Sophie Beck, Alberto Carta, Alexander Hampel, Max Merkel:
Version 3.1.4
solid_dmft version 3.1.4 is a patch-release that improves / fixes the following issues:
fix and improve rootfinder in PCB for quasiparticle dispersion
fix pypi package version.py module
Contributors: Sophie Beck, Alberto Carta, Alexander Hampel, Max Merkel:
Version 3.1.3
solid_dmft version 3.1.3 is a patch-release that improves / fixes the following issues:
fix delta interface of cthyb for multiple sites with different block structures
correctly use tail fitted Sigma from cthyb not via double dyson equation
magnetic param not available in CSC crash PM calc
improve PCB script from unstable branch
convert warmup cycles to int automatically
fix function calls in gap finder
fix delta_interface with SOC and store solver options
fix: update svo example for PCB test from unstable
Contributors: Sophie Beck, Alberto Carta, Alexander Hampel, Max Merkel
Version 3.1.2
solid_dmft version 3.1.1 is a patch-release that improves / fixes the following issues:
fix deg shells in magnetic calculations
fix bug in max_G_diff function ignoring norm_temp
fix load Sigma with new gf_struct in triqs 3.1.x
Made the way mesh is stored in maxent_gf_latt consistent with maxent_gf_imp
adapt vasp patch files for ver6.3.2
update README.md for Joss publication
print optimal alpha in other maxent scripts
update postprocessing routines for plotting spectral functions
add new test for pcb get_dmft_bands function
DOC: extend install instructions & improve readme for #21 #22
DOC: update support & contribute section, bump ver to 3.1.1
add proj_on_orb functionality to Akw
Added observables documentation for DMFT output
Added input documentation
Added ETH logo to website, small fixes to documentation
rename examples to debbuging_examples
pip package build files
Contributors: Sophie Beck, Alberto Carta, Alexander Hampel, Max Merkel
Version 3.1.1
solid_dmft version 3.1.1 is a patch-release that improves / fixes the following issues:
delete obsolete make_spaghetti.py
SOC self energies can be continued in maxent
run hubbardI solver on all nodes due to slow bcast performance of atomdiag object
fix DFT energy read when running CSC QE
updated documentation, small fixes to tutorials
exposed params of maxent_gf_imp
fix the way dft_mu is loaded in PCB
fix executable in SVO tutorial
fix shift in sigma continuator to remove dft_mu
fix chemical potential in plot Akw and minor fixes
correct plotlabels in postprocessing
tiny modification of printing H_loc in postprocessing
Contributors: Sophie Beck, Alberto Carta, Max Merkel
Version 3.1.0
solid_dmft version 3.1.0 is a major release that provides tutorials in the documentation, changes to app4triqs skeleton, allows CSC calculations with QE, improves postprocessing routines, and add functionality for SOC calculations.
all new tutorials
generalize measure_chi functionality
CSC with Vasp 6.3.0 works, examples updated
fix two bugs in w90 interface in vasp
Renamed files
fix Fermi level print in mlwf.F LPRJ_WRITE call
Automatic patching of vasp 6.3.0 with Docker
Updated tutorial
Added check on all mpi ranks if dmft_config exists at beginning of run
fix small bug in convergence.py thanks @merkelm
Rework convergence metrics
remove gf_struct_flatten from solver in accordance with latest dfttools version
Renaming to solid_dmft
Update of maxent_gf_latt.py: more parameters exposed and spin averaging is not default anymore
fix bug in afm calculation when measuring density matrix
Add w90_tolerance flag for CSC
use sphinx autosummary for module reference
small changes in IO, additional mpi barriers in csc flow for better stability
With SOC now program prints real and imag part of matrices
Fixed creation of Kanamori Hamiltonian with SOC
Improvements in plot_correlated_bands.py and updated tutorial
change output name of MaxEnt Sigma to Sigma_maxent
change to develop version of w90 because of mpi bug in openmpi dockerfile
bugfix in plot_correlated_bands and cleaning up
update OpenMPI Dockerfile to latest Ubuntu
Tutorial to explore correlated bands using the postprocessing script
check in CSC with QE if optional files are presesnt, otherwise skip calculation
Updated maxent_sigma: mpi parallelization, continuator types, bug fixes, parameters exposed
update installation instructions
add workflow and code structure images
Updated maxent sigma script
W90 runs in parallel
Fixing a bug related to measure_pert_order and measure_chi_SzSz for afm_order
add vasp crpa scripts and tutorials
add delta interface for cthyb
fix get_dmft_bands and pass eta to alatt_k_w correctly
allows to recompute rotation matrix even if W90 is used
bugfix in initial_self_energies.py in case dc = False
flatten gf_struct for triqs solvers to remove depracted warning
add example files for SVO and LNO
bump triqs and package version to 3.1
Contributors: Sophie Beck, Alberto Carta, Max Merkel
Version 3.0.0
solid_dmft version 3.0.0 is a compatibility release for TRIQS version 3.0.0 that
introduces compatibility with Python 3 (Python 2 no longer supported)
adds a cmake-based dependency management
fixes several application issues