Télécharger g_cas.procedur

Retour à la liste

Numérotation des lignes :

  1. * G_CAS PROCEDUR JB251061 21/02/05 21:15:06 10879
  2. * =============================================================================
  3. * PROCEDURE D'ANALYSE DE LA TABLE D'ENTREE FOURNIE A G_THETA
  4. * ----------------------------------------------------------
  5. *
  6. * DESCRIPTION : DETERMINE SI LE CALCUL DEMANDE EST PREVU PAR LA VERSION
  7. * ACTUELLE DE G_THETA, ET PREVIENT L'UTILISATEUR SI LE CAS
  8. * ENVISAGE N'EST PAS TESTE OU VALIDE PAR LA BASE DE CAS TESTS
  9. * ACTUELLE.
  10. * ON EN PROFITE EGALEMENT POUR CREER CERTAINS OBJETS QUI SERONT
  11. * UTILISES PAR G_THETA.
  12. * =============================================================================
  13. DEBP G_CAS SUPTAB*'TABLE' BOOL*'TABLE' ;
  14.  
  15. * I - DETERMINATION DU CAS DEMANDE ET VERIFICATION DES DONNEES OBLIGATOIRES
  16. * -------------------------------------------------------------------------
  17.  
  18. SAUT 'LIGNE' ;
  19. MESS 'IDENTIFICATION DU CAS DEMANDE PAR L''UTILISATEUR :' ;
  20. SAUT 'LIGNE' ;
  21. NDEC = 20 ;
  22.  
  23. * I.1 - LECTURE DES DONNEES FOURNIES A SUPTAB
  24. * *******************************************
  25.  
  26. * I.1.A - OBJECTIF
  27. SI (NON (EXIS SUPTAB 'OBJECTIF')) ;
  28. MESS 'ERREUR : IL FAUT SPECIFIER L INTEGRALE' ;
  29. MESS ' A CALCULER PAR UN MOT' ;
  30. ERRE 21 ; QUIT G_CAS ;
  31. SINON ;
  32. SI (NEG (TYPE SUPTAB.'OBJECTIF') 'MOT') ;
  33. MESS 'ERREUR : OBJECTIF INCORRECT. ON ATTEND UN ''MOT''.' ;
  34. ERRE 21 ; QUIT G_CAS ;
  35. FINSI ;
  36. GOBJ = MOT SUPTAB.'OBJECTIF' ;
  37. FINSI ;
  38. * MESSAGE
  39. MESSOBJ = CHAI 'OBJECTIF :' (MOT GOBJ)/NDEC ;
  40. MESS MESSOBJ ;
  41.  
  42. * I.1.B - DIMENSION ET MODE DE CALCUL
  43. GDIME = VALE 'DIME' ;
  44. GMODE = VALE 'MODE' ;
  45. * MESSAGE
  46. MESSDIME = CHAI 'DIMENSION :' GDIME/NDEC ;
  47. MESS MESSDIME ;
  48. MESSMODE = CHAI 'MODE :' GMODE/NDEC ;
  49. MESS MESSMODE ;
  50.  
  51. * I.1.C - TYPE DE SOLUTION DONNEE
  52. SI (NON ((EXIS SUPTAB 'SOLUTION_RESO') OU (EXIS SUPTAB 'SOLUTION_PASAPAS'))) ;
  53. MESS 'ERREUR : IL FAUT UNE SOLUTION PROVENANT DE PASAPAS' ;
  54. MESS ' OU DE RESO POUR DETERMINER L''INTEGRALE' ;
  55. ERRE 21 ; QUIT G_CAS ;
  56. SINON ;
  57. SI (EXIS SUPTAB 'SOLUTION_RESO') ;
  58. SI (NEG (TYPE SUPTAB.'SOLUTION_RESO') 'CHPOINT') ;
  59. MESS 'ERREUR : SOLUTION_RESO INCORRECTE.'
  60. MESS ' ON ATTEND UN ''CHPOINT''.' ;
  61. ERRE 21 ; QUIT G_CAS ;
  62. FINSI ;
  63. GSOLU = 'LINEAIRE' ;
  64. SINON ;
  65. GSOLU = MOT 'PASAPAS' ;
  66. FINSI ;
  67. FINSI ;
  68.  
  69. * I.1.D - MODELE MECANIQUE, MATERIAU ET HYPOTHESE DE CALCUL
  70. SI (EGA GSOLU 'LINEAIRE') ;
  71. SI (NON (EXIS SUPTAB 'MODELE')) ;
  72. MESS 'ERREUR : UNE SOLUTION ISSUE DE RESO NECESSITE UN MODELE' ;
  73. ERRE 21 ; QUIT G_CAS ;
  74. FINSI ;
  75. SI (NON (EXIS SUPTAB 'CARACTERISTIQUES')) ;
  76. MESS 'ERREUR : IL FAUT DONNER LE CHAMP CARACTERISTIQUE' ;
  77. ERRE 21 ; QUIT G_CAS ;
  78. FINSI ;
  79. MOD_TOT = SUPTAB.'MODELE' ;
  80. MOD_MEC = EXTR MOD_TOT 'FORM' 'MECANIQUE' ;
  81. MAT_MEC = REDU (SUPTAB.'CARACTERISTIQUES') MOD_MEC ;
  82. GHYPO = 'HPP' ;
  83. SINON ;
  84. SI (EXIS SUPTAB.'SOLUTION_PASAPAS' 'WTABLE') ;
  85. MOD_TOT = SUPTAB.'SOLUTION_PASAPAS'.'MODELE' ;
  86. WTAB = SUPTAB.'SOLUTION_PASAPAS'.'WTABLE' ;
  87. MOD_MEC = WTAB.'MOD_MEC' ;
  88. MAT_MEC = WTAB.'MAT_MEC' ;
  89. SINON ;
  90. MESS 'Absence de WTABLE ! l execution continue ...' ;
  91. MOD_TOT = SUPTAB.'SOLUTION_PASAPAS'.'MODELE' ;
  92. WTAB = SUPTAB.'SOLUTION_PASAPAS' ;
  93. MOD_MEC = EXTR MOD_TOT 'FORM' 'MECANIQUE' ;
  94. MAT_MEC = REDU (WTAB.'CARACTERISTIQUES') MOD_MEC ;
  95. FINSI ;
  96. SUPTAB.'MODELE' = MOD_MEC ;
  97. SI WTAB.'GRANDS_DEPLACEMENTS' ;
  98. GHYPO = 'GRANDS_DEPLACEMENTS' ;
  99. SINON ;
  100. GHYPO = 'HPP' ;
  101. FINSI ;
  102. SI WTAB.'DYNAMIQUE' ;
  103. GSOLU = CHAI GSOLU ' ' 'DYNAMIQUE' ;
  104. SINON ;
  105. GSOLU = CHAI GSOLU ' ' 'STATIQUE' ;
  106. FINSI ;
  107. FINSI ;
  108. GMTYPE = TABL ;
  109. * COMPORTEMENT ELASTIQUE
  110. SI (EXIS MOD_MEC 'MATE' 'ISOTROPE') ;
  111. GMTYPE.'ELASTIQUE' = MOT 'ELASTIQUE ISOTROPE' ;
  112. SINON ;
  113. GMTYPE.'ELASTIQUE' = MOT 'ELASTIQUE ANISOTROPE' ;
  114. FINSI ;
  115. * COMPORTEMENT PLASTIQUE
  116. MPLAS = TABL ;
  117. MPLAS.(1) MPLAS.(2) MPLAS.(3) = 'ISOTROPE' 'PARFAIT' 'CINEMATIQUE' ;
  118. SI (EXIS MOD_MEC 'MATE' 'PLASTIQUE') ;
  119. GMTYPE.'PLASTIQUE' = MOT 'PLASTIQUE' ;
  120. REPE I (DIME MPLAS) ;
  121. SI (EXIS MOD_MEC 'MATE' MPLAS.&I) ;
  122. GMTYPE.'PLASTIQUE' = CHAI GMTYPE.'PLASTIQUE' ' ' MPLAS.&I ;
  123. FINSI ;
  124. FIN I ;
  125. FINSI ;
  126. * COMPORTEMENT VISCOPLASTIQUE
  127. MVISC = TABL ;
  128. MVISC.(1) MVISC.(2) MVISC.(3) MVISC.(4) MVISC.(5) MVISC.(6) =
  129. 'NORTON' 'POLYNOMIAL' 'BLACKBURN' 'RCCMR_316' 'RCCMR_304' 'LEMAITRE' ;
  130. SI (EXIS MOD_MEC 'MATE' 'FLUAGE') ;
  131. GMTYPE.'FLUAGE' = MOT 'FLUAGE' ;
  132. REPE I (DIME MVISC) ;
  133. SI (EXIS MOD_MEC 'MATE' MVISC.&I) ;
  134. GMTYPE.'FLUAGE' = CHAI GMTYPE.'FLUAGE' ' ' MVISC.&I ;
  135. FINSI ;
  136. FIN I ;
  137. FINSI ;
  138. * PROPRIETES QUI DEPENDENT D'UN PARAMETRE
  139. CPARA = EXTR MAT_MEC 'COVA' ;
  140. PPARA = MOTS ;
  141. REPE I (DIME CPARA) ;
  142. PPARA = PPARA ET (EXTR CPARA &I) ;
  143. FIN I ;
  144. * PROPRIETES QUI DEPENDENT DE LA POSITION
  145. MCOMP = EXTR MAT_MEC 'COMP' ;
  146. PPOSI = MOTS ;
  147. REPE I (DIME MCOMP) ;
  148. ICOMP = EXTR MCOMP &I ;
  149. SI (NON (EXIS PPARA ICOMP)) ;
  150. ICHAM = EXCO MAT_MEC ICOMP ;
  151. SI (NEG (MINI ICHAM) (MAXI ICHAM)) ;
  152. PPOSI = PPOSI ET ICOMP ;
  153. FINSI ;
  154. FINSI ;
  155. FIN I ;
  156. * PROPRIETES A GRADIENT
  157. PGRAD = PPARA ET PPOSI ;
  158. * DISCONTINUITES MATERIELLES
  159. SI (EXIS SUPTAB 'MODELES_COMPOSITES') ;
  160. DISMAT = VRAI ;
  161. TABMOD = SUPTAB.'MODELES_COMPOSITES' ;
  162. SINON ;
  163. DISMAT = FAUX ;
  164. FINSI ;
  165. * MESSAGE TYPE DE SOLUTION
  166. MESSSOLU = CHAI 'CALCUL :' GSOLU/NDEC ;
  167. MESS MESSSOLU ;
  168. * MESSAGE HYPOTHESE DE CALCUL
  169. MESSHYPO = CHAI 'HYPOTHESE :' GHYPO/NDEC ;
  170. MESS MESSHYPO ;
  171. * MESSAGE MATERIAU
  172. MESSMAT = CHAI 'COMPORTEMENT :' GMTYPE.'ELASTIQUE'/NDEC ;
  173. SI (EXIS GMTYPE 'PLASTIQUE') ;
  174. MESSMAT = CHAI MESSMAT ' ' GMTYPE.'PLASTIQUE' ;
  175. FINSI ;
  176. SI (EXIS GMTYPE 'FLUAGE') ;
  177. MESSMAT = CHAI MESSMAT ' ' GMTYPE.'FLUAGE' ;
  178. FINSI ;
  179. MESS MESSMAT ;
  180. * MESSAGE VARIATION DES PROPRIETES
  181. SI DISMAT ;
  182. MESSVAR = CHAI 'PROPRIETES :' 'HOMOGENES PAR MORCEAUX'/NDEC ;
  183. SINON ;
  184. SI ((DIME PGRAD) > 0) ;
  185. MESSVAR = CHAI 'PROPRIETES :' 'HETEROGENES A GRADIENT'/NDEC ;
  186. SINON ;
  187. MESSVAR = CHAI 'PROPRIETES :' 'HOMOGENES'/NDEC ;
  188. FINSI ;
  189. FINSI ;
  190. MESS MESSVAR ;
  191.  
  192. * I.1.E - MAILLAGE ET TYPE D'ELEMENTS
  193. MAILLAGE = EXTR MOD_MEC 'MAIL' ;
  194. SUPTAB.'FISSURE' = VIDE 'MAILLAGE' ;
  195. SI (EXIS SUPTAB 'LEVRE_SUPERIEURE') ;
  196. SUPTAB.'FISSURE' = SUPTAB.'FISSURE' ET SUPTAB.'LEVRE_SUPERIEURE' ;
  197. FINSI ;
  198. SI (EXIS SUPTAB 'LEVRE_INFERIEURE') ;
  199. SUPTAB.'FISSURE' = SUPTAB.'FISSURE' ET SUPTAB.'LEVRE_INFERIEURE' ;
  200. FINSI ;
  201. * ELEMENTS LINEAIRES OU NONLINEAIRES
  202. ELTYPE = MAILLAGE ELEM 'TYPE' ;
  203. ELLIN = MOTS 'TRI3' 'QUA4' 'CUB8' 'PRI6' 'PYR5' 'TET4' ;
  204. ELQUA = MOTS 'TRI6' 'QUA8' 'CU20' 'PR15' 'PY13' 'TE10' ;
  205. IENLE = LECT ;
  206. REPE I (DIME ELTYPE) ;
  207. SI (NON (EXIS (ELLIN ET ELQUA) (EXTR ELTYPE &I))) ;
  208. IENLE = IENLE ET (LECT &I) ;
  209. FINSI ;
  210. FIN I ;
  211. SI ((DIME IENLE) NEG 0) ;
  212. MESS 'ATTENTION : IL Y A DES ELEMENTS ATYPIQUES DANS LE MAILLAGE...' ;
  213. MESS ' LE CALCUL SE POURSUIT QUAND MEME.' ;
  214. ELTYPE = ENLE ELTYPE IENLE ;
  215. FINSI ;
  216. SI (NON ((EXIS ELLIN ELTYPE 'ET') OU (EXIS ELQUA ELTYPE 'ET'))) ;
  217. MESS 'ATTENTION : IL Y A A LA FOIS DES ELEMENTS LINEAIRES ET DES' ;
  218. MESS ' ELEMENTS QUADRATIQUES DANS LE MAILLAGE' ;
  219. GELDEG = 1.5 ;
  220. SINON ;
  221. SI (EXIS ELLIN ELTYPE 'ET') ;
  222. GELDEG = 1 ;
  223. SINON ;
  224. GELDEG = 2 ;
  225. FINSI ;
  226. FINSI ;
  227. * ELEMENTS XFEM OU STANDARD (MASSIF OU COQUE)
  228. SI (EXIS MOD_MEC 'ELEM' 'XQ4R' 'XC8R') ;
  229. GELTYP = MOT 'XFEM' ;
  230. SINON ;
  231. EL2D = MOTS 'TRI3' 'TRI6' 'QUA4' 'QUA8' ;
  232. EL3D = MOTS 'CUB8' 'CU20' 'PRI6' 'PR15' 'PYR5' 'PY13' 'TET4' 'TE10' ;
  233. SI (NON ((EXIS EL2D ELTYPE 'ET') OU (EXIS EL3D ELTYPE 'ET'))) ;
  234. MESS 'ERREUR : LE MAILLAGE SUPPORT DU MODELE EST CONSTITUE' ;
  235. MESS ' D''ELEMENTS 2D ET 3D.' ;
  236. ERRE 21 ; QUIT G_CAS ;
  237. SINON ;
  238. SI ((EGA GDIME 3) ET (EXIS EL2D ELTYPE 'ET')) ;
  239. GELTYP = 'STD COQUE' ;
  240. SINON ;
  241. GELTYP = MOT 'STD MASSIF' ;
  242. FINSI ;
  243. FINSI ;
  244. FINSI ;
  245. * MESSAGE
  246. MESSELEM = CHAI 'ELEMENTS :' GELTYP/NDEC ;
  247. MESSELEM = CHAI MESSELEM ' DEGRE' ' ' GELDEG ;
  248. MESS MESSELEM ;
  249.  
  250. * I.1.F - CHARGEMENT
  251. GCHAR = TABL ;
  252. SI (EXIS MOD_TOT 'MATE' 'PRESSION') ;
  253. SI (EGA GELTYP 'XFEM') ;
  254. GCHAR.'PRESSION' = 'HORS LEVRES' ;
  255. SINON ;
  256. MODCHA = EXTR MOD_TOT 'FORM' 'CHARGEMENT' ;
  257. MODPRE = EXTR MODCHA 'COMP' 'PRESSION' ;
  258. MAILPTOT = EXTR MODPRE 'MAIL' ;
  259. MAILPF = INTE MAILPTOT (SUPTAB.'FISSURE') ;
  260. SI ((NBEL MAILPF) > 0) ;
  261. GCHAR.'PRESSION' = 'SUR LEVRES' ;
  262. SINON ;
  263. GCHAR.'PRESSION' = 'HORS LEVRES' ;
  264. FINSI ;
  265. FINSI ;
  266. SINON ;
  267. GCHAR.'PRESSION' = 'AUCUN' ;
  268. FINSI ;
  269. SI (EGA GSOLU 'LINEAIRE') ;
  270. GCHAR.'MECANIQUE' = EXIS SUPTAB 'CHARGEMENTS_MECANIQUES' ;
  271. SI (EXIS SUPTAB 'TEMPERATURES') ;
  272. GCHAR.'THERMIQUE' = MOT 'DECOUPLE' ;
  273. SINON ;
  274. GCHAR.'THERMIQUE' = 'AUCUN' ;
  275. FINSI ;
  276. GCHAR.'DEFORMATIONS IMPOSEES' = EXIS SUPTAB 'DEFORMATIONS_IMPOSEES' ;
  277. SINON ;
  278. CHAR1 = SUPTAB.'SOLUTION_PASAPAS'.'CHARGEMENT' ;
  279. GCHAR.'MECANIQUE' = (EXIS CHAR1 'DIMP') OU (EXIS CHAR1 'MECA') ;
  280. SI (EXIS CHAR1 'T') ;
  281. GCHAR.'THERMIQUE' = MOT 'DECOUPLE' ;
  282. SINON ;
  283. SI ((EXIS CHAR1 'TIMP') OU (EXIS CHAR1 'Q') OU
  284. (EXIS CHAR1 'TECO') OU (EXIS CHAR1 'TERA')) ;
  285. GCHAR.'THERMIQUE' = MOT 'COUPLE' ;
  286. SINON ;
  287. GCHAR.'THERMIQUE' = 'AUCUN' ;
  288. FINSI ;
  289. FINSI ;
  290. GCHAR.'DEFORMATIONS IMPOSEES' = EXIS CHAR1 'DEFI' ;
  291. FINSI ;
  292. NMESS = 0 ;
  293. MESSCHAR = MOT 'CHARGEMENT :' ;
  294. ICHAR = INDE GCHAR ;
  295. REPE I (DIME ICHAR) ;
  296. MCHAR = MOT ICHAR.&I ;
  297. SI (NEG NMESS 0) ;
  298. MESSCHAR = ' ' ;
  299. FINSI ;
  300. SI (EGA (TYPE GCHAR.(MOT ICHAR.&I)) 'LOGIQUE') ;
  301. SI GCHAR.MCHAR ;
  302. MESSCHAR = CHAI MESSCHAR MCHAR/NDEC ;
  303. MESS MESSCHAR ;
  304. NMESS = NMESS + 1 ;
  305. FINSI ;
  306. FINSI ;
  307. SI (EGA (TYPE GCHAR.MCHAR) 'MOT') ;
  308. SI (NEG GCHAR.MCHAR 'AUCUN') ;
  309. MESSCHAR = CHAI MESSCHAR MCHAR/NDEC ;
  310. MESSCHAR = CHAI MESSCHAR ' ' GCHAR.MCHAR ;
  311. MESS MESSCHAR ;
  312. NMESS = NMESS + 1 ;
  313. FINSI ;
  314. FINSI ;
  315. FIN I ;
  316.  
  317. * I.1.G - CONTACT ENTRE LEVRES DE FISSURE
  318. BCONT = (EXIS SUPTAB 'MODELE_FISSURE') ;
  319. MESSCONT = CHAI 'CONTACT LEVRES :' BCONT/NDEC ;
  320. MESS MESSCONT ;
  321.  
  322.  
  323. * I.2 - VERIFICATION QUE LE CAS EST TRAITABLE
  324. * *******************************************
  325.  
  326. * I.2.A - VERIFICATION QUE L'ON CONNAIT L'OBJECTIF
  327. SI ((NEG GOBJ 'J') ET (NEG GOBJ 'C*') ET (NEG GOBJ 'C*H')
  328. ET (NEG GOBJ 'DJ/DA') ET (NEG GOBJ 'J_DYNA')
  329. ET (NEG GOBJ 'DECOUPLAGE')) ;
  330. MESS 'ERREUR : ON NE CONNAIT PAS L INTEGRALE SPECIFIEE' ;
  331. MESS ' A CALCULER' ;
  332. ERRE 21 ; QUIT G_CAS ;
  333. FINSI ;
  334.  
  335. * I.2.B - VERIFICATION QUE LE MATERIAU EST ISOTROPE
  336. SI (EGA GMTYPE.'ELASTIQUE' (MOT 'ELASTIQUE ANISOTROPE')) ;
  337. MESS 'ERREUR : ON NE PEUT PAS TRAITER LE CAS DE MATERIAUX ANISOTROPES.' ;
  338. ERRE 21 ; QUIT G_CAS ;
  339. FINSI ;
  340.  
  341. * I.2.C - VERIFICATION QUE L'ON A PAS A LA FOIS DES INTERFACES ET DES GRADIENTS
  342. * DE PROPRIETES
  343. SI (DISMAT ET ((DIME PGRAD) > 0)) ;
  344. MESS 'ERREUR : ON NE PEUT PAS TRAITER LE CAS DE DISCONTINUITES' ;
  345. MESS ' MATERIELLES DANS UN SOLIDE A GRADIENT DE PROPRIETES' ;
  346. ERRE 21 ; QUIT G_CAS ;
  347. FINSI ;
  348.  
  349. * I.2.D - INTERFACES (2D SEULEMENT, ET ON DOIT AVOIR AU MOINS DEUX MODELES)
  350. SI DISMAT ;
  351. SI (EGA GDIME 3) ;
  352. MESS 'ERREUR : ON NE PEUT PAS ENCORE TRAITER LES DISCONTINUITES DE' ;
  353. MESS ' PROPRIETES EN 3D' ;
  354. ERRE 21 ; QUIT G_CAS ;
  355. FINSI ;
  356. SI ((DIME SUPTAB.'MODELES_COMPOSITES') < 2) ;
  357. MESS 'ERREUR : IL FAUT AU MOINS DEUX MODELES POUR' ;
  358. MESS ' DETERMINER LA LIGNE COMMUNE D''INTERFACE' ;
  359. ERRE 21 ; QUIT G_CAS ;
  360. FINSI ;
  361. FINSI ;
  362.  
  363. * I.2.E - OBJECTIF : J
  364. SI (EGA GOBJ 'J') ;
  365. SI (EXIS GMTYPE 'FLUAGE') ;
  366. MESS 'ERREUR : ON ATTEND UN COMPORTEMENT ELASTOPLASTIQUE POUR' ;
  367. MESS ' CALCULER L''INTEGRALE J' ;
  368. ERRE 21 ; QUIT G_CAS ;
  369. FINSI ;
  370. FINSI ;
  371.  
  372. * I.2.F - OBJECTIF : C* OU C*H
  373. SI ((EGA GOBJ 'C*') OU (EGA GOBJ 'C*H')) ;
  374. SI (NON (EXIS GMTYPE 'FLUAGE')) ;
  375. MESS 'ERREUR : ON ATTEND UN COMPORTEMENT VISCOPLASTIQUE POUR' ;
  376. MESS ' CALCULER L''INTEGRALE' ' ' GOBJ ;
  377. ERRE 21 ; QUIT G_CAS ;
  378. FINSI ;
  379. SI (NEG GCHAR.'THERMIQUE' 'AUCUN') ;
  380. MESS 'ERREUR : ON NE PEUT PAS ENCORE CALCULER L''INTEGRALE' ' ' GOBJ ;
  381. MESS ' DANS LE CAS D''UN CHARGEMENT THERMIQUE' ;
  382. ERRE 21 ; QUIT G_CAS ;
  383. FINSI ;
  384. SI (NEG GHYPO 'HPP') ;
  385. MESS 'ERREUR : ON NE PEUT PAS ENCORE CALCULER L''INTEGRALE' ' ' GOBJ ;
  386. MESS ' EN GRANDS DEPLACEMENTS' ;
  387. ERRE 21 ; QUIT G_CAS ;
  388. FINSI ;
  389. SI (EGA GOBJ 'C*H') ;
  390. REPE I (DIME MVISC) ;
  391. SI ((NEG MVISC.&I 'NORTON') ET (EXIS MOD_MEC 'MATE' MVISC.&I)) ;
  392. MESS 'ERREUR : IL FAUT UN MODELE DE FLUAGE NORTON' ;
  393. MESS ' SEUL POUR CALCULER L INTEGRALE' ' ' GOBJ ;
  394. ERRE 21 ; QUIT G_CAS ;
  395. FINSI ;
  396. FIN I ;
  397. FINSI ;
  398. FINSI ;
  399.  
  400. * I.2.G - OBJECTIF : DJ/DA
  401. SI (EGA GOBJ 'DJ/DA') ;
  402. SI (EXIS GMTYPE 'FLUAGE') ;
  403. MESS 'ERREUR : ON ATTEND UN COMPORTEMENT ELASTOPLASTIQUE POUR' ;
  404. MESS ' CALCULER L''INTEGRALE DJ/DA' ;
  405. ERRE 21 ; QUIT G_CAS ;
  406. FINSI ;
  407. SI (DISMAT OU ((DIME PGRAD) > 0)) ;
  408. MESS 'ERREUR : ON NE PEUT CALCULER L''INTEGRALE DJ/DA QUE' ;
  409. MESS ' DANS LE CAS DE PROPRIETES HOMOGENES' ;
  410. ERRE 21 ; QUIT G_CAS ;
  411. FINSI ;
  412. SI (NEG GELTYP 'STD MASSIF') ;
  413. MESS 'ERREUR : ON NE PEUT CALCULER L''INTEGRALE DJ/DA QU''AVEC' ;
  414. MESS ' DES ELEMENTS STANDARDS MASSIFS' ;
  415. ERRE 21 ; QUIT G_CAS ;
  416. FINSI ;
  417. SI (NEG GHYPO 'HPP') ;
  418. MESS 'ERREUR : ON NE PEUT CALCULER L''INTEGRALE DJ/DA QUE' ;
  419. MESS ' SOUS L''HYPOTHESE DES PETITES PERTURBATIONS' ;
  420. ERRE 21 ; QUIT G_CAS ;
  421. FINSI ;
  422. SI (NON (EXIS SUPTAB 'BLOCAGES_MECANIQUES')) ;
  423. MESS 'ERREUR : IL FAUT DONNER LES BLOCAGES MECANIQUES' ;
  424. MESS ' POUR CALCULER L''INTEGRALE DJ/DA'
  425. ERRE 21 ; QUIT G_CAS ;
  426. FINSI ;
  427. FINSI ;
  428.  
  429. * I.2.H - OBJECTIF : J_DYNA
  430. SI (EGA GOBJ 'J_DYNA') ;
  431. SI ((EXIS GMTYPE 'PLASTIQUE') OU (EXIS GMTYPE 'FLUAGE')) ;
  432. MESS 'ERREUR : ON ATTEND UN COMPORTEMENT ELASTIQUE POUR CALCULER' ;
  433. MESS ' L''INTEGRALE J_DYNA' ;
  434. ERRE 21 ; QUIT G_CAS ;
  435. FINSI ;
  436. SI (NEG GSOLU (MOT 'PASAPAS DYNAMIQUE')) ;
  437. MESS 'ERREUR : ON ATTEND UNE SOLUTION DE PASAPAS DYNAMIQUE POUR' ;
  438. MESS ' CALCULER L''INTEGRALE J_DYNA' ;
  439. ERRE 21 ; QUIT G_CAS ;
  440. FINSI ;
  441. FINSI ;
  442.  
  443. * I.2.I - OBJECTIF : DECOUPLAGE
  444. SI (EGA GOBJ (MOT 'DECOUPLAGE')) ;
  445. SI ((EXIS GMTYPE 'PLASTIQUE') OU (EXIS GMTYPE 'FLUAGE')) ;
  446. MESS 'ERREUR : ON ATTEND UN COMPORTEMENT ELASTIQUE POUR UTILISER' ;
  447. MESS ' L''OPTION DECOUPLAGE' ;
  448. ERRE 21 ; QUIT G_CAS ;
  449. FINSI ;
  450. SI ((DIME PGRAD) > 0) ;
  451. MESS 'ERREUR : ON NE PEUT PAS UTILISER L''OPTION DECOUPLAGE POUR UN' ;
  452. MESS ' SOLIDE A GRADIENT DE PROPRIETES' ;
  453. ERRE 21 ; QUIT G_CAS ;
  454. FINSI ;
  455. SI (EGA GELTYP 'STD COQUE') ;
  456. MESS 'ERREUR : ON NE PEUT PAS UTILISER L''OPTION DECOUPLAGE DANS LE' ;
  457. MESS ' CAS DE COQUES' ;
  458. ERRE 21 ; QUIT G_CAS ;
  459. FINSI ;
  460. * SI IL Y A DES INTERFACES IL FAUT VERIFIER QU'ELLES SONT PARALLELES A LA
  461. * FISSURE, MAIS LA DIRECTION DE CELLE-CI EST OBTENUE APRES AVOIR CALCULE
  462. * LE CHAMP THETA, DONC CETTE VERIFICATION EST FAITE DANS G_THETA
  463. FINSI ;
  464.  
  465. * I.2.J - CONTACT ENTRE LES LEVRES : UNIQUEMENT AVEC RESO ET XFEM
  466. SI BCONT ;
  467. SI (NEG GSOLU 'LINEAIRE') ;
  468. MESS 'ERREUR : CONTACT ENTRE LES LEVRES NON PREVU AVEC UNE SOLUTION' ;
  469. MESS ' DE PASAPAS' ;
  470. ERRE 21 ; QUIT G_CAS ;
  471. FINSI ;
  472. SI (NEG GELTYP (MOT 'XFEM')) ;
  473. MESS 'ERREUR : CONTACT ENTRE LES LEVRES NON PREVU AVEC DES ELEMENTS' ;
  474. MESS ' STANDARDS' ;
  475. ERRE 21 ; QUIT G_CAS ;
  476. FINSI ;
  477. FINSI ;
  478.  
  479. * I.2.K - ON VERIFIE QU'IL N'Y A PAS DE GRADIENT DE COEFFICIENT DE POISSON
  480. SI (EXIS PGRAD 'NU') ;
  481. MESS 'ERREUR : ON NE SAIT PAS ENCORE TRAITER LA PRESENCE D''UN GRADIENT' ;
  482. MESS ' DE COEFFICIENT DE POISSON' ;
  483. ERRE 21 ; QUIT G_CAS ;
  484. FINSI ;
  485.  
  486.  
  487. * I.3 - VERIFICATION DES DONNEES NECESSAIRES
  488. * ******************************************
  489.  
  490. * I.3.A - FRONT DE FISSURE
  491. SI (NON (EXIS SUPTAB 'FRONT_FISSURE')) ;
  492. MESS 'ERREUR : ON VEUT LE FRONT DE LA FISSURE' ;
  493. ERRE 21 ; QUIT G_CAS ;
  494. FINSI ;
  495. M_FRONT = SUPTAB.'FRONT_FISSURE' ;
  496. SI ((NEG (TYPE M_FRONT) 'MAILLAGE') ET (NEG (TYPE M_FRONT) 'POINT')) ;
  497. MESS 'ERREUR : LE FRONT DE FISSURE DOIT ETRE DE TYPE MAILLAGE OU POINT' ;
  498. ERRE 21 ; QUIT G_CAS ;
  499. FINSI ;
  500. SI (EGA (TYPE M_FRONT) 'POINT') ;
  501. M_FRONT = MANU 'POI1' M_FRONT ;
  502. FINSI ;
  503. M_FRONT = M_FRONT COUL 'OLIV' ;
  504.  
  505. * I.3.B - FISSURE_2 ET SON FRONT POUR DJ/DA
  506. SI (EGA GOBJ 'DJ/DA') ;
  507. SI ((EXIS SUPTAB 'FISSURE_2') OU (EXIS SUPTAB 'FRONT_FISSURE_2')) ;
  508. SI (NON (EXIS SUPTAB 'FISSURE_2')) ;
  509. MESS 'ERREUR : ON VEUT AUSSI LA FISSURE 2 POUR CALCULER' ;
  510. MESS ' LES TERMES CROISES DE LA MATRICE' ;
  511. ERRE 21 ; QUIT G_CAS ;
  512. FINSI ;
  513. SI (NON (EXIS SUPTAB 'FRONT_FISSURE_2')) ;
  514. MESS 'ERREUR : ON VEUT AUSSI LE FROND DE LA FISSURE 2 POUR' ;
  515. MESS ' CALCULER LES TERMES CROISES DE LA MATRICE' ;
  516. ERRE 21 ; QUIT G_CAS ;
  517. FINSI ;
  518. SINON ;
  519. SI (EGA SUPTAB.'COUCHE' 0) ;
  520. MESS 'ERREUR : LE NOMBRE DE COUCHES DOIT ETRE SUPERIEUR A' ;
  521. MESS ' 0 POUR LE CALCUL DU TERME PRINCIPAL DJi/DAi' ;
  522. ERRE 21 ; QUIT G_CAS ;
  523. FINSI ;
  524. FINSI ;
  525. FINSI ;
  526.  
  527. * I.3.C - PRESSION OBLIGATOIRE SI CALCUL LINEAIRE ET MODELE DE PRESSION
  528. SI ((NEG GCHAR.'PRESSION' 'AUCUN') ET (EGA GSOLU 'LINEAIRE')) ;
  529. SI (NON (EXIS SUPTAB 'PRESSION')) ;
  530. MESS 'ERREUR : IL MANQUE LA DONNEE DU CHAMP DE PRESSION' ;
  531. ERRE 21 ; QUIT G_CAS ;
  532. FINSI ;
  533. FINSI ;
  534.  
  535. * I.3.D - VERIFICATION QU'ON A LE CHARGEMENT SI SOLUTION LINEAIRE
  536. SI (EGA GSOLU 'LINEAIRE') ;
  537. SI ((EGA GCHAR.'THERMIQUE' 'AUCUN')
  538. ET (EGA GCHAR.'PRESSION' 'AUCUN')
  539. ET (NON GCHAR.'MECANIQUE')
  540. ET (NON GCHAR.'DEFORMATIONS IMPOSEES')) ;
  541. MESS 'ERREUR : IL FAUT LES CHARGEMENTS APPLIQUES :' ;
  542. MESS ' MECANIQUES, THERMIQUES OU LES DEUX' ;
  543. ERRE 21 ; QUIT G_CAS ;
  544. FINSI ;
  545. FINSI ;
  546.  
  547. * I.3.E - DEFINITION DE LA FISSURE NECESSAIRE
  548. SI (EGA GELTYP (MOT 'XFEM')) ;
  549. SI (NON ((EXIS SUPTAB 'PSI') ET (EXIS SUPTAB 'PHI'))) ;
  550. MESS 'ERREUR : ON VEUT PSI et PHI LEVELSET DE LA FISSURE' ;
  551. ERRE 21 ; QUIT G_CAS ;
  552. FINSI ;
  553. SINON ;
  554. SI (EGA GT_OBJ 'DECOUPLAGE') ;
  555. SI (NON ((EXIS SUPTAB 'LEVRE_SUPERIEURE') ET
  556. (EXIS SUPTAB 'LEVRE_INFERIEURE'))) ;
  557. MESS 'ERREUR : L''OBJECTIF DECOUPLAGE NECESSITE LES DEUX' ;
  558. MESS ' LEVRES DE LA FISSURE' ;
  559. ERRE 21 ; QUIT G_CAS ;
  560. FINSI ;
  561. SINON ;
  562. SI (NON ((EXIS SUPTAB 'LEVRE_SUPERIEURE') OU
  563. (EXIS SUPTAB 'LEVRE_INFERIEURE'))) ;
  564. MESS 'ERREUR : IL FAUT DONNER LA FISSURE' ;
  565. MESS '(LEVRE_SUPERIEURE OU LEVRE_INFERIEURE OU LES 2)' ;
  566. ERRE 21 ; QUIT G_CAS ;
  567. FINSI ;
  568. FINSI ;
  569. FINSI ;
  570.  
  571. * I.3.F - ON VERIFIE QU'ON A OU BIEN LE NOMBRE DE COUCHES OU BIEN CHAM_THETA
  572. SI (NON ((EXIS SUPTAB 'COUCHE') OU (EXIS SUPTAB 'CHAMP_THETA'))) ;
  573. MESS 'ERREUR : ON VEUT LE NOMBRE DE COUCHES D ELEMENTS' ;
  574. MESS ' AUTOUR DE LA FISSURE QUI SE DEPLACE' ;
  575. MESS ' OU LE CHAMP_THETA' ;
  576. MESS ' POUR SIMULER LA PROPAGATION DE LA FISSURE' ;
  577. ERRE 21 ; QUIT G_CAS ;
  578. FINSI ;
  579.  
  580. * I.3.G - ON NE CALCULE PAS CORRECTEMENT LE CAS THERMIQUE AVEC DES COQUES
  581. * DONC POUR L'INSTANT ON DEBRANCHE L'OPTION
  582. SI ((EGA GELTYP 'STD COQUE') ET (NEG GCHAR.'THERMIQUE' 'AUCUN')) ;
  583. MESS 'ERREUR : UNE CORRECTION EST NECESSAIRE POUR TRAITER UN CHARGEMENT' ;
  584. MESS ' THERMIQUE AVEC LES ELEMENTS COQUE' ;
  585. ERRE 21 ; QUIT G_CAS ;
  586. FINSI ;
  587.  
  588.  
  589. * =============================================================================
  590.  
  591. * II - STOCKAGE DES INFORMATIONS POUR TRANSFERT A G_THETA
  592. * -------------------------------------------------------
  593.  
  594. * II.1 - OBJETS ET INFOS UTILES DANS OBJUTI
  595. * *****************************************
  596.  
  597. OBJUTI = TABL ;
  598. OBJUTI.'DIMENSION' = GDIME ;
  599. OBJUTI.'MODE' = GMODE ;
  600. OBJUTI.'MOD_TOT' = MOD_TOT ;
  601. OBJUTI.'MOD_MEC' = MOD_MEC ;
  602. OBJUTI.'MAT_MEC' = MAT_MEC ;
  603. OBJUTI.'MAILLAGE' = MAILLAGE ;
  604. OBJUTI.'FRONT' = M_FRONT ;
  605. SI (NEG GSOLU 'LINEAIRE') ;
  606. OBJUTI.'WTAB' = WTAB ;
  607. FINSI ;
  608.  
  609. * II.2 - BOOLEENS DANS BOOL
  610. * *************************
  611.  
  612. * OBJECTIF
  613. BOOL.'J' = EGA SUPTAB.'OBJECTIF' 'J' ;
  614. BOOL.'C*' = EGA SUPTAB.'OBJECTIF' 'C*' ;
  615. BOOL.'C*H' = EGA SUPTAB.'OBJECTIF' 'C*H' ;
  616. BOOL.'DJ/DA' = EGA SUPTAB.'OBJECTIF' 'DJ/DA' ;
  617. BOOL.'J_DYNA' = EGA SUPTAB.'OBJECTIF' 'J_DYNA' ;
  618. BOOL.'DECOUPLAGE' = EGA SUPTAB.'OBJECTIF' (MOT 'DECOUPLAGE') ;
  619. * PASAPAS
  620. BOOL.'PASAPAS' = NEG GSOLU 'LINEAIRE' ;
  621. * GRANDS DEPLACEMENTS
  622. BOOL.'GRANDS_DEP' = EGA GHYPO 'GRANDS_DEPLACEMENTS' ;
  623. * MODELE DE PRESSION
  624. BOOL.'MODE_PRES' = NEG GCHAR.'PRESSION' 'AUCUN' ;
  625. * PRESSION SUR FISSURE
  626. BOOL.'PRES_FISS' = EGA GCHAR.'PRESSION' 'SUR LEVRES' ;
  627. * CHARGEMENTS THERMIQUES
  628. BOOL.'THER_DECO' = EGA GCHAR.'THERMIQUE' (MOT 'DECOUPLE') ;
  629. BOOL.'THER' = NEG GCHAR.'THERMIQUE' 'AUCUN' ;
  630. * DEFORMATIONS IMPOSEES
  631. BOOL.'DEF_IMP' = GCHAR.'DEFORMATIONS IMPOSEES' ;
  632. * ORDRE DES ELEMENTS
  633. BOOL.'EL_LIN' = EGA GELDEG 1 ;
  634. BOOL.'EL_QUA' = EGA GELDEG 2 ;
  635. * ELEMENTS XFEM
  636. BOOL.'XFEM' = EXIS MOD_MEC 'ELEM' 'XQ4R' 'XC8R' ;
  637. * ELEMENTS COQUE
  638. BOOL.'COQ' = EGA GELTYP 'STD COQUE' ;
  639. * ROTATION DE CORPS RIGIDE
  640. BOOL.'ROT_RIG' = EXIS SUPTAB 'ROTATION_RIGIDIFIANTE' ;
  641. * PERSO1
  642. SI (EXIS SUPTAB 'PERSO1') ;
  643. BOOL.'PERSO1' = SUPTAB.'PERSO1' ;
  644. SINON ;
  645. BOOL.'PERSO1' = FAUX ;
  646. FINSI ;
  647. * FROTTEMENT ENTRE LEVRES DE FISSURE
  648. BOOL.'FROT' = EXIS SUPTAB 'MODELE_FISSURE' ;
  649.  
  650.  
  651. * SAUT DE LIGNE AVANT DE RETOURNER DANS G_THETA
  652. SAUT 'LIGNE' ;
  653.  
  654. FINP OBJUTI ;
  655.  
  656.  
  657.  

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