Conditions d'utilisation de l'opérateur
L'API C propose diverses fonctions permettant d'intervenir sur les termes individuels d'un opérateur, en les répartissant en fonction de leur structure.
Regroupement
Reportez-vous à la documentation relative aux opérateurs de groupe : consultez la structure des opérateurs pour obtenir une explication détaillée des fonctionnalités de ce module.
Affectation
Plutôt que de toujours compter sur l'utilisateur pour fournir lui-même les indices de groupe, l'API C propose un ensemble de fonctions qui déterminent automatiquement les informations de regroupement.
Chronique « 1 » | Chronique « 2 » |
|---|---|
qf_ferm_op_group_terms_by_electronic_structure() | Regroupe les termes d'un opérateur en fonction de leur structure électronique. |
Analyse
Les indices de groupe n'ont aucune signification intrinsèque : ils indiquent simplement quels termes vont ensemble, sans jamais expliquer pourquoi. Par conséquent, aucune fonction ne permet de déterminer si un regroupement est « correct ». L'API C propose en revanche un ensemble de fonctions qui répondent chacune à une question précise et bien définie concernant un regroupement existant, ce qui permet de vérifier dès le départ une hypothèse formulée par un utilisateur en aval, plutôt que de devoir en payer le prix à chaque appel. Comme elles utilisent des représentations d'opérateurs génériques, elles sont décrites sur la page consacrée aux fonctions de regroupement.
Filtrage
L'API C fournit un ensemble de fonctions permettant de supprimer d'un opérateur les termes qui ne contribuent pas de manière significative au calcul en aval.
Membres
Chronique « 1 » | Chronique « 2 » |
|---|---|
qf_ferm_op_filter_diagonal_terms() | Élimine les termes d'un opérateur qui sont diagonaux. |
Ordre
L'API C fournit des fonctions permettant de réorganiser les termes d'un opérateur, soit selon un ordre canonique indépendant des coefficients, soit en fonction de l'indice de groupe.
Les indices de groupe sont des balises attribuées à chaque terme qui ne donnent aucune indication sur l'emplacement de ces termes; ainsi, les termes d'un même groupe sont généralement dispersés dans l'ensemble d'un opérateur. Le tri par groupe regroupe tous les éléments d'un même groupe en une séquence contiguë, ce qui permet de localiser qf_op_type_split_out_groups un groupe demandé par recherche binaire plutôt que de parcourir chaque terme.
Membres
Chronique « 1 » | Chronique « 2 » |
|---|---|
qf_ferm_op_canonical_order() | Réorganise de manière canonique l'ordre des termes d'un opérateur fermionique. |
qf_maj_op_canonical_order() | Réorganise les termes d'un opérateur de Majorana selon l'ordre canonique. |
qf_edge_op_canonical_order() | Réorganise de manière canonique l'ordre des termes d'un opérateur « arête-sommet ». |
qf_transfer_op_canonical_order() | Réorganise de manière canonique l'ordre des termes d'un opérateur de transfert de sommets. |
qf_ferm_op_group_order() | Réorganise les termes d'un opérateur fermionique en fonction de l'indice de groupe. |
qf_maj_op_group_order() | Réorganise les termes d'un opérateur de Majorana en fonction de l'indice de groupe. |
qf_edge_op_group_order() | Réorganise les termes d'un opérateur arête-sommet en fonction de l'indice de groupe. |
qf_transfer_op_group_order() | Réorganise les termes d'un opérateur de transfert de sommet en fonction de l'indice de groupe. |