diff --git a/doc/Ce-HI.rst b/doc/Ce-HI.rst index 143dde5f..8df4014e 100644 --- a/doc/Ce-HI.rst +++ b/doc/Ce-HI.rst @@ -142,15 +142,15 @@ where `-qdmft` flag turns on LDA+DMFT calculations with :program:`Wien2k`. We us After calculations are done we may check the value of correlational ('Hubbard') energy correction to the total energy:: >grep HUBBARD Ce-gamma.scf|tail -n 1 - HUBBARD ENERGY(included in SUM OF EIGENVALUES): -0.012875 + HUBBARD ENERGY(included in SUM OF EIGENVALUES): -0.220501 and the band("kinetic") energy with DMFT correction:: >grep DMFT Ce-gamma.scf |tail -n 1 - KINETIC ENERGY with DMFT correction: -3.714346 + KINETIC ENERGY with DMFT correction: -5.337286 as well as the convergence in total energy:: - + >grep :ENE Ce-gamma.scf |tail -n 5 :ENE : ********** TOTAL ENERGY IN Ry = -17717.554865 :ENE : ********** TOTAL ENERGY IN Ry = -17717.554577 diff --git a/doc/Ce_DOS.png b/doc/Ce_DOS.png index 45deadd4..fba780da 100644 Binary files a/doc/Ce_DOS.png and b/doc/Ce_DOS.png differ diff --git a/doc/LDADMFTmain.rst b/doc/LDADMFTmain.rst index 4cbbe72e..58b19f8f 100644 --- a/doc/LDADMFTmain.rst +++ b/doc/LDADMFTmain.rst @@ -62,8 +62,8 @@ They denerally should be reset for a given problem. Their meaning is as follows: * `use_matrix`: If `True`, the interaction matrix is calculated from Slater integrals, which are calculated from `U_interact` and `J_hund`. Otherwise, a Kanamori representation is used. Attention: We define the intraorbital interaction as - `U_interact`, the interorbital interaction for opposite spins as `U_interact-2*J_hund`, and interorbital for equal spins as - `U_interact-3*J_hund`. + `U_interact+2J_hund`, the interorbital interaction for opposite spins as `U_interact`, and interorbital for equal spins as + `U_interact-J_hund`! * `T`: A matrix that transforms the interaction matrix from spherical harmonics, to a symmetry adapted basis. Only effective, if `use_matrix=True`. * `l`: Orbital quantum number. Again, only effective for Slater parametrisation. @@ -80,8 +80,6 @@ They denerally should be reset for a given problem. Their meaning is as follows: Most of above parameters can be taken directly from the :class:`SumkLDA` class, without defining them by hand. We will see a specific example at the end of this tutorial. -After initialisation, several other CTQMC parameters can be set (see CTQMC doc). - .. index:: LDA+DMFT loop, one-shot calculation @@ -99,7 +97,9 @@ set up the loop over DMFT iterations and the self-consistency condition:: S.G <<= SK.extract_G_loc()[0] # extract the local Green function S.G0 <<= inverse(S.Sigma + inverse(S.G)) # finally get G0, the input for the Solver - S.Solve(U_interact = U, J_hund = J) # now solve the impurity problem + S.solve(U_interact,J_hund,use_spinflip=False,use_matrix=True, # now solve the impurity problem + l=2,T=None, dim_reps=None, irep=None, deg_orbs=[],n_cycles =10000, + length_cycle=200,n_warmup_cycles=1000) dm = S.G.density() # density matrix of the impurity problem SK.set_dc( dm, U_interact = U, J_hund = J, use_dc_formula = 0) # Set the double counting term diff --git a/doc/analysis.rst b/doc/analysis.rst index 8749e1b9..7eefd0ca 100644 --- a/doc/analysis.rst +++ b/doc/analysis.rst @@ -72,7 +72,7 @@ Most conveniently, it is stored as a real frequency :class:`BlockGf` object in t ar['SigmaReFreq'] = Sigma_real del ar -You may also store it in text files. If all blocks of your self energy are of dimension 1x1 you store them in `filename_(block)0.dat` files. Here `(block)` is a block name (`up`, `down`, or combined `ud`). In the case when you have matrix blocks, you store them in `(i)_(j).dat` files in the `filename_(block)` directory +You may also store it in text files. If all blocks of your self energy are of dimension 1x1 you store them in `fname_(block)0.dat` files. Here `(block)` is a block name (`up`, `down`, or combined `ud`). In the case when you have matrix blocks, you store them in `(i)_(j).dat` files (where `(i)` and `(j)` are the orbital indices) in the `fname_(block)` directory This self energy is loaded and put into the :class:`SumkLDA` class by the function:: @@ -81,20 +81,21 @@ This self energy is loaded and put into the :class:`SumkLDA` class by the functi where: - * `filename` is the file name of the hdf5 archive file or the `fname` pattern in text files names as described above. - * `hdf=True` the real-axis self energy will be read from the hdf5 file, `hdf=False`: from the text files + * `filename` is the name of the hdf5 archive file or the `fname` pattern in text files names as described above. + * `hdf=True`: the real-axis self energy will be read from the hdf5 file, `hdf=False`: from the text files * `hdf_dataset` the name of dataset where the self energy is stored in the hdf5 file * `n_om` number of points in the real-axis mesh (used only if `hdf=False`) The chemical potential as well as the double -counting correction was already read in the initialisation process. +counting correction were already read in the initialisation process. With this self energy, we can do now:: - SK.dos_partial() + SK.dos_partial(broadening=broadening) This produces the momentum-integrated spectral functions (density of states, DOS), also orbitally resolved. +The variable `broadening` is an additional Lorentzian broadening that is added to the resulting spectra. The output is printed into the files * `DOScorr(sp).dat`: The total DOS. `(sp)` stands for `up`, `down`, or combined `ud`. The latter case @@ -111,7 +112,7 @@ converter routines, see :ref:`interfacetowien`. The spectral function is calcula SK.spaghettis(broadening) -The variable `broadening`1 is an additional Lorentzian broadening that is added to the resulting spectra. The output is +The output is written as the 3-column files ``Akw(sp).dat``, where `(sp)` has the same meaning as above. The output format is `k`, :math:`\omega`, `value`. Optional parameters are