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 '&lt;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