next up previous contents index
suivant: III.D.3 Recettes d'implémentation sur machine vectorielle. monter: III.D.2 Algorithmes conditionnels de programmation. précédent: III.D.2.2 Programmation de I2.   Table des matières   Index


III.D.2.3 Programmation de I3.

Rappelons que I3 (III.D.8) est donné par

(III.D.16) \begin{displaymath}
I_3(\alpha,\beta,\gamma) = 6V e^{i{{\mathbf k}}\vec{G}} e^{ ...
...eta,\gamma)-I(\beta ,\alpha)}{\displaystyle 2i(\gamma-\alpha)}
\end{displaymath}

en définissant les fonctions I et f par
(III.D.17) \begin{displaymath}
\left\{
\null\,\vcenter{\openup\jot \let\\ =\@
\ialign{\str...
...tyle \sin{\lambda}}{\displaystyle \lambda}}
\crcr}}\,
\right.
\end{displaymath}

ou en définissant Zn = ei<I>k<I>Xn <I>Xn est la position du n-ième sommet du tétraèdre,

\begin{displaymath}
I_3 = 6V Z_n \frac{\displaystyle I(\beta,\gamma)-I(\beta ,\alpha)}{\displaystyle 2i(\gamma-\alpha)} \ .
\end{displaymath}

La programmation de cette intégrale volumique est très compliquée. Nous donnons l'algorithme de calcul sans explication, cet algorithme étant dans la ligne logique des algorithmes présentés dans les sections III.D.2.1 et III.D.2.2.

Nous laissons au lecteur le soin de calculer $\epsilon_1$ et $\epsilon_2$ de façon à maximiser la précision des calculs quels que soient les paramètres de la fonction I3.

  1. Pour $\vert\alpha-\gamma\vert\geq \epsilon_2 $:
    1. Pour $\vert\beta-\alpha\vert \mbox{ et } \vert\beta-\gamma\vert\geq \epsilon_2 $:

      1. Pour $ \vert\alpha\vert \leq \epsilon_1 $, on calcule alors I3 en remplaçant $f(\alpha)$ par 1.
      2. Pour $ \vert\beta\vert \leq \epsilon_1 $, on calcule alors I3 en remplaçant $f(\beta)$ par 1.
      3. Pour $ \vert\gamma\vert \leq \epsilon_1 $, on calcule alors I3 en remplaçant $f(\gamma)$ par 1.
      4. Pour $(\alpha,\beta,\gamma) \geq \epsilon_2$, on calcule I3 simplement par la formule III.D.16.

    2. Pour $\vert\beta-\alpha\vert \leq \epsilon_2 \mbox{ ou (exclusif) } \vert\beta-\gamma\vert \leq \epsilon_2$, comme le problème est symétrique, on suppose: $\vert\beta-\alpha\vert \leq \epsilon_2$. On doit donc remplacer $I(\alpha,\beta)$ par un développement:
      1. Pour $\vert\alpha\vert \leq \epsilon_2 \mbox{ et (ou) } \vert\beta\vert \leq \epsilon_2$, on calcule alors $I(\alpha,\beta)$ par son développement limité:


        (III.D.18) \begin{displaymath}%
\left\{
\null\,\vcenter{\openup\jot \let\\ =\@
\ialign{\st...
...} +i {{{{\mathrm O}}(\alpha,\beta)}^5} \cr
\crcr}}\,
\right.
\end{displaymath}

      2. Pour $\vert\alpha\vert \mbox{ et } \vert\beta\vert \geq \epsilon_2$, on calcule alors $I(\alpha,\beta)$ par:
        (III.D.19) \begin{displaymath}%
\null\,\vcenter{\openup\jot \let\\ =\@
\ialign{\strut\hfil...
...eta-\alpha,-\alpha) \cr
& = Z_1 I(\delta,-\alpha)
\crcr}}\,
\end{displaymath}

        où le dénominateur de $I(\delta,-\alpha)$ est forcément assez grand. On remplace $f(\delta)$ par:

        \begin{displaymath}
e^{i\delta} \frac{\displaystyle \sin{ \delta } }{\displaysty...
...{\displaystyle 120} \delta ^4 )
+ {{{{\mathrm O}}(\delta)}^6}
\end{displaymath}

  2. Pour $ \vert\alpha-\gamma\vert \leq \epsilon_2 $:
    1. Pour $ \vert\alpha\vert \mbox{ et } \vert\gamma\vert \geq \epsilon_2$, on a

      \begin{displaymath}
I_3 = V Z_3
{\frac{\displaystyle I(\beta_3 , \gamma_3)-I(\beta_3 , \alpha_3) }{\displaystyle 2i(\gamma_3-\alpha_3)}} \ ,
\end{displaymath}

      avec $\alpha_3-\gamma_3=-\alpha$. On se ramène alors à l'étude précédente avec $\vert\alpha_3-\gamma_3\vert \geq \epsilon_2 $.

    2. Pour $ \vert\alpha\vert \leq \epsilon_2 \mbox{ et (ou) } \vert\gamma\vert \leq \epsilon_2$:
      1. Pour $ \vert\beta \vert \leq \epsilon_2 $, on effectue un développement limité complet de I3:
        (III.D.20) \begin{displaymath}
\left\{
\null\,\vcenter{\openup\jot \let\\ =\@
\ialign{\s...
...+i {{{{\mathrm O}}(\alpha,\beta,\gamma)}^5}
\crcr}}\,
\right.
\end{displaymath}

      2. Pour $ \vert\beta\vert \geq \epsilon_2 $, on a

        \begin{displaymath}
I_3 = V Z_4
{\frac{\displaystyle I(\beta_4 , \gamma_4)-
I(\beta_4 , \alpha_4)}{\displaystyle 2i(\gamma_4-\alpha_4)}}
\end{displaymath}

        avec $\alpha_4-\gamma_4=-\beta$. On se ramène alors à l'étude précédente avec $\vert\alpha_4-\gamma_4\vert\geq \epsilon_2 $.


next up previous contents index
suivant: III.D.3 Recettes d'implémentation sur machine vectorielle. monter: III.D.2 Algorithmes conditionnels de programmation. précédent: III.D.2.2 Programmation de I2.   Table des matières   Index
Cessenat Olivier 2007-04-21