solid-dmft 3.3.3__tar.gz → 3.3.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {solid_dmft-3.3.3/python/solid_dmft.egg-info → solid_dmft-3.3.4}/PKG-INFO +1 -1
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/pyproject.toml +1 -1
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dmft_tools/afm_mapping.py +22 -15
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dmft_tools/initial_self_energies.py +4 -4
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dmft_tools/matheval.py +10 -2
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dmft_tools/solver.py +1 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/io_tools/verify_input_params.py +5 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/version.py +4 -4
- {solid_dmft-3.3.3 → solid_dmft-3.3.4/python/solid_dmft.egg-info}/PKG-INFO +1 -1
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/COPYING.txt +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/LICENSE.txt +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/MANIFEST.in +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/README.md +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/__init__.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/csc_flow.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dft_managers/__init__.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dft_managers/mpi_helpers.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dft_managers/qe_manager.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dft_managers/vasp_manager.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dmft_cycle.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dmft_tools/__init__.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dmft_tools/convergence.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dmft_tools/formatter.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dmft_tools/greens_functions_mixer.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dmft_tools/interaction_hamiltonian.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dmft_tools/legendre_filter.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dmft_tools/manipulate_chemical_potential.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dmft_tools/observables.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dmft_tools/results_to_archive.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/gw_embedding/__init__.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/gw_embedding/bdft_converter.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/gw_embedding/gw_flow.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/gw_embedding/iaft.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/gw_embedding/qp_evs_to_eig.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/io_tools/__init__.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/io_tools/default.toml +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/io_tools/dict_to_h5.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/io_tools/postproc_toml_dict.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/main.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/postprocessing/__init__.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/postprocessing/eval_U_cRPA_RESPACK.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/postprocessing/eval_U_cRPA_Vasp.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/postprocessing/maxent_gf_imp.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/postprocessing/maxent_gf_latt.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/postprocessing/maxent_sigma.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/postprocessing/pade_sigma.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/postprocessing/plot_correlated_bands.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/util/__init__.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/util/symmetrize_gamma_file.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/util/write_kslice_to_h5.py +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft.egg-info/SOURCES.txt +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft.egg-info/dependency_links.txt +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft.egg-info/entry_points.txt +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft.egg-info/requires.txt +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft.egg-info/top_level.txt +0 -0
- {solid_dmft-3.3.3 → solid_dmft-3.3.4}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: solid_dmft
|
|
3
|
-
Version: 3.3.
|
|
3
|
+
Version: 3.3.4
|
|
4
4
|
Summary: solid_dmft: a versatile python wrapper to perform DFT+DMFT calculations utilizing the TRIQS software library
|
|
5
5
|
Author-email: Alexander Hampel <mail@alexander-hampel.de>
|
|
6
6
|
Project-URL: Homepage, https://triqs.github.io/solid_dmft
|
|
@@ -54,9 +54,9 @@ def determine(general_params, archive, n_inequiv_shells):
|
|
|
54
54
|
# determine if we need to switch up and down channel
|
|
55
55
|
switch = np.isclose(general_params['magmom'][icrsh], -general_params['magmom'][source])
|
|
56
56
|
|
|
57
|
-
afm_mapping[icrsh] = [True, source, switch]
|
|
57
|
+
afm_mapping[icrsh] = [True, int(source), bool(switch)]
|
|
58
58
|
else:
|
|
59
|
-
afm_mapping[icrsh] = [False, icrsh, False]
|
|
59
|
+
afm_mapping[icrsh] = [False, int(icrsh), False]
|
|
60
60
|
|
|
61
61
|
|
|
62
62
|
print('AFM calculation selected, mapping self energies as follows:')
|
|
@@ -86,6 +86,20 @@ def apply(general_params, icrsh, gf_struct_solver, solvers):
|
|
|
86
86
|
mpi.report('\ncopying the self-energy for shell {} from shell {}'.format(icrsh, imp_source))
|
|
87
87
|
mpi.report('inverting spin channels: '+str(invert_spin))
|
|
88
88
|
|
|
89
|
+
if solvers[icrsh].solver_params.get('measure_density_matrix'):
|
|
90
|
+
solvers[icrsh].density_matrix = solvers[imp_source].density_matrix
|
|
91
|
+
solvers[icrsh].h_loc_diagonalization = solvers[imp_source].h_loc_diagonalization
|
|
92
|
+
solvers[icrsh].Sigma_moments = solvers[imp_source].Sigma_moments
|
|
93
|
+
solvers[icrsh].Sigma_Hartree = solvers[imp_source].Sigma_Hartree
|
|
94
|
+
solvers[icrsh].G_moments = solvers[imp_source].G_moments
|
|
95
|
+
# copy orbital occupations dict with deep copy of arrays
|
|
96
|
+
solvers[icrsh].orbital_occupations = {key: occ.copy() for key, occ in solvers[imp_source].orbital_occupations.items()}
|
|
97
|
+
|
|
98
|
+
# and the same for the perturbation order if measured
|
|
99
|
+
if solvers[icrsh].solver_params.get('measure_pert_order'):
|
|
100
|
+
solvers[icrsh].perturbation_order = {key: hist for key, hist in solvers[imp_source].perturbation_order.items()}
|
|
101
|
+
solvers[icrsh].perturbation_order_total = solvers[imp_source].perturbation_order_total
|
|
102
|
+
|
|
89
103
|
if invert_spin:
|
|
90
104
|
for spin_channel in gf_struct_solver.keys():
|
|
91
105
|
if 'up' in spin_channel:
|
|
@@ -99,11 +113,12 @@ def apply(general_params, icrsh, gf_struct_solver, solvers):
|
|
|
99
113
|
solvers[icrsh].G0_freq[spin_channel] << solvers[imp_source].G0_freq[target_channel]
|
|
100
114
|
solvers[icrsh].G_time[spin_channel] << solvers[imp_source].G_time[target_channel]
|
|
101
115
|
|
|
102
|
-
if solvers[icrsh].solver_params
|
|
103
|
-
if not hasattr(solvers[icrsh], 'perturbation_order'):
|
|
104
|
-
solvers[icrsh].perturbation_order = {}
|
|
116
|
+
if solvers[icrsh].solver_params.get('measure_pert_order'):
|
|
105
117
|
solvers[icrsh].perturbation_order[spin_channel] = solvers[imp_source].perturbation_order[target_channel]
|
|
106
|
-
|
|
118
|
+
|
|
119
|
+
# we also need to swap the orbital occupations, but we skip moments since the whole self-energy is copied anyway
|
|
120
|
+
if solvers[icrsh].solver_params.get('measure_density_matrix'):
|
|
121
|
+
solvers[icrsh].orbital_occupations[spin_channel] = solvers[imp_source].orbital_occupations[target_channel]
|
|
107
122
|
|
|
108
123
|
else:
|
|
109
124
|
solvers[icrsh].Sigma_freq << solvers[imp_source].Sigma_freq
|
|
@@ -112,15 +127,7 @@ def apply(general_params, icrsh, gf_struct_solver, solvers):
|
|
|
112
127
|
solvers[icrsh].G0_freq << solvers[imp_source].G0_freq
|
|
113
128
|
solvers[icrsh].G_time << solvers[imp_source].G_time
|
|
114
129
|
|
|
115
|
-
|
|
116
|
-
solvers[icrsh].perturbation_order = solvers[imp_source].perturbation_order
|
|
117
|
-
solvers[icrsh].perturbation_order_total = solvers[imp_source].perturbation_order_total
|
|
118
|
-
|
|
119
|
-
if solvers[icrsh].solver_params['measure_density_matrix']:
|
|
120
|
-
solvers[icrsh].density_matrix = solvers[imp_source].density_matrix
|
|
121
|
-
solvers[icrsh].h_loc_diagonalization = solvers[imp_source].h_loc_diagonalization
|
|
122
|
-
|
|
123
|
-
if 'measure_chi' in solvers[icrsh].solver_params and solvers[icrsh].solver_params['measure_chi'] is not None:
|
|
130
|
+
if solvers[icrsh].solver_params.get('measure_chi'):
|
|
124
131
|
solvers[icrsh].O_time = solvers[imp_source].O_time
|
|
125
132
|
|
|
126
133
|
return solvers
|
|
@@ -533,9 +533,9 @@ def determine_dc_and_initial_sigma(general_params, gw_params, advanced_params, s
|
|
|
533
533
|
# if magmom positive the up channel will be favored
|
|
534
534
|
for spin_channel in sum_k.gf_struct_solver[icrsh].keys():
|
|
535
535
|
if 'up' in spin_channel:
|
|
536
|
-
start_sigma[icrsh][spin_channel] << -np.eye(dc_pot[spin_channel].shape[0])
|
|
536
|
+
start_sigma[icrsh][spin_channel] << dc_pot[spin_channel] - fac*np.eye(dc_pot[spin_channel].shape[0])
|
|
537
537
|
else:
|
|
538
|
-
start_sigma[icrsh][spin_channel] << np.eye(dc_pot[spin_channel].shape[0])
|
|
538
|
+
start_sigma[icrsh][spin_channel] << dc_pot[spin_channel] + fac*np.eye(dc_pot[spin_channel].shape[0])
|
|
539
539
|
else:
|
|
540
540
|
for spin_channel in sum_k.gf_struct_solver[icrsh].keys():
|
|
541
541
|
start_sigma[icrsh][spin_channel] << dc_pot[spin_channel]
|
|
@@ -554,9 +554,9 @@ def determine_dc_and_initial_sigma(general_params, gw_params, advanced_params, s
|
|
|
554
554
|
# if magmom positive the up channel will be favored
|
|
555
555
|
for spin_channel in sum_k.gf_struct_solver[icrsh].keys():
|
|
556
556
|
if 'up' in spin_channel:
|
|
557
|
-
start_sigma[icrsh][spin_channel] << -fac
|
|
557
|
+
start_sigma[icrsh][spin_channel] << -fac*np.eye(start_sigma[icrsh][spin_channel].target_shape[0])
|
|
558
558
|
else:
|
|
559
|
-
start_sigma[icrsh][spin_channel] << fac
|
|
559
|
+
start_sigma[icrsh][spin_channel] << fac*np.eye(start_sigma[icrsh][spin_channel].target_shape[0])
|
|
560
560
|
else:
|
|
561
561
|
start_sigma = [sum_k.block_structure.create_gf(ish=iineq, gf_function=Gf, space='solver', mesh=sum_k.mesh)
|
|
562
562
|
for iineq in range(sum_k.n_inequiv_shells)]
|
|
@@ -4,8 +4,12 @@ import ast
|
|
|
4
4
|
import math
|
|
5
5
|
|
|
6
6
|
|
|
7
|
+
# Determine numeric/constant node for compatibility across Python versions
|
|
8
|
+
_AST_CONSTANT = getattr(ast, "Constant", None)
|
|
9
|
+
|
|
7
10
|
class MathExpr(object):
|
|
8
|
-
|
|
11
|
+
# Base allowed nodes (version-agnostic)
|
|
12
|
+
_base_allowed = (
|
|
9
13
|
ast.Module,
|
|
10
14
|
ast.Expr,
|
|
11
15
|
ast.Load,
|
|
@@ -13,7 +17,6 @@ class MathExpr(object):
|
|
|
13
17
|
ast.Add,
|
|
14
18
|
ast.Sub,
|
|
15
19
|
ast.UnaryOp,
|
|
16
|
-
ast.Num,
|
|
17
20
|
ast.BinOp,
|
|
18
21
|
ast.Mult,
|
|
19
22
|
ast.Div,
|
|
@@ -32,6 +35,11 @@ class MathExpr(object):
|
|
|
32
35
|
ast.Name,
|
|
33
36
|
)
|
|
34
37
|
|
|
38
|
+
# Extend allowed nodes with version-specific constant node
|
|
39
|
+
allowed_nodes = _base_allowed + (
|
|
40
|
+
_AST_CONSTANT if _AST_CONSTANT is not None else ast.Num,
|
|
41
|
+
)
|
|
42
|
+
|
|
35
43
|
functions = {
|
|
36
44
|
"abs": abs,
|
|
37
45
|
"complex": complex,
|
|
@@ -1163,6 +1163,7 @@ class SolverStructure:
|
|
|
1163
1163
|
self.Sigma_moments = self.triqs_solver.Sigma_moments
|
|
1164
1164
|
self.Sigma_Hartree = self.triqs_solver.Sigma_Hartree
|
|
1165
1165
|
self.G_moments = self.triqs_solver.G_moments
|
|
1166
|
+
self.orbital_occupations = self.triqs_solver.orbital_occupations
|
|
1166
1167
|
|
|
1167
1168
|
if self.solver_params['measure_pert_order']:
|
|
1168
1169
|
self.perturbation_order = self.triqs_solver.perturbation_order
|
|
@@ -28,6 +28,11 @@ def _verify_input_params_general(params: FullConfig) -> None:
|
|
|
28
28
|
if params['general']['calc_energies'] and any(entry['type'] == 'ftps' for entry in params['solver']):
|
|
29
29
|
raise ValueError('"calc_energies" is not valid for solver of type = "ftps"')
|
|
30
30
|
|
|
31
|
+
if params['general']['n_iter_dmft'] is None:
|
|
32
|
+
raise ValueError('"n_iter_dmft" must be specified.')
|
|
33
|
+
elif params['general']['n_iter_dmft'] < 0:
|
|
34
|
+
raise ValueError('"n_iter_dmft" must be at least 0.')
|
|
35
|
+
|
|
31
36
|
# Checks validity of other general params
|
|
32
37
|
h_int_type_options = (
|
|
33
38
|
'density_density',
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
#
|
|
23
23
|
################################################################################
|
|
24
24
|
|
|
25
|
-
version = "3.3.
|
|
26
|
-
triqs_hash = "
|
|
27
|
-
solid_dmft_hash = "
|
|
25
|
+
version = "3.3.4"
|
|
26
|
+
triqs_hash = "e0692a5bc9a8df98ec544abef51f06a728b37105"
|
|
27
|
+
solid_dmft_hash = "598a67977a6ff7eeca9394ec35138f569dd9a5f7"
|
|
28
28
|
|
|
29
29
|
def show_version():
|
|
30
30
|
print("\nYou are using solid_dmft version %s\n"%version)
|
|
31
31
|
|
|
32
32
|
def show_git_hash():
|
|
33
|
-
print("\nYou are using solid_dmft git hash %s based on triqs git hash %s\n"%("
|
|
33
|
+
print("\nYou are using solid_dmft git hash %s based on triqs git hash %s\n"%("598a67977a6ff7eeca9394ec35138f569dd9a5f7", triqs_hash))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: solid_dmft
|
|
3
|
-
Version: 3.3.
|
|
3
|
+
Version: 3.3.4
|
|
4
4
|
Summary: solid_dmft: a versatile python wrapper to perform DFT+DMFT calculations utilizing the TRIQS software library
|
|
5
5
|
Author-email: Alexander Hampel <mail@alexander-hampel.de>
|
|
6
6
|
Project-URL: Homepage, https://triqs.github.io/solid_dmft
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dmft_tools/greens_functions_mixer.py
RENAMED
|
File without changes
|
{solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dmft_tools/interaction_hamiltonian.py
RENAMED
|
File without changes
|
|
File without changes
|
{solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/dmft_tools/manipulate_chemical_potential.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/postprocessing/eval_U_cRPA_RESPACK.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{solid_dmft-3.3.3 → solid_dmft-3.3.4}/python/solid_dmft/postprocessing/plot_correlated_bands.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|