1 : * FCOURANT PROCEDUR GOUNAND 07/12/21 21:15:01 6010 2 : ************************************************************************ 3 : * NOM : FCOURANT 4 : * DESCRIPTION : Calcul la fonction de courant en 2D et 2D Axi 5 : * par une méthode d'éléments finis moindres carrés 6 : * 7 : * LANGAGE : GIBIANE-CAST3M 8 : * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) 9 : * mél : gounand@semt2.smts.cea.fr 10 : ********************************************************************** 11 : * VERSION : v1, 22/11/2007, version initiale 12 : * HISTORIQUE : v1, 22/11/2007, création 13 : * HISTORIQUE : 14 : * HISTORIQUE : 15 : ************************************************************************ 16 : * 17 : * Procedure fonction de courant 2D et 2D axi 18 : * - modns : modele Navier-Stokes 19 : * - disc : discretisation des champs au sommet (QUAF ou LINE) 20 : * - un : champ de vitesses 21 : * - clphi : conditions de Dirichlet sur phi 22 : * (nom de composante 'SCAL') 23 : * 24 : * en 2D, on résout : dpsi/dx = u_y 25 : * dpsi/dy = -u_x 26 : * en 2D axi , on résout : dpsi/dr = 2pi r u_z 27 : * dpsi/dz = - 2 pi r u_r 28 : * 29 : * 30 : * 31 : 'DEBPROC' FCOURANT ; 32 : * 33 : 'ARGUMENT' mquaf*'MAILLAGE' ; 34 : 'ARGUMENT' disc*'MOT' ; 35 : 'ARGUMENT' un*'CHPOINT' ; 36 : 'ARGUMENT' clphi/'CHPOINT' ; 37 : * 38 : 'SI' ('NON' ('EXISTE' clphi)) ; 39 : pref = 'POIN' ('CHANGER' mquaf 'POI1') 1 ; 40 : clphi = 'MANUEL' 'CHPO' pref 1 'SCAL' 0.D0 ; 41 : 'FINSI' ; 42 : * 43 : 'ARGUMENT' rvm/'TABLE' ; 44 : 'SI' ('NON' ('EXISTE' rvm)) ; 45 : rv = 'EQEX' ; 46 : rvm = rv . 'METHINV' ; 47 : 'FINSI' ; 48 : * 49 : dim = 'VALEUR' 'DIME' ; 50 : * 51 : 'SI' ('NEG' dim 2) ; 52 : 'ERREUR' 219 ; 53 : 'FINSI' ; 54 : * 55 : laxi = 'EGA' ('VALEUR' 'MODE') 'AXIS' ; 56 : ncx = 'MOTS' 'UX' ; ncy = 'MOTS' 'UY' ; 57 : * 58 : 'SI' laxi ; 59 : cdpr = '*' ('COORDONNEE' 1 mquaf) ('*' PI 2.D0) ; 60 : ur = 'EXCO' ncx un ; 61 : uz = 'EXCO' ncy un ; 62 : * 63 : numop = 2 ; numvar = 1 ; numdat = 0 ; 64 : numcof = 0 ; numder = 2 ; 65 : * 66 : A = ININLIN numop numvar numdat numcof numder ; 67 : A . 'VAR' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ; 68 : A . 'VAR' . 1 . 'DISC' = disc ; 69 : A . 1 . 1 . 1 = 'LECT' ; 70 : A . 2 . 1 . 2 = 'LECT' ; 71 : * 72 : numdat = 1 ; numcof = 1 ; 73 : B = ININLIN numop numvar numdat numcof numder ; 74 : B . 'VAR' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ; 75 : B . 'VAR' . 1 . 'DISC' = disc ; 76 : B . 'DAT' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ; 77 : B . 'DAT' . 1 . 'DISC' = disc ; 78 : B . 'DAT' . 1 . 'VALEUR' = cdpr ; 79 : B . 'COF' . 1 . 'COMPOR' = 'IDEN' ; 80 : B . 'COF' . 1 . 'LDAT' = 'LECT' 1 ; 81 : * 82 : B . 1 . 1 . 1 = 'LECT' 1 ; 83 : B . 2 . 1 . 2 = 'LECT' 1 ; 84 : * 85 : numvar = 2 ; 86 : C = ININLIN numop numvar numdat numcof numder ; 87 : C . 'VAR' . 1 . 'NOMDDL' = ncx ; 88 : C . 'VAR' . 1 . 'DISC' = disc ; 89 : C . 'VAR' . 1 . 'VALEUR' = '*' ur -1. ; 90 : C . 'VAR' . 2 . 'NOMDDL' = ncy ; 91 : C . 'VAR' . 2 . 'DISC' = disc ; 92 : C . 'VAR' . 2 . 'VALEUR' = uz ; 93 : C . 'DAT' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ; 94 : C . 'DAT' . 1 . 'DISC' = disc ; 95 : C . 'DAT' . 1 . 'VALEUR' = cdpr ; 96 : C . 'COF' . 1 . 'COMPOR' = 'IDEN' ; 97 : C . 'COF' . 1 . 'LDAT' = 'LECT' 1 ; 98 : * 99 : C . 1 . 2 . 0 = 'LECT' 1 ; 100 : C . 2 . 1 . 0 = 'LECT' 1 ; 101 : * 102 : mat = NLIN mquaf disc A B 'GAU7' ; 103 : mat = 'KOPS' 'RIMA' mat ; 104 : smb = NLIN mquaf disc C B 'GAU7' ; 105 : * 106 : 'SINON' ; 107 : * 108 : ux = 'EXCO' ncx un ; 109 : uy = 'EXCO' ncy un ; 110 : * 111 : numop = 2 ; numvar = 1 ; numdat = 0 ; 112 : numcof = 0 ; numder = 2 ; 113 : * 114 : A = ININLIN numop numvar numdat numcof numder ; 115 : A . 'VAR' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ; 116 : A . 'VAR' . 1 . 'DISC' = disc ; 117 : A . 1 . 1 . 1 = 'LECT' ; 118 : A . 2 . 1 . 2 = 'LECT' ; 119 : * 120 : numvar = 2 ; 121 : B = ININLIN numop numvar numdat numcof numder ; 122 : B . 'VAR' . 1 . 'NOMDDL' = ncx ; 123 : B . 'VAR' . 1 . 'DISC' = disc ; 124 : B . 'VAR' . 1 . 'VALEUR' = '*' ux -1. ; 125 : B . 'VAR' . 2 . 'NOMDDL' = ncy ; 126 : B . 'VAR' . 2 . 'DISC' = disc ; 127 : B . 'VAR' . 2 . 'VALEUR' = uy ; 128 : * 129 : B . 1 . 2 . 0 = 'LECT' ; 130 : B . 2 . 1 . 0 = 'LECT' ; 131 : * 132 : mat = NLIN mquaf disc A A 'GAU7' ; 133 : mat = 'KOPS' 'RIMA' mat ; 134 : smb = NLIN mquaf disc B A 'GAU7' ; 135 : 'FINSI' ; 136 : * 137 : psi = 'KRES' mat 'TYPI' rvm 'CLIM' clphi 'SMBR' smb ; 138 : 'RESPRO' psi ; 139 : * 140 : 'FINPROC' ; 141 :
© Cast3M 2003 - All rights reserved.
Disclaimer