FAQ/Troubleshooting¶
General¶
Can DCore compute the double occupancy?¶
It depends on impurity solvers. For example, ALPS/CT-HYB-SEGMENT supports it, but other CT-QMC codes do not at present.
In general, capability of computing local physical quantities totally depends on impurity solvers. See the documentation of each solver for which local quantities can be computed.
Can DCore compute the internal energy?¶
No, it is not implemented yet.
If you want to compute it, you need to access to G(k,iw) in HDF5 file, and take summation over k and iw in an appropiate way.
dcore_pre
¶
When should I re-execute dcore_pre
?¶
When you change any parameters in [model] block.
dcore_pre
will re-construct the model database in seedname.h5.
For changes of parameters other than [model] block, on the other hand, you can restart dcore
, skipping dcore_pre
.
dcore
¶
How should I judge convergence of the DMFT loop?¶
The most reliable way is to use the dcore_check
and look at the generated figures that plot some physical quantities as a function of iterations.
Automatic convergence check is also available. Use converge_tol
parameter in [control] block. For QMC calculations, we rocommend to use n_converge
parameter simultaneously to exclude possibility that the convergence criteria is satisfied accidentally. An appropriate value would be n_converge=3
or larger.
The DMFT loop does not converge¶
If the chemical potential and/or self-energy look oscillating as a function of the iteration number, decrease sigma_mix
parameter in [control] block.
You might also need to improve the accuracy of QMC sampling by increasing the measurement time.
If the oscillation persists, consider expanding the unitcell to address a symmetry broken solution.
Can I enforce zero magnetic moment?¶
Yes. Use time_reversal
flag in [control] block.
See Input-file format.
Can I fix the sign of the magnetic moment in ordered states?¶
Yes. Set the initial static self-energy using initial_static_self_energy
parameter in [control] block.
This works as a local potential in the first iteration.
See Input-file format for details.
Can I set an initial self-energy for the DMFT loop?¶
Yes. Use initial_self_energy
parameter in [control] block.
See Input-file format.
Let’s say you want to start the DMFT loop using results obtained for different parameter set.
To do this, you perform dcore_check
after convergence, and copy sigma.dat into a new working directory (with the name sigma_init.dat below).
Then, assign this file to initial_self_energy
parameter as
[control]
initial_self_energy = sigma_init.dat
dcore_check
¶
Can I change the file format for figures?¶
Yes. Use --ext
option to specify the file extension.
If you prefer PDF, for example, the command reads
$ dcore_check input.init --ext pdf
The argument of --ext
can be png, pdf, eps, jpg, … (the ones supported by matplotlib
module).
Impurity solvers¶
What is the difference between ALPS/CT-HYB and TRIQS/cthyb?¶
ALPS/CT-HYB
is developed by one of the main developers of DCore, H. Shinaoka.
Both of ALPS/CT-HYB
and TRIQS/cthyb
implement the hybridization-expansion continuous-time quantum Monte Carlo method.
The main difference is the reliability of measurement of the single-particle Green’s function.
ALPS/CT-HYB uses a more elaborate algorithm (worm sampling).
The non-worm conventional sampling, which is implemented in TRIQS/cthyb
,
may give wrong results in some situations (e.g. SOI coupling with orbital-diagonal bath).
Solver-dependent parameter is not recognized¶
The variable type should be specified to be recognized as a solver parameter. For example, integer variable with name num is written as
[impurity_solver]
num{int} = 100
The type can be int, str, and float.
Can I use my impurity solver?¶
Yes. Follow the instruction in How to integrate your own solver
Others¶
DCore is slow even with MPI parallelization¶
One of the reasons is that the number of threads of each MPI process is not set properly. Unfortunately, the environment variable to set the number of threads is different among environments/libraries (OpenBLAS, Intel MKL, etc.). The followings are the environment variables to set the number of threads for some libraries.
OMP_NUM_THREADS
OPENBLAS_NUM_THREADS
MKL_NUM_THREADS
VECLIB_MAXIMUM_THREADS
NUMEXPR_NUM_THREADS