* PAS_HELM PROCEDUR FD218221 24/02/07 21:15:22 11834 * * objet de la procedure : * preparation des calculs en NON_LOCAL, modele HELM * WTAB = PRECED . 'WTABLE' ; TAHELM = WTAB . 'HELMHOLTZ' ; NHELM = TAHELM . 'N_VARI_NL' ; MODHELM = WTAB.'NLOC_MODL' ; DDVA = TAHELM . 'NLOC_COVA' ; LOGVAR=FAUX; 'REPE' BH NHELM ; * nom de la variable a moyenner LEMO = TAHELM . &BH. 'NOM' ; * numero de la formulation associe a cette variable NUMFH1= &BH ; * capacite * diffusions * vecteurs unitaires des directions de diffusion * 1er vecteur associe a DH1 * 2eme vecteur associe a DH2 * 3eme vecteur associe a DH3 * existance des operateurs de Helmholtz 'SI' (LOGVAR 'OU' (('NON' LOGVAR) 'ET' ('NON' LOGHOPER)) 'OU' (('NON' LOGVAR) 'ET' ('NON' LOGHCAPA))); * recuperation du modele de Helmholtz (toujours thermique orthotrope) MOH1= TAHELM . &BH . 'H_MODELE' ; * il faut (re) construire le materiau pour cette formulation * CAPACITES 'SI' ( test0 '<EG' 0.) ; * par defaut on prend une capacite unitaire 'MESS' Chai1; 'SINON'; * on prend la capacite donnee par l utilisateur 'FINSI'; INV_CAP1 = CAP1**-1; * stockage l inverse de la capacite aux noeuds du maillage * de Helmholtz pour la normalisation de l erreur de convergence TAHELM . &BH . 'INV_CAPA' = INV_CAP1 ; * trac cap0 moh1 titr 'capa'; * trac INV_CAP1 (extr moh1 'MAIL') titr 'inv capa'; * DIFFUSIONS * calcul de la matrice de diffusion de Helmholtz sur le modele mecanique * list dif1; * trac ver11 modhelm titr 'ver11'; kr11=((dif1*(ver11*ver11))+(dif2*(ver21*ver21)))+(dif3*(ver31*ver31)); * trac kr11 modhelm titr 'kr11 avant '; kr22=((dif1*(ver12*ver12))+(dif2*(ver22*ver22)))+(dif3*(ver32*ver32)); kr33=((dif1*(ver13*ver13))+(dif2*(ver23*ver23)))+(dif3*(ver33*ver33)); kr21=((dif1*(ver12*ver11))+(dif2*(ver22*ver21)))+(dif3*(ver32*ver31)); kr31=((dif1*(ver13*ver11))+(dif2*(ver23*ver21)))+(dif3*(ver33*ver31)); kr32=((dif1*(ver13*ver12))+(dif2*(ver23*ver22)))+(dif3*(ver33*ver32)); * projection des composantes sur le modele thermique orthotrope * kr11 = 'CHAN' 'CHPO' kr11b MOH1; * kr22 = 'CHAN' 'CHPO' kr22b MOH1; * kr33 = 'CHAN' 'CHPO' kr33b MOH1; * kr21 = 'CHAN' 'CHPO' kr21b MOH1; * kr31 = 'CHAN' 'CHPO' kr31b MOH1; * kr32 = 'CHAN' 'CHPO' kr32b MOH1; * (re) construction du MATERIAU DE HELMHOLTZ * il faut connaitre la dimension 'SI' ( 'EGA' NDIM1 3 ); 'K11' KR11 'K22' KR22 'K33' KR33 'K21' KR21 'K31' KR31 'K32' KR32 'RHO' 1. 'C' CAP0; 'SINON'; 'SI' ( 'EGA' NDIM1 2); 'K11' KR11 'K22' KR22 'K21' KR21 'RHO' 1. 'C' CAP0; 'SINON'; MESS1='HELMHOLTZ NE FONCTIONNE QU EN MASSIF 2D OU 3D'; 'MESS' MESS1; 'FINS'; 'FINS'; * list mah1; * trac mah1 moh1 titre 'kr11 apres'; * MATRICE DE RIGIDITE * MATRICE DE CAPACITE * BLOCAGES EVENTUELS LOGBLOH1= FAUX ; * DEPLACEMENTS DU BLOCAGE LOGDEPH1= FAUX ; * Noms des blocages et des deplacements imposees contenus dans materiau Helmholtz (cf idmatr) * traitement si des blocages sont presents 'SI' (LOGBLOH1) ; * maillage pour le blocage * affectation du blocage * affectation du deplacement impose au blocage 'SINON'; 'FINSI'; * ASSEMBLAGE CAPA et RIGI et BLOQ dans H_OPER TAHELM . &BH . 'H_OPER' = COH1 'ET' CAH1 'ET' CLH1; 'SINON'; * ASSEMBLAGE CAPA et RIGI sans blocage TAHELM . &BH . 'H_OPER' = COH1 'ET' CAH1; 'FINSI'; * information sur la linearite du pb donnee par l utilisteur * existance des operateurs de Helmholtz 'SI' ('EGA' MIN0 1.); LOGVARL = VRAI; 'SINON'; LOGVARL = FAUX; 'FINSI'; TAHELM . &BH . 'LINEAIRE' = LOGVARL ; 'FINS'; * list TAHELM . &BH . 'H_OPER'; * trac mah1 moh1; 'FINS' ; 'FIN' BH ; 'FINPROC' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales