Télécharger trj_met.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : trj_met.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ************************************************************************
  5. * NOM : TRJ_MET
  6. * DESCRIPTION : Test élémentaire Résidu et Jacobien avec métrique
  7. * pour 'DEDU' 'ADAP'
  8. *
  9. *
  10. * LANGAGE : GIBIANE-CAST3M
  11. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  12. * mél : gounand@semt2.smts.cea.fr
  13. **********************************************************************
  14. * VERSION : v1, 21/03/2006, version initiale
  15. * HISTORIQUE : v1, 21/03/2006, création
  16. * HISTORIQUE :
  17. * HISTORIQUE :
  18. ************************************************************************
  19. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  20. * en cas de modification de ce sous-programme afin de faciliter
  21. * la maintenance !
  22. ************************************************************************
  23. *
  24. *
  25. interact= FAUX ;
  26. *
  27. *BEGINPROCEDUR errrel
  28. ************************************************************************
  29. * NOM : ERRREL
  30. * DESCRIPTION : Calcul d'une erreur relative
  31. *
  32. *
  33. *
  34. * LANGAGE : GIBIANE-CAST3M
  35. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  36. * mél : gounand@semt2.smts.cea.fr
  37. **********************************************************************
  38. * VERSION : v1, 23/04/2003, version initiale
  39. * HISTORIQUE : v1, 23/04/2003, création
  40. * HISTORIQUE :
  41. * HISTORIQUE :
  42. ************************************************************************
  43. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  44. * en cas de modification de ce sous-programme afin de faciliter
  45. * la maintenance !
  46. ************************************************************************
  47. *
  48. *
  49. 'DEBPROC' ERRREL ;
  50. 'ARGUMENT' val*'FLOTTANT' ;
  51. 'ARGUMENT' valref*'FLOTTANT' ;
  52. *
  53. 'SI' ('<' ('ABS' valref) 1.D-10) ;
  54. echref = 1.D0 ;
  55. 'SINON' ;
  56. echref = valref ;
  57. 'FINSI' ;
  58. *
  59. errabs = 'ABS' ('/' ('-' val valref) echref);
  60. *
  61. 'RESPRO' errabs ;
  62. *
  63. * End of procedure file ERRREL
  64. *
  65. 'FINPROC' ;
  66. *ENDPROCEDUR errrel
  67. *
  68. eps = 1.D-8 ;
  69. eps2 = '**' eps 0.5D0 ;
  70. theta = 0.2D0 ; gamma = 2.D0 ;
  71. *
  72. dmax = 3 ;
  73. *
  74. 'REPETER' desp dmax ;
  75. dimesp = &desp ;
  76. 'MESSAGE' ('CHAINE' 'Dim. esp. = ' dimesp) ;
  77. 'OPTION' 'DIME' dimesp ;
  78. *
  79. * Maillage
  80. *
  81. 'REPETER' dmail dimesp ;
  82. dimmail = &dmail ;
  83. 'MESSAGE' ('CHAINE' 'Dim. mail. = ' dimmail) ;
  84. 'SI' ('EGA' dimmail 1) ;
  85. 'OPTION' 'ELEM' 'SEG2' ;
  86. c1 = '**' 2 0.5D0 ;
  87. c2 = PI ;
  88. SI ((VALE DIME) EGA 1);
  89. pA = 'POIN' c1 ;
  90. pB = 'POIN' c2 ;
  91. FINS;
  92. SI ((VALE DIME) EGA 2);
  93. pA = 'POIN' c1 c2 ;
  94. pB = 'POIN' c2 c1 ;
  95. FINS;
  96. SI ((VALE DIME) EGA 3);
  97. pA = 'POIN' c1 c2 c1 ;
  98. pB = 'POIN' c2 c1 c2 ;
  99. FINS;
  100. mt = 'DROIT' 1 pA pB ;
  101. 'FINSI' ;
  102. 'SI' ('EGA' dimmail 2) ;
  103. 'OPTION' 'ELEM' 'TRI3' ;
  104. c1 = '**' 2 0.5D0 ;
  105. c2 = PI ;
  106. c3 = PI '*' PI ;
  107.  
  108. SI ((VALE DIME) EGA 1);
  109. pA = 'POIN' c1 ;
  110. pB = 'POIN' c2 ;
  111. pC = 'POIN' c3 ;
  112. FINS;
  113. SI ((VALE DIME) EGA 2);
  114. pA = 'POIN' c1 c1 ;
  115. pB = 'POIN' c2 c3 ;
  116. pC = 'POIN' c3 c3 ;
  117. FINS;
  118. SI ((VALE DIME) EGA 3) ;
  119. pA = 'POIN' c1 c1 c2 ;
  120. pB = 'POIN' c2 c3 c3 ;
  121. pC = 'POIN' c3 c3 c3 ;
  122. FINS;
  123. mt = 'MANUEL' 'TRI3' pA pB pC ;
  124. 'FINSI' ;
  125. 'SI' ('EGA' dimmail 3) ;
  126. 'OPTION' 'ELEM' 'TET4' ;
  127. c1 = '**' 2 0.5D0 ;
  128. c2 = PI ;
  129. c3 = PI '*' PI ;
  130. c4 = PI '*' PI '*' c1 ;
  131. c5 = '+' 1.D0 c3 ;
  132. pA = ('+' c1 c5) c1 ('*' c1 -1.D0) ;
  133. pB = ('+' c2 c5) c3 c2 ;
  134. pC = ('+' ('*' c3 -1.D0) c5) c2 c3 ;
  135. pD = ('+' c4 c5) ('*' c4 -1.D0) c4 ;
  136. mt = 'MANUEL' 'TET4' pA pB pC pD ;
  137. 'FINSI' ;
  138. *
  139. _mt = 'CHANGER' mt 'QUAF' ;
  140. *
  141. * Inconnus et discrétisation
  142. *
  143. methgau = 'GAU7' ;
  144. gdisc = 'LINE' ;
  145. lcmpp = 'MOTS' 'UX' 'UY' 'UZ' ;
  146. lcmpd = 'MOTS' 'FX' 'FY' 'FZ' ;
  147. lext = 'LECT' 1 PAS 1 dimesp ;
  148. *
  149. incop = 'EXTRAIRE' lcmpp lext ;
  150. incod = 'EXTRAIRE' lcmpd lext ;
  151. *
  152. vdim = 'VALEUR' 'DIME' ;
  153. *
  154. 'SI' ('EGA' dimesp 1) ;
  155. lcmp = 'MOTS' 'G11' ;
  156. lval = 'PROG' 2.D0 ;
  157. 'FINSI' ;
  158. 'SI' ('EGA' dimesp 2) ;
  159. lcmp = 'MOTS' 'G11' 'G22' 'G21' ;
  160. lval = 'PROG' 2.D0 3.D0 0.47D0 ;
  161. 'FINSI' ;
  162. 'SI' ('EGA' dimesp 3) ;
  163. lcmp = 'MOTS' 'G11' 'G22' 'G33' 'G21' 'G31' 'G32' ;
  164. lval = 'PROG' 2.D0 3.D0 4.D0 0.47D0 0.53D0 0.5D0 ;
  165. 'FINSI' ;
  166. met = 'MANUEL' 'CHPO' mt lcmp lval ;
  167. *
  168. * Test du résidu
  169. *
  170. res = DEADRESI _mt gdisc methgau theta gamma incod met gdisc ;
  171. 'LISTE' res ;
  172. Ephi = DEADFONC _mt gdisc methgau theta gamma met gdisc ;
  173. unpert = 'FORME' ;
  174. *
  175. 'OPTION' 'ECHO' 0 ;
  176. 'REPETER' idim vdim ;
  177. iidim = &idim ;
  178. po = pA ;
  179. incoip = 'EXTRAIRE' incop iidim ;
  180. incoid = 'EXTRAIRE' incod iidim ;
  181. dpsi = 'MANUEL' 'CHPO' po 1 incoip eps ;
  182. * 'LISTE' dpsi ;
  183. 'FORME' dpsi ;
  184. Ephidpsi = DEADFONC _mt gdisc methgau theta gamma met gdisc ;
  185. 'FORME' unpert ;
  186. resiapp = '/' ('-' Ephidpsi Ephi) eps ;
  187. resical = 'EXTRAIRE' res incoid po ;
  188. erro = ERRREL resical resiapp ;
  189. 'MESSAGE' ('CHAINE' ' Composante ' incoid) ;
  190. 'MESSAGE' ('CHAINE' ' resiapp=' resiapp) ;
  191. 'MESSAGE' ('CHAINE' ' resical=' resical) ;
  192. 'MESSAGE' ('CHAINE' ' erro=' erro) ;
  193. 'SI' ('>' erro eps2) ;
  194. cherr = 'CHAINE' '!!!! erro=' erro ;
  195. 'ERREUR' cherr ;
  196. 'FINSI' ;
  197. 'FIN' idim ;
  198. *'OPTION' 'DONN' 5 ;
  199. *
  200. *
  201. * 'FIN' dmail ;
  202. *'FIN' desp ;
  203. *'OPTION' 'ECHO' 1 ;
  204. *'OPTION' 'DONN' 5 ;
  205. *
  206. * Test du jacobien (par morceaux)
  207. *
  208. * jac = jacob tabmod met 'TEST' ;
  209. jac = DEADKTAN _mt gdisc methgau theta gamma incop incod
  210. met gdisc ;
  211. * 'LISTE' jac ;
  212. * resunp = RESID tabmod met 'TEST';
  213. resunp = DEADRESI _mt gdisc methgau theta gamma incod met gdisc ;
  214. unpert = 'FORME' ;
  215. 'REPETER' idim vdim ;
  216. iidim = &idim ;
  217. ppert = pA ;
  218. incoip = 'EXTRAIRE' incop iidim ;
  219. incoid = 'EXTRAIRE' incod iidim ;
  220. dpsi = 'MANUEL' 'CHPO' ppert 1 incoip eps ;
  221. 'FORME' dpsi ;
  222. * resper = RESID tabmod met 'TEST' ;
  223. * resper = RESID tabmod met tyfonc ;
  224. resper = DEADRESI _mt gdisc methgau theta gamma incod
  225. met gdisc ;
  226. 'FORME' unpert ;
  227. dresapp = '/' ('-' resper resunp) eps ;
  228. dpert = 'MANUEL' 'CHPO' ppert 1 incoip 1.D0 ;
  229. drescal = '*' jac dpert ;
  230. erro = '/' ('**' ('XTX' ('-' drescal dresapp)) 0.5D0)
  231. ('**' ('XTX' drescal) 0.5D0) ;
  232. 'MESSAGE' ('CHAINE' ' Composante ' incoip) ;
  233. 'MESSAGE' ('CHAINE' ' dresapp=') ; 'LISTE' dresapp ;
  234. 'MESSAGE' ('CHAINE' ' drescal=') ; 'LISTE' drescal ;
  235. 'MESSAGE' ('CHAINE' ' erro=' erro) ;
  236. 'SI' ('>' erro eps2) ;
  237. cherr = 'CHAINE' '!!!! erro=' erro ;
  238. 'ERREUR' cherr ;
  239. 'FINSI' ;
  240. 'FIN' idim ;
  241. 'FIN' dmail ;
  242. 'FIN' desp ;
  243. 'SAUTER' 2 'LIGNE' ;
  244. 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ;
  245. 'SAUTER' 2 'LIGNE' ;
  246. 'OPTION' 'ECHO' 1 ;
  247. *
  248. 'SI' interact ;
  249. 'OPTION' 'ECHO' 1 ;
  250. 'OPTION' 'DONN' 5 ;
  251. 'FINSI' ;
  252. *
  253. * End of dgibi file TRJ_MET
  254. *
  255. 'FIN' ;
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  

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