/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   R E L A T I V E S   A   L A   R E P R E S E N T A T I O N   D E   P O I N C A R E  :               */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrk/fluide_2D.11$I' :                                                                                          */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 1998??????????).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D O N N E E S   D E   V I S U A L I S A T I O N  " T O R I Q U E "  :                                                      */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   VISUALISER_SUR_UN_TORE                                                                                                        \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(visualiser_sur_un_tore,VISUALISER_SUR_UN_TORE)));
                                        /* Indique si l'on visualise dans l'espace "normal" ('FAUX'), ou bien sur un tore ('VRAI'),  */
                                        /* le temps modulo la periode etant un des parametres de cette surface. Rappelons qu'un      */
                                        /* tore est defini par l'equation :                                                          */
                                        /*                                                                                           */
                                        /*                  X = r.cos(alpha)                                                         */
                                        /*                  Y = r.sin(alpha)                                                         */
                                        /*                                                                                           */
                                        /* et :                                                                                      */
                                        /*                                                                                           */
                                        /*                  r = gR + pR.cos(beta)                                                    */
                                        /*                  Z =      pR.sin(beta)                                                    */
                                        /*                                                                                           */
                                        /* avec :                                                                                    */
                                        /*                                                                                           */
                                        /*                  gR        = grand rayon a l'origine O,                                   */
                                        /*                  pR        = petit rayon definissant une section quelconque,              */
                                        /*                  alpha     = angle polaire dans le plan (OX,OY),                          */
                                        /*                  beta      = angle polaire decrivant une section quelconque.              */
                                        /*                                                                                           */
#define   ANGLE_ALPHA_DU_TORE(cx,cy,cz,t)                                                                                               \
                    CERC(MUL2(DIVI(SOUS(t,instant_initial)                                                                              \
                                  ,DIVI(CERCLE_TRIGONOMETRIQUE,MAX2(R3,I3))                                                             \
                                   )                                                                                                    \
                             ,CERCLE_TRIGONOMETRIQUE                                                                                    \
                              )                                                                                                         \
                         )
#define   ANGLE_BETA_DU_TORE(cx,cy,cz,t)                                                                                                \
                    Theta_2D(cx,cy)
                                        /* Definitions des rayons angles 'alpha' et 'beta'. On notera que 'alpha' est defini en      */
                                        /* convertissant le temps 't' en periodes (par division par la periode, egale, rappelons-le, */
                                        /* au quotient de 2.PI par la pulsation 'R3'), puis en le convertissant en angle exprime en  */
                                        /* radians (par multiplication par 2.PI), puis enfin en le ramenant dans [0,2.PI]...         */

#define   FACTEUR_DU_RAYON_gR                                                                                                           \
                    GRO6(FRA10(FU))
DEFV(Local,DEFV(Float,INIT(facteur_du_rayon_gR,FACTEUR_DU_RAYON_gR)));
#define   FACTEUR_DU_RAYON_pR                                                                                                           \
                    GRO4(FRA10(FU))
DEFV(Local,DEFV(Float,INIT(facteur_du_rayon_pR,FACTEUR_DU_RAYON_pR)));
                                        /* Definitions des rayons 'gR' et 'pR' du tore.                                              */
#define   RAYON_gR_DU_TORE(cx,cy,cz,t)                                                                                                  \
                    MUL2(facteur_du_rayon_gR                                                                                            \
                        ,FRA3(RpdisF3D(ASD1(espace_physique,origine)                                                                    \
                                      ,ASD1(espace_physique,extremite)                                                                  \
                                       )                                                                                                \
                              )                                                                                                         \
                         )
#define   RAYON_pR_DU_TORE(cx,cy,cz,t)                                                                                                  \
                    MUL2(facteur_du_rayon_pR,Rho_2D(cx,cy))
                                        /* Definition des coordonnees polaires generalisees du tore.                                 */

#define   RAYON_PROJETE_DU_TORE(cx,cy,cz,t)                                                                                             \
                    ADD2(RAYON_gR_DU_TORE(cx,cy,cz,t)                                                                                   \
                        ,Xcartesienne_2D(RAYON_pR_DU_TORE(cx,cy,cz,t)                                                                   \
                                        ,ANGLE_BETA_DU_TORE(cx,cy,cz,t)                                                                 \
                                         )                                                                                              \
                         )                                                                                                              \
                                        /* Definition de la variable 'r'.                                                            */

#define   gX_DU_TORE(cx,cy,cz,t)                                                                                                        \
                    Xcartesienne_2D(RAYON_PROJETE_DU_TORE(cx,cy,cz,t)                                                                   \
                                   ,ANGLE_ALPHA_DU_TORE(cx,cy,cz,t)                                                                     \
                                    )
#define   gY_DU_TORE(cx,cy,cz,t)                                                                                                        \
                    Ycartesienne_2D(RAYON_PROJETE_DU_TORE(cx,cy,cz,t)                                                                   \
                                   ,ANGLE_ALPHA_DU_TORE(cx,cy,cz,t)                                                                     \
                                    )
#define   gZ_DU_TORE(cx,cy,cz,t)                                                                                                        \
                    NEUT(Ycartesienne_2D(RAYON_pR_DU_TORE(cx,cy,cz,t)                                                                   \
                                        ,ANGLE_BETA_DU_TORE(cx,cy,cz,t)                                                                 \
                                         )                                                                                              \
                         )
                                        /* Equation cartesienne {X,Y,Z} du tore centre en (0,0,0). On verra a ce propos avec interet */
                                        /* les commentaires de 'MEMORISATION_DU_POINT_COURANT(...)' dans 'v $xrk/attractor.16$I'.    */

BFonctionF

DEFV(Local,DEFV(FonctionF,X_du_tore(cx,cy,cz,t)))
                                        /* Fonction introduite le 19970403162937 pour alleger le travail de '$Cc' sur '$LACT29'...   */
DEFV(Argument,DEFV(Float,cx));
DEFV(Argument,DEFV(Float,cy));
DEFV(Argument,DEFV(Float,cz));
DEFV(Argument,DEFV(Float,t));
                                        /* Definition des coordonnees spatio-temporelles.                                            */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     /*..............................................................................................................................*/
     RETU(gX_DU_TORE(cx,cy,cz,t));
     Eblock

EFonctionF

BFonctionF

DEFV(Local,DEFV(FonctionF,Y_du_tore(cx,cy,cz,t)))
                                        /* Fonction introduite le 19970403162937 pour alleger le travail de '$Cc' sur '$LACT29'...   */
DEFV(Argument,DEFV(Float,cx));
DEFV(Argument,DEFV(Float,cy));
DEFV(Argument,DEFV(Float,cz));
DEFV(Argument,DEFV(Float,t));
                                        /* Definition des coordonnees spatio-temporelles.                                            */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     /*..............................................................................................................................*/
     RETU(gY_DU_TORE(cx,cy,cz,t));
     Eblock

EFonctionF

BFonctionF

DEFV(Local,DEFV(FonctionF,Z_du_tore(cx,cy,cz,t)))
                                        /* Fonction introduite le 19970403162937 pour alleger le travail de '$Cc' sur '$LACT29'...   */
DEFV(Argument,DEFV(Float,cx));
DEFV(Argument,DEFV(Float,cy));
DEFV(Argument,DEFV(Float,cz));
DEFV(Argument,DEFV(Float,t));
                                        /* Definition des coordonnees spatio-temporelles.                                            */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     /*..............................................................................................................................*/
     RETU(gZ_DU_TORE(cx,cy,cz,t));
     Eblock

EFonctionF

#define   X_DU_TORE(cx,cy,cz,t)                                                                                                         \
                    X_du_tore(cx,cy,cz,t)
#define   Y_DU_TORE(cx,cy,cz,t)                                                                                                         \
                    Y_du_tore(cx,cy,cz,t)
#define   Z_DU_TORE(cx,cy,cz,t)                                                                                                         \
                    Z_du_tore(cx,cy,cz,t)
                                        /* Equation cartesienne {X,Y,Z} du tore centre en (0,0,0). On verra a ce propos avec interet */
                                        /* les commentaires de 'MEMORISATION_DU_POINT_COURANT(...)' dans 'v $xrk/attractor.16$I'.    */



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