Télécharger ctod.procedur

Retour à la liste

Numérotation des lignes :

  1. * CTOD PROCEDUR JC220346 12/09/12 21:15:06 7501
  2. DEBPROC CTOD SUPTAB*TABLE U*CHPOINT ;
  3. *************************************************
  4. * PROCEDURE POUR LA DETERMINATION DU CTOD *
  5. * PAR LA METHODE DE LA DROITE A 45 DEGRES *
  6. ***************************************************************
  7. *SUPTAB.'MAILLAGE' : MAILLAGE ENTIER (UTILE UNIQUEMENT EN 3D) *
  8. * *
  9. *SUPTAB.'LIFIS1' : OBJET DE TYPE MAILLAGE REPRESENTANT LA LIGNE *
  10. * DE FISSURE EN 2D *
  11. * CETTE LIGNE DOIT CONTENIR AU MOINS 6 ELEMENTS *
  12. * *
  13. * *
  14. * *
  15. * SUPTAB.'FRTFISS' : LIGNE DE FRONT DE FISSURE EN 3 D DE TYPE MAILLAGE *
  16. * POINTE DE FISSURE EN 2D DE TYPE POINT *
  17. * *
  18. *SUPTAB.'PSF1' : POINTS DE LA SURFACE DE FISSURE *
  19. * N'APPARTENANT PAS AU FRONT DE FISSURE EN 3D *
  20. * *
  21. * U : DEPLACEMENT RESULTANT DE NONLIN AU TEMPS SOUHAITE *
  22. * *
  23. ************************************************************************
  24. * SORTIE *
  25. * SUPTAB.'CTOD' :*TABLE DE REELS CONTENANT LES VALEURS DE CTOD OBTENUES*
  26. * A CHAQUE NOEUD P DU FRONT DE FISSURE EN 3D *
  27. * LES INDICES DE CETTE TABLE SONT DE TYPE POINT *
  28. * EX : SUPTAB.'CTOD'.P : CTOD AU NOEUD DU FRONT DE *
  29. * COORDONNEES EGALES A CELLES DU POINT P *
  30. * *REEL : VALEUR DU CTOD OBTENUE EN 2D *
  31. ************************************************************************
  32.  
  33. ************************************************************************
  34. ***************** QUELQUES INITIALISATIONS **************************
  35. ************************************************************************
  36.  
  37. &DIM = 'VALEUR' DIME;
  38. &ELEM = 'VALEUR' ELEM;
  39. &IMP = 'VALEUR' IMPI ;
  40. IELEM2 = (EGA &ELEM 'TRI3') 'OU' (EGA &ELEM 'QUA4');
  41. IELEM3 = (EGA &ELEM 'CUB8') 'OU' (EGA &ELEM 'PRI6');
  42. IELEMLIN = IELEM2 'OU' IELEM3;
  43.  
  44. SI (EGA &DIM 3);
  45. **------------cas où l'on est en dimension 3----------**
  46. FRTFISS = SUPTAB.'FRTFISS';
  47. PSF = SUPTAB.'PSF1';
  48. MAILLAGE = SUPTAB.'MAILLAGE';
  49.  
  50. SINON;
  51. **-----------cas où l'on est en dimension 2-----------**
  52. LIFIS1 = SUPTAB.'LIFIS1';
  53. PF = SUPTAB.'FRTFISS';
  54.  
  55. FINSI;
  56.  
  57.  
  58. ***************************************************************
  59. ************** CALCULS EN DIMENSION 3 ******************
  60. *******RECUPERATION DES LIGNES PERPENDICULAIRES AU FRONT*******
  61. *******DE FISSURE SUR LESQUELLES SERONT EFFECTUES LES CALCULS**
  62. ***************************************************************
  63. *&&&&&&&&&&&&&&&&*
  64. SI (EGA &DIM 3);
  65. *&&&&&&&&&&&&&&&&*
  66. *------determination de cas de fissure debouchante ou non-----*
  67.  
  68. TMAIL = TABLE;
  69. TM = TABLE;
  70. TRANCHE = TABLE;
  71. P = (NBEL FRTFISS) + 1;
  72. *-----recuperation des points extremites du front de fissure----*
  73.  
  74. FRTFISS = ORDO FRTFISS;
  75. PINIT = FRTFISS POIN 'INIT';
  76. PFIN = FRTFISS POIN 'FINAL';
  77.  
  78. *-----determination du volume de travail MAILVOL----------------*
  79. MAILVOL = FRTFISS;
  80. REPETER BVOL 7;
  81. MAILVOL = MAILLAGE ELEM APPU LARG MAILVOL;
  82. FIN BVOL;
  83.  
  84. *--récupération de la surface initiale de MAILVOL : SURINIT-----*
  85. SURINIT = PINIT;
  86. REPETER BSURINIT 7;
  87. VCUB = MAILLAGE ELEM APPU LARG SURINIT;
  88. SCUB = ENVE VCUB;
  89. SURINIT = SCUB ELEM APPU LARG SURINIT;
  90. FIN BSURINIT;
  91. POINTFIS = SURINIT POIN 'PLAN' PINIT PFIN PSF 0.01;
  92. ELEMSFIS = SURINIT ELEM APPU STRI POINTFIS;
  93. SURINIT = SURINIT DIFF ELEMSFIS;
  94. SURINIT1 = SURINIT;
  95. SURINIT = PINIT;
  96. REPETER BSURI 7;
  97. SURINIT = SURINIT1 ELEM APPU LARG SURINIT ;
  98. FIN BSURI ;
  99. *--récupération de la surface finale de MAILVOL : SURFIN-------*
  100. SURFIN = PFIN;
  101. REPETER BSURFIN 7;
  102. VCUB = MAILLAGE ELEM APPU LARG SURFIN;
  103. SCUB = ENVE VCUB;
  104. SURFIN = SCUB ELEM APPU LARG SURFIN;
  105. FIN BSURFIN;
  106. POINTFIS = SURFIN POIN 'PLAN' PINIT PFIN PSF 0.01;
  107. ELEMSFIS = SURFIN ELEM APPU STRI POINTFIS;
  108. SURFIN = SURFIN DIFF ELEMSFIS;
  109. SURFIN1 = SURFIN;
  110. SURFIN = PFIN ;
  111. REPETER BSURF 7 ;
  112. SURFIN = SURFIN1 ELEM APPU LARG SURFIN;
  113. FIN BSURF ;
  114. *--remplissage de la table des plans orthogonaux à la fissure--*
  115. *--------------------- TMAIL ----------------------------*
  116. TMAIL.1 = CHAN SURINIT POI1;
  117. TM.1 = SURINIT;
  118. TRANCHE.1 = MAILVOL ELEM APPU LARG SURINIT;
  119. I = 0; TRANCHET = TRANCHE.1;
  120. SI ((NBEL FRTFISS) > 1);
  121. REPETER BRECU ((NBEL FRTFISS ) - 1);
  122. I = I + 1;
  123. **--récuperation des tranches--**
  124. TRANCHE.(I + 1) = (MAILVOL ELEM APPU LARG TRANCHET) DIFF TRANCHET;
  125. TRANCHET = TRANCHET ET TRANCHE.(I + 1);
  126. ENVEBI = DIFF (ENVE TRANCHE.(I + 1)) (ENVE TRANCHE.I);
  127. TMAIL.(I + 1) = DIFF ENVEBI
  128. ((ENVE TRANCHE.(I + 1)) ET (ENVE TRANCHE.I));
  129. TM.(I + 1) = TMAIL.(I + 1);
  130. TMAIL.(I + 1) = TMAIL.(I + 1) CHAN POI1;
  131.  
  132. FIN BRECU;
  133. FINSI;
  134. TMAIL.P = CHAN SURFIN POI1;
  135. TM.P = SURFIN ;
  136.  
  137. *-------récupération des lignes supports de calcul----------*
  138. *------intersections entre les plans de TMAIL et la---------*
  139. *---------------------surface de fissure--------------------*
  140.  
  141. **--récupération de la surface de fissure : SURFIS--**
  142.  
  143. ENVMAIL = ENVE MAILLAGE;
  144. PLANFIS = ENVMAIL POINT 'PLAN' PINIT PFIN PSF 0.001;
  145. PLANFIS = ENVMAIL ELEM APPU STRICT PLANFIS;
  146. CO = CONT PLANFIS ;
  147. CO1 = (CO COMP PINIT PFIN);
  148. COSURFIS = CO1 et FRTFISS ;
  149. ELPSF = PLANFIS ELEM APPU LARG PSF;
  150. SURFIS = PLANFIS INCLU COSURFIS;
  151. SS = ELPSF DIFF SURFIS;
  152. **--cas où on n'a pas pris la bonne partie du plan pour SURFIS--**
  153. SI (EGA (NBEL SS) ((NBEL ELPSF) + (NBEL SURFIS)));
  154. SURFIS = PLANFIS DIFF SURFIS;
  155. FINSI;
  156.  
  157.  
  158. **--récupération des lignes et des points du front de fissure--**
  159. TLIG = TABLE;TPF = TABLE;
  160. I = 0;
  161. CHSURFIS = SURFIS CHAN POI1;
  162. CHFRTFIS = CHAN FRTFISS POI1;
  163. REPETER BLIG P;
  164. I = I + 1;
  165. **--récupération des lignes--**
  166.  
  167. TOT = TMAIL.I ET CHSURFIS; DIFSYM = TMAIL.I DIFF CHSURFIS;
  168. TLIG.I = DIFF TOT DIFSYM;
  169. TLIG.I = TMAIL.I ELEM APPU STRI TLIG.I;
  170.  
  171. **--récupération des points du front de fissure--**
  172.  
  173. TOT = TLIG.I ET CHFRTFIS;
  174. DIFSYM = TLIG.I DIFF CHFRTFIS;
  175. TPF.I = DIFF TOT DIFSYM;
  176. TPF.I = TLIG.I ELEM APPU STRI TPF.I;
  177. TPF.I = TPF.I POIN 1;
  178. H = CONT TM.I;
  179. TLIG.I = H ELEM APPU STRI TLIG.I;
  180. FIN BLIG;
  181.  
  182.  
  183.  
  184. *&&&&&&*
  185. FINSI;
  186. *&&&&&&*
  187.  
  188. ***************************************************************
  189. ************** DIMENSION 2 ET 3 ******************
  190. ***************************************************************
  191. *&&&&&&&&&&&&&&&*
  192. SI (EGA &DIM 2 );
  193. *&&&&&&&&&&&&&&&*
  194. P = 1;
  195. *&&&&&&&*
  196. FINSI;
  197. *&&&&&&&*
  198. CTOD = TABLE;
  199. SI (EGA &DIM 3);
  200. SUPTAB.'CTOD' = TABLE;
  201. FINSI;
  202. J = 0;
  203. REPETER BKTOTALE P;
  204. J = J + 1;
  205. SI (EGA &DIM 3);
  206. PF = TPF.J;
  207. LIGCTOD = TLIG.J;
  208. MESS 'LIGNE ' J ' DU FRONT DE FISSURE';
  209. SINON;
  210. LIGCTOD = LIFIS1;
  211. FINSI;
  212.  
  213.  
  214. LIGCTOD = ORDO LIGCTOD;
  215. SI (NEG (POIN 1 LIGCTOD) PF);
  216. LIGCTOD = INVE (LIGCTOD);
  217. FINSI;
  218. P0 = LIGCTOD POIN 2;
  219. N = NBEL LIGCTOD;
  220. PN = LIGCTOD POIN (N + 1);
  221. TYPMOD = 'VALEUR' MODE;
  222.  
  223. *-----PASSAGE DANS LE REPERE LOCAL DE FISSURE---------------*
  224.  
  225. * TRANSLATION DES CHPS DE DEPL : NOUVELLE ORIGINE PF
  226. **--récupération des composantes du déplacement--**
  227. SI ((EGA TYPMOD 'PLANDEFO') OU (EGA TYPMOD 'PLANCONT')
  228. OU (EGA TYPMOD 'TRID'));
  229. CHVX = EXCO U 'UX';
  230. CHVY = EXCO U 'UY';
  231. FINSI;
  232. SI (EGA TYPMOD 'AXIS');
  233. CHVX = EXCO U 'UR';
  234. CHVY = EXCO U 'UZ';
  235. FINSI;
  236. VXPF= EXTR CHVX 'SCAL' PF;
  237. VYPF= EXTR CHVY 'SCAL' PF;
  238. PMAIL = EXTR U 'MAIL';
  239. CHVXPF=MANU CHPO PMAIL 1 'SCAL' VXPF;
  240. CHVYPF=MANU CHPO PMAIL 1 'SCAL' VYPF;
  241. CHVX=CHVX - CHVXPF;
  242. CHVY=CHVY - CHVYPF;
  243. SI (EGA TYPMOD 'TRID');
  244. CHVZ = EXCO U 'UZ';
  245. VZPF= EXTR CHVZ 'SCAL' PF;
  246. CHVZPF=MANU CHPO PMAIL 1 'SCAL' VZPF;
  247. CHVZ=CHVZ - CHVZPF;
  248. FINSI;
  249.  
  250. * ROTATION DES CHPS DE DEPL : DS REPERE DE LA FISSURE
  251. **----cas du 2 D----**
  252. SI (EGA &DIM 2);
  253. VECU = P0 MOIN PN;
  254. XU = VECU / (NORM VECU);
  255. YV = XU PVECT;
  256. X1 = COOR 1 XU; Y1 = COOR 2 XU;
  257. X2 = COOR 1 YV; Y2 = COOR 2 YV;
  258. CHU = (CHVX * X1) + (CHVY * Y1);
  259. CHV = (CHVX * X2) + (CHVY * Y2);
  260. **----cas du 3 D----**
  261. SINON;
  262. **--récupération du repère local :XU YV ZW--**
  263. VECU = P0 MOIN PN;
  264. XU = VECU / (NORM VECU);
  265. SI ((NBEL FRTFISS) > 1);
  266. FRTFI = FRTFISS DIFF (FRTFISS ELEM APPU LARG PF);
  267. PPRO = FRTFI POIN PROC PF;
  268. SINON;
  269. FRTFI = FRTFISS CHAN POI1;
  270. FRTFI = FRTFI DIFF (FRTFI ELEM APPU LARG PF);
  271. PPRO = FRTFI POIN PROC PF;
  272. FINSI;
  273. VECV = PPRO MOIN PF;
  274. YV = VECV / (NORM VECV);
  275. ZW = XU PVEC YV;
  276. ZW = ZW / (NORM ZW);
  277. **--calcul de la matrice de passage --**
  278. X1 = COOR 1 XU; Y1 = COOR 2 XU; Z1 = COOR 3 XU;
  279. X2 = COOR 1 YV; Y2 = COOR 2 YV; Z2 = COOR 3 YV;
  280. X3 = COOR 1 ZW; Y3 = COOR 2 ZW; Z3 = COOR 3 ZW;
  281. **--calcul des déplacements dans le repère local--**
  282. **--mode 1--**
  283. CHV = (X3 * CHVX) + (Y3 * CHVY) + (Z3 * CHVZ);
  284. **--mode 2--**
  285. CHU = (X1 * CHVX) + (Y1 * CHVY) + (Z1 * CHVZ);
  286. FINSI;
  287.  
  288. **************************************************************
  289. * CALCUL DU CTOD *
  290. **************************************************************
  291.  
  292. **-- détermination de l'element d'intersection avec D45 par itération--**
  293. **--( si elle existe )--**
  294.  
  295. ICTOD = 0;
  296. TESTE = 6;
  297. BCOUP = 'FAUX';
  298. REPETER BCTOD TESTE;
  299. ICTOD = ICTOD + 1;
  300. P1 = LIGCTOD POIN ICTOD;
  301. P2 = LIGCTOD POIN (ICTOD + 1);
  302. VECP1 = P1 MOIN PF;
  303. R1 = NORM (VECP1);
  304. VECP2 = P2 MOIN PF;
  305. R2 = NORM (VECP2);
  306. V1 = EXTR (REDU CHV P1) 'SCAL' P1;
  307. V1 = ABS (V1);
  308. SI (EGA P1 PF); V1 = 0.;FINSI;
  309. V2 = EXTR (REDU CHV P2) 'SCAL' P2;
  310. V2 = ABS (V2);
  311. SI ((V1 >EG R1) ET (V2 <EG R2));
  312. ELCTOD = LIGCTOD COMP P1 P2;
  313. BCOUP = 'VRAI';
  314. QUIT BCTOD;
  315. FINSI;
  316. FIN BCTOD;
  317. SI (EGA &IMP 1);
  318. mess 'INTERSECTION SUR L ELEMENT N°' ICTOD;
  319. mess 'NOEUD 1 SOMMET : R1 = ' R1 ' V1 = ' V1;
  320. mess 'NOEUD 2 SOMMET : R2 = ' R2 ' V2 = ' V2;
  321. FINSI;
  322. *----------CAS OU L'INTERSECTION EXISTE : CALCUL PLASTIQUE------*
  323. *---------CALCUL DU CTOD AVEC L'INTERSECTION DE LA DROITE A 45--*
  324. SI (EGA BCOUP 'VRAI');
  325. **-cas d'éléments linéaires--**
  326. SI (IELEMLIN);
  327. ETA = (V1 + V2 - R1 - R2) / (V1 - V2 + R2 - R1);
  328. N1 = (1 - ETA) / 2;
  329. N2 = (1 + ETA) / 2;
  330. V = (N1 * V1) + (N2 * V2) ;
  331. CTOD.PF = 2 * V;
  332. SI (((V > R1) ET (V < R2) ET
  333. (V1 < V) ET (V < V2)));
  334. MESS 'LE CTOD A D45° VAUT :'CTOD.PF;
  335. SINON;
  336. CTOD.PF = 0;
  337. MESS 'PAS D INTERSECTION AVEC LA DROITE A 45°';
  338. FINSI;
  339. SINON;
  340. ELPO = CHAN ELCTOD POI1;
  341. ELINT = ELPO DIFF (ELPO ELEM APPU LARG P1);
  342. PM = ELINT POIN PROC P1;
  343. VECPM = PM MOIN PF;
  344. RM = NORM (VECPM);
  345. VM = EXTR (REDU CHV PM) 'SCAL' PM;
  346. VM = ABS (VM);
  347. SI (EGA &IMP 1);
  348. mess 'NOEUD MILIEU : RM = ' RM ' VM = ' VM;
  349. FINSI;
  350. A = ((2 * VM) - V1 - V2);
  351. B = (R2 - R1 + V1 - V2);
  352. C = 2 * (RM - VM);
  353. DELTA = (B**2) - (4 * A * C);
  354. SI (DELTA >EG 0);
  355. ETA1 = (((-1) * B) - (DELTA**0.5)) / (2 * A);
  356. ETA2 = (((-1) * B) + (DELTA**0.5)) / (2 * A);
  357. N1A = ETA1 * (ETA1 - 1) / 2;
  358. NMA = 1 - (ETA1**2);
  359. N2A = ETA1 * (ETA1 + 1) / 2;
  360. VA = (N1A * V1) + (NMA * VM) + (N2A * V2);
  361. N1B = ETA2 * (ETA2 - 1) / 2;
  362. NMB = 1 - (ETA2**2);
  363. N2B = ETA2 * (ETA2 + 1) / 2;
  364. VB = (N1B * V1) + (NMB * VM) + (N2B * V2);
  365. SI ((ABS (ETA1) &lt;EG 1) OU (ABS (ETA2) &lt;EG 1));
  366. SI (EGA ICTOD 1);
  367. SI ((ABS (ETA1) &lt;EG 1) ET (ABS (ETA2) &lt;EG 1));
  368. PCTOD = PROG VA VB;
  369. CTOD.PF = 2 * (MAXI PCTOD);
  370. MESS 'LE CTOD A D45° VAUT :'CTOD.PF;
  371. SINON;
  372. CTOD.PF = 0;
  373. MESS 'PAS D INTERSECTION AVEC LA DROITE A 45°';
  374. FINSI;
  375. SINON;
  376. SI (((VA > R1) ET (VA < RM) ET
  377. (V1 < VA) ET (VA < VM))
  378. OU ((VA > RM) ET (VA < R2) ET
  379. (VM < VA) ET (VA < V2)));
  380. CTOD.PF = 2 * VA;
  381. MESS 'LE CTOD A D45° VAUT :'CTOD.PF;
  382. SINON;
  383. SI (((VB > R1) ET (VB < RM) ET
  384. (V1 < VB) ET (VB < VM))
  385. OU ((VB > RM) ET (VB < R2) ET
  386. (VM < VB) ET (VB < V2)));
  387. CTOD.PF = 2 * VB;
  388. MESS 'LE CTOD A D45° VAUT :'CTOD.PF;
  389. SINON;
  390. CTOD.PF = 0;
  391. MESS 'PAS DE SOLUTION SATISFAISANTE';
  392. FINSI;
  393. FINSI;
  394. FINSI;
  395.  
  396. SINON;
  397. CTOD.PF = 0;
  398. SI (EGA &IMP 1);
  399. MESS ' PAS DE ETA ENTRE -1 ET 1';
  400. FINSI;
  401. SI (EGA ICTOD 1);
  402. MESS 'PAS D INTERSECTION AVEC LA DROITE A 45°';
  403. FINSI;
  404. FINSI;
  405.  
  406.  
  407. SINON;
  408. CTOD.PF = 0;
  409. MESS 'RESOLUTION IMPOSSIBLE : DELTA < 0';
  410. SI (EGA ICTOD 1);
  411. MESS 'PAS D INTERSECTION AVEC LA DROITE A 45°';
  412. FINSI;
  413. FINSI;
  414. FINSI;
  415. SINON;
  416.  
  417. *------CAS OU L'ON SE TROUVE EN ELASTICITE :--------------*
  418. *------PAS D'INTERSECTION AVEC LA DROITE A 45°------------*
  419. *------CALCUL DU CTOD AVEC LE SIF K1 ---------------------*
  420. CTOD.PF = 0;
  421. MESS 'PAS D INTERSECTION AVEC LA DROITE A 45° : ';
  422. FINSI;
  423. SI (EGA &DIM 3);
  424. SUPTAB.'CTOD'.PF = CTOD.PF;
  425. SINON;
  426. SUPTAB.'CTOD' = CTOD.PF;
  427. FINSI;
  428. FIN BKTOTALE;
  429.  
  430. FINPROC SUPTAB ;
  431.  
  432.  

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