• Aucun résultat trouvé

Renormalized Reaction-Cell method (RRC)

H.2.1

Principe

La RRC est une simulation directe avec une renormalisation de la taille des sites pour maintenir en moyenne un nombre de particules par site constant. Dès que le nombre de particules a diminué de moitié, on fusionne les sites deux à deux pour créer un nouveau réseau avec deux fois moins de sites. Il faut modifier le taux de saut en conséquence pour que la dynamique reste la même. Nous allons d’abord présenter cet algorithme pour le processus A + B → ∅ sans exclusion (on peut donc avoir autant de particules de même type par site), et nous traiterons le cas de l’exclusion dans la section suivante.

On note NA(t) le nombre de particules A au temps t et NB(t) celui de particules B. Par souci

de simplicité, on considère le cas où l’on a autant de particules de chaque type. On note alors

N(t) ≡ NA(t) = NB(t). Chaque particule saute sur un site voisin avec un taux γ. On commence

avec NA(0) = NB(0) = N0 particules de chaque type réparties aléatoirement sur le réseau, et on

itère la procédure suivante en partant de t = 0 et Nc= N0/2 :

1 Le taux de saut total étant r = 2γN, on incrémente le temps de ∆t = 1

r.

2 On sélectionne le site et le saut en utilisant le tower sampling [84]. On numérote les k sites contenant des particules et on note nile nombre de particules qu’ils contiennent avec

i∈ [[1, k]]. On construit la fonction cumulative C de façon récurrente en posant C(0) = 0 et C(j > 1) = C(j − 1) + 2nj. On tire ensuite un nombre aléatoire dans l’intervalle [0, 2N[,

qui va nous permettre de choisir le saut. Si le nombre aléatoire tombe dans l’intervalle [C(j − 1), C(j)[, alors le saut part du site j. La direction du saut est donnée par la parité de la partie entière du nombre aléatoire : s’il est pair, la particule saute vers la droite et s’il est impair, elle saute vers la gauche. On effectue alors le saut.

3 On vérifie s’il y a une réaction d’annihilation, et on la réalise le cas échéant, en n’oubliant pas de mettre à jour N(t).

4 Si N(t) 6 Nc, on renormalise le réseau, en fusionnant les sites deux à deux :

• Pour j ∈ [[1, L/2]], on fusionne les sites 2j et 2j + 1 ensemble en un nouveau site j qui contient nj+ nj+1particules et on effectue les réactions d’annihilation le cas échéant.

H.2. Renormalized Reaction-Cell method (RRC) 137

• On renormalise le taux de saut pour ne pas modifier la dynamique : γ ← γ/4. • On calcule le nouveau seuil : Nc← Nc/2.

5 On itère : retour à l’étape 1 .

Une alternative pour éviter le tower sampling de l’étape 2 est utilisée dans l’implémentation originale de ben-Avraham [209] et est décrite en détail dans [224]. Elle nécessite de connaître en permanence nmax = maxi ni et de considérer que chaque site occupé contient en réalité nmax

particules. À l’étape 1 , on doit donc remplacer r par r0 = 2γ n

maxNocc > r, où Nocc est le

nombre de sites non vides. De plus, tous les sites non vides ont le même taux d’activation. On choisit alors un site uniformément en tirant un nombre aléatoire p dans [1, Nocc+1[ et en prenant

sa partie entière. Le site dont une particule saute est ainsi donné par k = bpc. On tire ensuite un nombre aléatoire p0 dans [0,nk[ pour déterminer si une particule saute ou non. Si p0 < nk,

une particule saute effectivement alors que si p0 > nk, aucune particule ne saute. L’avantage

de cette méthode est qu’elle remplace le tower sampling, qui demande de rechercher dans quel intervalle tombe le nombre aléatoire et correspond donc O(Nocc) opérations, par un nombre fini

d’opérations. En revanche, elle nécessite de tirer un nombre aléatoire de plus et introduit du rejet dans l’algorithme. En effet, comme r0 > r, on tire des incréments de temps beaucoup plus petits,

dont un certain nombre ne conduisent pas à une modification de l’état du système.

Pour que l’algorithme réalise une évolution temporelle plus proche du processus markovien réel, il est possible, dans l’étape 1 , de remplacer l’incrément de temps en 1/r par une distribution exponentielle, qui est la vraie distribution des temps du processus :

P(∆t) = r e−r∆t. (H.2)

Nous avons essayé les deux, et n’avons pas noté d’écart notable pour la décroissance moyenne du nombre de particules. Nous avons donc utilisé la distribution des temps simplifiée en 1/r pour gagner en efficacité. Implémenter la distribution exponentielle est important pour les quantités sensibles à la distribution des temps de saut, ce qui est peut-être le cas des fluctuations du taux de décroissance de la densité.

H.2.2

Exclusion

Le cas avec exclusion est détaillé dans la section 2 de [211]. Avant la première renormalisation, on peut tenir compte de l’exclusion comme dans la méthode directe (étape 3 ) : si le site sur lequel une particule tente de sauter est déjà occupé par une particule du même type, le saut est rejeté. Tout se passe bien tant qu’on n’a pas eu de renormalisation du réseau. Une fois qu’on a divisé le nombre de sites par deux en les fusionnant deux à deux, on peut se retrouver avec deux particules par site, ce qui semble en contradiction avec l’exclusion. De plus, on est tenté de penser que les sites avec plus de particules ont plus de chance de voir une particule sauter. Ce n’est pas le cas, et en réalité les seules modifications qu’il faut introduire dans l’algorithme précédent pour qu’il soit correct sont :

• Interdire les sauts d’une particule de type donné vers un site contenant déjà une ou plusieurs particules du même type, ce qui revient à ajouter un test entre les étapes 2 et 3 et à rejeter le saut si besoin.

• Dans l’étape 1 , remplacer r par rexcl = 2γNocc, où Nocc est le nombre de sites occupés.

Cela peut sembler contre-intuitif vu que c’est équivalent à donner la même probabilité de départ à tous les sites occupés, indépendamment du nombre de particules qu’ils contiennent.

138 Annexe H. Simulation numérique du processusA+ B → ∅ 0 200 400 600 800 1000 Position 0.0000 0.0002 0.0004 0.0006 0.0008 0.0010 F r´equence des particules A 0 200 400 600 800 1000 Position 0.0000 0.0002 0.0004 0.0006 0.0008 0.0010 F r´equence des particules B

Figure H.1– Fréquence d’occupation des particules A et B à l’issue de l’initiation du réseau.

Ces histogrammes ont été tracés en initialisant 20 000 fois une chaîne de taille L = 210 avec

N0= 28particules de chaque type. On constate que la répartition est bien uniforme enA et

enB, sans effet de bords.

En réalité, du fait de l’exclusion, si un site contient plusieurs particules, on peut supposer que seule la particule la plus à droite peut sauter vers la droite et que seule la particule la plus à gauche peut sauter vers la gauche. Les autres particules sont empêchées de sortir du site par ces deux particules qui en bloquent les bords. On a donc bien finalement que deux sauts possibles pour chaque site occupé, un vers la droite avec un taux γ et un vers la gauche avec un taux γ, et le taux de saut total est bien rexcl= 2γNocc.

Documents relatifs