Télécharger deadfonc.procedur

Retour à la liste

Numérotation des lignes :

  1. * DEADFONC PROCEDUR GOUNAND 18/10/24 21:15:01 9970
  2. ************************************************************************
  3. * NOM : DEADFONC
  4. * DESCRIPTION : La fonctionnelle de Huang à minimiser
  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, 21/03/2006, version initiale
  13. * HISTORIQUE : v1, 21/03/2006, 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. ************************************************************************
  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. 'DEBPROC' DEADFONC ;
  26. 'ARGUMENT' _mt*'MAILLAGE' ;
  27. 'ARGUMENT' gdisc*'MOT' ;
  28. 'ARGUMENT' methgau*'MOT' ;
  29. 'ARGUMENT' theta*'FLOTTANT' ;
  30. 'ARGUMENT' gamma*'FLOTTANT' ;
  31. *
  32. idim = 'VALEUR' 'DIME' ;
  33. vdim = DEADUTIL 'DIMM' _mt ;
  34. *
  35. 'ARGUMENT' met/'CHPOINT' ;
  36. lmet = 'EXISTE' met ;
  37. 'SI' lmet ;
  38. 'ARGUMENT' metdisc*'MOT' ;
  39. 'SINON' ;
  40. metdisc = 'CSTE' ;
  41. 'FINSI' ;
  42. debloi = 'CHAINE' 'AHU' ;
  43. ncmet = '/' ('*' idim ('+' idim 1)) 2 ;
  44. loi = 'CHAINE' debloi 'F' ;
  45. 'ARGUMENT' optelem/'MOT' ;
  46. *
  47. 'SI' ('EXISTE' optelem) ;
  48. 'SI' ('EGA' optelem 'ELEM') ;
  49. lelem = VRAI ;
  50. 'SINON' ;
  51. cherr = 'CHAINE' 'Option ' optelem ' inconnue' ;
  52. 'ERREUR' cherr ;
  53. 'FINSI' ;
  54. 'SINON' ;
  55. lelem = FAUX ;
  56. 'FINSI' ;
  57. *
  58. * Calcul de la fonctionnelle
  59. *
  60. numop = 1 ;
  61. numvar = 1 ;
  62. numder = vdim ;
  63. numdat = 0 ;
  64. numcof = 0 ;
  65. *
  66. A = ININLIN numop numvar numdat numcof numder ;
  67. A . 'VAR' . 1 . 'NOMDDL' = 'MOTS' 'DUMM' ;
  68. A . 'VAR' . 1 . 'DISC' = 'CSTE' ;
  69. A . 'VAR' . 1 . 'VALEUR' = 1.D0 ;
  70. *
  71. numvar = 1 ;
  72. numdat = '+' ncmet 2 ;
  73. numcof = 1 ;
  74. B = ININLIN numop numvar numdat numcof numder ;
  75. B . 'VAR' . 1 . 'NOMDDL' = 'MOTS' 'DUMM' ;
  76. B . 'VAR' . 1 . 'DISC' = 'CSTE' ;
  77. B . 'VAR' . 1 . 'VALEUR' = 1.D0 ;
  78. *
  79. idat = 0 ;
  80. 'REPETER' idi idim ;
  81. nomdat = 'CHAINE' 'G' &idi &idi ;
  82. * 'MESSAGE' ('CHAINE' 'nomdat=' nomdat) ;
  83. idat = '+' idat 1 ;
  84. B . 'DAT' . idat . 'NOMDDL' = 'MOTS' nomdat ;
  85. B . 'DAT' . idat . 'DISC' = metdisc ;
  86. 'SI' lmet ;
  87. B . 'DAT' . idat . 'VALEUR' = 'EXCO' nomdat met nomdat ;
  88. 'SINON' ;
  89. B . 'DAT' . idat . 'VALEUR' = 1.D0 ;
  90. 'FINSI' ;
  91. 'FIN' idi ;
  92. 'REPETER' idi idim ;
  93. nj = '-' idim &idi ;
  94. * 'MESSAGE' ('CHAINE' 'nj=' nj) ;
  95. 'SI' ('>EG' nj 1) ;
  96. 'REPETER' jdi nj ;
  97. * Mise en cohérence avec Castem
  98. * nomdat = 'CHAINE' 'G' &idi ('+' &idi &jdi) ;
  99. nomdat = 'CHAINE' 'G' ('+' &idi &jdi) &idi ;
  100. * 'MESSAGE' ('CHAINE' 'nomdat=' nomdat) ;
  101. idat = '+' idat 1 ;
  102. B . 'DAT' . idat . 'NOMDDL' = 'MOTS' nomdat ;
  103. B . 'DAT' . idat . 'DISC' = metdisc ;
  104. 'SI' lmet ;
  105. B . 'DAT' . idat . 'VALEUR' = 'EXCO' nomdat met nomdat ;
  106. 'SINON' ;
  107. B . 'DAT' . idat . 'VALEUR' = 0.D0 ;
  108. 'FINSI' ;
  109. 'FIN' jdi ;
  110. 'FINSI' ;
  111. 'FIN' idi ;
  112. lisdat = 'LECT' 1 'PAS' 1 'NPAS' ('-' numdat 1) ;
  113. idat = '+' idat 1 ;
  114. B . 'DAT' . idat . 'NOMDDL' = 'MOTS' 'DUMM' ;
  115. B . 'DAT' . idat . 'DISC' = 'CSTE' ;
  116. B . 'DAT' . idat . 'VALEUR' = theta ;
  117. idat = '+' idat 1 ;
  118. B . 'DAT' . idat . 'NOMDDL' = 'MOTS' 'DUMM' ;
  119. B . 'DAT' . idat . 'DISC' = 'CSTE' ;
  120. B . 'DAT' . idat . 'VALEUR' = gamma ;
  121. *
  122. B . 'COF' . 1 . 'COMPOR' = loi ;
  123. B . 'COF' . 1 . 'LDAT' = lisdat ;
  124. *
  125. A . 1 . 1 . 0 = 'LECT' ;
  126. B . 1 . 1 . 0 = 'LECT' 1 ;
  127. *
  128. vfonc = NLINP gdisc _mt A B 'EREF' methgau ;
  129. *
  130. 'SI' ('NON' lelem) ;
  131. vfonc = 'MAXIMUM' ('RESULT' vfonc) ;
  132. 'FINSI' ;
  133. *
  134. 'RESPRO' vfonc ;
  135. *
  136. * End of procedure file DEADFONC
  137. *
  138. 'FINPROC' ;
  139.  
  140.  
  141.  
  142.  
  143.  

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