/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   D E S   E L E M E N T S   G E O M E T R I Q U E S   A L E A T O I R E S  :                         */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrq/nucleon.LC$I' :                                                                                            */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 1991??????????).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   D ' E L E M E N T S   G E O M E T R I Q U E S  :                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   GENERATION_D_UNE_COORDONNEE(coordonnee,type)                                                                                  \
                    Bblock                                                                                                              \
                    GENERATION_D_UNE_VALEUR(coordonnee                                                                                  \
                                           ,ASD2(espace_physique,origine,type)                                                          \
                                           ,ASD2(espace_physique,extremite,type)                                                        \
                                            );                                                                                          \
                    Eblock                                                                                                              \
                                        /* Generation d'une coordonnee aleatoire quelconque {x,y,z} d'un point contenu dans          */ \
                                        /* l'espace physique de la simulation.                                                       */
#define   GENERATION_D_UN_POINT(point_aleatoire)                                                                                        \
                    Bblock                                                                                                              \
                    GENERATION_D_UNE_COORDONNEE(ASD1(point_aleatoire,x),x);                                                             \
                    GENERATION_D_UNE_COORDONNEE(ASD1(point_aleatoire,y),y);                                                             \
                    GENERATION_D_UNE_COORDONNEE(ASD1(point_aleatoire,z),z);                                                             \
                    Eblock                                                                                                              \
                                        /* Generation d'un point aleatoire contenu dans l'espace physique de la simulation.          */
#define   GENERATION_D_UN_DEMI_ANGLE(demi_angle)                                                                                        \
                    Bblock                                                                                                              \
                    GENERATION_D_UNE_VALEUR(demi_angle                                                                                  \
                                           ,FZERO                                                                                       \
                                           ,MOIT(CERCLE_TRIGONOMETRIQUE)                                                                \
                                            );                                                                                          \
                    Eblock                                                                                                              \
                                        /* Generation d'un angle aleatoire dans [0,PI].                                              */
#define   GENERATION_D_UN_ANGLE(angle)                                                                                                  \
                    Bblock                                                                                                              \
                    GENERATION_D_UNE_VALEUR(angle                                                                                       \
                                           ,FZERO                                                                                       \
                                           ,NEUT(CERCLE_TRIGONOMETRIQUE)                                                                \
                                            );                                                                                          \
                    Eblock                                                                                                              \
                                        /* Generation d'un angle aleatoire dans [0,2.PI].                                            */
#define   GENERATION_D_UNE_DIRECTION_2D(theta)                                                                                          \
                    Bblock                                                                                                              \
                    GENERATION_D_UN_ANGLE(theta);                                                                                       \
                    Eblock                                                                                                              \
                                        /* Generation d'une direction aleatoire (theta) dans l'espace bidimensionnel.                */
#define   GENERATION_D_UNE_DIRECTION_3D(theta,phi)                                                                                      \
                    Bblock                                                                                                              \
                    GENERATION_D_UN_ANGLE(theta);                                                                                       \
                    GENERATION_D_UN_ANGLE(phi);                                                                                         \
                    Eblock                                                                                                              \
                                        /* Generation d'une direction aleatoire (theta,phi) dans l'espace tridimensionnel.           */



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