dataclass#
- class jrystal.pseudopotential.dataclass.NormConservingPseudopotential(num_atom: int, positions: Float[Array, 'atom 3'], charges: Int[Array, 'atom'], atomic_symbols: List[str], valence_charges: List[int], r_grid: List[Float[Array, 'num_r']], r_ab: List[Float[Array, 'num_r']], r_cutoff: List[float], l_max: int, l_max_rho: int, local_potential_grid: List[Float[Array, 'num_r']], local_potential_charge: List[int], num_beta: List[int], nonlocal_beta_grid: List[Float[Array, 'num_beta num_r']], nonlocal_beta_cutoff_radius: List[List[float]], nonlocal_d_matrix: List[Float[Array, 'num_beta num_beta']], nonlocal_angular_momentum: List[List[int]], nonlocal_valence_configuration: List[List[dict]])[source]#
Norm Conserving Pseudopotential Container.
- positions#
Atom positions.
- Type:
np.ndarray
- charges#
Atom charges.
- Type:
np.ndarray
- r_grid#
r grid.
- Type:
List[np.ndarray]
- local_potential_grid#
Local potential grid.
- Type:
List[np.ndarray]
- nonlocal_beta_grid#
Nonlocal beta grid.
- Type:
List[np.ndarray]
- nonlocal_d_matrix#
Nonlocal d matrix.
- Type:
List[np.ndarray]
Warning
Unlike the original code in Quantum Espresso where the beta functions are multiplied by r. In our implementation, the beta functions are the original beta functions (dual basis for pseudo wave function) as defined in the literature.
- class jrystal.pseudopotential.dataclass.Pseudopotential(num_atom: int, positions: Float[Array, 'atom 3'], charges: Int[Array, 'atom'], atomic_symbols: List[str], valence_charges: List[int])[source]#
Pseudopotential container format.
- class jrystal.pseudopotential.dataclass.UltrasoftPseudopotential(num_atom: int, positions: Float[Array, 'atom 3'], charges: Int[Array, 'atom'], atomic_symbols: List[str], valence_charges: List[int], r_grid: List[Float[Array, 'num_r']], r_ab: List[Float[Array, 'num_r']], r_cutoff: List[float], l_max: int, l_max_rho: int, local_potential_grid: List[Float[Array, 'num_r']], local_potential_charge: List[int], num_beta: List[int], nonlocal_beta_grid: List[Float[Array, 'num_beta num_r']], nonlocal_beta_cutoff_radius: List[List[float]], nonlocal_d_matrix: List[Float[Array, 'num_beta num_beta']], nonlocal_angular_momentum: List[List[int]], nonlocal_valence_configuration: List[List[dict]], nonlocal_augmentation_q_matrix: List[ndarray], nonlocal_augmentation_qij: List[ndarray], nonlocal_augmentation_q_with_l: List[bool])[source]#
Ultrasoft Pseudopotential Container.
- positions#
Atom positions.
- Type:
np.ndarray
- charges#
Atom charges.
- Type:
np.ndarray
- r_grid#
r grid.
- Type:
List[np.ndarray]
- local_potential_grid#
Local potential grid.
- Type:
List[np.ndarray]
- nonlocal_beta_grid#
Nonlocal beta grid.
- Type:
List[np.ndarray]
- nonlocal_d_matrix#
Nonlocal d matrix.
- Type:
List[np.ndarray]
- nonlocal_q_matrix#
Nonlocal q matrix.
- Type:
List[np.ndarray]
- nonlocal_augmentation_qij#
Nonlocal augmentation charge.
- Type:
List[np.ndarray]
- Warning#
the shape of nonlocal_augmentation_qij depends on the value of
- `q_with_l` in the UPF file.
- If `q_with_l` is .True., `nonlocal_augmentation_qij` is an array of
- shape#
- Type:
num_q, num_q, l_max
- functions and `l_max` is the maximum angular momentum.
- If `q_with_l` is .False., the `nonlocal_augmentation_qij` is an array of
- shape#
- Type:
num_q, num_q, 1
- functions.