/*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N S R E L A T I V E S A U R E C U I T S I M U L E : */ /* */ /* */ /* Author of '$xrk/recuit_2D.13$I' : */ /* */ /* Jean-Francois Colonna (LACTAMME, 1994??????????). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D U P R O C E S S U S A L E A T O I R E : */ /* */ /*************************************************************************************************************************************/ #include xrq/nucleon.LC.I" #define AMPLITUDE_MAXIMALE_DU_DEPLACEMENT_ALEATOIRE_DES_POINTS_AU_DEPART \ FRA10(FU) DEFV(Local,DEFV(Float,INIT(amplitude_maximale_du_deplacement_aleatoire_des_points_au_depart ,AMPLITUDE_MAXIMALE_DU_DEPLACEMENT_ALEATOIRE_DES_POINTS_AU_DEPART ) ) ); /* Amplitude maximale du deplacement des points au debut de la simulation (avant une */ /* "normalisation" par la dimension lineaire du reseau...). */ #define AMPLITUDE_MAXIMALE_DU_DEPLACEMENT_ALEATOIRE_DES_POINTS_A_L_ARRIVEE \ FRA10(AMPLITUDE_MAXIMALE_DU_DEPLACEMENT_ALEATOIRE_DES_POINTS_AU_DEPART) DEFV(Local,DEFV(Float,INIT(amplitude_maximale_du_deplacement_aleatoire_des_points_a_l_arrivee ,AMPLITUDE_MAXIMALE_DU_DEPLACEMENT_ALEATOIRE_DES_POINTS_A_L_ARRIVEE ) ) ); /* Amplitude maximale du deplacement des points a la fin de la simulation (avant une */ /* "normalisation" par la dimension lineaire du reseau...). */ DEFV(Local,DEFV(Float,INIT(temps,FZERO))); /* Temps dans [0,1] de la simulation... */ #define AMPLITUDE_ALEATOIRE_EN_X \ MOIT(DIMENSION_LINEAIRE_REELLE_DU_RESEAU_DANS_L_ESPACE_PHYSIQUE) #define AMPLITUDE_ALEATOIRE_EN_Y \ AMPLITUDE_ALEATOIRE_EN_X #define AMPLITUDE_ALEATOIRE_EN_Z \ AMPLITUDE_ALEATOIRE_EN_X /* Valeur absolue des bornes de calcul de la perturbation des coordonnees... */ /* */ /* ATTENTION, il y avait avant le 1993010400 : */ /* */ /* #define AMPLITUDE_ALEATOIRE_EN_X \ */ /* MAX2(ABSO(ASD2(espace_physique,origine,x)) \ */ /* ,ABSO(ASD2(espace_physique,extremite,x)) \ */ /* ) */ /* #define AMPLITUDE_ALEATOIRE_EN_Y \ */ /* MAX2(ABSO(ASD2(espace_physique,origine,y)) \ */ /* ,ABSO(ASD2(espace_physique,extremite,y)) \ */ /* ) */ /* #define AMPLITUDE_ALEATOIRE_EN_Z \ */ /* MAX2(ABSO(ASD2(espace_physique,origine,z)) \ */ /* ,ABSO(ASD2(espace_physique,extremite,z)) \ */ /* ) */ /* */ /* ce qui, pour des formats d'image non carre (voir 'Pal'), pouvait creer des distortions */ /* puisque les deplacements aleatoires pouvaient alors etre plus importants dans une */ /* direction que dans les autres (alors que cela doit etre isotrope...). */ #define LIMITATION_DE_L_AMPLITUDE_ALEATOIRE(valeur) \ MUL2(DIVI(BARY(amplitude_maximale_du_deplacement_aleatoire_des_points_au_depart \ ,amplitude_maximale_du_deplacement_aleatoire_des_points_a_l_arrivee \ ,temps \ ) \ ,TRMU(dimension_lineaire_du_reseau) \ ) \ ,valeur \ ) \ /* Limitation de l'amplitude du deplacement aleatoire en fonction de la dimension lineaire */ /* du reseau et du temps exprime dans [0,1]... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D ' U N E T E M P E R A T U R E : */ /* */ /*************************************************************************************************************************************/ #define UTILISER_UNE_TEMPERATURE \ FAUX DEFV(Local,DEFV(Logical,INIT(utiliser_une_temperature,UTILISER_UNE_TEMPERATURE))); /* Faut-il ('VRAI') ou pas ('FAUX') utiliser une temperature ? */ #define CHANGER_LA_TEMPERATURE_A_CHAQUE_ESSAI \ VRAI DEFV(Local,DEFV(Logical,INIT(changer_la_temperature_a_chaque_essai,CHANGER_LA_TEMPERATURE_A_CHAQUE_ESSAI))); /* Lorsque 'IL_FAUT(utiliser_une_temperature)' faut-il la faire diminuer a chaque essai */ /* ('VRAI') ou plus rarement, a chaque nouvelle image ('FAUX') ? */ #define CONSTANTE_K_DE_TEMPERATURE \ GRO2(FU) DEFV(Local,DEFV(Float,INIT(constante_K_de_temperature,CONSTANTE_K_DE_TEMPERATURE))); /* Constante 'K' utilisee dans le calcul des probabilites. */ #define TEMPERATURE_INITIALE \ FU #define TEMPERATURE_FINALE \ FRA10(FRA10(FU)) DEFV(Local,DEFV(Float,INIT(temperature_initiale,TEMPERATURE_INITIALE))); DEFV(Local,DEFV(Float,INIT(temperature_finale,TEMPERATURE_FINALE))); /* Definition de la temperature au debut et a la fin de la simulation. */ DEFV(Local,DEFV(Float,INIT(temperature_courante,FLOT__UNDEF))); DEFV(Local,DEFV(Float,INIT(pas_de_la_temperature,FLOT__UNDEF))); /* Temperature courante et son pas d'evolution... */ DEFV(Float,INIT(seuil_de_la_probabilite_de_retour_en_arriere,PROBABILITE_NULLE)); DEFV(Float,INIT(probabilite_de_retour_en_arriere,PROBABILITE_NULLE)); /* Ces probabilites sont initialisees de facon a assurer la compatibilite avec la version */ /* anterieure au 19980121095833 lorsque 'IL_NE_FAUT_PAS(utiliser_une_temperature)'. */