qrunch.quantum.operators.second_quantization.hardcore_boson

Module that contains the abstract hardcore boson operators \(\hat{b}\) and \(\hat{b}^\dagger\).

A general second quantized hardcore bosonic Hamiltonian operator can be expressed as a combination of these fundamental operators through addition and multiplication, applied to specific qubits.

Example
from qrunch.quantum.operators.boson import HardCoreBosonCreation, HardCoreBosonAnnihilation

Obs = 0.5 * HardCoreBosonCreation(1) * HardCoreBosonAnnihilation(1)
- 0.7 * HardCoreBosonCreation(1) * HardCoreBosonCreation(2)
* HardCoreBosonAnnihilation(3) * HardCoreBosonAnnihilation(4)

A Hamiltonian like this can then be mapped to Pauli operators (which can be used in e.g. estimators), by using e.g. the Jordan-Wigner mapper.

The hardcore boson annihilation operator, \((\hat{b}_p)\), and creation operator, \((\hat{b}_p^\dagger)\), describe the annihilation and creation of a boson at a given site. They are defined by the following commutation relations:

\[\begin{split}[\hat{b}_p, \hat{b}_q^\dagger] &= 0 \quad \text{for} \quad p \neq q \\ [\hat{b}_p^\dagger, \hat{b}_q^\dagger] &= 0 \\ [\hat{b}_p, \hat{b}_q] &= 0 \\ [\hat{b}_p, \hat{b}_p^\dagger] &= 1 - 2 \hat{b}_p^\dagger \hat{b}_p \\\end{split}\]

These operators allow for a paired-electron approximation, facilitating efficient simulations on quantum computers.

Reference: https://arxiv.org/abs/2002.00035.

Classes

PairedHardcoreBosonAnnihilation

Boson annihilation operator acting on a specific site.

PairedHardcoreBosonCreation

Boson creation operator acting on a specific site.

class PairedHardcoreBosonAnnihilation

Bases: PairedHardcoreBosonOperator

Boson annihilation operator acting on a specific site.

__init__(site: AbstractIndex | int) None

Initialize the boson operator on a specific site.

Parameters:

site (AbstractIndex | int) – The site to act upon.

Return type:

None

get_indices() tuple[AbstractIndex | int]

Get indices of the operator.

Return type:

tuple[AbstractIndex | int]

property site: AbstractIndex | int

The site the operator acts on.

with_indices(index_value_pairs: IndexValuePairs) PairedHardcoreBosonOperator

Create a new copy of the operator with the AbstractIndex set to the given value.

Parameters:

index_value_pairs (IndexValuePairs) – Map of abstract indices to concrete values.

Return type:

PairedHardcoreBosonOperator

class PairedHardcoreBosonCreation

Bases: PairedHardcoreBosonOperator

Boson creation operator acting on a specific site.

__init__(site: AbstractIndex | int) None

Initialize the boson operator on a specific site.

Parameters:

site (AbstractIndex | int) – The site to act upon.

Return type:

None

get_indices() tuple[AbstractIndex | int]

Get indices of the operator.

Return type:

tuple[AbstractIndex | int]

property site: AbstractIndex | int

The site the operator acts on.

with_indices(index_value_pairs: IndexValuePairs) PairedHardcoreBosonOperator

Create a new copy of the operator with the AbstractIndex set to the given value.

Parameters:

index_value_pairs (IndexValuePairs) – Map of abstract indices to concrete values.

Return type:

PairedHardcoreBosonOperator

Modules

operator_base

Base class for all fermion operators, which define internal logic.

sums

A compact representation of a hard-core bosonic operator consisting only of single and double excitations.