/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        S I M U L A T I O N   D ' U N   F L U I D E   I N S T A T I O N N A I R E   I D E A L  :                                   */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                                                                                  .:---++--..                                      */
/*                                          ..                                  :-:            o-.                                   */
/*                                     .-#.     .**.                         .-.        ...:.:-:..+.                                 */
/*                                    -.    :*-o-*oo*:                     -:       --. -:  .+-   -+.                                */
/*                                   o    :o        -+#                 .-.       +:  o:       +.   *.                               */
/*                                  .:   .o          .+*              .:.        o.  *.         o.  .:                               */
/*                                  -    -            o*             #           *   #.          :   -.                              */
/*                                  ..   :.          .+o                         *.  *:         *.  .:.                              */
/*                                  .o    :.        .+o                           #.  o-       +.   *.                               */
/*                                   .o     -+.   .++                              oo   .*+#*-.    o.                                */
/*                                    .+                       .--:....:+*+          +*:        .*:                                  */
/*                                      .+.                .-:.             -#o         .-oo+-:o:                                    */
/*                                         .-o.       .--:.                     .o##*+-+o*#+:.                                       */
/*                                              ....                                                                                 */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrk/fluide_2D.11$K' :                                                                                          */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 1992??????????).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I N T E R F A C E   ' listG '  :                                                                                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        :Debut_listG:                                                                                                              */
/*        :Fin_listG:                                                                                                                */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D I R E C T I V E S   S P E C I F I Q U E S   D E   C O M P I L A T I O N  :                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
@define   PRAGMA_CL_____MODULE_NON_OPTIMISABLE

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F I C H I E R S   D ' I N C L U D E S  :                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  INCLUDES_BASE

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   D E   B A S E   E T   U N I V E R S E L L E S  :                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.11.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*                                                                                    3                                              */
/*        D E F I N I T I O N   D E   L ' E S P A C E   P H Y S I Q U E   D A N S   R     ( D E B U T )  :                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Nota :                                                                                                                     */
/*                                                                                                                                   */
/*                    Les extrema des coordonnees {x,y,z}                                                                            */
/*                  ainsi que ceux de leurs differentielles                                                                          */
/*                  {dx,dy,dz} sont fixees un peu arbitrairement                                                                     */
/*                  et sans etre parametrees.                                                                                        */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   hXmin_ESPACE                                                                                                                  \
                    PARE(-2.0)
#define   hYmin_ESPACE                                                                                                                  \
                    PARE(-2.0)
#define   hZmin_ESPACE                                                                                                                  \
                    PARE(-2.0)
                                        /* Definition du "coin" inferieur-gauche-arriere de l'espace physique.                       */

#define   hXmax_ESPACE                                                                                                                  \
                    PARE(2.0)
#define   hYmax_ESPACE                                                                                                                  \
                    PARE(2.0)
#define   hZmax_ESPACE                                                                                                                  \
                    PARE(2.0)
                                        /* Definition du "coin" superieur-droite-avant de l'espace physique.                         */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*                                                                                    3                                              */
/*        D E F I N I T I O N   D E   L ' E S P A C E   P H Y S I Q U E   D A N S   R     ( D E B U T )  :                           */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.12.I"

#define   dXmin_ESPACE                                                                                                                  \
                    PARE(-0.30)
#define   dYmin_ESPACE                                                                                                                  \
                    PARE(-0.34)
#define   dZmin_ESPACE                                                                                                                  \
                    PARE(0.00)
                                        /* Definition des minima des differentielles {dx,dy,dz}.                                     */
#define   dXmax_ESPACE                                                                                                                  \
                    PARE(0.30)
#define   dYmax_ESPACE                                                                                                                  \
                    PARE(0.34)
#define   dZmax_ESPACE                                                                                                                  \
                    PARE(1.00)
                                        /* Definition des maxima des differentielles {dx,dy,dz}.                                     */

#include  xrk/attractor.1D.I"
                                        /* Formules de renormalisation des differentielles dans [0,1] ; elles sont utilisees lorsque */
                                        /* la production d'images en couleurs est demandee (voir 'visualiser_en_RVB').               */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   D I F F E R E N T S   E S P A C E S   E T   D E   L ' E F F E T   D E   B R U M E  :         */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.13.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A I D E   A U   C A D R A G E   D E S   I M A G E S  :                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.1C.I"

DONNEES_DE_RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES
                                        /* Definition des extrema des coordonnees et des derivees. On notera bien l'absence de       */
                                        /* point-virgule apres 'DONNEES_DE_RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES'.   */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   D E S   I M A G E S  :                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   VISUALISER_LES_DEUX_TOURBILLONS                                                                                               \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(visualiser_les_deux_tourbillons,VISUALISER_LES_DEUX_TOURBILLONS)));
                                        /* Indique si l'on visualise les deux tourbillons ('VRAI') en plus de la particule, ou       */
                                        /* uniquement la particule ('FAUX').                                                         */

#define   COMPOSANTE_ROUGE_FORCEE_DES_ITERATIONS                                                                                        \
                    FU
#define   COMPOSANTE_VERTE_FORCEE_DES_ITERATIONS                                                                                        \
                    FU
#define   COMPOSANTE_BLEUE_FORCEE_DES_ITERATIONS                                                                                        \
                    FZERO
DEFV(Local,DEFV(Float,INIT(composante_ROUGE_forcee_des_iterations,COMPOSANTE_ROUGE_FORCEE_DES_ITERATIONS)));
DEFV(Local,DEFV(Float,INIT(composante_VERTE_forcee_des_iterations,COMPOSANTE_VERTE_FORCEE_DES_ITERATIONS)));
DEFV(Local,DEFV(Float,INIT(composante_BLEUE_forcee_des_iterations,COMPOSANTE_BLEUE_FORCEE_DES_ITERATIONS)));
                                        /* Definition du coloriage des iterations lorsque les deux tourbillons sont aussi a          */
                                        /* visualiser ; en effet, il est alors impossible d'utiliser {dcx,dcy,dcz} pour ce faire,    */
                                        /* car quel niveau alors attribuer aux tourbillons puisqu'on ne connait pas les intervalles  */
                                        /* de variation des trois differentielles. La solution est donc alors de forcer la couleur.  */

#define   COMPOSANTE_ROUGE_FORCEE_DES_DEUX_TOURBILLONS                                                                                  \
                    FU
#define   COMPOSANTE_VERTE_FORCEE_DES_DEUX_TOURBILLONS                                                                                  \
                    FU
#define   COMPOSANTE_BLEUE_FORCEE_DES_DEUX_TOURBILLONS                                                                                  \
                    FU
DEFV(Local,DEFV(Float,INIT(composante_ROUGE_forcee_des_deux_tourbillons,COMPOSANTE_ROUGE_FORCEE_DES_DEUX_TOURBILLONS)));
DEFV(Local,DEFV(Float,INIT(composante_VERTE_forcee_des_deux_tourbillons,COMPOSANTE_VERTE_FORCEE_DES_DEUX_TOURBILLONS)));
DEFV(Local,DEFV(Float,INIT(composante_BLEUE_forcee_des_deux_tourbillons,COMPOSANTE_BLEUE_FORCEE_DES_DEUX_TOURBILLONS)));
                                        /* Definition du coloriage des deux tourbillons lorsqu'ils sont visualises...                */

#define   COMPOSANTE_ROUGE_DES_ITERATIONS                                                                                               \
                    COND(IL_NE_FAUT_PAS(visualiser_les_deux_tourbillons),dcx,composante_ROUGE_forcee_des_iterations)
#define   COMPOSANTE_VERTE_DES_ITERATIONS                                                                                               \
                    COND(IL_NE_FAUT_PAS(visualiser_les_deux_tourbillons),dcy,composante_VERTE_forcee_des_iterations)
#define   COMPOSANTE_BLEUE_DES_ITERATIONS                                                                                               \
                    COND(IL_NE_FAUT_PAS(visualiser_les_deux_tourbillons),dcz,composante_BLEUE_forcee_des_iterations)
                                        /* Definition du coloriage effectif des iterations.                                          */

#include  xrv/champs_5.14.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   G E N E R A L E S   R E L A T I V E S   A   L A   V I S U A L I S A T I O N  :                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   DCT                                                                                                                           \
                    FRA1(FRA2(FU))
DEFV(Local,DEFV(Float,INIT(dct,DCT)));
                                        /* Definition de 'dt'.                                                                       */

#include  xrk/attractor.14.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F O N C T I O N   D E   M E M O R I S A T I O N   D U   P O I N T   C O U R A N T  :                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.16.I"

#define   RAYON_DE_VISUALISATION                                                                                                        \
                    FRA2(FRA10(FU))
DEFV(Local,DEFV(Float,INIT(rayon_de_visualisation,RAYON_DE_VISUALISATION)));
                                        /* Rayon du disque materialisant une iteration.                                              */

BFonctionI

DEFV(Local,DEFV(FonctionI,memorisation_1_point_07(AXf,AYf,AZf,AdXf,AdYf,AdZf,numero_de_l_iteration_courante)))
DEFV(Argument,DEFV(Float,AXf));
DEFV(Argument,DEFV(Float,AYf));
DEFV(Argument,DEFV(Float,AZf));
                                        /* Definition de la position {x,y,z} de l'iteration courante.                                */
DEFV(Argument,DEFV(Float,AdXf));
DEFV(Argument,DEFV(Float,AdYf));
DEFV(Argument,DEFV(Float,AdZf));
                                        /* Definition des differentielles {dx,dy,dz} de la position de l'iteration courante.         */
DEFV(Argument,DEFV(Int,numero_de_l_iteration_courante));
                                        /* Numero de l'iteration courante afin d'attenuer eventuellement la luminance des points     */
                                        /* materialisant chaque iteration en fonction de leur numero (les premieres iterations etant */
                                        /* plus sombres, et les dernieres etant plus lumineuses).                                    */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
#include  xrk/attractor.15.I"

     INIT_ERROR;
     /*..............................................................................................................................*/
     MEMORISATION_DU_POINT_COURANT(X_DERIVEE_DANS_01(AdXf)
                                  ,Y_DERIVEE_DANS_01(AdYf)
                                  ,Z_DERIVEE_DANS_01(AdZf)
                                   );
                                        /* Memorisation du point courant en Noir et Blanc ou en Couleurs, mais uniquement s'il est   */
                                        /* visible en fonction des conditions de visualisation...                                    */
     RETU_ERROR;
     Eblock

EFonctionI

/*===================================================================================================================================*/
/*        :Debut_listMN_FLUIDE_INSTATIONNAIRE_BIDIMENSIONNEL_IDEAL_11:                                                               */
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E   L A   S I M U L A T I O N                                                                      */
/*        D ' U N   F L U I D E   I N S T A T I O N N A I R E   B I D I M E N S I O N N E L   I D E A L  :                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Il est classiquement defini par le                                                                             */
/*                  systeme d'equations differentielles (ou                                                                          */
/*                  'd' denote les derivees ordinaires, et                                                                           */
/*                  'D', les derivees partielles) :                                                                                  */
/*                                                                                                                                   */
/*                                       dx       DH                                                                                 */
/*                                      ---- = + ----                                                                                */
/*                                       dt       Dy                                                                                 */
/*                                                                                                                                   */
/*                                       dy       DH                                                                                 */
/*                                      ---- = - ----                                                                                */
/*                                       dt       Dx                                                                                 */
/*                                                                                                                                   */
/*                                         z = 0                                                                                     */
/*                                                                                                                                   */
/*                  avec :                                                                                                           */
/*                                                                                                                                   */
/*                                            1        | 2    2|                                                                     */
/*                                      H = ------.Log(|z  - w |)                                                                    */
/*                                           2.pi      |       |                                                                     */
/*                                                                                                                                   */
/*                  ou 'z' et 'w' sont les deux nombres complexes suivants :                                                         */
/*                                                                                                                                   */
/*                                      z = x + i.y = [x,y]                                                                          */
/*                                      w = a + i.b = [a,b] = [1 + epsilon.cos(omega.t),0]                                           */
/*                                                                                                                                   */
/*                  d'ou :                                                                                                           */
/*                                                                                                                                   */
/*                                            1        |  2    2                2    2           |                                   */
/*                                      H = ------.Log[|(x  - y  + 2.i.x.y) - (a  - b  + 2.i.a.b)|]                                  */
/*                                           2.pi      |                                         |                                   */
/*                                                                                                                                   */
/*                                            1        |  2    2      2    2                    |                                    */
/*                                      H = ------.Log[|(x  - y ) - (a  - b )  + 2.i.(x.y - a.b)|]                                   */
/*                                           2.pi      |                                        |                                    */
/*                                                          __________________________________________                               */
/*                                                         /                       2                                                 */
/*                                            1           / (  2    2      2    2 )                 2                                */
/*                                      H = ------.Log\  /  ((x  - y ) - (a  - b ))  + 4.(x.y - a.b)                                 */
/*                                           2.pi      \/   (                     )                                                  */
/*                                                                                                                                   */
/*                                                                            2                                                      */
/*                                            1       [{  2    2      2    2 }                 2]                                    */
/*                                      H = ------.Log[{(x  - y ) - (a  - b )}  + 4.(x.y - a.b) ]                                    */
/*                                           4.pi     [{                     }                  ]                                    */
/*                                                                                                                                   */
/*                                                                2              2                                                   */
/*                                            1       [{  2    2 }    {  2    2 }        2    2    2    2                 2]         */
/*                                      H = ------.Log[{(x  - y )}  + {(a  - b )}  - 2.(x  - y ).(a  - b ) + 4.(x.y - a.b) ]         */
/*                                           4.pi     [{         }    {         }                                          ]         */
/*                                                                                                                                   */
/*                                                                2                                                       2          */
/*                                            1       [{  2    2 }        2    2    2    2                 2   {  2    2 } ]         */
/*                                      H = ------.Log[{(x  - y )}  - 2.(x  - y ).(a  - b ) + 4.(x.y - a.b)  + {(a  - b )} ]         */
/*                                           4.pi     [{         }                                             {         } ]         */
/*                                                                                                                                   */
/*                                                                  3        2         2    2         2                              */
/*                                       DH      1               4.x  - 4.x.y  - 4.x.(a  - b ) + 8.x.y  - 8.y.a.b                    */
/*                                      ---- = ------.----------------------------------------------------------------------         */
/*                                       Dx     4.pi              2                                                       2          */
/*                                                     {  2    2 }        2    2    2    2                 2   {  2    2 }           */
/*                                                     {(x  - y )}  - 2.(x  - y ).(a  - b ) + 4.(x.y - a.b)  + {(a  - b )}           */
/*                                                     {         }                                             {         }           */
/*                                                                                                                                   */
/*                                                                  3      2           2    2       2                                */
/*                                       DH      1               4.y  - 4.x .y + 4.y.(a  - b ) + 8.x .y - 8.x.a.b                    */
/*                                      ---- = ------.----------------------------------------------------------------------         */
/*                                       Dy     4.pi              2                                                       2          */
/*                                                     {  2    2 }        2    2    2    2                 2   {  2    2 }           */
/*                                                     {(x  - y )}  - 2.(x  - y ).(a  - b ) + 4.(x.y - a.b)  + {(a  - b )}           */
/*                                                     {         }                                             {         }           */
/*                                                                                                                                   */
/*                  ou en simplifiant :                                                                                              */
/*                                                                                                                                   */
/*                                                                       3       { 2     2    2 }                                    */
/*                                       DH      1                    4.x  + 4.x.{y  - (a  - b )} - 8.y.a.b                          */
/*                                      ---- = ------.----------------------------------------------------------------------         */
/*                                       Dx     4.pi              2                                                       2          */
/*                                                     {  2    2 }        2    2    2    2                 2   {  2    2 }           */
/*                                                     {(x  - y )}  - 2.(x  - y ).(a  - b ) + 4.(x.y - a.b)  + {(a  - b )}           */
/*                                                     {         }                                             {         }           */
/*                                                                                                                                   */
/*                                                                       3       { 2     2    2 }                                    */
/*                                       DH      1                    4.y  + 4.y.{x  + (a  - b )} - 8.x.a.b                          */
/*                                      ---- = ------.----------------------------------------------------------------------         */
/*                                       Dy     4.pi              2                                                       2          */
/*                                                     {  2    2 }        2    2    2    2                 2   {  2    2 }           */
/*                                                     {(x  - y )}  - 2.(x  - y ).(a  - b ) + 4.(x.y - a.b)  + {(a  - b )}           */
/*                                                     {         }                                             {         }           */
/*                                                                                                                                   */
/*                  d'ou :                                                                                                           */
/*                                                                                                                                   */
/*                                       dx                     DH                                                                   */
/*                                      ---- = F (x,y,z,t) = + ----                                                                  */
/*                                       dt     x               Dy                                                                   */
/*                                                                                                                                   */
/*                                       dy                     DH                                                                   */
/*                                      ---- = F (x,y,z,t) = - ----                                                                  */
/*                                       dt     y               Dx                                                                   */
/*                                                                                                                                   */
/*                                         z = 0                                                                                     */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*                  On va generaliser le nombre complexe 'w' par :                                                                   */
/*                                                                                                                                   */
/*                                      w = [R  + R .cos(R .t),I  + I .sin(I .t)]                                                    */
/*                                            1    2      3     1    2      3                                                        */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
/*        :Fin_listMN_FLUIDE_INSTATIONNAIRE_BIDIMENSIONNEL_IDEAL_11:                                                                 */

#include  xrk/attractor.17.I"

dfTRANSFORMAT_31(liste_NOMBRE_D_ITERATIONS,fichier_NOMBRE_D_ITERATIONS,NOMBRE_D_ITERATIONS_IMPLICITE,NOMBRE_D_ITERATIONS)
                                        /* Definition du fichier des nombres d'iterations.                                           */
#define   sNOMBRE_D_ITERATIONS(numero_de_la_periode)                                                                                    \
                    INTE(sTRANSFORMAT_31(numero_de_la_periode,liste_NOMBRE_D_ITERATIONS))                                               \
                                        /* Formule generale definissant les variations du nombre d'iterations.                       */

#define   WR1                                                                                                                           \
                    FU
#define   WR2                                                                                                                           \
                    FRA10(FU)
#define   WR3                                                                                                                           \
                    FRA1(FU)
#define   WI1                                                                                                                           \
                    FZERO
#define   WI2                                                                                                                           \
                    FZERO
#define   WI3                                                                                                                           \
                    FZERO
DEFV(Local,DEFV(Float,INIT(R1,WR1)));
DEFV(Local,DEFV(Float,INIT(R2,WR2)));
DEFV(Local,DEFV(Float,INIT(R3,WR3)));
DEFV(Local,DEFV(Float,INIT(I1,WI1)));
DEFV(Local,DEFV(Float,INIT(I2,WI2)));
DEFV(Local,DEFV(Float,INIT(I3,WI3)));
                                        /* Definition du nombre complexe 'w'.                                                        */

#define   CX0                                                                                                                           \
                    FRA1(FRA1(FU))
#define   CY0                                                                                                                           \
                    FRA1(FRA2(FU))
#define   CZ0                                                                                                                           \
                    FZERO
                                        /* Definition des conditions initiales.                                                      */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F O N C T I O N S   D E   V I S U A L I S A T I O N   E T   D ' I N T E R P O L A T I O N  :                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrv/particule.31.I"

dfTRANSFORMAT_31(liste_COEFFICIENT_W_R1,fichier_COEFFICIENT_W_R1,COEFFICIENT_W_R1_IMPLICITE,WR1)
dfTRANSFORMAT_31(liste_COEFFICIENT_W_R2,fichier_COEFFICIENT_W_R2,COEFFICIENT_W_R2_IMPLICITE,WR2)
dfTRANSFORMAT_31(liste_COEFFICIENT_W_R3,fichier_COEFFICIENT_W_R3,COEFFICIENT_W_R3_IMPLICITE,WR3)
dfTRANSFORMAT_31(liste_COEFFICIENT_W_I1,fichier_COEFFICIENT_W_I1,COEFFICIENT_W_I1_IMPLICITE,WI1)
dfTRANSFORMAT_31(liste_COEFFICIENT_W_I2,fichier_COEFFICIENT_W_I2,COEFFICIENT_W_I2_IMPLICITE,WI2)
dfTRANSFORMAT_31(liste_COEFFICIENT_W_I3,fichier_COEFFICIENT_W_I3,COEFFICIENT_W_I3_IMPLICITE,WI3)
                                        /* Definition des fichiers de definition du nombre complexe 'w'.                             */
#define   sCOEFFICIENT_W_R1(numero_de_la_periode)                                                                                       \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_W_R1))
#define   sCOEFFICIENT_W_R2(numero_de_la_periode)                                                                                       \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_W_R2))
#define   sCOEFFICIENT_W_R3(numero_de_la_periode)                                                                                       \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_W_R3))
#define   sCOEFFICIENT_W_I1(numero_de_la_periode)                                                                                       \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_W_I1))
#define   sCOEFFICIENT_W_I2(numero_de_la_periode)                                                                                       \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_W_I2))
#define   sCOEFFICIENT_W_I3(numero_de_la_periode)                                                                                       \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_COEFFICIENT_W_I3))
                                        /* Formule generale definissant les variations du nombre complexe 'w' au cours du temps.     */

dfTRANSFORMAT_31(liste_VARIABLE_cx0,fichier_VARIABLE_cx0,VARIABLE_cx0_IMPLICITE,CX0)
dfTRANSFORMAT_31(liste_VARIABLE_cy0,fichier_VARIABLE_cy0,VARIABLE_cy0_IMPLICITE,CY0)
dfTRANSFORMAT_31(liste_VARIABLE_cz0,fichier_VARIABLE_cz0,VARIABLE_cz0_IMPLICITE,CZ0)
                                        /* Definition des fichiers des valeurs initiales des trois variables (x0,y0,z0).             */
#define   sVARIABLE_cx0(numero_de_la_periode)                                                                                           \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_VARIABLE_cx0))
#define   sVARIABLE_cy0(numero_de_la_periode)                                                                                           \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_VARIABLE_cy0))
#define   sVARIABLE_cz0(numero_de_la_periode)                                                                                           \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_VARIABLE_cz0))
                                        /* Formule generale definissant les variations des valeurs initiales des trois variables.    */

dfTRANSFORMAT_31(liste_PAS_DE_TEMPS_dct,fichier_PAS_DE_TEMPS_dct,PAS_DE_TEMPS_dct_IMPLICITE,DCT)
                                        /* Definition du fichier des pas de temps.                                                   */
#define   sPAS_DE_TEMPS_dct(numero_de_la_periode)                                                                                       \
                    FLOT(sTRANSFORMAT_31(numero_de_la_periode,liste_PAS_DE_TEMPS_dct))
                                        /* Formule generale definissant les variations du pas de temps.                              */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   T R O I S   F O N C T I O N S   ' F '  :                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   WR(t)                                                                                                                         \
                    AXPB(R2,COSX(MUL2(R3,t)),R1)
#define   WI(t)                                                                                                                         \
                    AXPB(I2,SINX(MUL2(I3,t)),I1)
#define   Wz(t)                                                                                                                         \
                    Zcentre_ESPACE
                                        /* Definition du nombre complexe 'w' :                                                       */
                                        /*                                                                                           */
                                        /*                  w = [WR(t),WI(t)]                                                        */
                                        /*                                                                                           */
                                        /* On notera l'introduction d'une pseudo troisieme composante destinee a definir 'Fz(...)'.  */

#define   FACTEUR_DU_DENOMINATEUR_DES_DERIVEES_PARTIELLES_DE_L_HAMILTONIEN                                                              \
                    MUL2(DEUX,CERCLE_TRIGONOMETRIQUE)
#define   DENOMINATEUR_DES_DERIVEES_PARTIELLES_DE_L_HAMILTONIEN(cx,cy,cz,t)                                                             \
                    MUL2(FACTEUR_DU_DENOMINATEUR_DES_DERIVEES_PARTIELLES_DE_L_HAMILTONIEN                                               \
                        ,ADD4(EXP2(SOUS(EXP2(cx),EXP2(cy)))                                                                             \
                             ,NEGA(GRO2(MUL2(SOUS(EXP2(cx),EXP2(cy))                                                                    \
                                            ,SOUS(EXP2(WR(t)),EXP2(WI(t)))                                                              \
                                             )                                                                                          \
                                        )                                                                                               \
                                   )                                                                                                    \
                             ,GRO4(EXP2(SOUS(MUL2(cx,cy),MUL2(WR(t),WI(t)))))                                                           \
                             ,EXP2(SOUS(EXP2(WR(t)),EXP2(WI(t))))                                                                       \
                              )                                                                                                         \
                         )                                                                                                              \
                                        /* Definition du denominateur des derivees partielles de l'Hamiltonien.                      */

#define   gFx(cx,cy,cz,t)                                                                                                               \
                    NEUT(DIVZ(ADD3(GRO4(EXP3(cy))                                                                                       \
                                  ,GRO4(MUL2(cy,ADD2(EXP2(cx),SOUS(EXP2(WR(t)),EXP2(WI(t))))))                                          \
                                  ,NEGA(GRO8(MUL3(cx,WR(t),WI(t))))                                                                     \
                                   )                                                                                                    \
                             ,DENOMINATEUR_DES_DERIVEES_PARTIELLES_DE_L_HAMILTONIEN(cx,cy,cz,t)                                         \
                              )                                                                                                         \
                         )                                                                                                              \
                                        /* Definition de la fonction F (x,y,z,t).                                                    */ \
                                        /*                            x                                                              */
#define   gFy(cx,cy,cz,t)                                                                                                               \
                    NEGA(DIVZ(ADD3(GRO4(EXP3(cx))                                                                                       \
                                  ,GRO4(MUL2(cx,SOUS(EXP2(cy),SOUS(EXP2(WR(t)),EXP2(WI(t))))))                                          \
                                  ,NEGA(GRO8(MUL3(cy,WR(t),WI(t))))                                                                     \
                                   )                                                                                                    \
                             ,DENOMINATEUR_DES_DERIVEES_PARTIELLES_DE_L_HAMILTONIEN(cx,cy,cz,t)                                         \
                              )                                                                                                         \
                         )                                                                                                              \
                                        /* Definition de la fonction F (x,y,z,t).                                                    */ \
                                        /*                            y                                                              */
#define   gFz(cx,cy,cz,t)                                                                                                               \
                    Wz(t)                                                                                                               \
                                        /* Definition de la fonction F (x,y,z,t).                                                    */ \
                                        /*                            z                                                              */

BFonctionF

DEFV(Local,DEFV(FonctionF,Fonction_Fx(cx,cy,cz,t)))
                                        /* Fonction introduite le 19970404085324 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(gFx(cx,cy,cz,t));
     Eblock

EFonctionF

BFonctionF

DEFV(Local,DEFV(FonctionF,Fonction_Fy(cx,cy,cz,t)))
                                        /* Fonction introduite le 19970404085324 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(gFy(cx,cy,cz,t));
     Eblock

EFonctionF

BFonctionF

DEFV(Local,DEFV(FonctionF,Fonction_Fz(cx,cy,cz,t)))
                                        /* Fonction introduite le 19970404085324 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(gFz(cx,cy,cz,t));
     Eblock

EFonctionF

#define   Fx(cx,cy,cz,t)                                                                                                                \
                    Fonction_Fx(cx,cy,cz,t)                                                                                             \
                                        /* Definition de la fonction F (x,y,z,t).                                                    */ \
                                        /*                            x                                                              */
#define   Fy(cx,cy,cz,t)                                                                                                                \
                    Fonction_Fy(cx,cy,cz,t)                                                                                             \
                                        /* Definition de la fonction F (x,y,z,t).                                                    */ \
                                        /*                            y                                                              */
#define   Fz(cx,cy,cz,t)                                                                                                                \
                    Fonction_Fz(cx,cy,cz,t)                                                                                             \
                                        /* Definition de la fonction F (x,y,z,t).                                                    */ \
                                        /*                            z                                                              */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E   L ' I N T E G R A T I O N   D U   S Y S T E M E                                                */
/*        D ' E Q U A T I O N S   D I F F E R E N T I E L L E S  :                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   ORDRE_DE_LA_METHODE_D_INTEGRATION                                                                                             \
                    METHODE_DE_RUNGE_KUTTA_D_ORDRE_4
                                        /* Mis avant 'xrk/integr.1B$vv$I' le 20070814110908...                                       */

#include  xrk/integr.1B.vv.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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 "  :                                                      */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/fluide_2D.11.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   I N I T I A L I S A T I O N S  :                                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.18.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        S I M U L A T I O N   D ' U N   F L U I D E   I N S T A T I O N N A I R E   I D E A L  :                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     /*..............................................................................................................................*/
     INITIALISATIONS_GENERALES;
                                        /* Initialisations generales faites au tout debut...                                         */

     iTRANSFORMAT_31(liste_COEFFICIENT_W_R1,COEFFICIENT_W_R1_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_W_R2,COEFFICIENT_W_R2_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_W_R3,COEFFICIENT_W_R3_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_W_I1,COEFFICIENT_W_I1_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_W_I2,COEFFICIENT_W_I2_IMPLICITE);
     iTRANSFORMAT_31(liste_COEFFICIENT_W_I3,COEFFICIENT_W_I3_IMPLICITE);
                                        /* Initialisation du nombre complexe 'w'.                                                    */

     iTRANSFORMAT_31(liste_VARIABLE_cx0,VARIABLE_cx0_IMPLICITE);
     iTRANSFORMAT_31(liste_VARIABLE_cy0,VARIABLE_cy0_IMPLICITE);
     iTRANSFORMAT_31(liste_VARIABLE_cz0,VARIABLE_cz0_IMPLICITE);
                                        /* Initialisation des valeurs initiales des trois variables (x0,y0,z0).                      */
     iTRANSFORMAT_31(liste_PAS_DE_TEMPS_dct,PAS_DE_TEMPS_dct_IMPLICITE);
                                        /* Initialisation du pas de temps.                                                           */
     iTRANSFORMAT_31(liste_NOMBRE_D_ITERATIONS,NOMBRE_D_ITERATIONS_IMPLICITE);
                                        /* Initialisation du nombre d'iterations.                                                    */

#include  xrv/champs_5.1A.I"

     GET_ARGUMENTSv(nombre_d_arguments
                   ,BLOC(PROCESS_ARGUMENTS_GEOMETRIQUES;

                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_W_R1="
                                                 ,fichier_COEFFICIENT_W_R1
                                                 ,liste_COEFFICIENT_W_R1
                                                 ,COEFFICIENT_W_R1_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_W_R2="
                                                 ,fichier_COEFFICIENT_W_R2
                                                 ,liste_COEFFICIENT_W_R2
                                                 ,COEFFICIENT_W_R2_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_W_R3="
                                                 ,fichier_COEFFICIENT_W_R3
                                                 ,liste_COEFFICIENT_W_R3
                                                 ,COEFFICIENT_W_R3_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_W_I1="
                                                 ,fichier_COEFFICIENT_W_I1
                                                 ,liste_COEFFICIENT_W_I1
                                                 ,COEFFICIENT_W_I1_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_W_I2="
                                                 ,fichier_COEFFICIENT_W_I2
                                                 ,liste_COEFFICIENT_W_I2
                                                 ,COEFFICIENT_W_I2_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("COEFFICIENT_W_I3="
                                                 ,fichier_COEFFICIENT_W_I3
                                                 ,liste_COEFFICIENT_W_I3
                                                 ,COEFFICIENT_W_I3_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );

                         PROCESS_ARGUMENT_FICHIER("VARIABLE_cx0="
                                                 ,fichier_VARIABLE_cx0
                                                 ,liste_VARIABLE_cx0
                                                 ,VARIABLE_cx0_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("VARIABLE_cy0="
                                                 ,fichier_VARIABLE_cy0
                                                 ,liste_VARIABLE_cy0
                                                 ,VARIABLE_cy0_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );
                         PROCESS_ARGUMENT_FICHIER("VARIABLE_cz0="
                                                 ,fichier_VARIABLE_cz0
                                                 ,liste_VARIABLE_cz0
                                                 ,VARIABLE_cz0_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );

                         PROCESS_ARGUMENT_FICHIER("PAS_DE_TEMPS_dct="
                                                 ,fichier_PAS_DE_TEMPS_dct
                                                 ,liste_PAS_DE_TEMPS_dct
                                                 ,PAS_DE_TEMPS_dct_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );

                         PROCESS_ARGUMENT_FICHIER("NOMBRE_D_ITERATIONS="
                                                 ,fichier_NOMBRE_D_ITERATIONS
                                                 ,liste_NOMBRE_D_ITERATIONS
                                                 ,NOMBRE_D_ITERATIONS_IMPLICITE
                                                 ,gTRANSFORMAT_31
                                                  );

                         PROCESS_ARGUMENTS_DE_VISUALISATION;

                         PROCESS_ARGUMENTS_DE_VISUALISATION_DES_AXES_DE_COORDONNEES;

                         GET_ARGUMENT_I("n=""iterations=",nombre_d_iterations);

                         GET_ARGUMENT_F("dt=""dct=",dct);

                         GET_ARGUMENT_I("ordre=""methode=""integration=",ordre_de_la_methode_d_integration);
                                        /* Les synonymes de "ordre=", ont ete introduits le 20060608151426...                        */

                         GET_ARGUMENT_L("tourbillons=",visualiser_les_deux_tourbillons);
                         GET_ARGUMENT_F("ROUGE_iterations=",composante_ROUGE_forcee_des_iterations);
                         GET_ARGUMENT_F("VERTE_iterations=",composante_VERTE_forcee_des_iterations);
                         GET_ARGUMENT_F("BLEUE_iterations=",composante_BLEUE_forcee_des_iterations);
                         GET_ARGUMENT_F("ROUGE_tourbillons=",composante_ROUGE_forcee_des_deux_tourbillons);
                         GET_ARGUMENT_F("VERTE_tourbillons=",composante_VERTE_forcee_des_deux_tourbillons);
                         GET_ARGUMENT_F("BLEUE_tourbillons=",composante_BLEUE_forcee_des_deux_tourbillons);

                         GET_ARGUMENT_L("tore=",visualiser_sur_un_tore);
                         GET_ARGUMENT_F("gR=",facteur_du_rayon_gR);
                         GET_ARGUMENT_F("pR=",facteur_du_rayon_pR);
                         )
                    );

#include  xrv/champs_5.19.I"
                                        /* Pour eviter le message :                                                                  */
                                        /*                                                                                           */
                                        /*                  Static function is not referenced.                                       */
                                        /*                                                                                           */
                                        /* sur 'SYSTEME_ES9000_AIX_CC'...                                                            */

#include  xrk/attractor.19.I"
                                        /* Validations et definition de l'espace physique.                                           */

     Komp(numero_de_la_periode_courante_de_la_simulation,nombre_de_periodes_de_la_simulation)
          Bblock
          RE_INITIALISATION_DE_L_HORLOGE;
          INITIALISATIONS_RELATIVES_A_CHAQUE_NOUVELLE_IMAGE(numero_de_la_periode_courante);
                                        /* Initialisations necessaires avant le calcul et la generation de chaque nouvelle image.    */

          EGAL(R1,sCOEFFICIENT_W_R1(numero_de_la_periode_courante));
          EGAL(R2,sCOEFFICIENT_W_R2(numero_de_la_periode_courante));
          EGAL(R3,sCOEFFICIENT_W_R3(numero_de_la_periode_courante));
          EGAL(I1,sCOEFFICIENT_W_I1(numero_de_la_periode_courante));
          EGAL(I2,sCOEFFICIENT_W_I2(numero_de_la_periode_courante));
          EGAL(I3,sCOEFFICIENT_W_I3(numero_de_la_periode_courante));
                                        /* Calcul de la valeur initiale du nombre complexe 'w'.                                      */

          EGAL(cx,sVARIABLE_cx0(numero_de_la_periode_courante));
          EGAL(cy,sVARIABLE_cy0(numero_de_la_periode_courante));
          EGAL(cz,sVARIABLE_cz0(numero_de_la_periode_courante));
                                        /* Calcul des valeurs initiales des trois variables (x0,y0,z0).                              */

          EGAL(dcx,FZERO);
          EGAL(dcy,FZERO);
          EGAL(dcz,FZERO);
                                        /* Initialisation des differentielles pour la premiere visualisation si celle-ci a lieu      */
                                        /* en couleurs. On notera que 'FZERO' est la valeur la plus "logique"...                     */

          vTRANSFORMAT_31(nombre_d_iterations,sNOMBRE_D_ITERATIONS,numero_de_la_periode_courante,fichier_NOMBRE_D_ITERATIONS);
                                        /* Calcul du nombre d'iterations lorsqu'il est variable.                                     */

          vTRANSFORMAT_31(dct,sPAS_DE_TEMPS_dct,numero_de_la_periode_courante,fichier_PAS_DE_TEMPS_dct);
                                        /* Calcul du pas de temps lorsqu'il est variable.                                            */

          Komp(numero_de_l_iteration_courante,nombre_d_iterations)
               Bblock
               RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES;
                                        /* On notera que cette recherche n'est pas conditionnee par 'editer_les_extrema', car les    */
                                        /* extrema pourraient etre utilises pour la visualisation...                                 */

               Test(IFOU(IL_FAUT(visualiser_le_fantome)
                        ,IFGE(numero_de_l_iteration_courante,PREMIERE_ITERATION_VISUALISEE)
                         )
                    )
                    Bblock
                    Test(IL_FAUT(visualiser_sur_un_tore))
                         Bblock
                         CALS(memorisation_1_point_07(X_DU_TORE(cx,cy,cz,temps_courant)
                                                     ,Y_DU_TORE(cx,cy,cz,temps_courant)
                                                     ,Z_DU_TORE(cx,cy,cz,temps_courant)
                                                     ,COMPOSANTE_ROUGE_DES_ITERATIONS
                                                     ,COMPOSANTE_VERTE_DES_ITERATIONS
                                                     ,COMPOSANTE_BLEUE_DES_ITERATIONS
                                                     ,numero_de_l_iteration_courante
                                                      )
                              );
                                        /* Memorisation de l'iteration courante sur un tore....                                      */

                         Test(IL_FAUT(visualiser_les_deux_tourbillons))
                              Bblock
                              CALS(memorisation_1_point_07(X_DU_TORE(NEGA(WR(temps_courant))
                                                                    ,NEGA(WI(temps_courant))
                                                                    ,Wz(temps_courant)
                                                                    ,temps_courant
                                                                     )
                                                          ,Y_DU_TORE(NEGA(WR(temps_courant))
                                                                    ,NEGA(WI(temps_courant))
                                                                    ,Wz(temps_courant)
                                                                    ,temps_courant
                                                                     )
                                                          ,Z_DU_TORE(NEGA(WR(temps_courant))
                                                                    ,NEGA(WI(temps_courant))
                                                                    ,Wz(temps_courant)
                                                                    ,temps_courant
                                                                     )
                                                          ,composante_ROUGE_forcee_des_deux_tourbillons
                                                          ,composante_VERTE_forcee_des_deux_tourbillons
                                                          ,composante_BLEUE_forcee_des_deux_tourbillons
                                                          ,numero_de_l_iteration_courante
                                                           )
                                   );
                              CALS(memorisation_1_point_07(X_DU_TORE(NEUT(WR(temps_courant))
                                                                    ,NEUT(WI(temps_courant))
                                                                    ,Wz(temps_courant)
                                                                    ,temps_courant
                                                                     )
                                                          ,Y_DU_TORE(NEUT(WR(temps_courant))
                                                                    ,NEUT(WI(temps_courant))
                                                                    ,Wz(temps_courant)
                                                                    ,temps_courant
                                                                     )
                                                          ,Z_DU_TORE(NEUT(WR(temps_courant))
                                                                    ,NEUT(WI(temps_courant))
                                                                    ,Wz(temps_courant)
                                                                    ,temps_courant
                                                                     )
                                                          ,composante_ROUGE_forcee_des_deux_tourbillons
                                                          ,composante_VERTE_forcee_des_deux_tourbillons
                                                          ,composante_BLEUE_forcee_des_deux_tourbillons
                                                          ,numero_de_l_iteration_courante
                                                           )
                                   );
                                        /* Memorisation des deux tourbillons lorsqu'ils sont visualises...                           */
                              Eblock
                         ATes
                              Bblock
                              Eblock
                         ETes
                         Eblock
                    ATes
                         Bblock
                         CALS(memorisation_1_point_07(SOUS(cx,Xcentre_ESPACE)
                                                     ,SOUS(cy,Ycentre_ESPACE)
                                                     ,SOUS(cz,Zcentre_ESPACE)
                                                     ,COMPOSANTE_ROUGE_DES_ITERATIONS
                                                     ,COMPOSANTE_VERTE_DES_ITERATIONS
                                                     ,COMPOSANTE_BLEUE_DES_ITERATIONS
                                                     ,numero_de_l_iteration_courante
                                                      )
                              );
                                        /* Memorisation de l'iteration courante dans l'espace "normal"...                            */

                         Test(IL_FAUT(visualiser_les_deux_tourbillons))
                              Bblock
                              CALS(memorisation_1_point_07(SOUS(NEGA(WR(temps_courant)),Xcentre_ESPACE)
                                                          ,SOUS(NEGA(WI(temps_courant)),Ycentre_ESPACE)
                                                          ,SOUS(Wz(temps_courant),Zcentre_ESPACE)
                                                          ,composante_ROUGE_forcee_des_deux_tourbillons
                                                          ,composante_VERTE_forcee_des_deux_tourbillons
                                                          ,composante_BLEUE_forcee_des_deux_tourbillons
                                                          ,numero_de_l_iteration_courante
                                                           )
                                   );
                              CALS(memorisation_1_point_07(SOUS(NEUT(WR(temps_courant)),Xcentre_ESPACE)
                                                          ,SOUS(NEUT(WI(temps_courant)),Ycentre_ESPACE)
                                                          ,SOUS(Wz(temps_courant),Zcentre_ESPACE)
                                                          ,composante_ROUGE_forcee_des_deux_tourbillons
                                                          ,composante_VERTE_forcee_des_deux_tourbillons
                                                          ,composante_BLEUE_forcee_des_deux_tourbillons
                                                          ,numero_de_l_iteration_courante
                                                           )
                                   );
                                        /* Memorisation des deux tourbillons lorsqu'ils sont visualises...                           */
                              Eblock
                         ATes
                              Bblock
                              Eblock
                         ETes
                         Eblock
                    ETes
                    Eblock
               ATes
                    Bblock
                    Eblock
               ETes

               INTEGRATION_D_UN_SYSTEME_D_EQUATIONS_DIFFERENTIELLES_O1(temps_courant,dct);
                                        /* Integration du systeme d'equations differentielles suivant la methode choisie...          */

               INCREMENTATION_DE_L_HORLOGE(dct);
                                        /* Simulation du temps de la simulation...                                                   */
               Eblock
          EKom

#include  xrk/attractor.1A.I"

          VISUALISATION_DES_AXES_DE_COORDONNEES;
                                        /* Visualisation si necessaire des trois axes de coordonnees.                                */

          GENERATION_D_UNE_IMAGE_ET_PASSAGE_A_LA_SUIVANTE(BLOC(VIDE;));
                                        /* Generation de l'image courante...                                                         */
          Eblock
     EKom

     EDITION_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES;
                                        /* Edition facultative des extrema des coordonnees et des derivees.                          */

     RETU_Commande;
     Eblock
ECommande



Copyright © Jean-François COLONNA, 2019-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2019-2024.