Pour les parties courbes de la surface nous souhaitons disposer d'une approximation obtenue par interpolation d'ordre deux par morceaux. Or dans le code MODULEF, il est impossible d'obtenir une structure de données de type MAIL-COOR pour une surface courbe maillée à l'aide d'éléments P2 courbes (toutefois cela est possible avec des éléments P2 droits). Nous avons donc écrit un programme ( SURFXX) permettant d'obtenir une structure de données pour la surface approchée formée de triangles courbes de degré 2.
L'idée pour obtenir la surface approchée consiste à effectuer un maillage de la surface à l'aide de triangles plats et à ajouter des noeuds au milieu de chaque arrête de triangle. On modifie alors les coordonnés du noeud ajouté de sorte que ce noeud appartienne à la surface . Pour cela l'utilisateur doit écrire une procédure CALCOO(NTYP,NREF,S1,S2,S12) qui renvoi les coordonnées du noeud S12 attaché à l'arrête d'extremités S1,S2 et de numéro de référence NREF. L'entête de la procédure est:
SUBROUTINE CALCOO(NTYP,NREF,S1,S2,S12)
c
c RENVOI LES COORDONNEES DU NOEUD S12 AJOUTE SUR L'ARETE [S1,S2]
c EN FONCTION DU NUMERO DE REFERENCE DE L'ELEMENT
c
c PARAMETRES D'ENTREE :
c S1(3),S2(3) : COORDONNEES DES 2 EXTREMITES DE L'ARETE
c NREF : NUMERO DE REFERENCE DE L'ELEMENT CONSIDRERE
c NTYP : TYPE DE L'\'EL\'EMENT(1: P1 - 2 P2)
c PARAMETRES DE SORTIE :
c S12(3) : COORDONNEES DU NOEUD AJOUTE SUR L'ARETE [S1,S2]
c
Lors du maillage de la surface à l'aide de triangles plats, il est important de donner des numéros de référence distincts aux différentes parties courbes de l'objet afin de pouvoir déplacer correctement les noeuds milieux d'arrêtes.
Le maillage est stocké dans une structure de données MODULEF de type NOPO que nous avons adaptée. Les modifications apportées à la structure NOPO sont les suivantes:
Les figures 3 et 4 présentent les maillages
de la surface d'un cylindre, d'une bille, d'un cône et d'un cube.