Télécharger deadresi.procedur

Retour à la liste

Numérotation des lignes :

  1. * DEADRESI PROCEDUR GOUNAND 18/10/24 21:15:02 9970
  2. ************************************************************************
  3. * NOM : DEADRESI
  4. * DESCRIPTION : Le résidu à annuler (Huang)
  5. *
  6. *
  7. *
  8. * LANGAGE : GIBIANE-CAST3M
  9. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  10. * mél : gounand@semt2.smts.cea.fr
  11. **********************************************************************
  12. * VERSION : v1, 30/04/2007, version initiale
  13. * HISTORIQUE : v1, 30/04/2007, création
  14. * HISTORIQUE : 2018/01/22 : chgt nom composante hors diago G21 au lieu
  15. * de G12
  16. * HISTORIQUE : 2018/10/10 : NLINP au lieu de NLIN
  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. 'DEBPROC' DEADRESI ;
  27. 'ARGUMENT' _mt*'MAILLAGE' ;
  28. 'ARGUMENT' gdisc*'MOT' ;
  29. 'ARGUMENT' methgau*'MOT' ;
  30. 'ARGUMENT' theta*'FLOTTANT' ;
  31. 'ARGUMENT' gamma*'FLOTTANT' ;
  32. 'ARGUMENT' dpdua*'LISTMOTS' ;
  33. *
  34. dpdis = gdisc ;
  35. *
  36. idim = 'VALEUR' 'DIME' ;
  37. vdim = DEADUTIL 'DIMM' _mt ;
  38. *
  39. 'ARGUMENT' met/'CHPOINT' ;
  40. lmet = 'EXISTE' met ;
  41. 'SI' lmet ;
  42. 'ARGUMENT' metdisc*'MOT' ;
  43. 'SINON' ;
  44. metdisc = 'CSTE' ;
  45. 'FINSI' ;
  46. *
  47. debloi = 'CHAINE' 'AHU' ;
  48. ncmet = '/' ('*' idim ('+' idim 1)) 2 ;
  49. loi = 'CHAINE' debloi 'R' ;
  50. *
  51. 'ARGUMENT' idir/'ENTIER' ;
  52. 'SI' ('EXISTE' idir) ;
  53. ldir = 'LECT' idir ;
  54. 'SINON' ;
  55. 'ARGUMENT' ldir/'LISTENTI' ;
  56. 'SI' ('NON' ('EXISTE' ldir)) ;
  57. ldir = 'LECT' 1 'PAS' 1 idim ;
  58. 'FINSI' ;
  59. 'FINSI' ;
  60. *
  61. * Calcul du résidu
  62. *
  63. nldir = 'DIME' ldir ;
  64. *
  65. numop = '*' nldir vdim ;
  66. numder = vdim ;
  67. numvar = 1 ;
  68. numdat = 0 ;
  69. numcof = 0 ;
  70. *
  71. A = ININLIN numop numvar numdat numcof numder ;
  72. A . 'VAR' . 1 . 'NOMDDL' = 'MOTS' 'DUMM' ;
  73. A . 'VAR' . 1 . 'DISC' = 'CSTE' ;
  74. A . 'VAR' . 1 . 'VALEUR' = 1.D0 ;
  75. *
  76. numvar = idim ;
  77. numdat = '+' ncmet 2 ;
  78. numcof = '*' nldir vdim ;
  79. B = ININLIN numop numvar numdat numcof numder ;
  80. 'REPETER' ivar numvar ;
  81. B . 'VAR' . &ivar . 'NOMDDL' = 'MOTS' ('EXTRAIRE' dpdua &ivar) ;
  82. B . 'VAR' . &ivar . 'DISC' = dpdis ;
  83. 'FIN' ivar ;
  84. *
  85. idat = 0 ;
  86. 'REPETER' idi idim ;
  87. nomdat = 'CHAINE' 'G' &idi &idi ;
  88. * 'MESSAGE' ('CHAINE' 'nomdat=' nomdat) ;
  89. idat = '+' idat 1 ;
  90. B . 'DAT' . idat . 'NOMDDL' = 'MOTS' nomdat ;
  91. B . 'DAT' . idat . 'DISC' = metdisc ;
  92. 'SI' lmet ;
  93. B . 'DAT' . idat . 'VALEUR' = 'EXCO' nomdat met nomdat ;
  94. 'SINON' ;
  95. B . 'DAT' . idat . 'VALEUR' = 1.D0 ;
  96. 'FINSI' ;
  97. 'FIN' idi ;
  98. 'REPETER' idi idim ;
  99. nj = '-' idim &idi ;
  100. * 'MESSAGE' ('CHAINE' 'nj=' nj) ;
  101. 'SI' ('>EG' nj 1) ;
  102. 'REPETER' jdi nj ;
  103. * Mise en cohérence avec Castem
  104. * nomdat = 'CHAINE' 'G' &idi ('+' &idi &jdi) ;
  105. nomdat = 'CHAINE' 'G' ('+' &idi &jdi) &idi ;
  106. * 'MESSAGE' ('CHAINE' 'nomdat=' nomdat) ;
  107. idat = '+' idat 1 ;
  108. B . 'DAT' . idat . 'NOMDDL' = 'MOTS' nomdat ;
  109. B . 'DAT' . idat . 'DISC' = metdisc ;
  110. 'SI' lmet ;
  111. B . 'DAT' . idat . 'VALEUR' = 'EXCO' nomdat met nomdat ;
  112. 'SINON' ;
  113. B . 'DAT' . idat . 'VALEUR' = 0.D0 ;
  114. 'FINSI' ;
  115. 'FIN' jdi ;
  116. 'FINSI' ;
  117. 'FIN' idi ;
  118. lisdat = 'LECT' 1 'PAS' 1 'NPAS' ('-' numdat 1) ;
  119. idat = '+' idat 1 ;
  120. B . 'DAT' . idat . 'NOMDDL' = 'MOTS' 'DUMM' ;
  121. B . 'DAT' . idat . 'DISC' = 'CSTE' ;
  122. B . 'DAT' . idat . 'VALEUR' = theta ;
  123. idat = '+' idat 1 ;
  124. B . 'DAT' . idat . 'NOMDDL' = 'MOTS' 'DUMM' ;
  125. B . 'DAT' . idat . 'DISC' = 'CSTE' ;
  126. B . 'DAT' . idat . 'VALEUR' = gamma ;
  127. *
  128. iop = 0 ;
  129. 'REPETER' k nldir ;
  130. idir = 'EXTRAIRE' ldir &k ;
  131. 'REPETER' l vdim ;
  132. iop = '+' iop 1 ;
  133. A . iop . 1 . 0 = 'LECT' ;
  134. nomloi = 'CHAINE' loi idir &l ;
  135. * 'MESSAGE' ('CHAINE' 'Nomloi=' nomloi) ;
  136. B . 'COF' . iop . 'COMPOR' = nomloi ;
  137. B . 'COF' . iop . 'LDAT' = lisdat ;
  138. B . iop . idir . &l = 'LECT' iop ;
  139. 'FIN' l ;
  140. 'FIN' k ;
  141. *
  142. res = NLINP gdisc _mt A B 'EREF' methgau ;
  143. *
  144. 'RESPRO' res ;
  145. *
  146. * End of procedure file DEADRESI
  147. *
  148. 'FINPROC' ;
  149.  
  150.  
  151.  
  152.  
  153.  

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