Télécharger trj_met.dgibi

Retour à la liste

Numérotation des lignes :

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

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