(changelog)=
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.
- 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
-
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 section - general parameter
measure_chi
moved to solver section - general parameter
delta_interface
moved to solver section
- general parameter
-
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 file -
the existence of the parameter
general_params['beta']
now determines if a imaginary- or real-frequency grid is used within solid_dmft -
Bug 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 class- In
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
-
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 calculations -
Updated the documentation of the input parameters
- 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
- 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
- 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
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
solid_dmft version 3.2.1 is a minor release that automatizes the pypi packaging release
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.
- 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 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
- adapt jenkins CI files
- simplify docker image
- update openmpi docker file with clang-15
- update CI dockerfile
- Updated docker file to ubuntu 22
- 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
- Added observables documentation for DMFT output
- Updated tutorial svo one-shot
- 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
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:
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:
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
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
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
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
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