Télécharger t_piteta.procedur

Retour à la liste

Numérotation des lignes :

  1. * T_PITETA PROCEDUR OF166741 25/10/02 21:15:02 12378
  2. 'DEBPROC' T_PITETA TABMOD*'TABLE' MATERI*'MCHAML' SUPTAB*'TABLE';
  3. *
  4. *|=====================================================================|
  5. *| |
  6. *| OBJET : |
  7. *| ======= |
  8. *| |
  9. *| 1) calculer la derivee seconde de l'energie potentielle vis a vis |
  10. *| de la longueur d'une (ou des) fissure(s) intéragissantes. dG/da |
  11. *| (G = taux de restitution d'énergie, a = longueur le la fissure) |
  12. *| pour etudier éventuellement la stabilite de propagation d'une |
  13. *| (ou des) fissure(s). |
  14. *| 2) calculer une intégrale permettant de decouper les modes mixtes. |
  15. *| Dans ce cas, la procedure, appelée par G_THETA, ne fonctionne |
  16. *| qu'en elasticite pour problèmes de configuration en 2D, 3D ou |
  17. *| axisymetrique modèlisés par éléments dits massifs. Seuls les |
  18. *| materiaux homogenes et isotropes sont acceptables. L'application |
  19. *| du chargement peut etre de type mecaniques, thermiques, forces |
  20. *| volumiques, ou/et pressions sur le fond de la fissure. |
  21. *| |
  22. *| |
  23. *| ENTREE : |
  24. *| ======== |
  25. *| |
  26. *| Arquments obliquatoires : |
  27. *| ------------------------- |
  28. *| |
  29. *| OBJMOD objet du type TABLE stockant tous les objets MODELS |
  30. *| sur une petite zone de maillage entourant le plus grand des |
  31. *| contours qu'on a defini pour calculer dG/da. L'indice |
  32. *| de cette table est 1, 2, 3,...,n (n : nombre de modeles |
  33. *| dans la petite zone de maillage). Si l'on n'a pas prevu des |
  34. *| modeles dans cette petite zone, OBJMOD ici doit contenir |
  35. *| les objets MODELS globales du problems utilises dans la |
  36. *| resolution par elements finis. Dans ce cas le support |
  37. *| maillage de l'ensemble de modeles est la structure totale |
  38. *| etudiee. |
  39. *| MATERI Objet MCHAML de sous-type CARACTERISTIQUES donnant les |
  40. *| propriétés matérielles (module Young, coefficient de |
  41. *| Poisson...) + les proprietes geometriques dans le cas |
  42. *| des elements en coque mince (epaisseur, excentrement...). |
  43. *| Les composantes de MATERI peuvent etre des objets de type |
  44. *| FLOTTANT, MCHAML, EVOLUTIO, NUAGE selon le probleme traité. |
  45. *| Il convient de donner ici le materiau total du probleme |
  46. *| englobant toute la structure. |
  47. *| SUPTAB Objet de type TABLE. |
  48. *| En entrée, SUPTAB sert à définir les options et les |
  49. *| paramètres du calcul. Ses indices sont des objets de type |
  50. *| MOTS (à écrire en toutes lettres) dont voici la liste: |
  51. *| |
  52. *| SUPTAB.CHTHETA = CHPOINT (TABLE en 3D) de deplacement cree |
  53. *| par la procedure CH_THETA. |
  54. *| SUPTAB.DEPLACEMENT = TABLE si le calcul est effectue pas a pas, |
  55. *| CHPOINT si en un seul pas (probleme lineaire). |
  56. *| Dans le premier cas SUPTAB.DEPLACEMENT |
  57. *| contient touts les deplacements en indice |
  58. *| de la definition des valeurs du parametre |
  59. *| d'evolution (ex : table RESUDEPL de NONLIN). |
  60. *| SUPTAB.CONTRAINTE = TABLE si le calcul est effectue pas a pas, |
  61. *| MCHAML si en un seul pas (probleme lineaire). |
  62. *| Dans le premier cas SUPTAB.CONTRAINTE contient |
  63. *| toutes les contraintes en meme indice du |
  64. *| parametre d'evolution que la table |
  65. *| SUPTAB.DEPLACEMDNT (ex : table RESUCONT de |
  66. *| NONLIN). |
  67. *| |
  68. *| |
  69. *| Arquments facultatifs : |
  70. *| ----------------------- |
  71. *| |
  72. *| 1 : Probleme non-lineaire (elasto ou visco-plasticite) |
  73. *| |
  74. *| SUPTAB.VARINTERNE = TABLE. Pour les calculs non-lineaires effectues |
  75. *| pas a pas, elle donne les variables internes |
  76. *| en meme indice d'evolution que les tables |
  77. *| SUPTAB.DEPLACEMENT ou SUPTAB.CONTRAINTE |
  78. *| (ex : table RESUVARI de NONLIN). Cette table |
  79. *| est fournie dans le cas ou les deformations |
  80. *| inelastiques ne sont pas nulles, sinon |
  81. *| le probleme est considere comme lineaire. |
  82. *| |
  83. *| 2 : En thermo-mecanique |
  84. *| |
  85. *| SUPTAB.TEMPERATURE = TABLE pour les calculs effectues pas a pas, |
  86. *| CHPOINT si en un seul pas (probleme lineaire). |
  87. *| Dans le premier cas SUPTAB.TEMPERATURE |
  88. *| contient toutes les temperatures absolutes |
  89. *| en indice d'evolution du parametre de temps, |
  90. *| qui doit etre plus large ou egale a celle des |
  91. *| tables SUPTAB.DEPLACEMENT ou SUPTAB.CONTRAINTE |
  92. *| (ex : table CHPOTHETA utilisee dans NONLIN). |
  93. *| SUPTAB.TREFERENCE = CHPOINT de temperature de reference (ex : |
  94. *| chpoint TREFERENCE utilisee dans NONLIN). |
  95. *| |
  96. *| 3 : En presence de pression ou/et force volumique |
  97. *| agissant dans un voisinage du fond de la fissure |
  98. *| |
  99. *| SUPTAB.PRESSION = Objet de type CHPOINT ou CHARGEMENT, requis dans |
  100. *| dans le cas ou il existe une force volumique |
  101. *| ou/et une pression s'exercant dans un voisinage |
  102. *| du fond de la fissure. Si cette force varie avec |
  103. *| le temps on donne un objet de type CHARGEMENT. |
  104. *| SI cette force reste constante, on donne un |
  105. *| un objet de type CHPOINT |
  106. *| |
  107. *| 4 : En cas de calcul de la derivee seconde de l'energie permet- |
  108. *| tant d'etudier la stabilite de propagation des fissures |
  109. *| |
  110. *| SUPTAB.CHPI = CHPOINT (TABLE en 3D) de deplacement cree |
  111. *| par la procedure CH_THETA. |
  112. *| SUPTAB.RITOTA = RIGIDITE. C'est la rigidité complète de la |
  113. *| structure, y compris les conditions aux limites |
  114. *| de type DEPLACEMENT ou ROTATION. |
  115. *| |
  116. *| 5 : En cas de calcul de la derivee seconde de l'energie |
  117. *| avec une autre solution auxilaire (intégrale permettant, |
  118. *| par exemple, de decouper les modes) |
  119. *| |
  120. *| SUPTAB.'DEPL_AUXI' = Solution auxilaire de deplacement (CHPOINT) |
  121. *| SUPTAB.'CONT_AUXI' = Solution auxilaire de contrainte (MCHAML) |
  122. *| SUPTAB.'PRES_AUXI' = Pression auxilaire si elle applique sur le |
  123. *| voisinage du fond de la fissure (CHPOINT) |
  124. *| |
  125. *| |
  126. *| 6 : Pour un front de fissure tridimensionnel |
  127. *| |
  128. *| SUPTAB.'AVANCE' = MAILLAGE pour donner les points du front pour |
  129. *| lesquels le calcul sera effectue. Si cet |
  130. *| argument est absent, le calcul sera fait pour |
  131. *| tous les noeuds sur le front de la fissure. |
  132. *| |
  133. *| 7 : En cas d'existence de plusieurs materiaux |
  134. *| |
  135. *| SUPTAB.'PARALLELE' = VRAI si la fissure est parallele a l'interface |
  136. *| FAUX sinon . |
  137. *| |
  138. *| SORTIE : |
  139. *| ======== |
  140. *| |
  141. *| Dans tous les cas de calcul |
  142. *| --------------------------- |
  143. *| |
  144. *| SUPTAB.'DGDA' = En 2D, une table si le calcul est effectue pas a |
  145. *| pas, flottant si en un seul pas. Dans le premier |
  146. *| cas, dG/da est en meme indice d'evolution du |
  147. *| parametre de temps que celle des tables |
  148. *| SUPTAB.DEPLACEMENT ou SUPTAB.CONTRAINTE (ou |
  149. *| SUPTAB.VARINTERNE en elasto ou visco-plasticite). |
  150. *| En 3D, si le calcul est realise pas a pas |
  151. *| SUPTAB.'DGDA' est indicee par deux parametres dont |
  152. *| le premier est le facteur d'evolution de temps et |
  153. *| le deuxieme les points sur le front de la fissure. |
  154. *| Pour un calcul realise en un seul pas SUPTAB.G a |
  155. *| une seule indice representant les points sur le |
  156. *| front de la fissure. |
  157. *| Exemple : la valeur de dG/da est |
  158. *| en 2D pour un calcul realise pas a pas a l'instant |
  159. *| T1, (SUPTAB.'DGDA'.T1) |
  160. *| en 2D pour un calcul en un seul pas, (SUPTAB.'DGDA')|
  161. *| en 3D au point P1 pour un calcul realise pas a pas |
  162. *| a l'instant T1 et, (SUPTAB.'DGDA'.T1.P1) |
  163. *| en 3D au point P1 pour un calcul realise en un seul |
  164. *| pas, (SUPTAB.'DGDA'.P1) |
  165. *| SUPTAB.'IERR' = logique egale a VRAI si l'on n'a pas reussit le |
  166. *| calcul ou les donnees sont fautes, sinon |
  167. *| SUPTAB.'IERR' vaut FAUT. |
  168. *| |
  169. *| En cas de calcul effectue pas a pas |
  170. *| ----------------------------------- |
  171. *| |
  172. *| SUPTAB.EVOLDGDA En cas de calcul de la variation seconde |
  173. *| d'énergie, SUPTAB.EVOLDGDA est un objet de type |
  174. *| EVOLUTION donnant la valeur de dG/da en fonction |
  175. *| du temps en elasto-plasticite. Pour un front de |
  176. *| fissure tridimensionnel EVOLDGDA est une table |
  177. *| indicee par les points donnant les evolutions de |
  178. *| dG/da pour chaque point en fonction du temps. |
  179. *| Exemple : En 2D, on peut tracer l'evolution de |
  180. *| dG/da par : DESS (SUPTAB.'EVOLDGDA'); |
  181. *| En 3D, on peut tracer l'evolution de dG/da |
  182. *| au point P1 en fonction du temps par : |
  183. *| DESS (SUPTAB.'EVOLDGDA'.P1); |
  184. *|=====================================================================|
  185. *
  186. &DIME ='VALE' 'DIME'; &MODE ='VALE' 'MODE';
  187. MOTAX = 'MOT' AXIS ;
  188. ****
  189. IPAP = ('EGA' ('TYPE' SUPTAB.'CONTRAINTE') 'TABLE ') 'ET'
  190. ('EGA' ('TYPE' SUPTAB.'DEPLACEMENT') 'TABLE ');
  191. ****
  192. OBJMOD = TABMOD.1; NBOBJ = 'DIME' ('INDE' TABMOD); I = 1;
  193. 'SI' ('>' NBOBJ 1) ;
  194. 'REPETER' NBJ1 (NBOBJ - 1);
  195. I = I + 1; OBJMOD = OBJMOD 'ET' TABMOD.I;
  196. 'FIN' NBJ1;
  197. 'FINSI' ;
  198. MAPART = 'EXTR' OBJMOD 'MAIL';
  199.  
  200. NBNO1 = 'NBNO' ('ELEM' (CHAN 'LIGNE' MAPART) 1);
  201. ILIN = 'EGA' NBNO1 2; IQUA = 'EGA' NBNO1 3;
  202. ****
  203. I = 0 ;
  204. 'SI' ( (&DIME 'EGA' 3) 'ET' ILIN ) ;
  205. ELTYPE = MAPART 'ELEM' 'TYPE';
  206. 'SI' ('EXISTE' ELTYPE 'TRI3') ; I = I + 1 ; 'FINSI' ;
  207. 'SI' ('EXISTE' ELTYPE 'QUA4') ; I = I + 1 ; 'FINSI' ;
  208. * si i > 0 et i neg (DIME ELTYPE) ? tout n'est pas coque ?
  209. 'FINSI' ;
  210. ICOQU = 'NEG' I 0 ;
  211.  
  212. **************************************************
  213. ********* TEST DE COMPABILITE DES DONNEES ********
  214. **************************************************
  215. SUPTAB.'IERR' = FAUX;
  216. MAMATR = 'EXTR' MATERI 'MAIL' ;
  217. 'SI' ('<' ('NBNO' MAMATR) ('NBNO' MAPART));
  218. 'MESS' 'ERREUR : LE SUPPORT GEOMETRIQUE DE MATERIAU EST';
  219. 'MESS' 'PLUS PETIT QUE CELUI DE L ENSEMBLE DE MODELES';
  220. SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA;
  221. 'FINSI';
  222. 'SI' ('<' ('NBEL' MAMATR) ('NBEL' MAPART));
  223. 'MESS' 'ERREUR : LE SUPPORT GEOMETRIQUE DE MATERIAU EST';
  224. 'MESS' 'PLUS PETIT QUE CELUI DE L ENSEMBLE DE MODELES';
  225. SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA;
  226. 'FINSI';
  227. ****
  228. IAUXI = ('EXIST' SUPTAB 'DEPL_AUXI') 'OU'
  229. ('EXIST' SUPTAB 'CONT_AUXI') 'OU'
  230. ('EXIST' SUPTAB 'PRES_AUXI');
  231. 'SI' IAUXI;
  232. 'SI' ('NON' ('EXIST' SUPTAB 'DEPL_AUXI'));
  233. 'ERREUR' 'ON VEUT LA SOLUTION AUXILAIRE DE DEPLACEMENT';
  234. SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA;
  235. 'FINSI';
  236. 'SI' ('NON' ('EXIST' SUPTAB 'CONT_AUXI'));
  237. 'ERREUR' 'ON VEUT LA SOLUTION AUXILAIRE DE CONTRAINTE';
  238. SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA;
  239. 'FINSI';
  240. 'FINSI';
  241. IPRE_A = FAUX;
  242. 'SI' ('EXIST' SUPTAB 'PRES_AUXI');
  243. PRES_A = SUPTAB.'PRES_AUXI'; IPRE_A = VRAI;
  244. 'FINSI';
  245. ****
  246. 'SI' ('NON' ('EXISTE' SUPTAB 'CONTRAINTE'));
  247. 'ERREUR' 'IL FAUT DONNER LE CHAMP DE CONTRAINTE';
  248. SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA;
  249. 'FINSI';
  250. 'SI' ('NON' ('EXISTE' SUPTAB 'DEPLACEMENT'));
  251. 'ERREUR' 'IL FAUT DONNER LE CHAMP DE DEPLACEMENT';
  252. SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA;
  253. 'FINSI';
  254. 'SI' ('EXISTE' SUPTAB 'PARALLELE');
  255. 'SI' (NBOBJ 'EGA' 1);
  256. 'ERRE' 'IL FAUT UNE TABLE STOCKANT TOUS LES OBJETS MODELES';
  257. 'FINSI';
  258. IPARAL = SUPTAB.'PARALLELE';
  259. 'SINON';
  260. IPARAL = FAUX;
  261. 'FINSI';
  262. 'SI' IPAP;
  263. 'SI' ('NON' ('EXISTE' SUPTAB 'VARINTERNE'));
  264. *& 'MESS' ' ATTENTION : EN ABSENCE DES VARIABLES INTERNES';
  265. *& 'MESS' ' LE PROBLEME EST CONSIDERE COMME LINEAIRE.';
  266. 'FINSI';
  267. 'FINSI';
  268. 'SI' ('NON' ('EXISTE' SUPTAB 'CHTHETA'));
  269. 'ERREUR' 'IL FAUT DONNER LE CHAMP THETA';
  270. SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA;
  271. 'FINSI';
  272. ****
  273. ISECO = ('EXIST' SUPTAB 'CHPI') 'OU'
  274. ('EXIST' SUPTAB 'RITOTA');
  275. 'SI' ISECO;
  276. 'SAUT' 1 'LIGNE';
  277. 'SI' ('NON' ('EXIST' SUPTAB 'CHPI'));
  278. 'ERREUR' 'IL FAUT DONNER LE CHAMP PI';
  279. SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA;
  280. 'FINSI';
  281. 'SI' ('NON' ('EXIST' SUPTAB 'RITOTA'));
  282. 'ERREUR' 'IL FAUT DONNER LA RIGIDITE COMPLETE';
  283. SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA;
  284. 'FINSI';
  285. RITOTA = SUPTAB.'RITOTA';
  286. MAILTO = 'EXTR' ('EXTR' RITOTA 'RIGI' 'NOMU') 'MAIL';
  287. 'FINSI';
  288. ****
  289. 'SI' (('NON' IAUXI) 'ET' ('NON' ISECO));
  290. 'ERREUR' 'LES DONNEES NE SONT PAS COMPLETES';
  291. SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA;
  292. 'FINSI';
  293. 'SI' (IAUXI 'ET' ISECO);
  294. 'ERREUR' 'LE TYPE D INTEGARLE A CALCULER N EST PAS UNIQUE';
  295. SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA;
  296. 'FINSI';
  297. ****
  298. PASA = FAUX;
  299. ITHER = ('EXIST' SUPTAB 'TEMPERATURE') 'OU'
  300. ('EXIST' SUPTAB 'TREFERENCE');
  301. 'SI' ITHER;
  302. 'SI' ('NON' ('EXIST' SUPTAB 'TEMPERATURE')) ;
  303. 'ERREUR' 'ON VEUT LA CARTE DE TEMPERATURE';
  304. SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA;
  305. 'FINSI' ;
  306. 'SI' ('NON' ('EXIST' SUPTAB 'TREFERENCE')) ;
  307. 'ERREUR' 'ON VEUT LA TEMPERATURE DE REFERENCE';
  308. SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA;
  309. 'FINSI' ;
  310. 'SI' ('EGA' ('TYPE' SUPTAB.'TEMPERATURE') 'CHARGEME');
  311. 'SI' ('EXIST' (SUPTAB.'TEMPERATURE') 'T ') ;
  312. PASA = VRAI;
  313. 'FINSI';
  314. 'FINSI';
  315. 'FINSI' ;
  316. ****
  317. IPRES = FAUX;
  318. 'SI' ('EXIST' SUPTAB 'PRESSION') ;
  319. PRESSI = SUPTAB.'PRESSION'; IPRES = VRAI ;
  320. 'FINSI' ;
  321. ****
  322. IPARTI = 'EXIS' SUPTAB 'AVANCE';
  323. ****
  324. YOUVARI = FAUX; NUVARI = FAUX; ALFVARI = FAUX;
  325. TRAVARI = FAUX; SIGVARI = FAUX; HVARI = FAUX;
  326. MATREDU = 'REDU' MATERI OBJMOD;
  327. 'REPETER' BCMOD1 NBOBJ;
  328. MATI = 'REDU' MATREDU TABMOD.&BCMOD1;
  329. YO1 = 'EXCO' MATI 'YOUN';
  330. TYPYO = 'TYPE' ('EXTR' YO1 'YOUN' 1 1 1);
  331. 'SI' ('EGA' TYPYO 'EVOLUTIO');
  332. YOUVARI = VRAI;
  333. 'SINON';
  334. TEST1 = (('MAXI' YO1) - ('MINI' YO1))/('MINI' YO1);
  335. 'SI' ((TEST1 '>' 1.E-10) ET (NON IPARAL));
  336. YOUVARI = VRAI;
  337. 'FINSI';
  338. 'FINSI';
  339. NU1 = 'EXCO' MATI 'NU';
  340. TYPNU = 'TYPE' ('EXTR' NU1 'NU' 1 1 1);
  341. 'SI' ('EGA' TYPNU 'EVOLUTIO');
  342. NUVARI = VRAI;
  343. 'SINON';
  344. TEST1 = (('MAXI' NU1) - ('MINI' NU1))/('MINI' NU1);
  345. 'SI' ((TEST1 '>' 1.E-10) ET (NON IPARAL));
  346. NUVARI = VRAI;
  347. 'FINSI';
  348. 'FINSI';
  349. 'SI' ITHER;
  350. AL1 = 'EXCO' MATI 'ALPH';
  351. TYPAL = 'TYPE' ('EXTR' AL1 'ALPH' 1 1 1);
  352. 'SI' ('EGA' TYPAL 'EVOLUTIO');
  353. ALFVARI = VRAI;
  354. 'SINON';
  355. TEST1 = (('MAXI' AL1) - ('MINI' AL1))/('MINI' AL1);
  356. 'SI' (TEST1 '>' 1.E-10); ALFVARI = VRAI; 'FINSI';
  357. 'FINSI';
  358. 'FINSI';
  359. 'SI' ('EXIST' MATI 'TRAC');
  360. TR1 = 'EXCO' MATI 'TRAC';
  361. TYPTR = 'TYPE' ('EXTR' TR1 'TRAC' 1 1 1);
  362. 'SI' ('EGA' TYPTR 'NUAGE ');
  363. TRAVARI = VRAI;
  364. 'FINSI';
  365. 'FINSI';
  366. 'SI' ('EXIST' MATI 'SIGY');
  367. SI1 = 'EXCO' MATI 'SIGY';
  368. TYPSI = 'TYPE' ('EXTR' SI1 'SIGY' 1 1 1);
  369. 'SI' ('EGA' TYPSI 'EVOLUTIO');
  370. SIGVARI = VRAI;
  371. 'FINSI';
  372. 'FINSI';
  373. 'SI' ('EXIST' MATI 'H');
  374. H1 = 'EXCO' MATI 'H';
  375. TYPH = 'TYPE' ('EXTR' H1 'H' 1 1 1);
  376. 'SI' ('EGA' TYPH 'EVOLUTIO');
  377. HVARI = VRAI;
  378. 'FINSI';
  379. 'FINSI';
  380. 'FIN' BCMOD1;
  381. MATVARI = YOUVARI 'OU' NUVARI 'OU' ALFVARI
  382. 'OU' TRAVARI 'OU' SIGVARI 'OU' HVARI;
  383. 'SI' MATVARI;
  384. 'ERREUR' 'MATERIAU NON CONSTANT. OPTION NON DISPONIBLE';
  385. SUPTAB.'IERR' = VRAI; 'QUITTER' T_PITETA;
  386. 'FINSI';
  387. ****
  388. 'SI' IPAP;
  389. TXMECANI= 'MOT' ' Mecanique';
  390. TXTERMI = 'MOT' ' Thermique';
  391. TXPRESS = 'MOT' ' Volumique';
  392. 'SINON';
  393. TXMECANI= 'MOT' ' Mecanique';
  394. TXTERMI = 'MOT' ' Thermique';
  395. TXPRESS = 'MOT' ' Volumique';
  396. 'FINSI';
  397. **************************************************
  398. *** QUELQUES MOTS POUR SIMPLIFIER L'ECRITURE ***
  399. **************************************************
  400. E = 'MOT' 'EXCO'; MOTU = 'MOTS' 'UX' 'UY'; C = 'MOT' 'CHAI';
  401. MOTF = 'MOTS' 'FX' 'FY'; S = 'MOT' 'SCAL';
  402. MU1 = 'MOT' 'UX'; MU2 = 'MOT' 'UY'; MU3 = 'MOT' 'UZ';
  403. MF1 = 'MOT' 'FX'; MF2 = 'MOT' 'FY'; MF3 = 'MOT' 'FZ';
  404. GR1 = 'MOT' 'UX,X'; GR2 = 'MOT' 'UX,Y'; GR3 = 'MOT' 'UX,Z';
  405. GR4 = 'MOT' 'UY,X'; GR5 = 'MOT' 'UY,Y'; GR6 = 'MOT' 'UY,Z';
  406. GR7 = 'MOT' 'UZ,X'; GR8 = 'MOT' 'UZ,Y'; GR9 = 'MOT' 'UZ,Z';
  407. SM1 = 'MOT' 'SMXX'; SM2 = 'MOT' 'SMYY'; SM3 = 'MOT' 'SMZZ';
  408. SM4 = 'MOT' 'SMXY'; SM5 = 'MOT' 'SMXZ'; SM6 = 'MOT' 'SMYZ';
  409. EP1 = 'MOT' 'EPXX'; EP2 = 'MOT' 'EPYY'; EP3 = 'MOT' 'EPZZ';
  410. EP4 = 'MOT' 'GAXY'; EP5 = 'MOT' 'GAXZ'; EP6 = 'MOT' 'GAYZ';
  411. 'SI' ('EGA' MOTAX &MODE) ;
  412. MOTU = 'MOTS' 'UR' 'UZ' ; MOTF = 'MOTS' 'FR' 'FZ' ;
  413. MU1 = 'MOT' 'UR'; MU2 = 'MOT' 'UZ'; MU3 = 'MOT' 'UT';
  414. MF1 = 'MOT' 'FR'; MF2 = 'MOT' 'FZ';
  415. GR1 = 'MOT' 'UR,R'; GR2 = 'MOT' 'UR,Z'; GR3 = 'MOT' 'UR,T';
  416. GR4 = 'MOT' 'UZ,R'; GR5 = 'MOT' 'UZ,Z'; GR6 = 'MOT' 'UZ,T';
  417. GR7 = 'MOT' 'UT,R'; GR8 = 'MOT' 'UT,Z'; GR9 = 'MOT' 'UT,T';
  418. SM1 = 'MOT' 'SMRR'; SM2 = 'MOT' 'SMZZ'; SM3 = 'MOT' 'SMTT';
  419. SM4 = 'MOT' 'SMRZ';
  420. EP1 = 'MOT' 'EPRR'; EP2 = 'MOT' 'EPZZ'; EP3 = 'MOT' 'EPTT';
  421. EP4 = 'MOT' 'GARZ';
  422. 'FINSI';
  423. 'SI' (&DIME 'EGA' 3) ;
  424. MOTU = 'MOTS' 'UX' 'UY' 'UZ' ; MOTF = 'MOTS' 'FX' 'FY' 'FZ' ;
  425. 'FINSI';
  426. ****
  427. TX2 = 'CHAIN' ' Contribution a la derivee dG/da due au chargement';
  428. 'SI' ITHER;
  429. TX1 = 'MOT' 'VARIATION SECONDE D ENERGIE EN THERMO-PLASTICITE';
  430. 'SINON';
  431. TX1 = 'MOT' 'VARIATION SECONDE D ENERGIE EN ELASTO-PLASTICITE';
  432. 'FINSI';
  433. CHA1 = 'CHAI' 'VARIATION SECONDE dG/da EN FONCTION DU TEMPS';
  434. MOTTI = 'MOT' 'dG/da';
  435. MOTCO = 'MOT' ' Derivee dG/da';
  436. TX3 = 'CHAIN' ' °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°';
  437. ***************************************************
  438. ********** DEPLACEMENT, GRADIANT INITIAUX *********
  439. ***************************************************
  440. FOR000 ='CHAN' 'CHPO' OBJMOD ('ZERO' OBJMOD 'FORCES ');
  441. DEP000 ='CHAN' 'CHPO' OBJMOD ('ZERO' OBJMOD 'DEPLACEM');
  442. GRA000 = 'ZERO' OBJMOD 'GRADIENT';
  443. ********************************************
  444. *** ZONE OU LE CHAMP THETA N'EST PAS NUL ***
  445. ********************************************
  446. 'SI' (('EGA' &DIME 2) 'OU' ICOQU);
  447. TETA = SUPTAB.'CHTHETA'; MENL1 = 'MOT' 'CONT';
  448. 'FINSI';
  449. 'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU));
  450. TETA = SUPTAB.'CHTHETA'.'GLOBAL'; MENL1 = 'MOT' 'ENVE';
  451. 'FINSI';
  452. TETA = TETA + DEP000;
  453. NORM1 = ((E MU1 TETA 'SCAL')**2) + ((E MU2 TETA 'SCAL')**2);
  454. 'SI' ('EGA' &DIME 3);
  455. NORM1 = NORM1 + ((E MU3 TETA 'SCAL')**2);
  456. 'FINSI';
  457. NORM1 = 'CHAN' 'CHAM' OBJMOD (NORM1**0.5);
  458. VA1 = ('MAXI' NORM1) - 1.E-5; VA2 = ('MAXI' NORM1) + 1.E-5;
  459. ELTETA = NORM1 'ELEM' 'COMPRIS' VA1 VA2;
  460. ***************************************************
  461. ***** INDICE DE TEMPERATURE RANGEE DENA LTHER *****
  462. ***************************************************
  463. 'SI' ('NON' PASA) ;
  464. 'SI' (ITHER 'ET' IPAP) ;
  465. TEPER*'TABLE'= SUPTAB.'TEMPERATURE';
  466. ITET = 'INDE' TEPER ; NBTET = 'DIME' ITET ;
  467. IT = 1 ;
  468. LTHER = 'PROG' (ITET.IT) ;
  469. 'REPETER' TEPERATU ;
  470. IT = IT + 1 ;
  471. 'SI' ('EXISTE' ITET IT) ;
  472. VALTET = 'PROG' (ITET.IT) ;
  473. LTHER = LTHER 'ET' VALTET ;
  474. 'SINON' ;
  475. 'QUITTER' TEPERATU ;
  476. 'FINSI' ;
  477. 'FIN' TEPERATU ;
  478. LTHER = 'ORDONNER' LTHER ;
  479. 'FINSI' ;
  480. 'FINSI' ;
  481. ***************************************************
  482. ********* TABLES POUR STOCKER LES RESULTATS *******
  483. ***************************************************
  484. SUPTAB.'DGDA' = TABLE;
  485. ***************************************************
  486. **************** AFFICHAGE DU TITRE **************
  487. ***************************************************
  488. 'SI' IPAP;
  489. 'SI' (('EGA' &DIME 2) 'OU' ICOQU);
  490. 'SI' ISECO;
  491. 'MESS' ' ' TX1;
  492. 'MESS';
  493. 'MESS' ' ' TX2; 'MESS' ' ' TX3;
  494. 'MESS' ' Instant ' TXMECANI TXTERMI TXPRESS MOTCO;
  495. 'FINSI';
  496. 'FINSI';
  497. 'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU));
  498. 'SI' ISECO;
  499. 'MESS' ' ' TX1;
  500. 'MESS';
  501. 'MESS' ' ' TX2; 'MESS' ' ' TX3;
  502. 'MESS' ' Noeuds ' ' Instant ' TXMECANI TXTERMI TXPRESS MOTCO;
  503. 'FINSI';
  504. 'FINSI';
  505. 'SINON';
  506. 'SI' (('EGA' &DIME 2) 'OU' ICOQU);
  507. 'SI' ISECO;
  508. 'MESS' ' ' TX2; 'MESS' ' ' TX3;
  509. 'MESS' ' ' TXMECANI TXTERMI TXPRESS ' Derivee dG/da';
  510. 'FINSI';
  511. 'FINSI';
  512. 'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU));
  513. 'SI' ISECO;
  514. 'MESS' ' ' TX2; 'MESS' ' ' TX3;
  515. 'MESS' ' Noeuds ' TXMECANI TXTERMI TXPRESS ' Derivee dG/da';
  516. 'FINSI';
  517. 'FINSI';
  518. 'FINSI';
  519. ****
  520. 'SI' ('NON' IPAP);
  521. SIGF = 'REDU' (SUPTAB.'CONTRAINTE') OBJMOD;
  522. DEPINT = 'REDU' (SUPTAB.'DEPLACEMENT') MAPART;
  523. NBDEP = 1;
  524. 'SINON';
  525. SIG*'TABLE' = SUPTAB.'CONTRAINTE' ;
  526. DEP*'TABLE' = SUPTAB.'DEPLACEMENT' ;
  527. 'SI' ('EXIST' SUPTAB 'VARINTERNE');
  528. VAR*'TABLE' = SUPTAB.'VARINTERNE';
  529. 'SINON';
  530. VAR = TABLE;
  531. 'FINSI';
  532. IDEP = 'INDE' DEP ; NBDEP = 'DIME' IDEP ;
  533. 'FINSI';
  534. ***************************************************
  535. ***************************************************
  536. ********* BOUCLE SUR LE PAS DE CALCUL *********
  537. ***************************************************
  538. ***************************************************
  539. IABC = 0 ;
  540. 'REPETER' BOUCEXT NBDEP ;
  541. IABC = IABC + 1 ;
  542. S10 = 0.; S20 = 0.; S30 = 0.; S40 = 0.; S50 = 0.;
  543. S60 = 0.; S70 = 0.; S80 = 0.; S90 = 0.; S100 = 0.;
  544. S110 = 0.; S120 = 0.; S130 = 0.; S140 = 0.;
  545. ***************************************************
  546. ***** DEPLACEMENT,CONTRAINTE A L INSTANT INST *****
  547. ***************************************************
  548. 'SI' IPAP;
  549. INST = IDEP.IABC ;
  550. SIGF = (SIG.INST) 'REDU' OBJMOD ;
  551. 'SI' ('EXIST' VAR INST);
  552. VARF = (VAR.INST) 'REDU' OBJMOD;
  553. 'SINON';
  554. VARF = 'ZERO' OBJMOD 'VARINTER';
  555. 'FINSI';
  556. DEPINT = 'REDU' (DEP.INST) MAPART;
  557. 'FINSI';
  558. ***************************************************
  559. *********** TEMPERATURE A L INSTANT INST **********
  560. ***************************************************
  561. 'SI' ITHER ;
  562. 'SI' IPAP;
  563. 'SI' PASA ;
  564. TEPINT = 'TIRE' (SUPTAB.'TEMPERATURE') INST 'T' ;
  565. TEPINT = 'REDU' TEPINT MAPART ;
  566. TEPINT = TEPINT - ('REDU' (SUPTAB.'TREFERENCE') MAPART);
  567. 'SINON';
  568. K = 0 ;
  569. 'REPETER' BLOC1 NBTET ;
  570. K = K + 1 ;
  571. NBRE = 'EXTR' LTHER K ;
  572. 'SI' (NBRE '>EG' INST) ; 'QUITTER' BLOC1 ; 'FINSI' ;
  573. 'FIN' BLOC1 ;
  574. K = K - 1 ;
  575. 'SI' (> ('ABS' ((NBRE-INST)/INST)) 0.001) ;
  576. NBRE1 = 'EXTR' LTHER K ;
  577. NBRE2 = 'EXTR' LTHER (K+1) ;
  578. D1 = INST - NBRE1 ; D2 = NBRE2 - INST ;
  579. TEPINT = ((('REDU' TEPER.NBRE1 MAPART)*D2)+
  580. (('REDU' TEPER.NBRE2 MAPART)*D1))*(1/(D1+D2));
  581. TEPINT = TEPINT - ('REDU' (SUPTAB.'TREFERENCE') MAPART);
  582. 'SINON';
  583. TEPINT = ('REDU' TEPER.NBRE MAPART)
  584. - ('REDU' (SUPTAB.'TREFERENCE') MAPART) ;
  585. 'FINSI';
  586. 'FINSI';
  587. 'SINON';
  588. TEPINT = ('REDU' (SUPTAB.'TEMPERATURE') MAPART)
  589. - ('REDU' (SUPTAB.'TREFERENCE') MAPART) ;
  590. 'FINSI';
  591. 'FINSI';
  592. ***************************************************
  593. ************ MATERIAU A L INSTANT INST ************
  594. ***************************************************
  595. 'SI' (MATVARI 'ET' ITHER);
  596. TEPABS = TEPINT + ('REDU' (SUPTAB.'TREFERENCE') MAPART);
  597. MAT1 = 'VARI' 'NUAG' OBJMOD MATREDU ('EXCO' 'T' TEPABS);
  598. 'SINON';
  599. MAT1 = MATREDU;
  600. 'FINSI';
  601. ***************************************************
  602. ************ GRADIENT A L INSTANT INST ************
  603. ***************************************************
  604. GRADEP = 'GRAD' OBJMOD MAT1 DEPINT ;
  605. 'SI' ITHER;
  606. TEPEGR = 'GRAD' OBJMOD MAT1 ((E 'T' TEPINT MU1) + DEP000);
  607. 'SI' ISECO;
  608. DEPDT = (E GR1 TEPEGR MU1) + (E GR2 TEPEGR MU2);
  609. 'SI' (&DIME 'EGA' 3);
  610. DEPDT = DEPDT + (E GR3 TEPEGR MU3);
  611. 'FINSI';
  612. DEPDTGR = 'GRAD' OBJMOD MAT1 ('CHAN' 'CHPO' OBJMOD DEPDT);
  613. 'FINSI';
  614. 'FINSI';
  615. *******************************************************
  616. **** ENERGIE DE DEFORMATION ELASTIQUE ET PLASTIQUE ****
  617. *******************************************************
  618. WELAS = 0.5*('ENER' OBJMOD SIGF ('ELAS' OBJMOD SIGF MAT1));
  619. 'SI' IPAP;
  620. 'SI' ('EGA' IABC 1);
  621. VMI1 = 'CHAN' ('VMIS' OBJMOD SIGF MAT1) 'TYPE' 'SCALAIRE';
  622. WPLAS = 0.5*VMI1*(E VARF 'EPSE') ;
  623. 'SINON' ;
  624. SIGMOY = 0.5*(SIG1 + SIGF);
  625. VMI1 = 'CHAN' ('VMIS' OBJMOD SIGMOY MAT1) 'TYPE' 'SCALAIRE';
  626. WPLAS = WPLAS + (VMI1*(E (VARF - VAR1) 'EPSE'));
  627. 'FINSI' ;
  628. ENERM = WELAS + WPLAS ;
  629. SIG1 = SIGF; VAR1 = VARF;
  630. 'SINON';
  631. ENERM = WELAS;
  632. 'FINSI';
  633. ****************************************************
  634. ********** RECUPERATION DU POINT A AVANCER *********
  635. ****************************************************
  636. 'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU));
  637. 'SI' IPAP;
  638. SUPTAB.'DGDA'.INST = TABLE;
  639. 'FINSI';
  640. TTETA*'TABLE' = SUPTAB.'CHTHETA';
  641. 'SI' ISECO; TPI*'TABLE' = SUPTAB.'CHPI'; 'FINSI';
  642. INT = 'INDEX' TTETA;
  643. 'SI' IPARTI;
  644. 'SI' ('EGA' ('TYPE' (SUPTAB.'AVANCE')) 'MAILLAGE');
  645. PMA = 'CHAN' 'POI1' (SUPTAB.'AVANCE');
  646. NBOU = ('NBNO' PMA) + 1;
  647. 'SINON';
  648. PMA = SUPTAB.'AVANCE'; NBOU = 2;
  649. 'FINSI';
  650. 'SINON';
  651. NBOU = 'DIME' TTETA;
  652. 'FINSI';
  653. 'FINSI';
  654. 'SI' (('EGA' &DIME 2) 'OU' ICOQU);
  655. NBOU = 1;
  656. 'FINSI';
  657. **************************************************
  658. ******** BOUCLE SUR LES POINTS A AVANCER *******
  659. **************************************************
  660. 'REPETER' BCNOEU NBOU;
  661. 'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU));
  662. 'SI' (&BCNOEU 'EGA' NBOU);
  663. PM = MOT 'GLOBAL';
  664. NUNOE = 'CHAI' ' ' PM ' ';
  665. 'SINON';
  666. PM = INT.&BCNOEU;
  667. 'SI' IPARTI;
  668. 'SI' ('EGA' ('TYPE' (SUPTAB.'AVANCE')) 'MAILLAGE');
  669. PM = 'POIN' PMA &BCNOEU;
  670. 'SINON';
  671. PM = SUPTAB.'AVANCE';
  672. 'FINSI';
  673. 'FINSI';
  674. NUNOE = 'NOEU' PM;
  675. 'FINSI';
  676. TETA = TTETA.PM; 'SI' ISECO; PI = TPI.PM; 'FINSI';
  677. 'FINSI';
  678. 'SI' (('EGA' &DIME 2) 'OU' ICOQU);
  679. TETA = SUPTAB.'CHTHETA';
  680. 'SI' ISECO; PI = SUPTAB.'CHPI'; 'FINSI';
  681. 'FINSI';
  682. **************************************************
  683. ***** GRADIANT DU CHAMP THETA ET DU CHAMP PI *****
  684. **************************************************
  685. TETA = TETA + DEP000;
  686. TETAGR = 'GRAD' OBJMOD MAT1 TETA ;
  687. DIVTETA = (E GR1 TETAGR S)+(E GR5 TETAGR S)+(E GR9 TETAGR S);
  688. TETX = 'CHAN' 'CHAM' OBJMOD (E MU1 TETA S) 'STRESSES';
  689. TETY = 'CHAN' 'CHAM' OBJMOD (E MU2 TETA S) 'STRESSES';
  690. 'SI' (&DIME 'EGA' 3) ;
  691. TETZ = 'CHAN' 'CHAM' OBJMOD (E MU3 TETA S) 'STRESSES';
  692. 'FINSI';
  693. 'SI' ISECO;
  694. PI = PI + DEP000;
  695. PI = PI / ('MAXI' NORM1);
  696. PIGR = 'GRAD' OBJMOD MAT1 PI ;
  697. DIVPI = (E GR1 PIGR S)+(E GR5 PIGR S)+(E GR9 PIGR S);
  698. PITAGR = (OBJMOD PIGR * TETAGR) ;
  699. DIVPITA = (E GR1 PITAGR S)+(E GR5 PITAGR S)+(E GR9 PITAGR S);
  700. ADJ = (DIVPITA - (DIVPI * DIVTETA)) ;
  701. PIX = 'CHAN' 'CHAM' OBJMOD (E MU1 PI S) 'STRESSES';
  702. PIY = 'CHAN' 'CHAM' OBJMOD (E MU2 PI S) 'STRESSES';
  703. 'SI' (&DIME 'EGA' 3) ;
  704. PIZ = 'CHAN' 'CHAM' OBJMOD (E MU3 PI S) 'STRESSES';
  705. 'FINSI';
  706. 'FINSI';
  707. *********************************************************
  708. ***************** TEMU = (Grad T)*THETA *****************
  709. ****************** TEMU1 = (Grad T)*PI ******************
  710. *********** TEMU2 = (Grad (Grad T))*PI*THETA ************
  711. *********************************************************
  712. 'SI' ITHER;
  713. TEMU = ((E GR1 TEPEGR S)*OBJMOD TETX) +
  714. ((E GR2 TEPEGR S)*OBJMOD TETY) ;
  715. 'SI' (&DIME 'EGA' 3) ;
  716. TEMU = TEMU + ((E GR3 TEPEGR S)*OBJMOD TETZ);
  717. 'FINSI' ;
  718. TEMU = 'CHAN' 'TYPE' ('EXCO' 'SCAL' TEMU 'T') 'TEMPERATURES';
  719. EPSTU = 'ELAS' OBJMOD ('THETA' OBJMOD MAT1 TEMU) MAT1;
  720. 'SI' ISECO;
  721. TEMU1 = ((E GR1 TEPEGR S)*OBJMOD PIX) +
  722. ((E GR2 TEPEGR S)*OBJMOD PIY);
  723. TXXPIX = (E GR1 DEPDTGR S)*OBJMOD PIX;
  724. TYXPIY = (E GR2 DEPDTGR S)*OBJMOD PIY;
  725. TXYPIX = (E GR4 DEPDTGR S)*OBJMOD PIX;
  726. TYYPIY = (E GR5 DEPDTGR S)*OBJMOD PIY;
  727. TEMU2 = (TETX*OBJMOD (TXXPIX + TYXPIY)) +
  728. (TETY*OBJMOD (TXYPIX + TYYPIY));
  729. 'SI' (&DIME 'EGA' 3) ;
  730. TEMU1 = TEMU1 + ((E GR3 TEPEGR S)*OBJMOD PIZ);
  731. TZXPIZ = (E GR3 DEPDTGR S)*OBJMOD PIZ;
  732. TZYPIZ = (E GR6 DEPDTGR S)*OBJMOD PIZ;
  733. TXZPIX = (E GR7 DEPDTGR S)*OBJMOD PIX;
  734. TYZPIY = (E GR8 DEPDTGR S)*OBJMOD PIY;
  735. TZZPIY = (E GR9 DEPDTGR S)*OBJMOD PIZ;
  736. TEMU2 = (TETX*OBJMOD (TXXPIX + TYXPIY + TZXPIZ)) +
  737. (TETY*OBJMOD (TXYPIX + TYYPIY + TZYPIZ)) +
  738. (TETZ*OBJMOD (TXZPIX + TYZPIY + TZZPIZ));
  739. 'FINSI';
  740. TEMU1 = 'CHAN' 'TYPE' ('EXCO' 'SCAL' TEMU1 'T') 'TEMPERATURES';
  741. EPSTU1 = 'ELAS' OBJMOD ('THETA' OBJMOD MAT1 TEMU1) MAT1;
  742. TEMU2 = 'CHAN' 'TYPE' ('EXCO' 'SCAL' TEMU2 'T') 'TEMPERATURES';
  743. EPSTU2 = 'ELAS' OBJMOD ('THETA' OBJMOD MAT1 TEMU2) MAT1;
  744. 'FINSI' ;
  745. 'FINSI';
  746. ********************************************************************
  747. ****** On calcul la variation de contrainte et de déplacement ******
  748. ********************************************************************
  749. 'SI' ISECO;
  750. GRAD11 = (OBJMOD GRADEP * PIGR) ;
  751. EPXX1 = E GR1 GRAD11 S;
  752. EPYY1 = E GR5 GRAD11 S;
  753. EPZZ1 = E GR9 GRAD11 S;
  754. GAXY1 = (E GR2 GRAD11 S) + (E GR4 GRAD11 S) ;
  755. GAXZ1 = (E GR3 GRAD11 S) + (E GR7 GRAD11 S) ;
  756. GAYZ1 = (E GR6 GRAD11 S) + (E GR8 GRAD11 S) ;
  757. 'SI' (&DIME 'EGA' 3) ;
  758. EPSIA1 = 'MANU' 'CHML' OBJMOD EP1 EPXX1 EP2
  759. EPYY1 EP3 EPZZ1 EP4 GAXY1 EP5 GAXZ1 EP6
  760. GAYZ1 'TYPE' 'DEFORMATIONS' 'STRESSES';
  761. 'SINON';
  762. EPSIA1 = 'MANU' 'CHML' OBJMOD EP1 EPXX1 EP2
  763. EPYY1 EP3 EPZZ1 EP4 GAXY1
  764. 'TYPE' 'DEFORMATIONS' 'STRESSES';
  765. 'FINSI';
  766. 'SI' ITHER; EPSIA1 = EPSIA1 + EPSTU1; 'FINSI';
  767. F11 = ('BSIG' OBJMOD ((('HOOK' OBJMOD MATERI)*OBJMOD EPSIA1)
  768. - (OBJMOD SIGF*DIVPI)) + ('FOFI' OBJMOD SIGF PIGR));
  769. A_DEPI = 'REDU' ('RESO' (F11 + FOR000) RITOTA) MAPART ;
  770. A_SIGF = OBJMOD ('HOOK' OBJMOD MAT1) *
  771. (('EPSI' OBJMOD A_DEPI) - EPSIA1);
  772. 'SINON';
  773. A_DEPI = 'REDU' (SUPTAB.'DEPL_AUXI') MAPART;
  774. A_SIGF = 'REDU' (SUPTAB.'CONT_AUXI') OBJMOD;
  775. 'FINSI';
  776. A_DEPGR = 'GRAD' OBJMOD A_DEPI ;
  777. ******************************************************
  778. ***** S10 = -SIGF*(Grad U)*(Grad PI)*(Grad TETA) *****
  779. ***** S20 = -SIGF*(Grad U)*(Grad TETA)*(Grad PI) *****
  780. ***** S30 = SIGF*(Grad U)*(Grad TETA)*(Div PI) *******
  781. ***** S40 = SIGF*(Grad U)*(Grad PI)*(Div TETA) *******
  782. ***** S50 = ENEGIE*(ADJ TETA*PI) *********************
  783. ***** S60 = ALPH*SIGF*(Grad (Grad T))*PI*TETA ********
  784. ***** S70 = ALPH*SIGF*((Grad T)*PI)*(Div TETA) *******
  785. ***** S80 = ALPH*SIGF*((Grad T)*TETA)*(Div PI) *******
  786. ***** S120= ALPH*SIG1*((Grad T)*TETA) ****************
  787. ***** S90 = SIG1*(Grad U)*(Grad TETA) ****************
  788. ***** S100= SIGF*(Grad U1)*(Grad TETA) ***************
  789. ***** S110= -SIGF*(Grad U1)*(Div TETA) ***************
  790. ***** S130= PRESSION*(grad A_DEPI)*THETA *************
  791. ***** S140= PRESSION_AUXI*(grad U)*THETA *************
  792. ******************************************************
  793. 'SI' ISECO;
  794. S10 = 0. - ('INTG' OBJMOD ('WORK' OBJMOD SIGF
  795. (OBJMOD GRADEP * (OBJMOD PIGR * TETAGR))));
  796. S20 = 0. - ('INTG' OBJMOD ('WORK' OBJMOD SIGF
  797. (OBJMOD GRADEP * (OBJMOD TETAGR * PIGR))));
  798. S30 = 'INTG' OBJMOD (OBJMOD ('WORK' OBJMOD
  799. SIGF (OBJMOD GRADEP * TETAGR)) * DIVPI);
  800. S40 = 'INTG' OBJMOD (OBJMOD ('WORK' OBJMOD
  801. SIGF (OBJMOD GRADEP * PIGR)) * DIVTETA);
  802. S50 = 'INTG' OBJMOD (ENERM * ADJ);
  803. 'SI' ITHER ;
  804. S60 = 'INTG' OBJMOD ('ENER' OBJMOD SIGF EPSTU2);
  805. S70 = 'INTG' OBJMOD (('ENER' OBJMOD SIGF EPSTU1)*DIVTETA);
  806. S80 = 'INTG' OBJMOD (('ENER' OBJMOD SIGF EPSTU)*DIVPI);
  807. 'FINSI';
  808. 'FINSI';
  809. 'SI' ITHER ;
  810. S120 = 'INTG' OBJMOD ('ENER' OBJMOD A_SIGF EPSTU);
  811. 'FINSI';
  812. 'SI' IPRE_A ;
  813. PREI_A = PRES_A 'REDU' MAPART ;
  814. GRADCH = 'CHANGER' 'CHPO' OBJMOD GRADEP;
  815. DEPLX = ((E GR1 GRADCH S)*(E MU1 TETA S)) +
  816. ((E GR2 GRADCH S)*(E MU2 TETA S)) ;
  817. DEPLY = ((E GR4 GRADCH S)*(E MU1 TETA S)) +
  818. ((E GR5 GRADCH S)*(E MU2 TETA S)) ;
  819. DEP0 = DEP000 + ('NOMC' DEPLX MU1) + ('NOMC' DEPLY MU2);
  820. 'SI' (&DIME 'EGA' 3) ;
  821. DEPLX = DEPLX + ((E GR3 GRADCH S)*(E MU3 TETA S));
  822. DEPLY = DEPLY + ((E GR6 GRADCH S)*(E MU3 TETA S));
  823. DEPLZ = ((E GR7 GRADCH S)*(E MU1 TETA S)) +
  824. ((E GR8 GRADCH S)*(E MU2 TETA S)) +
  825. ((E GR9 GRADCH S)*(E MU3 TETA S)) ;
  826. DEP0 = ('NOMC' DEPLX MU1) + ('NOMC' DEPLY MU2) +
  827. ('NOMC' DEPLZ MU3);
  828. 'FINSI';
  829. S140 = (0 - ('XTY' PREI_A DEP0 MOTF MOTU)) ;
  830. 'FINSI' ;
  831. 'SI' IPRES ;
  832. PREINT = PRESSI 'REDU' MAPART ;
  833. GRADCH = 'CHANGER' 'CHPO' OBJMOD A_DEPGR ;
  834. DEPLX = ((E GR1 GRADCH S)*(E MU1 TETA S)) +
  835. ((E GR2 GRADCH S)*(E MU2 TETA S)) ;
  836. DEPLY = ((E GR4 GRADCH S)*(E MU1 TETA S)) +
  837. ((E GR5 GRADCH S)*(E MU2 TETA S)) ;
  838. DEP0 = DEP000 + ('NOMC' DEPLX MU1) + ('NOMC' DEPLY MU2);
  839. 'SI' (&DIME 'EGA' 3) ;
  840. DEPLX = DEPLX + ((E GR3 GRADCH S)*(E MU3 TETA S));
  841. DEPLY = DEPLY + ((E GR6 GRADCH S)*(E MU3 TETA S));
  842. DEPLZ = ((E GR7 GRADCH S)*(E MU1 TETA S)) +
  843. ((E GR8 GRADCH S)*(E MU2 TETA S)) +
  844. ((E GR9 GRADCH S)*(E MU3 TETA S)) ;
  845. DEP0 = ('NOMC' DEPLX MU1) + ('NOMC' DEPLY MU2) +
  846. ('NOMC' DEPLZ MU3);
  847. 'FINSI';
  848. S130 = (0 - ('XTY' PREINT DEP0 MOTF MOTU)) ;
  849. 'FINSI';
  850. S90 = 'INTG' OBJMOD ('WORK' OBJMOD
  851. A_SIGF (OBJMOD GRADEP * TETAGR));
  852. S100 = 'INTG' OBJMOD ('WORK' OBJMOD
  853. SIGF (OBJMOD A_DEPGR * TETAGR));
  854. S110 = 0. - ('INTG' OBJMOD (OBJMOD ('WORK'
  855. OBJMOD SIGF A_DEPGR) * DIVTETA)) ;
  856. **************************************************
  857. ******** RASSEMBLAGE DE DIFFERENTS TERMES ********
  858. **************************************************
  859. TMCANI = S10 + S20 + S30 + S40 + S50 + S90 + S100 + S110;
  860. TTERMI = S60 + S70 + S80 + S120 ;
  861. TPRESS = S130 + S140;
  862. TTOTA = TMCANI + TTERMI + TPRESS ;
  863. ***************************************************
  864. **** STOCKAGE DES RESULTATS DANS SUPTAB.'DGDA' ****
  865. ***************************************************
  866. C1 = C TMCANI ' '; C2 = C TTERMI ' ';
  867. C3 = C TPRESS ' '; C4 = C TTOTA;
  868. 'SI' IPAP;
  869. 'SI' (('EGA' &DIME 2) 'OU' ICOQU);
  870. SUPTAB.'DGDA'.INST = TTOTA;
  871. 'MESS' (C INST ' ') C1 C2 C3 C4;
  872. 'FINSI';
  873. 'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU));
  874. SUPTAB.'DGDA'.INST.PM = TTOTA;
  875. 'MESS' NUNOE (C INST ' ') C1 C2 C3 C4;
  876. 'FINSI';
  877. 'SINON';
  878. 'SI' (('EGA' &DIME 2) 'OU' ICOQU);
  879. 'MESS' C1 C2 C3 C4;
  880. SUPTAB.'DGDA' = TTOTA;
  881. 'FINSI';
  882. 'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU));
  883. 'MESS' NUNOE C1 C2 C3 C4;
  884. SUPTAB.'DGDA'.PM = TTOTA;
  885. 'FINSI';
  886. 'FINSI';
  887. 'MENA';
  888. 'FIN' BCNOEU;
  889. 'MENA';
  890. 'SI' (IPAP 'ET' (NBOU '>' 1));
  891. 'SAUT' 1 'LIGNE';
  892. 'FINSI';
  893. 'SI' (IPAP 'ET' (NBOU 'EGA' 1));
  894. 'SI' (('ABS' ((&BOUCEXT/10) - (&BOUCEXT/10.))) '<' 1.D-10);
  895. 'SAUT' 1 'LIGNE';
  896. 'FINSI';
  897. 'FINSI';
  898. 'FIN' BOUCEXT ;
  899. ****************************************************
  900. ********* FIN BOUCLE SUR LE PAS DE CALCUL *********
  901. ****************************************************
  902. ****************************************************
  903. ** STOCKAGE DES RESULTATS DANS SUPTAB.'EVOLDGDA' ***
  904. ****************************************************
  905. 'SI' IPAP;
  906. SUPTAB.'EVOLDGDA' = TABLE;
  907. IND1 = 'INDE' (SUPTAB.'DGDA');
  908. 'SI' (('EGA' &DIME 2) 'OU' ICOQU);
  909. 'TITRE' CHA1;
  910. PT = PROG; PG = PROG;
  911. 'REPETER' BB1 ('DIME' IND1);
  912. T1 = IND1.&BB1;
  913. PT = PT 'ET' (PROG T1);
  914. PG = PG 'ET' (PROG SUPTAB.'DGDA'.T1);
  915. 'FIN' BB1;
  916. SUPTAB.'EVOLDGDA'='EVOL' 'MANU' 'TEMPS' PT MOTTI PG;
  917. 'FINSI';
  918. 'SI' (('EGA' &DIME 3) 'ET' ('NON' ICOQU));
  919. IND2 = 'INDE' (SUPTAB.'DGDA'.(IND1.1));
  920. 'REPETER' BB1 ('DIME' IND2);
  921. PM = IND2.&BB1; PT = PROG; PG = PROG;
  922. CHA2 = 'CHAI' ' (Pt ' NUNOE ')';
  923. 'TITR' ('CHAI' CHA1 CHA2);
  924. 'REPETER' BB2 ('DIME' IND1);
  925. T1 = IND1.&BB2;
  926. PT = PT 'ET' (PROG T1);
  927. PG = PG 'ET' (PROG SUPTAB.'DGDA'.T1.PM);
  928. 'FIN' BB2;
  929. SUPTAB.'EVOLDGDA'.PM='EVOL' 'MANU' 'TEMPS' PT MOTTI PG;
  930. 'FIN' BB1;
  931. 'FINSI';
  932. 'FINSI';
  933. 'FINPROC' SUPTAB ;
  934.  
  935.  
  936.  
  937.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales