/*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N S D E S F O N C T I O N 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/Hspherik.11$I' : */ /* */ /* Jean-Francois Colonna (LACTAMME, 1993??????????). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* H A R M O N I Q U E S S P H E R I Q U E S : */ /* */ /*************************************************************************************************************************************/ -define HARMONIQUES_SPHERIQUES_RI(harmonique_spherique,theta,phi,l,m,ligne_trigonometrique) \ -_-_-_- Bblock \ -_-_-_- DEFV(Float,INIT(cos_theta,COSX(theta))); \ -_-_-_- DEFV(Float,INIT(d_cos_theta,d_FVARIABLES_DE_DERIVATION)); \ -_-_-_- /* Il est imperatif de passer par une valeur intermediaire pour la valeur du cosinus ou du */ \ -_-_-_- /* sinus courant ; en effet, sinon, si l'on ecrit : */ \ -_-_-_- /* */ \ -_-_-_- /* LEGENDRE(COSX(theta),l,m) */ \ -_-_-_- /* */ \ -_-_-_- /* la derivation formelle ne se fait pas par rapport a la variable "muette" 'x' definissant */ \ -_-_-_- /* le polynome de Legendre, mais par rapport a 'theta' ce qui est mauvais... */ \ -_-_-_- /* */ \ -_-_-_- /* Les variables 'd_d_cos_theta' et 'd_d_d_cos_theta' ont ete introduites respectivement */ \ -_-_-_- /* le 20161206143638 et le 20161206144354. Finalement, le 20161224105135 elles ont disparu */ \ -_-_-_- /* suite a la nouvelle version de 'v $xccp/derive_varia$sed'... */ \ -_-_-_- EGAL(harmonique_spherique \ -_-_-_- ,MUL4(MONX(NEGA(FU),m) \ -_-_-_- ,RACX(DIVI(MUL2(DOUP(l),FACT(SOUS(l,m))) \ -_-_-_- ,MUL2(GRO4(PI),FACT(ADD2(l,m))) \ -_-_-_- ) \ -_-_-_- ) \ -_-_-_- ,LEGENDRE(cos_theta,l,m) \ -_-_-_- ,ligne_trigonometrique(MUL2(m,phi)) \ -_-_-_- ) \ -_-_-_- ); \ -_-_-_- Eblock -define HARMONIQUES_SPHERIQUES_R(harmonique_spherique_R,theta,phi,l,m) \ -_-_-_- Bblock \ -_-_-_- HARMONIQUES_SPHERIQUES_RI(harmonique_spherique_R,theta,phi,l,m,COSX); \ -_-_-_- Eblock -define HARMONIQUES_SPHERIQUES_I(harmonique_spherique_I,theta,phi,l,m) \ -_-_-_- Bblock \ -_-_-_- HARMONIQUES_SPHERIQUES_RI(harmonique_spherique_I,theta,phi,l,m,SINX); \ -_-_-_- Eblock /* Definition des harmoniques spheriques : */ /* _______________ */ /* / */ /* m m \ / (2.l+1).(l-m)! m i.m.phi */ /* Y (theta,phi) = (-1) . \ / ----------------.P (cos(theta)).e */ /* l \/ 4.pi.(l+m)! l */ /* */ /* avec : */ /* */ /* l = 0,1,2,...,+infini */ /* m = 0,1,2,...,l */ /* */ /* soit : */ /* */ /* 0 <= m <= l */ /* */ /* et ou 'P(...)' designe un polynome de Legendre. */