Download deadfonc.procedur

Back to the list

   1 : * DEADFONC  PROCEDUR  GOUNAND   07/07/05    21:15:21     5784           
   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 :
  15 : * HISTORIQUE :
  16 : ************************************************************************
  17 : * Prière de PRENDRE LE TEMPS de compléter les commentaires
  18 : * en cas de modification de ce sous-programme afin de faciliter
  19 : * la maintenance !
  20 : ************************************************************************
  21 : *
  22 : *
  23 : 'DEBPROC' DEADFONC ;
  24 : 'ARGUMENT' _mt*'MAILLAGE' ;
  25 : 'ARGUMENT' gdisc*'MOT' ;
  26 : 'ARGUMENT' methgau*'MOT' ;
  27 : 'ARGUMENT' theta*'FLOTTANT' ;
  28 : 'ARGUMENT' gamma*'FLOTTANT' ;
  29 : *
  30 : idim  = 'VALEUR' 'DIME' ;
  31 : vdim  = DEADUTIL 'DIMM' _mt ;
  32 : *
  33 : 'ARGUMENT' met/'CHPOINT' ;
  34 : lmet = 'EXISTE' met ;
  35 : 'SI' lmet ;
  36 :    'ARGUMENT' metdisc*'MOT' ;
  37 : 'SINON' ;
  38 :    metdisc = 'CSTE' ;
  39 : 'FINSI' ;   
  40 : debloi = 'CHAINE' 'AHU' ;
  41 : ncmet  = '/' ('*' idim ('+' idim 1)) 2 ;
  42 : loi = 'CHAINE' debloi 'F' ;
  43 : 'ARGUMENT' optelem/'MOT' ;
  44 : *
  45 : 'SI' ('EXISTE' optelem) ;
  46 :    'SI' ('EGA' optelem 'ELEM') ;
  47 :       lelem = VRAI ;
  48 :    'SINON' ;
  49 :       cherr = 'CHAINE' 'Option ' optelem ' inconnue' ;
  50 :       'ERREUR' cherr ;
  51 :    'FINSI' ;
  52 : 'SINON' ;
  53 :    lelem = FAUX ;            
  54 : 'FINSI' ;
  55 : *
  56 : * Calcul de la fonctionnelle
  57 : *
  58 : numop  = 1 ;
  59 : numvar = 1 ;
  60 : numder = vdim ;
  61 : numdat = 0 ;
  62 : numcof = 0 ;
  63 : *
  64 :    A = ININLIN numop numvar numdat numcof numder ;   
  65 :    A . 'VAR' . 1 . 'NOMDDL' = 'MOTS' 'DUMM' ;
  66 :    A . 'VAR' . 1 . 'DISC'   = 'CSTE' ;
  67 :    A . 'VAR' . 1 . 'VALEUR' = 1.D0 ;
  68 : *
  69 :    numvar = 1 ;
  70 :    numdat = '+' ncmet 2 ;
  71 :    numcof = 1 ;
  72 :    B = ININLIN numop numvar numdat numcof numder ;
  73 :    B . 'VAR' . 1 . 'NOMDDL' = 'MOTS' 'DUMM' ;
  74 :    B . 'VAR' . 1 . 'DISC'   = 'CSTE' ;
  75 :    B . 'VAR' . 1 . 'VALEUR' = 1.D0 ;
  76 : *   
  77 :    idat = 0 ;   
  78 :    'REPETER' idi idim ;
  79 :       nomdat = 'CHAINE' 'G' &idi &idi ;
  80 : *         'MESSAGE' ('CHAINE' 'nomdat=' nomdat) ;
  81 :       idat = '+' idat 1 ;
  82 :       B . 'DAT' . idat . 'NOMDDL' = 'MOTS' nomdat ;
  83 :       B . 'DAT' . idat . 'DISC'   = metdisc ;
  84 :       'SI' lmet ;
  85 :          B . 'DAT' . idat . 'VALEUR' = 'EXCO' nomdat met nomdat ;
  86 :       'SINON' ;         
  87 :          B . 'DAT' . idat . 'VALEUR' = 1.D0 ;
  88 :       'FINSI' ;         
  89 :    'FIN' idi ;
  90 :    'REPETER' idi idim ;
  91 :       nj = '-' idim &idi ;
  92 : *      'MESSAGE' ('CHAINE' 'nj=' nj) ;
  93 :       'SI' ('>EG' nj 1) ;       
  94 :          'REPETER' jdi nj ;
  95 :             nomdat = 'CHAINE' 'G' &idi ('+' &idi &jdi) ;
  96 : *               'MESSAGE' ('CHAINE' 'nomdat=' nomdat) ;
  97 :             idat = '+' idat 1 ;
  98 :             B . 'DAT' . idat . 'NOMDDL' = 'MOTS' nomdat ;
  99 :             B . 'DAT' . idat . 'DISC'   = metdisc ;
 100 :             'SI' lmet ;
 101 :                B . 'DAT' . idat . 'VALEUR' = 'EXCO' nomdat met nomdat ;
 102 :             'SINON' ;               
 103 :                B . 'DAT' . idat . 'VALEUR' = 0.D0 ;
 104 :             'FINSI' ;               
 105 :          'FIN' jdi ;            
 106 :       'FINSI' ;      
 107 :    'FIN' idi ;
 108 :    lisdat = 'LECT' 1 'PAS' 1 'NPAS' ('-' numdat 1) ;
 109 :    idat = '+' idat 1 ;
 110 :    B . 'DAT' . idat . 'NOMDDL' = 'MOTS' 'DUMM' ;
 111 :    B . 'DAT' . idat . 'DISC'   = 'CSTE' ;
 112 :    B . 'DAT' . idat . 'VALEUR' = theta ;
 113 :    idat = '+' idat 1 ;
 114 :    B . 'DAT' . idat . 'NOMDDL' = 'MOTS' 'DUMM' ;
 115 :    B . 'DAT' . idat . 'DISC'   = 'CSTE' ;
 116 :    B . 'DAT' . idat . 'VALEUR' = gamma ;
 117 : *
 118 :    B . 'COF' . 1 . 'COMPOR' = loi ;
 119 :    B . 'COF' . 1 . 'LDAT'   = lisdat ;
 120 : *   
 121 :    A . 1 . 1 . 0  = 'LECT' ;
 122 :    B . 1 . 1 . 0  = 'LECT' 1 ;
 123 : *
 124 : vfonc = 'NLIN' gdisc _mt A B 'EREF' methgau ;
 125 : *
 126 : 'SI' ('NON' lelem) ;
 127 :    vfonc = 'MAXIMUM' ('RESULT' vfonc) ;
 128 : 'FINSI' ;   
 129 : * 
 130 : 'RESPRO' vfonc ;
 131 : *
 132 : * End of procedure file DEADFONC
 133 : *
 134 : 'FINPROC' ;
 135 : 
 136 :  
 137 :  

© Cast3M 2003 - All rights reserved.
Disclaimer