Télécharger pas_helm.procedur

Retour à la liste

Numérotation des lignes :

  1. * PAS_HELM PROCEDUR FD218221 24/02/07 21:15:22 11834
  2. DEBPROC PAS_HELM PRECED*'TABLE' WMAT1*'MCHAML' ;
  3. *
  4. * objet de la procedure :
  5. * preparation des calculs en NON_LOCAL, modele HELM
  6. *
  7. WTAB = PRECED . 'WTABLE' ;
  8. TAHELM = WTAB . 'HELMHOLTZ' ;
  9. NHELM = TAHELM . 'N_VARI_NL' ;
  10. MODHELM = WTAB.'NLOC_MODL' ;
  11. MATHELM = 'REDU' MODHELM WMAT1;
  12. DDVA = TAHELM . 'NLOC_COVA' ;
  13. LOGVAR=FAUX;
  14.  
  15. 'REPE' BH NHELM ;
  16. * nom de la variable a moyenner
  17. LEMO = TAHELM . &BH. 'NOM' ;
  18. * numero de la formulation associe a cette variable
  19. NUMFH1= &BH ;
  20. * capacite
  21. MOTHC0 = 'CHAI' 'CAP' NUMFH1;
  22. LOGVAR = (LOGVAR 'OU' ('EXIS' DDVA MOTHC0));
  23. * diffusions
  24. MOTHD0 = 'CHAI' 'DH' NUMFH1;
  25. MOTHD1 = 'CHAI' MOTHD0 '1';
  26. LOGVAR = (LOGVAR 'OU' ('EXIS' DDVA MOTHD1));
  27. MOTHD2 = 'CHAI' MOTHD0 '2';
  28. LOGVAR = (LOGVAR 'OU' ('EXIS' DDVA MOTHD2));
  29. MOTHD3 = 'CHAI' MOTHD0 '3';
  30. LOGVAR = (LOGVAR 'OU' ('EXIS' DDVA MOTHD3));
  31. * vecteurs unitaires des directions de diffusion
  32. MOTHV0 = 'CHAI' 'V' NUMFH1;
  33. * 1er vecteur associe a DH1
  34. MOTHV11 = 'CHAI' MOTHV0 '11';
  35. LOGVAR = (LOGVAR 'OU' ('EXIS' DDVA MOTHV11));
  36. MOTHV12 = 'CHAI' MOTHV0 '12';
  37. LOGVAR = (LOGVAR 'OU' ('EXIS' DDVA MOTHV12));
  38. MOTHV13 = 'CHAI' MOTHV0 '13';
  39. LOGVAR = (LOGVAR 'OU' ('EXIS' DDVA MOTHV13));
  40. * 2eme vecteur associe a DH2
  41. MOTHV21 = 'CHAI' MOTHV0 '21';
  42. LOGVAR = (LOGVAR 'OU' ('EXIS' DDVA MOTHV21));
  43. MOTHV22 = 'CHAI' MOTHV0 '22';
  44. LOGVAR = (LOGVAR 'OU' ('EXIS' DDVA MOTHV22));
  45. MOTHV23 = 'CHAI' MOTHV0 '23';
  46. LOGVAR = (LOGVAR 'OU' ('EXIS' DDVA MOTHV23));
  47. * 3eme vecteur associe a DH3
  48. MOTHV31 = 'CHAI' MOTHV0 '31';
  49. LOGVAR = (LOGVAR 'OU' ('EXIS' DDVA MOTHV31));
  50. MOTHV32 = 'CHAI' MOTHV0 '32';
  51. LOGVAR = (LOGVAR 'OU' ('EXIS' DDVA MOTHV32));
  52. MOTHV33 = 'CHAI' MOTHV0 '33';
  53. LOGVAR = (LOGVAR 'OU' ('EXIS' DDVA MOTHV33));
  54. * existance des operateurs de Helmholtz
  55. LOGHOPER='EXIS' TAHELM . &BH 'H_OPER';
  56. LOGHCAPA='EXIS' TAHELM . &BH 'INV_CAPA';
  57. 'SI' (LOGVAR 'OU'
  58. (('NON' LOGVAR) 'ET' ('NON' LOGHOPER)) 'OU'
  59. (('NON' LOGVAR) 'ET' ('NON' LOGHCAPA)));
  60. * recuperation du modele de Helmholtz (toujours thermique orthotrope)
  61. MOH1= TAHELM . &BH . 'H_MODELE' ;
  62. * il faut (re) construire le materiau pour cette formulation
  63. * CAPACITES
  64. test0 = 'XTX' ('EXCO' MATHELM MOTHC0 'SCAL');
  65. 'SI' ( test0 '<EG' 0.) ;
  66. * par defaut on prend une capacite unitaire
  67. CAP0=MATE MOH1 MOTHC0 1. ;
  68. chai1=CHAI 'La capacite d Helmholtz est mise a 1 pour' LEMO;
  69. 'MESS' Chai1;
  70. 'SINON';
  71. * on prend la capacite donnee par l utilisateur
  72. CAP0 = 'EXCO' MATHELM MOTHC0 'SCAL';
  73. CAP0a = 'CHAN' 'NOEUD' CAP0 MODHELM ;
  74. CAP0 = 'PROI' MOH1 CAP0a 'MINI';
  75. CAP1 = 'CHAN' 'CHPO' CAP0 MOH1;
  76. 'FINSI';
  77. INV_CAP1 = CAP1**-1;
  78. * stockage l inverse de la capacite aux noeuds du maillage
  79. * de Helmholtz pour la normalisation de l erreur de convergence
  80. TAHELM . &BH . 'INV_CAPA' = INV_CAP1 ;
  81. * trac cap0 moh1 titr 'capa';
  82. * trac INV_CAP1 (extr moh1 'MAIL') titr 'inv capa';
  83. * DIFFUSIONS
  84. dif1='EXCO' MATHELM MOTHD1 'SCAL';
  85. dif2='EXCO' MATHELM MOTHD2 'SCAL';
  86. dif3='EXCO' MATHELM MOTHD3 'SCAL';
  87. ver11='EXCO' MATHELM MOTHV11 'SCAL';
  88. ver12='EXCO' MATHELM MOTHV12 'SCAL';
  89. ver13='EXCO' MATHELM MOTHV13 'SCAL';
  90. ver21='EXCO' MATHELM MOTHV21 'SCAL';
  91. ver22='EXCO' MATHELM MOTHV22 'SCAL';
  92. ver23='EXCO' MATHELM MOTHV23 'SCAL';
  93. ver31='EXCO' MATHELM MOTHV31 'SCAL';
  94. ver32='EXCO' MATHELM MOTHV32 'SCAL';
  95. ver33='EXCO' MATHELM MOTHV33 'SCAL';
  96. * calcul de la matrice de diffusion de Helmholtz sur le modele mecanique
  97. * list dif1;
  98. * trac ver11 modhelm titr 'ver11';
  99. kr11=((dif1*(ver11*ver11))+(dif2*(ver21*ver21)))+(dif3*(ver31*ver31));
  100. * trac kr11 modhelm titr 'kr11 avant ';
  101. kr22=((dif1*(ver12*ver12))+(dif2*(ver22*ver22)))+(dif3*(ver32*ver32));
  102. kr33=((dif1*(ver13*ver13))+(dif2*(ver23*ver23)))+(dif3*(ver33*ver33));
  103. kr21=((dif1*(ver12*ver11))+(dif2*(ver22*ver21)))+(dif3*(ver32*ver31));
  104. kr31=((dif1*(ver13*ver11))+(dif2*(ver23*ver21)))+(dif3*(ver33*ver31));
  105. kr32=((dif1*(ver13*ver12))+(dif2*(ver23*ver22)))+(dif3*(ver33*ver32));
  106. * projection des composantes sur le modele thermique orthotrope
  107. kr11a = 'CHAN' 'NOEUD' kr11 MODHELM ;
  108. kr11 = 'PROI' MOH1 kr11a 'MINI';
  109. * kr11 = 'CHAN' 'CHPO' kr11b MOH1;
  110. kr22a = 'CHAN' 'NOEUD' kr22 MODHELM ;
  111. kr22 = 'PROI' MOH1 kr22a 'MINI';
  112. * kr22 = 'CHAN' 'CHPO' kr22b MOH1;
  113. kr33a = 'CHAN' 'NOEUD' kr33 MODHELM ;
  114. kr33 = 'PROI' MOH1 kr33a 'MINI';
  115. * kr33 = 'CHAN' 'CHPO' kr33b MOH1;
  116. kr21a = 'CHAN' 'NOEUD' kr21 MODHELM ;
  117. kr21 = 'PROI' MOH1 kr21a 'MINI';
  118. * kr21 = 'CHAN' 'CHPO' kr21b MOH1;
  119. kr31a = 'CHAN' 'NOEUD' kr31 MODHELM ;
  120. kr31 = 'PROI' MOH1 kr31a 'MINI';
  121. * kr31 = 'CHAN' 'CHPO' kr31b MOH1;
  122. kr32a = 'CHAN' 'NOEUD' kr32 MODHELM ;
  123. kr32 = 'PROI' MOH1 kr32a 'MINI';
  124. * kr32 = 'CHAN' 'CHPO' kr32b MOH1;
  125. * (re) construction du MATERIAU DE HELMHOLTZ
  126. * il faut connaitre la dimension
  127. NDIM1='VALE' 'DIME';
  128. 'SI' ( 'EGA' NDIM1 3 );
  129. MAH1='MATE' MOH1 'DIRECTION' (1. 0. 0.) (0. 1. 0.)
  130. 'K11' KR11 'K22' KR22 'K33' KR33 'K21' KR21 'K31' KR31 'K32' KR32
  131. 'RHO' 1. 'C' CAP0;
  132. 'SINON';
  133. 'SI' ( 'EGA' NDIM1 2);
  134. MAH1='MATE' MOH1 'DIRECTION' (1. 0. )
  135. 'K11' KR11 'K22' KR22 'K21' KR21 'RHO' 1. 'C' CAP0;
  136. 'SINON';
  137. MESS1='HELMHOLTZ NE FONCTIONNE QU EN MASSIF 2D OU 3D';
  138. 'MESS' MESS1;
  139. 'FINS';
  140. 'FINS';
  141. * list mah1;
  142. * trac mah1 moh1 titre 'kr11 apres';
  143. * MATRICE DE RIGIDITE
  144. COH1 = 'COND' MOH1 MAH1 ;
  145. * MATRICE DE CAPACITE
  146. CAH1 = 'CAPA' MOH1 MAH1 ;
  147. * BLOCAGES EVENTUELS
  148. LOGBLOH1= FAUX ;
  149. * DEPLACEMENTS DU BLOCAGE
  150. LOGDEPH1= FAUX ;
  151. * Noms des blocages et des deplacements imposees contenus dans materiau Helmholtz (cf idmatr)
  152. MOTBLOH1='CHAI' 'BLO' NUMFH1;
  153. MOTDEPH1='CHAI' 'DEP' NUMFH1;
  154. LOGBLOH1=(LOGBLOH1 'OU' ('EXIS' DDVA MOTBLOH1));
  155. * traitement si des blocages sont presents
  156. 'SI' (LOGBLOH1) ;
  157. CHPOBLOH1 = 'EXCO' MATHELM MOTBLOH1 'SCAL';
  158. CHPOBLOH2 = 'CHAN' 'NOEUD' CHPOBLOH1 MODHELM ;
  159. CHPOBLOH3 = 'PROI' MOH1 CHPOBLOH2 'MINI';
  160. * maillage pour le blocage
  161. ZONEBLOH1='REDU' CHPOBLOH3 CHPOBLOH3;
  162. MAILBLOH1='EXTR' ZONEBLOH1 'MAIL';
  163. * affectation du blocage
  164. BLOCH1='BLOQ' MAILBLOH1 'T';
  165. * affectation du deplacement impose au blocage
  166. 'SI' ('EXIS' DDVA MOTDEPH1);
  167. DEPIH1='EXCO' MATHELM MOTDEPH1 'T';
  168. DEPIH2 = 'CHAN' 'NOEUD' DEPIH1 MODHELM ;
  169. DEPIH3 = 'PROI' MOH1 DEPIH2 'MINI';
  170. CLH1='DEPI' BLOCH1 DEPIH3;
  171. 'SINON';
  172. CLH1='DEPI' BLOCH1 0.;
  173. 'FINSI';
  174. * ASSEMBLAGE CAPA et RIGI et BLOQ dans H_OPER
  175. TAHELM . &BH . 'H_OPER' = COH1 'ET' CAH1 'ET' CLH1;
  176. 'SINON';
  177. * ASSEMBLAGE CAPA et RIGI sans blocage
  178. TAHELM . &BH . 'H_OPER' = COH1 'ET' CAH1;
  179. 'FINSI';
  180. * information sur la linearite du pb donnee par l utilisteur
  181. MOTHL0 = 'CHAI' 'LIN' NUMFH1;
  182. * existance des operateurs de Helmholtz
  183. LOGH_LINE = 'EXIS' TAHELM . &BH . 'LINEAIRE' ;
  184. 'SI' ( ('NON' LOGH_LINE) 'OU' ('EXIS' DDVA MOTHL0) );
  185. LIN0 = 'EXCO' MATHELM MOTHL0 'SCAL';
  186. MIN0 = 'MINI' LIN0;
  187. 'SI' ('EGA' MIN0 1.);
  188. LOGVARL = VRAI;
  189. 'SINON';
  190. LOGVARL = FAUX;
  191. 'FINSI';
  192. TAHELM . &BH . 'LINEAIRE' = LOGVARL ;
  193. 'FINS';
  194. * list TAHELM . &BH . 'H_OPER';
  195. * trac mah1 moh1;
  196. 'FINS' ;
  197. 'FIN' BH ;
  198. 'FINPROC' ;
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales