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