/*************************************************************************************************************************************/
/* */
/* 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)'. */