Skip to main content
IBM Quantum Platform

Fonctions de filtrage

qf_ferm_op_filter_diagonal_terms

void qf_ferm_op_filter_diagonal_terms(QfFermionOperator *op)

Élimine les termes d'un opérateur qui sont diagonaux dans la base des nombres d'occupation.

Cette opération supprime tous les termes de l'expression fournie qui QfFermionOperator sont des produits d'opérateurs numériques ( aiaia^\dagger_i a_i ). Cela inclut le terme constant (un produit d'opérateurs numériques nuls), les opérateurs numériques simples, ainsi que les produits d'ordre supérieur tels que ninj=aiajajain_i n_j = a^\dagger_i a^\dagger_j a_j a_i.

Conseil

L'une des principales raisons justifiant le filtrage de ces termes apparaît dans le cadre de l'évolution temporelle des opérateurs, où ces termes diagonaux n'influencent pas cette évolution, si ce n'est en introduisant une phase globale. Par conséquent, les chaînes de bits échantillonnées à partir d’un état ayant évolué dans le temps ne sont pas affectées. Il est donc recommandé de les supprimer, par exemple lors de la préparation d’un hamiltonien de structure électronique pour l’évolution temporelle de l’ qDRIFT, tel qu’utilisé par SqDRIFT,, car cela permet d’éviter une charge d’échantillonnage qui serait autrement inutile.

Attention

L'opérateur fourni doit être ordonné selon l'ordre normal! Il s'agit d'une hypothèse sous-jacente de la mise en œuvre qui n'est pas vérifiée! Voir qf_ferm_op_normal_ordered() pour savoir comment obtenir un opérateur de cette forme.

1QfFCIDump *fcidump = qf_fcidump_from_file("molecule.fcidump");
2QfFermionOperator *op = qf_ferm_op_from_fcidump(fcidump);
3
4QfFermionOperator *normal = qf_ferm_op_normal_ordered(op, NULL);
5
6qf_ferm_op_filter_diagonal_terms(normal);
Remarque

L'opérateur est modifié directement. S'il suit des indices de groupe (voir qf_ferm_op_get_groups()), les termes restants conservent leur regroupement relatif, mais les indices de groupe sont réattribués à une plage contiguë commençant à 0. Vous ne devez donc pas partir du principe que l'index de groupe spécifique d'un terme quelconque est conservé lors d'un appel à cette fonction.

Paramètres

  • op – Un pointeur vers l'opérateur fermionique ordonné normalement dont les termes doivent être filtrés (modifiés in situ).
Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.