Télécharger sif.procedur

Retour à la liste

Numérotation des lignes :

  1. * SIF PROCEDUR FD218221 18/03/20 21:15:06 9778
  2. DEBPROC SIF SUPTAB*TABLE MAT*MCHAML U*CHPOINT;
  3.  
  4. ************************************************************************
  5. * PROCEDURE POUR LA DETERMINATION DE K *
  6. * PAR LA METHODE DES DEPLACEMENTS *
  7. ************************************************************************
  8. * *
  9. * SUPTAB.'MAILLAGE' : EN 3D SEULEMENT, MAILLAGE DE LA PIECE *
  10. * *
  11. * SUPTAB.'FRTFISS' : FRONT DE FISSURE *
  12. * - EN 2D : POINT SITUE EN POINTE DE FISSURE *
  13. * - EN 3D : MAILLAGE DE LA LIGNE FRONT DE FISSURE *
  14. * *
  15. * SUPTAB.'MODMIXTE' : BOOLEEN VALANT VRAI SI ON EST EN MODE MIXTE *
  16. * *
  17. * SUPTAB.'LEVRE_1' : MAILLAGE DES LEVRES DE LA FISSURE *
  18. * - EN 2D : MAILLAGE D'UNE LIGNE *
  19. * - EN 3D : MAILLAGE D'UNE SURFACE *
  20. * - EN CAS DE MODE MIXTE, LEVRE SUPERIEURE *
  21. * SUPTAB.'LEVRE_2' : EN CAS DE MODE MIXTE SEULEMENT *
  22. * MAILLAGE DE LA LEVRE INFERIEURE *
  23. * *
  24. * SUPTAB.'DEBOUCH' : BOOLEEN VALANT VRAI SI LA FISSURE EST DEBOUCHANTE *
  25. * ET FAUX SINON (EN 3D SEULEMENT) *
  26. * SUPTAB.'PDEBOUCH' : EXISTE EN CAS DE FISSURE DEBOUCHANTE EN 3D *
  27. * * EN CAS DE FISSURE SYMETRIQUE :POINT INTERSECTION ENTRE LA *
  28. * LIGNE DEBOUCHANTE ET FRTFISS (TYPE POINT) *
  29. * * EN CAS DE FISSURE NON SYMETRIQUE : LES 2 POINTS INTERSECTION *
  30. * ENTRE LA LIGNE DEBOUCHANTE ET LE FRONT DE FISSURE *
  31. * (TYPE MAILLAGE) *
  32. * *
  33. * SUPTAB.'EPAI' : CHPOINT OU REEL DES EPAISSEURS AUX NOEUDS (POUR LES *
  34. * ELEMENTS COQUES) *
  35. * SUPTAB.'MEMBRANE' : BOOLEEN VALANT VRAI SI LES K1 ET EVENTUELLEMENT *
  36. * K2 DOIVENT ETRE EVALUES A PARTIR DES DEFORMATIONS*
  37. * MEMBRANAIRES (POUR LES ELEMENTS COQUES) *
  38. * SUPTAB.'FLEXION' : BOOLEEN VALANT VRAI SI LES K1 ET K2 DE FLEXION *
  39. * DOIVENT ETRE EVALUES (POUR LES ELEMENTS COQUES) *
  40. * *
  41. * SUPTAB.'GRANDS_DEPLACEMENTS' : BOOLEEN VALANT VRAI POUR UN CALCUL EN *
  42. * GRANDS DEPLACEMENTS *
  43. * *
  44. * MAT : CHAMP DE MATERIAU *
  45. * *
  46. * U : CHAMP DE DEPLACEMENT *
  47. ************************************************************************
  48.  
  49. ************************************************************************
  50. * ARGUMENTS DE SORTIE *
  51. * TABLE SUPTAB *
  52. ************************************************************************
  53. * *
  54. *SUPTAB.'K1' :* EN 2D, CONTIENT LE REEL K1 : SUPTAB.K1 = K1 *
  55. * * EN 3D, CONTIENT UNE TABLE DE REELS QUI REPRESENTENT LES*
  56. * K1 A CHAQUE NOEUD DU FRONT DE FISSURE ; CETTE TABLE DE *
  57. * REELS A POUR INDICES DES OBJETS DE TYPE POINT : *
  58. * EXEMPLE : SUPTAB.K1.P = K1 TROUVE AU NOEUD DU FRONT *
  59. * DONT LES COORDONNEES SONT CELLES DE P *
  60. * * POUR LES COQUES, CONTIENT UNE TABLE DE 3 REELS : *
  61. * SUPTAB.K1.TOTAL : K1(flexion) + K1(membrane) *
  62. * SUPTAB.K1.MEMBRANE : K1(membrane) *
  63. * SUPTAB.K1.FLEXION : K1(flexion) *
  64. * *
  65. *SUPTAB.'K2' :* EN 2D, CONTIENT LE REEL K2 : SUPTAB.K2 = K2 *
  66. * * EN 3D, CONTIENT UNE TABLE DE REELS QUI REPRESENTENT LES*
  67. * KII A CHAQUE NOEUD DU FRONT DE FISSURE ;CETTE TABLE DE *
  68. * REELS A POUR INDICES DES OBJETS DE TYPE POINT : *
  69. * EXEMPLE : SUPTAB.K2.P = K2 TROUVE AU NOEUD DU FRONT *
  70. * DONT LES COORDONNEES SONT CELLES DE P *
  71. * * POUR LES COQUES, CONTIENT UNE TABLE DE 3 REELS : *
  72. * SUPTAB.K2.TOTAL : K2(flexion) + K2(membrane) *
  73. * SUPTAB.K2.MEMBRANE : K2(membrane) *
  74. * SUPTAB.K2.FLEXION : K2(flexion) *
  75. * *
  76. ************************************************************************
  77.  
  78.  
  79. ************************************************************************
  80. * ACQUISITION DES DONNEES D'ENTREE ET INITIALISATIONS
  81. ************************************************************************
  82.  
  83. * Options generales
  84. &DIM = VALE 'DIME';
  85. &IMP = VALE 'IMPI';
  86. &ELEM = 'VALEUR' ELEM;
  87. IELEM2 = (EGA &ELEM 'TRI3') 'OU' (EGA &ELEM 'QUA4');
  88. IELEM3 = (EGA &ELEM 'CUB8') 'OU' (EGA &ELEM 'PRI6');
  89. IEL2Q = (EGA &ELEM 'TRI6') 'OU' (EGA &ELEM 'QUA8');
  90. IEL3Q = (EGA &ELEM 'PR15') 'OU' (EGA &ELEM 'CU20');
  91. IELEMLIN = IELEM2 'OU' IELEM3;
  92. ICOQ = (EGA &DIM 3) ET ((IELEM2) 'OU' (IEL2Q));
  93. IMASS = (EGA &DIM 3) ET ((IELEM3) 'OU' (IEL3Q));
  94.  
  95. * Type de calcul
  96. SI (EXISTE SUPTAB 'MODMIXTE');
  97. MODMIXT = SUPTAB.'MODMIXTE';
  98. SINON;
  99. MODMIXT = FAUX;
  100. FINSI;
  101.  
  102. * Pour le cas avec des coques
  103. SI (EXISTE SUPTAB 'EPAI');
  104. CHEP = SUPTAB.'EPAI';
  105. FINSI;
  106. SI (EXISTE SUPTAB 'MEMBRANE');
  107. MEMB = SUPTAB.'MEMBRANE';
  108. SINON;
  109. MEMB = FAUX;
  110. FINSI;
  111. SI (EXISTE SUPTAB 'FLEXION');
  112. FLEX = SUPTAB.'FLEXION';
  113. SINON;
  114. FLEX = FAUX;
  115. FINSI;
  116.  
  117. * Cas fissure debouchante
  118. SI (EXISTE SUPTAB 'DEBOUCH');
  119. DEBOUCH = SUPTAB.'DEBOUCH';
  120. SINON;
  121. DEBOUCH = FAUX;
  122. FINSI;
  123. SI DEBOUCH;
  124. SI (EGA (TYPE SUPTAB.'PDEBOUCH') 'POINT ');
  125. PDBOUCH1 = SUPTAB.'PDEBOUCH';
  126. SINON;
  127. PDBOUCH1 = SUPTAB.'PDEBOUCH' POIN 1;
  128. PDBOUCH2 = SUPTAB.'PDEBOUCH' POIN 2;
  129. FINSI;
  130. FINSI;
  131.  
  132. * Cas grands deplacements (on fait les calculs sur la configuration)
  133. SI (EXISTE SUPTAB 'GRANDS_DEPLACEMENTS');
  134. IGDDEP = SUPTAB.'GRANDS_DEPLACEMENTS';
  135. SINON;
  136. IGDDEP = FAUX;
  137. FINSI;
  138. SI IGDDEP;
  139. CONF0 = FORM;
  140. FORM U;
  141. FINSI;
  142.  
  143. * Maillage
  144. SI IMASS;
  145. SI (EXISTE SUPTAB 'MAILLAGE');
  146. MAILLAGE = SUPTAB.'MAILLAGE';
  147. SINON;
  148. ERRE 'Il manque la donnee du maillage !';
  149. FINSI;
  150. FINSI;
  151.  
  152. * Front de fissure
  153. SI (EXISTE SUPTAB 'FRTFISS');
  154. SI IMASS;
  155. FRTFISS = SUPTAB.'FRTFISS';
  156. SINON;
  157. PF = SUPTAB.'FRTFISS';
  158. FINSI;
  159. SINON;
  160. ERRE 'Il manque la donnee du front de fissure !';
  161. FINSI;
  162.  
  163. * Levres de la fissure
  164. SI (EXISTE SUPTAB 'LEVRE_1');
  165. SI IMASS;
  166. SURFIS1 = SUPTAB.'LEVRE_1';
  167. SINON;
  168. LIFIS1 = SUPTAB.'LEVRE_1';
  169. FINSI;
  170. SINON;
  171. ERRE 'Il manque la donnee des levres de la fissure !';
  172. FINSI;
  173. SI MODMIXT;
  174. SI (EXISTE SUPTAB 'LEVRE_2');
  175. SI IMASS;
  176. SURFIS2 = SUPTAB.'LEVRE_2';
  177. SINON;
  178. LIFIS2 = SUPTAB.'LEVRE_2';
  179. FINSI;
  180. SINON;
  181. ERRE 'Il manque la donnee de la levre inferieure !';
  182. FINSI;
  183. FINSI;
  184.  
  185. * En 3D, on recupere des points sur les levres de la fissure mais
  186. * n'appartenant pas au front
  187. SI IMASS;
  188. PFRTFISS = CHAN 'POI1' FRTFISS;
  189. PSURFIS1 = CHAN 'POI1' SURFIS1;
  190. TEMP1 = DIFF PFRTFISS PSURFIS1;
  191. PSF1 = TEMP1 POIN 1;
  192. SI MODMIXT;
  193. PSURFIS2 = CHAN 'POI1' SURFIS2;
  194. TEMP1 = DIFF PFRTFISS PSURFIS2;
  195. PSF2 = TEMP1 POIN 1;
  196. FINSI;
  197. FINSI;
  198.  
  199.  
  200.  
  201. ************************************************************************
  202. * EN 3D : RECUPERATION DES
  203. * - POINTS DU FRONT DE FISSURE --> TABLE TPF
  204. * - POINTS SUR LES LIGNES PERPENDICULAIRES AU FRONT DE FISSURE
  205. * SUR LESQUELLES SERONT EFFECTUES LES CALCULS
  206. * -- > TABLES TLIG1 ET TLIG2
  207. ************************************************************************
  208.  
  209. SI IMASS;
  210. TMAIL = TABLE;
  211. TRANCHE = TABLE;
  212. P = NBNO FRTFISS;
  213. * recuperation des points extremites du front de fissure
  214. FRTFISS = ORDO FRTFISS;
  215. PINIT = FRTFISS POIN 'INIT';
  216. PFINA = FRTFISS POIN 'FINAL';
  217. * determination du volume de travail MAILVOL :
  218. * 3 couches d'elements autour de la ligne de front
  219. MAILVOL = FRTFISS;
  220. REPETER BVOL 3;
  221. MAILVOL = MAILLAGE ELEM 'APPU' 'LARG' MAILVOL;
  222. FIN BVOL;
  223. * récupération de la surface initiale de MAILVOL --> SURINIT
  224. SURINIT = PINIT;
  225. REPETER BSURINIT 3;
  226. VCUB = MAILLAGE ELEM 'APPU' 'LARG' SURINIT;
  227. SCUB = ENVE VCUB;
  228. SURINIT = SCUB ELEM 'APPU' 'LARG' SURINIT;
  229. FIN BSURINIT;
  230. POINTFIS = SURINIT POIN 'PLAN' PINIT PFINA PSF1 0.01;
  231. ELEMSFIS = SURINIT ELEM APPU STRI POINTFIS;
  232. SURINIT = SURINIT DIFF ELEMSFIS;
  233. SURINIT1 = SURINIT;
  234. SURINIT = PINIT;
  235. REPETER BSURI 7;
  236. SURINIT = SURINIT1 ELEM APPU LARG SURINIT;
  237. FIN BSURI;
  238. * récupération de la surface finale de MAILVOL --> SURFIN
  239. SURFIN = PFINA;
  240. REPETER BSURFIN 3;
  241. VCUB = MAILLAGE ELEM APPU LARG SURFIN;
  242. SCUB = ENVE VCUB;
  243. SURFIN = SCUB ELEM APPU LARG SURFIN;
  244. FIN BSURFIN;
  245. POINTFIS = SURFIN POIN 'PLAN' PINIT PFINA PSF1 0.01;
  246. ELEMSFIS = SURFIN ELEM APPU STRI POINTFIS;
  247. SURFIN = SURFIN DIFF ELEMSFIS;
  248. SURFIN1 = SURFIN;
  249. SURFIN = PFINA;
  250. REPETER BSURF 7;
  251. SURFIN = SURFIN1 ELEM APPU LARG SURFIN;
  252. FIN BSURF;
  253.  
  254. * récuperation des mailles et des plans orthogonaux à la fissure
  255. * --> tables TMAIL et TRANCHE
  256. TMAIL.1 = CHAN 'POI1' SURINIT;
  257. TRANCHE.1 = MAILVOL ELEM 'APPU' 'LARG' SURINIT;
  258. I = 0;
  259. TRANCHET = TRANCHE.1;
  260. SI ((NBEL FRTFISS) > 1 );
  261. REPETER BRECU ((NBEL FRTFISS ) - 1);
  262. I = I + 1;
  263. * récuperation des tranches
  264. TRANCHE.(I + 1) = DIFF (MAILVOL ELEM 'APPU' 'LARG' TRANCHET)
  265. TRANCHET;
  266. TRANCHET = TRANCHET ET TRANCHE.(I + 1);
  267. * si elements lineaires
  268. SI IELEMLIN;
  269. TMAIL.(I + 1) = INTE (CHAN 'POI1' (TRANCHE.I))
  270. (CHAN 'POI1' (TRANCHE.(I + 1)));
  271. SINON;
  272. * si elements quadratiques, points sommets
  273. TMAIL.((2 * I) + 1) = INTE (CHAN 'POI1' (TRANCHE.I))
  274. (CHAN 'POI1' (TRANCHE.(I + 1)));
  275. * puis noeuds milieux
  276. TMAIL.(2 * I) = DIFF (CHAN 'POI1' (TRANCHE.I))
  277. (TMAIL.((2 * I) - 1) ET TMAIL.((2 * I) + 1));
  278. FINSI;
  279. FIN BRECU;
  280. FINSI;
  281. TMAIL.P = CHAN 'POI1' SURFIN;
  282. SI (NON IELEMLIN);
  283. TMAIL.(P - 1) = DIFF (CHAN 'POI1' TRANCHE.(NBEL FRTFISS))
  284. (TMAIL.P ET TMAIL.(P - 2));
  285. FINSI;
  286.  
  287. * récupération des lignes supports de calcul et des points du front de
  288. * fissure --> tables TLIG1, TLIG2 et TPF
  289. TLIG1 = TABLE;
  290. TPF = TABLE;
  291. SI MODMIXT;
  292. TLIG2 = TABLE;
  293. FINSI;
  294. I = 0;
  295. REPETER BLIG P;
  296. I = I + 1;
  297. * récupération des lignes
  298. TLIG1.I = INTE TMAIL.I PSURFIS1;
  299. SI MODMIXT;
  300. TLIG2.I = INTE TMAIL.I PSURFIS2;
  301. FINSI;
  302. * récupération des points du front de fissure
  303. TPF.I = (INTE TLIG1.I PFRTFISS) POIN 1;
  304. FIN BLIG;
  305.  
  306. FINSI;
  307.  
  308.  
  309.  
  310. * ATTENTION! Pas de prise en compte de delaminages en coques. *
  311. ***************************************************************
  312. ************** DIMENSION 2 ET 3 ******************
  313. ***************************************************************
  314. SI (EGA &DIM 2);
  315. P = 1;
  316. FINSI;
  317. SI ICOQ;
  318. SI MEMB;
  319. P = 1;
  320. SINON;
  321. P = 0;
  322. FINSI;
  323. SI FLEX;
  324. P = P + 1;
  325. FINSI;
  326. FINSI;
  327.  
  328. TABK1 = TABLE;
  329. TABK2 = TABLE;
  330. J = 0;
  331. REPETER BKTOTALE P;
  332. J = J + 1;
  333. SI IMASS;
  334. PF = TPF.J;
  335. LIFIS1 = TLIG1.J;
  336. SI (EGA MODMIXT VRAI);
  337. LIFIS2 = TLIG2.J;
  338. FINSI;
  339. MESS '********************************************************';
  340. MESS '* NOEUD 'J' DU FRONT DE FISSURE DE COORDONNEES : *';
  341. MESS '* ('(COOR 1 PF) (COOR 2 PF) (COOR 3 PF)' ) *';
  342. SINON;
  343. LIFIS1 = LIFIS1 CHAN POI1;
  344. SI (EGA MODMIXT VRAI);
  345. LIFIS2 = CHAN 'POI1' LIFIS2;
  346. FINSI;
  347. FINSI;
  348.  
  349. *-------DETERMINATION DES POINTS DE CALCUL DE LA LIGNE------*
  350. *------- DE FISSURE LIFIS1 (ET LIFIS2 EN MIXTE) : ------*
  351. *-------3 PREMIERS NOEUDS DE LA LIGNE APRES PF--------------*
  352. *------- NOEUDS MILIEUX Y COMPRIS --------------*
  353.  
  354. SI ((NON ICOQ) OU (EGA J 1));
  355. LIGP1 = LIFIS1;
  356. LIGP1 = LIGP1 DIFF (LIGP1 ELEM 'APPU' 'LARG' PF);
  357. PINT11 = LIGP1 POIN 'PROC' PF;
  358. LIGP1 = LIGP1 DIFF (LIGP1 ELEM 'APPU' 'LARG' PINT11);
  359. PINTER1 = LIGP1 POIN 'PROC' PINT11;
  360. LIGP1 = LIGP1 DIFF (LIGP1 ELEM 'APPU' 'LARG' PINTER1);
  361. PINT12 = LIGP1 POIN 'PROC' PINTER1;
  362. LIGP1 = PINT11 ET PINTER1 ET PINT12;
  363. N = NBNO LIGP1;
  364. SI MODMIXT;
  365. LIGP2 = LIFIS2;
  366. LIGP2 = LIGP2 DIFF (LIGP2 ELEM 'APPU' 'LARG' PF);
  367. PINT21 = LIGP2 POIN 'PROC' PF;
  368. LIGP2 = LIGP2 DIFF (LIGP2 ELEM 'APPU' 'LARG' PINT21);
  369. PINTER2 = LIGP2 POIN 'PROC' PINT21;
  370. LIGP2 = LIGP2 DIFF (LIGP2 ELEM 'APPU' 'LARG' PINTER2);
  371. PINT22 = LIGP2 POIN 'PROC' PINTER2;
  372. LIGP2 = PINT21 ET PINTER2 ET PINT22;
  373. FINSI;
  374.  
  375. *-----------CALCUL DU COEFFICIENT DE K -----------------------*
  376. *--ON RECUPERE LE MODULE D'YOUNG ET COEFFICIENT DE POISSON----*
  377. *--DU PREMIER POINT DE LA SERIE DONNEE -----------------------*
  378.  
  379. MAIL = EXTR MAT 'MAIL';
  380. P1 = PINT11;
  381. PN = PINT12;
  382. EL1 = MAIL ELEM 'APPU' 'LARG' P1;
  383. MATEL1 = REDU MAT EL1;
  384. YOUNG = EXTR MATEL1 'YOUN' 1 1 1;
  385. NU = EXTR MATEL1 'NU' 1 1 1;
  386.  
  387. **----------cas où l'on est en 2 D------------**
  388. TYPMOD = VALE 'MODE';
  389. SI ((EGA TYPMOD 'AXIS') OU (EGA TYPMOD 'PLANDEFO'));
  390. YOUNGB = YOUNG / (1 -(NU**2));
  391. FINSI;
  392. SI ((EGA TYPMOD 'PLANCONT') 'OU' (ICOQ));
  393. YOUNGB = YOUNG;
  394. FINSI;
  395.  
  396. **----------cas où l'on est en 3 D -----------**
  397. SI IMASS;
  398. **----cas de fissure débouchante----**
  399. **************************************
  400. SI DEBOUCH;
  401. SI (EGA (TYPE SUPTAB.'PDEBOUCH') 'POINT ');
  402. **--cas de fissure symétrique--**
  403. BOOLINIT = FAUX;
  404. BOOLFIN = FAUX;
  405. SI (EGA PINIT PDBOUCH1);
  406. BOOLINIT = VRAI;
  407. SINON;
  408. BOOLFIN = VRAI;
  409. FINSI;
  410. SINON;
  411. **--cas de fissure non symétrique--**
  412. BOOLINIT = VRAI;
  413. BOOLFIN = VRAI;
  414. FINSI;
  415. **--déterminations de young--**
  416. BOOL1 = FAUX;
  417. BOOL2 = FAUX;
  418. SI ((EGA J 1) ET BOOLINIT);
  419. BOOL1 = VRAI;
  420. FINSI;
  421. SI ((EGA J P) ET BOOLFIN);
  422. BOOL2 = VRAI;
  423. FINSI;
  424. **--cas où l'on se trouve en partie débouchante : contraintes planes--**
  425. SI (BOOL1 OU BOOL2);
  426. YOUNGB = YOUNG;
  427. **--cas où l'on se trouve en partie non débouchante : déf planes--**
  428. SINON;
  429. YOUNGB = YOUNG / (1 - (NU**2));
  430. FINSI;
  431.  
  432. **----cas de la fissure non débouchante : def planes----**
  433. **********************************************************
  434. SINON;
  435. YOUNGB = YOUNG / (1 - (NU**2));
  436. FINSI;
  437. FINSI;
  438.  
  439. **----calcul du coef----**
  440. **************************
  441. COEF = (YOUNGB / 4.) * ((PI * 2.) ** 0.5);
  442. * COEF = YOUNGB * .6266570687;
  443.  
  444.  
  445. *-----PASSAGE DANS LE REPERE LOCAL DE FISSURE---------------*
  446.  
  447. * TRANSLATION DES CHPS DE DEPL : NOUVELLE ORIGINE PF
  448. **--récupération des composantes du déplacement--**
  449. SI ((EGA TYPMOD 'PLANDEFO') OU (EGA TYPMOD 'PLANCONT')
  450. OU (EGA TYPMOD 'TRID'));
  451. CHVX = EXCO U 'UX';
  452. CHVY = EXCO U 'UY';
  453. FINSI;
  454. SI (EGA TYPMOD 'AXIS');
  455. CHVX = EXCO U 'UR';
  456. CHVY = EXCO U 'UZ';
  457. FINSI;
  458. VXPF= EXTR CHVX 'SCAL' PF;
  459. VYPF= EXTR CHVY 'SCAL' PF;
  460. PMAIL = EXTR U 'MAIL';
  461. CHVXPF=MANU CHPO PMAIL 1 'SCAL' VXPF;
  462. CHVYPF=MANU CHPO PMAIL 1 'SCAL' VYPF;
  463. CHVX=CHVX - CHVXPF;
  464. CHVY=CHVY - CHVYPF;
  465. SI (EGA TYPMOD 'TRID');
  466. CHVZ = EXCO U 'UZ';
  467. VZPF= EXTR CHVZ 'SCAL' PF;
  468. CHVZPF=MANU CHPO PMAIL 1 'SCAL' VZPF;
  469. CHVZ=CHVZ - CHVZPF;
  470. FINSI;
  471. SI (ICOQ ET FLEX);
  472. CHEP = CHEP/2.;
  473. CHRX = EXCO U 'RX';
  474. CHRY = EXCO U 'RY';
  475. CHRZ = EXCO U 'RZ';
  476. RXPF= EXTR CHRX 'SCAL' PF;
  477. RYPF= EXTR CHRY 'SCAL' PF;
  478. RZPF= EXTR CHRZ 'SCAL' PF;
  479. CHRXPF=MANU CHPO PMAIL 1 'SCAL' RXPF;
  480. CHRYPF=MANU CHPO PMAIL 1 'SCAL' RYPF;
  481. CHRZPF=MANU CHPO PMAIL 1 'SCAL' RZPF;
  482. CHRX=CHRX - CHRXPF;
  483. CHRY=CHRY - CHRYPF;
  484. CHRZ=CHRZ - CHRZPF;
  485. FINSI;
  486.  
  487. * ROTATION DES CHPS DE DEPL : DS REPERE DE LA FISSURE
  488. **----cas du 2 D----**
  489. SI (EGA &DIM 2);
  490. VECU = P1 MOIN PN;
  491. XU = VECU / (NORM VECU);
  492. YV = XU PVECT;
  493. X1 Y1 = COOR XU;
  494. X2 Y2 = COOR YV;
  495. CHU = (CHVX * X1) + (CHVY * Y1);
  496. CHV = (CHVX * X2) + (CHVY * Y2);
  497. **----cas du 3 D----**
  498. SINON;
  499. **--récupération du repère local :XU YV ZW--**
  500. VECU = P1 MOIN PN;
  501. XU = VECU / (NORM VECU);
  502. SI IMASS;
  503. SI ((NBEL FRTFISS) > 1);
  504. FRTFI = FRTFISS DIFF (FRTFISS ELEM 'APPU' 'LARG' PF);
  505. PPRO = FRTFI POIN 'PROC' PF;
  506. SINON;
  507. FRTFI = CHAN 'POI1' FRTFISS;
  508. FRTFI = FRTFI DIFF (FRTFI ELEM 'APPU' 'LARG' PF);
  509. PPRO = FRTFI POIN 'PROC' PF;
  510. FINSI;
  511. VECV = PPRO MOIN PF;
  512. FINSI;
  513. SI ICOQ;
  514. ELPTE = MAIL ELEM 'APPU' 'LARG' PF;
  515. ELPT1 = ELPTE ELEM 'APPU' 'LARG' P1;
  516. ELPT = CHAN 'POI1' ELPT1;
  517. P1PN = P1 ET PF;
  518. PY = ELPT DIFF P1PN;
  519. NPY = NBEL PY;
  520. KK = 0;
  521. REPETER BKPY NPY;
  522. KK = KK + 1;
  523. PYP = PY POIN KK;
  524. VECX = PYP MOIN P1;
  525. PSUVX = PSCAL XU VECX;
  526. SI (PSUVX < 0);
  527. VECW = XU PVEC VECX;
  528. SINON;
  529. VECW = VECX PVEC XU;
  530. FINSI;
  531. VECV = VECW PVEC XU;
  532. NVECV = NORM VECV;
  533. SI (NVECV > 1.0E-6);
  534. QUITTER BKPY;
  535. FINSI;
  536. FIN BKPY;
  537. FINSI;
  538. YV = VECV / (NORM VECV);
  539. ZW = XU PVEC YV;
  540. ZW = ZW / (NORM ZW);
  541. **--calcul de la matrice de passage --**
  542. X1 Y1 Z1 = COOR XU;
  543. X2 Y2 Z2 = COOR YV;
  544. X3 Y3 Z3 = COOR ZW;
  545. **--calcul des déplacements dans le repère local--**
  546. **--mode 1--**
  547. SI IMASS;
  548. CHV = (X3 * CHVX) + (Y3 * CHVY) + (Z3 * CHVZ);
  549. CHU = (X1 * CHVX) + (Y1 * CHVY) + (Z1 * CHVZ);
  550. FINSI;
  551. FINSI;
  552. FINSI;
  553.  
  554. SI ICOQ;
  555. SI (EGA J 1);
  556. SI (MEMB);
  557. CHV = (X2 * CHVX) + (Y2 * CHVY) + (Z2 * CHVZ);
  558. CHU = (X1 * CHVX) + (Y1 * CHVY) + (Z1 * CHVZ);
  559. CHW = (X3 * CHVX) + (Y3 * CHVY) + (Z3 * CHVZ);
  560. SINON;
  561. CHU = (X2 * CHRX) + (Y2 * CHRY) + (Z2 * CHRZ);
  562. CHU = CHEP*CHU;
  563. CHV = (X1 * CHRX) + (Y1 * CHRY) + (Z1 * CHRZ);
  564. CHV = CHEP*CHV;
  565. CHV = (-1.)*CHV;
  566. FINSI;
  567. FINSI;
  568. SI (EGA J 2);
  569. CHU = (X2 * CHRX) + (Y2 * CHRY) + (Z2 * CHRZ);
  570. CHU = CHEP*CHU;
  571. CHV = (X1 * CHRX) + (Y1 * CHRY) + (Z1 * CHRZ);
  572. CHV = CHEP*CHV;
  573. CHV = (-1.)*CHV;
  574. FINSI;
  575. FINSI;
  576.  
  577. *------------ INITIALISATIONS PRELIMINAIRES --------------*
  578. VECPF = MOIN PF PN;
  579. K1MOY = 0.;
  580. K2MOY = 0.;
  581. LIGP = TABLE;
  582. I = 0;
  583. CPT = 0;
  584. TR = TABLE;
  585. TK1 = TABLE;
  586. TK2 = TABLE;
  587.  
  588. *---DEFINITION DES CONVENTIONS POUR K2
  589. SI MODMIXT;
  590. ELPTE = MAIL ELEM 'APPU' 'LARG' PF;
  591. ELPT1 = ELPTE ELEM 'APPU' 'LARG' P1;
  592. ELPT = CHAN 'POI1' ELPT1;
  593. P1PN = P1 ET PF;
  594. PY = ELPT DIFF P1PN;
  595. NPY = NBEL PY;
  596. KK = 0;
  597. REPETER BKPY1 NPY;
  598. KK = KK + 1;
  599. PYP = PY POIN KK;
  600. VECX = PYP MOIN PF;
  601. VCY = PSCA VECX YV;
  602. SI ((ABS(VCY)) > 1.0E-6);
  603. QUITTER BKPY1;
  604. FINSI;
  605. FIN BKPY1;
  606. SI (VCY > 0.);
  607. LIGP.1 = LIGP1;
  608. LIGP.2 = LIGP2;
  609. SINON;
  610. MESS 'ATTENTION! Echange des lignes de fissure!';
  611. LIGP.1 = LIGP2;
  612. LIGP.2 = LIGP1;
  613. FINSI;
  614. NB = 2;
  615. SINON;
  616. NB = 1;
  617. LIGP.1 = LIGP1;
  618. FINSI;
  619.  
  620. *-----------BOUCLE DE CALCULS------------------------------*
  621. REPETER BOUCLE NB;
  622. CPT = CPT + 1;
  623. CHPF = MANU 'CHPO' LIGP.CPT 1 'SCAL' (NORM VECPF);
  624. SI (EGA &DIM 2);
  625. CHX1 = ((((COOR 1 LIGP.CPT) - (COOR 1 PN))**2) +
  626. (((COOR 2 LIGP.CPT) - (COOR 2 PN))**2))**0.5;
  627. SINON;
  628. CHX1 = ((((COOR 1 LIGP.CPT) - (COOR 1 PN))**2) +
  629. (((COOR 2 LIGP.CPT) - (COOR 2 PN))**2) +
  630. (((COOR 3 LIGP.CPT) - (COOR 3 PN))**2))**0.5;
  631. FINSI;
  632. CHX = ABS (CHX1 - CHPF);
  633. CHV1 = REDU CHV LIGP.CPT;
  634. CHU2 = REDU CHU LIGP.CPT;
  635.  
  636. SI MODMIXT;
  637. *--------- METHODE DES MOINDRES CARRES : MODE 2 ---------*
  638. CHY = CHU2**2;
  639. CHXY = CHX * CHY;
  640. CHX2 = CHX**2;
  641. CHY2 = CHY**2;
  642. SOMX = RESU CHX; SOMX = MAXI SOMX;
  643. SOMY = RESU CHY; SOMY = MAXI SOMY;
  644. SOMXY = RESU CHXY; SOMXY = MAXI SOMXY;
  645. SOMX2 = RESU CHX2; SOMX2 = MAXI SOMX2;
  646. SOMY2 = RESU CHY2; SOMY2 = MAXI SOMY2;
  647. DET1 = (N * SOMX2) - (SOMX**2);
  648. ANUM = (N * SOMXY) - (SOMX * SOMY);
  649. VA2 = ANUM / DET1;
  650. BNUM = (SOMY * SOMX2) - (SOMXY * SOMX);
  651. VB2 = BNUM / DET1;
  652. DET2 = (N * SOMY2) - (SOMY**2);
  653. ANUM2 = (N * SOMXY) - (SOMX * SOMY);
  654. A2 = ANUM2 / DET2;
  655. R2 = VA2 * A2;
  656. DELTA = -1 * (VB2 / VA2);
  657. SI (EGA &IMP 1);
  658. MESS 'moindres carrés mode 2 : R2 = 'R2;
  659. FINSI;
  660. FINSI;
  661. *---------- METHODE DES MOINDRES CARRES : MODE 1-------- *
  662. CHV2 = CHV1**2;
  663. CHY = CHV2;
  664. CHXY = CHX * CHY;
  665. CHX2 = CHX**2;
  666. CHY2 = CHY**2;
  667. SOMX = RESU CHX; SOMX = MAXI SOMX;
  668. SOMY = RESU CHY; SOMY = MAXI SOMY;
  669. SOMXY = RESU CHXY; SOMXY = MAXI SOMXY;
  670. SOMX2 = RESU CHX2; SOMX2 = MAXI SOMX2;
  671. SOMY2 = RESU CHY2; SOMY2 = MAXI SOMY2;
  672. DET1 = (N * SOMX2) - (SOMX**2);
  673. ANUM = (N * SOMXY) - (SOMX * SOMY);
  674. VA1 = ANUM / DET1;
  675. BNUM = (SOMY * SOMX2) - (SOMXY * SOMX);
  676. VB1 = BNUM / DET1;
  677. DET2 = (N * SOMY2) - (SOMY**2);
  678. ANUM2 = (N * SOMXY) - (SOMX * SOMY);
  679. A2 = ANUM2 / DET2;
  680. R1 = VA1 * A2;
  681. BETA = -1. * (VB1 / VA1);
  682. SI (EGA &IMP 1);
  683. MESS 'moindres carrés mode 1 :R1 = 'R1;
  684. FINSI;
  685. *------ VALEUR DE K1 ET (OU) K2 EN CHAQUE POINT---------*
  686. RF = NORM VECPF;
  687. VF = EXTR (REDU CHV PF) 'SCAL' PF;
  688. UF = EXTR (REDU CHU PF) 'SCAL' PF;
  689. VNUM=PROG (N+1) * 0.;
  690. V2TH=PROG (N+1) * 0.;
  691. V2NUM=PROG (N+1) * 0.;
  692. DISTR=PROG (N+1) * 0.;
  693. REMP VNUM 1 VF;
  694. REMP V2NUM 1 (VF**2);
  695. REMP V2TH 1 VB1;
  696. SI MODMIXT;
  697. UNUM=PROG (N+1) * 0.;
  698. U2TH=PROG (N+1) * 0.;
  699. U2NUM=PROG (N+1) * 0.;
  700. REMP UNUM 1 UF;
  701. REMP U2NUM 1 (UF**2);
  702. REMP U2TH 1 VB2;
  703. FINSI;
  704. ITR = 0;
  705. REPETER BK1 N;
  706. ITR = ITR + 1;
  707. I = I + 1;
  708. PTI = LIGP.CPT POIN ITR;
  709. VECPI = MOIN PTI PN;
  710. RI = NORM VECPI;
  711. R = ABS (RI - RF);
  712. TR.I = R;
  713. VI = EXTR (REDU CHV PTI) 'SCAL' PTI;
  714. RRR = R - BETA;
  715. * MESS ' R = 'R' BETA = 'BETA' R - BETA = 'RRR;
  716. SGNR = 1.;
  717. SI (< RRR 0.);
  718. SGNR = -1.;
  719. FINSI;
  720. RRR = SGNR*RRR;
  721. K1I = SGNR*(ABS((COEF / ((RRR)**0.5)) * VI));
  722. REMP DISTR (ITR+1) R;
  723. REMP V2NUM (ITR+1) (VI**2);
  724. REMP VNUM (ITR+1) VI;
  725. VI2TH=(VA1 * R) + VB1;
  726. REMP V2TH (ITR+1) VI2TH;
  727. TK1.I = K1I;
  728. K1MOY = K1MOY + K1I;
  729. *-----CAS DU MODE MIXTE ------*
  730. SI MODMIXT;
  731. UI = EXTR (REDU CHU PTI) 'SCAL' PTI;
  732. RRR = R - DELTA;
  733. SGNR = 1.;
  734. SI (< RRR 0.);
  735. SGNR = -1.;
  736. FINSI;
  737. RRR = SGNR*RRR;
  738. SI (< UI 0.);
  739. SI (EGA CPT 1);
  740. SGNR = (-1.)*SGNR;
  741. FINSI;
  742. FINSI;
  743. SI (> UI 0.);
  744. SI (EGA CPT 2);
  745. SGNR = (-1.)*SGNR;
  746. FINSI;
  747. FINSI;
  748. K2I = SGNR*(ABS((COEF / ((RRR)**0.5)) * UI));
  749. REMP U2NUM (ITR+1) (UI**2);
  750. REMP UNUM (ITR+1) UI;
  751. UI2TH = (VA2 * R) + VB2;
  752. REMP U2TH (ITR+1) UI2TH;
  753. TK2.I = K2I;
  754. K2MOY = K2MOY + K2I;
  755. FINSI;
  756. *-----------------------------*
  757. FIN BK1;
  758.  
  759. ***----------------TRACES DE COURBES--------------------****
  760. SI (EGA &IMP 1);
  761. TITR 'courbes V=g(r) et U=h(r)';
  762. C1NUM = EVOL 'MANU' 'ABS' DISTR 'ORD' VNUM;
  763. TITR 'droites THEORIQUES ET NUMERIQUES V**2=f(r)';
  764. CNUM1 = EVOL 'MANU' 'ABS' DISTR 'ORD' V2NUM;
  765. CTH1 = EVOL 'MANU' 'ABS' DISTR 'ORD' V2TH;
  766. T=TABLE;
  767. T1=TABLE;
  768. T.1='MARQ ETOI ';
  769. T.2='MARQ TRIA ';
  770. T1.1='MARQ CARR ';
  771. T.'TITRE'=TABLE;
  772. T1.'TITRE'=TABLE;
  773. T.'TITRE'. 1 = 'MOT' 'NUM_MODE1';
  774. T.'TITRE'. 2 = 'MOT' 'THEO_MODE1';
  775. T1.'TITRE'. 1 = 'MOT' 'V=g(r)';
  776. CTOT1 = CNUM1 et CTH1;
  777. SI MODMIXT;
  778. CNUM2 = EVOL 'MANU' 'ABS' DISTR 'ORD' U2NUM;
  779. CTH2 = EVOL 'MANU' 'ABS' DISTR 'ORD' U2TH;
  780. C2NUM = EVOL 'MANU' 'ABS' DISTR 'ORD' UNUM;
  781. T.3='MARQ CARR ';
  782. T.4='MARQ LOSA ';
  783. T.'TITRE'. 3 = MOT 'NUM_MODE2';
  784. T.'TITRE'. 4 = MOT 'THEO_MODE2';
  785. CTOT2 = CNUM2 ET CTH2;
  786. DESS (CTOT1 ET CTOT2) 'LOGO' 'LEGE' T;
  787. T1.2='MARQ ETOI ';
  788. T1.'TITRE'. 2= 'MOT' 'U=h(r)';
  789. DESS (C1NUM ET C2NUM) 'LOGO' 'LEGE' T1;
  790. SINON;
  791. DESS CTOT1 'LOGO' 'LEGE' T;
  792. DESS C1NUM 'LOGO' 'LEGE' T1;
  793. FINSI;
  794. FINSI;
  795. FIN BOUCLE;
  796.  
  797.  
  798.  
  799. *---------------------VALEUR MOYENNE DE K------------------*
  800. SI MODMIXT;
  801. N = (2 * N);
  802. FINSI;
  803. K1MOY = K1MOY / N;
  804. SI MODMIXT;
  805. K2MOY = K2MOY / N;
  806. FINSI;
  807.  
  808.  
  809.  
  810.  
  811. ***************************************************************
  812. * IMPRESSIONS *
  813. ***************************************************************
  814.  
  815.  
  816. MESS '********************************************';
  817. MESS '* R * VALEUR DE K1 * (VALEUR DE K2) *';
  818. MESS '********************************************';
  819. IPRES = 0;
  820. REPETER BIMPRESS N;
  821. IPRES = IPRES + 1;
  822. TTR = TR.IPRES;
  823. TTK1 = TK1.IPRES;
  824. SI MODMIXT;
  825. SI (EGA IPRES 1);
  826. MESS 'LIGNE 1';
  827. FINSI;
  828. SI (EGA IPRES 4);
  829. MESS 'LIGNE 2';
  830. FINSI;
  831. TTK2 = TK2.IPRES;
  832. MESS TTR TTK1 TTK2;
  833. SINON;
  834. MESS TTR TTK1;
  835. FINSI;
  836. FIN BIMPRESS;
  837. MESS 'VALEUR MOYENNE : K1MOY = 'K1MOY;
  838. SI MODMIXT;
  839. MESS 'VALEUR MOYENNE : K2MOY = 'K2MOY;
  840. FINSI;
  841. SI IMASS;
  842. TABK1.PF = K1MOY;
  843. SI MODMIXT;
  844. TABK2.PF = K2MOY;
  845. FINSI;
  846. SINON;
  847. SUPTAB.'K1' = K1MOY;
  848. SI MODMIXT;
  849. SUPTAB.'K2' = K2MOY;
  850. FINSI;
  851. FINSI;
  852.  
  853. SI ICOQ;
  854. SI ((EGA J 1) ET MEMB);
  855. TABK1.'MEMBRANE' = K1MOY;
  856. SI MODMIXT;
  857. TABK2.'MEMBRANE' = K2MOY;
  858. FINSI;
  859. SINON;
  860. TABK1.'FLEXION' = K1MOY;
  861. SI MODMIXT;
  862. TABK2.'FLEXION' = K2MOY;
  863. FINSI;
  864. FINSI;
  865. FINSI;
  866.  
  867. FIN BKTOTALE;
  868.  
  869.  
  870.  
  871.  
  872. SI ICOQ;
  873. TABK1.'TOTAL' = 0.;
  874. SI MODMIXT;
  875. TABK2.'TOTAL' = 0.;
  876. FINSI;
  877. SI MEMB;
  878. TABK1.'TOTAL' = TABK1.'MEMBRANE';
  879. SI MODMIXT;
  880. TABK2.'TOTAL' = TABK2.'MEMBRANE';
  881. FINSI;
  882. FINSI;
  883. SI FLEX;
  884. TABK1.'TOTAL' = TABK1.'TOTAL' + TABK1.'FLEXION';
  885. SI MODMIXT;
  886. TABK2.'TOTAL' = TABK2.'TOTAL' + TABK2.'FLEXION';
  887. FINSI;
  888. FINSI;
  889. FINSI;
  890.  
  891. SI (IMASS OU ICOQ);
  892. SUPTAB.'K1'= TABK1;
  893. SI MODMIXT;
  894. SUPTAB.'K2'= TABK2;
  895. FINSI;
  896. FINSI;
  897.  
  898. SI IGDDEP;
  899. FORM CONF0;
  900. FINSI;
  901.  
  902. FINPROC SUPTAB;
  903.  
  904.  
  905.  

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