qdk_chemistry.data.qubit_hamiltonian module

QDK/Chemistry Qubit Hamiltonian module.

This module provides the QubitHamiltonian dataclass for electronic structure problems. It bridges fermionic Hamiltonians and quantum circuit construction or measurement workflows.

qdk_chemistry.data.qubit_hamiltonian.filter_and_group_pauli_ops_from_wavefunction(hamiltonian, wavefunction, abelian_grouping=True, trimming=True, trimming_tolerance=1e-8)[source]

Filter and group the Pauli operators respect to a given quantum state.

This function evaluates each Pauli term in the Hamiltonian with respect to the provided wavefunction:

  • Terms with zero expectation value are discarded.

  • Terms with expectation ±1 are treated as classical and their contribution is

    added to the energy at the end.

  • Remaining terms with fractional expectation values are retained and grouped by

    shared expectation value to reduce measurement redundancy (e.g., due to symmetry).

  • The rest of Hamiltonian is grouped into qubit wise commuting terms.

Parameters:
  • hamiltonian (QubitHamiltonian) – QubitHamiltonian to be filtered and grouped.

  • wavefunction (Wavefunction) – Wavefunction used to compute expectation values.

  • abelian_grouping (bool) – Whether to group into qubit-wise commuting subsets.

  • trimming (bool) – If True, discard or reduce terms with ±1 or 0 expectation value.

  • trimming_tolerance (float) – Numerical tolerance for determining zero or ±1 expectation (Default: 1e-8).

Returns:

A tuple of (list[QubitHamiltonian], list[float])
  • A list of grouped QubitHamiltonian.

  • A list of classical coefficients for terms that were reduced to classical contributions.

Return type:

tuple[list[QubitHamiltonian], list[float]]