/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   R E L A T I V E S   A   L A   D E R I V A T I O N   F O R M E L L E                                */
/*        D E S   V A G U E S   1   D E   J E E N E R  :                                                                             */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrs/vagues.11$I' :                                                                                             */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 20200319164619).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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 '  :                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
                                        /* ATTENTION, il est imperatif que les fonctions derivables formellement soient definies     */
                                        /* dans un fichier a part afin qu'elles ne soient pas l'objet d'une double definition. En    */
                                        /* effet, on trouve dans 'v $xcc/cpp$Z' :                                                    */
                                        /*                                                                                           */
                                        /*                  $CA  $module$w                                                           */
                                        /*                                 | $xcp/cpp$X          ... -c$PASSE_D -e$PASSE_5           */
                                        /*                                                                              > $fichierR  */
                                        /*                                                                                           */
                                        /* Ainsi, si par exemple la definition de 'Fx(u,v)' etait faite localement dans le           */
                                        /* fichier '$xrf/recursif.11$K', cette definition apparaitrait deux fois dans le fichier     */
                                        /* '$module$w' : une premiere fois en tete, provenant de '$PASSE_D' ou l'on ne trouve que    */
                                        /* les definitions du type '-define ...', puis une deuxieme fois a la suite, la ou se trouve */
                                        /* concatene au fichier '$module$W' des '-define ...' le fichier '$fichierA' a compiler...   */

                                        /* Les definitions suivantes de {Fx,Fy,Fz} viennent despectivement de :                      */
                                        /*                                                                                           */
                                        /*                  omega = v + i.u                                                          */
                                        /*                                                                                           */
                                        /* puis :                                                                                    */
                                        /*                                                                                           */
                                        /*                  X --0-->  sin(omega)/omega                                               */
                                        /*                                 |                                                         */
                                        /*                                  --> developpement en serie                               */
                                        /*                                           |                                               */
                                        /*                                            --> extraction de la partie reelle             */
                                        /*                                                     |                                     */
                                        /*                                                      --> integration par rapport a 'v'.   */
                                        /*                                                                                           */
                                        /*                                                                                           */
                                        /*                  Y --0-->  cos(omega)/omega                                               */
                                        /*                                 |                                                         */
                                        /*                                  --> developpement en serie                               */
                                        /*                                           |                                               */
                                        /*                                            --> extraction de la partie reelle             */
                                        /*                                                     |                                     */
                                        /*                                                      --> integration par rapport a 'v'.   */
                                        /*                                                                                           */
                                        /*                                                                                           */
                                        /* Voici de plus les developpements en serie de 'cos(x)' et de 'sin(x)' :                    */
                                        /*                                                                                           */
                                        /*                             0      2      4      6                                        */
                                        /*                            x      x      x      x                                         */
                                        /*                  cos(x) = ---- - ---- + ---- - ---- + ...                                 */
                                        /*                            0!     2!     4!     6!                                        */
                                        /*                                                                                           */
                                        /*                                                                                           */
                                        /*                             1      3      5      7                                        */
                                        /*                            x      x      x      x                                         */
                                        /*                  sin(x) = ---- - ---- + ---- - ---- + ...                                 */
                                        /*                            1!     3!     5!     7!                                        */
                                        /*                                                                                           */
                                        /*                                                                                           */
                                        /* Voici enfin le binome de Newton utilise pour calculer les puissances de 'x=omega=v+i.u' : */
                                        /*                                                                                           */
                                        /*                            m=n                                                            */
                                        /*                           -----                                                           */
                                        /*                           \                                                               */
                                        /*                       n    \    m  n-m  m                                                 */
                                        /*                  (a+b)  =  /   C .a   .b                                                  */
                                        /*                           /     n                                                         */
                                        /*                           -----                                                           */
                                        /*                            m=0                                                            */
                                        /*                                                                                           */

-define   _0                                                                                                                            \
-_-_-_-             ZERO
-define   _1                                                                                                                            \
-_-_-_-             UN
-define   _2                                                                                                                            \
-_-_-_-             DEUX
-define   _3                                                                                                                            \
-_-_-_-             TROIS
-define   _4                                                                                                                            \
-_-_-_-             QUATRE
-define   _5                                                                                                                            \
-_-_-_-             CINQ
-define   _6                                                                                                                            \
-_-_-_-             SIX
-define   _7                                                                                                                            \
-_-_-_-             SEPT

-define   PLUS____                                                                                                                      \
-_-_-_-             NEUT(FU)
-define   MOINS___                                                                                                                      \
-_-_-_-             NEGA(FU)
                                        /* Afin d'homogeneiser les tabulations...                                                    */

-define   EXPi(u,exposant)                                                                                                              \
-_-_-_-             MUL2(PUIX(Carre_de_i__Complexe,MOIT(exposant)),PUIX(u,exposant))
                                        /* Afin de calculer la valeur de 'i' eleve a une puissance paire que l'on divise par 2       */
                                        /* (via le 'MOIT(...)') afin de prendre en compte qu'en fait ce que l'on calcule est :       */
                                        /*                                                                                           */
                                        /*                   exposant                                                                */
                                        /*                  i                                                                        */
                                        /*                                                                                           */
                                        /* soit encore :                                                                             */
                                        /*                     exposant                                                              */
                                        /*                    ----------                                                             */
                                        /*                        2                                                                  */
                                        /*                   2                                                                       */
                                        /*                  i                                                                        */
                                        /*                                                                                           */
                                        /* lorsque l'exposant est pair, ce qui est le cas ici...                                     */

-define   Fx_VaguesDeJeener_1(u,v)                                                                                                      \
-_-_-_-             MUL2(PUIX(NEGA(FU),MUL2(parametre_v,parametre_u))                                                                   \
-_-_-_-                 ,LIZ4(PLUS____,DIVI(LIZ1(parametre_a,MUL3(COnm(_0,_0),p_PUIX(v,_0),EXPi(u,_0))                                  \
-_-_-_-                                          )                                                                                      \
-_-_-_-                                    ,FLOT(FACT(_1))                                                                              \
-_-_-_-                                     )                                                                                           \
-_-_-_-                      ,MOINS___,DIVI(LIZ2(parametre_b,MUL3(COnm(_2,_0),p_PUIX(v,_2),EXPi(u,_0))                                  \
-_-_-_-                                         ,parametre_c,MUL3(COnm(_2,_2),p_PUIX(v,_0),EXPi(u,_2))                                  \
-_-_-_-                                          )                                                                                      \
-_-_-_-                                    ,FLOT(FACT(_3))                                                                              \
-_-_-_-                                     )                                                                                           \
-_-_-_-                      ,PLUS____,DIVI(LIZ3(parametre_d,MUL3(COnm(_4,_0),p_PUIX(v,_4),EXPi(u,_0))                                  \
-_-_-_-                                         ,parametre_e,MUL3(COnm(_4,_2),p_PUIX(v,_2),EXPi(u,_2))                                  \
-_-_-_-                                         ,parametre_f,MUL3(COnm(_4,_4),p_PUIX(v,_0),EXPi(u,_4))                                  \
-_-_-_-                                          )                                                                                      \
-_-_-_-                                    ,FLOT(FACT(_5))                                                                              \
-_-_-_-                                     )                                                                                           \
-_-_-_-                      ,MOINS___,DIVI(LIZ4(parametre_g,MUL3(COnm(_6,_0),p_PUIX(v,_6),EXPi(u,_0))                                  \
-_-_-_-                                         ,parametre_h,MUL3(COnm(_6,_2),p_PUIX(v,_4),EXPi(u,_2))                                  \
-_-_-_-                                         ,parametre_i,MUL3(COnm(_6,_4),p_PUIX(v,_2),EXPi(u,_4))                                  \
-_-_-_-                                         ,parametre_j,MUL3(COnm(_6,_6),p_PUIX(v,_0),EXPi(u,_6))                                  \
-_-_-_-                                          )                                                                                      \
-_-_-_-                                    ,FLOT(FACT(_7))                                                                              \
-_-_-_-                                     )                                                                                           \
-_-_-_-                       )                                                                                                         \
-_-_-_-                  )
                                        /* Definition de la fonction F (u,v).                                                        */
                                        /*                            x                                                              */
                                        /*                                                                                           */
                                        /* On notera le '(-1)^parametre_u' qui semble ne servir a rien, mais en fait il permet       */
                                        /* d'assembler cote a cote plusieurs elements ('v $xrs/vagues.11$K DoIn.parametre_u.')...    */
                                        /*                                                                                           */
                                        /* Le 20200326095643, 'parametre_u' a ete "complete" par 'parametre_v' qui permet, s'il a    */
                                        /* une valeur nulle, d'inhiber l'effet d'inversion de 'parametre_u'...                       */
-define   Fy_VaguesDeJeener_1(u,v)                                                                                                      \
-_-_-_-             LIZ4(PLUS____,DIVI(LIZ1(parametre_k,MOIT(LOGX(ADD2(CModule_2D(v,u),parametre_l)))                                   \
-_-_-_-                                     )                                                                                           \
-_-_-_-                               ,FLOT(FACT(_0))                                                                                   \
-_-_-_-                                )                                                                                                \
-_-_-_-                 ,MOINS___,DIVI(LIZ1(parametre_m,MUL3(COnm(_1,_0),p_PUIX(v,_1),EXPi(u,_0))                                       \
-_-_-_-                                     )                                                                                           \
-_-_-_-                               ,FLOT(FACT(_2))                                                                                   \
-_-_-_-                                )                                                                                                \
-_-_-_-                 ,PLUS____,DIVI(LIZ2(parametre_n,MUL3(COnm(_3,_0),p_PUIX(v,_3),EXPi(u,_0))                                       \
-_-_-_-                                    ,parametre_p,MUL3(COnm(_3,_2),p_PUIX(v,_1),EXPi(u,_2))                                       \
-_-_-_-                                     )                                                                                           \
-_-_-_-                               ,FLOT(FACT(_4))                                                                                   \
-_-_-_-                                )                                                                                                \
-_-_-_-                 ,MOINS___,DIVI(LIZ3(parametre_q,MUL3(COnm(_5,_0),p_PUIX(v,_5),EXPi(u,_0))                                       \
-_-_-_-                                    ,parametre_r,MUL3(COnm(_5,_2),p_PUIX(v,_3),EXPi(u,_2))                                       \
-_-_-_-                                    ,parametre_s,MUL3(COnm(_5,_4),p_PUIX(v,_1),EXPi(u,_4))                                       \
-_-_-_-                                     )                                                                                           \
-_-_-_-                               ,FLOT(FACT(_6))                                                                                   \
-_-_-_-                                )                                                                                                \
-_-_-_-                  )
                                        /* Definition de la fonction F (u,v).                                                        */
                                        /*                            y                                                              */
                                        /*                                                                                           */
                                        /* Le 'MOIT(LOGX(...))' vient de l'integration en 'v' de la Partie Reelle de :               */
                                        /*                                                                                           */
                                        /*                      1        v - i.u                                                     */
                                        /*                  --------- = ---------                                                    */
                                        /*                   v + i.u      2    2                                                     */
                                        /*                               v  + u                                                      */
                                        /*                                                                                           */
                                        /* soit :                                                                                    */
                                        /*                                                                                           */
                                        /*                      v                                                                    */
                                        /*                  ---------                                                                */
                                        /*                    2    2                                                                 */
                                        /*                   v  + u                                                                  */
                                        /*                                                                                           */
                                        /* le changement de variable 'w=v^2 + u^2' donnant par integration en 'w' ('u^2' etant       */
                                        /* alors une constante) avec 'dw=2.v.dv' :                                                   */
                                        /*                                                                                           */
                                        /*                   1       2    2                                                          */
                                        /*                  ---.log(v  + u )                                                         */
                                        /*                   2                                                                       */
                                        /*                                                                                           */
-define   Fz_VaguesDeJeener_1(u,v)                                                                                                      \
-_-_-_-             LIZ2(parametre_t,Theta_2D(u,v)                                                                                      \
-_-_-_-                 ,parametre_u,PI                                                                                                 \
-_-_-_-                  )
                                        /* Definition de la fonction F (u,v).                                                        */
                                        /*                            z                                                              */
                                        /*                                                                                           */
                                        /* On notera les correspondances suivantes dans un plan (d'apres 'omega = v + i.u') :        */
                                        /*                                                                                           */
                                        /*                  v   -->   coordonnee X                                                   */
                                        /*                  u   -->   coordonnee Y                                                   */
                                        /*                                                                                           */
                                        /* Or c'est 'atan(v,u)' que l'on calcule ici et non pas 'atan(u,v)'. En effet, voici les     */
                                        /* definitions utilisees :                                                                   */
                                        /*                                                                                           */
                                        /*        Theta_2D(x,y)                                                                      */
                                        /*        |                                                                                  */
                                        /*         ---->    Angle1_2D(x,y)                                                           */
                                        /*                  Angle1_2D(X1,X2)                                                         */
                                        /*                  |                                                                        */
                                        /*                   ---->    gaAngle1_2D(FX1origine,FX2origine,X1,X2)                       */
                                        /*                            |                                                              */
                                        /*                             ---->    gAngle1_2D(ATAN,O1,O2,X1,X2)                         */
                                        /*                                      |                                                    */
                                        /*                                       ---->    arc_tangente(SOUS(X2,O2),SOUS(X1,O1))      */
                                        /*                                                                                           */
                                        /*                                                                  /\          /\           */
                                        /*                                                                  ||          ||           */
                                        /*                                                                  | ---------- |           */
                                        /*                                                                   ------------            */
                                        /*                                                                                           */
                                        /*                                                   ATTENTION : 'X1' et 'X2' sont permutes  */
                                        /*                                                                                           */
                                        /* (dans 'v $ximD/definit.1$DEF Theta_2D') soit donc :                                       */
                                        /*                                                                                           */
                                        /*        Theta_2D(x,y)=ATAN(y,x)                                                            */
                                        /*                                                                                           */
                                        /* et donc :                                                                                 */
                                        /*                                                                                           */
                                        /*        Theta_2D(u,v)=ATAN(v,u)                                                            */
                                        /*                                                                                           */
                                        /* Mais la definition de 'Fz_VaguesDeJeener_1(...)' est finalement arbitraire...             */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        I N I T I A L I S A T I O N S   R E L A T I V E S   A   L A   P S E U D O - P R O J E C T I O N  :                         */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
-define   Pxyz_VaguesDeJeener_1                                                                                                         \
-_-_-_-             Bblock                                                                                                              \
-_-_-_-             BLOC(VIDE;);                                                                                                        \
-_-_-_-             Eblock
                                        /* Initialisations specifiques a cette surface destinees a permettre la reinjection des      */
                                        /* trois pseudo-projections {Projection_de_Fx,Projection_de_Fy,Projection_de_Fz} dans        */
                                        /* 'v $xrs/project2D.11$K'...                                                                */



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