AJOUT DU CALCUL DE LA SUSCEPTIBILITÉ DE PAIRES DE TYPE D


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



1- Modifications apportées aux programmes 

    A- Fichier d'entrée trnf.dat 

  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.
 

2- Sous-routines auxiliaires 

  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.