next up previous contents
suivant: Evolution de la carte monter: Contrôle de la qualité précédent: Calcul des coordonnées des   Table des matières


Calcul de la base EFGM

\begin{eqnarray*}
\hline
\end{eqnarray*}



Après avoir réalisé un calcul EF du problème, on utilise celui-ci pour calculer l'angle de propagation local de la base EFGM. Pour cela, il faut calculer la valeur de l'angle de propagation EF, ainsi que sa dérivée spatiale aux points de Gauss EFGM (calcul des matrices [K],[C] et [M] (voir (4.19), page [*]).
Cependant, cette opération n'est pas triviale.
En effet, pour déterminer cet angle, on utilise la relation :
$\displaystyle \theta(\xi,\eta)=\sum_{i=1}^{Npoints_element}(N_{i}(\xi,\eta)\cdot\theta_{i})$     (B.1)

Cependant, il faut tout d'abord savoir dans quel élément est situé le point considéré.



Figure: Détermination de l'élément contenant le point M(x,y)
\scalebox{0.60}{\includegraphics{images/chap3_det_elemps.eps}}

Pour les éléments carrés linéaires, il suffit d'inverser la relation (A.1). On détermine ainsi l'application $\Phi^{-1}$ qui permet de passer de l'élément réel à l'élément parent. On peut ainsi, connaissant les coordonnées d'un point dans le repère global déterminer ses coordonnées dans les éléments parents. Un point sera contenu dans un élément si ses coordonnées dans l'élément parent sont telles que (voir fig B.2):

$\displaystyle \left\{
\begin{array}{c}
\xi \in [-1,1]\\
et\\
\eta \in [-1,1]\\
\end{array}\right.$     (B.2)

Figure: Retour dans l'élément parent
\scalebox{0.60}{\includegraphics{images/chap3_det_elem_2.eps}}

Remarque : On ne peut calculer l'application $\phi^{-1}$ que pour des éléments a fonctions de formes linéaires, en effet, l'inversion de (A.1) n'est "triviale" que dans le cas de fonctions de forme linéaires.

Une autre méthode, qui elle fonctionne avec tous les types d'éléments carrés consiste à vérifier si le point considéré est à l'intérieur de la région du plan formé de l'intersection de 4 demi-plans :
On considère la droite définissant un côté de l'élément, et on vérifie si le point M est situé dans la même région du plan que l'un des deux autres noeuds de l'élément (voir fig B.3). Si oui, on vérifie cette condition par rapport aux trois autres côtés de l'élément, si non, on essaie avec un autre élément. Le point M appartiendra à l'élément considéré s'il appartient aux 4 régions définies par ces 4 côtés de l'élément.

Figure: Région du plan par rapport à la droite (AB) et au point D
\scalebox{0.60}{\includegraphics{images/regions.eps}}

Exemple :
Soit l'élément :

Figure: Elément considére
\scalebox{0.60}{\includegraphics{images/ineq.eps}}

On vérifie si le point M appartient à la région du plan définie par (AD) et B.

Figure: Région du plan par rapport à la droite (AD) et au point B
\scalebox{0.60}{\includegraphics{images/ineq1.eps}}

Si oui, on fait pareil avec (AB) et C, si non, on passe à l'élément suivant.

Figure: Région du plan par rapport à la droite (AB) et au point C
\scalebox{0.60}{\includegraphics{images/ineq2.eps}}

Figure: Région du plan par rapport à la droite (BC) et au point D
\scalebox{0.60}{\includegraphics{images/ineq3.eps}}

Figure: Région du plan par rapport à la droite (CD) et au point A
\scalebox{0.60}{\includegraphics{images/ineq4.eps}}

Dans le cas des éléments triangulaires, plusieurs méthodes ont été utilisées :
La première, est directement inspirée de ce qui précède. Elle consiste, là encore à calculer les coordonnées du point courant dans l'élément parent, mais cette fois-ci par le biais des coordonnées aréolaires. On calcule L1 et L2, et on vérifie que :

$\displaystyle \left\{
\begin{array}{c}
(L_{1},L_{2}) \in [0,1]^{2}\\
Et\\
1-L_{1}-L_{2} \in [0,1]\\
\end{array}\right.$     (B.3)

Une autre méthode consiste à vérifier si le point courant appartient oui ou non à l'élément considéré, et seulement dans l'affirmative calculer ses coordonnées aréolaires.
On utilise pour cela la méthode de la "demi-droite" :
Pour cela, on regarde le nombre d'intersections entre une demi-droite provenant du point à tester et l'élément courant (son barycentre, en réalité). Si le nombre d'intersections est pair, alors le point est en dehors de l'élément, sinon (1 intersection) celui-ci est contenu dans l'élément (voir fig (B) ).

Figure: Fig(B)a et Fig(B)b : Méthode de la demi-droite
\scalebox{0.60}{\includegraphics{images/ddroite1.eps}} \scalebox{0.60}{\includegraphics{images/ddroite2.eps}}

Connaissant quel élément contient le point, on calcule ensuite ses coordonnées aréolaires.

On peut aussi appliquer la méthode des régions explicitée précédemment, ou tout autre type de méthodes.

Malheureusement, toutes ces méthodes sont très lentes dans le cas de maillages conséquents (18000 noeuds et 36000 éléments). La rapidité de cette opération est directement liée au type d'algorithme utilisé pour déterminer l'élément contenant le point à évaluer. Mais le temps de lecture dans la table de connectivité des noeuds, ainsi que dans le fichier de coordonnées de ceux-ci peut devenir très important dans le cas de "gros" maillages.
En effet, lors de la programmation de mes routines, j'avais pris le parti de limiter le plus possible l'utilisation de mémoire de celles-ci. L'inconvénient majeur de cette façon de procéder est le temps passé à lire les différentes informations utiles. J'ai donc, dans un second temps mis en mémoire les données importantes. Il en résulte donc une réduction drastique du temps de calcul.
Malheureusement, on est vite limité par la taille maximale de vecteurs adressable, ce qui impose de fractionner ces informations vitales, et rend cette méthode moins systématique. La dernière solution serait de paralléliser ces calculs.


next up previous contents
suivant: Evolution de la carte monter: Contrôle de la qualité précédent: Calcul des coordonnées des   Table des matières
greg 2001-08-07