/*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N S D U M O D E L E D E L A S T R U C T U R E */ /* D Y N A M I Q U E D U " D I - E L E C T R O N " : */ /* */ /* */ /* Author of '$xrq/di_elec.LM$I' : */ /* */ /* Jean-Francois Colonna (LACTAMME, 1994??????????). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* C H R O N O M E T R A G E D E L A S I M U L A T I O N : */ /* */ /*************************************************************************************************************************************/ #include xrk/rdn_walk.54.I" /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* S I M U L A T I O N D E L A S T R U C T U R E D Y N A M I Q U E D U " D I - E L E C T R O N " : */ /* */ /*************************************************************************************************************************************/ #define ___SIMULATION_DE_LA_STRUCTURE_DYNAMIQUE_D_UN_DI_ELECTRON \ Bblock \ Komp(numero_de_la_periode_courante_de_la_simulation,nombre_de_periodes_de_la_simulation) \ Bblock \ Test(IL_FAUT(chronometrer_la_simulation)) \ Bblock \ CAL2(Prin1("\n CHRONOMETRAGE DE LA PERIODE %d\n",numero_de_la_periode_courante_de_la_simulation)); \ Eblock \ ATes \ Bblock \ Eblock \ ETes \ \ RE_INITIALISATION_DE_LA_SYNTHESE_D_IMAGE; \ /* Initialisation de la synthese d'image systematique pour chaque nouvelle image... */ \ CHANGEMENT_DU_POINT_DE_VUE; \ /* Positionnement de l'observateur ; mais ATTENTION, cette sequence ne peut etre placee */ \ /* dans 'RE_INITIALISATION_DE_LA_SYNTHESE_D_IMAGE', car en effet, elle est contenue dans */ \ /* la sequence 'FIN_D_INITIALISATION_DE_LA_SYNTHESE_D_IMAGE' qui est referencee avant */ \ /* l'appel a 'SIMULATION_DE_LA_STRUCTURE_DYNAMIQUE_D_UN_DI_ELECTRON' ; ce qui fait qu'avant */ \ /* la premiere image, on ferait par exemple le produit de deux rotations. On notera le fait */ \ /* que 'GESTION_DE_LA_SOURCE_LUMINEUSE' est appele dans 'CHANGEMENT_DU_POINT_DE_VUE' apres */ \ /* le zoom, mais avant la rotation, et ce afin que la source lumineuse reste immobile au */ \ /* niveau orientation par rapport a l'observateur (sinon, elle risquerait de se retrouver */ \ /* derriere le "di-electron"...). */ \ \ Test(IFNE(numero_de_la_periode_courante_de_la_simulation,PREMIERE_ITERATION_D_UN_Komp)) \ Bblock \ CHRONOMETRAGE_DE_LA_SIMULATION("EVENEMENTS COLLISIONNELS POUR LES PARTICULES" \ ,BLOC(EVENEMENTS_COLLISIONNELS_POUR_LES_PARTICULES;) \ ); \ /* Evenements collisionnels pour l'ensemble des particules presentes dans le "di-electron", */ \ /* et correspondant, par exemple, a ce que j'appelerai, des collisions... */ \ CHRONOMETRAGE_DE_LA_SIMULATION("EVENEMENTS CONDITIONNELS POUR CERTAINS ELECTRONS" \ ,BLOC(EVENEMENTS_CONDITIONNELS_POUR_CERTAINS_ELECTRONS;) \ ); \ /* Evenements conditionnels pour quelques uns des quarks presents dans le "di-electron" */ \ /* (REELs ou VIRTUELs). */ \ CHRONOMETRAGE_DE_LA_SIMULATION("EVENEMENTS CONDITIONNELS POUR CERTAINS ANTI-ELECTRONS" \ ,BLOC(EVENEMENTS_CONDITIONNELS_POUR_CERTAINS_ANTI_ELECTRONS;) \ ); \ /* Evenements conditionnels pour quelques uns des anti-quarks presents dans le "di-electron" */ \ /* (REELs ou VIRTUELs). */ \ CHRONOMETRAGE_DE_LA_SIMULATION("EVENEMENTS CONDITIONNELS POUR CERTAINS NEUTRINOS" \ ,BLOC(EVENEMENTS_CONDITIONNELS_POUR_CERTAINS_NEUTRINOS;) \ ); \ /* Evenements conditionnels pour quelques uns des neutrinos presents dans le "di-electron". */ \ CHRONOMETRAGE_DE_LA_SIMULATION("EVENEMENTS CONDITIONNELS POUR CERTAINS PHOTONS" \ ,BLOC(EVENEMENTS_CONDITIONNELS_POUR_CERTAINS_PHOTONS;) \ ); \ /* Evenements conditionnels pour quelques uns des photons presents dans le "di-electron". */ \ CHRONOMETRAGE_DE_LA_SIMULATION("EVENEMENTS CONDITIONNELS POUR CERTAINS Z0S" \ ,BLOC(EVENEMENTS_CONDITIONNELS_POUR_CERTAINS_Z0S;) \ ); \ /* Evenements conditionnels pour quelques uns des Z0 presents dans le "di-electron". */ \ CHRONOMETRAGE_DE_LA_SIMULATION("FLUCTUATIONS QUANTIQUES DU VIDE" \ ,BLOC(FLUCTUATIONS_QUANTIQUES_DU_VIDE;) \ ); \ /* Fluctuations quantiques du vide... */ \ Eblock \ ATes \ Bblock \ /* La premiere periode ne sert qu'a visualiser l'etat initial... */ \ Eblock \ ETes \ \ CHRONOMETRAGE_DE_LA_SIMULATION("VISUALISATION DE L'ENSEMBLE DES ELECTRONS" \ ,BLOC(VISUALISATION_DE_L_ENSEMBLE_DES_ELECTRONS;); \ ); \ /* Pre-visualisation de la famille de quarks (REELs et VIRTUELs) par mise en liste... */ \ CHRONOMETRAGE_DE_LA_SIMULATION("VISUALISATION DE L'ENSEMBLE DES ANTI-ELECTRONS" \ ,BLOC(VISUALISATION_DE_L_ENSEMBLE_DES_ANTI_ELECTRONS;); \ ); \ /* Pre-visualisation de la famille de anti-quarks (REELs et VIRTUELs) par mise en liste... */ \ CHRONOMETRAGE_DE_LA_SIMULATION("VISUALISATION DE L'ENSEMBLE DES NEUTRINOS" \ ,BLOC(VISUALISATION_DE_L_ENSEMBLE_DES_NEUTRINOS;); \ ); \ /* Pre-visualisation de la famille de neutrinos (VIRTUELs) par mise en liste... */ \ CHRONOMETRAGE_DE_LA_SIMULATION("VISUALISATION DE L'ENSEMBLE DES PHOTONS" \ ,BLOC(VISUALISATION_DE_L_ENSEMBLE_DES_PHOTONS;); \ ); \ /* Pre-visualisation de la famille de gluons (VIRTUELs) par mise en liste... */ \ CHRONOMETRAGE_DE_LA_SIMULATION("VISUALISATION DE L'ENSEMBLE DES Z0S" \ ,BLOC(VISUALISATION_DE_L_ENSEMBLE_DES_Z0S;); \ ); \ /* Pre-visualisation de la famille de z0 (VIRTUELs) par mise en liste... */ \ \ CHRONOMETRAGE_DE_LA_SIMULATION("TRI D'UNE LISTE DE POINTS" \ ,BLOC(CALCUL_DU_PSEUDO_CENTRE_DE_GRAVITE_ET_TRI_D_UNE_LISTE_DE_POINTS;) \ ); \ /* Tri par'Z' croissant de l'ensemble des spheres representative des particules. */ \ CHRONOMETRAGE_DE_LA_SIMULATION("VISUALISATION D'UNE LISTE DE POINTS" \ ,BLOC(VISUALISATION_D_UNE_LISTE_DE_POINTS(numero_de_la_periode_courante);); \ ); \ /* Visualisation de l'ensemble des spheres representative des particules avec traitement */ \ /* de l'aliasing grace a ce tri... */ \ \ CHRONOMETRAGE_DE_LA_SIMULATION("GENERATION D'UNE IMAGE" \ ,BLOC(GENERATION_D_UNE_IMAGE(numero_de_la_periode_courante \ ,numero_de_la_premiere_periode_a_visualiser \ ); \ ); \ ); \ /* Memorisation de l'image, en notant que deux quarks voisins sur l'image peuvent etre */ \ /* en fait sur des plans tres differents, et apparaitre ainsi avec des luminances tres */ \ /* differentes (rappelons que les differents objets sont tridimensionnels). D'autre part */ \ /* la visualisation a lieu dans la "boite" univers : il y a donc clipping tridimensionnel */ \ /* ce qui peut faire disparaitre brutalement des particules par l'avant ou par l'arriere... */ \ \ CHRONOMETRAGE_DE_LA_SIMULATION("DEPLACEMENT DE L'ENSEMBLE DES ELECTRONS" \ ,BLOC(DEPLACEMENT_DE_L_ENSEMBLE_DES_ELECTRONS;) \ ); \ /* Deplacement des quarks... */ \ CHRONOMETRAGE_DE_LA_SIMULATION("DEPLACEMENT DE L'ENSEMBLE DES ANTI-ELECTRONS" \ ,BLOC(DEPLACEMENT_DE_L_ENSEMBLE_DES_ANTI_ELECTRONS;) \ ); \ /* Deplacement des anti-quarks... */ \ CHRONOMETRAGE_DE_LA_SIMULATION("DEPLACEMENT DE L'ENSEMBLE DES NEUTRINOS" \ ,BLOC(DEPLACEMENT_DE_L_ENSEMBLE_DES_NEUTRINOS;) \ ); \ /* Deplacement des neutrinos... */ \ CHRONOMETRAGE_DE_LA_SIMULATION("DEPLACEMENT DE L'ENSEMBLE DES PHOTONS" \ ,BLOC(DEPLACEMENT_DE_L_ENSEMBLE_DES_PHOTONS;) \ ); \ /* Deplacement des gluons... */ \ CHRONOMETRAGE_DE_LA_SIMULATION("DEPLACEMENT DE L'ENSEMBLE DES Z0S" \ ,BLOC(DEPLACEMENT_DE_L_ENSEMBLE_DES_Z0S;) \ ); \ /* Deplacement des z0... */ \ \ CHRONOMETRAGE_DE_LA_SIMULATION("RE-INJECTION DE NUAGES DE PARTICULES VIRTUELLES" \ ,BLOC(RE_INJECTION_DE_NUAGES_DE_PARTICULES_VIRTUELLES;) \ ); \ /* Re-injection eventuelle de nuages de particules virtuelles suivant le champ global... */ \ \ AUTO_REGULATION; \ /* On tente eventuellement d'auto-reguler le nombre de particules... */ \ \ TOP_D_HORLOGE; \ /* Le temps s'ecoule inexorablement... */ \ \ QUELQUES_VERIFICATIONS_AU_COURS_DE_LA_SIMULATION; \ /* Et on verifie enfin la coherence de quelques variables... */ \ Eblock \ EKom \ \ Test(IFOU(IL_FAUT(tracer_les_evenements) \ ,IL_FAUT(creer_la_base_de_donnees_geometriques) \ ) \ ) \ Bblock \ CAL2(Prin0("\n")); \ /* Ceci est destine aux cas ou l'on trace les evenements et/ou l'on edite la geometrie, car */ \ /* en effet dans ce cas il manque le dernier 'new-line' ce que n'aime pas 'vi'... */ \ Eblock \ ATes \ Bblock \ Eblock \ ETes \ \ Eblock \ /* Simulation top d'horloge par top d'horloge de la structure interne du "di-electron" et de */ \ /* sa dynamique... */