/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   D E   Q U E L Q U E S   P R O C E D U R E S   N E C E S S A I R E S                                */
/*        A   L ' E T U D E   D E   L ' A T O M E   D ' H Y D R O G E N E  :                                                         */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrq/hydrogene.23$I' :                                                                                          */
/*                                                                                                                                   */
/*                    Jean-Francois Colonna (LACTAMME, 1993??????????).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C A L C U L   L O C A L   D ' U N E   F O N C T I O N   P R O P R E  :                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   CALCUL_D_UNE_FONCTION_PROPRE(ordre_n,ordre_l,ordre_m)                                                                         \
                    Bblock                                                                                                              \
                    CALCUL_D_UNE_FONCTION_PROPRE_DE_NOM_QUELCONQUE(fonction_propre,ordre_n,ordre_l,ordre_m);                            \
                    Eblock                                                                                                              \
                                        /* Calcul de la fonction propre locale pour un couple (n,l,m) de nom 'fonction_propre'...    */

#define   CALCUL_D_UNE_FONCTION_PROPRE_DE_NOM_QUELCONQUE(fonction_propre,ordre_n,ordre_l,ordre_m)                                       \
                    Bblock                                                                                                              \
                    FONCTIONS_PROPRES_R(Reelle(fonction_propre)                                                                         \
                                       ,RHO,THETA,PHI                                                                                   \
                                       ,constante_a                                                                                     \
                                       ,ordre_n,ordre_l,ordre_m                                                                         \
                                        );                                                                                              \
                    Test(IL_FAUT(calculer_aussi_la_partie_Imaginaire))                                                                  \
                         Bblock                                                                                                         \
                         FONCTIONS_PROPRES_I(Imaginaire(fonction_propre)                                                                \
                                            ,RHO,THETA,PHI                                                                              \
                                            ,constante_a                                                                                \
                                            ,ordre_n,ordre_l,ordre_m                                                                    \
                                             );                                                                                         \
                         Eblock                                                                                                         \
                    ATes                                                                                                                \
                         Bblock                                                                                                         \
                         EGAL(Imaginaire(fonction_propre),FZERO);                                                                       \
                                        /* Lorsque la partie Imaginaire n'est pas demandee, on lui donne une valeur nulle...         */ \
                         Eblock                                                                                                         \
                    ETes                                                                                                                \
                    Eblock                                                                                                              \
                                        /* Calcul de la fonction propre locale pour un couple (n,l,m) de nom quelconque...           */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        C A L C U L   L O C A L   D ' U N E   F O N C T I O N   P R O P R E  :                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   CALCULER_LA_PROBABILITE_EN_COORDONNEES_SPHERIQUES                                                                             \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(calculer_la_probabilite_en_coordonnees_spheriques,CALCULER_LA_PROBABILITE_EN_COORDONNEES_SPHERIQUES)));
                                        /* Indique si 'densite_de_probabilite_de_presence' est calculee en coordonnees spheriques    */
                                        /* ('VRAI') ou cartesiennes ("FAUX')...                                                      */

#define   TRANSLATION_DU_CARRE_DU_RAYON                                                                                                 \
                    FZERO
DEFV(Local,DEFV(Float,INIT(translation_du_carre_du_rayon,TRANSLATION_DU_CARRE_DU_RAYON)));
                                        /* Meme si cela a peu de sens (physique ou mathematique), on se donne la possibilite de      */
                                        /* translater le carre du rayon (ou 'parametre_r').                                          */

#define   CALCUL_D_UNE_DENSITE_DE_PROBABILITE_DE_PRESENCE_QUELCONQUE(fonction_propre)                                                   \
                    Bblock                                                                                                              \
                    EGAL(densite_de_probabilite_de_presence                                                                             \
                        ,COND(IL_FAUT(calculer_la_probabilite_en_coordonnees_spheriques)                                                \
                             ,MUL2(Cmodule2(fonction_propre)                                                                            \
                                  ,MUL2(GRO4(PI)                                                                                        \
                                       ,ADD2(EXP2(parametre_r),EXP2(translation_du_carre_du_rayon))                                     \
                                        )                                                                                               \
                                   )                                                                                                    \
                             ,NEUT(Cmodule2(fonction_propre))                                                                           \
                              )                                                                                                         \
                         );                                                                                                             \
                                        /* Calcul de la densite de probabilite de presence. La probabilite de trouver l'electron     */ \
                                        /* dans une couche spherique d'epaisseur 'dr' est :                                          */ \
                                        /*                                                                                           */ \
                                        /*                                    2       2                                              */ \
                                        /*                  P(r).dr = |psi   | .4.pi.r .dr                                           */ \
                                        /*                                nlm                                                        */ \
                                        /*                                                                                           */ \
                                        /* que l'on generalise en :                                                                  */ \
                                        /*                                                                                           */ \
                                        /*                                    2        2     2                                       */ \
                                        /*                  P(r).dr = |psi   | .4.pi.(r  + Tr ).dr                                   */ \
                                        /*                                nlm                                                        */ \
                                        /*                                                                                           */ \
                                        /* lorsque l'on utilise les coordonnees spheriques ; sinon, on prendra :                     */ \
                                        /*                                                                                           */ \
                                        /*                                 2                                                         */ \
                                        /*                  P(r) = |psi   |                                                          */ \
                                        /*                             nlm                                                           */ \
                                        /*                                                                                           */ \
                                        /* ou 'psi' designe la fonction propre pour les nombres quantiques (n,l,m).                  */ \
                    Eblock                                                                                                              \
                                        /* Calcul de la fonction propre locale pour un couple (n,l,m).                               */
#define   CALCUL_D_UNE_DENSITE_DE_PROBABILITE_DE_PRESENCE(ordre_n,ordre_l,ordre_m)                                                      \
                    Bblock                                                                                                              \
                    DEFV(complexe,fonction_propre);                                                                                     \
                                        /* Definition des parties Reelle et Imaginaire des fonctions propres.                        */ \
                    CALCUL_D_UNE_FONCTION_PROPRE(ordre_n,ordre_l,ordre_m);                                                              \
                                        /* Calcul de la fonction propre (n,l,m) demandee...                                          */ \
                    CALCUL_D_UNE_DENSITE_DE_PROBABILITE_DE_PRESENCE_QUELCONQUE(fonction_propre);                                        \
                                        /* Calcul de la densite de probabilite de presence.                                          */ \
                    Eblock                                                                                                              \
                                        /* Calcul de la fonction propre locale pour un couple (n,l,m).                               */



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