• Aucun résultat trouvé

Le th´eor`eme de r´egression quantique [135] est une g´en´eralisation quantique de l’hypo-th`ese de r´egression d’Onsager, qui affirme, en physique statistique, que pour un syst`eme `a l’´equilibre, la r´egression des fluctuations thermiques microscopiques suit la loi de relaxa-tion macroscopique de retour `a l’´equilibre pour de petites perturbarelaxa-tions [137,138]. En r´ealit´e, la bonne g´en´eralisation de l’hypoth`ese d’Onsager est le th´eor`eme de fluctuations-dissipations [139,140] et le th´eor`eme de r´egression quantique n’est valide que dans la limite de faible couplage `a l’environnement [141]. Je supposerai n´eanmoins ici que le couplage du syst`eme `a l’environnement est suffisamment faible pour que le th´eor`eme de r´egression quantique soit valide. En fait, les approximations sous lesquelles le th´eor`eme de r´egression quantique est obtenu sont les mˆemes qui permettent l’´ecriture d’une ´equation maˆıtresse pour le syst`eme. Ainsi, si l’´ecriture de l’´evolution du syst`eme sous forme d’une

´equation maˆıtresse est valide, le th´eor`eme de r´egression quantique l’est tout autant.

Pour ce th´eor`eme, on suppose que l’´equation maˆıtresse nous permet de calculer l’´equa-tion d’´evolul’´equa-tion des valeurs moyennes d’un ensemble ferm´e d’op´erateurs du syst`eme{Yi} selon

thYi(t)i=X

j

Gi,j(t)hYj(t)i, (3.65) o`u Gi,j(t) sont des op´erateurs qui ne d´ependent pas des Yi(t). Ainsi, en d’autres mots, on suppose que l’´evolution des op´erateurs Yi est donn´ee par un ensemble d’´equations lin´eaires, c’est-`a-dire qu’aucune ´equation n’implique de produits de hYii hYji ou de puis-sances dehYii. En pratique, l’ensemble d’op´erateursYi pourrait mˆeme ˆetre infini rendant l’hypoth`ese de d´epart tr`es g´en´erale. Si la condition ci-dessus est remplie, alors le th´eo-r`eme de r´egression quantique indique que l’on peut calculer l’´evolution des fonctions de corr´elation de deux op´erateurs selon

τhYi(t+τ)Yl(t)i=X

j

Gi,j(τ)hYj(t+τ)Yl(t)i. (3.66)

Ainsi, `a partir des mˆemes coefficients d´ecrivant l’´evolution des op´erateurs {Yi}, on peut

§3.3. Th´eor`eme de r´egression quantique 73 d´ecrire l’´evolution de leurs fonctions de corr´elation `a deux temps. J’utiliserai ce th´eor`eme afin de calculer les spectres S(ω) et S(ω) n´ecessaires pour ´eliminer adiabatiquement le r´esonateur.

74 Chapitre 3 : M´ethodes analytiques

Chapitre 4 SQUACK —

Sherbrooke QUantum pACKage

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

— Martin Fowler [142]

Alors que les outils en physique exp´erimentale sont principalement mat´eriels, les outils d’un th´eoricien proviennent des math´ematiques et des simulations num´eriques. Tel que l’indique ci-dessus Martin Fowler — un expert international en d´eveloppement logiciel et auteur de plusieurs livres sur le sujet — pour que les programmes de simulation soient utiles, ils doivent ˆetre compr´ehensibles et facilement utilisables non seulement par l’or-dinateur, mais aussi par les physiciens. En calcul scientifique, j’ajouterais qu’ils doivent ˆetre performants et, pour un domaine aussi jeune et dynamique que l’´electrodynamique quantique en circuit, ils doivent aussi ˆetre flexibles et facilement s’adapter pour simuler les nouveaux dispositifs fabriqu´es par les exp´erimentateurs. C’est avec ces trois carac-t´eristiques en tˆete — facilit´e d’utilisation, performance, et flexibilit´e — que j’ai cr´e´e le

«Sherbrooke QUantum pACKage» — SQUACK— en collaboration avec Steve Allen, du Centre de calcul scientifique de l’Universit´e de Sherbrooke et avec des contributions d’autres membres de notre groupe de recherche.

SQUACK est une librairie de calcul pens´ee et optimis´ee `a la base pour la simula-tion num´eriques de syst`emes en ´electrodynamique quantique en circuit, c’est-`a-dire de

75

76 Chapitre 4 : SQUACK— Sherbrooke QUantum pACKage syst`emes quantiques compos´es d’un nombre variable de syst`emes quantiques tels des sys-t`emes `a deux, trois ou plusieurs niveaux et des oscillateurs harmoniques. Il s’agit avant tout d’une librairie de matrices dont les op´erations ont ´et´e optimis´ees pour tenir compte des caract`eres creux ou dense, hermitique ou non et r´eel ou complexe de diff´erentes ma-trices apparaissant dans les ´equations maˆıtresses. Les op´erations les plus communes de notre domaine, en particulier le calcul d’un commutateur ou d’un dissipateur ont par exemple ´et´e optimis´ees afin d’ˆetre effectu´ees en une seule op´eration plutˆot qu’en plu-sieurs produits et sommes de matrices comme on doit faire si l’on utilise BLAS (Basic Linear Algebra Subprograms) [143], probablement la librairie la plus utilis´ee en calcul scientifique pour les op´erations matricielles denses. SQUACK a aussi ´et´e optimis´e pour pouvoir exploiter les architectures multi-processeurs des calculateurs r´ecents en utilisant une parall´elisation via OpenMP [144].

A quelques exceptions pr`es que j’ai programm´ees, les parties de code de haute perfor-` mance et les optimisations pointues ont ´et´e programm´ees par l’analyste de calcul Steve Allen. J’ai pour ma part r´ealis´e l’encapsulation de ce code en une architecture orient´ee objet facilitant la cr´eation de programmes pour simuler des syst`emes vari´es. SQUACK

´etant une librairie collaborative encore en d´eveloppement, ce chapitre ne se veut pas une documentation exhaustive, mais plutˆot une introduction aux fonctionnalit´es primaires que j’ai couramment utilis´ees pour obtenir les r´esultats num´eriques pr´esent´es dans cette th`ese. Pour une r´ef´erence plus `a jour, le lecteur peut se r´ef´erer `a l’article en pr´epara-tion [145] ou `a la documentapr´epara-tion qu’il est possible de g´en´erer directement `a partir du code source de la librairie en utilisant l’outil doxygen [146].

A la section 4.1, je pr´esente les simulations typiques que l’on veut r´ealiser, les d´e-` fis qu’elles pr´esentent, et les astuces que SQUACK utilise pour relever ces d´efis. `A la section 4.2, je d´ecris ensuite la structure de la librairie ainsi que les outils et librairies externes dont SQUACK d´epend. `A la section 4.3, je pr´esente les trois modules princi-paux de SQUACK : Matrix, System Factories, et Utilities. Finalement, `a la section 4.4, je donne quelques exemples de calculs simples `a r´ealiser avecSQUACK, appuy´es par des extraits de code.

4.1 Simulations typiques

Le point de d´epart d’une simulation typique en ´electrodynamique quantique en cir-cuit est l’´equation maˆıtresse d’un syst`eme. Une telle ´equation s’obtient tel que d´ecrit `a

§4.1. Simulations typiques 77 l’annexe B, en supposant que le syst`eme est coupl´e `a des bains d’oscillateurs harmoniques que l’on ´elimine en calculant la trace sur leurs degr´es de libert´e. Une ´equation maˆıtresse prend alors la forme g´en´erale

˙

ρ(t) = −iX

n

[Hn(t), ρ(t)] +X

m

γmD[Om]ρ(t)≡ L(t)ρ(t), (4.1) o`u Hn sont diff´erents hamiltoniens qui peuvent d´ependre du temps, Om sont des op´e-rateurs du syst`eme qui repr´esentent la dissipation `a des taux γm, et L(t) est le super-op´erateur de Lindblad. En utilisant cette ´equation, plusieurs questions peuvent alors ˆetre pos´ees. On peut par exemple calculer ρ(t) pour t ∈ [t0, tf] en int´egrant l’´equation maˆı-tresse `a l’aide de m´ethodes de type Runge-Kutta. Connaissantρ(t), on peut alors calculer la valeur moyenne de tout op´erateur selon

hAi(t) = Tr{Aρ(t)}, (4.2)

ou encore tout autre objet math´ematique tel que les fonctions d’espace de phase. Ces int´egrations temporelles sont le type principal de simulations que j’ai r´ealis´ees pour les r´esultats pr´esent´es dans ma th`ese. Notamment, pour obtenir les r´esultats num´eriques pr´esent´es au chapitre 6, j’ai int´egr´e l’´equation maˆıtresse Eq. (5.3) sur un temps suffisam-ment long pour ˆetre dans un ´etat stationnaire, puis extrait la population moyenne de l’´etat excit´e du qubit.

Le temps requis pour r´ealiser de telles simulations d´epend de plusieurs param`etres : la taille de l’espace d’Hilbert, le temps d’int´egration tf −t0 et la fr´equence des oscillations.

La taille de l’espace d’Hilbert du syst`eme est en principe infinie d`es que l’on consid`ere un oscillateur harmonique. En pratique, il sera tronqu´e `a un nombre de photons suffi-samment grand pour contenir la simulation en minimisant les erreurs. La taille r´eelle de l’espace d’Hilbert est alors dict´ee par le nombre de niveaux du ou des qubits, le nombre de qubits, le nombre de photons consid´er´es pour l’oscillateur harmonique et le nombre d’oscillateurs harmoniques. Typiquement, pour les simulations que j’ai r´ealis´ees, la taille de l’espace d’Hilbert variait entre 100 et 1000. Ceci repr´esente ainsi jusqu’`a un million (1000×1000) ´equations diff´erentielles complexes coupl´ees `a r´esoudre. Les deux autres param`etres — le temps d’int´egration et la fr´equence des oscillations — sont quant `a eux d´etermin´es par les fr´equences caract´eristiques du probl`eme. Typiquement, pour les exp´eriences d’´electrodynamique quantique en circuits, les fr´equences pertinentes vont de

78 Chapitre 4 : SQUACK— Sherbrooke QUantum pACKage ωLF ∼ 0.1 MHz `a ωHF ∼ 1 GHz. On peut donc s’attendre `a devoir int´egrer l’´equation diff´erentielle sur ωHFLF ∼ 104 p´eriodes d’oscillation si l’on d´esire atteindre l’´etat sta-tionnaire du syst`eme, chaque p´eriode requ´erant une centaine de pas d’int´egration. En terme de complexit´e — et si l’on n’exploite aucune sym´etrie des op´erateurs du syst`eme

— le temps d’une simulation augmente donc comme O(N3×(t0−tf)×ωHFLF), o`u N est la taille de l’espace d’Hilbert.

SQUACK intervient alors `a plusieurs niveaux pour faciliter les simulations. Tout d’abord, il permet de tirer profit des propri´et´es sp´ecifiques aux syst`emes simul´es. La premi`ere et la plus ´evidente de ces propri´et´es est que l’´equation maˆıtresse pr´eserve l’her-miticit´e de la matrice densit´e. Il est donc possible de diminuer la quantit´e de calcul par un facteur deux en ne calculant que l’une des moiti´es de la matrice densit´e. La deuxi`eme propri´et´e est que les op´erateurs Hn et Om ne sont pas des matrices compl`etement g´en´e-rales. Elles sont plutˆot, pour la plupart, des matrices tr`es creuses, constitu´ees d’au plus quelques diagonales. En optimisant les op´erations afin d’exploiter cette particularit´e, SQUACK est ainsi capable de r´eduire la puissance cubique (N3) associ´ee `a un produit de matrices denses `a une puissance quadratique (N2) associ´ee `a un produit entre une matrice creuse et une matrice dense.

Une autre optimisation queSQUACK fournit concerne sp´ecifiquement les oscillateurs harmoniques. Typiquement, il est n´ecessaire de conserver un nombre d’´etats de Fock bien sup´erieur `a l’´ecart-type ∆N de l’´etat du champ. Dans les cas o`uhNivarie grandement, la fa¸con la plus simple de simuler l’´evolution est alors de tronquer l’espace d’Hilbert de sorte que sa taille soit beaucoup plus grande que le maximum, sur la dur´ee de la simulation, de ∆N. Diff´erentes fonctions deSQUACK permettent plutˆot de redimensionner l’espace d’Hilbert au court de la simulation afin de l’adapter `a la taille des fluctuations du champs.

Ceci permet d’acc´el´erer grandement les calculs pour les parties de la simulation qui ne requi`erent pas un grand espace d’Hilbert.

Finalement, un dernier aspect o`u SQUACK intervient est pour l’´ecriture mˆeme des

´etats et des op´erateurs sous une forme matricielle. Le stockage de matrices sous forme creuse ou dense, hermitique ou g´en´erale, n’est pas une tˆache triviale, d’autant plus que les ´equations maˆıtresses simul´ees sont susceptibles de changer rapidement dans un do-maine aussi jeune (on pense par exemple `a l’ajout d’un qubit, le changement du type de qubit ou l’ajout d’un r´esonateur). Pour faciliter cette tˆache, SQUACK fournit un ensemble de classes qui permettent de construire la repr´esentation matricielle appropri´ee de n’importe quel op´erateur d’un oscillateur harmonique, d’un syst`eme `a deux, trois ou

§4.2. G´en´eralit´es 79