Suiv.: 2.4 Le module CONDL1
Sup.: 2 Interpolation
Préc.: 2.2 Les modules COMAC2COMAC3 et
Index
Table des matières
Ce module crée, à partir des S.D. MAIL et
COOR ( contient les coordonnées des points) issues du
module COMACO (cf paragraphe 2), une S.D. COOR, qui contient les coordonnées
des noeuds d'un maillage.
Remarque :
Une grande majorité des éléments satisfont à
ces critères, le module CORNOE est donc utilisable dans presque tous
les cas.
Contre-exemple : l'élément fini QUAD 5NOE
Lorsque le module CORNOE est utilisé avec cet élément fini, il
donne des résultats faux pour le 5ème noeud.
En effet, les points géométriques de cet élément sont
les quatre sommets du quadrangle, quant aux noeuds, ce sont les quatre sommets et l'intersection
des diagonales. Or le module CORNOE calcule le barycentre de l'élément.
En ce qui concerne le calcul des conditions aux limites ce n'est pas
gênant car le noeud milieu n'intervient pas. Par contre pour un
calcul de norme, plus l'élément est tordu plus grande est
l'erreur (si l'élément est un rectangle l'intersection des
diagonales correspond bien au barycentre).
Remarque : Il est possible d'affiner le calcul et d'utiliser
un traitement spécial pour certains éléments finis en
fonction de leurs caractéristiques contenues dans le S.D. MAIL.
Ceci n'a pas été fait car :
Exemple : Le triangle P2 (thermique ou élastique)
|
Les points (![]() ![]() |
Les coordonnées des points étant connues, il est facile de recalculer celles des milieux des côtés. D'autre part, la S.D. MAIL permet de déterminer la correspondance entre la numérotation des points et des noeuds.
|
Les points (![]() ![]() |
Les coordonnées des points (et donc des noeuds) ont déjà été calculées lors de l'appel du module COMACO
On peut utiliser le module CORNOE pour calculer les coordonnées de tous les noeuds.
Remarque : Si, pour l'ensemble du maillage, les noeuds et les points coïncident, le module CORNOE copie la S.D.E. COOR dans la S.D.S. COOR, et associe éventuellement à la S.D.S. COOR des tableaux associés.
Le module CORNOE n'appelle aucun sous-programme ou fonction supplémentaires.
Les éventuels fichiers de support des S.D. d'entrée (MAIL et
COOR)
et de la S.D. de sortie (COOR) si celles-ci ne résident pas en
mémoire centrale.
Les bibliothèques Modulef utilisées par le module COBDC1 sont dans
l'ordre :
COSD UTSD UTII U_xxx( utilitaires
spécifiques à une machine)
Comme tous les modules
de création de structures de données (COMACO, COFORC, THENEW
...) le module CORNOE donne à l'utilisateur la possibilité
d'associer
[4] NTCOOS tableaux à la structure qui est créée.
Si cette option est choisie, pour chaque
tableau les
informations suivantes doivent être données :
Pour I de 1 au nombre de tableaux,
Le maillage sur lequel s'appuie cet exemple est donné en
figure 2.8, il correspond au premier test batch
du [Guide Modulef - 1]( Fichier de commande d4nopo.d de la bibliothèque tesd de
Modulef).
L'interpolation est de type P2-Lagrange, des d'éléments finis
droits et courbes recouvrent ce domaine.
Les éléments courbes ont une arête commune avec la frontière de référence 1. La numérotation des points est indiquée figure 2.9. La numérotation des noeuds est donné figure 2.10.
Figure: Numérotation des points
Figure: Numérotation des noeuds
Le programme principal appelant le module CORNOE est défini comme suit : {
1 PROGRAM CALL_CORNOE 2 INTEGER M, LM 3 PARAMETER ( LM = 50 000 ) 4 COMMON M(LM) 5 C 6 INTEGER IMPRE, NNN, IMPRIM, NIMAIL, NFMAIL, NFCOOE, NICOOE, 7 1 NFCOOS, NICOOS, IINFO, NTCOOS 8 CHARACTER*72 NOMSD 9 10 100 FORMAT(' -- NOM DE LA S.D.E. MAIL ') 11 110 FORMAT(' -- NOM DE LA S.D.E. COOR ') 12 120 FORMAT(' -- NOM DE LA S.D.S. COOR ') 13 130 FORMAT(' -- IMPRESSION DE LA LA S.D.E. COOR ') 14 140 FORMAT(' -- IMPRESSION DE LA LA S.D.S. COOR ') 15 C 16 IMPRE = 5 17 NNN = 0 18 CALL INITIS (M, LM, IMPRE, NNN) 19 C 20 IMPRIM = IINFO('I') 21 C 22 C OUVERTURE DE LA S.D.E MAIL 23 WRITE(IMPRIM,100) 24 CALL LIBCAR(NOMSD) 25 CALL TRUNIT(NFMAIL) 26 CALL OUVRIS (NFMAIL, NOMSD, 'OLD, UNFORMATTED', 0) 27 NIMAIL = 1 28 C 29 C OUVERTURE DE LA S.D.E COOR 30 WRITE(IMPRIM,110) 31 CALL LIBCAR(NOMSD) 32 CALL TRUNIT(NFCOOE) 33 CALL OUVRIS (NFCOOE, NOMSD, 'OLD, UNFORMATTED', 0) 34 NICOOE = 1 35 C 36 C OUVERTURE DE LA S.D.S COOR 37 WRITE(IMPRIM,120) 38 CALL LIBCAR(NOMSD) 39 CALL TRUNIT(NFCOOS) 40 CALL OUVRIS (NFCOOS, NOMSD, 'UNFORMATTED', 0) 41 NICOOS = 2 42 NTCOOS = 0 43 C 44 C IMPRESSION DE LA S.D. COOR D'ENTREE 45 WRITE(IMPRIM,130) 46 CALL IMCOOR(M, NFCOOE, NICOOE, IMPRE) 47 C 48 CALL CORNOE(M, NFMAIL, NIMAIL, NFCOOE, NICOOE, NFCOOS, NICOOS, 49 1 NTCOOS) 50 C 51 C IMPRESSION DE LA S.D. COOR DE SORTIE 52 WRITE(IMPRIM,140) 53 CALL IMCOOR(M, NFCOOS, NICOOS, IMPRE) 54 C 55 C FERMETURE DES FICHIERS CONTENANT LES S.D. MAIL ET COOR 56 CLOSE(NFMAIL) 57 CLOSE(NFCOOE) 58 CLOSE(NFCOOS) 59 END}
Nous donnons maintenant un listing d'exécution de ce programme ; lors de l'exécution nous affichons une partie du contenu des structures de données COOR d'entrée et de sortie.
fletan_pate % call_cornoe M M OOO DDDD U U L EEEEE FFFFF MM MM O O D D U U L E F M M M O O D D U U L EEEE FFFF M M O O D D U U L E F M M OOO DDDD UUU LLLLL EEEEE F VERSION 92 DATE : 08/03/93 AUTEUR : pate -- NOM DE LA S.D.E. MAIL T4MAIL ++ OPEN(10,FILE='T4MAIL',SPEC='OLD,UNFORMATTED',RECL=0) -- NOM DE LA S.D.E. COOR T4COOR ++ OPEN(11,FILE='T4COOR',SPEC='OLD,UNFORMATTED',RECL=0) -- NOM DE LA S.D.S. COOR T4COO1 ++ OPEN(12,FILE='T4COO1',SPEC='UNFORMATTED',RECL=0) -- IMPRESSION DE LA LA S.D.E. COOR &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& IMPRESSION DE LA S.D. COOR DE NIVEAU 0 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& TITRE : DATE ET NOM UTILISATEUR : 08/03/93 pate TYPE DE LA STRUCTURE DE DONNEES : COOR NIVEAU ET NUMERO D'ETAT : 0 0 NOMBRE DE TABLEAUX ASSOCIES : 1 LE TABLEAU 1 : CF01 DE TYPE CARACTER A 10 MOTS CONTENU DE CE TABLEAU : COURBE ASSOCIEE : 1 NOM : CF01 TYPE : 4 VALEURS : 1 8COURBE01(X,Y)=X**2+(Y-1)**2-.16; TABLEAU C O O 2 --------------- TYPE DU TABLEAU COO4 (NTYT) : 2 NOMBRE DE SES INDICES (NINDI) : 2 DIMENSION DU DOMAINE (NDIM) : 2 VALEUR MAXIMALE DU DEUXIEME INDICE (M2) : 43 CODE DE LA SEGMENTATION (NCODS) : 1 NOMBRE DE BLOCS (NBLOC) : 1 TYPE DES AXES DES COORDONNEES (NTACOO) : 1 TABLEAU C O O 3 --------------- LISTE DES NUMERO DES COLONNES DE FIN DES PAGES ---------------------------------------------- PAGE 1 : 43 PAGE ---------------------------------------------- TABLEAU C O O 4 --------------- ------------------------------------------------------------------------------- | POINT | X | Y | | POINT | X | Y | ------------------------------------------------------------------------------- | 1 | 0.000000 | 0.000000 | | 2 | -.112591 | 0.109982 | | 3 | 0.000000 | 0.200000 | | 4 | -.250000 | 0.000000 | | 5 | -.500000 | 0.000000 | | 6 | -.199672 | 0.239974 | | 7 | 0.000000 | 0.400000 | | 8 | -.419667 | 0.169034 | | 9 | -.750000 | 0.000000 | | 10 | -.634884 | 0.146232 | --------------------------------------- --------------------------------------- &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& MODULE CORNOE : FIN DU MODULE CORNOE &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& -- IMPRESSION DE LA LA S.D.S. COOR &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& IMPRESSION DE LA S.D. COOR DE NIVEAU 2 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& TITRE : DATE ET NOM UTILISATEUR : 08/03/93 pate TYPE DE LA STRUCTURE DE DONNEES : COOR NIVEAU ET NUMERO D'ETAT : 2 0 NOMBRE DE TABLEAUX ASSOCIES : 0 TABLEAU C O O 2 --------------- TYPE DU TABLEAU COO4 (NTYT) : 2 NOMBRE DE SES INDICES (NINDI) : 2 DIMENSION DU DOMAINE (NDIM) : 2 VALEUR MAXIMALE DU DEUXIEME INDICE (M2) : 116 CODE DE LA SEGMENTATION (NCODS) : 1 NOMBRE DE BLOCS (NBLOC) : 1 TYPE DES AXES DES COORDONNEES (NTACOO) : 1 TABLEAU C O O 3 --------------- LISTE DES NUMERO DES COLONNES DE FIN DES PAGES ---------------------------------------------- PAGE 1 : 116 PAGE ---------------------------------------------- TABLEAU C O O 4 --------------- ------------------------------------------------------------------------------- | POINT | X | Y | | POINT | X | Y | ------------------------------------------------------------------------------- | 1 | 0.000000 | 0.000000 | | 2 | -.112591 | 0.109982 | | 3 | 0.000000 | 0.200000 | | 4 | -.250000 | 0.000000 | | 5 | -.500000 | 0.000000 | | 6 | -.199672 | 0.239974 | | 7 | 0.000000 | 0.400000 | | 8 | -.419667 | 0.169034 | | 9 | -.750000 | 0.000000 | | 10 | -.634884 | 0.146232 | --------------------------------------- ---------------------------------------