Table des matières
1- Modifications apportées aux programmes
A- Fichier d'entrée
trnf.dat
B- Programme de simulation
MCQ
C- Programmes de moyennage
et de prolongement analytique
2- Sous-routines auxiliaires
Nous pouvons maintenant calculer les corrélations de paires dynamiques de type s (sous-routine SUSCEPI) ainsi que de type d (SUSCEPI_D). À partir de ces résultats, le programme peut calculer les susceptibilités de paires, à l'aide de la sous-routine SUMSUSCEP. Veuillez prendre note que les calculs pour les susceptibilité de paires de type s et d sont fait indépendamment malgré le fait qu'on utilise la même sous-routine. C'est pourquoi le fichier d'entrée trnf.dat a maintenant l'allure suivante:
n
= Int. sur tau suscep paire dyn. type s (qx,qy) SUMSUS. 6
y
= Int. sur tau suscep paire dyn. type d (qx,qy) SUMSUS. 7
y
= Suscep. de paire dynamique type s (tau,qx,qy) SUSCEPI 8
y
= Suscep. de paire dynamique type d (tau,qx,qy) SUSCEPI_D9
Pour ce choix d'options de calcul, on aura donc le calcul des corrélations de paires dynamiques (appellées ici "Suscep. de paire dynamique") pour les types s et d, mais le calcul de la susceptibilité de paires (appellée ici "Int. sur tau suscep paire dyn.") uniquement pour le type d.
B- Programme de simulation MCQ
L'insertion d'une nouvelle quantité à mesurer perturbe plusieurs parties du programme de simulations MCQ. Voici les modifications que nous avons du effectuer lors de l'ajout de la sous-routine SUSCEPI_D et de l'intégrale sur tau des résultats obtenus par cette sous-routine (appel de SUMSUSCEP).
i) sous-routine
ENTREE : -la commande LIEN(1)=1
n'était effectué que si on calculait SUSCEPI; elle sera désormais
effectuée si on calcule SUSCEPI ou SUSCEPI_D
-si l'usager demandait le calcul de SUMSUSCEP sans le calcul de SUSCEPI,
il y avait un message d'erreur; dorénavant, si l'usager demande
le calcul de SUMSUSCEP pour le type s sans SUSCEPI et/ou le calcul de SUMSUSCEP
pour le type d sans SUSCEPI_D, il y aura un (ou des) message(s) d'erreur
ii) sous-routine
INITGRN : -la variable NTIG désigne
le nombre de fonctions à temps inégal qui ne nécessite
que l'évaluation de GICALS et était donc égale à
1 (SUSCEPI); dorénavant, elle est égale à 2 (SUSCEPI
et SUSCEPI_D)
iii) sous-routine
MESURE : -nous avons inséré l'appel
conditionnel de SUSCEPI_D immédiatement après l'appel conditionnel
de SUSCEPI
-nous avons inséré l'appel conditionnel de SUMSUSCEP pour
le type d immédiatement après l'appel conditionnel de SUMSUSCEP
pour le type s
iv) sous-routine SORTIE1 : -nous avons modifié le SELECT CASE pour qu'il y ait impression du nom des deux nouvelles possibilités de calcul (SUSCEPI_D et SUMSUSCEP pour le type d)
v) sous-routine SORTIE2 : -nous avons ajouté l'impression conditionnelle des résultats de SUMSUSCEP pour le type d immédiatement après l'impression conditionnelle des résultats de SUMSUSCEP pour le type s
vi) sous-routine SORTIE3 : -nous avons ajouté l'impression conditionnelle des résultats de SUSCEPI_D immédiatement après l'impression conditionnelle des résultats de SUSCEPI
C- Programmes de moyennage et de prolongement analytique
Le programme de prolongement analytique n'a pas
nécessité de modifications suites à l'ajout de SUSCEPI_D
et de SUMSUSCEP pour le type d. Le programme de moyennage, quant
à lui, à seulement nécessité une modification
analogue à celle effectuée dans la sous-routine SORTIE1 du
programme de simulations MCQ.
La difficulté majeure de l'évaluation des corrélations de paires dynamiques de type d provient de l'identification des quatre premiers voisins d'un site quelconque dont on connaît le numéro global (qui varie de 1 à NM). En effet (voir l'équation (6) de la présentation générale [fichier postscript] [fichier pdf] ), le calcul de cette quantité fait intervenir des produits du type :
Gup(i,j)*Gdn(i+x,j-y)
où G sont les matrices NM par NM représentant les fonctions de Green à temps inégal et "i+x" signifie le premier voisin selon les x positifs de i, "j-y" le premier voisin selon les y négatifs de j. Nous avons donc créé la sous-routine PREM_VOISINS qui fournit le numéro global des quatres premiers voisins d'un site quelconque. Voici le principe de fonctionnement de cette sous-routine:
1- On détermine les coordonnées (x,y) du site global à l'aide des tableaux CHI et COLI définis dans la sous-routine INIT_LOC; COLI(i) donne la coordonnée x du site global i et CHI(i) donne la coordonnée y du site global i
2- La variable DIR indique si l'on cherche le premier voisin selon x (DIR=0) ou y (DIR=2); la variable SENS indique si on se déplace dans la direction positive (SENS=1) ou négative (SENS= -1).
3- Dépendamment du premier voisin que l'on cherche, on incrémente ou décrémente x ou y. Il faut bien sûr tenir compte des conditions frontières. Par exemple, si x=N, alors x+1=1 (on a N sites selon x). De même, si y=1, alors y-1=M (on a M sites selon y).
4- Finalement, on appelle la sous-routine NUM_GLOBALE qui retourne le numéro global du site correspondant aux coordonnées x et y du premier voisin auquel on s'intéresse. Cette sous-routine effectue l'opération suivante fournit le numéro global selon l'équation suivante: #global = (y-1)*N +x
car les sites sont numérotés globalement
de la façon suivante: (x,y)==> #global
(1,1)==> 1
(2,1)==> 2
(N,1)==> N
(1,2)==> N+1
(N,2)==> 2N
(N,M)==> NM
dans la sous-routine INIT_LOC. Cliquez ici pour voir la sous-routine PREM_VOISINS.