next up previous contents
suivant: Développement monter: Phase 3 - Calcul précédent: Présentation   Table des matières

Organigramme

Le propos de COMP est de traiter au niveau de chaque volume élémentaire représentatif du milieu des lois et relations liant des grandeurs physiques a priori quelconques.

L'objet MMODEL induit le calcul réalisé. Les objets MCHAML représentent précisément le milieu puisqu'on peut décrire une grandeur en tout point à partir des valeurs aux points de Gauss et des fonctions de forme. On distingue l'état initial -- CHE2 -- et l'état final -- CHE1 reprend les valeurs de CHE3 complétées de celles calculées.

L'opérateur COMP est associé à un certain nombre d'objets temporaires définis dans DECHE.INC. Les variables et tableaux nommés dans ces objets mettent l'accent sur les calculs thermo-poro-mécaniques. Cependant toute grandeur figurant dans CHE2 ou CHE3 est collectée. Le segment DECHE permet de recenser toutes les données fournies.

L'opérateur se compose de 4 niveaux de boucles imbriquées dont la fonction est de trier les données, renseigner les objets temporaires wrk52 , wrk522, wrk53 et wrk54, réaliser les calculs avec ceux-ci puis ranger les résultats.

                      STRUCTURE INFORMATIQUE DE COMP

- appel à "coml.eso"
|  - lecture des données
|  - décompose les MCHAML de données en objets temporaires DECHE
|  - appel à "coml2.eso"
|    |  - boucle sur les formulations envisageables (voir notice MODE)
|    |  - boucle sur les zones de modèles élémentaires
|    |    *  - reconstruit les champs de caractéristiques pour les états 1 
|    |    *    et 2 afin de réaliser si besoin des projections
|    |    *  - trie les DECHE associés à la sous-zone, change au besoin les
|    |    *    points supports et projette éventuellement les grandeurs dont   
|    |    *    le support n'est pas approprié      
|    |    *  - appel à "coml6.eso"
|    |    *    |   - initialise et renseigne wrk53
|    |    *    |   - appel à "comouw.eso" : initialise wrk52 et wrk522
|    |    *    |   - appel à "comcri.eso" : crée les DECHE associées aux 
|    |    *    |     grandeurs à calculer
|    |    *    |   - appel à "comtri.eso" : vérifie le type des variables 
|    |    *    |     des MELVAL  
|    |    *    |   - appel à "comdef.eso" : renseigne wrk53 et les 
|    |    *    |     segments IECOU et NECOU
|    |    *    |   - boucle sur les éléments
|    |    *    |     *   - appel à "comrot.eso" si matériau non isotrope
|    |    *    |     *   - boucle sur les points de calcul 
|    |    *    |     *     *  - appel à  "comval.eso" : renseigne wrk52, 
|    |    *    |     *     *     wrk53, wrk522 données aux points de GAUSS   
|    |    *    |     *     *  - appel à "comara.eso" : réorganisation
|    |    *    |     *     *  - appel à "coml7.eso"
|    |    *    |     *     *    |   - appel à un sous-programme associé à la 
C    C    *    C     *     *    C     loi ou la relation physique induite par  
O    O    *    O     *     *    O     le modèle selon la formulation puis la 
M    M    *    M     *     *    M      valeur de INPLAS pour la mécanique 
L    L    *    L     *     *    L     (dans ce cas, le numéro du comportement 
|    2    *    6     *     *    7       est attribué dans "nomate.eso")
|    |    *    |     *     *    |    - appel à "coml8.eso" qui relaie 
|    |    *    |     *     *    |      "coml7.eso" pour la mécanique
|    |    *    |     *     *  - fin de "coml7.eso"
|    |    *    |     *     *  - appel à "defer1.eso" puis "defer2.eso" pour
|    |    *    |     *     *    messages d'erreur
|    |    *    |     *     *  - appel à "comsor.eso" qui range les résultats
|    |    *    |     *     *    dans les MELVAL
|    |    *    |     *   - fin boucle sur points de calcul
|    |    *    |     *   - appel si besoin à "compou.eso" (poutres et tuyaux)
|    |    *    |   - fin de boucle sur les éléments          
|    |    *    |   - appel à "comfin.eso" : fermeture et destruction des 
|    |    *    |     objets temporaires
|    |    *  - fin de "coml6.eso
|    |    *  - met à jour l'inventaire des DECHE
|    |    *  - désactivation et suppression de segments
|    |  - fin de boucle sur les zones de modèles élémentaires 
|    |  - fin de boucle sur les formulations
|  - fin de "coml2.eso"
|  - construction du MCHAML des résultats
|  - compression des MELVAL constants
|  - destruction des DECHE
|  - écriture des résultats pour gibiane (ecrobj.eso)
-fin de "coml.eso"

Le contenu de DECHE.INC :

* segment deroulant le mcheml
       SEGMENT,DECHE
         INTEGER INDEC
         CHARACTER*16 CONDEC
         CHARACTER*8 PHADEC
         INTEGER  IMADEC, IELDEC, IFODEC
         INTEGER INFDEC(N3)
         CHARACTER*8 NOMDEC
         CHARACTER*16 TYPDEC
       ENDSEGMENT
       POINTEUR DEC1.DECHE,DEC2.DECHE
* INDEC : indice du MCHELM
* CONDEC : constituant
* PHADEC : phase
* IMADEC : pointeur maillage
* IELDEC : pointeur melval
* IFODEC : CORRESPOND A IFOCHE (voir MCHAML)
* INFDEC : CORRESPOND A INFCHE (voir MCHAML)
* NOMDEC : nom de composante
* TYPDEC : type du champ     

c segment des noms de composantes relatives a un champ physique
      SEGMENT NOMID
        CHARACTER*8 LESOBL(NBROBL),LESFAC(NBRFAC)
      ENDSEGMENT
* LESOBL : compoantes obligatoires
* LESFAC : composantes facultatives

* segment des types de composantes relatives a un champ physique
      SEGMENT NOTYPE
        CHARACTER*16 TYPE(NBTYPE)
      ENDSEGMENT

* segment des adresses des deche associes a un NOMID
      segment pilnec
       integer pilobl(mobl,mran),pilfac(mfac,mran)
      endsegment

c segment des pointeurs sur nomid et pilnec
      segment domdec
        integer jnomid, jilnec
      endsegment

* pile des domdec (les indices se referent au DATA LISMOT ci-dessous) 
      segment piluc(iiluc)
* pile des deche concernes par un modele elementaire    
      segment pilcon(iilcon)
* pile de tous les deche correspondant aux melvals vus par l utilisateur
       segment pilmel(iimel)

* 
c information sur l element fini
      SEGMENT INFO
       INTEGER INFELE(JG)
      ENDSEGMENT

C  liste de reference identifiant les champs
      PARAMETER (NMOT=25)
      CHARACTER*8 LISMOT(NMOT),MOT
      DATA LISMOT / 'NOEUD   ', 'GRAVITE ', 'RIGIDITE', 'MASSE   ',
     1              'STRESSES', 'DEPLACEM', 'FORCES  ', 'REACTUAL',
     1              'FVOLUMIQ', 'GRADIENT', 'CONTRAIN', 'DEFORMAT',
     1              'MATERIAU', 'CARACTER', 'TEMPERAT', 'PRINCIPA',
     1              'MAHOOKE ', 'HOTANGEN', 'DILATATI', 'VARINTER',
     1              'GRAFLEXI', 'VONMISES', 'VINMETAL', 'DEFINELA',
     1              'PARAMEXT'/

* segments pour passer les informations au point d integration

* donnees brutes en entree de COMP, completees par les valeurs calculees
      SEGMENT WRK52
* temps initial, final
        REAL*8 temp0, tempf
*
        REAL*8 scal0(nsca), scalf(nsca)
* deplacements
        REAL*8 depl0(ndep), deplf(ndep)
* forces
        REAL*8 forc0(nfor), forcf(nfor)
* gradients
        REAL*8 grad0(ngra), gradf(ngra)
* contraintes
        REAL*8 SIG0(NSTRS), SIGF(NSTRS),DSIGT(NSTRS)
* deformations totales
        REAL*8 epst0(NDEFO),DEPST(NDEFO),epstf(NDEFO)
* caracteristiques materiau
        REAL*8 xmat0(ncara),XMAT(NCARA),xmatf(NCARA),
     &   VALMAT(NCARA),valma0(ncara)
c type et nom de composantes relatifs a VALMAT et valma0
        CHARACTER tyval(ncara)*16, commat(ncara)*8
c pointeur sur les melval de caracteristiques materiau a l etat final
        INTEGER ivalma(ncara)
* caracteristiques geometriques
        REAL*8 xcar0(ncarb),XCARB(NCARB),xcarbf(NCARB),VALCAR(NCARB)
c type et nom de composantes pour les caracteristiques
        CHARACTER tycar(ncarb)*16,comcar(ncarb)*8
* temperatures 
        REAL*8 ture0(ntur), turef(ntur)
* contraintes principales
        REAL*8 prin0(npri), prinf(npri)
* matrices de hook
        REAL*8 maho0(nmah), mahof(nmah)
* matrices hook tangent
        REAL*8 hota0(nhot), hotaf(nhot)
* variables internes
        REAL*8 VAR0(NVARI),VARF(NVARI)
* gradients flexion
        REAL*8 graf0(ngrf), graff(ngrf)
*
        REAL*8 rhas0(nrhi), rhasf(nrhi)
* deformations inelastiques
        REAL*8 DEFP(NDEIN),EPIN0(NDEIN),EPINF(NDEIN)
* parametres externes
        REAL*8 PAREX0(NPAREX),PAREXF(NPAREX)
* fourre tout pour les comp non prevues et/ou munies d un autre constituant
        CHARACTER*16 typexo(nexo)
        CHARACTER*8 nomexo(nexo)
        CHARACTER*16 conexo(nexo)
        REAL*8 exova0(nexo),exova1(nexo)
      ENDSEGMENT
      segment wrk522
* temps initial, final
        integer  mkktp0, mkktpf
*
         integer  mkkal0(nsca), mkklaf(nsca),mkkalz
* deplacements
        integer  mkkpl0(ndep), mkkplf(ndep),mkkplz
* forces
         integer  mkkrc0(nfor), mkkrcf(nfor),mkkrcz
* gradients
         integer  mkkad0(ngra), mkkadf(ngra),mkkadz
* contraintes
          integer  mkkIG0(NSTRS), mkkIGF(NSTRS),mkkIGT(NSTRS),mkkigz
* deformations totales
         integer  mkkst0(NDEFO),mkkPST(NDEFO),mkkstf(NDEFO),mkkstz
* caracteristiques materiau
         integer  mkkat0(ncara),mkkMAT(NCARA),mkkatf(NCARA),
     &   mkkVAT(NCARA),mkkva0(ncara),mkkatz
c pointeur sur les melval de caracteristiques materiau a l etat final
        INTEGER mkklma(ncara)
* caracteristiques geometriques
        integer  mkkar0(ncarb),mkkARB(NCARB),mkkrbf(NCARB),mkkVCR(NCARB)
        integer mblcar,mkkarz
* temperatures 
        integer  mkkre0(ntur), mkkref(ntur),mkkrez
* contraintes principales
        integer mkkin0(npri), mkkinf(npri),mkkinz
* matrices de hook
        integer  mkkho0(nmah), mkkhof(nmah),mkkhoz
* matrices hook tangent
        integer mkkta0(nhot), mkktaf(nhot),mkktaz
* variables internes
        integer  mkkVR0(NVARI),mkkVRF(NVARI),mkkvrz
* gradients flexion
        integer  mkkaf0(ngrf), mkkaff(ngrf),mkkafz
*
        integer  mkkas0(nrhi), mkkasf(nrhi),mkkasz
* deformations inelastiques
        integer mkkEFP(NDEIN),mkkPN0(NDEIN),mkkPNF(NDEIN),mkkpnz
* parametres externes
        integer  mkkEX0(NPAREX),mkkEXF(NPAREX),mkkexz
* fourre tout pour les comp non prevues et/ou munies d un autre constituant
        integer mkkvx0(nexo),mkkvx1(nexo),mkkvxz
      ENDSEGMENT    
* 
* quelques donnees pratiques
      SEGMENT WRK53
        INTEGER MATE,INPLAS,MELE,IPMAIL,NPINT,NBNN,NBELEM
        INTEGER NFOR,NMAT,NUMAT,NUCAR,NMATR,NCARF
        INTEGER MFR,NBG,NBGS,NSTRS,LRE,LW,LW2,LHOOK,LHOO2,IPORE,NBNO
        INTEGER NVART,NMATT,NCARR,JECHER,ISTEP,NBINT,JNOID 
        INTEGER NBPTEL,NEL,N2PTEL,N2EL,KERRE
        INTEGER ITHHER
        CHARACTER*8  CMATE
        CHARACTER*16 CONM
        LOGICAL LOGSUC,LOGVIS,LUNI1,LUNI2,LOGRE,LOGIN
        REAL*8 PRECIS,SECT,COB,XMOB,EPAIST
        REAL*8 BID(6),BID2(6)
        REAL*8 COORGA(3),LCARAC
      ENDSEGMENT
* MATE : numero de materiau
* INPLAS : numero loi de comportement
* MELE : numero element fini
* IPMAIL : pointeur maillage
* NPINT : nombre points d integration coque
* NBNN : nombre de noeuds
* NBELEM : nombre d elements
* MFR : numero formulation
* NBPTEL : nombre de points d integrations
* NEL : nombre d elements
* KERRE : indicateur d erreur
* CMATE : description comportement
* CONM : constituant du modele
* PRECIS : precision
* SECT : section
* EPAIST : epaisseur
* COORGA(3) : coordonnees cartesiennes du point d'integration courant
* LCARAC : longueur caracteristique de l'element courant

* tableaux intermediaires
       SEGMENT WRK54
        REAL*8 DDHOOK(LHOOK,LHOOK)
        REAL*8 DDAUX(LHOOK,LHOOK)
        REAL*8 TXR(IDIM,IDIM),DDHOMU(LHOOK,LHOOK)
        REAL*8 XLOC(IDIM,IDIM),XGLOB(IDIM,IDIM)
        REAL*8 D1HOOK(LHOOK,LHOOK),ROTHOO(LHOOK,LHOOK)
        CHARACTER*16 TYMAT(NCXMAT)
        REAL*8 XMAT1(NCXMAT),XMAT2(NCXMAT)
      ENDSEGMENT
*



traduction LAMS 2003-09-22