Electronic Configuration File#
Introduction#
The electronic configuration file is an HDF5
file containing all the information about the electronic states in the target material. Available electronic states are shown below. These data must be kept inside the HDF5 folder specified, e.g., to add initial electronic states in the plane wave basis, put the data specified below in the, init/bloch/PW_basis/
folder inside the HDF5 file.
Warning
Fortran
is a column-major language, which affects reading/writing of multi-dimensional datasets with HDF5. For example, for an \(n \times m\) matrix to be read in to Fortran
, it must be saved as an \(m \times n\) matrix if the language creating the HDF5 file is row-major (e.g., python
).
Electronic State Approximations#
Bloch States#
bloch/PW_basis
: Plane Wave (PW) basis#
Equations
config
G_list_red
- List of \(\mathbf{G}\) vectors, in reduced coordinates, the Fourier components of the Bloch wave functions, \(\widetilde{u}_\mathbf{G}\), are computed for.Dim: [\(N_\mathbf{G}\), 3]
state_info
Zeff_list
- List of \(Z_\text{eff}\) parameters for each state. Only used when transitioning to abloch/single_PW
state.Dim: [\(N\)]
energy_list
- Energy, \(\omega\), of each state.Units: \(\text{eV}\)
Dim: [\(N\)]
i_list
- Band index, \(i\), of each state.Dim: [\(N\)]
jac_list
- List of jacobians, \(j_I\), of discretized state sum. Let \(N'\) be the exact number of initial states. Therefore, in theory, to sum over the states one applies \((1/N') \sum_{I'}\). However in practice \(N'\) is usually very, very large, and the sum must be discretized, \((1/N') \sum_{I'} \rightarrow \sum_I j_I\) and this array contains that jacobian for each state.Dim: [\(N\)]
k_id_list
- The \(\mathbf{k}\) index of each state, i.e., \(i\) if the \(\mathbf{k}\) vectors are indexed by \(i\).Dim: [\(N\)]
k_vec_red_list
- \(\mathbf{k}\) vectors for each state in reduced coordinates.Dim: [\(N\), 3]
u_FT_c
n_<n>
- Imaginary part of \(\widetilde{u}_\mathbf{G}\) for the state<n>
, \(1 \leq \langle n \rangle \leq N\). Spin components can be specified by increasing the second dimension of this dataset to 2, i.e., \(N_s = 2\).Dim: [\(N_\mathbf{G}\), \(N_s\)]
u_FT_r
n_<n>
- Real part of \(\widetilde{u}_\mathbf{G}\) for the state<n>
, \(1 \leq \langle n \rangle \leq N\). Spin components can be specified by increasing the second dimension of this dataset to 2, i.e., \(N_s = 2\).Dim: [\(N_\mathbf{G}\), \(N_s\)]
bloch/STO_basis
: Slater Type Orbital (STO) basis#
Equations
config
n_r_vec_grid
- Number of \(\mathbf{r}\) vectors to keep in each direction. For example,n_r_vec_grid = [3, 3, 3]
keeps all \(\mathbf{r} \in \{ r_1, r, 2, r_3\}, -1 \leq r_i \leq 1\).Dim: [3]
n_x_grid
- Number of \(\mathbf{x}\) points in the unit cell to compute the wave functions for (in each direction). \(\begin{align} \mathbf{x}_{ijk} = \{ \frac{i - 1}{N_1}, \frac{j - 1}{N_2}, \frac{k - 1}{N_3} \} \end{align}\) in reduced coordinates.Dim: [3]
state_info
Zeff_list
- List of \(Z_\text{eff}\) parameters for each state. Only used when transitioning to abloch/single_PW
state.Dim: [\(N\)]
energy_list
- Energy, \(\omega\), of each state.Units: \(\text{eV}\)
Dim: [\(N\)]
i_list
- Band index, \(i\), of each state.Dim: [\(N\)]
jac_list
- List of jacobians, \(j_I\), of discretized state sum. Let \(N'\) be the exact number of initial states. Therefore, in theory, to sum over the states one applies \((1/N') \sum_{I'}\). However in practice \(N'\) is usually very, very large, and the sum must be discretized, \((1/N') \sum_{I'} \rightarrow \sum_I j_I\) and this array contains that jacobian for each state.Dim: [\(N\)]
k_id_list
- The \(\mathbf{k}\) index of each state, i.e., \(i\) if the \(\mathbf{k}\) vectors are indexed by \(i\).Dim: [\(N\)]
k_vec_red_list
- \(\mathbf{k}\) vectors for each state in reduced coordinates.Dim: [\(N\), 3]
coeff_list
- Collection of STO coefficients for each state. Each state is represented by 4 length \(N_j\) vectors, \(\{ \mathbf{n}, \mathbf{Z}, \mathbf{N}, \mathbf{C} \}\). The \(\mathbf{n}\) coefficients for the nth state are stored in [n, :, 1]. The \(\mathbf{Z}\) coefficients for the nth state are stored in [n, :, 2]. The \(\mathbf{N}\) coefficients for the nth state are stored in [n, :, 3]. The \(\mathbf{C}\) coefficients for the nth state are stored in [n, :, 4].Dim: [\(N\), \(N_j\), 4]
eq_pos_red_list
- Equilibrium position (in reduced coordinates) of the ion each state is associated with.Dim: [\(N\), 3]
nj_list
- Number of expansion coefficients for each state.Dim: [\(N\)]
nlm_list
- \(n, \ell, m\) quantum numbers of each state, stored in that order.Dim: [\(N\), 3]
bloch/single_PW
: Single PW#
Equations
config
n_x_grid
- Number of \(\mathbf{x}\) points in the unit cell to compute the wave functions for (in each direction). \(\begin{align} \mathbf{x}_{ijk} = \{ \frac{i - 1}{N_1}, \frac{j - 1}{N_2}, \frac{k - 1}{N_3} \} \end{align}\) in reduced coordinates.Dim: [3]
state_info
Zeff_list
- List of \(Z_\text{eff}\) parameters for each state. Only used when transitioning to abloch/single_PW
state.Dim: [\(N\)]
energy_list
- Energy, \(\omega\), of each state.Units: \(\text{eV}\)
Dim: [\(N\)]
i_list
- Band index, \(i\), of each state.Dim: [\(N\)]
jac_list
- List of jacobians, \(j_I\), of discretized state sum. Let \(N'\) be the exact number of initial states. Therefore, in theory, to sum over the states one applies \((1/N') \sum_{I'}\). However in practice \(N'\) is usually very, very large, and the sum must be discretized, \((1/N') \sum_{I'} \rightarrow \sum_I j_I\) and this array contains that jacobian for each state.Dim: [\(N\)]
k_id_list
- The \(\mathbf{k}\) index of each state, i.e., \(i\) if the \(\mathbf{k}\) vectors are indexed by \(i\).Dim: [\(N\)]
p_vec_list
- List of \(\mathbf{p}\) vectors for each state.Dim: [\(N\), 3]