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



Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.