Télécharger pot_scal.procedur

Retour à la liste

Numérotation des lignes :

  1. * POT_SCAL PROCEDUR CB215821 15/07/10 21:15:12 8571
  2. 'DEBPROC' POT_SCAL TABGEO*'TABLE' SOLIN/MOT ;
  3. ********************************************************************
  4. * procedure de mise en place des elements d un calcul 3d
  5. * magnetostatique potentiel scalaire reduit et total
  6. * DPHI zone de potentiel reduit
  7. * DPSI zone de potentiel total
  8. *
  9. * materiaux isotropes ou isotropes transverses
  10. * ------------------------------------------------------
  11. * ENTREES :
  12. *
  13. * TABGEO.'MU0' = permeabilité du vide
  14. *
  15. *******description du domaine dphi ( ZONE POTENTIEL REDUIT ) *******
  16. *
  17. * TABGEO.'DPHI' = maillage DPHI
  18. * TABGEO.'SEPPHI'= surface de separation avec DPSI (appartient a DPHI
  19. * exclusivement
  20. * optionnel :
  21. *
  22. * MOD1 = DPHI 'MODE' 'THERMIQUE' 'ISOTROPE' ;
  23. * RRR1 = 'CONDUC' MOD1 'K' MU0 ;
  24. *
  25. * TABGEO.'RIGCON' = RRR1 (RIGIDITE)
  26. * ceci peut permetre de passer des rigidités condensées par super
  27. * si besoin
  28. * ------------------------------------------------------
  29. * TABGEO.'POTSYM'= TAB0 table contenant des tables de conditions sur
  30. * SEPPHI et son entourage eventuel pour calcul et application
  31. * du saut de potentiel
  32. * TAB0=TABLE
  33. * TAB0.I = TABLE STN ;STN.'LGEO' = MAIL (type ligne )
  34. * STN.'MTYP' = TYPE (TBLOQ OU RENSE)
  35. * eventuellement STN.'SGEO' = MAILLAGE (surfacique)
  36. * ( geo est une portion de son contour )
  37. *
  38. *
  39. *******description du domaine dpsi ( ZONE DE POTENTIEL TOTAL ) ******
  40. *
  41. * TABB.'DPSI' = maillage de DPSI
  42. *
  43. * MATERIAUX FERRO_MAGNETIQUES :
  44. *
  45. * Il peut y avoir plusieurs zones de perméabilités différentes isotropes
  46. * ou isotropes transverses
  47. * Elles doivent etre obligatoirement dans un table indexee par les
  48. * objet modeles MODI= MODE GEO THERMIQUE ISOTROPE (ORTHOTROPE)
  49. * | TABMAT.MODI = STN ;
  50. * si materiau isotrope
  51. * | STN.'EV1' = MU1(H) courbes MU1(H) type evolution
  52. * | peut etre obtenue par H_B a partir de B(H)
  53. * Imat fois si materiau orthotrope
  54. * | STN.'EV2' = MU2(H) sortie voir H_B
  55. * | STN.'DIR1' = P1 direction associée type point
  56. * | STN.'DIR2' = P2 direction associée type point
  57. * | doit etre perpendiculaire à DIR1
  58. *
  59. * TABGEO.'TABNUSEC' = TABMAT stockage de l'ensemble de materiaux
  60. * ferro-magnetiques
  61. *
  62. * AIR APPARTENANT À CE DOMAINE :
  63. *
  64. * TABGEO.'AIRPSI' = DAIR zone geometrique correspondante
  65. * ( elle appartient a DPSI )
  66. * OU
  67. *
  68. * MOD2 = DAIR 'MODE' 'THERMIQUE' 'ISOTROPE' ;
  69. * RRRR = 'CONDUC' MOD2 'K' MU0 ;
  70. *
  71. * TABGEO.'RIGCSPSI' = RRRR (RIGIDITE)
  72. *
  73. * NOTA = RRRR peut etre traité en SUPER ELEMENT ou etre
  74. * l'assemblage de raideurs standard et se raideurs condensées.
  75. *
  76. *
  77. * TABGEO.'SEPPSI'= surface de séparation appartient a DPSI
  78. * TABGEO.'ORIG' = point ou on impose PHI = PSI sur SEPPHI
  79. * TABGEO.'BLOQUE' = condition limite generale (sauf super elements)
  80. * TABGEO.'BIOT' = table contenant le champ de la bobine sur DPHI
  81. * ( contruit avec l opérateur BIOT par exemple)
  82. *
  83. * ------------------------------------------------------
  84. * SOLIN si present on calcule un la solution lineaire
  85. * si absent le premier pas sera fait dans MAG_NLIN
  86. * TABGEO.'ISTEP' 2 on calcule FLHS dans un run separe
  87. * 1 on calcule tout a la fois
  88. ************************************************************************
  89. ************************************************************************
  90. MU0 = TABGEO.'MUAIR' ;
  91.  
  92. SEP_PHI= TABGEO.'SEPPHI';
  93. B_ANTI = TABGEO.'POTSYM';
  94. DPSI = TABGEO.'DPSI';
  95. DPHI = TABGEO.'DPHI' ;
  96. 'SI' ('NON' ('EXISTE' TABGEO 'ORIG' )) ;
  97. ORIG = (TABGEO.'SEPPHI ') POINT 1 ;
  98. MESS ' LE POINT REFERENCE (SAUT NUL) EST CHOISI ARBITRAIREMENT ';
  99. 'SINON' ;
  100. ORIG = TABGEO.'ORIG' ;
  101. 'OPTION' 'ERRE' 'CONTROLE' ;
  102. BBB = ( SEP_PHI 'CHAN' POI1 ) 'ELEM' 'CONT' ORIG ;
  103. 'SI' ('EGA' ( 'TYPE' BBB) 'ANNULE ') ;
  104. MESS ' ERREUR LE POINT OU POTENTIELS REDUIT ET TOTAL ' ;
  105. MESS ' SONT IDENTIQUES DOIT APPARTENIR A LA SURFACE ' ;
  106. MESS ' DE SEPARATION COTE POENTIEL REDUIT ' ;
  107. 'FIN' ;
  108. 'SINON' ;
  109. 'OPTION' 'ERREUR' 'NORMAL' ;
  110. 'FINSI' ;
  111. 'FINSI' ;
  112.  
  113. ISTEP = TABGEO.'ISTEP' ;
  114. SI ( NON ('EXISTE' TABGEO 'LLLL' ) ) ;
  115. HS = TABGEO.'BIOT';
  116.  
  117. 'MESS' ' CALCUL DU FLUX DE HS SUR LES ELEMENTS FRONTIERE ';
  118. MMOD = DPHI MODE THERMIQUE ISOTROPE ;
  119. *
  120. FLHS = (FLUX MMOD HS (MOTS BX BY BZ )) * -1. * MU0 ;
  121. *
  122. MESS ' RESULTANTE DU FLUX * MUO ' ( FLHS 'RESU' 'MAXI' ) ;
  123. 'SAUTER' 5 'LIGNES' ;
  124. 'MESS' ' COORD POINT ORIGINE INTEGRATION DE V ';
  125. 'MESS' ( coor 1 orig ) ( coor 2 orig ) ( coor 3 orig ) ;
  126. 'SAUTER' 5 'LIGNES' ;
  127. * integration sur la surface de separation de l equation de
  128. * de continuite tangentielle
  129. 'SI' ( 'EXISTE' TABGEO 'MAILSEG' ) ;
  130. MAILSEG= TABGEO.'MAILSEG';
  131. 'SINON' ;
  132. * decomposition de la surface de separation en element d aretes
  133. 'MESS' ' CALCUL DES ELEMENTS ARETES DE LA SEPARATION ';
  134. MAILSEG = 'CHAN' 'LIGNES' SEP_PHI ;
  135. UU = MAILSEG ELEM 1 ; tyu = uu nbno ;
  136. 'SI' ( 'EGA' tyu 3) ;
  137. mailseg = chan mailseg seg2 ;
  138. 'FINSI' ;
  139. TABGEO.'MAILSEG'= MAILSEG ;
  140.  
  141. 'FINSI' ;
  142. * TEMPS PLACE ;
  143. 'MESS' ' CALCUL DU SAUT DE POTENTIEL ';
  144. 'SAUTER' 4 'LIGNES' ;
  145. IMENA= 3 ;
  146. 'MESS' ' CALCUL DU SAUT DE POTENTIEL ';
  147. LLLL= IN_MINI MAILSEG HS ORIG B_ANTI;
  148. *****************!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
  149. TABGEO.'LLLL'=LLLL ;
  150. TABGEO.'FLHS'= FLHS ;
  151. 'MESS' ' FIN DE CALCUL DU SAUT DE POTENTIEL ';
  152. FINSI ;
  153.  
  154.  
  155. SI ( EGA ISTEP 1 ) ;
  156. 'SI' ( 'EXISTE' TABGEO 'DPHI' ) ;
  157. 'MESS' '***********************************************************';
  158. 'MESS' '*********** POTENTIEL REDUIT ---- POTENTIEL TOTAL *******';
  159. 'MESS' '***********************************************************';
  160.  
  161. 'SI' ('NON' ('EXISTE' TABGEO 'RIGCON')) ;
  162. 'MESS' 'CONSTRUCTION DE LA MATRICE CONSTANTE DE DPHI' ;
  163. MOD1 = DPHI 'MODE' 'THERMIQUE' 'ISOTROPE' ;
  164. MAT1 = 'MATE' MOD1 'K' MU0 ;
  165. RIGCON = 'CONDUC' MOD1 MAT1 ;
  166. 'SINON' ;
  167. RIGCON = TABGEO.'RIGCON' ;
  168. 'FINSI' ;
  169. 'SI' ('NON' ('EXISTE' TABGEO 'RIGCPSI')) ;
  170. 'SI'('EXISTE' TABGEO 'AIRPSI') ;
  171. 'MESS' 'CONSTRUCTION DE LA MATRICE CONSTANTE DE DPSI ' ;
  172. DAIR = TABGEO.'AIRPSI' ;
  173. MOD2 = DAIR 'MODE' 'THERMIQUE' 'ISOTROPE' ;
  174. MAT2 = 'MATE' MOD2 'K' MU0 ;
  175. RIGC2 = 'CONDUC' MOD2 MAT2 ;
  176. 'SINON' ;
  177. 'MESS' 'VOUS N AVEZ PAS DONNE LE DOMAINE LINEAIRE DE POT. TOTAL ' ;
  178. 'FINSI' ;
  179. 'SINON' ;
  180. RIGC2 = TABGEO.'RIGCPSI' ;
  181. 'FINSI' ;
  182.  
  183. 'SI' ('EXISTE' RIGC2 ) ;
  184. 'MESS' ' ASSEMBLAGE DES MATRICES CONSTANTES ' ;
  185. RIGCON = RIGCON ET RIGC2 ;
  186. 'FINSI' ;
  187.  
  188.  
  189. LLLL = TABGEO.'LLLL' ;
  190. FLHS = TABGEO.'FLHS' ;
  191.  
  192. *
  193. SEP_PHI = 'CHAN' 'POI1' SEP_PHI ;
  194. III = 'INDEX' B_ANTI;IDI = 'DIME' III ;
  195. IZ = 0 ;
  196. 'REPETER' IBOU IDI ;
  197. IZ = IZ + 1 ;
  198. STN = B_ANTI.IZ;GGG = 'CHAN' ( STN.'LGEO' ) 'POI1';MMM=STN.'MTYP' ;
  199. *
  200. 'SI' ( 'EGA' MMM 'RENSE') ;
  201. VAL = 'EXTR' LLLL 'SCAL' ( GGG 'POINT' 1 ) ;
  202. 'SI' ( EXISTE STN 'SGEO' ) ;
  203. GIMP = STN.'SGEO' ;
  204. BIMP = 'BLOQUER' 'T' GIMP ;FDPI = 'DEPIMP' BIMP VAL ;
  205. RIGCON = RIGCON 'ET' BIMP ;
  206. FLHS = FLHS 'ET' FDPI ;
  207. 'SI' ( 'EGA' IZ 1 ) ;
  208. ipasred = 1 ;
  209. GGZ = GGG ;
  210. 'SINON' ;
  211. GGZ = GGZ 'ET' GGG ;
  212. 'FINSI' ;
  213. 'FINSI' ;
  214. 'FINSI' ;
  215. 'FIN' IBOU ;
  216. *
  217. 'SI' ( EGA IPASRED 1 ) ;
  218. 'MESS' ' nb pts bloques par le saut' ( ggz 'NBNO') ;
  219. SEP_RED= DIFF SEP_PHI GGZ ;
  220. LLLL= ('REDU' LLLL SEP_RED ) 'NOMC' 'T';
  221. 'SINON' ;
  222. SEP_RED = SEP_PHI ;
  223. 'FINSI' ;
  224. SEP_PSI = SEP_RED 'PLUS' (0. 0. 0. ) ;
  225. ELIM .0001 DPSI SEP_PSI ;
  226.  
  227. * RELT FDEPI= SAUT_POT SEP_RED SEP_PSI LLLL ;
  228.  
  229. NNN= SEP_RED 'NBNO';
  230. MESS ' CONSTRUCTION DU SAUT DE POTENTIEL ' NNN 'POINTS';
  231. IK= 0 ;ILO= 0 ;
  232. 'REPETER' BLOC3 NNN;
  233. IK= IK + 1 ;
  234. IP=SEP_RED 'POINT' IK ;IQ= SEP_PSI 'POINT' 'PROCHE' IP ;
  235. RELP= 'RELA' 1. 'T' IP - 1. 'T' IQ ;
  236. DEPIP= 'DEPIMP' RELP ('EXTR' LLLL 'SCAL' IP);
  237. 'SI' ('EGA' ILO 0 ) ;
  238. RELT=RELP; FDEPI= DEPIP ;
  239. ILO= 1 ;
  240. 'SINON' ;
  241. REL2= RELT 'ET' RELP ;
  242. FDEPI2= FDEPI 'ET' DEPIP ;
  243. 'DETR' RELT ; RELT= REL2 ; 'DETR' FDEPI ; FDEPI= FDEPI2 ;
  244. 'DETR' RELP ;'DETR' DEPIP ;
  245. 'FINSI';
  246. 'FIN' BLOC3 ;
  247.  
  248. * RELT = 'RELA' 1. 'T' SEP_RED - 1. 'T' SEP_PSI ;
  249. * FDEPI = 'DEPIMP' RELT LLLL ;
  250.  
  251. 'MESS' ' FIN D APPLICATION DU SAUT DE POTENTIEL ';
  252.  
  253.  
  254. RIGCON = RIGCON 'ET' RELT ;RHS = FLHS 'ET' FDEPI ;
  255. *****************
  256. * LIST FSAUT ;
  257. 'SAUTER' 5 'LIGNES' ;
  258. * TEMPS PLACE ;
  259. 'SINON' ;
  260. 'SAUTER' 5 'LIGNES' ;
  261. 'MESS' '***********************************************************';
  262. 'MESS' '*********** DPHI N EXISTE PAS ???????? *******';
  263. 'MESS' '***********************************************************';
  264. 'SAUTER' 5 'LIGNES' ;
  265. 'FINSI' ;
  266. ***********
  267. *--- Creation Table des MUR Permeabilites Relatives INITIALES
  268. *
  269. 'SI' ( 'EXISTE' TABGEO 'TABNUSEC' ) ;
  270. TA_NUSEC = TABGEO.'TABNUSEC' ;
  271. 'SINON' ;
  272. 'MESS' '* PRECISER la TABLE des NUsecants = MU(H) *';
  273. 'FINSI' ;
  274. INDE_TAB = 'INDE' TA_NUSEC ;
  275. NMURI = 'DIME' TA_NUSEC ;
  276. IMURI = 0 ;
  277. 'REPETER' BOUMURI NMURI ;
  278. IMURI = IMURI + 1 ;
  279. MESS ' materiau 1 ' ;
  280. MOD_FERi = INDE_TAB.IMURI ; STI = TA_NUSEC.MOD_FERi ;
  281. list STI ;
  282. ORTT = FAUX ;
  283. 'SI' ('EXISTE' STI 'EV2' ) ;
  284. MESS ' orthotrope ' ;
  285. ORTT = VRAI ;
  286. EV2 = STI.'EV2' ; DIR2 = STI.'DIR2' ;
  287. EV1 = STI.'EV1' ; DIR1 = STI.'DIR1' ;
  288. MU1 = EXTR (EXTR EV1 ORDO ) 1 ;
  289. MU2 = EXTR ( EXTR EV2 ORDO ) 1 ;
  290. MAT_FERi= 'MATE' MOD_FERi DIRECTION DIR1 DIR2 PARALLELE
  291. 'K1' MU1 'K2' MU2 'K3' MU2 ;
  292. 'SINON' ;
  293. MESS ' isotrope ' ;
  294. EV1 = STI.'EV1' ;
  295. MU1 = EXTR (EXTR EV1 ORDO ) 1 ;
  296. MAT_FERi = 'MATE' MOD_FERi 'K' MU1 ;
  297. 'FINSI' ;
  298. *
  299. STI.KLAST = MAT_FERi ;
  300. 'SI' ( 'EGA' IMURI 1 ) ;
  301. MATFER= MAT_FERi ;
  302. OBJ_MFER = MOD_FERi ;
  303. 'SINON' ;
  304. MATFER= MATFER ET MAT_FERi ;
  305. OBJ_MFER = OBJ_MFER ET MOD_FERi ;
  306. 'FINSI' ;
  307.  
  308. 'FIN' BOUMURI ;
  309. *****************************
  310. * IL FAUT EXTRAIRE LE FER ;
  311. FER = 'EXTRA' OBJ_MFER 'MAIL';
  312. TABGEO.KLAST = MATFER ;
  313. RIGFER='CONDUC' OBJ_MFER MATFER ;
  314. *
  315. *
  316. 'SI'( 'EXISTE' TABGEO 'IMPOSE') ;
  317. 'MESS' ' CONDITION GENERALE IMPOSEE ' ;
  318. CHIMG = (TABGEO.'IMPOSE' ) 'NOMC' 'T';
  319. MAIG = 'EXTR' CHIMG 'MAILLAGE' ;
  320. RIMG = 'BLOQUER' MAIG 'T'; FPOTG= 'DEPIMP' RIMG CHIMG ;
  321. RIGCON = RIGCON 'ET' RIMG ;RHS = RHS 'ET' FPOTG ;
  322. 'FINSI' ;
  323. *
  324. 'SI' ('EXISTE' TABGEO 'BLOQUE') ;
  325. 'MESS' ' CONDITION GENERALE BLOQUEE ' ;
  326. RIGCON= RIGCON 'ET' TABGEO.'BLOQUE' ;
  327. TABGEO.'BLOCAGE' = TABGEO.'BLOQUE' ;
  328. 'FINSI' ;
  329. 'SI' ( 'EXISTE' TABGEO 'ENS' ) ;
  330. 'MESS' ' RELATIONS D ENSEMBLE ' ;
  331. STN = TABGEO.'ENS' ;
  332. III = 'INDEX' STN ;INI ='DIME' III ;
  333. IZ = 0 ;
  334. 'REPETER' BENS INI ;
  335. IZ= IZ + 1 ; RRRI = STN.IZ ;
  336. RIGCON = RIGCON 'ET' ('RELA' 'ENSE' 'T' RRRI ) ;
  337. 'FIN' BENS ;
  338. 'FINSI' ;
  339. *
  340. * RIGCON = RIGCON 'ET' RIGCPSI ;
  341. RIGT = RIGCON 'ET' RIGFER ;
  342. TABGEO.'RHS'= RHS ;
  343. TABGEO.'RIGCON'= RIGCON ;
  344. TABGEO.'RIGFER'= RIGFER ;
  345. 'SI' ( 'EXISTE' SOLIN ) ;
  346. 'MESS' '********************************************************* ';
  347. 'MESS' '***************** CALCUL LINEAIRE ******************** ';
  348. 'MESS' '****************RESOLUTION ***************************** ';
  349.  
  350. TABTPS = TEMP 'NOEC';
  351. 'MESS' 'DEBUT' TABTPS.'TEMPS_CPU'.'INITIAL';
  352. 'SI' ( 'EXIST' TABGEO 'GRAD' ) ;
  353. MESS ' GRADIENT CONJUGUE ' ;
  354. SOL0= 'RESOU' 'GRAD' RIGT RHS ;
  355. 'SINON' ;
  356. SOL0= 'RESOU' RIGT RHS ;
  357. 'FINSI' ;
  358. TABTPS = TEMP 'NOEC';
  359. 'MESS' 'FIN ' TABTPS.'TEMPS_CPU'.'INITIAL';
  360. TABGEO.'POTENTIEL'=('ENLEVER' SOL0 'LX') ;
  361. 'FINSI' ;
  362. 'SINON ';
  363. TABB.'ISTEP' = 1 ;
  364. FINSI ;
  365. 'FINPROC' ;
  366.  
  367.  
  368.  
  369.  

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