-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
multiple solvers and toml input parser (#74)
This PR changes the config file of solid_dmft to the toml format and allows to use multiple solvers within a single calculation. Requires dft_tools from commit b355173 on the unstable branch or later. - 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_type - `advanced_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 to `type` - general parameter `n_l` moved to solver section - general parameter `measure_chi` moved to solver section - general 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 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 dict `triqs_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 using `advanced_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 to `postproc_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 --------- Co-authored-by: Alexander Hampel <[email protected]>
- Loading branch information
1 parent
047c7d3
commit 8beb46d
Showing
67 changed files
with
2,429 additions
and
2,874 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
[general] | ||
seedname = "ce2o3" | ||
jobname = "b10-U6.46-J0.46" | ||
csc = true | ||
|
||
eta = 0.5 | ||
n_iw = 100 | ||
n_tau = 5001 | ||
|
||
n_iter_dmft_first = 2 | ||
n_iter_dmft_per = 1 | ||
n_iter_dmft = 5 | ||
|
||
block_threshold = 1e-03 | ||
|
||
h_int_type = "density_density" | ||
U = 6.46 | ||
J = 0.46 | ||
beta = 10 | ||
prec_mu = 0.1 | ||
|
||
sigma_mix = 1.0 | ||
g0_mix = 1.0 | ||
dc_type = 0 | ||
dc = true | ||
dc_dmft = true | ||
calc_energies = true | ||
|
||
h5_save_freq = 1 | ||
|
||
[solver] | ||
type = "hubbardI" | ||
n_l = 15 | ||
store_solver = false | ||
measure_G_l = false | ||
measure_density_matrix = true | ||
|
||
[dft] | ||
dft_code = "qe" | ||
n_cores = 10 | ||
mpi_env = "default" | ||
projector_type = "w90" | ||
dft_exec = "pw.x" | ||
w90_tolerance = 1e-1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
28 changes: 14 additions & 14 deletions
28
doc/tutorials/NNO_os_plo_mag/config.ini → doc/tutorials/NNO_os_plo_mag/config.toml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,47 +1,47 @@ | ||
[general] | ||
seedname = nno | ||
jobname = NNO_lowT | ||
seedname = "nno" | ||
jobname = "NNO_lowT" | ||
|
||
enforce_off_diag = False | ||
enforce_off_diag = false | ||
block_threshold = 0.001 | ||
|
||
solver_type = cthyb | ||
n_iw = 2001 | ||
n_tau = 20001 | ||
|
||
prec_mu = 0.001 | ||
|
||
h_int_type = density_density | ||
h_int_type = "density_density" | ||
U = 8.0 | ||
J = 1.0 | ||
|
||
# temperature ~290 K | ||
beta = 40 | ||
|
||
magnetic = True | ||
magmom = -0.3, 0.3 | ||
afm_order = True | ||
magnetic = true | ||
magmom = [-0.3, 0.3] | ||
afm_order = true | ||
|
||
n_iter_dmft = 14 | ||
|
||
g0_mix = 0.9 | ||
|
||
dc_type = 0 | ||
dc = True | ||
dc_dmft = False | ||
dc = true | ||
dc_dmft = false | ||
|
||
load_sigma = False | ||
path_to_sigma = pre_AFM.h5 | ||
load_sigma = false | ||
path_to_sigma = "pre_AFM.h5" | ||
|
||
[solver] | ||
type = "cthyb" | ||
length_cycle = 2000 | ||
n_warmup_cycles = 5e+3 | ||
n_cycles_tot = 1e+7 | ||
imag_threshold = 1e-5 | ||
|
||
perform_tail_fit = True | ||
perform_tail_fit = true | ||
fit_max_moment = 6 | ||
fit_min_w = 10 | ||
fit_max_w = 16 | ||
measure_density_matrix = True | ||
measure_density_matrix = true | ||
|
Oops, something went wrong.