/*************************************************************************************************************************************/
/* */
/* 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 P R O T O N : */
/* */
/* */
/* Author of '$xrq/nucleon.LM$I' : */
/* */
/* Jean-Francois Colonna (LACTAMME, 1991??????????). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 P R O T O N : */
/* */
/*************************************************************************************************************************************/
#define ___SIMULATION_DE_LA_STRUCTURE_DYNAMIQUE_D_UN_HADRON \
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_HADRON' ; 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 proton...). */ \
\
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 proton, */ \
/* et correspondant, par exemple, a ce que j'appelerai, des collisions... */ \
CHRONOMETRAGE_DE_LA_SIMULATION("EVENEMENTS CONDITIONNELS POUR CERTAINS QUARKS" \
,BLOC(EVENEMENTS_CONDITIONNELS_POUR_CERTAINS_QUARKS;) \
); \
/* Evenements conditionnels pour quelques uns des quarks presents dans le proton */ \
/* (REELs ou VIRTUELs). */ \
CHRONOMETRAGE_DE_LA_SIMULATION("EVENEMENTS CONDITIONNELS POUR CERTAINS ANTI-QUARKS" \
,BLOC(EVENEMENTS_CONDITIONNELS_POUR_CERTAINS_ANTI_QUARKS;) \
); \
/* Evenements conditionnels pour quelques uns des anti-quarks presents dans le proton */ \
/* (REELs ou VIRTUELs). */ \
CHRONOMETRAGE_DE_LA_SIMULATION("EVENEMENTS CONDITIONNELS POUR CERTAINS GLUONS" \
,BLOC(EVENEMENTS_CONDITIONNELS_POUR_CERTAINS_GLUONS;) \
); \
/* Evenements conditionnels pour quelques uns des gluons presents dans le proton. */ \
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 QUARKS" \
,BLOC(VISUALISATION_DE_L_ENSEMBLE_DES_QUARKS;); \
); \
/* Pre-visualisation de la famille de quarks (REELs et VIRTUELs) par mise en liste... */ \
CHRONOMETRAGE_DE_LA_SIMULATION("VISUALISATION DE L'ENSEMBLE DES ANTI-QUARKS" \
,BLOC(VISUALISATION_DE_L_ENSEMBLE_DES_ANTI_QUARKS;); \
); \
/* Pre-visualisation de la famille de anti-quarks (REELs et VIRTUELs) par mise en liste... */ \
CHRONOMETRAGE_DE_LA_SIMULATION("VISUALISATION DE L'ENSEMBLE DES GLUONS" \
,BLOC(VISUALISATION_DE_L_ENSEMBLE_DES_GLUONS;); \
); \
/* Pre-visualisation de la famille de gluons (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 QUARKS" \
,BLOC(DEPLACEMENT_DE_L_ENSEMBLE_DES_QUARKS;) \
); \
/* Deplacement des quarks... */ \
CHRONOMETRAGE_DE_LA_SIMULATION("DEPLACEMENT DE L'ENSEMBLE DES ANTI-QUARKS" \
,BLOC(DEPLACEMENT_DE_L_ENSEMBLE_DES_ANTI_QUARKS;) \
); \
/* Deplacement des anti-quarks... */ \
CHRONOMETRAGE_DE_LA_SIMULATION("DEPLACEMENT DE L'ENSEMBLE DES GLUONS" \
,BLOC(DEPLACEMENT_DE_L_ENSEMBLE_DES_GLUONS;) \
); \
/* Deplacement des gluons... */ \
\
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 proton et de */ \
/* sa dynamique... */