3
0
mirror of https://github.com/triqs/dft_tools synced 2024-11-07 06:33:48 +01:00

[doc] restructured the h5structure.rst file

This commit is contained in:
Priyanka Seth 2015-03-11 17:41:39 +01:00
parent ae8437f559
commit 7342e954dd

View File

@ -13,50 +13,61 @@ In order to be used with the DMFT routines, the following data needs to be provi
:program:`Main data`: There needs to be one subgroup for the main data of the calculation. The default name of this group is `dft_input`. Its contents are :program:`Main data`: There needs to be one subgroup for the main data of the calculation. The default name of this group is `dft_input`. Its contents are
* `energy_unit`, numpy.float. The unit of energy used for the calculation ================= ====================================================================== =====================================================================================
Name Type Meaning
* `n_k`, numpy.int. The number of k-points used for the BZ integration. ================= ====================================================================== =====================================================================================
energy_unit numpy.float Unit of energy used for the calculation.
* `k_dep_projection`, numpy.int. If the dimension of the projection operators depend on the k-point, set to 1. Otherwise set to 0. n_k numpy.int Number of k-points used for the BZ integration.
k_dep_projection numpy.int 1 if the dimension of the projection operators depend on the k-point,
* `SP`, numpy.int. 0 for paramagnetic hamiltonian, 1 for spin polarised hamiltonian. 0 otherwise.
SP numpy.int 1 for spin-polarised Hamiltonian, 0 for paramagnetic Hamiltonian.
* `SO`, numpy.int. 1 if spin-orbit interaction is included, 0 otherwise. SO numpy.int 1 if spin-orbit interaction is included, 0 otherwise.
charge_below numpy.float Number of electrons in the crystal below the correlated orbitals.
* `charge_below`, numpy.float. The number of electrons in the crystal below the correlated orbitals. Note that this is for compatibility with dmftproj. Note that this is for compatibility with dmftproj.
density_required numpy.float Required total electron density. Needed to determine the chemical potential.
* `density_required`, numpy.float. Required total electron density, important for the determination of the chemical potential. The density within the projection window is then `density_required`-`charge_below`. The density in the projection window is then `density_required`-`charge_below`.
symm_op numpy.int 1 if symmetry operations are used for the BZ sums,
* `symm_op`, numpy.int. 1 if symmetry operations are used for the BZ sums, 0 if all k-points are directly included in the input. 0 if all k-points are directly included in the input.
n_shells numpy.int Number of atomic shells for which post-processing is possible.
* `n_shells`, numpy.int. Number of atomic shells for which post processing is possible. This is `not` the number of correlated orbitals! If you have two correlated atoms in the unit cell that are equivalent, `n_shells` is 2! Note: this is `not` the number of correlated orbitals!
If there are two equivalent atoms in the unit cell, `n_shells` is 2.
* `shells`, list of dictionaries {string:int}. List dimension: `n_shells`, dictionary dimension: 4. Information about the atomic shells. For each shell, we give a dict with keys ['atom', 'sort', 'l', 'dim']. atom is the atom index, sort defines the equivalency of the atoms. For instance, with two equivalent atoms in the unit cell, atom runs from 0 to 1, but sort can take only one value 0. l is the angular quantum number, and dim the dimension of the atomic shell. shells list of dict {string:int}, dim n_shells x 4 Atomic shell information.
For each shell, have a dict with keys ['atom', 'sort', 'l', 'dim'].
* `n_corr_shells`, numpy.int. Number of correlated atomic shells, for which correlations are included. This includes atoms which are equivalent by symmetry. If you have two correlated atoms in the unit cell that are equivalent, `n_corr_shells` is 2! 'atom' is the atom index, 'sort' defines the equivalency of the atoms,
'l' is the angular quantum number, 'dim' is the dimension of the atomic shell.
* `corr_shells`, list of dictionaries {string:int}. List dimension: `n_corr_shells`, dictionary dimension: 6. Information about the correlated orbitals. For each correlated shell, we give a dict with keys ['atom', 'sort', 'l', 'dim', 'SO', 'irep']. As for `shells`, atom is the atom index, sort defines the equivalency of the atoms. For instance, with two equivalent atoms in the unit cell, atom runs from 0 to 1, but sort can take only one value 0. l is the angular quantum number, and dim the dimension of the atomic shell. If spin-orbit is included in the calculation, SO is 1, otherwise 0. irep is a dummy integer, set to 0. e.g. for two equivalent atoms in the unit cell, `atom` runs from 0 to 1,
but `sort` can take only one value 0.
* `use_rotations`, numpy.int. If local and global coordinate systems are used, this falg is set to 1. Otherwise set to 0. n_corr_shells numpy.int Number of correlated atomic shells.
If there are two correlated equivalent atoms in the unit cell, `n_corr_shells` is 2.
* `rot_mat`, list of numpy.array.complex. If `use_rotations` is set, then this contains a list of the rotation matrices. You have to give a rotation matrix for each correlated atomic shell, i.e. the length of the list is `n_corr_shells`, the dimension of the matrices is given by the dimension of the atomic shell (c.f. `corr_shells`). You have to give at least the unity matrix, if no rotations are used! corr_shells list of dict {string:int}, dim n_corr_shells x 6 Correlated orbital information.
For each correlated shell, have a dict with keys
* `rot_mat_time_inv`, list of numpy.int, length `n_corr_shells`. This is needed only if `SP` is 1. For each correlated shell, set 1 if the coordinate transformation contains inversion, 0 otherwise. If no rotations are used, or `SP` is 0, give a list of zeros. ['atom', 'sort', 'l', 'dim', 'SO', 'irep'].
'atom' is the atom index, 'sort' defines the equivalency of the atoms,
* `n_reps`, numpy.int. Number of irreducible representation of the correlated shell. For instance, if you plan to use the t2g/eg splitting, then set it to 2. 'l' is the angular quantum number, 'dim' is the dimension of the atomic shell.
'SO' is one if spin-orbit is included, 0 otherwise, 'irep' is a dummy integer 0.
* `dim_reps`, list of numpy.int, length `n_reps`. Dimension of the representations. In above example, it is [2,3] for eg and t2g sub sets. use_rotations numpy.int 1 if local and global coordinate systems are used, 0 otherwise.
rot_mat list of numpy.array.complex, Rotation matrices for correlated shells, if `use_rotations`.
* `T`, list of numpy.array.complex. For each `inequivalent` correlated shell, this is a general transformation matrix from the spherical harmonics basis to the basis used for the impurity problem, which is most of the time the real cubic harmonics basis. This matrix is used to calculate the 4-index U matrix. dim n_corr_shells x [corr_shells['dim'],corr_shells['dim']] Set to the unity matrix if no rotations are used.
rot_mat_time_inv list of numpy.int, dim n_corr_shells If `SP` is 1, 1 if the coordinate transformation contains inversion, 0 otherwise.
* `n_orbitals`, numpy.array.int. Dimension [n_k, SP + 1 - SO]. It contains the number of Bloch bands that are included in the projection window for each k point. The second dimension is 1, unless doing spin-polarised DFT calculations without spin orbit coupling, where it is 2. In that case, the number of included bands might depend on the spin projection up/down. If `use_rotations` or `SP` is 0, give a list of zeros.
n_reps numpy.int Number of irreducible representations of the correlated shell.
* `proj_mat`, numpy.array.complex. Dimension [n_k, SP + 1 - SO, n_corr_shells, Max(corr_shell dimensions), Max(n_orbitals)]. This array contains the projection matrices from Bloch bands to Wannier orbitals, where the last two indices are the matrix indices. For efficient storage reasons, all the matrices have to be of the same size. For instance, if the number of Bloch bands has values 4, 5 and 6, all matrices are initialised with size 6. For the k-points with less bands, only the first entries are used, the rest is just zero. e.g. 2 if eg/t2g splitting is used.
dim_reps list of numpy.int, dim n_reps Dimension of the representations.
* `bz_weights`, numpy.array.float. A one-dimensional array of length n_k containing the weights of the k-points for the k summation. e.g. [2,3] for eg/t2g subsets.
T list of numpy.array.complex, Transformation matrix from the spherical harmonics to impurity problem basis
* `hopping`, numpy.array.complex. Dimension [n_k, SP + 1 - SO, Max(n_orbitals), Max(n_orbitals)]. This array contains the non-interacting Hamiltonian in matrix form at each k point. Again, similar to the projection matrices, all matrices have to be of the same size. dim n_inequiv_corr_shell x normally the real cubic harmonics).
[max(corr_shell['dim']),max(corr_shell['dim'])] This matrix is used to calculate the 4-index U matrix.
n_orbitals numpy.array.int, dim [n_k,SP+1-SO] Number of Bloch bands included in the projection window for each k-point.
If SP+1-SO=2, the number of included bands may depend on the spin projection up/down.
proj_mat numpy.array.complex, Projection matrices from Bloch bands to Wannier orbitals.
dim [n_k,SP+1-SO,n_corr_shells,max(corr_shell['dim']),max(n_orbitals)] For efficient storage reasons, all matrices must be of the same size
(given by last two indices).
For k-points with fewer bands, only the first entries are used, the rest are zero.
e.g. if number of Bloch bands ranges from 4-6, all matrices are of size 6.
bz_weights numpy.array.float, dim n_k Weights of the k-points for the k summation.
hopping numpy.array.complex, Non-interacting Hamiltonian matrix for each k point.
dim [n_k,SP+1-SO,max(n_orbitals),max(n_orbitals)] As for `proj_mat`, all matrices have to be of the same size.
================= ====================================================================== =====================================================================================
:program:`Symmetry operations`: In this subgroup we store all the data for applying the symmetry :program:`Symmetry operations`: In this subgroup we store all the data for applying the symmetry