3
0
mirror of https://github.com/triqs/dft_tools synced 2024-12-25 22:03:43 +01:00
Commit Graph

644 Commits

Author SHA1 Message Date
Oleg Peil
2b93019874 (style) add proper logging for warnings and debug info 2023-03-24 17:43:19 +01:00
Oleg Peil
1c9190496d [vasp_converter] close input files explicitly 2023-03-24 17:43:19 +01:00
Oleg Peil
d55d8f3911 [proj_shell] change equiv-class index to repr-ion index 2023-03-24 17:43:19 +01:00
Alexander Hampel
77ca9b614b fix: read_input_from_hdf error check was not working 2023-03-23 17:40:54 -04:00
Alexander Hampel
37c3d984c6 fix: srvo3 transport test after DC PR 2023-03-23 13:52:35 -04:00
Alexander Hampel
c6e755ef07 refactor & fix: merge the two read functions and small fixes
fix: add asserts for spin calculations and disent
2023-03-23 12:57:15 -04:00
Alexander Hampel
ee10eaea50 style: pep8 autoformat 2023-03-23 12:28:53 -04:00
phibeck
468cf6efc7 refactor: simplify code in computing velocities 2023-03-23 12:26:22 -04:00
phibeck
d4ef98edfd test: correct broken tests and append new one 2023-03-23 12:26:22 -04:00
phibeck
e949d4c1b0 fix: velocities from WannierBerri now correctly implemented
fix: transport function not implemented if using symmetries

feat: computing OC in Wannier or Hamiltonian basis

feat: computing intra- and interband contributions separately in OC
2023-03-23 12:26:22 -04:00
phibeck
d5e6d60258 remove any transport from sumk_dft_tools.py 2023-03-23 12:26:22 -04:00
phibeck
345fd14a39 feat: optical prop with Wannier90 and WannierBerri
All existing transport features from SumkDFTTools are now integrated in sumk_dft_transport.py as functions.

    feat: new code = "wannier90"
    refactor: free functions instead of sum_k members

If code is chosen as wannier90:

    feat: compute transport function
    feat: compute OC in Wannier or Hamiltonian basis
    feat: compute intra- and interband contributions separately in OC
2023-03-23 12:24:38 -04:00
Alexander Hampel
45749529ec add calc_mu test and pep8 format 2023-03-21 09:34:49 -04:00
Alexander Hampel
88094c0f92 outsource calc_DC_from_density into util.py and cleanup 2023-03-21 09:34:49 -04:00
alberto-carta
0d25aefc73 Corrections for new calc_dc and calc_mu
* typos and subbed check in spin polarized calculations for quantum espresso with a warning when computing the deltaN
* fixed typos in comments
* removed legacy mode maintaining only compatibility layer and switched to old (<3.10) python syntax
* added target density output in mu finder for brent and newton, refactored tunit test for DC, changed some comments
2023-03-21 09:34:49 -04:00
alberto-carta
d4f3c48784 Added 2 new methods to find chemical potential, refactored DC calculation with stateless function while keeping legacy code 2023-03-21 09:34:49 -04:00
alberto-carta
d68d6d8974 removed preconditioned newton in favor of brent 2023-03-21 09:34:49 -04:00
alberto-carta
27bdb61136 Added multiple zero finding methods to sumk.calc_mu 2023-03-21 09:34:49 -04:00
Alexander Hampel
03aa19b90d
fix: extract_G_loc missing Sigma_imp issue #233 (#234) 2023-02-28 14:46:41 -05:00
Alexander Hampel
295b7f278e fix: fix f2py command for numpy ver >1.22 2023-01-23 15:57:53 -05:00
Alexander Hampel
095f8a0b6a fix: np.int / np.float / np. complex are depracted (np v1.20) / removed (np v1.24) 2023-01-23 15:40:57 -05:00
Alexander Hampel
1c3e88fcfe fix: add backward compatibility layer for dft_code flag 2023-01-23 15:00:47 -05:00
AlynJ
c202286341
Elk Transport code and subsequent updates (#229)
* elk-transport
* minor updates
* specify explicitly fortran compiler and python exe in CMAKE

Co-authored-by: Alexander Hampel <ahampel@flatironinstitute.org>
2023-01-04 17:16:57 -05:00
AlynJ
ce4aed3551
elk-interface bug fixes (#228)
updated the Elk interface to fix some minor bugs which arose for certain systems with equivalent atoms. I've also included new tests for this interface and collated all of these interface tests in the "test/python/elk" subdirectory.
2022-11-10 11:11:28 -05:00
merkelm
a072a5450f
Fixed DC formulas with SOC (#227) 2022-10-26 12:55:18 -04:00
Harry LaBollita
031ba1ea40
Fixes issue with projected A(k,w) (#225)
* projected Akw fixed

* assert statement on ishell for PR #225

Co-authored-by: Harrison LaBollita <hlabolli@asu.edu>
2022-10-25 09:27:36 -04:00
mmerkel
8de30d67fe Fix for wannier converter: reordering of orbital/spin order only necessary for vasp 5 2022-10-19 11:28:33 +02:00
Harrison LaBollita
7517add910 transport kmesh check 2022-10-10 15:41:51 -04:00
Alexander Hampel
51d4ef2a27 fix outstanding issues and formatting 2022-10-05 16:29:01 -04:00
Alexander Hampel
d36467402e remove debug output, revert to pre-PR 2022-10-05 16:29:01 -04:00
Dario Fiore Mosca
39f6af050c Non-collinear projectors VASP.6. 2022-10-05 16:29:01 -04:00
Alexander Hampel
97afc3061e fix misusage of GfImFreq in create_gf 2022-10-05 16:28:31 -04:00
Alexander Hampel
143fde4b2c fix obsolote iw_or_w param in calc_mu 2022-07-04 16:50:52 -04:00
Alexander Hampel
213016ee1c fix transport test, allow for parallel execution of tests 2022-04-20 11:36:10 -04:00
Alexander Hampel
66b3719c9b improve performance of extract Gloc by factor 5! huge cleanup 2022-04-20 11:36:10 -04:00
Alexander Hampel
a36f2fdc61 fix spaghettis function and update test 2022-04-20 11:36:10 -04:00
Jonathan Karp
bb4682fafa warning in extract_G_loc if SumkDFT and Sigma have different mesh 2022-04-20 11:36:10 -04:00
Jonathan Karp
5f2a0c763e make mesh parameter in lattice_gf a triqs mesh object 2022-04-20 11:36:10 -04:00
Jonathan Karp
5c8071a6ac update docstrings and give warning in lattice_gf if with Sigma and mesh is given 2022-04-20 11:36:10 -04:00
Jonathan Karp
fc893a0f48 use mesh from Sigma instead of Sumk in lattice_gf 2022-04-20 11:36:10 -04:00
Jonathan Karp
1e7c66805f fix bugs and tests 2022-04-20 11:36:10 -04:00
Jonathan Karp
6df75d8c39 bug fixes 2022-04-20 11:36:10 -04:00
Jonathan Karp
ec8da69e34 edit SumKDFT class to take gf mesh at initialization and force Sigma to have that mesh 2022-04-20 11:36:10 -04:00
Alexander Hampel
fd90cc9c63 BUGFIX: changed character in QE output for reading occupations with
Co-authored-by: alberto-carta
2022-04-15 10:55:16 -04:00
mmerkel
0b72ad7fce Updated W90 converter: bug fixes for SOC, code restructured, more tests for add_lambda and bloch_basis 2022-04-15 10:51:37 -04:00
Alexander Hampel
d6e04091b0
Merge pull request #208 from hschnait/new_gf_struct
Modify gf_struct to be in line with triqs/3.1.x
2022-03-09 12:22:06 -05:00
Alexander Hampel
320b2d2dfd remove gf_struct_flatten function and replace with triqs version 2022-03-09 09:15:10 -05:00
Hermann Schnait
23d689f8f7 Issue a Warning when old gf_struct is provided 2022-03-09 12:23:26 +01:00
hschnait
c2a53ab835 Update Unit-Tests for new gf_struct 2022-03-08 18:49:40 +01:00
hschnait
c8806ddda8 Updatye SumkDFT_Tools to new gf_struct 2022-03-08 18:49:12 +01:00
hschnait
660807fe25 Small bugfix in sumkdft 2022-03-08 18:22:57 +01:00
hschnait
33200f9b8a Add backwards-compatibility in constructor of block_strucutre 2022-03-08 18:21:32 +01:00
hschnait
cbeb26cc7f Update trans_basis for new gf_struct convention. 2022-03-08 17:47:36 +01:00
hschnait
abf70b6ead Update map_gf_struct_solver function to new gf_struct convention 2022-03-08 17:38:50 +01:00
hschnait
0a95ffd9d0 Modify block_structure for new gf_struct convention. 2022-03-08 17:22:48 +01:00
Hermann Schnait
9bac476c5f Use rotloc matrix in add_dc only when use_rotations is True (Issue #190) 2022-03-08 09:39:09 -05:00
hschnait
a8338819f0 Update SumkDFT for new gf_struct 2022-03-08 14:35:01 +01:00
hschnait
9ae739afd0 Update Docstrings in SK properties 2022-03-08 11:19:58 +01:00
Alexander Hampel
c4db7e6867 update documentation to use autosummary
* remove manual module reference files
* move hdf5 structure reference to guide
* fix various doc strings
* remove very old update_archive python script for triqs 1.2
* refine main documentation.rst file -> better overview
2022-03-02 14:13:12 -05:00
Alexander Hampel
7d934429d4
Merge pull request #206 from Lidra1/unstable
BUGFIX: negative k vectors in QE nscf.out
2022-03-01 12:51:39 -05:00
acarta
f30d14fbd1 BUGFIX: changed character in QE output for reading occupations with
negative k vector
2022-03-01 14:51:37 +01:00
Hermann Schnait
64dd1cb167 Update docstring for extract_G_loc concering n_inequiv_shells and n_corr_shells 2022-03-01 09:31:01 +01:00
phibeck
3cd95dcd02 Bugfix for analyse_block_structure in sumk_dft
This caused inconsistencies between the shapes of Hloc and density_matrix,
since they were in the shape of n_corr_shells vs n_inequiv_shells, respectively.
2022-02-18 16:38:01 -05:00
phibeck
2e8d66ab5c Previous commit still not correct for multiple impurities. For now restrict to just a single impurity. 2021-12-20 08:14:36 -05:00
phibeck
9a33958161 Bugfix in Wannier90COnverter such that add_lambda can be used for multiple impurities 2021-12-17 14:39:25 -05:00
phibeck
a995f114ae This fix ensures than in the bloch_basis=False mode the complex diagonal components of the Hamiltonian are zero. If this is not checked it can lead to instabilities in the inversion for G_latt, which is a problem for ReFreq Green's functions 2021-12-15 17:35:39 -05:00
Alyn James
e2c038ae8a elk interface bug fixs 2021-12-15 12:57:57 +00:00
phibeck
e06653d7bb This fix in the Wannier90Converter 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.
2021-11-15 15:20:08 -05:00
phibeck
48da44eda2 Adapt sumk_dft for charge self-consistency with Quantum Espresso 2021-11-04 15:18:15 -04:00
Jonathan Karp
3b9a9dab9c vectorize loop over frequencies in spaghettis 2021-10-13 17:37:33 -04:00
Jonathan Karp
baec3b2f31 vectorize loop over frequency in dos functions and add tests 2021-10-13 14:09:48 -04:00
phibeck
2d6f66cbb8 Update Documentation of W90 Converter 2021-09-28 14:32:30 -04:00
phibeck
17ac9209e3 Bugfix if using bloch_basis = True and multiple inequivalent shells 2021-09-28 14:32:29 -04:00
hschnait
b924f85fde Bugfixes in blockstructure.py for the case of #corr_shells != #ineq_shells 2021-08-31 08:01:12 +02:00
Alexander Hampel
a1b5421864 fix for python binary, c order for arrays, and NiO tutorial 2021-08-16 12:51:55 -04:00
H. L. Nourse
75a7749180 fixed normalization of kwghts to allow symmetries - very tunnel visioned and haven't checked anything else 2021-06-22 14:44:17 +10:00
Hermann Schnait
db8a7e543e Bugfix in block_structure.py
In the (rare) case that one has multiple shells with different number of orbitals (e.g. p-d-systems) the old code crashed when converting GFs from the second shell as matrix dimensions were not fitting (the tmp matrix was always created for the first shell).
2021-06-09 14:28:46 -04:00
Nils Wentzell
6a8d838b20 from_L_G_R requires a Green function with data layed out in C-order 2021-05-26 17:59:50 -04:00
Nils Wentzell
3648fd74e8 Automated porting to triqs + meshes + nda 2021-05-26 17:59:50 -04:00
Alexander Hampel
9b22859553 added helper function to flatten gf_struct objects for new triqs version 2021-05-26 17:59:50 -04:00
Sophie Beck
3122ab2a83
Updates of Wannier90Converter: (#169)
Added:

substantial speed-up using MPI for Fourier transform
option to add a local spin-orbit term to t2g local Hamiltonian.
writing dft_fermi_energy to group 'dft_misc_input'
writing kpt_basis to group 'dft_input' if bloch_basis=True
writing kpts_cart to group 'dft_misc_input' if bloch_basis=True
Minor bugfixes:

bug can be caused by rounding of outer window limits if bloch_basis and disentangle =True, made error message clearer
2021-05-06 08:37:15 -04:00
merkelm
0a71b29096
Added parameter kpts_to_write to SumkDFT.calc_density_correction (#170)
Default behavior unchanged. If parameter kpts_to_write is given and if dm_type=='vasp', only the selected k points are written to the density correction GAMMA file.
Can be used for running Vasp with symmetries, where Vasp requires only the density correction from the irreducible Brillouin zone.

* For density correction in vasp, added option to select kpoints
* Made docstring of calc_density_correction clearer
2021-05-05 11:55:40 -04:00
sobeck
aeaebb04ae Revision of Wannier90Converter: 1) write the Hamiltonian in Bloch space
for charge self-consistent calculations, and 2) spin-orbit coupling

if bloch_basis = True:
* if "seedname_u.dat" (and in case of disentanglement "seedname_u_dis.dat")
  present, write hopping in Bloch basis
* "proj_mat" transforming from Bloch to orbital space
* diagonal hoppings are directly read from "seedname.eig"
* fermi weights and band_window of Wannier Hamiltonian are read from DFT
  output and "seedname.nnkp", written into new subgroup "dft_misc_input"
* automatic calculation of "density_required"
* implemented for Quantum Espresso (read from "seedname.nscf.out" if
  verbosity = 'high') and VASP (read from "OUTCAR"/"LOCPROJ")

* spin-orbit coupling SO = 1 implemented
* substitute k_mesh and bz_weights with kpts and kpt_weights,
  respectively (previous names kept for compatibility)
* updated tests
2021-02-05 14:41:59 -05:00
Nils Wentzell
6dccb363de Merge remote-tracking branch 'app4triqs-remote/unstable' into unstable 2021-02-03 11:03:08 -05:00
Nils Wentzell
6bd1e51c4e [cmake] Provide an alias PROJECT_NAME::module_name for each module 2021-01-22 14:49:50 -05:00
Alexander Hampel
93cf096932 changed fermi weights from np array complex to float in accordance with h5 structure 2020-11-24 16:35:27 -05:00
mmerkel
1fa2376a99 sum_k.calc_mu exposes dichotomy parameter max_loops
Default behavior unchanged
2020-10-30 18:58:57 +01:00
Alexander Hampel
b0b2a64286 removed unused debug print commands 2020-10-12 07:52:19 -04:00
AlynJ
ad8c4e75fe
Elk converter (#151)
Adding Elk-TRIQS interface (first iteration) 

This interface reads in Elk's ground-state files / projectors generated by a specific Elk interface code version (https://github.com/AlynJ/Elk_interface-TRIQS). The interface can perform charge-self consistent DFT+DMFT calculations using the aforementioned Elk code version, including spin orbit-coupling. Hence, this is the first open source interfaced DFT code to triqs with FCSC support. 

The commit includes detailed documentation and tutorials on how to use this interface. Moreover, further new post-processing routines are added for Fermi surface plots and spectral functions (A(w)) from the elk inputs.

The interface was tested by A. James and A. Hampel. However, this is the first iteration of the interface and should be used with care. Please report all bugs.

List of changes:
---------------
- sumk.py: added cacluation of charge density correction for elk (dm_type='elk').
- sumk_dft_tools.py: added new post-processing functions to calculate the Fermi surface and A(w) from the Elk inputs.
- documentation and tutorial files amended for this interface.
- added python tests for the Elk converter.
2020-10-09 08:35:28 -04:00
Alexander Hampel
d61ce6eaae fix for bug in wannier90 converter
* the Fermi level given in the inp file was ignored
* added a new line reporting which energy is subtracted from mu
2020-08-25 08:22:45 -04:00
sobeck
393753dc96 typo in wannier90.py 2020-08-17 19:31:32 +02:00
mmerkel
c6385b16d4 Bug fix: changed use_rotations from bool to int 2020-08-17 19:31:32 +02:00
mmerkel
52d2159c18 Small bugfixes 2020-08-17 19:31:32 +02:00
mmerkel
4ebfd15803 Added Gabriele's additional checks 2020-08-17 19:31:32 +02:00
mmerkel
19a2e55183 Added choice of different bases: hloc_diag, wannier (already implemented previously), none 2020-08-17 19:31:32 +02:00
mmerkel
aacb8847ac Clean-up: float comparison tolerances and few minor things 2020-08-17 19:31:32 +02:00
Alexander Hampel
378f743b09 Update for hdf5 structure reference
- added missing corr to inequiv information
- added a Vasp specific section and added missing information
2020-08-04 10:51:01 +02:00
Alexander Hampel
af8cde628e small adjustments to Vasp converter (closes #146)
* adding kpts_basis, kpts, and kpt_weights to h5 dft_input
* read these properties as optional arguments in Sumk_dft.py
* change accordingly the ref h5 files for vasp converter test
* soon all converters are demanted to store those properties
* bz_weights should then be replaced by kpt_weights
* closes PR #146
2020-08-03 12:39:34 +02:00
Alexander Hampel
a158fec7eb small fix to read_inp_from_h5 function of Sumk
split things_to_read into req and optional properties. Only throw error
show warning if req parameters are missing.
2020-07-31 11:52:42 +02:00
Alexander Hampel
9d94c78cba Merge branch 'unstable' into py3
merge latest commit de163cce03 for
enhanced warning for set_Sigma if ReFreqMesh is too small into py3
2020-06-23 11:24:08 +02:00