Télécharger g_cas.procedur

Retour à la liste

Numérotation des lignes :

  1. * G_CAS PROCEDUR JB251061 20/11/04 21:17:46 10763
  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. OBJPOSS = MOTS 'J' 'C*' 'C*H' 'DJ/DA' 'J_DYNA' 'DECOUPLAGE' ;
  328. SI (NON (EXIS OBJPOSS GOBJ)) ;
  329. MESS 'ERREUR : ON NE CONNAIT PAS L INTEGRALE SPECIFIEE' ;
  330. MESS ' A CALCULER' ;
  331. ERRE 21 ; QUIT G_CAS ;
  332. FINSI ;
  333.  
  334. * I.2.B - VERIFICATION QUE LE MATERIAU EST ISOTROPE
  335. SI (EGA GMTYPE.'ELASTIQUE' (MOT 'ELASTIQUE ANISOTROPE')) ;
  336. MESS 'ERREUR : ON NE PEUT PAS TRAITER LE CAS DE MATERIAUX ANISOTROPES.' ;
  337. ERRE 21 ; QUIT G_CAS ;
  338. FINSI ;
  339.  
  340. * I.2.C - VERIFICATION QUE L'ON A PAS A LA FOIS DES INTERFACES ET DES GRADIENTS
  341. * DE PROPRIETES
  342. SI (DISMAT ET ((DIME PGRAD) > 0)) ;
  343. MESS 'ERREUR : ON NE PEUT PAS TRAITER LE CAS DE DISCONTINUITES' ;
  344. MESS ' MATERIELLES DANS UN SOLIDE A GRADIENT DE PROPRIETES' ;
  345. ERRE 21 ; QUIT G_CAS ;
  346. FINSI ;
  347.  
  348. * I.2.D - INTERFACES (2D SEULEMENT, ET ON DOIT AVOIR AU MOINS DEUX MODELES)
  349. SI DISMAT ;
  350. SI (EGA GDIME 3) ;
  351. MESS 'ERREUR : ON NE PEUT PAS ENCORE TRAITER LES DISCONTINUITES DE' ;
  352. MESS ' PROPRIETES EN 3D' ;
  353. ERRE 21 ; QUIT G_CAS ;
  354. FINSI ;
  355. SI ((DIME SUPTAB.'MODELES_COMPOSITES') < 2) ;
  356. MESS 'ERREUR : IL FAUT AU MOINS DEUX MODELES POUR' ;
  357. MESS ' DETERMINER LA LIGNE COMMUNE D''INTERFACE' ;
  358. ERRE 21 ; QUIT G_CAS ;
  359. FINSI ;
  360. FINSI ;
  361.  
  362. * I.2.E - OBJECTIF : J
  363. SI (EGA GOBJ 'J') ;
  364. SI (EXIS GMTYPE 'FLUAGE') ;
  365. MESS 'ERREUR : ON ATTEND UN COMPORTEMENT ELASTOPLASTIQUE POUR' ;
  366. MESS ' CALCULER L''INTEGRALE J' ;
  367. ERRE 21 ; QUIT G_CAS ;
  368. FINSI ;
  369. FINSI ;
  370.  
  371. * I.2.F - OBJECTIF : C* OU C*H
  372. SI ((EGA GOBJ 'C*') OU (EGA GOBJ 'C*H')) ;
  373. SI (NON (EXIS GMTYPE 'FLUAGE')) ;
  374. MESS 'ERREUR : ON ATTEND UN COMPORTEMENT VISCOPLASTIQUE POUR' ;
  375. MESS ' CALCULER L''INTEGRALE' ' ' GOBJ ;
  376. ERRE 21 ; QUIT G_CAS ;
  377. FINSI ;
  378. SI (NEG GCHAR.'THERMIQUE' 'AUCUN') ;
  379. MESS 'ERREUR : ON NE PEUT PAS ENCORE CALCULER L''INTEGRALE' ' ' GOBJ ;
  380. MESS ' DANS LE CAS D''UN CHARGEMENT THERMIQUE' ;
  381. ERRE 21 ; QUIT G_CAS ;
  382. FINSI ;
  383. SI (NEG GHYPO 'HPP') ;
  384. MESS 'ERREUR : ON NE PEUT PAS ENCORE CALCULER L''INTEGRALE' ' ' GOBJ ;
  385. MESS ' EN GRANDS DEPLACEMENTS' ;
  386. ERRE 21 ; QUIT G_CAS ;
  387. FINSI ;
  388. SI (EGA GOBJ 'C*H') ;
  389. REPE I (DIME MVISC) ;
  390. SI ((NEG MVISC.&I 'NORTON') ET (EXIS MOD_MEC 'MATE' MVISC.&I)) ;
  391. MESS 'ERREUR : IL FAUT UN MODELE DE FLUAGE NORTON' ;
  392. MESS ' SEUL POUR CALCULER L INTEGRALE' ' ' GOBJ ;
  393. FINSI ;
  394. FIN I ;
  395. FINSI ;
  396. FINSI ;
  397.  
  398. * I.2.G - OBJECTIF : DJ/DA
  399. SI (EGA GOBJ 'DJ/DA') ;
  400. SI (EXIS GMTYPE 'FLUAGE') ;
  401. MESS 'ERREUR : ON ATTEND UN COMPORTEMENT ELASTOPLASTIQUE POUR' ;
  402. MESS ' CALCULER L''INTEGRALE DJ/DA' ;
  403. ERRE 21 ; QUIT G_CAS ;
  404. FINSI ;
  405. SI (DISMAT OU ((DIME PGRAD) > 0)) ;
  406. MESS 'ERREUR : ON NE PEUT CALCULER L''INTEGRALE DJ/DA QUE' ;
  407. MESS ' DANS LE CAS DE PROPRIETES HOMOGENES' ;
  408. ERRE 21 ; QUIT G_CAS ;
  409. FINSI ;
  410. SI (NEG GELTYP 'STD MASSIF') ;
  411. MESS 'ERREUR : ON NE PEUT CALCULER L''INTEGRALE DJ/DA QU''AVEC' ;
  412. MESS ' DES ELEMENTS STANDARDS MASSIFS' ;
  413. ERRE 21 ; QUIT G_CAS ;
  414. FINSI ;
  415. SI (NEG GHYPO 'HPP') ;
  416. MESS 'ERREUR : ON NE PEUT CALCULER L''INTEGRALE DJ/DA QUE' ;
  417. MESS ' SOUS L''HYPOTHESE DES PETITES PERTURBATIONS' ;
  418. ERRE 21 ; QUIT G_CAS ;
  419. FINSI ;
  420. SI (NON (EXIS SUPTAB 'BLOCAGES_MECANIQUES')) ;
  421. MESS 'ERREUR : IL FAUT DONNER LES BLOCAGES MECANIQUES' ;
  422. MESS ' POUR CALCULER L''INTEGRALE DJ/DA'
  423. ERRE 21 ; QUIT G_CAS ;
  424. FINSI ;
  425. FINSI ;
  426.  
  427. * I.2.H - OBJECTIF : J_DYNA
  428. SI (EGA GOBJ 'J_DYNA') ;
  429. SI ((EXIS GMTYPE 'PLASTIQUE') OU (EXIS GMTYPE 'FLUAGE')) ;
  430. MESS 'ERREUR : ON ATTEND UN COMPORTEMENT ELASTIQUE POUR CALCULER' ;
  431. MESS ' L''INTEGRALE J_DYNA' ;
  432. ERRE 21 ; QUIT G_CAS ;
  433. FINSI ;
  434. SI (NEG GSOLU (MOT 'PASAPAS DYNAMIQUE')) ;
  435. MESS 'ERREUR : ON ATTEND UNE SOLUTION DE PASAPAS DYNAMIQUE POUR' ;
  436. MESS ' CALCULER L''INTEGRALE J_DYNA' ;
  437. ERRE 21 ; QUIT G_CAS ;
  438. FINSI ;
  439. FINSI ;
  440.  
  441. * I.2.I - OBJECTIF : DECOUPLAGE
  442. SI (EGA GOBJ (MOT 'DECOUPLAGE')) ;
  443. SI ((EXIS GMTYPE 'PLASTIQUE') OU (EXIS GMTYPE 'FLUAGE')) ;
  444. MESS 'ERREUR : ON ATTEND UN COMPORTEMENT ELASTIQUE POUR UTILISER' ;
  445. MESS ' L''OPTION DECOUPLAGE' ;
  446. ERRE 21 ; QUIT G_CAS ;
  447. FINSI ;
  448. SI ((DIME PGRAD) > 0) ;
  449. MESS 'ERREUR : ON NE PEUT PAS UTILISER L''OPTION DECOUPLAGE POUR UN' ;
  450. MESS ' SOLIDE A GRADIENT DE PROPRIETES' ;
  451. ERRE 21 ; QUIT G_CAS ;
  452. FINSI ;
  453. SI (EGA GELTYP 'STD COQUE') ;
  454. MESS 'ERREUR : ON NE PEUT PAS UTILISER L''OPTION DECOUPLAGE DANS LE' ;
  455. MESS ' CAS DE COQUES' ;
  456. ERRE 21 ; QUIT G_CAS ;
  457. FINSI ;
  458. * SI IL Y A DES INTERFACES IL FAUT VERIFIER QU'ELLES SONT PARALLELES A LA
  459. * FISSURE, MAIS LA DIRECTION DE CELLE-CI EST OBTENUE APRES AVOIR CALCULE
  460. * LE CHAMP THETA, DONC CETTE VERIFICATION EST FAITE DANS G_THETA
  461. FINSI ;
  462.  
  463. * I.2.J - CONTACT ENTRE LES LEVRES : UNIQUEMENT AVEC RESO ET XFEM
  464. SI BCONT ;
  465. SI (NEG GSOLU 'LINEAIRE') ;
  466. MESS 'ERREUR : CONTACT ENTRE LES LEVRES NON PREVU AVEC UNE SOLUTION' ;
  467. MESS ' DE PASAPAS' ;
  468. ERRE 21 ; QUIT G_CAS ;
  469. FINSI ;
  470. SI (NEG GELTYP (MOT 'XFEM')) ;
  471. MESS 'ERREUR : CONTACT ENTRE LES LEVRES NON PREVU AVEC DES ELEMENTS' ;
  472. MESS ' STANDARDS' ;
  473. ERRE 21 ; QUIT G_CAS ;
  474. FINSI ;
  475. FINSI ;
  476.  
  477. * I.2.K - ON VERIFIE QU'IL N'Y A PAS DE GRADIENT DE COEFFICIENT DE POISSON
  478. SI (EXIS PGRAD 'NU') ;
  479. MESS 'ERREUR : ON NE SAIT PAS ENCORE TRAITER LA PRESENCE D''UN GRADIENT' ;
  480. MESS ' DE COEFFICIENT DE POISSON' ;
  481. ERRE 21 ; QUIT G_CAS ;
  482. FINSI ;
  483.  
  484.  
  485. * I.3 - VERIFICATION DES DONNEES NECESSAIRES
  486. * ******************************************
  487.  
  488. * I.3.A - FRONT DE FISSURE
  489. SI (NON (EXIS SUPTAB 'FRONT_FISSURE')) ;
  490. MESS 'ERREUR : ON VEUT LE FRONT DE LA FISSURE' ;
  491. ERRE 21 ; QUIT G_CAS ;
  492. FINSI ;
  493. M_FRONT = SUPTAB.'FRONT_FISSURE' ;
  494. SI ((NEG (TYPE M_FRONT) 'MAILLAGE') ET (NEG (TYPE M_FRONT) 'POINT')) ;
  495. MESS 'ERREUR : LE FRONT DE FISSURE DOIT ETRE DE TYPE MAILLAGE OU POINT' ;
  496. ERRE 21 ; QUIT G_CAS ;
  497. FINSI ;
  498. SI (EGA (TYPE M_FRONT) 'POINT') ;
  499. M_FRONT = MANU 'POI1' M_FRONT ;
  500. FINSI ;
  501. M_FRONT = M_FRONT COUL 'OLIV' ;
  502.  
  503. * I.3.B - FISSURE_2 ET SON FRONT POUR DJ/DA
  504. SI (EGA GOBJ 'DJ/DA') ;
  505. SI ((EXIS SUPTAB 'FISSURE_2') OU (EXIS SUPTAB 'FRONT_FISSURE_2')) ;
  506. SI (NON (EXIS SUPTAB 'FISSURE_2')) ;
  507. MESS 'ERREUR : ON VEUT AUSSI LA FISSURE 2 POUR CALCULER' ;
  508. MESS ' LES TERMES CROISES DE LA MATRICE' ;
  509. ERRE 21 ; QUIT G_CAS ;
  510. FINSI ;
  511. SI (NON (EXIS SUPTAB 'FRONT_FISSURE_2')) ;
  512. MESS 'ERREUR : ON VEUT AUSSI LE FROND DE LA FISSURE 2 POUR' ;
  513. MESS ' CALCULER LES TERMES CROISES DE LA MATRICE' ;
  514. ERRE 21 ; QUIT G_CAS ;
  515. FINSI ;
  516. SINON ;
  517. SI (EGA SUPTAB.'COUCHE' 0) ;
  518. MESS 'ERREUR : LE NOMBRE DE COUCHES DOIT ETRE SUPERIEUR A' ;
  519. MESS ' 0 POUR LE CALCUL DU TERME PRINCIPAL DJi/DAi' ;
  520. ERRE 21 ; QUIT G_CAS ;
  521. FINSI ;
  522. FINSI ;
  523. FINSI ;
  524.  
  525. * I.3.C - PRESSION OBLIGATOIRE SI CALCUL LINEAIRE ET MODELE DE PRESSION
  526. SI ((NEG GCHAR.'PRESSION' 'AUCUN') ET (EGA GSOLU 'LINEAIRE')) ;
  527. SI (NON (EXIS SUPTAB 'PRESSION')) ;
  528. MESS 'ERREUR : IL MANQUE LA DONNEE DU CHAMP DE PRESSION' ;
  529. ERRE 21 ; QUIT G_CAS ;
  530. FINSI ;
  531. FINSI ;
  532.  
  533. * I.3.D - VERIFICATION QU'ON A LE CHARGEMENT SI SOLUTION LINEAIRE
  534. SI (EGA GSOLU 'LINEAIRE') ;
  535. SI ((EGA GCHAR.'THERMIQUE' 'AUCUN')
  536. ET (EGA GCHAR.'PRESSION' 'AUCUN')
  537. ET (NON GCHAR.'MECANIQUE')
  538. ET (NON GCHAR.'DEFORMATIONS IMPOSEES')) ;
  539. MESS 'ERREUR : IL FAUT LES CHARGEMENTS APPLIQUES :' ;
  540. MESS ' MECANIQUES, THERMIQUES OU LES DEUX' ;
  541. ERRE 21 ; QUIT G_CAS ;
  542. FINSI ;
  543. FINSI ;
  544.  
  545. * I.3.E - DEFINITION DE LA FISSURE NECESSAIRE
  546. SI (EGA GELTYP (MOT 'XFEM')) ;
  547. SI (NON ((EXIS SUPTAB 'PSI') ET (EXIS SUPTAB 'PHI'))) ;
  548. MESS 'ERREUR : ON VEUT PSI et PHI LEVELSET DE LA FISSURE' ;
  549. ERRE 21 ; QUIT G_CAS ;
  550. FINSI ;
  551. SINON ;
  552. SI (EGA GT_OBJ 'DECOUPLAGE') ;
  553. SI (NON ((EXIS SUPTAB 'LEVRE_SUPERIEURE') ET
  554. (EXIS SUPTAB 'LEVRE_INFERIEURE'))) ;
  555. MESS 'ERREUR : L''OBJECTIF DECOUPLAGE NECESSITE LES DEUX' ;
  556. MESS ' LEVRES DE LA FISSURE' ;
  557. ERRE 21 ; QUIT G_CAS ;
  558. FINSI ;
  559. SINON ;
  560. SI (NON ((EXIS SUPTAB 'LEVRE_SUPERIEURE') OU
  561. (EXIS SUPTAB 'LEVRE_INFERIEURE'))) ;
  562. MESS 'ERREUR : IL FAUT DONNER LA FISSURE' ;
  563. MESS '(LEVRE_SUPERIEURE OU LEVRE_INFERIEURE OU LES 2)' ;
  564. ERRE 21 ; QUIT G_CAS ;
  565. FINSI ;
  566. FINSI ;
  567. FINSI ;
  568.  
  569. * I.3.F - ON VERIFIE QU'ON A OU BIEN LE NOMBRE DE COUCHES OU BIEN CHAM_THETA
  570. SI (NON ((EXIS SUPTAB 'COUCHE') OU (EXIS SUPTAB 'CHAMP_THETA'))) ;
  571. MESS 'ERREUR : ON VEUT LE NOMBRE DE COUCHES D ELEMENTS' ;
  572. MESS ' AUTOUR DE LA FISSURE QUI SE DEPLACE' ;
  573. MESS ' OU LE CHAMP_THETA' ;
  574. MESS ' POUR SIMULER LA PROPAGATION DE LA FISSURE' ;
  575. ERRE 21 ; QUIT G_CAS ;
  576. FINSI ;
  577.  
  578.  
  579. * =============================================================================
  580.  
  581. * II - STOCKAGE DES INFORMATIONS POUR TRANSFERT A G_THETA
  582. * -------------------------------------------------------
  583.  
  584. * II.1 - OBJETS ET INFOS UTILES DANS OBJUTI
  585. * *****************************************
  586.  
  587. OBJUTI = TABL ;
  588. OBJUTI.'DIMENSION' = GDIME ;
  589. OBJUTI.'MODE' = GMODE ;
  590. OBJUTI.'MOD_TOT' = MOD_TOT ;
  591. OBJUTI.'MOD_MEC' = MOD_MEC ;
  592. OBJUTI.'MAT_MEC' = MAT_MEC ;
  593. OBJUTI.'MAILLAGE' = MAILLAGE ;
  594. OBJUTI.'FRONT' = M_FRONT ;
  595. SI (NEG GSOLU 'LINEAIRE') ;
  596. OBJUTI.'WTAB' = WTAB ;
  597. FINSI ;
  598.  
  599. * II.2 - BOOLEENS DANS BOOL
  600. * *************************
  601.  
  602. * OBJECTIF
  603. BOOL.'J' = EGA SUPTAB.'OBJECTIF' 'J' ;
  604. BOOL.'C*' = EGA SUPTAB.'OBJECTIF' 'C*' ;
  605. BOOL.'C*H' = EGA SUPTAB.'OBJECTIF' 'C*H' ;
  606. BOOL.'DJ/DA' = EGA SUPTAB.'OBJECTIF' 'DJ/DA' ;
  607. BOOL.'J_DYNA' = EGA SUPTAB.'OBJECTIF' 'J_DYNA' ;
  608. BOOL.'DECOUPLAGE' = EGA SUPTAB.'OBJECTIF' (MOT 'DECOUPLAGE') ;
  609. * PASAPAS
  610. BOOL.'PASAPAS' = NEG GSOLU 'LINEAIRE' ;
  611. * GRANDS DEPLACEMENTS
  612. BOOL.'GRANDS_DEP' = EGA GHYPO 'GRANDS_DEPLACEMENTS' ;
  613. * MODELE DE PRESSION
  614. BOOL.'MODE_PRES' = NEG GCHAR.'PRESSION' 'AUCUN' ;
  615. * PRESSION SUR FISSURE
  616. BOOL.'PRES_FISS' = EGA GCHAR.'PRESSION' 'SUR LEVRES' ;
  617. * CHARGEMENTS THERMIQUES
  618. BOOL.'THER_DECO' = EGA GCHAR.'THERMIQUE' (MOT 'DECOUPLE') ;
  619. BOOL.'THER' = NEG GCHAR.'THERMIQUE' 'AUCUN' ;
  620. * DEFORMATIONS IMPOSEES
  621. BOOL.'DEF_IMP' = GCHAR.'DEFORMATIONS IMPOSEES' ;
  622. * ORDRE DES ELEMENTS
  623. BOOL.'EL_LIN' = EGA GELDEG 1 ;
  624. BOOL.'EL_QUA' = EGA GELDEG 2 ;
  625. * ELEMENTS XFEM
  626. BOOL.'XFEM' = EXIS MOD_MEC 'ELEM' 'XQ4R' 'XC8R' ;
  627. * ELEMENTS COQUE
  628. BOOL.'COQ' = EGA GELTYP 'STD COQUE' ;
  629. * ROTATION DE CORPS RIGIDE
  630. BOOL.'ROT_RIG' = EXIS SUPTAB 'ROTATION_RIGIDIFIANTE' ;
  631. * PERSO1
  632. SI (EXIS SUPTAB 'PERSO1') ;
  633. BOOL.'PERSO1' = SUPTAB.'PERSO1' ;
  634. SINON ;
  635. BOOL.'PERSO1' = FAUX ;
  636. FINSI ;
  637. * FROTTEMENT ENTRE LEVRES DE FISSURE
  638. BOOL.'FROT' = EXIS SUPTAB 'MODELE_FISSURE' ;
  639.  
  640.  
  641. * SAUT DE LIGNE AVANT DE RETOURNER DANS G_THETA
  642. SAUT 'LIGNE' ;
  643.  
  644. FINP OBJUTI ;
  645.  
  646.  

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