From 9935aa552dbc08429e1aa65efbc61b5aa98ce2eb Mon Sep 17 00:00:00 2001 From: Manuel Zingl Date: Thu, 20 Aug 2015 18:39:30 +0200 Subject: [PATCH] Adding links to reference manual. Minor updates. --- doc/guide/analysis.rst | 44 ++++++++++++++++---------------- doc/guide/conversion.rst | 16 ++++++------ doc/guide/dftdmft_selfcons.rst | 2 +- doc/guide/dftdmft_singleshot.rst | 10 ++++---- doc/guide/full_tutorial.rst | 4 +-- 5 files changed, 38 insertions(+), 38 deletions(-) diff --git a/doc/guide/analysis.rst b/doc/guide/analysis.rst index 67c0f2bf..01fd90bb 100644 --- a/doc/guide/analysis.rst +++ b/doc/guide/analysis.rst @@ -7,13 +7,13 @@ This section explains how to use some tools of the package in order to analyse t There are two practical tools for which a self energy on the real axis is not needed, namely: - * :meth:`dos_wannier_basis ` for the density of states of the Wannier orbitals and - * :meth:`partial_charges ` for the partial charges according to the Wien2k definition. + * :meth:`dos_wannier_basis ` for the density of states of the Wannier orbitals and + * :meth:`partial_charges ` for the partial charges according to the :program:`Wien2k` definition. -However, a real frequency self energy has to be provided by the user to use the methods: +However, a real frequency self energy has to be provided by the user for the methods: - * :meth:`dos_parproj_basis ` for the momentum-integrated spectral function including self energy effects and - * :meth:`spaghettis ` for the momentum-resolved spectral function (i.e. ARPES) + * :meth:`dos_parproj_basis ` for the momentum-integrated spectral function including self energy effects and + * :meth:`spaghettis ` for the momentum-resolved spectral function (i.e. ARPES) .. warning:: This package does NOT provide an explicit method to do an **analytic continuation** of the @@ -24,27 +24,27 @@ However, a real frequency self energy has to be provided by the user to use the Initialisation -------------- -All tools described below are collected in an extension of the :class:`SumkDFT` class and are -loaded by importing the module :class:`SumkDFTTools`:: +All tools described below are collected in an extension of the :class:`SumkDFT ` class and are +loaded by importing the module :class:`SumkDFTTools `:: from pytriqs.applications.dft.sumk_dft_tools import * -The initialisation of the class is equivalent to that of the :class:`SumkDFT` +The initialisation of the class is equivalent to that of the :class:`SumkDFT ` class:: SK = SumkDFTTools(hdf_file = filename + '.h5') -Note that all routines available in :class:`SumkDFT` are also available here. +Note that all routines available in :class:`SumkDFT ` are also available here. If required, we have to load and initialise the real frequency self energy. Most conveniently, -you have your self energy already stored as a real frequency :class:`BlockGf` object +you have your self energy already stored as a real frequency :class:`BlockGf ` object in a hdf5 file:: ar = HDFArchive('case.h5', 'a') SigmaReFreq = ar['dmft_output']['Sigma_w'] You may also have your self energy stored in text files. For this case we provide the function -:meth:`constr_Sigma_real_axis`, which loads the data and puts it into a real frequency :class:`BlockGf` object:: +:meth:`constr_Sigma_real_axis`, which loads the data and puts it into a real frequency :class:`BlockGf ` object:: from pytriqs.applications.dft.build_sigma_from_txt import * SigmaReFreq = constr_Sigma_real_axis(SK, filename, hdf=False, hdf_dataset='SigmaReFreq',n_om=0, orb=0) @@ -57,9 +57,8 @@ where: * `orb`: index of an inequivalent shell, * `n_om`: the number of points in the real-axis mesh (used only if `hdf=False`). - -It is important that some rules concerning the structure of the data is followed: - * Each data file should contain the three columns: real frequency, real part and imaginary part of the self-energy in exactly this order. +It is important that you follow some rules concerning the structure of your data files: + * Each data file should contain three columns: real frequency, real part and imaginary part of the self energy exactly in this order. * 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, where `(i)` and `(j)` are the zero based orbital indices, in the `filename_(block)` directory. @@ -74,6 +73,7 @@ and additionally set the chemical potential and the double counting correction f SK.set_dc(dc_imp,dc_energ) del ar +.. _dos_wannier: Density of states of the Wannier orbitals ----------------------------------------- @@ -92,9 +92,9 @@ the output is printed into the files * `DOS_wannier_(sp)_proj(i).dat`: The DOS projected to an orbital with index `(i)`. The index `(i)` refers to the indices given in ``SK.shells``. * `DOS_wannier_(sp)_proj(i)_(m)_(n).dat`: As above, but printed as orbitally-resolved matrix in indices - `(m)` and `(n)`. For `d` orbitals, it gives the DOS seperately for, e.g., :math:`d_{xy}`, :math:`d_{x^2-y^2}`, and so on, + `(m)` and `(n)`. For `d` orbitals, it gives the DOS separately for, e.g., :math:`d_{xy}`, :math:`d_{x^2-y^2}`, and so on, -otherwise, the ouptut is returend by the function for further use in python. +otherwise, the ouptput is returned by the function for a further usage in :program:`python`. Partial charges --------------- @@ -107,8 +107,8 @@ real frequency self energy for this purpose. The calculation is done by:: which calculates the partial charges using the self energy, double counting, and chemical potential as set in the `SK` object. On return, `dm` is a list, where the list items correspond to the density matrices of all shells -defined in the list `SK.shells`. This list is constructed by the Wien2k converter routines and stored automatically -in the hdf5 archive. For the detailed structure of `dm`, see the reference manual. +defined in the list `SK.shells`. This list is constructed by the :program:`Wien2k` converter routines and stored automatically +in the hdf5 archive. For the structure of `dm`, see also :meth:`reference manual `. Correlated spectral function (with real frequency self energy) -------------------------------------------------------------- @@ -119,7 +119,7 @@ we can execute:: SK.dos_parproj_basis(broadening=0.0, with_Sigma=True, with_dc=True, save_to_file=True) The variable `broadening` is an additional Lorentzian broadening (default: `0.01 eV`) applied to the resulting spectra. -The output is written in the same way as described above for Wannier density of states, but with file names +The output is written in the same way as described above for the :ref:`Wannier density of states `, but with filenames `DOS_parproj_*` instead. Momentum resolved spectral function (with real frequency self energy) @@ -127,12 +127,12 @@ Momentum resolved spectral function (with real frequency self energy) Another quantity of interest is the momentum-resolved spectral function, which can directly be compared to ARPES experiments. First we have to execute `lapw1`, `lapw2 -almd` and :program:`dmftproj` with the `-band` -option and use the :meth:`convert_bands_input()` routine to convert the required files. For a detailed description -see :ref:`conversion`. The spectral function is then calculated by:: +option and use the :meth:`convert_bands_input ` +routine, which converts the required files (for a more detailed description see :ref:`conversion`). The spectral function is then calculated by typing:: SK.spaghettis(broadening=0.01,plot_shift=0.0,plot_range=None,ishell=None,save_to_file='Akw_') -Optional parameters are +Here, optional parameters are * `shift`: An additional shift added as `(ik-1)*shift`, where `ik` is the index of the `k` point. This is useful for plotting purposes. The default value is 0.0. diff --git a/doc/guide/conversion.rst b/doc/guide/conversion.rst index 8757e440..e98261fa 100644 --- a/doc/guide/conversion.rst +++ b/doc/guide/conversion.rst @@ -105,7 +105,7 @@ directory name): Now we convert these files into an hdf5 file that can be used for the DMFT calculations. For this purpose we -use the python module :class:`Wien2kConverter`. It is initialised as:: +use the python module :class:`Wien2kConverter `. It is initialised as:: from pytriqs.applications.dft.converters.wien2k_converter import * Converter = Wien2kConverter(filename = case) @@ -133,8 +133,8 @@ After this step, all the necessary information for the DMFT loop is stored in the hdf5 archive, where the string variable `Converter.hdf_filename` gives the file name of the archive. -At this point you should use the method :meth:`dos_wannier_basis` -contained in the module :class:`SumkDFTTools` to check the density of +At this point you should use the method :meth:`dos_wannier_basis ` +contained in the module :class:`SumkDFTTools ` to check the density of states of the Wannier orbitals (see :ref:`analysis`). You have now everything for performing a DMFT calculation, and you can @@ -144,7 +144,7 @@ Data for post-processing """""""""""""""""""""""" In case you want to do post-processing of your data using the module -:class:`SumkDFTTools`, some more files +:class:`SumkDFTTools `, some more files have to be converted to the hdf5 archive. For instance, for calculating the partial density of states or partial charges consistent with the definition of :program:`Wien2k`, you have to invoke:: @@ -165,7 +165,7 @@ following. First, one has to do the Wien2k calculation on the given Again, maybe with the optional additional extra flags according to Wien2k. Now we use a routine of the converter module allows to read -and convert the input for :class:`SumkDFTTools`:: +and convert the input for :class:`SumkDFTTools `:: Converter.convert_bands_input() @@ -234,13 +234,13 @@ The interface packages are written such that all the file operations are done only on the master node. In general, the philosophy of the package is that whenever you read in something from the archive yourself, you have to *manually* broadcast it to the nodes. An -exception to this rule is when you use routines from :class:`SumkDFT` -or :class:`SumkDFTTools`, where the broadcasting is done for you. +exception to this rule is when you use routines from :class:`SumkDFT ` +or :class:`SumkDFTTools `, where the broadcasting is done for you. Interfaces to other packages ---------------------------- -Because of the modular structure, it is straight forward to extend the TRIQS package +Because of the modular structure, it is straight forward to extend the :ref:`TRIQS ` package in order to work with other band-structure codes. The only necessary requirement is that the interface module produces an hdf5 archive, that stores all the data in the specified form. For the details of what data is stored in detail, see the diff --git a/doc/guide/dftdmft_selfcons.rst b/doc/guide/dftdmft_selfcons.rst index 08f20133..952968f4 100644 --- a/doc/guide/dftdmft_selfcons.rst +++ b/doc/guide/dftdmft_selfcons.rst @@ -16,7 +16,7 @@ Wien2k + dmftproj In order to do charge self-consistent calculations, we have to tell the band structure program about the changes in the charge density due to correlation effects. In the following, we discuss how to use the -:program:`TRIQS` tools in combination with the :program:`Wien2k` program. +:ref:`TRIQS ` tools in combination with the :program:`Wien2k` program. We can use the DMFT script as introduced in section :ref:`singleshot`, with just a few simple diff --git a/doc/guide/dftdmft_singleshot.rst b/doc/guide/dftdmft_singleshot.rst index 37767256..f2cef4c6 100644 --- a/doc/guide/dftdmft_singleshot.rst +++ b/doc/guide/dftdmft_singleshot.rst @@ -14,7 +14,7 @@ Initialisation of the calculation --------------------------------- Before doing the calculation, we have to intialize all the objects that we will need. The first thing is the -:class:`SumkDFT` class. It contains all basic routines that are necessary to perform a summation in k-space +:class:`SumkDFT ` class. It contains all basic routines that are necessary to perform a summation in k-space to get the local quantities used in DMFT. It is initialized by:: from pytriqs.applications.dft.sumk_dft import * @@ -25,7 +25,7 @@ Setting up the impurity solver ------------------------------ The next step is to setup an impurity solver. There are different -solvers available within the TRIQS framework. Below, we will discuss +solvers available within the :ref:`TRIQS ` framework. Below, we will discuss the example of the hybridisation expansion :ref:`CTHYB solver `. Later on, we will see also the example of the Hubbard-I solver. They all have in common, @@ -62,7 +62,7 @@ iterations and the self-consistency condition:: SK.save(['chemical_potential','dc_imp','dc_energ']) # Save data in the hdf5 archive These basic steps are enough to set up the basic DMFT Loop. For a detailed -description of the :class:`SumkDFT` routines, see the reference +description of the :class:`SumkDFT ` routines, see the reference manual. After @@ -170,11 +170,11 @@ will be stored in a separate subgroup in the hdf5 file, called `dmft_output`. Removing this subgroup allows you to reset your calculation to the starting point easily. -Now we can use all this information to initialise the :class:`SumkDFT` class:: +Now we can use all this information to initialise the :class:`SumkDFT ` class:: SK = SumkDFT(hdf_file=dft_filename+'.h5',use_dft_blocks=use_blocks) -The next step is to initialise the :class:`Solver` class. It consist +The next step is to initialise the :class:`Solver ` class. It consist of two steps #. Calculating the multi-band interaction matrix, and setting up the diff --git a/doc/guide/full_tutorial.rst b/doc/guide/full_tutorial.rst index cc1b6720..300e2a3f 100644 --- a/doc/guide/full_tutorial.rst +++ b/doc/guide/full_tutorial.rst @@ -89,7 +89,7 @@ however there are also some differences. First difference is that we import the The Hubbard-I solver is very fast and we do not need to take into account the DFT block structure or use any approximation for the *U*-matrix. We load and convert the :program:`dmftproj` output and initialize the -:class:`SumkDFT` class as described in :ref:`conversion` and +:class:`SumkDFT ` class as described in :ref:`conversion` and :ref:`singleshot` and then set up the Hubbard-I solver :: S = Solver(beta = beta, l = l) @@ -206,7 +206,7 @@ symmetries:: Converter.convert_parpoj_input() To get access to analysing tools we initialize the -:class:`SumkDFTTools` class :: +:class:`SumkDFTTools ` class :: SK = SumkDFTTools(hdf_file=dft_filename+'.h5', use_dft_blocks=False)