Download diffanis.procedur

Back to the list

   1 : * DIFFANIS  PROCEDUR  GBM       04/12/22    21:15:18     4973           
   2 : *---------------------------------------------------------------------
   3 : *---------PROCEDURE DE CALCUL DE LA DISPERSIVITE----------------------
   4 : *---------------------------------------------------------------------
   5 : 'DEBP'  DIFFANIS MateDiff*'CHPOINT' typdi/'MOT' ANISO/'LOGIQUE'    ;
   6 : *  |-----------------------------------------------------------------|
   7 : *  | Généralités : DIFFANIS remet un teneur de diffusion isotrope avec
   8 : *  |               un format général anisotrope K11 K21 etc ....     |
   9 : *  |-----------------------------------------------------------------|
  10 : *  |                                                                 |
  11 : *  |-----------------------------------------------------------------|
  12 : *  |                         ENTREES                                 |
  13 : *  |-----------------------------------------------------------------|
  14 : *  |                                                                 |
  15 : *  | ANISO      LOGIQUE VRAI SI ANISOTROPE, FAUX SINON               |
  16 : *  |                                                                 |
  17 : *  | MateDiff : Tenseur de diffusion  (type iso, ..) champoint       |
  18 : *  |             de composante 'K' en isotrope, 'K11', 'K21',        |
  19 : *  |            'K22' en anisotrope 2d et  'K11', 'K21', 'K22', 'K31'|
  20 : *  |            'K32', 'K33' en anisotrope 3d. Type 'CARACTERISTIQUE'|
  21 : *  |                                                                 |
  22 : *  | typdi   si 'EFMH' calcul particulier
  23 : *  |                                                                 |
  24 : *  |-----------------------------------------------------------------|
  25 : *  |                         SORTIES                                 |
  26 : *  |-----------------------------------------------------------------|
  27 : *  |                                                                 |
  28 : *  |                                                                 |
  29 : *  | newdiff  : matrice de diffusion identique à Matediff mais écrite|
  30 : *  |            sous la forme d'un tenseur si elle était isotrope à  |
  31 : *  |            une composante K (cette composante est alors reportée|
  32 : *  |            à l'identique sur K11, K22 et K33)                   |
  33 : *  |                                                                 |
  34 : *  |                                                                 |
  35 : **********************************************************************
  36 : 
  37 : 
  38 : SI (non (EXISTE ANISO))                                                ;
  39 :    ANISO = FAUX                                                        ;
  40 : FINSI                                                                  ;
  41 : 
  42 : SI (non (EXISTE typdi))                                                ;
  43 :    typdi = 'VF'                                                        ;
  44 : FINSI                                                                  ;
  45 : 
  46 : DEANISO = 'NEG' ('DIME' ('EXTRAIRE' Matediff 'COMP')) 1                ;
  47 : 'SI' (DEANISO)                                                         ;
  48 : *  le tenseur est inchangé mais mis au type caractéristique
  49 : *  On ne garde également que les bons noms de composantes 
  50 :   'SI' ('EGA' ('VALEUR' 'DIME') 2)                                     ;
  51 :      D11P = 'EXCO' Matediff 'K11' 'K11'                                ;
  52 :      D22P = 'EXCO' Matediff 'K22' 'K22'                                ;
  53 :      D21P = 'EXCO' Matediff 'K21' 'K21'                                ;
  54 :      newdiff = D11P '+' D22P '+' D21P                                  ;
  55 :   'FINSI'                                                              ;
  56 :   'SI' ('EGA' ('VALEUR' 'DIME') 3)                                     ;
  57 :      D11P = 'EXCO' Matediff 'K11' 'K11'                                ;
  58 :      D22P = 'EXCO' Matediff 'K22' 'K22'                                ;
  59 :      D33P = 'EXCO' Matediff 'K33' 'K33'                                ;
  60 :      D21P = 'EXCO' Matediff 'K21' 'K21'                                ;
  61 :      D31P = 'EXCO' Matediff 'K31' 'K31'                                ;
  62 :      D32P = 'EXCO' Matediff 'K32' 'K32'                                ;
  63 :      newdiff = D11P '+' D22P '+' D33P '+' D21P '+' D31P '+' D32P       ;
  64 :   'FINSI'                                                              ;  
  65 : 'SINON'                                                                ;
  66 :    SI ((NEG typdi 'EFMH') OU ANISO)                                    ;
  67 : * Le tenseur est isotrope, on charge ses composantes sur la
  68 : * diagonale du tenseur de diffusion totale (qui contiendra la
  69 : * dispersion et la diffusion numérique)
  70 :      'SI' ('EGA' ('VALEUR' 'DIME') 2)                                  ;        
  71 :         D11P = 'NOMC' 'K11'  Matediff                                  ;
  72 :         D21P = 'NOMC' 'K21'  (0.0D0*Matediff)                          ; 
  73 :         D22P = 'NOMC' 'K22'  Matediff                                  ;
  74 :         newdiff = D11P '+' D22P '+' D21P                               ;
  75 :      'FINSI'                                                           ;
  76 :      'SI' ('EGA' ('VALEUR' 'DIME') 3)                                  ;
  77 :         D11P = 'NOMC' 'K11' Matediff                                   ;
  78 :         D21P = 'NOMC' 'K21' (0.0D0*Matediff)                           ; 
  79 :         D22P = 'NOMC' 'K22' Matediff                                   ;
  80 :         D31P = 'NOMC' 'K31' (0.0*Matediff)                             ;
  81 :         D32P = 'NOMC' 'K32' (0.0*Matediff)                             ; 
  82 :         D33P = 'NOMC' 'K33' Matediff                                   ;
  83 :         newdiff = D11P '+' D22P '+' D33P '+' D21P '+' D31P '+' D32P    ;
  84 :      'FINSI'                                                           ;
  85 :    'SINON'                                                             ;
  86 :       newdiff = 'NOMC' 'K' Matediff                                    ;
  87 :    'FINSI'                                                             ;
  88 : FINSI                                                                  ;
  89 : 'FINPROC' newdiff                                                      ;
  90 : 
  91 : 
  92 :  

© Cast3M 2003 - All rights reserved.
Disclaimer