Changelog
Version 3.3.1
DFTTools Version 3.3.1 is a patch release that restores compatibility against recent numpy and scipy versions.
We thank all contributors: Sophie Beck, Alexander Hampel, Nils Wentzell
Find below an itemized list of changes in this release.
General
fix compatibility against numpy 2.0
replace numpy.lib.pad with numpy.pad
use scipy.integrate.simpson instead of scipy.integrate.simps (#255)
clean-up of optics part using wannierberri
Doc
update list of DFT codes on landing page
Version 3.3.0
DFTTools Version 3.3.0 is a release that
is compatible with TRIQS 3.3.x
includes the latest app4triqs changes
introduce
dc_imp_dyn
attribute in sumk object to store dynamic part of DC potentialallows using MeshDLRImFreq as Sumk mesh
improved standard behavior of block struct (#248) (see below for details)
We thank all contributors: Sophie Beck, Thomas Hahn, Alexander Hampel, Henri Menke, Dylan Simon, Nils Wentzell
Find below an itemized list of changes in this release.
General
fix settings environment variables
remove constrains on mpi size with vasp
feat
allow dict/np.ndarrays input in
symm_deg_gf
introduce
dc_imp_dyn
attribute in sumk object to store dynamic part of DC potentialallows using MeshDLRImFreq as Sumk mesh
previously the default
gf_struct_solver
in a initialized blockstructure had keysup
/down
, inconsistent with the default behavior after runninganalyse_block_structure
:up_0
/down_0
. Now the default solver structure always has the_0
in the key.old behavior resulted in error when analyse_block_structure was called twice
to correctly use
analyse_block_structure
now useextract_G_loc(transform_to_solver_blocks=False)
changed
density_matrix
function to use directlyextract_G_loc()
ifusing_gf
is selected as option.print deprecation warning in
density_matrix
, since this can be achieved viaextract_G_loc
and[G.density() for G in Gloc]
new function
density_matrix_using_point_integration()
for old point integration method optionenforce in
analys_block_structure
that input dm or G is list with length ofn_corr_shells
correct doc string for how include_shells are given
build
bump actions/cache restore/save to version 4
fix intel f2py build of elk converter (#249)
fix MacOS X build: add ninja as req
py312 add setuptools and meson as explicit dep for f2py
add packaging directory to cmake and set version automatically
doc
add util module to autodoc
Version 3.2.1
DFTTools Version 3.2.1 is a patch release that contains a few bug fixes. The following non breaking changes have been made:
fix depracted scipy.compress depr -> numpy.compress
fix incorrect numpy data type for Max OS ARM
fix a bug in SumkDFT.calc_density_correction: see issue #250
fix a bug in the Wannier90 Converter when the disentanglement window isn’t set by the user (see issue #252)
doc: fix typo in doi id of DC function
We thank all contributors: Sophie Beck, Alexander Hampel
Version 3.2.0
DFTTools Version 3.2.0 is a release that
is compatible with TRIQS 3.2.x
introduces a coherent mesh of the SumK object passed on init used throughout all member functions (see below for details)
unifies post-processing routines in
sumk_dft_tools
for all DFT codes to calculate DOS and spectral functionsadds support for non-collinear projectors when using Vasp 6
adds transport / optics calculation support with Elk
introduces a new
dft_input
variabledft_code
that identifies automatically the used dft codeadds transport / optics calculation with wannier90 using WannierBerri
moves all optics and transport related functions to a new module
sumk_dft_transport.py
new chemical potential finder (fully backward combatible), that supports besides bisection also gradient finders
new double counting routines, moved to a separate function, improving spin-dependent formulas
improve performance of all routines performing k-sums.
extract_G_loc
is up to 5 times faster now
We thank all contributors: Sophie Beck, Alberto Carta, Alexander Hampel, Alyn James, Harrison LaBollita, Dario Fiore Mosca, Oleg Peil, Nils Wentzell
Find below an itemized list of changes in this release.
General
general fixes to match new triqs 3.2 release
SumK requires now to pass a mesh on init to clarify the mesh on which it operates
rename / unify name of
sumk.Sigma_imp_iw
andsumk.Sigma_imp_w
->sumk.Sigma_imp
remove
iw_or_w
argumentssumk_dft_tools.py
rewritten to have single routines to calculate DOS (dos_wannier_basis
renamed todensity_of_states
), spaghettis and (Elk specific for now) spectral contoursoccupied DOS can be calculated (
sumk_dft_tools.occupations()
is needed to be calculated first)analysis.rst and conv_elk.rst updated to improve routine descriptions and includes example figures
remove any transport from
sumk_dft_tools.py
and move tosumk_dft_transport
outsource
calc_DC_from_density
into util.py and cleanupAdded new way to compute double counting. This is moved to a separate function and the old method is kept to modify in-place the double counting and keep compatibility. A legacy interface was kept for the old method (using integers to denote DC type). The new convention follow the notation introduced here (http://dx.doi.org/10.1038/s41598-018-27731-4)
Added tests for DC calculation to compare with old implementation
Added 2 new methods to find chemical potential, refactored DC calculation with stateless function while keeping legacy code
In magnetic calculations, the dichotomy adjustment is struggling to find the mu (maxes out iterations). Added new methods to find the dft mu: newton (fastest but can fail) and brent (more stable)
fix: fix f2py command for numpy ver >1.22
fix: np.int / np.float / np. complex are deprecated (np v1.20) / removed (np v1.24)
Fixed DC formulas with SOC (#227)
Fixes issue with projected A(k,w) (#225)
fix obsolote iw_or_w param in calc_mu
improve performance of extract Gloc by factor 5! huge cleanup
edit SumKDFT class to take gf mesh at initialization and force Sigma to have that mesh
update mpi.all_reduce calls 52bccac
issue #216 correctly use beta when calling density on MeshReFreq
Elk
Elk Transport code and subsequent updates (#229)
elk-interface bug fixes (#228)
updated Elk tests and rewritten test scripts (.h5 files remain unchanged)
New converter routines to read in Elk data for sumk_dft_tools.spectral_contours() (Elk k-mesh generator and checker needs to be optimized as it’s currently slow). commented out Elk “bandcharacter” conversion from Elk converter and Elk DFT+DMFT PDOS code which used it (this method needs to be checked)
Vasp
change normion default to False
change Vasp NiO tutorial scripts to reflect changes to sumk
fix deprecated safeconfigparser
fixes a bug in the Vasp charge self-consistent update step
adjust NiO reference h5-file
add test of NiO with two correlated shells
fix tests of LuNiO3 and SrVO3 after changes
fix mapping from shell/ions to corr-shells in converter
w90 + QE
feat: optical prop with Wannier90 and WannierBerri, see documentation for details
fix bug for Gamma only mode
w90 conv more generous matching to find fermi
Updated W90 converter: bug fixes for SOC, code restructured, more tests for
add_lambda
andbloch_basis
BUGFIX: changed character in QE output for reading occupations with
Split wannier90 tests up
Fix for wannier converter: reordering of orbital/spin order only necessary for vasp 5
clean
remove Gf indices and remove calc_dc_for_density (unused)
Version 3.1.1
DFTTools Version 3.1.1 is a patch release that contains a few bug fixes. In particular, we resolve incompatibility with recent numpy versions.
We thank all contributors: Alexander Hampel, Harry LaBollita
Find below an itemized list of changes in this release.
General
fix: np.int / np.float / np. complex are depracted (np v1.20) / removed (np v1.24)
Fixes issue with projected A(k,w) (#225)
Version 3.1.0
DFTTools Version 3.1.0 is a release that
is compatible with TRIQS 3.1.x
includes a major update for the Wannier90 converter (see below for details)
updates sumk_dft to allow for charge self-consistent DFT+DMFT calculations with Quantum Espresso (dm_type = ‘qe’)
adds a indmftpr helper script to prepare the case.indmftpr file for the dmftproj program
uses the latest app4triqs/3.1.x skeleton
Wannier90 Converter
allow for charge self-consistent DFT+DMFT calculations
spin-orbit coupling implemented
option to add a local spin-orbit term to t2g local Hamiltonian (for now just for a single impurity. Fixed in next version)
additional choices and added checks for different bases (rot_mat): hloc_diag, wannier (already implemented previously), none
code restructured, more tests
MPI speedup of the Fourier transform
added new test in w90_convert.py for rot_mat_type=‘hloc_diag’
update documentation of W90 Converter
bugfix: This fix makes the function find_rot_mat() safer to use in case there are errors in finding the correct mapping. The converter will now abort if the agreement in mapping is below a user-definable threshold.
Change in gf_struct
In line with TRIQS 3.1.x, the form of the Green’s function’s structure (
gf_struct
) has been modified (see triqs changelog for more information)Instead of
gf_struct = [("up", [0, 1]), ("down", [0, 1])]
, the new convention usesgf_struct = [("up", 2), ("down", 2)]
This modifies the form of
gf_struct_solver
(andsumk
) inblock_structure
andSumkDFT
as well.Backwards-compatibility with old, stored
block_structure
objects is given, however a warning is issued.A helper-function
triqs.gf.block_gf.fix_gf_struct_type(gf_struct_old)
is provided in triqs to manually bringgf_struct
s to the new form.
Documentation
change to read the docs sphinx theme
clean up various doc files
use autosummary to build reference documentation
update Vasp tutorials
update Wannier90 documentation to reflect new features
Cmake
require triqs3.1+ in debian package dependencies
bump required TRIQS Version to 3.1
Other changes
bugfix for analyse_block_structure in sumk_dft
bugfix in blockstructure module for the case of #corr_shells != #ineq_shells
fix float comparison tolerances and few minor things in tests
Vasp Converter: fixed normalization of kwghts to allow symmetries
bugfix in Elk converter when creating the symmetry matrices of low symmetry systems with multiple equivalent atoms
vectorize various loops in dfttools
fix various from_L_G_R calls that require now data layed out in C-order
use nda over TRIQS_RUNTIME_ERROR in dos_tetra3d
changed fermi weights from np array complex to float in accordance with h5 structure
expose parameter max_loops in sum_k.calc_mu dichotomy
Thanks to all commit-contributors (in alphabetical order): Sophie Beck, Alexander Hampel, Alyn James, Jonathan Karp, Harry LaBollita, Max Merkel, H. L. Nourse, Hermann Schnait, Nils Wentzell, @70akaline
Version 3.0.0
DFTTools Version 3.0.0 is a major release that
is compatible with TRIQS versions 3.0.x
introduces compatibility with Python 3 (Python 2 is no longer supported)
is now aligned with the general app4triqs application skeleton
brings a major rework of the VASP interface, including thorough documentation, tutorials, a new Hamiltonian mode, the option to select bands instead of an energy window, and many small bugfixes.
brings a major update of the block structure functionalities especially for SOC calculations, with detailed documentation and tutorials. Allows more control over the block structure coming from DFT, cutting out certain orbitals or throwing away off-diagonal elements when preparing input for the solver.
New option in dmftproj to select the projection window using band indices instead of energie
Restructuring
To be aligned with other applications for TRIQS, various files and folders had to be moved to new locations. The c++, fortran and python parts all are now in separate folders. The converter files have been more logically split into their own folders and name spaces. For example the Vasp converter is now located under python/triqs_dft_tools/converters/vasp.py
. Especially the test folder structure was adapted to fit to the app4triqs skeleton, which separate folders for C++ and python tests.
Dependency Management
We are managing the interdependencies of the various library components of triqs now using cmake. Per default cmake will pull those dependencies from their corresponding GitHub repositories, build them, and install these components together with TRIQS, unless they are found in your system. This behavior can be altered using the additional cmake options
-DBuild_Deps="Always"
- Always build dependencies, do not try to find them-DBuild_Deps="Never"
- Never build dependencies, but find them instead
during the configuration step. See also the TRIQS documentation for more detailed instructions.
Other Changes:
Run port_to_triqs3 script
Port py files to python3
Update triqs python module name
synchronize dfttools with app4triqs structure
rename all h5 test archives according to test_name.ref.h5
Changed ‘orb’ parameter to ‘ish’ for consistency in function summ_deg_gf in file sumk_dft.py
small fix to read_inp_from_h5 function of Sumk
renamed converters from app_converter.py to app.py
look at the mesh of each shell of Sigma_imp, not just the first shell
add function to find min and max of band energy, and add warning to set_Sigma if its mesh is smaller than the energy bounds
warning for set_Sigma if ReFreqMesh is too small
fixed a index bug that produced empty projectors for a unit cells with multiple shells in the VASP converter
fixed a slicing bug for the calculation of the target density in the VASP converter, which selected 1 band less in the correlated window than required.
added printout of complex part of local Hamiltonian in the Vasp converter
doc on automatic basis rotations
Bugfix in calculate_density_matrix for purely imaginary off-diagonals
revamping the VASP interface documentation. Rewrote the interface with VASP guide. Removed the unused in doc/vasp. Start for SVO VASP tutorial as ipynb
changed ref file for block structure test, since the order in dicts is not guaranteed the test failed as the order in py3 changed
Vasp Converter: efermi is now read from LOCPROJ if DOSCAR does not contain it yet
E-Fermi is read from DOSCAR not from LOCPROJ
Added Tutorial for basis rotations: Sr2MgOsO6 w/o SOC
Vasp converter add kpts and kpts_basis to h5
many adjustments to Block structure and rotations including option to throw away certain parts of BlockGf
implemented multiple ncsf VASP cycles
Ignore imaginary part of the density when calculating mu
Adjust hdf5 usage to changes in triqs
Calculate diagonalization in solver blocks
Do not use deprecated set_from_inverse_fourier
add SOC tutorial
add Block structure tutorial
adding detailed Vasp tutorial
Vasp converter now supports Hamiltonian mode
Move setup files into separate bash scripts and adjust README
Update README file with more detailed instructions
Thanks to all commit-contributors (in alphabetical order): Markus Aichhorn, Alexander Hampel, Gernot Kraberger, Oleg Peil, Hermann Schnait, Malte Schueler, Nils Wentzell, Manuel Zingl
Version 2.2.1
DFTTools Version 2.2.1 makes the application available through the Anaconda package manager. We adjust the install pages of the documentation accordingly. We provide a more detailed description of the changes below.
Add a section on the Anaconda package to the install page
Add a LICENSE and AUTHORS file to the repository
Version 2.2.0
Ensure that the chemical potential calculations results in a real number
Fix a bug in reading Wien2k optics files in SO/SP cases
Some clarifications in the documentation
Packaging/Jenkins/TRIQS/Installation adaptations
This is to a large extend a compatibility release against TRIQS version 2.2.0
Thanks to all commit-contributors (in alphabetical order): Markus Aichhorn, Dylan Simon, Erik van Loon, Nils Wentzell, Manuel Zingl
Version 2.1.x (changes since 1.4)
Added Debian Packaging
Compatibility changes for TRIQS 2.1.x
Jenkins adjustments
Add option to measure python test coverage
VASP interface (and documentation)
Added thermal conductivity in transport code (and documentation)
BlockStructure class and new methods to analyze the block structure and degshells
Multiple fixes of issues and bugs
Major updates and restructuring of documentation
Thanks to all commit-contributors (in alphabetical order): Markus Aichhorn, Gernot J. Kraberger, Olivier Parcollet, Oleg Peil, Hiroshi Shinaoka, Dylan Simon, Hugo U. R. Strand, Nils Wentzell, Manuel Zingl
Thanks to all user for reporting issues and suggesting improvements.