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 *