A tool for calculating the general form of a k.p Hamiltonian under given symmetry constraints.


Returns the product basis of (kx, ky, kz), with monomials of the given degrees.

Parameters:degrees (int) – Degree of the monomials. Multiple degrees can be given, in which case the basis consists of the monomials of all given degrees.


>>> import kdotp_symmetry as kp
>>> kp.monomial_basis(*range(3))
[1, kx, ky, kz, kx**2, kx*ky, kx*kz, ky**2, ky*kz, kz**2]

Returns a basis of the hermitian matrices of size dim that is orthogonal w.r.t. the Frobenius scalar product.

Parameters:dim (int) – size of the matrices


>>> import kdotp_symmetry as kp
>>> kp.hermitian_basis(2)
[1, 0],
[0, 0]]), Matrix([
[0, 0],
[0, 1]]), Matrix([
[0, 1],
[1, 0]]), Matrix([
[0, -I],
[I,  0]])]
kdotp_symmetry.symmetric_hamiltonian(*symmetry_operations, expr_basis, repr_basis='auto', check_repr_basis=False)[source]

Calculates the basis of the symmetric Hamiltonian for a given set of symmetry operations.

  • symmetry_operations (symmetry_representation.SymmetryOperation) – The symmetry operations that the Hamiltonian should respect.
  • expr_basis (list of sympy expressions) – The basis for the \(\mathbf{k}\)-functions that are considered.
  • repr_basis (list of sympy matrices) – The basis for the hermitian matrices, with the same size as the representations. By default, the hermitian_basis() of the appropriate size is used.
  • check_repr_basis (bool) – Flag to enable explicitly checking the orthogonality of repr_basis.

Basis for the symmetric Hamiltonian, as a list of sympy matrix expressions.