Modulefpreviousupnextcontentsindex[BIG][Normal][small]
Suiv.: 2.4 Le module CONDL1 Sup.: 2 Interpolation Préc.: 2.2 Les modules COMAC2COMAC3 et Index Table des matières


2.3 Le module CORNOE

 

2.3.1 But et limites d'utilisation

But

Ce module  crée, à partir des S.D. MAIL et COOR ([note] 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.

Limites d'utilisation

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)

TRIA 2P2D :
élément droit

Les points () sont les sommets. Les noeuds () sont les sommets et les milieux des arêtes.

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.

TRIA 2P2C :
élément courbe

Les points () et les noeuds () coïncident, ce sont les sommets les milieux des arêtes.

Les coordonnées des points (et donc des noeuds) ont déjà été calculées lors de l'appel du module COMACO

TRIA 2P2D - TRIA 2P2C :
maillage composé d'éléments droits et courbes :
Les points et les noeuds ne coïncident pas sur tout le maillage, mais uniquement sur les éléments courbes.

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.

2.3.2 Mise en oe uvre du module CORNOE

Le programme d'appel

Sous-programme et fonctions supplémentaires

Le module CORNOE n'appelle aucun sous-programme ou fonction supplémentaires.

Les fichiers et bibliothèques nécessaires :

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([note] utilitaires spécifiques à une machine)

Les tableaux associés :

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,

Fin Pour

2.3.4 Exemple d'utilisation

Le maillage sur lequel s'appuie cet exemple est donné en figure 2.8, il correspond au premier test batch du [Guide Modulef - 1]([note] 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: Maillage référencé 

 
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    |
 --------------------------------------- ---------------------------------------


Modulefpreviousupnextcontentsindex[BIG][Normal][small]
Suiv.: 2.4 Le module CONDL1 Sup.: 2 Interpolation Préc.: 2.2 Les modules COMAC2COMAC3 et Index Table des matières