Télécharger g_calcul.procedur

Retour à la liste

Numérotation des lignes :

  1. * G_CALCUL PROCEDUR FD218221 16/12/06 21:15:03 9229
  2. DEBPROC G_CALCUL SUPTAB*'TABLE' INFTAB*'TABLE';
  3. *|=====================================================================|
  4. *| |
  5. *| OBJECTIF : |
  6. *| ========== |
  7. *| |
  8. *| Cette procedure est appelee par G_THETA. |
  9. *| |
  10. *| |
  11. *| ENTREE : |
  12. *| ======== |
  13. *| |
  14. *| SUPTAB = objet de type TABLE utilise par la procedure G_THETA |
  15. *| INFTAB = objet de type TABLE donnant toute information |
  16. *| complementaire pour le calcul des integrales de contour |
  17. *| |
  18. *| |
  19. *| |
  20. *| |
  21. *|=====================================================================|
  22. flmess = faux ;
  23.  
  24.  
  25.  
  26. *|=====================================================================|
  27. *|======= I. INITIALISATIONS ========================================|
  28.  
  29.  
  30. **************************************************
  31. ************* INFORMATIONS GENERALES *************
  32. **************************************************
  33. &ELEM = VALE 'ELEM'; MOTAX = MOT 'AXIS' ;
  34.  
  35. **************************************************
  36. *** INFORMATIONS PROVENANT DE LA TABLE INFTAB ****
  37. **************************************************
  38. MOTTI = INFTAB.'MOTTI' ;
  39. MODCOU = INFTAB.'MODCOU' ;
  40. TABMOD = INFTAB.'TABMOD' ;
  41. NBOBJ = DIME TABMOD ;
  42. LINTER = INFTAB.'LINTER' ;
  43. ICOQU = INFTAB.'ICOQU' ;
  44. IGDER = INFTAB.'IGDER' ;
  45. IGDEP = INFTAB.'IGDEP' ;
  46. IREPRI = INFTAB.'IREPRI' ;
  47. IPAP = INFTAB.'IPAP' ;
  48.  
  49. ILIN = INFTAB.'ILIN' ;
  50. ITHER = INFTAB.'ITHER' ;
  51. IPARAL = INFTAB.'IPARAL' ;
  52. MATVARI= INFTAB.'MATVARI';
  53. YOUVARI= INFTAB.'YOUVARI';
  54. ALFVARI= INFTAB.'ALFVARI';
  55. IINTE = INFTAB.'IINTE' ;
  56. IQUA = INFTAB.'IQUA' ;
  57. ELTETA = INFTAB.'ELTETA' ;
  58. RIGTOT = INFTAB.'RIGTOT' ;
  59. OBJMOD = INFTAB.'OBJMOD' ;
  60. MAILMOD= EXTR OBJMOD 'MAILLAGE' ;
  61. MODPLA = INFTAB.'MODPLA' ;
  62. FOR000 = INFTAB.'FOR000' ;
  63. DEP000 = INFTAB.'DEP000' ;
  64. CMD000 = INFTAB.'CMD000' ;
  65. CMD001 = INFTAB.'CMD001' ;
  66. GRA000 = INFTAB.'GRA000' ;
  67. *
  68. IPERSO1 = INFTAB.'IPERSO1';
  69. SI IPERSO1;
  70. ESTIM = INFTAB . 'ESTIMATION';
  71. FINSI;
  72. IXFEM = INFTAB.'IXFEM' ;
  73. ITYPEF = INFTAB.'ITYPEF' ;
  74. IABC = INFTAB.'IABC' ;
  75. &BOUCEXT = INFTAB.'&BOUCEXT';
  76. &BOUCMIX = INFTAB.'&BOUCMIX';
  77. INST = INFTAB.'INST' ;
  78. FACT1 = INFTAB.'FACT1' ;
  79. C_MATE = INFTAB.'C_MATE' ;
  80. MAT1 = INFTAB.'MAT1' ;
  81. ENERM = INFTAB.'ENERM' ;
  82. WVMIS = INFTAB.'WVMIS' ;
  83. TALPH1 = INFTAB.'TALPH1' ;
  84. TEPINT = INFTAB.'TEPINT' ;
  85. TEPABS = INFTAB.'TEPABS' ;
  86. PREINT = INFTAB.'PREINT' ;
  87. * (fdp) pour la pression sur la fissure
  88. SI (EXIS INFTAB 'MODE_PRESSION_FISSURE');
  89. MODPF = INFTAB.'MODE_PRESSION_FISSURE';
  90. PNF = INFTAB.'PRESSION_FISSURE';
  91. FINSI;
  92. DEPINT = INFTAB.'DEPINT' ;
  93. SIGF = INFTAB.'SIGF' ;
  94. SIG1 = INFTAB.'SIG1' ;
  95. VARF = INFTAB.'VARF' ;
  96. *pour la dynamique
  97. VITF = INFTAB.'VITF' ;
  98. ACCF = INFTAB.'ACCF' ;
  99. *pour le decouplage
  100. MOTMIX = INFTAB.'MOTMIX' ;
  101. MOTMIA = INFTAB.'MOTMIA' ;
  102. A_PREI = INFTAB.'A_PREI' ;
  103. A_DEPI = INFTAB.'A_DEPI' ;
  104. A_DEPGR = INFTAB.'A_DEPGR';
  105. A_SIGF = INFTAB.'A_SIGF' ;
  106. * modif sm
  107. DEFINT = INFTAB.'DEFINT' ;
  108. IDEFI = INFTAB.'IDEFI' ;
  109. * fin modif sm
  110. *debut du cas contact frottant IFROT (btrolle 19/02/2013)
  111. IFROT = INFTAB.'IFROT' ;
  112. si (IFROT);
  113. OBJCON = INFTAB .'OBJCON' ;
  114. OBJCON2 = INFTAB .'OBJCON2';
  115. WDEP = INFTAB .'WDEP' ;
  116. SIGCON = INFTAB .'SIGCON' ;
  117. B_DEPGR = INFTAB .'B_DEPGR';
  118. fins;
  119. *fin du cas contact frottant IFROT (btrolle 19/02/2013)
  120.  
  121. **************************************************
  122. *** QUELQUES MOTS POUR SIMPLIFIER L'ECRITURE ***
  123. **************************************************
  124. MOTU= MOTS 'UX' 'UY'; MOTF = MOTS 'FX' 'FY';
  125. MU1 = MOT 'UX' ; MU2 = MOT 'UY' ; MU3 = MOT 'UZ' ;
  126. MF1 = MOT 'FX' ; MF2 = MOT 'FY' ; MF3 = MOT 'FZ' ;
  127. MFA1= MOT 'FAX' ; MFA2 = MOT 'FAY' ; MFA3 = MOT 'FAZ' ;
  128. GR1 = MOT 'UX,X'; GR2 = MOT 'UX,Y'; GR3 = MOT 'UX,Z';
  129. GR4 = MOT 'UY,X'; GR5 = MOT 'UY,Y'; GR6 = MOT 'UY,Z';
  130. GR7 = MOT 'UZ,X'; GR8 = MOT 'UZ,Y'; GR9 = MOT 'UZ,Z';
  131. SM1 = MOT 'SMXX'; SM2 = MOT 'SMYY'; SM3 = MOT 'SMZZ';
  132. SM4 = MOT 'SMXY'; SM5 = MOT 'SMXZ'; SM6 = MOT 'SMYZ';
  133. EP1 = MOT 'EPXX'; EP2 = MOT 'EPYY'; EP3 = MOT 'EPZZ';
  134. EP4 = MOT 'GAXY'; EP5 = MOT 'GAXZ'; EP6 = MOT 'GAYZ';
  135. SI (EGA MOTAX &MODE) ;
  136. MOTU = MOTS 'UR' 'UZ' ; MOTF = MOTS 'FR' 'FZ' ;
  137. LMTSF = MOTS 'FR' 'FZ' 'FT';
  138. LMTSU = MOTS 'UR' 'UZ' 'UT';
  139. MU1 = MOT 'UR' ; MU2 = MOT 'UZ' ; MU3 = MOT 'UT' ;
  140. MF1 = MOT 'FR' ; MF2 = MOT 'FZ' ;
  141. GR1 = MOT 'UR,R'; GR2 = MOT 'UR,Z'; GR3 = MOT 'UR,T';
  142. GR4 = MOT 'UZ,R'; GR5 = MOT 'UZ,Z'; GR6 = MOT 'UZ,T';
  143. GR7 = MOT 'UT,R'; GR8 = MOT 'UT,Z'; GR9 = MOT 'UT,T';
  144. SM1 = MOT 'SMRR'; SM2 = MOT 'SMZZ'; SM3 = MOT 'SMTT';
  145. SM4 = MOT 'SMRZ';
  146. EP1 = MOT 'EPRR'; EP2 = MOT 'EPZZ'; EP3 = MOT 'EPTT';
  147. EP4 = MOT 'GARZ';
  148. FINSI;
  149. SI (&DIME EGA 3) ;
  150. MOTU = MOTS 'UX' 'UY' 'UZ' ; MOTF = MOTS 'FX' 'FY' 'FZ' ;
  151. FINSI;
  152. SI ICOQU;
  153. MOTU = MOTU ET (MOTS RX RY RZ) ;
  154. MOTF = MOTF ET (MOTS MX MY MZ) ;
  155. FINSI;
  156. *BP: PETIT AJOUT DE NOM DE COMPOSANTE DE CHPOINT
  157. SI(EGA IINTE 1); MOCOMP = 'J'; FINSI;
  158. SI(EGA IINTE 2); MOCOMP = 'C*'; FINSI;
  159. SI(EGA IINTE 3); MOCOMP = 'C*'; FINSI;
  160. SI(EGA IINTE 4); MOCOMP = 'DJDA'; FINSI;
  161. SI(EGA IINTE 5); MOCOMP = 'J'; FINSI;
  162. SI(EGA IINTE 99);
  163. SI(EGA MOTMIX 'I' ); MOCOMP = 'K1'; FINSI;
  164. SI(EGA MOTMIX 'II' ); MOCOMP = 'K2'; FINSI;
  165. SI(EGA MOTMIX 'III'); MOCOMP = 'K3'; FINSI;
  166. FINSI;
  167.  
  168. ************************************
  169. *** RIGTOT + BLOCAGES MECANIQUES ***
  170. ************************************
  171. SI (EGA IINTE 4) ;
  172. SI IPAP;
  173. RIGTOT = RIGTOT ET
  174. (SUPTAB.'SOLUTION_PASAPAS'.'BLOCAGES_MECANIQUES');
  175. *rem bp: on suppose ceux ci identique a ceux de wtab...
  176. SINON;
  177. RIGTOT = RIGTOT ET SUPTAB.'BLOCAGES_MECANIQUES';
  178. FINSI;
  179. FINSI;
  180.  
  181. ************************************
  182. ********* Valeurs initiales ********
  183. ************************************
  184. S10 = 0.; S20 = 0.; S30 = 0.; S40 = 0.; S50 = 0.;
  185. S60 = 0.; S70 = 0.; S80 = 0.; S90 = 0.; S100 = 0.;
  186. S110 = 0.; S120 = 0.; S130 = 0.; S140 = 0.; S141 = 0.;
  187. S150 = 0.; S160 = 0.; S170 = 0.; S180 = 0.;
  188. S190 = 0.; S200 = 0.; S210 = 0.; S220 = 0.;
  189.  
  190. ************************************
  191. ********** MATERIAU MAT2 ***********
  192. ************************************
  193. SI (ICOQU ET IQUA);
  194. MAT2 = MAT1;
  195. SINON;
  196. MAT2 = TEXT ' ';
  197. FINSI;
  198.  
  199. ***************************************************
  200. ** DECLARATION DES TABLES STOCKANT LES RESULTATS **
  201. ***************************************************
  202. * SI ((EGA &BOUCEXT 1) ET (EGA &BOUCMIX 1));
  203. * SI (IPAP ET (NON IREPRI));
  204. * BP: mauvaise place du test sur IREPRI
  205. si(iperso1); FLCREA = iabc ega 0;
  206. sino; FLCREA = NON IREPRI;
  207. fins;
  208. SI ((EGA &BOUCEXT 1) ET (EGA &BOUCMIX 1) et FLCREA);
  209. SI (IPAP);
  210. si(flmess); mess 'on va creer SUPTAB RESULTATS'; fins;
  211. *** CREATION DE LA TABLE CRIT_DECHA_*
  212. SI (EGA ITYPEF 99);
  213. SUPTAB.'CRIT_DECHA_GLOBAL1' = TABLE ;
  214. SUPTAB.'CRIT_DECHA_LOCAL1' = TABLE ;
  215. SUPTAB.'CRIT_DECHA_GLOBAL2' = TABLE ;
  216. SUPTAB.'CRIT_DECHA_GLOBAL2_L' = TABLE ;
  217. SUPTAB.'CRIT_DECHA_LOCAL2' = TABLE ;
  218. FINSI;
  219. *** CREATION DE LA TABLE RESULTATS EN 2D
  220. SI (EGA &DIME 2);
  221. SI (EGA IINTE 99);
  222. SUPTAB.'RESULTATS' = TABLE;
  223. SUPTAB.'RESULTATS'.'I' = TABLE;
  224. SUPTAB.'RESULTATS'.'II' = TABLE;
  225. SUPTAB.'EVOLUTION_RESULTATS' = TABLE;
  226. SINON;
  227. SUPTAB.'RESULTATS' = TABLE;
  228. FINSI;
  229. FINSI;
  230. *** CREATION DE LA TABLE RESULTATS EN 3D
  231. SI (EGA &DIME 3) ;
  232. SI (EGA IINTE 99);
  233. SUPTAB.'RESULTATS' = TABLE;
  234. SUPTAB.'RESULTATS'.'I' = TABLE;
  235. SUPTAB.'RESULTATS'.'II' = TABLE;
  236. SUPTAB.'RESULTATS'.'III' = TABLE;
  237. SUPTAB.'EVOLUTION_RESULTATS' = TABLE;
  238. SUPTAB.'EVOLUTION_RESULTATS'.'I' = TABLE;
  239. SUPTAB.'EVOLUTION_RESULTATS'.'II' = TABLE;
  240. SUPTAB.'EVOLUTION_RESULTATS'.'III' = TABLE;
  241. SINON;
  242. SUPTAB.'RESULTATS' = TABLE;
  243. SUPTAB.'EVOLUTION_RESULTATS' = TABLE;
  244. FINSI;
  245. FINSI;
  246. *** CREATION DE LA TABLE EPAISSEUR_RESULTATS EN COQUE
  247. SI ICOQU;
  248. SI (EGA IINTE 99);
  249. SUPTAB.'EPAISSEUR_RESULTATS' = TABLE;
  250. SUPTAB.'EPAISSEUR_RESULTATS'.'I' = TABLE;
  251. SUPTAB.'EPAISSEUR_RESULTATS'.'II' = TABLE;
  252. SUPTAB.'EPAISSEUR_RESULTATS'.'III'= TABLE;
  253. SINON;
  254. SUPTAB.'EPAISSEUR_RESULTATS' = TABLE;
  255. FINSI;
  256. FINSI;
  257. * CAS OU L ON NE VERIFIE PAS (IPAP ET (NON IREPRI));
  258. SINON;
  259. *** CREATION DE LA TABLE RESULTATS EN 2D
  260. SI (EGA &DIME 2);
  261. SI (EGA IINTE 99);
  262. SUPTAB.'RESULTATS' = TABLE;
  263. FINSI;
  264. FINSI;
  265. *** CREATION DE LA TABLE RESULTATS EN 3D
  266. SI (EGA &DIME 3);
  267. SI (EGA IINTE 99);
  268. SUPTAB.'RESULTATS' = TABLE;
  269. SUPTAB.'RESULTATS'.'I' = TABLE;
  270. SUPTAB.'RESULTATS'.'II' = TABLE;
  271. SUPTAB.'RESULTATS'.'III' = TABLE;
  272. SINON;
  273. SUPTAB.'RESULTATS' = TABLE;
  274. FINSI;
  275. FINSI;
  276. *** CREATION DE LA TABLE EPAISSEUR_RESULTATS EN COQUE
  277. SI ICOQU;
  278. SI (EGA IINTE 99);
  279. SUPTAB.'EPAISSEUR_RESULTATS' = TABLE;
  280. FINSI;
  281. FINSI;
  282. FINSI;
  283. FINSI;
  284.  
  285. *POUR LE PAS DE TEMPS IABC
  286. SI (IPAP ET (EGA &DIME 3) ET (EGA &BOUCMIX 1));
  287. SI (EGA IINTE 99);
  288. SUPTAB.'RESULTATS'.'I'.IABC = TABLE;
  289. SUPTAB.'RESULTATS'.'II'.IABC = TABLE;
  290. SUPTAB.'RESULTATS'.'III'.IABC = TABLE;
  291. SINON;
  292. SUPTAB.'RESULTATS'.IABC = TABLE;
  293. FINSI;
  294. FINSI;
  295.  
  296.  
  297.  
  298. *|=====================================================================|
  299. *|======= II. CRITERES DE DECHARGES =================================|
  300.  
  301.  
  302. ************************************************************
  303. ****** CRITERE GLOBAL 1 DE DECHARGE DES CONTRAINTES ********
  304. ************************************************************
  305. ***
  306. *** EVALUATION EN ELASTO-PLASTICITE OU THERMO-ELASTO-PLASTICITE
  307. *** PAR COMPARAISON AVEC UN CALCUL EN ELASTICITE NON-LINEAIRE
  308. *** EN PRENANT POUR REFERENCE LES CONTRAINTES DE VON-MISES DU
  309. *** CALCUL RENDU PAR PASAPAS ET LES CONTRAINTES EQUIVALENTES LUES
  310. *** SUR LES COURBES DE TRACTION
  311. ***
  312. OUICRIT = FAUX ;
  313. SI (EXIS SUPTAB 'CALCUL_CRITERE') ;
  314. OUICRIT = SUPTAB.'CALCUL_CRITERE';
  315. FINSI ;
  316. SI (FLMESS ET OUICRIT);
  317. MESS 'on va calculer les CRITERES DE DECHARGES, modpla=';
  318. * list modpla;
  319. FINSI;
  320.  
  321. SI ((EGA ITYPEF 99) ET IPAP ET OUICRIT);
  322.  
  323. XCRIT = 1. ;
  324.  
  325. REPE BCMOD0 NBOBJ;
  326. EXISCRIT = FAUX ;
  327. MODI = TABMOD.&BCMOD0 ;
  328. MATI = REDU MAT1 MODI ;
  329. EPSE1 = EXCO VARF 'EPSE' ;
  330. EPSE1 = EPSE1 CHAN TYPE 'SCALAIRE';
  331. EPSET = REDU EPSE1 MODI ;
  332. MSQ = MASQ 'SUPERIEUR' EPSET 1.E-6 ;
  333.  
  334. *VMIS1 = contraintes de Von-Mises en elastoplastique
  335. VMIS1 = CHAN ('VMIS' MODI (REDU SIGF MODI) MATI)
  336. TYPE 'SCALAIRE';
  337.  
  338. SI ('EXIS' MODPLA &BCMOD0) ;
  339. * TEPABS = TEPINT + TALPH1 ;
  340. YOU = CHAN 'STRESSES' MODI (EXCO MATI 'YOUN') ;
  341. YOU = YOU CHAN TYPE 'SCALAIRE';
  342. SI (EGA MODPLA.&BCMOD0 1);
  343. *modele est plastique isotrope. on utilise la
  344. *courbe de traction TABTRA.&BCMOD0
  345. EXISCRIT = VRAI ;
  346. MATA = 'VARI' 'NUAG' MODI ('MATE' MODI
  347. 'TRAC' TABTRA.&BCMOD0) TEPABS ;
  348. EPELAST = EXCO (VMIS1*(YOU**(-1))) 'SCAL' 'EPSE' ;
  349. EPSTOT = EPELAST + EPSET ;
  350. *VMIS2 = contraintes deduites des deformations
  351. *equivalentes par la courbe de traction
  352. VMIS2 = 'VARI' 'NUAG' MODI (EXCO 'TRAC' MATA 'SIGM')
  353. EPSTOT 'STRESSES' 'SCALAIRE';
  354. FINSI;
  355.  
  356. SI (EGA MODPLA.&BCMOD0 2) ;
  357. *modele est plastique cinematique, cas ou
  358. *SIGY et H sont des evolutions
  359. EXISCRIT = VRAI ;
  360. VMIS22 = CHAN 'STRESSES' MODI (EXCO MATI 'SIGY' 'SCAL') ;
  361. HSCAL = EXCO MATI 'H' 'SCAL';
  362. HSCAL = HSCAL CHAN TYPE 'SCALAIRE';
  363. VMIS2 = VMIS22 + ((CHAN 'STRESSES' MODI HSCAL) * EPSET);
  364. FINSI;
  365.  
  366. SI (EGA MODPLA.&BCMOD0 3) ;
  367. *modele est plastique parfait
  368. EXISCRIT = VRAI ;
  369. VMIS2 = CHAN 'STRESSES' MODI ((EXCO MATI 'SIGY' 'SCAL')
  370. CHAN TYPE 'SCALAIRE' ) ;
  371. FINSI;
  372.  
  373. SINON;
  374. *** modele elastoplastique et modele plastique cinematique
  375. *** avec caracteristiques independantes de la temperature
  376.  
  377. SI (EXIS MATI 'TRAC') ;
  378. *extraction de la courbe de traction du modele MODI
  379. EXISCRIT = VRAI ;
  380. TRACTI = EXTR MATI 'TRAC' 1 1 1 ;
  381. PEPSO = EXTR TRACTI 'ABSC' ;
  382. PSIGM = EXTR TRACTI 'ORDO' ;
  383. TRACTI = 'EVOL' 'MANU' 'EPSE' PEPSO 'SIGM' PSIGM ;
  384. YOU = CHAN 'STRESSES' MODI (EXCO MATI 'YOUN') ;
  385. YOU = YOU CHAN TYPE 'SCALAIRE' ;
  386. EPELAST= EXCO (VMIS1*(YOU**(-1))) 'SCAL' 'EPSE' ;
  387. EPSTOT = EPELAST + EPSET ;
  388. *VMIS2 = contraintes deduites des deformations
  389. *equivalentes par la courbe de traction
  390. VMIS2 = 'VARI' MODI EPSTOT TRACTI 'STRESSES' ;
  391. *? VMIS2 = VMIS2 CHAN TYPE 'SCALAIRE';
  392. FINSI;
  393.  
  394. SI ((EXIS MATI 'SIGY') ET (EXIS MATI 'H'));
  395. *modele est plastique cinematique traite ici separement du cas
  396. *ou SIGY et H sont des evolutions c'est inutile car MAT1 est
  397. *deja instantie en temperature mais il faudra regler le pb de
  398. *MODPLA dans son ensemble avec ZONE et une identification
  399. *automatique de chacun des sous-modes
  400. EXISCRIT = VRAI ;
  401. VMIS22 = CHAN 'STRESSES' MODI (EXCO MATI 'SIGY' 'SCAL');
  402. VMIS22 = VMIS22 CHAN TYPE 'SACALAIRE';
  403. HSCAL = EXCO MATI 'H' 'SCAL';
  404. HSCAL = HSCAL CHAN TYPE 'SCALAIRE';
  405. VMIS2 = VMIS22 + ((CHAN 'STRESSES' MODI HSCAL) * EPSET);
  406. FINSI;
  407. SI ((EXIS MATI 'SIGY') ET (NON (EXIS MATI 'H')));
  408. *modele est plastique parfait
  409. EXISCRIT = VRAI ;
  410. VMIS2 = CHAN 'STRESSES' MODI (EXCO MATI 'SIGY' 'SCAL');
  411. VMIS2 = VMIS2 CHAN TYPE 'SCALAIRE';
  412. FINSI;
  413.  
  414. FINSI;
  415.  
  416. SI EXISCRIT ;
  417. VMIS1P = VMIS1 * MSQ ;
  418. VMIS1S = INTG MODI VMIS1P ;
  419. VMIS2P = VMIS2 * MSQ ;
  420. VMIS2S = INTG MODI VMIS2P ;
  421. SI ('NEG' VMIS1S 0.) ;
  422. XCRIT = XCRIT + ((VMIS2S/VMIS1S) - 1.) ;
  423. FINSI ;
  424. FINSI ;
  425.  
  426. FIN BCMOD0;
  427.  
  428. SUPTAB.'CRIT_DECHA_GLOBAL1'.IABC = XCRIT ;
  429.  
  430. FINSI;
  431.  
  432.  
  433. *********************************************************
  434. ****** CRITERE LOCAL 1 DE DECHARGE DES CONTRAINTES ******
  435. *********************************************************
  436. ***
  437. ***
  438. ***
  439. ***
  440. ***
  441.  
  442. SI ((EGA ITYPEF 99) ET IPAP ET (IABC > 0) ET OUICRIT);
  443. SI FLMESS;
  444. MESS 'CRITERE LOCAL 1';
  445. FINSI;
  446. EXISCRIT = FAUX ;
  447. VMITOTF = ZERO OBJMOD STRESSES ;
  448. VMITOT1 = ZERO OBJMOD STRESSES ;
  449. *initialisation
  450.  
  451. REPE BCMOD0 NBOBJ;
  452.  
  453. MODI = TABMOD.&BCMOD0 ;
  454. MATI = REDU MAT1 MODI ;
  455. EPSE1 = EXCO VARF 'EPSE' ;
  456. EPSE1 = EPSE1 CHAN TYPE 'SCALAIRE';
  457. EPSET = REDU EPSE1 MODI ;
  458. MSQ = 'MASQ' 'SUPERIEUR' EPSET 1.E-6 ;
  459.  
  460. SI ('EXIS' MODPLA &BCMOD0) ;
  461. INST1 = SUPTAB.'SOLUTION_PASAPAS'.'TEMPS'.(IABC-1) ;
  462. TEPIN1 = TIRE CHAR1 INST1 'T' ;
  463. TEPIN1 = REDU TEPIN1 ELTETA ;
  464. TEPIN1 = TEPIN1 - TALPH1 ;
  465. TEPABS = TEPINT + TALPH1 ;
  466. TEPAB1 = TEPIN1 + TALPH1 ;
  467. *TEPAB1 : temperature absolue au pas precedent
  468.  
  469. *modele plastique isotrope
  470. SI (EGA MODPLA.&BCMOD0 1) ;
  471. MATA = 'VARI' 'NUAG' MODI ('MATE' MODI
  472. 'TRAC' TABTRA.&BCMOD0) TEPABS ;
  473. VMISF = CHAN ('VMIS' MODI SIGF MATA) TYPE 'SCALAIRE' ;
  474. *VMISF : contrainte de Von Mises au pas courant
  475. MATA1 = 'VARI' 'NUAG' MODI ('MATE' MODI
  476. 'TRAC' TABTRA.&BCMOD0) TEPAB1 ;
  477. VMIS1 = CHAN ('VMIS' MODI SIG1 MATA1) TYPE 'SCALAIRE' ;
  478. *VMIS1 : contrainte de Von Mises au pas precedent
  479. FINSI;
  480.  
  481. *modele plastique cinematique ou plastique parfait
  482. SI ((EGA MODPLA.&BCMOD0 2) OU (EGA MODPLA.&BCMOD0 3)) ;
  483. VMISF = CHAN ('VMIS' MODI SIGF MATI) TYPE 'SCALAIRE';
  484. VMIS1 = CHAN ('VMIS' MODI SIG1 MATI) TYPE 'SCALAIRE';
  485. FINSI;
  486.  
  487. *pour ces 3 modeles
  488. SI ((EGA MODPLA.&BCMOD0 1) OU
  489. (EGA MODPLA.&BCMOD0 2) OU
  490. (EGA MODPLA.&BCMOD0 3)) ;
  491. EXISCRIT = VRAI ;
  492. VMISFP = VMISF * MSQ ;
  493. VMIS1P = VMIS1 * MSQ ;
  494. *VMISFP : contrainte de Von Mises aux points d'integration plastifies
  495. ** au pas courant
  496. *VMIS1P : contrainte de Von Mises aux points d'integration plastifies
  497. ** au pas precedent
  498. *on considere la plastification lorsque EPSET > 1E-6
  499. VMISF1P = VMISFP - VMIS1P ;
  500. *VMISFP : difference entre la contrainte equivalente au temps de
  501. *calcul t et celle au temps precedent (t-1)
  502. VMITOTF = VMITOTF + VMISFP ;
  503. VMITOT1 = VMITOT1 + VMISF1P ;
  504. FINSI;
  505.  
  506. SINON;
  507.  
  508. SI ('EXIS' MATI 'TRAC') ;
  509. *modele elastoplastique avec
  510. **caracteristiques independantes de la temperature
  511. VMISF = CHAN ('VMIS' MODI (REDU SIGF MODI) MATI)
  512. TYPE 'SCALAIRE';
  513. VMIS1 = CHAN ('VMIS' MODI (REDU SIG1 MODI) MATI)
  514. TYPE 'SCALAIRE';
  515. FINSI;
  516. SI (EXIS MATI 'SIGY') ;
  517. *modele plastique cinematique et plastique parfait avec
  518. **caracteristiques independantes de la temperature
  519. VMISF = CHAN ('VMIS' MODI SIGF MATI)
  520. TYPE 'SCALAIRE';
  521. VMIS1 = CHAN ('VMIS' MODI SIG1 MATI)
  522. TYPE 'SCALAIRE';
  523. FINSI;
  524.  
  525. SI (('EXIS' MATI 'TRAC') OU (EXIS MATI 'SIGY')) ;
  526. EXISCRIT = VRAI ;
  527. VMISFP = VMISF * MSQ ;
  528. VMIS1P = VMIS1 * MSQ ;
  529. VMISF1P = VMISFP - VMIS1P ;
  530. VMITOTF = VMITOTF + VMISFP ;
  531. VMITOT1 = VMITOT1 + VMISF1P ;
  532. FINSI ;
  533. FINSI ;
  534.  
  535. FIN BCMOD0 ;
  536.  
  537. SI EXISCRIT ;
  538. * MSQO = (CHAN 'CHPO' OBJMOD (VMITOT1*((VMITOTF)**(-1))))
  539. * 'MASQ' 'INFERIEUR' 0. ;
  540. * SUPTAB.'CRIT_DECHA_LOCAL1'.IABC =
  541. * (CHAN 'CHPO' OBJMOD ((VMITOT1*((VMITOTF)**(-1)))) * MSQO) ;
  542. * #MC 04/11/98 : pour le MASQ, un produit suffit (pas de risque de /0)
  543. MSQO = (CHAN 'CHPO' OBJMOD (VMITOT1*VMITOTF))
  544. 'MASQ' 'INFERIEUR' 0. ;
  545. * #MC 04/11/98 : ou il y a des 0, on met 1.E-10
  546. SUPTAB.'CRIT_DECHA_LOCAL1'.IABC =
  547. (CHAN 'CHPO' OBJMOD ((VMITOT1*((
  548. VMITOTF+(1.E-10*(VMITOTF 'MASQ' 'EGAL' 0.))
  549. )**(-1)))) * MSQO) ;
  550. *lorsque la valeur du critere est positive, c'est-a-dire qu'il n'y a
  551. **pas de decharge, celle-ci est ramenee a zero
  552. FINSI;
  553.  
  554. FINSI;
  555.  
  556.  
  557. ************************************************************
  558. ****** CRITERE GLOBAL 2 DE DECHARGE DES CONTRAINTES ********
  559. ************************************************************
  560. ***
  561. ***
  562. ***
  563.  
  564. SI ((EGA ITYPEF 99) ET IPAP ET (NON IREPRI) ET OUICRIT);
  565.  
  566. SI FLMESS;
  567. MESS 'CRITERE GLOBAL 2';
  568. FINSI;
  569.  
  570. SI ('EXIS' SUPTAB.'SOLUTION_PASAPAS' 'DEFORMATIONS_INELASTIQUES');
  571. SI IPERSO1;
  572. EPPLASF = ESTIM . 'DEFORMATIONS_INELASTIQUES';
  573. SINON;
  574. EPPLASF = SUPTAB . 'SOLUTION_PASAPAS'
  575. . 'DEFORMATIONS_INELASTIQUES' . IABC;
  576. FINSI;
  577.  
  578. XCRIT = 1. ;
  579. PRO1 = 0. ;
  580. PRO2 = 0. ;
  581. CRITLOCA = MANU 'CHML' OBJMOD 'SCAL' 1. 'STRESSES' ;
  582. NUMERA = ZERO OBJMOD 'STRESSES' ;
  583. DENOMI = ZERO OBJMOD 'STRESSES' ;
  584. *initialisation
  585. *glob2 n'est pas calcule si reprise car on ne connait pas i-1
  586.  
  587. VMISF = CHAN ('VMIS' OBJMOD SIGF MAT1) TYPE 'SCALAIRE';
  588. *VMISF : contrainte de Von Mises au pas courant
  589. SI ('EXIS' SUPTAB VMISMAX);
  590. MQSIG = 'MASQ' 'SUPERIEUR' 0. ((SUPTAB.VMISMAX) - VMISF) ;
  591. VMISF = VMISF + (MQSIG * ((SUPTAB.VMISMAX) - VMISF)) ;
  592. FINSI;
  593. SUPTAB.VMISMAX = VMISF ;
  594.  
  595. REPE BCMOD0 NBOBJ ;
  596. EXISCRIT = FAUX ;
  597. MODI = TABMOD.&BCMOD0 ;
  598. MATI = REDU MAT1 MODI ;
  599. MAILI = EXTR MODI 'MAIL';
  600. EPSEI = REDU (EXCO VARF 'EPSE') MODI ;
  601. EPSEI = EPSEI CHAN TYPE 'SCALAIRE';
  602. * EPPLASI = (SUPTAB.'SOLUTION_PASAPAS'.
  603. * 'DEFORMATIONS_INELASTIQUES'.IABC) REDU MODI ;
  604. EPPLASI= REDU EPPLASF MODI ;
  605. VMISFI = REDU VMISF MODI ;
  606. SIGFI = REDU SIGF MODI ;
  607. YOU = CHAN 'STRESSES' MODI (EXCO MATI 'YOUN') ;
  608. YOU = YOU CHAN TYPE 'SCALAIRE';
  609. SI ('EXIS' MODPLA &BCMOD0) ;
  610. SI ((EGA MODPLA.&BCMOD0 1) OU
  611. (EGA MODPLA.&BCMOD0 2) OU
  612. (EGA MODPLA.&BCMOD0 3)) ;
  613. *modele plastique isotrope
  614. *modele plastique cinematique
  615. *modele plastique parfait
  616. lm_dein = EXTR epplasi 'COMP' ;
  617. lm_defo = EXTR modi 'DEFO' ;
  618. ep_u = nomc lm_dein lm_defo epplasi ;
  619. ep_u = changer ep_u type deformations ;
  620. * PRO1 = PRO1 + (INTG MODI (ENER MODI SIGFI EPPLASI));
  621. PRO1 = PRO1 + (INTG MODI (ENER MODI SIGFI ep_u));
  622. PRO2 = PRO2 + (INTG MODI (VMISFI * EPSEI)) ;
  623. SI (PRO2 'NEG' 0.D0) ;
  624. XCRIT = XCRIT + (1. - (PRO1/PRO2)) ;
  625. FINS;
  626. FINSI;
  627. SINON;
  628.  
  629. SI (('EXIS' MATI 'TRAC') OU (EXIS MATI 'SIGY'));
  630. *modele elastoplastique et
  631. *modele plastique cinematique et plastique parfait
  632. ** avec caracteristiques independantes de la temperature
  633. lm_dein = EXTR epplasi 'COMP' ;
  634. lm_defo = EXTR modi 'DEFO' ;
  635. ep_u = 'NOMC' lm_dein lm_defo epplasi ;
  636. ep_u = ep_u changer type deformations ;
  637. * PRO1 = PRO1 + (INTG MODI (ENER MODI SIGFI EPPLASI));
  638. PRO1 = PRO1 + (INTG MODI (ENER MODI SIGFI ep_u));
  639. PRO2 = PRO2 + (INTG MODI (VMISFI * EPSEI)) ;
  640. * NUMERA = NUMERA + (ENER MODI SIGFI EPPLASI) ;
  641. NUMERA = NUMERA + (ENER MODI SIGFI ep_u) ;
  642. DENOMI = DENOMI + (VMISFI * EPSEI) ;
  643. * petit traitement pour eviter de diviser par zero
  644. MIN0 = MINI 'ABS' DENOMI ;
  645. MIN1 = MINI DENOMI ;
  646. MAX1 = MAXI DENOMI ;
  647. AMP = MAX1 - MIN1 ;
  648. SI (AMP < 1.E-15) ;
  649. AMP = 1.E-15 ;
  650. FINSI ;
  651. SI (MIN0 < (1.E-15 * AMP)) ;
  652. DENOMI = DENOMI + (1.E-15 * AMP) ;
  653. FINSI ;
  654. CRITLOCA = CRITLOCA + (1. - (NUMERA / DENOMI)) ;
  655. FINSI;
  656. FINSI ;
  657. FIN BCMOD0 ;
  658.  
  659. * Le maxi sert a corriger le probleme castem sur les EPSE
  660. * (ENER MODI SIGFI EPPLASI) n est pas toujours egal a
  661. * (VMISFI * EPSEI) lorsque le chargement est proportionnel
  662. * A supprimer quand le pb sera resolu
  663. SUPTAB.'CRIT_DECHA_GLOBAL2' .IABC='MAXI'(prog 0.9999999999 XCRIT);
  664. SUPTAB.'CRIT_DECHA_GLOBAL2_L'.IABC= CRITLOCA ;
  665.  
  666. *mess 'PRO1' , PRO1 , 'PRO2' , PRO2 , 'XCRIT' , XCRIT ;
  667.  
  668. FINSI;
  669. FINSI;
  670.  
  671.  
  672. *********************************************************
  673. ****** CRITERE LOCAL 2 DE DECHARGE DES CONTRAINTES ******
  674. *********************************************************
  675. ***
  676. ***
  677. ***
  678. ***
  679.  
  680. SI ((EGA ITYPEF 99) ET IPAP ET (IABC > 0) ET OUICRIT);
  681. si(flmess); mess 'CRITERE local 2'; fins;
  682.  
  683. *initialisation
  684. EXISCRIT = FAUX ;
  685. CRIT0 = 'ZERO' OBJMOD STRESSES ;
  686.  
  687. REPE BCMOD0 NBOBJ;
  688. MODI = TABMOD.&BCMOD0 ;
  689. MATI = REDU MAT1 MODI ;
  690. EPSE1 = EXCO VARF 'EPSE' ;
  691. EPSE1 = EPSE1 CHAN TYPE 'SCALAIRE';
  692. EPSET = REDU EPSE1 MODI ;
  693.  
  694. SI (('EXIS' MODPLA &BCMOD0) OU ('EXIS' MATI 'TRAC')
  695. OU ('EXIS' MATI 'SIGY'));
  696. MAT_z = 'MANU' 'CHML' MODI 'YOUN' 1. 'NU' 0. 'EPAI' 1.
  697. TYPE 'CARACTERISTIQUES' 'RIGIDITE' ;
  698. EXISCRIT = VRAI ;
  699. DSIG = ELAS MODI (SIGF - SIG1) MAT_z ;
  700. INV1 = ENER MODI (REDU SIGF MODI) (REDU DSIG MODI) ;
  701. SIGFTRA = ENER MODI (REDU SIGF MODI)
  702. (REDU (ELAS MODI SIGF MAT_z) MODI) ;
  703. DSIGTRA = ENER MODI (REDU DSIG MODI)
  704. (ELAS MODI DSIG MAT_z) ;
  705. NOR1 = SIGFTRA**(1./2) ;
  706. DNOR = DSIGTRA**(1./2) ;
  707. DENO = NOR1 * DNOR ;
  708. CRIT0 = CRIT0 + (INV1 * (DENO**(-1))) ;
  709.  
  710. FINSI ;
  711.  
  712. FIN BCMOD0 ;
  713.  
  714. SI EXISCRIT ;
  715. SUPTAB.'CRIT_DECHA_LOCAL2'.IABC = CHAN 'CHPO' OBJMOD CRIT0 ;
  716. FINSI;
  717.  
  718.  
  719. FINSI;
  720.  
  721.  
  722.  
  723. *|=====================================================================|
  724. *|======= III. TRAITEMENT DES CHAMPS MECANIQUES =====================|
  725. si(flmess); mess 'TRAITEMENT DES CHAMPS MECANIQUES'; fins;
  726.  
  727. ****************************************************
  728. * ON CHANGE LA TEMPERATURE EN MCHAML AU NOEUD =TEPINT
  729. ****************************************************
  730. SI (EGA (TYPE TEPINT) 'CHPOINT ');
  731. TEPINT = REDU TEPINT ELTETA ;
  732. TEPINT = CHAN 'CHAM' TEPINT OBJMOD 'NOEUD' 'TEMPERATURES';
  733. * FINSI;
  734. * SI (EGA (TYPE TEPINT) 'MCHAML ');
  735. SINON;
  736. SI (EGA (TYPE TEPINT) 'MCHAML ');
  737. TEPINT = REDU TEPINT OBJMOD ;
  738. TEPINT = CHAN 'NOEUD' OBJMOD TEPINT;
  739. FINSI;
  740. FINSI;
  741.  
  742. ***************************************************
  743. ***** GRADIENT DU DEPLACEMENT DEPINT =GRADEP ******
  744. ***************************************************
  745. GRADEP = GRAD OBJMOD MAT1 DEPINT ;
  746. GRADEF = TEXT ' ' ;
  747. SI (ICOQU ET ILIN);
  748. GRADEF = 'GRAF' OBJMOD MAT1 DEPINT;
  749. FINSI;
  750.  
  751. ***************************************************
  752. ***** CAS DU CONTACT FROTTANT : ON CALCULE WSAUTGR = GRADIENT DU SAUT ******
  753. ***************************************************
  754. SI (IFROT);
  755. * WDEP = deplacement de la fissure de composante UX ... AX ...
  756. * [grad(w)] = grad [w] car linearite (le saut [w] est donne par AX ...)
  757. * on utilise un modele liee a la geo de la fissure (cohesif ou contact)
  758. WSAUTGR = GRAD OBJCON WDEP ;
  759. * SIGCON = sigma*n de composantes SMX... homogene a une contrainte
  760. * supporte sur la levre superieure
  761. SI (NEG (TYPE SIGCON) 'MCHAML ');
  762. SIGCON = REDU SIGCON (extr OBJCON2 'MAILLAGE');
  763. SIGCON = CHAN 'CHAM' SIGCON OBJCON2 'STRESSES' 'CONTRAINTES';
  764. FINS;
  765. * Vsigcon = 'VECTEUR' sigcon objcon (1E-8) ('MOTS' 'SMX' 'SMY' 'SMZ');
  766. * 'TRACER' vsigcon ('EXTRAIRE' objcon 'MAIL');
  767. SIGXN = (CHAN (exco SIGCON 'SMX' 'SCAL') TYPE 'SCALAIRE');
  768. SIGYN = (CHAN (exco SIGCON 'SMY' 'SCAL') TYPE 'SCALAIRE');
  769. si (ega &DIME 3);
  770. SIGZN = (CHAN (exco SIGCON 'SMZ' 'SCAL') TYPE 'SCALAIRE');
  771. fins;
  772. FINSI;
  773.  
  774. ***************************************************
  775. ***** GRADIENT DE LA VITESSE VITF =GRAVIT ******
  776. ***************************************************
  777. SI (EGA IINTE 5);
  778. GRAVIT = GRAD OBJMOD MAT1 VITF;
  779. VITF = CHAN 'CHAM' OBJMOD VITF 'STRESSES';
  780. ACCF = CHAN 'CHAM' OBJMOD ACCF 'STRESSES';
  781. FINSI;
  782.  
  783. ***************************************************
  784. ** GRADIENT TEMPERATURE Grad T pour tous elements =TEPEGR
  785. ** et Grad Grad T pour les elements massifs seuls (si DJ/DA) =DEPDTGR
  786. ***************************************************
  787. SI ITHER;
  788. SI (NON ICOQU);
  789. TEPEGR = GRAD OBJMOD MAT1 (((EXCO 'T' TEPINT MU1)
  790. CHAN TYPE 'SCALAIRE') + CMD000);
  791. SI (EGA IINTE 4);
  792. DEPDT = ((EXCO GR1 TEPEGR MU1) + (EXCO GR2 TEPEGR MU2))
  793. CHAN TYPE 'SCALAIRE' ;
  794. SI (&DIME EGA 3);
  795. DEPDT=DEPDT + ((EXCO GR3 TEPEGR MU3) CHAN TYPE 'SCALAIRE');
  796. FINSI;
  797. DEPDTGR = GRAD OBJMOD MAT1 (CHAN TYPE
  798. (CHAN 'NOEUD' OBJMOD DEPDT) 'DEPLACEMENTS');
  799. * DEPDTGR = GRAD OBJMOD MAT1 (CHAN 'CHPO' OBJMOD DEPDT);
  800. FINSI;
  801. SINON;
  802. TEPEGR = GRAD OBJMOD MAT1 ((((EXCO 'TINF' TEPINT MU1)
  803. CHAN TYPE 'SCALAIRE') ET
  804. ((EXCO 'T ' TEPINT MU2)CHAN TYPE 'SCALAIRE') ET
  805. ((EXCO 'TSUP' TEPINT MU3)CHAN TYPE 'SCALAIRE'))
  806. + CMD000);
  807. FINSI;
  808. FINSI;
  809.  
  810. ***************************************************
  811. **GRADIENT DE PRESSIONS Grad P (si DJ/DA) =PRESGR
  812. ***************************************************
  813. SI (EGA IINTE 4);
  814. SI ('>' (XTX PREINT) 1.E-10);
  815. M1 = EXTR OBJMOD 'FORC';
  816. M2 = EXTR OBJMOD 'DEPL';
  817. REPE B1 (DIME M1);
  818. F1 = DEP000 + (EXCO (EXTR M1 &B1) PREINT (EXTR M2 &B1));
  819. FIN B1;
  820. PRESGR = GRAD OBJMOD MAT1 F1;
  821. FINSI;
  822. FINSI;
  823.  
  824. ***************************************************
  825. * PROFIL DE L'ENERGIE DANS L'EPAISSEUR DE LA COQUE
  826. ***************************************************
  827. SI ICOQU;
  828. PEX1 = PROG; PEN1 = PROG;
  829. REPE NBJ7 (DIME MODCOU);
  830. MCOU1 = MODCOU.&NBJ7;
  831. EX1 = EXTR (REDU MCOU1 MAT1) 'EXCE' 1 1 1;
  832. E1 = EXTR (REDU MCOU1 MAT1) 'EPAI' 1 1 1;
  833. SI ('<' (E1 / EPAITO) 1.E-4);
  834. ENR1 = EXTR (REDU MCOU1 ENERM) 'SCAL' 1 1 1;
  835. PEX1 = PEX1 ET ('PROG' EX1);
  836. PEN1 = PEN1 ET ('PROG' ENR1);
  837. FINSI;
  838. FIN NBJ7;
  839. M1 = MOT ' DANS L EPAISSEUR DE LA COQUE A T =';
  840. 'TITR' ('CHAI' 'INTEGRALE ' MOTTI M1 INST);
  841. EVENR = 'EVOL' 'MANU' 'COOR.Z LOCAL' PEX1 MOTTI PEN1;
  842. SOM1 = EXTR 1 ('INTG' EVENR);
  843. SI (EGA SOM1 0.);
  844. SOM1 = SOM1 + 1.E-10;
  845. FINSI;
  846. EVENR = EVENR * EPAITO / SOM1;
  847. NN = DIME (EXTR EVENR 'ORDO' 1);
  848. V_SUPE = EXTR NN (EXTR EVENR 'ORDO' 1);
  849. V_MOYE = EXTR ((NN - 1) / 2) (EXTR EVENR 'ORDO' 1);
  850. V_INFE = EXTR 1 (EXTR EVENR 'ORDO' 1);
  851. FINSI;
  852.  
  853. ****************************************************
  854. * RECUPERATION DU NOMBRE DE POINT A AVANCER =NBOU
  855. ****************************************************
  856. SI ((EGA &DIME 2) OU ICOQU);
  857. NBOU = 1;
  858. FINSI;
  859. SI ((EGA &DIME 3) ET (NON ICOQU));
  860. TTETA*'TABLE' = SUPTAB.'CHAMP_THETA';
  861. SI (EGA IINTE 4);
  862. TPI*'TABLE' = SUPTAB.'CHAMP_PI';
  863. FINSI;
  864. INT = INDE TTETA;
  865. SI (EXIS SUPTAB 'NOEUDS_AVANCES');
  866. SI (EGA (TYPE (SUPTAB.'NOEUDS_AVANCES')) 'MAILLAGE');
  867. PMA = CHAN 'POI1' (SUPTAB.'NOEUDS_AVANCES');
  868. NBOU = ('NBNO' PMA) + 1;
  869. SINON;
  870. A = SUPTAB.'NOEUDS_AVANCES'; NBOU = 2;
  871. FINSI;
  872. SINON;
  873. NBOU = DIME TTETA;
  874. FINSI;
  875. FINSI;
  876.  
  877.  
  878.  
  879. *|=====================================================================|
  880. *|======= BOUCLE SUR LES NOEUDS A AVANCER VIRTUELLEMENT =============>
  881. REPE BCNOEU NBOU;
  882. **************************************************
  883. * RECUP DU CHAMP TETA ASSOCIE AU NOEUD PM DE NUMERO NUNOE
  884. * ET DU CHAMP PI (SI DJ/DA)
  885. **************************************************
  886. SI ((EGA &DIME 3) ET (NON ICOQU));
  887. SI (&BCNOEU EGA NBOU);
  888. PM = MOT 'GLOBAL';
  889. NUNOE = 'CHAI' ' ' PM ' ';
  890. SINON;
  891. PM = INT.&BCNOEU;
  892. SI (EXIS SUPTAB 'NOEUDS_AVANCES');
  893. SI (EGA (TYPE (SUPTAB.'NOEUDS_AVANCES')) 'MAILLAGE');
  894. PM = POIN PMA &BCNOEU;
  895. SINON;
  896. PM = SUPTAB.'NOEUDS_AVANCES';
  897. FINSI;
  898. FINSI;
  899. si(ega (type PM) 'POINT');
  900. NUNOE = NOEU PM;
  901. sino;
  902. NUNOE = &BCNOEU;
  903. fins;
  904. FINSI;
  905. TETA = TTETA.PM;
  906. SI (EGA IINTE 4); PI = TPI.PM; FINSI;
  907. FINSI;
  908. SI ((EGA &DIME 2) OU ICOQU);
  909. PM = SUPTAB.'FRONT_FISSURE';
  910. TETA = SUPTAB.'CHAMP_THETA';
  911. SI (EGA IINTE 4);
  912. PI = SUPTAB.'CHAMP_PI';
  913. FINSI;
  914. FINSI;
  915.  
  916. * si(&BOUCMIX ega 1);
  917. * vq7 = VECT TETA 'DEPL' 'BLEU' ;
  918. * MESHFR1=SUPTAB.'FRONT_FISSURE';MESHFR11 = chan MESHFR1 'POI1';
  919. * * trac vq7 (MAILMOD et MESHFR1 et MESHFR11) 'TITR' 'CHAMP_THETA';
  920. * trac vq7 ((aret MAILMOD) et MESHFR1 et MESHFR11) 'TITR' 'CHAMP_THETA';
  921. * fins;
  922.  
  923.  
  924. **************************************************
  925. * GRADIENT, DIVERGENCE DU CHAMP TETA =TETAGR, DIVTETA
  926. * CHAMELEM TETA =(TETX,TETY,TETZ)
  927. **************************************************
  928. TETA = TETA + DEP000;
  929. TETAGR = GRAD OBJMOD MAT1 TETA;
  930. DIVTETA = (EXCO GR1 TETAGR 'SCAL') +
  931. (EXCO GR5 TETAGR 'SCAL') +
  932. (EXCO GR9 TETAGR 'SCAL');
  933. DIVTETA= DIVTETA CHAN TYPE 'SCALAIRE';
  934. *btrolle 2013 : ajout de TETAX, TETAY et TETAZ
  935. TETAX= CHAN 'CHAM' OBJMOD (EXCO MU1 TETA 'SCAL') 'SCALAIRE';
  936. TETAY= CHAN 'CHAM' OBJMOD (EXCO MU2 TETA 'SCAL') 'SCALAIRE';
  937. TETX = CHAN 'CHAM' OBJMOD (EXCO MU1 TETA 'SCAL') 'STRESSES';
  938. TETY = CHAN 'CHAM' OBJMOD (EXCO MU2 TETA 'SCAL') 'STRESSES';
  939. TETX = TETX CHAN TYPE'SCALAIRE';
  940. TETY = TETY CHAN TYPE'SCALAIRE';
  941. SI (&DIME EGA 3) ;
  942. TETAZ= CHAN 'CHAM' OBJMOD (EXCO MU3 TETA 'SCAL') 'SCALAIRE';
  943. TETZ = CHAN 'CHAM' OBJMOD (EXCO MU3 TETA 'SCAL') 'STRESSES';
  944. TETZ = TETZ CHAN TYPE'SCALAIRE';
  945. FINSI;
  946.  
  947. **************************************************
  948. * GRADIENT, DIVERGENCE DU CHAMP PI =PIGR, DIVPI
  949. * CHAMELEM PI =(PIX,PIY,PIZ)
  950. * ...
  951. **************************************************
  952. SI (EGA IINTE 4);
  953. NORM1 = ((EXCO MU1 PI 'SCAL')**2) + ((EXCO MU2 PI 'SCAL')**2);
  954. SI (EGA &DIME 3);
  955. NORM1 = NORM1 + ((EXCO MU3 PI 'SCAL')**2);
  956. FINSI;
  957. PI = PI + DEP000;
  958. PI = PI / ('MAXI' (NORM1**0.5));
  959. PIGR = GRAD OBJMOD MAT1 PI;
  960. DIVPI = (EXCO GR1 PIGR 'SCAL') +
  961. (EXCO GR5 PIGR 'SCAL') +
  962. (EXCO GR9 PIGR 'SCAL');
  963. DIVPI = DIVPI CHAN TYPE 'SCALAIRE';
  964. PITAGR = (OBJMOD PIGR * TETAGR) ;
  965. DIVPITA = (EXCO GR1 PITAGR 'SCAL') +
  966. (EXCO GR5 PITAGR 'SCAL') +
  967. (EXCO GR9 PITAGR 'SCAL');
  968. DIVPITA = DIVPITA CHAN TYPE 'SCALAIRE';
  969. ADJ = (DIVPITA - (DIVPI * DIVTETA)) ;
  970. PIX = CHAN 'CHAM' OBJMOD (EXCO MU1 PI 'SCAL') 'STRESSES';
  971. PIY = CHAN 'CHAM' OBJMOD (EXCO MU2 PI 'SCAL') 'STRESSES';
  972. PIX= PIX CHAN TYPE'SCALAIRE';
  973. PIY= PIY CHAN TYPE'SCALAIRE';
  974. SI (&DIME EGA 3) ;
  975. PIZ = CHAN 'CHAM' OBJMOD (EXCO MU3 PI 'SCAL') 'STRESSES';
  976. PIZ= PIZ CHAN TYPE'SCALAIRE';
  977. FINSI;
  978. FINSI;
  979.  
  980. ********************************************************
  981. * DENSITE DE MATERIAU EN CAS DE CALCUL DE J DYNAMIQUE **
  982. ********************************************************
  983. SI (EGA IINTE 5);
  984. RHO1 = REDU (EXCO MAT1 'RHO' 'SCAL') OBJMOD;
  985. RHO1 = (CHAN OBJMOD 'STRESSES' RHO1) CHAN TYPE 'SCALAIRE';
  986. FINSI;
  987.  
  988. ********************************************************
  989. *********** SI LE MATERIAU N'EST PAS CONSTANT **********
  990. * YOU1 = YOUGR * TETA = (grad E) * TETA
  991. * SIGPRIM = (grad D)*TETA*(EPSI elas) ou grad D =D(grad E,nu) =DMAT
  992. * ALF1 = ALFGR*TETA = (grad Alpha)*TETA
  993. * DMAT = D(1,nu,ALF1)
  994. ********************************************************
  995. SI MATVARI;
  996. *** Le coefficient de Poisson est constant ***
  997. * NU1 = REDU (EXCO MAT1 'NU' 'SCAL') OBJMOD;
  998. * NU1 = EXCO NU1 'SCAL' 'NU';
  999. NU1 = REDU (EXCO MAT1 'NU') OBJMOD;
  1000. NU1 = NU1 CHAN TYPE 'SCALAIRE';
  1001. ****** Gradient de Module d'young ******
  1002. SI YOUVARI;
  1003. YOU1 = REDU (EXCO MAT1 'YOUN' 'SCAL') OBJMOD;
  1004. YOU1 = YOU1 CHAN TYPE 'SCALAIRE';
  1005. YOUGR = GRA000; I = 0;
  1006. REPE NBJ2 NBOBJ;
  1007. I = I + 1;
  1008. YO1 = CHAN 'STRESSES' TABMOD.I
  1009. (REDU ((EXCO MAT1 'YOUN' MU1)
  1010. CHAN TYPE 'SCALAIRE') TABMOD.I);
  1011. YOUGR = YOUGR + (GRAD TABMOD.I MAT1 (YO1 +
  1012. (REDU CMD001 TABMOD.I)));
  1013. * YO1 = CHAN 'CHPO' TABMOD.I
  1014. * (REDU (EXCO MAT1 'YOUN' 'SCAL') TABMOD.I);
  1015. * YOUGR = YOUGR + (GRAD TABMOD.I MAT1 (('NOMC' MU1 YO1)
  1016. * + (REDU DEP000 (EXTR YO1 'MAIL'))));
  1017. FIN NBJ2;
  1018. YOU1 = (((EXCO GR1 YOUGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1019. *OBJMOD TETX) +
  1020. (((EXCO GR2 YOUGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1021. *OBJMOD TETY);
  1022. SI (&DIME EGA 3);
  1023. YOU1= YOU1 + (((EXCO GR3 YOUGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1024. *OBJMOD TETZ);
  1025. FINSI;
  1026. YOU1 = (EXCO YOU1 'SCAL' 'YOUN') CHAN TYPE 'SCALAIRE' ;
  1027. DMAT = 'MATE' OBJMOD 'YOUN' YOU1 'NU' NU1;
  1028. SIGPRIM = ('HOOK' OBJMOD DMAT)*OBJMOD
  1029. (ELAS OBJMOD SIGF MAT1);
  1030. FINSI;
  1031. ****** Gradient de Coefficient de Dilatation ******
  1032. SI (ITHER ET ALFVARI);
  1033. ALF1 = REDU (EXCO MAT1 'ALPH' 'SCAL') OBJMOD;
  1034. ALF1 = ALF1 CHAN TYPE 'SCALAIRE';
  1035. ALFGR = GRA000; I = 0;
  1036. REPE NBJ3 NBOBJ;
  1037. I = I + 1;
  1038. AL1 = CHAN 'STRESSES' TABMOD.I
  1039. (REDU (EXCO MAT1 'ALPH' MU1) TABMOD.I);
  1040. AL1 = AL1 CHAN TYPE 'SCALAIRE';
  1041. ALFGR = ALFGR + (GRAD TABMOD.I MAT1 (AL1 +
  1042. (REDU CMD001 TABMOD.I)));
  1043. *! AL1 = CHAN 'CHPO' TABMOD.I
  1044. *! (REDU (EXCO MAT1 'ALPH' 'SCAL') TABMOD.I);
  1045. *! ALFGR = ALFGR + (GRAD TABMOD.I MAT1 (('NOMC' MU1 AL1)
  1046. *! + (REDU DEP000 (EXTR AL1 'MAIL'))));
  1047. FIN NBJ3;
  1048. ALF1 = (((EXCO GR1 ALFGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1049. * OBJMOD TETX) +
  1050. (((EXCO GR2 ALFGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1051. * OBJMOD TETY);
  1052.  
  1053. SI (&DIME EGA 3) ;
  1054. ALF1=ALF1 + (((EXCO GR3 ALFGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1055. * OBJMOD TETZ);
  1056. FINSI ;
  1057. ALF1 = EXCO ALF1 'SCAL' 'ALPH';
  1058. ALF1 = ALF1 CHAN TYPE 'SCALAIRE';
  1059. DMAT = 'MATE' OBJMOD 'YOUN' 1. 'NU' NU1 'ALPH' ALF1;
  1060. FINSI;
  1061. FINSI;
  1062.  
  1063. ***********************************************
  1064. * TEMU = (Grad T)*THETA
  1065. * TEMU1 = (Grad T)*PI
  1066. * TEMU2 = (Grad (Grad T))*PI*THETA
  1067. * EPSTU = D^-1 sigma^th
  1068. * avec sigma^th = (-3lambda-2mu)*alpha*(grad T)*TETA*I
  1069. ***********************************************
  1070. SI ITHER;
  1071. SI (NON ICOQU);
  1072. TEMU = (((EXCO GR1 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1073. * OBJMOD TETX) +
  1074. (((EXCO GR2 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1075. * OBJMOD TETY) ;
  1076. SI (&DIME EGA 3) ;
  1077. TEMU=TEMU +(((EXCO GR3 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1078. * OBJMOD TETZ);
  1079. FINSI ;
  1080. TEMU = CHAN TYPE (EXCO 'SCAL' TEMU 'T') 'TEMPERATURES';
  1081. SINON;
  1082. T1 = (((EXCO GR1 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1083. *OBJMOD TETX) +
  1084. (((EXCO GR2 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1085. *OBJMOD TETY) +
  1086. (((EXCO GR3 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1087. * OBJMOD TETZ) ;
  1088. T2 = (((EXCO GR4 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1089. * OBJMOD TETX) +
  1090. (((EXCO GR5 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1091. * OBJMOD TETY) +
  1092. (((EXCO GR6 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1093. * OBJMOD TETZ) ;
  1094. T3 = (((EXCO GR7 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1095. * OBJMOD TETX) +
  1096. (((EXCO GR8 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1097. * OBJMOD TETY) +
  1098. (((EXCO GR9 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1099. * OBJMOD TETZ) ;
  1100. TEMU = CHAN TYPE ((EXCO 'SCAL' T1 'TINF') ET
  1101. (EXCO 'SCAL' T2 'T ') ET
  1102. (EXCO 'SCAL' T3 'TSUP')) 'TEMPERATURES';
  1103. FINSI;
  1104. EPSTU = ELAS OBJMOD (THET OBJMOD MAT1 TEMU) MAT1;
  1105. *
  1106. SI (EGA IINTE 4);
  1107. TEMU1 = (((EXCO GR1 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1108. * OBJMOD PIX) +
  1109. (((EXCO GR2 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1110. * OBJMOD PIY);
  1111. SI (&DIME EGA 3) ;
  1112. TEMU1=TEMU1+(((EXCO GR3 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1113. * OBJMOD PIZ);
  1114. FINSI ;
  1115. SI ICOQU;
  1116. TEMU1 = CHAN TYPE ((EXCO 'SCAL' TEMU1 'T') ET
  1117. (EXCO 'SCAL' TEMU1 'TINF') ET
  1118. (EXCO 'SCAL' TEMU1 'TSUP')) 'TEMPERATURES';
  1119. SINON;
  1120. TEMU1 = CHAN TYPE (EXCO 'SCAL' TEMU1 'T') 'TEMPERATURES';
  1121. FINSI;
  1122. EPSTU1 = ELAS OBJMOD (THET OBJMOD MAT1 TEMU1) MAT1;
  1123. *
  1124. TXXPIX = ((EXCO GR1 DEPDTGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1125. * OBJMOD PIX;
  1126. TYXPIY = ((EXCO GR2 DEPDTGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1127. * OBJMOD PIY;
  1128. TXYPIX = ((EXCO GR4 DEPDTGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1129. * OBJMOD PIX;
  1130. TYYPIY = ((EXCO GR5 DEPDTGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1131. * OBJMOD PIY;
  1132. TEMU2 = (TETX*OBJMOD (TXXPIX + TYXPIY)) +
  1133. (TETY*OBJMOD (TXYPIX + TYYPIY));
  1134. SI (&DIME EGA 3) ;
  1135. TEMU1=TEMU1+(((EXCO GR3 TEPEGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1136. * OBJMOD PIZ);
  1137. TZXPIZ=((EXCO GR3 DEPDTGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1138. * OBJMOD PIZ;
  1139. TZYPIZ=((EXCO GR6 DEPDTGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1140. * OBJMOD PIZ;
  1141. TXZPIX=((EXCO GR7 DEPDTGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1142. * OBJMOD PIX;
  1143. TYZPIY=((EXCO GR8 DEPDTGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1144. * OBJMOD PIY;
  1145. TZZPIY=((EXCO GR9 DEPDTGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1146. * OBJMOD PIZ;
  1147. TEMU2= (TETX*OBJMOD (TXXPIX + TYXPIY + TZXPIZ)) +
  1148. (TETY*OBJMOD (TXYPIX + TYYPIY + TZYPIZ)) +
  1149. (TETZ*OBJMOD (TXZPIX + TYZPIY + TZZPIZ));
  1150. FINSI;
  1151. SI ICOQU;
  1152. TEMU2 = CHAN TYPE ((EXCO 'SCAL' TEMU2 'T') ET
  1153. (EXCO 'SCAL' TEMU2 'TINF') ET
  1154. (EXCO 'SCAL' TEMU2 'TSUP')) 'TEMPERATURES';
  1155. SINON;
  1156. TEMU2 = CHAN TYPE (EXCO 'SCAL' TEMU2 'T') 'TEMPERATURES';
  1157. FINSI;
  1158. EPSTU2 = ELAS OBJMOD (THET OBJMOD MAT1 TEMU2) MAT1;
  1159. FINSI;
  1160. FINSI;
  1161.  
  1162. * modif sm
  1163. ***********************************************
  1164. * CUMDEFI = SIG_{IJ} * (deps_{ij} / dx_{,k}) * thet_{k}
  1165. ***********************************************
  1166. CUMDEFI = ZERO OBJMOD 'STRESSES' ;
  1167. SI IDEFI;
  1168. SI (NON ICOQU);
  1169. LMOEP = EXTR OBJMOD 'DEFO' ;
  1170. LMOSI = EXTR OBJMOD 'CONT' ;
  1171. LMOGR = EXTR OBJMOD 'GRAD' ;
  1172. NIDEF = DIME LMOSI ;
  1173. REPETER BDEFI NIDEF ;
  1174. MOEP = EXTR LMOEP &BDEFI ;
  1175. MOSI = EXTR LMOSI &BDEFI ;
  1176. EIJ = EXCO DEFINT MOEP MU1 ;
  1177. SMIJ = EXCO SIGF MOSI 'SCAL';
  1178. GREIJ = GRAD OBJMOD MAT1
  1179. ((CHAN (CHAN 'NOEUD' OBJMOD EIJ) 'TYPE' 'SCALAIRE') + CMD000);
  1180. DEIJX = (CHAN (CHAN 'STRESSES' OBJMOD
  1181. (EXCO GREIJ (EXTR LMOGR 1) 'SCAL')) TYPE 'SCALAIRE')
  1182. * (CHAN SMIJ TYPE 'SCALAIRE')
  1183. * TETX;
  1184. DEIJY = (CHAN (CHAN 'STRESSES' OBJMOD
  1185. (EXCO GREIJ (EXTR LMOGR 2) 'SCAL')) TYPE 'SCALAIRE')
  1186. * (CHAN SMIJ TYPE 'SCALAIRE')
  1187. * TETY;
  1188. CUMDEFI = CUMDEFI + DEIJX + DEIJY ;
  1189. SI (&DIME EGA 3) ;
  1190. DEIJZ = (CHAN (CHAN 'STRESSES' OBJMOD
  1191. (EXCO GREIJ (EXTR LMOGR 3) 'SCAL')) TYPE 'SCALAIRE')
  1192. * (CHAN SMIJ TYPE 'SCALAIRE')
  1193. * TETZ;
  1194. CUMDEFI = CUMDEFI + DEIJZ;
  1195. FINSI;
  1196. FIN BDEFI;
  1197. FINSI;
  1198. FINSI;
  1199.  
  1200. ***********************************************
  1201. * PEMU1 = (Grad P)*TETA
  1202. * PEMU2 = (Grad P)*(Grad PI)*TETA
  1203. ***********************************************
  1204. SI (EGA IINTE 4);
  1205. SI ('>' (XTX PREINT) 1.E-10);
  1206. F1 = (((EXCO GR1 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1207. * OBJMOD PIX) +
  1208. (((EXCO GR2 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1209. * OBJMOD PIY);
  1210. F2 = (((EXCO GR4 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1211. * OBJMOD PIX) +
  1212. (((EXCO GR5 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1213. * OBJMOD PIY);
  1214. PEMU = CHAN 'CHPO' OBJMOD ((EXCO 'SCAL' F1 MF1) ET
  1215. (EXCO 'SCAL' F2 MF2)) ;
  1216. SI (EGA &DIME 3);
  1217. F1=F1+ (((EXCO GR3 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1218. * OBJMOD PIZ);
  1219. F2=F2+ (((EXCO GR6 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1220. * OBJMOD PIZ);
  1221. F3 = (((EXCO GR7 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1222. * OBJMOD PIX) +
  1223. (((EXCO GR8 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1224. * OBJMOD PIY) +
  1225. (((EXCO GR9 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1226. * OBJMOD PIZ);
  1227. PEMU = CHAN 'CHPO' OBJMOD ((EXCO 'SCAL' F1 MF1) ET
  1228. (EXCO 'SCAL' F2 MF2) ET (EXCO 'SCAL' F3 MF3));
  1229. FINSI;
  1230. *
  1231. F1 = (((EXCO GR1 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1232. * OBJMOD TETX) +
  1233. (((EXCO GR2 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1234. * OBJMOD TETY);
  1235. F2 = (((EXCO GR4 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1236. * OBJMOD TETX) +
  1237. (((EXCO GR5 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1238. * OBJMOD TETY);
  1239. PEMU1 = CHAN 'CHPO' OBJMOD ((EXCO 'SCAL' F1 MF1) ET
  1240. (EXCO 'SCAL' F2 MF2)) ;
  1241. SI (EGA &DIME 3);
  1242. F1=F1+ (((EXCO GR3 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1243. * OBJMOD TETZ);
  1244. F2=F2+ (((EXCO GR6 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1245. * OBJMOD TETZ);
  1246. F3=(((EXCO GR7 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1247. * OBJMOD TETX) +
  1248. (((EXCO GR8 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1249. * OBJMOD TETY) +
  1250. (((EXCO GR9 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1251. * OBJMOD TETZ);
  1252. PEMU1 = CHAN 'CHPO' OBJMOD ((EXCO 'SCAL' F1 MF1) ET
  1253. (EXCO 'SCAL' F2 MF2) ET (EXCO 'SCAL' F3 MF3));
  1254. FINSI;
  1255. *
  1256. F1= (((EXCO GR1 PIGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1257. * OBJMOD TETX) +
  1258. (((EXCO GR2 PIGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1259. * OBJMOD TETY);
  1260. F2= (((EXCO GR4 PIGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1261. * OBJMOD TETX) +
  1262. (((EXCO GR5 PIGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1263. * OBJMOD TETY);
  1264. SI (EGA &DIME 3);
  1265. F1=F1 + (((EXCO GR3 PIGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1266. *OBJMOD TETZ);
  1267. F2=F2 + (((EXCO GR6 PIGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1268. *OBJMOD TETZ);
  1269. F3 = (((EXCO GR7 PIGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1270. *OBJMOD TETX) +
  1271. (((EXCO GR8 PIGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1272. *OBJMOD TETY) +
  1273. (((EXCO GR9 PIGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1274. *OBJMOD TETZ);
  1275. FINSI;
  1276. F4 = (((EXCO GR1 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1277. *OBJMOD F1) +
  1278. (((EXCO GR2 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1279. *OBJMOD F2);
  1280. F5 = (((EXCO GR4 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1281. *OBJMOD F1) +
  1282. (((EXCO GR5 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1283. *OBJMOD F2);
  1284. PEMU2 = CHAN 'CHPO' OBJMOD ((EXCO 'SCAL' F4 MF1) ET
  1285. (EXCO 'SCAL' F5 MF2)) ;
  1286. SI (EGA &DIME 3);
  1287. F4 = F4 + (((EXCO GR3 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1288. * OBJMOD F3);
  1289. F5 = F5 + (((EXCO GR6 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1290. * OBJMOD F3);
  1291. F6 = (((EXCO GR7 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1292. * OBJMOD F1) +
  1293. (((EXCO GR8 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1294. * OBJMOD F2) +
  1295. (((EXCO GR9 PRESGR 'SCAL')CHAN TYPE 'SCALAIRE')
  1296. * OBJMOD F3);
  1297. PEMU2 = CHAN 'CHPO' OBJMOD ((EXCO 'SCAL' F4 MF1) ET
  1298. (EXCO 'SCAL' F5 MF2) ET (EXCO 'SCAL' F6 MF3));
  1299. FINSI;
  1300. FINSI;
  1301. FINSI;
  1302.  
  1303. ***********************************************
  1304. * DANS LE CAS DE CALCUL DE DJ/DA
  1305. * U^aux=A_DEPI et SIGMA^aux=A_SIGF
  1306. ***********************************************
  1307. SI (EGA IINTE 4);
  1308. GRAD11 = (OBJMOD GRADEP * PIGR) ;
  1309. EPXX1 = (EXCO GR1 GRAD11 'SCAL')CHAN TYPE 'SCALAIRE';
  1310. EPYY1 = (EXCO GR5 GRAD11 'SCAL')CHAN TYPE 'SCALAIRE';
  1311. EPZZ1 = (EXCO GR9 GRAD11 'SCAL')CHAN TYPE 'SCALAIRE';
  1312. GAXY1 = ((EXCO GR2 GRAD11 'SCAL') + (EXCO GR4 GRAD11 'SCAL'))
  1313. CHAN TYPE 'SCALAIRE' ;
  1314. GAXZ1 = ((EXCO GR3 GRAD11 'SCAL') + (EXCO GR7 GRAD11 'SCAL'))
  1315. CHAN TYPE 'SCALAIRE' ;
  1316. GAYZ1 = ((EXCO GR6 GRAD11 'SCAL') + (EXCO GR8 GRAD11 'SCAL'))
  1317. CHAN TYPE 'SCALAIRE' ;
  1318. SI (&DIME EGA 3) ;
  1319. EPSIA1 = 'MANU' 'CHML' OBJMOD EP1 EPXX1 EP2
  1320. EPYY1 EP3 EPZZ1 EP4 GAXY1 EP5 GAXZ1 EP6
  1321. GAYZ1 TYPE 'DEFORMATIONS' 'STRESSES';
  1322. SINON;
  1323. EPSIA1 = 'MANU' 'CHML' OBJMOD EP1 EPXX1 EP2
  1324. EPYY1 EP3 EPZZ1 EP4 GAXY1
  1325. TYPE 'DEFORMATIONS' 'STRESSES';
  1326. FINSI;
  1327. SI ITHER; EPSIA1 = EPSIA1 + EPSTU1; FINSI;
  1328. F11 = ('BSIG' OBJMOD ((('HOOK' OBJMOD MAT1)*OBJMOD EPSIA1)
  1329. - (OBJMOD SIGF*DIVPI)) + ('FOFI' OBJMOD SIGF PIGR)) ;
  1330. SI ('>' (XTX PREINT) 1.E-10);
  1331. F11 = F11 + PEMU + (PREINT*(CHAN 'CHPO' OBJMOD DIVPI));
  1332. FINSI;
  1333. A_PREI = FOR000;
  1334. A_DEPI = REDU ('RESO' (F11 + FOR000) RIGTOT) ELTETA ;
  1335. A_SIGF = OBJMOD ('HOOK' OBJMOD MAT1)*
  1336. (('EPSI' OBJMOD A_DEPI) - EPSIA1);
  1337. FINSI;
  1338.  
  1339. ***************************************************
  1340. * GRADIENT DU DEPLACEMENT AUX A_DEPI =A_DEPGR
  1341. * SI DJ/DA ou SI DECOUPLAGE (sauf si A_DEPGR existe deja)
  1342. ***************************************************
  1343. SI ((EGA IINTE 4) OU (EGA IINTE 99));
  1344. si (NEG (TYPE A_DEPGR) 'MCHAML');
  1345. A_DEPGR = GRAD OBJMOD MAT1 A_DEPI;
  1346. fins;
  1347. A_DEPGF = TEXT ' ' ;
  1348. SI (ICOQU ET ILIN);
  1349. A_DEPGF = 'GRAF' OBJMOD MAT1 A_DEPI;
  1350. FINSI;
  1351. FINSI;
  1352.  
  1353. ***********************************************
  1354. * DEP0 = (grad U)*THETA
  1355. ***********************************************
  1356. LO1 = ((EGA IINTE 1) OU (EGA IINTE 2) OU (EGA IINTE 3)
  1357. OU (EGA IINTE 4) OU (EGA IINTE 5))
  1358. ET ('>' (XTX PREINT) 1.E-10);
  1359. LO2 = FAUX;
  1360. SI (EGA IINTE 99);
  1361. LO2 = '>' (XTX A_PREI) 1.E-10;
  1362. FINSI;
  1363. SI (LO1 OU LO2);
  1364. GRADCH = CHAN 'CHPO' OBJMOD GRADEP ;
  1365. * mess 'gcalcul : CHAN CHPO grad(U)';
  1366. *bp : on se ramene a un chpoint pour faire XTY avec preint ensuite
  1367. * on moyenne avce CHAN CHPO, pourrait on l'eviter?
  1368. DEPLX = ((EXCO GR1 GRADCH 'SCAL')*(EXCO MU1 TETA 'SCAL')) +
  1369. ((EXCO GR2 GRADCH 'SCAL')*(EXCO MU2 TETA 'SCAL')) ;
  1370. DEPLY = ((EXCO GR4 GRADCH 'SCAL')*(EXCO MU1 TETA 'SCAL')) +
  1371. ((EXCO GR5 GRADCH 'SCAL')*(EXCO MU2 TETA 'SCAL')) ;
  1372. DEP0 = ('NOMC' DEPLX MU1) + ('NOMC' DEPLY MU2);
  1373. SI (&DIME EGA 3) ;
  1374. DEPLX = DEPLX +
  1375. ((EXCO GR3 GRADCH 'SCAL')*(EXCO MU3 TETA 'SCAL'));
  1376. DEPLY = DEPLY +
  1377. ((EXCO GR6 GRADCH 'SCAL')*(EXCO MU3 TETA 'SCAL'));
  1378. DEPLZ = ((EXCO GR7 GRADCH 'SCAL')*(EXCO MU1 TETA 'SCAL')) +
  1379. ((EXCO GR8 GRADCH 'SCAL')*(EXCO MU2 TETA 'SCAL')) +
  1380. ((EXCO GR9 GRADCH 'SCAL')*(EXCO MU3 TETA 'SCAL')) ;
  1381. DEP0 = ('NOMC' DEPLX MU1) + ('NOMC' DEPLY MU2) +
  1382. ('NOMC' DEPLZ MU3);
  1383. FINSI ;
  1384. SI (ICOQU ET ILIN);
  1385. GRAFCH = CHAN 'CHPO' OBJMOD GRADEF ;
  1386. BXX = EXCO 'BX,X' GRAFCH 'SCAL';
  1387. BXY = EXCO 'BX,Y' GRAFCH 'SCAL';
  1388. BYX = EXCO 'BY,X' GRAFCH 'SCAL';
  1389. BYY = EXCO 'BY,Y' GRAFCH 'SCAL';
  1390. DEPFX = 'NOMC' 'RX' ( (BXX*(EXCO 'UX' TETA 'SCAL'))+
  1391. (BXY*(EXCO 'UY' TETA 'SCAL')) );
  1392. DEPFY = 'NOMC' 'RY' ( (BYX*(EXCO 'UX' TETA 'SCAL'))+
  1393. (BYY*(EXCO 'UY' TETA 'SCAL')) );
  1394. DEP0 = DEP0 + DEPFX + DEPFY;
  1395. FINSI ;
  1396. FINSI;
  1397.  
  1398.  
  1399. ***************************************************************
  1400. * S'il y a une pression sur la fissure, on calcule
  1401. * GRUTE = (grad U)*THETA sur les elements du modele de pression
  1402. * et dans la zone d'etude (ou le champ TETA est definit)
  1403. ***************************************************************
  1404. SI (EXIS INFTAB 'MODE_PRESSION_FISSURE');
  1405. * on recupere le front de fissure que l'on passe en maillage de POI1
  1406. FF = SUPTAB.'FRONT_FISSURE';
  1407. SI (EGA (TYPE FF) 'POINT');
  1408. FF1 = MANU 'POI1' FF;
  1409. FINSI;
  1410. SI (EGA (TYPE FF) 'MAILLAGE');
  1411. FF1 = CHAN 'POI1' FF;
  1412. FINSI;
  1413. * on isole les elements de la fissure ou la pression s'applique et ou le
  1414. * champ teta est definit
  1415. FISSP = EXTR (INFTAB . 'MODE_PRESSION_FISSURE') 'MAIL';
  1416. PFISSP = CHAN 'POI1' FISSP;
  1417. FISSP = FISSP ELEM 'APPU' 'STRI' MAILMOD;
  1418. MODPFT = VIDE 'MMODEL';
  1419. GRADEPF = VIDE 'MCHAML';
  1420. * on interpole le gradient de deplacement (GRADEP) sur les elements du
  1421. * modele de pression touchant la levre inferieure
  1422. SI (EXIS SUPTAB 'LEVRE_INFERIEURE');
  1423. FISI = INTE FISSP (SUPTAB . 'LEVRE_INFERIEURE');
  1424. MODPFI = REDU MODPF FISI;
  1425. MP1 = DIFF (CHAN 'POI1' FISI) FF1;
  1426. EL1 = MAILMOD ELEM 'APPU' 'LARG' MP1;
  1427. OBJMOD1 = REDU OBJMOD EL1;
  1428. GRADEP1 = REDU GRADEP OBJMOD1;
  1429. GRADEP1 = CHAN 'CHAM' GRADEP1 OBJMOD1 'NOEUD';
  1430. GRUI = PROI GRADEP1 MODPFI 'STRESSES';
  1431. MODPFT = MODPFT ET MODPFI;
  1432. GRADEPF = GRADEPF ET GRUI;
  1433. FINSI;
  1434. * on interpole le gradient de deplacement (GRADEP) sur les elements du
  1435. * modele de pression touchant la levre superieure
  1436. SI (EXIS SUPTAB 'LEVRE_SUPERIEURE');
  1437. FISS = INTE FISSP (SUPTAB . 'LEVRE_SUPERIEURE');
  1438. MODPFS = REDU MODPF FISS;
  1439. MP1 = DIFF (CHAN 'POI1' FISS) FF1;
  1440. EL1 = MAILMOD ELEM 'APPU' 'LARG' MP1;
  1441. OBJMOD1 = REDU OBJMOD EL1;
  1442. GRADEP1 = REDU GRADEP OBJMOD1;
  1443. GRADEP1 = CHAN 'CHAM' GRADEP1 OBJMOD1 'NOEUD';
  1444. GRUS = PROI GRADEP1 MODPFS 'STRESSES';
  1445. MODPFT = MODPFT ET MODPFS;
  1446. GRADEPF = GRADEPF ET GRUS;
  1447. FINSI;
  1448. GRADEPF = REDU GRADEPF MODPFT;
  1449. * on interpole le champ theta (TETA) sur les elements du modele de
  1450. * pression ==> TETAF
  1451. TETAF = REDU TETA FISSP;
  1452. TETAF = CHAN 'CHAM' MODPFT TETAF 'STRESSES';
  1453. * on fait ensuite le produit (GRADEPF * TETAF) ==> GRUTE
  1454. LCT = EXTR TETAF 'COMP';
  1455. LCG = EXTR GRADEPF 'COMP';
  1456. SI (EGA &DIME 2);
  1457. LCG12 = EXTR LCG (LECT 1 2);
  1458. LCG45 = EXTR LCG (LECT 4 5);
  1459. GRUTE1 = PSCA GRADEPF TETAF LCG12 LCT;
  1460. GRUTE2 = PSCA GRADEPF TETAF LCG45 LCT;
  1461. GRUTE = (NOMC (EXTR LCT 1) GRUTE1) ET
  1462. (NOMC (EXTR LCT 2) GRUTE2);
  1463. FINSI;
  1464. SI (EGA &DIME 3);
  1465. LCG123 = EXTR LCG (LECT 1 2 3);
  1466. LCG456 = EXTR LCG (LECT 4 5 6);
  1467. LCG789 = EXTR LCG (LECT 7 8 9);
  1468. GRUTE1 = PSCA GRADEPF TETAF LCG123 LCT;
  1469. GRUTE2 = PSCA GRADEPF TETAF LCG456 LCT;
  1470. GRUTE3 = PSCA GRADEPF TETAF LCG789 LCT;
  1471. GRUTE = (NOMC (EXTR LCT 1) GRUTE1) ET
  1472. (NOMC (EXTR LCT 2) GRUTE2) ET
  1473. (NOMC (EXTR LCT 3) GRUTE3);
  1474. FINSI;
  1475. GRUTE = CHAN 'TYPE' GRUTE 'FORCES';
  1476. FINSI;
  1477.  
  1478.  
  1479. ***********************************************
  1480. * DEP1 = (grad A_DEPI)*THETA
  1481. ***********************************************
  1482. LO1 = (EGA IINTE 4) ET ('>' (XTX PREINT) 1.E-10);
  1483. LO2 = FAUX;
  1484. SI (EGA IINTE 99);
  1485. LO2 = ('>' (XTX A_PREI) 1.E-10) OU ('>' (XTX PREINT) 1.E-10);
  1486. FINSI;
  1487. SI (LO1 OU LO2);
  1488. * mess 'gcalcul : CHAN CHPO grad(U^aux)';
  1489. GRADCH = CHAN 'CHPO' OBJMOD A_DEPGR ;
  1490. *bp : on se ramene a un chpoint pour faire XTY avec preint ensuite
  1491. * on moyenne avec CHAN CHPO, pourrait on l'eviter?
  1492. DEPLX = ((EXCO GR1 GRADCH 'SCAL')*(EXCO MU1 TETA 'SCAL')) +
  1493. ((EXCO GR2 GRADCH 'SCAL')*(EXCO MU2 TETA 'SCAL')) ;
  1494. DEPLY = ((EXCO GR4 GRADCH 'SCAL')*(EXCO MU1 TETA 'SCAL')) +
  1495. ((EXCO GR5 GRADCH 'SCAL')*(EXCO MU2 TETA 'SCAL')) ;
  1496. DEP1 = ('NOMC' DEPLX MU1) + ('NOMC' DEPLY MU2);
  1497. SI (&DIME EGA 3) ;
  1498. DEPLX = DEPLX +
  1499. ((EXCO GR3 GRADCH 'SCAL')*(EXCO MU3 TETA 'SCAL'));
  1500. DEPLY = DEPLY +
  1501. ((EXCO GR6 GRADCH 'SCAL')*(EXCO MU3 TETA 'SCAL'));
  1502. DEPLZ = ((EXCO GR7 GRADCH 'SCAL')*(EXCO MU1 TETA 'SCAL')) +
  1503. ((EXCO GR8 GRADCH 'SCAL')*(EXCO MU2 TETA 'SCAL')) +
  1504. ((EXCO GR9 GRADCH 'SCAL')*(EXCO MU3 TETA 'SCAL')) ;
  1505. DEP1 = ('NOMC' DEPLX MU1) + ('NOMC' DEPLY MU2) +
  1506. ('NOMC' DEPLZ MU3);
  1507. FINSI ;
  1508. SI (ICOQU ET ILIN);
  1509. GRAFCH = CHAN 'CHPO' OBJMOD GRADEF ;
  1510. BXX = EXCO 'BX,X' GRAFCH 'SCAL';
  1511. BXY = EXCO 'BX,Y' GRAFCH 'SCAL';
  1512. BYX = EXCO 'BY,X' GRAFCH 'SCAL';
  1513. BYY = EXCO 'BY,Y' GRAFCH 'SCAL';
  1514. DEPFX = 'NOMC' 'RX' ( (BXX*(EXCO 'UX' TETA 'SCAL'))+
  1515. (BXY*(EXCO 'UY' TETA 'SCAL')) );
  1516. DEPFY = 'NOMC' 'RY' ( (BYX*(EXCO 'UX' TETA 'SCAL'))+
  1517. (BYY*(EXCO 'UY' TETA 'SCAL')) );
  1518. DEP1 = DEP1 + DEPFX + DEPFY;
  1519. FINSI ;
  1520. FINSI;
  1521. ***********************************************
  1522. * Termes supplemenetaire en Dynamique
  1523. * VCARE = V*V
  1524. * GRUTV = (grad U)*THETA*V (Attigui)
  1525. * GRVTV = V^T * (grad V)*THETA (BP)
  1526. * GRWTU = W^T * (grad U)*THETA (BP)
  1527. ***********************************************
  1528. SI (EGA IINTE 5);
  1529. VCARE =( ((EXCO MU1 VITF 'SCAL')**2) + ((EXCO MU2 VITF 'SCAL')**2) )
  1530. CHAN TYPE 'SCALAIRE' ;
  1531. DEPFX = (((EXCO GR1 GRADEP 'SCAL')CHAN TYPE 'SCALAIRE') *TETX) +
  1532. (((EXCO GR2 GRADEP 'SCAL')CHAN TYPE 'SCALAIRE') *TETY) ;
  1533. DEPFY = (((EXCO GR4 GRADEP 'SCAL')CHAN TYPE 'SCALAIRE') *TETX) +
  1534. (((EXCO GR5 GRADEP 'SCAL')CHAN TYPE 'SCALAIRE') *TETY) ;
  1535. VITFX = (((EXCO GR1 GRAVIT 'SCAL')CHAN TYPE 'SCALAIRE') *TETX) +
  1536. (((EXCO GR2 GRAVIT 'SCAL')CHAN TYPE 'SCALAIRE') *TETY) ;
  1537. VITFY = (((EXCO GR4 GRAVIT 'SCAL')CHAN TYPE 'SCALAIRE') *TETX) +
  1538. (((EXCO GR5 GRAVIT 'SCAL')CHAN TYPE 'SCALAIRE') *TETY) ;
  1539. SI (EGA &DIME 3);
  1540. VCARE=VCARE +(((EXCO MU3 VITF 'SCAL')**2)CHAN TYPE 'SCALAIRE');
  1541. DEPFX=DEPFX +(((EXCO GR3 GRADEP 'SCAL')CHAN TYPE 'SCALAIRE')*TETZ);
  1542. DEPFY=DEPFY +(((EXCO GR6 GRADEP 'SCAL')CHAN TYPE 'SCALAIRE')*TETZ);
  1543. DEPFZ = (((EXCO GR7 GRADEP 'SCAL')CHAN TYPE 'SCALAIRE')*TETX) +
  1544. (((EXCO GR8 GRADEP 'SCAL')CHAN TYPE 'SCALAIRE')*TETY) +
  1545. (((EXCO GR9 GRADEP 'SCAL')CHAN TYPE 'SCALAIRE')*TETZ);
  1546. VITFX=VITFX +(((EXCO GR3 GRAVIT 'SCAL')CHAN TYPE 'SCALAIRE')*TETZ);
  1547. VITFY=VITFY +(((EXCO GR6 GRAVIT 'SCAL')CHAN TYPE 'SCALAIRE')*TETZ);
  1548. VITFZ = (((EXCO GR7 GRAVIT 'SCAL')CHAN TYPE 'SCALAIRE')*TETX) +
  1549. (((EXCO GR8 GRAVIT 'SCAL')CHAN TYPE 'SCALAIRE')*TETY) +
  1550. (((EXCO GR9 GRAVIT 'SCAL')CHAN TYPE 'SCALAIRE')*TETZ);
  1551. GRUTV = ((EXCO MU1 VITF 'SCAL')*DEPFX) +
  1552. ((EXCO MU2 VITF 'SCAL')*DEPFY) +
  1553. ((EXCO MU3 VITF 'SCAL')*DEPFZ) ;
  1554. GRWTU = ((EXCO MU1 ACCF 'SCAL')*DEPFX) +
  1555. ((EXCO MU2 ACCF 'SCAL')*DEPFY) +
  1556. ((EXCO MU3 ACCF 'SCAL')*DEPFZ) ;
  1557. GRVTV = ((EXCO MU1 VITF 'SCAL')*VITFX) +
  1558. ((EXCO MU2 VITF 'SCAL')*VITFY) +
  1559. ((EXCO MU3 VITF 'SCAL')*VITFZ) ;
  1560. SINON;
  1561. GRUTV = ((EXCO MU1 VITF 'SCAL')*DEPFX) +
  1562. ((EXCO MU2 VITF 'SCAL')*DEPFY) ;
  1563. GRWTU = ((EXCO MU1 ACCF 'SCAL')*DEPFX) +
  1564. ((EXCO MU2 ACCF 'SCAL')*DEPFY) ;
  1565. GRVTV = ((EXCO MU1 VITF 'SCAL')*VITFX) +
  1566. ((EXCO MU2 VITF 'SCAL')*VITFY) ;
  1567. FINSI;
  1568. FINSI;
  1569. *|=====================================================================|
  1570. *|======= IV. CALCUL DE J,C*,C*(h) ou J_DYNA ========================|
  1571.  
  1572. ***********************************************
  1573. * S10 = w*(div THETA)
  1574. * S20 = sigma*(grad U)*(grad THETA)
  1575. * S40 = Tr(sigma)*Alpha*(Grad T)*THETA
  1576. * S50 = F*(grad U)*THETA
  1577. * S60 = 0.5*(grad D)*THETA*(EPSI elas)*(EPSI elas)
  1578. * S70 = Tr(sigma)*T*(Grad Alpha)*THETA
  1579. * S100 = (W(b) - W(a))*TETA(x)
  1580. * S110 = SIGF*n*[ (dU/dX)(b) - (dU/dX)(a) ]*TETA(x)
  1581. * S120 = wvmis*(Grad T)*THETA
  1582. * ou wvmis = SOME d(Von_mises)/d(Temperature) d(EPSE)
  1583. ***********************************************
  1584. * Termes supplementaires pour le J dynamique (Formulation de Attigui)
  1585. * S130 = 0.5*RHO*(V^2)*(div THETA)
  1586. * S140 = [Delta (RHO*V*(grad U)*THETA)]/(Delta Temps)
  1587. * Termes supplementaires pour le J dynamique (Formulation de BP)
  1588. * S130 = -0.5*RHO*(V^2)*(div THETA)
  1589. * S140 = RHO*W*(grad U)*THETA
  1590. * S141 = -RHO*V*(grad V)*THETA
  1591. ***********************************************
  1592. * Termes supplementaires pour le J en grands-deplacements
  1593. * S150 = sigma*((grad U)t)*(grad U)*(grad THETA)
  1594. ***********************************************
  1595. ***********************************************
  1596. * Termes supplementaires pour un chaergement en deformation imposee (modif sm)
  1597. * S160 = sigma*(deps/dx)*(THETA)
  1598. * = SIG_{IJ} * (deps^{imp}_{ij} / dx_{,k}) * thet_{k}
  1599. ***********************************************
  1600. * Termes supplementaires pour le contact frottant (modif BP,BT)
  1601. * S111 = SIGF*n*[ (dU/dX)(b) - (dU/dX)(a) ]*TETA(x)
  1602. ***********************************************
  1603.  
  1604.  
  1605. SI ( (IINTE EGA 1) OU (IINTE EGA 2) OU
  1606. (IINTE EGA 3) OU (IINTE EGA 5));
  1607. S10 = INTG OBJMOD (ENERM*OBJMOD DIVTETA) MAT2;
  1608. SI (ICOQU ET ILIN);
  1609. S20 = INTG OBJMOD (WORK OBJMOD SIGF
  1610. (GRADEP*OBJMOD TETAGR) (GRADEF*OBJMOD TETAGR));
  1611. SINON;
  1612. S20 = INTG OBJMOD (WORK OBJMOD SIGF
  1613. (GRADEP*OBJMOD TETAGR)) MAT2;
  1614. FINSI;
  1615. SI IGDEP;
  1616. SI (ICOQU ET ILIN);
  1617. S150 = INTG OBJMOD (WORK OBJMOD SIGF
  1618. (((TAGR GRADEP)*OBJMOD GRADEP)*OBJMOD TETAGR)
  1619. (((TAGR GRADEF)*OBJMOD GRADEF)*OBJMOD TETAGR));
  1620. SINON;
  1621. S150 = INTG OBJMOD (WORK OBJMOD SIGF
  1622. (((TAGR GRADEP)*OBJMOD GRADEP)*OBJMOD TETAGR)) MAT2;
  1623. FINSI;
  1624. FINSI;
  1625. SI ITHER;
  1626. S40 = INTG OBJMOD (ENER OBJMOD SIGF EPSTU) MAT2;
  1627. FINSI;
  1628. S50 = 0.;
  1629. SI ((XTX PREINT) > 1.E-10);
  1630. S50 = XTY PREINT DEP0 MOTF MOTU;
  1631. FINSI;
  1632. SI (EXIS INFTAB 'MODE_PRESSION_FISSURE');
  1633. PNF = REDU PNF MODPFT;
  1634. LC1 = EXTR PNF 'COMP';
  1635. LC2 = EXTR GRUTE 'COMP';
  1636. PGRU = MANU 'CHML' MODPFT 'SCAL' 0. 'STRESSES';
  1637. REPE B1 (DIME LC1);
  1638. PGRU = PGRU + ((EXCO (EXTR LC1 &B1) PNF 'SCAL') *
  1639. (EXCO (EXTR LC2 &B1) GRUTE 'SCAL'));
  1640. FIN B1;
  1641. S50 = S50 + (INTG MODPFT PGRU);
  1642. FINSI;
  1643. SI (MATVARI ET YOUVARI);
  1644. S60 = INTG OBJMOD (0.5*(ENER OBJMOD
  1645. SIGPRIM (ELAS OBJMOD SIGF MAT1))) MAT2;
  1646. FINSI;
  1647. SI (MATVARI ET ITHER ET ALFVARI);
  1648. S70 = INTG OBJMOD (ENER OBJMOD SIGF (ELAS
  1649. OBJMOD (THET OBJMOD TEPINT DMAT) DMAT)) MAT2;
  1650. FINSI;
  1651. SI (('>' (DIME LINTER) 0) ET (NON IPARAL));
  1652. I = 0; IND1 = 'INDE' LINTER;
  1653. REPE NBJ4 (DIME IND1);
  1654. I = I + 1;
  1655. LE1 = IND1.&NBJ4;
  1656. L1 = LINTER.LE1;
  1657. M1 = TABMOD.(EXTR LE1 1);
  1658. M2 = TABMOD.(EXTR LE1 2);
  1659. OBJINT = MODE L1 'MECANIQUE' 'ELASTIQUE';
  1660. TETXL = REDU L1 (EXCO MU1 TETA 'SCAL');
  1661. TETXLC = CHAN 'CHAM' OBJINT TETXL 'STRESSES';
  1662. ***
  1663. ENEMA = REDU L1 (CHAN 'CHPO' M1 (REDU M1 ENERM));
  1664. ENEMB = REDU L1 (CHAN 'CHPO' M2 (REDU M2 ENERM));
  1665. ENRMAL = CHAN 'CHAM' OBJINT ENEMA 'STRESSES';
  1666. ENRMBL = CHAN 'CHAM' OBJINT ENEMB 'STRESSES';
  1667. S100 = S100 + (INTG OBJINT
  1668. ((ENRMBL - ENRMAL) * OBJINT TETXLC) MAT2);
  1669. ***
  1670. GRADA = REDU L1 (CHAN 'CHPO' M1 (REDU M1 GRADEP));
  1671. GRADB = REDU L1 (CHAN 'CHPO' M2 (REDU M2 GRADEP));
  1672. UXXAL =CHAN 'CHAM' OBJINT (EXCO GR1 GRADA 'SCAL') 'STRESSES';
  1673. UXXBL =CHAN 'CHAM' OBJINT (EXCO GR1 GRADB 'SCAL') 'STRESSES';
  1674. UYXAL =CHAN 'CHAM' OBJINT (EXCO GR4 GRADA 'SCAL') 'STRESSES';
  1675. UYXBL =CHAN 'CHAM' OBJINT (EXCO GR4 GRADB 'SCAL') 'STRESSES';
  1676. SIGML =REDU L1 (CHAN 'CHPO' OBJMOD SIGF);
  1677. SIXXL =CHAN 'CHAM' OBJINT (EXCO SM1 SIGML 'SCAL') 'STRESSES';
  1678. SIXYL =CHAN 'CHAM' OBJINT (EXCO SM4 SIGML 'SCAL') 'STRESSES';
  1679. AAAA1 = (SIXXL * OBJINT (UXXBL - UXXAL)) +
  1680. (SIXYL * OBJINT (UYXBL - UYXAL));
  1681. S110 = S110 + (INTG OBJINT (AAAA1*OBJINT TETXLC) MAT2);
  1682. FIN NBJ4;
  1683. FINSI;
  1684. SI (((DIME MODPLA) '>' 0) ET ITHER);
  1685. TEMU = CHAN TYPE (EXCO 'T' TEMU 'SCAL') 'SCALAIRE';
  1686. S120 = INTG OBJMOD (WVMIS * TEMU) MAT2;
  1687. FINSI;
  1688. *
  1689. * Termes supplementaire en Dynamique **********
  1690. SI (IINTE EGA 5);
  1691. * * Formulation de Attigui
  1692. * S130 = INTG OBJMOD (0.5*(RHO1 * VCARE * DIVTETA)) MAT2;
  1693. * SSS1 = INTG OBJMOD (RHO1 * GRUTV) MAT2;
  1694. * SI (EGA IABC 0);
  1695. * S140 = SSS1;
  1696. * SINON;
  1697. * DELTAT = INST - SUPTAB.'SOLUTION_PASAPAS'.'TEMPS'.(IABC - 1);
  1698. * S140 = (SSS1 - SUPTAB.'SSS0') / DELTAT;
  1699. * FINSI;
  1700. * SUPTAB.'SSS0' = SSS1;
  1701. * Formulation de BP
  1702. * permet : - une meilleure independance du contour
  1703. * - de traiter le cas des fissures qui se propage
  1704. * - de ne pas stocker SSS1
  1705. S130 = INTG OBJMOD (0.5*(RHO1 * VCARE * DIVTETA)) MAT2;
  1706. S140 = INTG OBJMOD (RHO1 * GRWTU) MAT2;
  1707. S141 = INTG OBJMOD (RHO1 * GRVTV) MAT2;
  1708. FINSI;
  1709.  
  1710.  
  1711. * Termes supplementaire pour un chargement en deformation imposee (SM) *********
  1712. S160 = 0.;
  1713. SI (IINTE EGA 1);
  1714. si IDEFI;
  1715. S160 = INTG OBJMOD CUMDEFI MAT2;
  1716. finsi;
  1717. FINSI;
  1718. * fin modif sm
  1719.  
  1720. * Termes supplementaire pour le contact frottant (btrolle 19/02/2013)
  1721. SI (IFROT);
  1722. * teta
  1723. TETXC = PROI OBJCON2 TETAX 'STRESSES';
  1724. TETYC = PROI OBJCON2 TETAY 'STRESSES';
  1725. si (ega &DIME 3);
  1726. TETZC = PROI OBJCON2 TETAZ 'STRESSES';
  1727. fins;
  1728. * [grad(w)] = grad [w] = WSAUTGR
  1729. * sigma*n
  1730. AAAAX= (SIGXN * (CHAN (exco WSAUTGR AX,X 'SCAL') TYPE 'SCALAIRE'))
  1731. + (SIGYN * (CHAN (exco WSAUTGR AY,X 'SCAL') TYPE 'SCALAIRE'));
  1732. AAAAY= (SIGXN * (CHAN (exco WSAUTGR AX,Y 'SCAL') TYPE 'SCALAIRE'))
  1733. + (SIGYN * (CHAN (exco WSAUTGR AY,Y 'SCAL') TYPE 'SCALAIRE'));
  1734. si (ega &DIME 3);
  1735. AAAAX = AAAAX
  1736. + (SIGZN * (CHAN(exco WSAUTGR AZ,X) TYPE 'SCALAIRE'));
  1737. AAAAY = AAAAY
  1738. + (SIGZN * (CHAN(exco WSAUTGR AZ,Y) TYPE 'SCALAIRE'));
  1739. AAAAZ = (SIGXN * (CHAN(exco WSAUTGR AX,Z) TYPE 'SCALAIRE'))
  1740. + (SIGYN * (CHAN(exco WSAUTGR AY,Z) TYPE 'SCALAIRE'))
  1741. + (SIGZN * (CHAN(exco WSAUTGR AZ,Z) TYPE 'SCALAIRE'));
  1742. AAAA111 = (AAAAX * OBJCON2 TETXC)
  1743. + (AAAAY * OBJCON2 TETYC)
  1744. + (AAAAZ * OBJCON2 TETZC);
  1745. sino;
  1746. AAAA111 = (AAAAX * OBJCON2 TETXC)
  1747. + (AAAAY * OBJCON2 TETYC);
  1748. fins;
  1749. * AAAA111 = 'MANUEL' CHML objcon 'SCAL' 1 TYPE 'SCALAIRE' 'STRESSES';
  1750. S111 = INTG OBJCON2 AAAA111 ; mess 'S111=' S111;
  1751. 'SINON';
  1752. S111 = 0.0;
  1753. FINSI;
  1754. * fin du cas contact frottant (btrolle 19/02/2013)
  1755.  
  1756.  
  1757. * somme des termes ***************************
  1758. GMCANI = (S20 - S10 - S60 - S100 + S110 - S111
  1759. - S130 + S140 - S141 + S150)*FACT1;
  1760. GTERMI = (S40 + S70 - S120) * FACT1;
  1761. * modif sm = ajout S160
  1762. GPRESS = (S160 - S50) * FACT1;
  1763. GTOTA = GMCANI + GTERMI + GPRESS ;
  1764. FINSI;
  1765.  
  1766.  
  1767.  
  1768. *|=====================================================================|
  1769. *|======= V. CALCUL DE DJ/DA ========================================|
  1770.  
  1771. ***********************************************
  1772. * S10 = -SIGF*(Grad U)*(Grad PI)*(Grad TETA)
  1773. * S20 = -SIGF*(Grad U)*(Grad TETA)*(Grad PI)
  1774. * S30 = SIGF*(Grad U)*(Grad TETA)*(Div PI)
  1775. * S40 = SIGF*(Grad U)*(Grad PI)*(Div TETA)
  1776. * S50 = ENEGIE*(ADJ TETA*PI)
  1777. * S60 = ALPH*SIGF*(Grad (Grad T))*PI*TETA
  1778. * S70 = ALPH*SIGF*((Grad T)*PI)*(Div TETA)
  1779. * S80 = ALPH*SIGF*((Grad T)*TETA)*(Div PI)
  1780. * S90 = SIG1*(Grad U)*(Grad TETA)
  1781. * S100= SIGF*(Grad U1)*(Grad TETA)
  1782. * S110= -SIGF*(Grad U1)*(Div TETA)
  1783. * S120= ALPH*SIG1*((Grad T)*TETA)
  1784. * S130= -PRESSION*(grad A_DEPI)*THETA
  1785. * S140= -(Grad PRESSION)*(Grad PI)*TETA*U
  1786. * S150= (Grad PRESSION)*TETA*U*(Div PI)
  1787. * S160= -(Grad PRESSION)*PI*(Grad U)*TETA
  1788. ***********************************************
  1789. SI (IINTE EGA 4);
  1790. S10 = 0. - (INTG OBJMOD (WORK OBJMOD SIGF
  1791. (OBJMOD GRADEP * (OBJMOD PIGR * TETAGR))));
  1792. S20 = 0. - (INTG OBJMOD (WORK OBJMOD SIGF
  1793. (OBJMOD GRADEP * (OBJMOD TETAGR * PIGR))));
  1794. S30 = INTG OBJMOD (OBJMOD (WORK OBJMOD
  1795. SIGF (OBJMOD GRADEP * TETAGR)) * DIVPI);
  1796. S40 = INTG OBJMOD (OBJMOD (WORK OBJMOD
  1797. SIGF (OBJMOD GRADEP * PIGR)) * DIVTETA);
  1798. S50 = INTG OBJMOD (ENERM * ADJ);
  1799. SI ITHER ;
  1800. S60 = INTG OBJMOD (ENER OBJMOD SIGF EPSTU2);
  1801. S70 = INTG OBJMOD ((ENER OBJMOD SIGF EPSTU1)*DIVTETA);
  1802. S80 = INTG OBJMOD ((ENER OBJMOD SIGF EPSTU)*DIVPI);
  1803. S120 = INTG OBJMOD (ENER OBJMOD A_SIGF EPSTU);
  1804. FINSI;
  1805. SI ('>' (XTX PREINT) 1.E-10) ;
  1806. S130 = XTY PREINT DEP1 MOTF MOTU ;
  1807. S140 = XTY PEMU2 (CHAN 'CHPO' OBJMOD DEPINT) MOTF MOTU;
  1808. S150 = XTY (PEMU1*(CHAN 'CHPO' OBJMOD DIVPI))
  1809. (CHAN 'CHPO' OBJMOD DEPINT) MOTF MOTU;
  1810. S160 = XTY PEMU DEP0 MOTF MOTU;
  1811. FINSI;
  1812. S90 = INTG OBJMOD (WORK OBJMOD A_SIGF (OBJMOD GRADEP * TETAGR));
  1813. S100 = INTG OBJMOD (WORK OBJMOD SIGF (OBJMOD A_DEPGR * TETAGR));
  1814. S110 = 0. - (INTG OBJMOD (OBJMOD (WORK
  1815. OBJMOD SIGF A_DEPGR) * DIVTETA)) ;
  1816. GMCANI = S10 + S20 + S30 + S40 + S50 + S90 + S100 + S110;
  1817. GTERMI = S60 + S70 + S80 + S120 ;
  1818. GPRESS = S150 - S130 - S140 - S160;
  1819. GTOTA = GMCANI + GTERMI + GPRESS ;
  1820. FINSI;
  1821.  
  1822.  
  1823.  
  1824. *|=====================================================================|
  1825. *|======= VI. CALCUL DES FACTEURS D INTENSITE DES CONTRAINTES =======|
  1826.  
  1827. ***********************************************
  1828. * En pratique on les deduit de l integrale d interaction
  1829. * M(u,u^aux) = 2/E^* (K1*K1^aux + K2*K2^aux)
  1830. * On calcule donc :
  1831. * J1 = 1/E^* K1^2 = M(u,u^aux_1)**2 / 4*J(u^aux_1,u^aux_1)
  1832. * J2 = 1/E^* K2^2 = M(u,u^aux_2)**2 / 4*J(u^aux_2,u^aux_2)
  1833. ***********************************************
  1834. * l'integrale J(u^aux, u^aux) est la somme de :
  1835. * S10 = 0.5*Tr(A_sigf*(grad A_depi))*(div THETA)
  1836. * S20 = Tr[A_sigf*(grad A_depi)*(grad THETA)] *
  1837. * S50 = A_prei*(grad A_depi)*THETA
  1838. ***********************************************
  1839. * l'integrale M(u, u^aux) et la somme de :
  1840. * S60 = Tr[A_sigf*(Grad U)*(Grad THETA)]
  1841. * S70 = Tr[SIGF*(Grad A_depi)*(Grad THETA)]
  1842. * S80 = Tr[SIGF*(Grad A_depi)*(Div THETA)]
  1843. * S90 = PREINT*(grad A_depi)*THETA
  1844. * S100= A_prei*(grad U)*THETA
  1845. * S110= ALPH*A_sigf*((Grad T)*TETA)
  1846. ***********************************************
  1847. * Termes supplementaires pour le contact frottant (modif BP,BT)
  1848. * S111 = SIGF*n*[ (dU^aux/dX)(b) - (dU^aux/dX)(a) ]*TETA(x)
  1849. ***********************************************
  1850.  
  1851.  
  1852. SI (IINTE EGA 99) ;
  1853. * si(IXFEM);
  1854. * * REM: pour les elements XFEM on a contruit les champs aux. tq
  1855. * * (K_I^aux, K_II^aux) = (1,0) et (0,1)
  1856. * * => inutile de calculer J(u^aux,u^aux) (= C_MATE)
  1857. *bp 07/07/2011 : cela est faux dans le cas d'une fissure courbee
  1858. * COE_M2K = 2. * C_MATE;
  1859. * sino;
  1860. S10 = 0.5*( INTG OBJMOD
  1861. (OBJMOD (WORK OBJMOD A_SIGF A_DEPGR) * DIVTETA) );
  1862. S20 = INTG OBJMOD
  1863. (WORK OBJMOD A_SIGF (A_DEPGR*OBJMOD TETAGR) ) MAT2;
  1864. SI ('>' (XTX A_PREI) 1.E-10);
  1865. S50 = XTY A_PREI DEP1 MOTF MOTU ;
  1866. FINSI;
  1867. JETOILE = 'ABS' (S20 - S10 - S50);
  1868. COE_M2K = 2. * ((C_MATE*JETOILE)**0.5);
  1869. * fins;
  1870. * integrale M(u, u^aux)
  1871. S60 = INTG OBJMOD (WORK OBJMOD A_SIGF (OBJMOD GRADEP * TETAGR));
  1872. S70 = INTG OBJMOD (WORK OBJMOD SIGF (OBJMOD A_DEPGR * TETAGR));
  1873. S80 = INTG OBJMOD (OBJMOD (WORK OBJMOD SIGF A_DEPGR) * DIVTETA);
  1874. *rem: on pourrait calculer M avec les 2 lignes ci dessous:
  1875. * S81 = INTG OBJMOD (OBJMOD (WORK OBJMOD A_SIGF GRADEP) * DIVTETA);
  1876. * S80 = 0.5*(S80+S81);
  1877. * Termes supplementaire pour le contact frottant (btrolle 19/02/2013)
  1878. * on calcule WSAUTGR^aux = GRADIENT DU SAUT^aux
  1879. SI (IFROT 'ET' IXFEM);
  1880. * WDEP = deplacement de la fissure de composante UX ... AX ...
  1881. * [grad(w)] = grad [w] car linearite (le saut [w] est donne par AX ...)
  1882. * on utilise un modele liee a la geo de la fissure (cohesif ou contact)
  1883. * mess 'I avec contact frottant';
  1884. * SIGCON = sigma*n de composantes SMX... homogene a une contrainte
  1885. * supporte sur la levre superieure
  1886. SI (NEG (TYPE SIGCON) 'MCHAML ');
  1887. SIGCON = REDU SIGCON (extr OBJCON2 'MAILLAGE');
  1888. SIGCON = CHAN 'CHAM' SIGCON OBJCON2 'STRESSES' 'CONTRAINTES';
  1889. FINS;
  1890. SIGXN = (CHAN (exco SIGCON 'SMX' 'SCAL') TYPE 'SCALAIRE');
  1891. SIGYN = (CHAN (exco SIGCON 'SMY' 'SCAL') TYPE 'SCALAIRE');
  1892. si (ega &DIME 3);
  1893. SIGZN = (CHAN (exco SIGCON 'SMZ' 'SCAL') TYPE 'SCALAIRE');
  1894. fins;
  1895. * teta
  1896. TETXC = PROI OBJCON2 TETAX 'STRESSES';
  1897. TETYC = PROI OBJCON2 TETAY 'STRESSES';
  1898. si (ega &DIME 3);
  1899. TETZC = PROI OBJCON2 TETAZ 'STRESSES';
  1900. fins;
  1901. * [grad(w)] = grad [w] = WSAUTGR
  1902. * sigma*n
  1903. AAAAX= (SIGXN * (CHAN (exco B_DEPGR AX,X 'SCAL') TYPE 'SCALAIRE'))
  1904. + (SIGYN * (CHAN (exco B_DEPGR AY,X 'SCAL') TYPE 'SCALAIRE'));
  1905. AAAAY= (SIGXN * (CHAN (exco B_DEPGR AX,Y 'SCAL') TYPE 'SCALAIRE'))
  1906. '+' (SIGYN * (CHAN (exco B_DEPGR AY,Y 'SCAL') TYPE 'SCALAIRE'));
  1907. si (ega &DIME 3);
  1908. AAAAX = AAAAX
  1909. + (SIGZN * (CHAN(exco B_DEPGR AZ,X) TYPE 'SCALAIRE'));
  1910. AAAAY = AAAAY
  1911. + (SIGZN * (CHAN(exco B_DEPGR AZ,Y) TYPE 'SCALAIRE'));
  1912. AAAAZ = (SIGXN * (CHAN(exco B_DEPGR AX,Z) TYPE 'SCALAIRE'))
  1913. + (SIGYN * (CHAN(exco B_DEPGR AY,Z) TYPE 'SCALAIRE'))
  1914. + (SIGZN * (CHAN(exco B_DEPGR AZ,Z) TYPE 'SCALAIRE'));
  1915. AAAA111 = (AAAAX * OBJCON2 TETXC)
  1916. + (AAAAY * OBJCON2 TETYC)
  1917. + (AAAAZ * OBJCON2 TETZC);
  1918. sino;
  1919. AAAA111 = (AAAAX * OBJCON2 TETXC)
  1920. + (AAAAY * OBJCON2 TETYC);
  1921. fins;
  1922. S111 = INTG OBJCON2 AAAA111;
  1923. 'SINON';
  1924. S111 = 0.0;
  1925. FINSI;
  1926. * fin du cas contact frottant (btrolle 19/02/2013)
  1927. SI ('>' (XTX PREINT) 1.E-10);
  1928. S90 = XTY PREINT DEP1 MOTF MOTU ;
  1929. FINSI;
  1930. SI ('>' (XTX A_PREI) 1.E-10);
  1931. S100 = XTY A_PREI DEP0 MOTF MOTU ;
  1932. FINSI;
  1933. SI ITHER ;
  1934. S110 = INTG OBJMOD (ENER OBJMOD A_SIGF EPSTU);
  1935. FINSI;
  1936. * facteurs d intensite des contraintes
  1937. GMCANI = (S60 + S70 - S80 + S111) / COE_M2K;
  1938. GTERMI = (S110) / COE_M2K;
  1939. GPRESS = (-1.*(S100 + S90)) / COE_M2K;
  1940. GTOTA = GMCANI + GTERMI + GPRESS ;
  1941. FINSI;
  1942.  
  1943.  
  1944. *|=====================================================================|
  1945. *|======= VII. STOCKAGE DES RESULTATS ET IMPRESSIONS ================|
  1946.  
  1947.  
  1948. ***************************************************
  1949. ** PROFILE DE G DANS L EPAISSEUR EN CAS DE COQUE **
  1950. ***************************************************
  1951. SI ICOQU;
  1952. SI IPAP;
  1953. SUPTAB.'EPAISSEUR_RESULTATS'.IABC = EVENR * GTOTA;
  1954. SINON;
  1955. SUPTAB.'EPAISSEUR_RESULTATS' = EVENR * GTOTA;
  1956. FINSI;
  1957. FINSI;
  1958.  
  1959. ***************************************************
  1960. ** STOCKAGE DES RESULTATS DANS SUPTAB.'RESULTATS'**
  1961. ***************************************************
  1962. C1 = 'CHAI' GMCANI ' '; C2 = 'CHAI' GTERMI ' ';
  1963. C3 = 'CHAI' GPRESS ' '; C4 = 'CHAI' GTOTA;
  1964. *CAS PASAPAS
  1965. SI IPAP;
  1966. SI (EGA &DIME 2);
  1967. SI (EGA IINTE 99);
  1968. MESS MOTMIA ' ' IABC C1 C2 C3 C4;
  1969. SUPTAB.'RESULTATS'.MOTMIX.IABC = GTOTA;
  1970. SINON;
  1971. MESS IABC C1 C2 C3 C4;
  1972. SUPTAB.'RESULTATS'.IABC = GTOTA;
  1973. FINSI;
  1974. FINSI;
  1975. SI ((EGA &DIME 3) ET (NON ICOQU));
  1976. SI (EGA IINTE 99);
  1977. MESS MOTMIA ' ' NUNOE IABC C1 C2 C3 C4;
  1978. SUPTAB.'RESULTATS'.MOTMIX.IABC.PM = GTOTA;
  1979. SINON;
  1980. MESS NUNOE IABC C1 C2 C3 C4;
  1981. SUPTAB.'RESULTATS'.IABC.PM = GTOTA;
  1982. FINSI;
  1983. FINSI;
  1984. SI ICOQU;
  1985. C1 = 'CHAI' (GMCANI*V_SUPE) ' '; C2 = 'CHAI' (GTERMI*V_SUPE) ' ';
  1986. C3 = 'CHAI' (GPRESS*V_SUPE) ' ';C4 = 'CHAI' (GTOTA*V_SUPE);
  1987. C5 = 'CHAI' (GMCANI*V_MOYE) ' '; C6 = 'CHAI' (GTERMI*V_MOYE) ' ';
  1988. C7 = 'CHAI' (GPRESS*V_MOYE) ' ';C8 = 'CHAI' (GTOTA*V_MOYE);
  1989. C9 = 'CHAI' (GMCANI*V_INFE) ' '; C10= 'CHAI' (GTERMI*V_INFE) ' ';
  1990. C11= 'CHAI' (GPRESS*V_INFE) ' ';C12= 'CHAI' (GTOTA*V_INFE);
  1991. MESS ' Superi ' IABC C1 C2 C3 C4;
  1992. MESS ' Median ' IABC C5 C6 C7 C8;
  1993. MESS ' Inferi ' IABC C9 C10 C11 C12;
  1994. C1 = 'CHAI' GMCANI ' '; C2 = 'CHAI' GTERMI ' ';
  1995. C3 = 'CHAI' GPRESS ' '; C4 = 'CHAI' GTOTA;
  1996. MESS ' Global ' IABC C1 C2 C3 C4;
  1997. SI (EGA IINTE 99);
  1998. SUPTAB.'RESULTATS'.MOTMIX = GTOTA;
  1999. SINON;
  2000. SUPTAB.'RESULTATS'.IABC.'SUPERI' = GTOTA*V_SUPE;
  2001. SUPTAB.'RESULTATS'.IABC.'MEDIAN' = GTOTA*V_MOYE;
  2002. SUPTAB.'RESULTATS'.IABC.'INFERI' = GTOTA*V_INFE;
  2003. SUPTAB.'RESULTATS'.IABC.'GLOBAL' = GTOTA;
  2004. FINSI;
  2005. FINSI;
  2006. *CAS RESOU
  2007. SINON;
  2008. SI (EGA &DIME 2);
  2009. SI (EGA IINTE 99);
  2010. MESS MOTMIA ' ' C1 C2 C3 C4;
  2011. SUPTAB.'RESULTATS'.MOTMIX = GTOTA;
  2012. SINON;
  2013. MESS C1 C2 C3 C4;
  2014. SUPTAB.'RESULTATS' = GTOTA;
  2015. FINSI;
  2016. FINSI;
  2017. SI ((EGA &DIME 3) ET (NON ICOQU));
  2018. SI (EGA IINTE 99);
  2019. MESS ' ' MOTMIA ' ' NUNOE C1 C2 C3 C4;
  2020. SUPTAB.'RESULTATS'.MOTMIX.PM = GTOTA;
  2021. SINON;
  2022. MESS NUNOE C1 C2 C3 C4;
  2023. SUPTAB.'RESULTATS'.PM = GTOTA;
  2024. FINSI;
  2025. FINSI;
  2026. SI ICOQU;
  2027. C1 = 'CHAI' (GMCANI*V_SUPE) ' '; C2 = 'CHAI' (GTERMI*V_SUPE) ' ';
  2028. C3 = 'CHAI' (GPRESS*V_SUPE) ' ';C4 = 'CHAI' (GTOTA*V_SUPE);
  2029. C5 = 'CHAI' (GMCANI*V_MOYE) ' '; C6 = 'CHAI' (GTERMI*V_MOYE) ' ';
  2030. C7 = 'CHAI' (GPRESS*V_MOYE) ' ';C8 = 'CHAI' (GTOTA*V_MOYE);
  2031. C9 = 'CHAI' (GMCANI*V_INFE) ' '; C10= 'CHAI' (GTERMI*V_INFE) ' ';
  2032. C11= 'CHAI' (GPRESS*V_INFE) ' ';C12= 'CHAI' (GTOTA*V_INFE);
  2033. MESS ' Superi ' C1 C2 C3 C4;
  2034. MESS ' Median ' C5 C6 C7 C8;
  2035. MESS ' Inferi ' C9 C10 C11 C12;
  2036. C1 = 'CHAI' GMCANI ' '; C2 = 'CHAI' GTERMI ' ';
  2037. C3 = 'CHAI' GPRESS ' '; C4 = 'CHAI' GTOTA;
  2038. MESS ' Global ' C1 C2 C3 C4;
  2039. SI (EGA IINTE 99);
  2040. SUPTAB.'RESULTATS'.MOTMIX = GTOTA;
  2041. SINON;
  2042. SUPTAB.'RESULTATS'.'SUPERI' = GTOTA*V_SUPE;
  2043. SUPTAB.'RESULTATS'.'MEDIAN' = GTOTA*V_MOYE;
  2044. SUPTAB.'RESULTATS'.'INFERI' = GTOTA*V_INFE;
  2045. SUPTAB.'RESULTATS'.'GLOBAL' = GTOTA;
  2046. FINSI;
  2047. FINSI;
  2048. FINSI;
  2049.  
  2050. ***BP: PETIT AJOUT ***
  2051. SI(ega (type PM) 'MAILLAGE');
  2052. SI (EGA (&BCNOEU) 1);
  2053. GCHAM1 = MANU 'CHML' PM MOCOMP GTOTA;
  2054. SINO;
  2055. GCHAM1 = GCHAM1
  2056. et (MANU 'CHML' PM MOCOMP GTOTA);
  2057. FINS;
  2058. FINS;
  2059. SI(ega (type PM) 'POINT');
  2060. SI (EGA (&BCNOEU) 1);
  2061. GCHPO1 = MANU 'CHPO' PM 1 MOCOMP GTOTA 'NATURE' 'DIFFUS';
  2062. SINO;
  2063. GCHPO1 = GCHPO1
  2064. et (MANU 'CHPO' PM 1 MOCOMP GTOTA 'NATURE' 'DIFFUS');
  2065. FINS;
  2066. FINS;
  2067. ***BP: FIN DU PETIT AJOUT ***
  2068.  
  2069. FIN BCNOEU;
  2070. *<== FIN DE BOUCLE SUR LES NOEUDS A AVANCER VIRTUELLEMENT =============|
  2071. *|=====================================================================|
  2072.  
  2073. *********************************************************************
  2074. ** STOCKAGE DES CHAMPS RESULTATS (+ logique qu'une table a priori) **
  2075. *********************************************************************
  2076. SI ( (NEG (TYPE GCHPO1) 'CHPOINT')
  2077. ET (EGA (TYPE GCHAM1) 'MCHAML') );
  2078. *version J constant par morceaux
  2079. * GCHPO1 = PROI SUPTAB.'FRONT_FISSURE' GCHAM1;
  2080. *version J lissee (projete sur approximation EF)
  2081. efJ = EXTR GCHAM1 'MAILLAGE' ;
  2082. * mess 'efJ='; list efJ; trac efJ ;
  2083. * totoj = inte efJ MAILMOD 'NOVERIF';
  2084. * mess (nbel efJ) ' =nbel=? ' (nbel totoj);
  2085. * mess (nbno efJ) ' =nbno=? ' (nbno totoj);
  2086. OBJMODj =redu OBJMOD efj ;
  2087. GCHPO1 = CHAN 'CHPO' GCHAM1 OBJMODj 'MOYE';
  2088. GCHPO1 = CHAN 'CHAM' GCHPO1 OBJMOD;
  2089. * mess 'redu ok appel a proi';
  2090. GCHPO1 = PROI SUPTAB.'FRONT_FISSURE' GCHPO1;
  2091. FINS;
  2092. *CAS PASAPAS
  2093. SI(IPAP);
  2094. SI (EGA (TYPE GCHPO1) 'CHPOINT');
  2095. SI(NON (EXIS SUPTAB 'CHPO_RESULTATS'));
  2096. SUPTAB . 'CHPO_RESULTATS' = TABL;
  2097. FINSI;
  2098. SI((EGA &BOUCMIX 1) ou (NON (EXIS SUPTAB.'CHPO_RESULTATS' IABC)));
  2099. SUPTAB.'CHPO_RESULTATS'.IABC = GCHPO1;
  2100. SINO;
  2101. SUPTAB.'CHPO_RESULTATS'.IABC
  2102. = SUPTAB.'CHPO_RESULTATS'.IABC ET GCHPO1;
  2103. FINS;
  2104. FINS;
  2105. SI (EGA (TYPE GCHAM1) 'MCHAML');
  2106. SI(NON (EXIS SUPTAB 'CHAM_RESULTATS'));
  2107. SUPTAB . 'CHAM_RESULTATS' = TABL;
  2108. FINSI;
  2109. SI((EGA &BOUCMIX 1) ou (NON (EXIS SUPTAB.'CHAM_RESULTATS' IABC)));
  2110. SUPTAB.'CHAM_RESULTATS'.IABC = GCHAM1;
  2111. SINO;
  2112. SUPTAB.'CHAM_RESULTATS'.IABC
  2113. = SUPTAB.'CHAM_RESULTATS'.IABC ET GCHAM1;
  2114. FINS;
  2115. FINS;
  2116. *CAS RESOU
  2117. SINO;
  2118. SI (EGA (TYPE GCHPO1) 'CHPOINT');
  2119. SI((EGA &BOUCMIX 1) ou (NON (EXIS SUPTAB 'CHPO_RESULTATS')));
  2120. SUPTAB.'CHPO_RESULTATS' = GCHPO1;
  2121. SINO;
  2122. SUPTAB.'CHPO_RESULTATS' = SUPTAB.'CHPO_RESULTATS' ET GCHPO1;
  2123. FINS;
  2124. FINS;
  2125. SI (EGA (TYPE GCHAM1) 'MCHAML');
  2126. SI((EGA &BOUCMIX 1) ou (NON (EXIS SUPTAB 'CHAM_RESULTATS')));
  2127. SUPTAB.'CHAM_RESULTATS' = GCHAM1;
  2128. SINO;
  2129. SUPTAB.'CHAM_RESULTATS' = SUPTAB.'CHAM_RESULTATS' ET GCHAM1;
  2130. FINS;
  2131. FINS;
  2132. FINS;
  2133.  
  2134. * ON SE PREPARE A PARTIR...
  2135. SI (IPAP ET ICOQU);
  2136. 'SAUT' 1 'LIGNE';
  2137. FINSI;
  2138. SI (IPAP ET (NBOU '>' 1));
  2139. 'SAUT' 1 'LIGNE';
  2140. FINSI;
  2141. SI (IPAP ET (NBOU EGA 1) ET (NON ICOQU));
  2142. SI (('ABS' ((&BOUCEXT/10) - (&BOUCEXT/10.))) '<' 1.D-10);
  2143. 'SAUT' 1 'LIGNE';
  2144. FINSI;
  2145. FINSI;
  2146.  
  2147. FINPROC SUPTAB;
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  

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