Télécharger @clpc.procedur

Retour à la liste

Numérotation des lignes :

  1. * @CLPC PROCEDUR CHAT 11/03/28 21:15:02 6922
  2. *23456789123456789123456789123456789123456789123456789123456789123456789
  3. ****************************************************
  4. ****************************************************
  5. *
  6. * PROCEDURE POUR CONDITIONS AUX LIMITES
  7. *
  8. * PERIODIQUE EN CONTRAINTE IMPOSE
  9. *
  10. * L.GELEBART, G. TREGO 10/06
  11. ****************************************************
  12. *****************************************************
  13. DEBPROC @CLPC MAIL0*MAILLAGE CONT0*TABLE;
  14. SXX = CONT0 . 1; SYY = CONT0 . 2; SZZ = CONT0 . 3;
  15. SXY = CONT0 . 4; SXZ = CONT0 . 5; SYZ = CONT0 . 6;
  16. MOD0 = MODE MAIL0 MECANIQUE ELASTIQUE;
  17. *
  18. * Identification des points et surfaces exterieures
  19. * pour application des CL
  20. *=====================================================
  21. ENVE0 = ENVE MAIL0;
  22. elim0 = 1.e-4;
  23. ENVE_PT0 = CHANGE ENVE0 POI1;
  24. XMAX = MAXI (COOR 1 ENVE0);XMIN = MINI (COOR 1 ENVE0);
  25. YMAX = MAXI (COOR 2 ENVE0);YMIN = MINI (COOR 2 ENVE0);
  26. ZMAX = MAXI (COOR 3 ENVE0);ZMIN = MINI (COOR 3 ENVE0);
  27. LX0 = XMAX - XMIN; LY0 = YMAX - YMIN; LZ0 = ZMAX - ZMIN;
  28. PXMIN = ENVE_PT0 POIN 'PLAN'
  29. (XMIN 0. 0.) (XMIN 1. 0.) (XMIN 0. 1.) (LX0 * elim0);
  30. PYMIN = ENVE_PT0 POIN 'PLAN'
  31. (0. YMIN 0.) (1. YMIN 0.) (0. YMIN 1.) (LY0 * elim0);
  32. PZMIN = ENVE_PT0 POIN 'PLAN'
  33. (0. 0. ZMIN) (1. 0. ZMIN) (0. 1. ZMIN) (LZ0 * elim0);
  34. *
  35. SURFX0 = ENVE0 ELEM APPUYE STRICTEMENT PXMIN;
  36. SURFY0 = ENVE0 ELEM APPUYE STRICTEMENT PYMIN;
  37. SURFZ0 = ENVE0 ELEM APPUYE STRICTEMENT PZMIN;
  38. SURFX1 = SURFX0 PLUS (LX0 0. 0.);
  39. SURFY1 = SURFY0 PLUS (0. LY0 0.);
  40. SURFZ1 = SURFZ0 PLUS (0. 0. LZ0);
  41. elim SURFX1 MAIL0 (LX0 * elim0);
  42. elim SURFY1 MAIL0 (LX0 * elim0);
  43. elim SURFZ1 MAIL0 (LX0 * elim0);
  44. *
  45. A1 = ENVE_PT0 POIN PROC (XMIN YMIN ZMIN);
  46. A2 = ENVE_PT0 POIN PROC (XMAX YMIN ZMIN);
  47. A4 = ENVE_PT0 POIN PROC (XMIN YMAX ZMIN);
  48. *
  49. SX00 = LY0 * LZ0;
  50. SX0 = MESU SURFX0;
  51. SX1 = MESU SURFX1;
  52. SY00 = LX0 * LZ0;
  53. SY0 = MESU SURFY0;
  54. SY1 = MESU SURFY1;
  55. SZ00 = LX0 * LY0;
  56. SZ0 = MESU SURFZ0;
  57. SZ1 = MESU SURFZ1;
  58. *
  59. * Application des contraintes
  60. *================================
  61. test = 0;
  62. SI ((SXZ NEG 0.) OU (SYZ NEG 0.) OU (SZZ NEG 0.));
  63. FZ1 = FSUR MASS MOD0 SURFZ1 (SXZ SYZ SZZ);
  64. FZ0 = FSUR MASS MOD0 SURFZ0
  65. ((0. - SXZ) (0. - SYZ) (0. - SZZ));
  66. FZ0 = FZ0 * (SZ00 / SZ0);
  67. FZ1 = FZ1 * (SZ00 / SZ1);
  68. FCLP0 = FZ0 ET FZ1;
  69. test=1;
  70. FINSI;
  71. *
  72. SI ((SXY NEG 0.) OU (SYY NEG 0.) OU (SYZ NEG 0.));
  73. FY1 = FSUR MASS MOD0 SURFY1 (SXY SYY SYZ);
  74. FY0 = FSUR MASS MOD0 SURFY0
  75. ((0. - SXY) (0. - SYY) (0. - SYZ));
  76. FY0 = FY0 * (SY00 / SY0);
  77. FY1 = FY1 * (SY00 / SY1);
  78. SI (test EGA 1);
  79. FCLP0 = FCLP0 ET (FY0 ET FY1);
  80. SINON;
  81. FCLP0 = FY0 ET FY1;
  82. test=1;
  83. FINSI;
  84. FINSI;
  85. *
  86. SI ((SXX NEG 0.) OU (SXY NEG 0.) OU (SXZ NEG 0.));
  87. FX1 = FSUR MASS MOD0 SURFX1 (SXX SXY SXZ);
  88. FX0 = FSUR MASS MOD0 SURFX0
  89. ((0. - SXX) (0. - SXY) (0. - SXZ));
  90. FX0 = FX0 * (SX00 / SX0);
  91. FX1 = FX1 * (SX00 / SX1);
  92. SI (test EGA 1);
  93. FCLP0 = FCLP0 ET (FX0 ET FX1);
  94. SINON;
  95. FCLP0 = FX0 ET FX1;
  96. FINSI;
  97. FINSI;
  98. *
  99. * Blocage du mvt de corps rigide
  100. *===========================================
  101. BL1 = BLOQUE UX UY UZ A1;
  102. BL2 = BLOQUE UY UZ A2;
  103. BL3 = BLOQUE UZ A4;
  104. BL0 = BL1 ET (BL2 ET BL3);
  105. *BL0 = @CORIGI ENVE0;
  106. *
  107. * Application des conditions de periodicite
  108. *===========================================
  109. RIGCLP = BL0;
  110. *surfaces z=cte
  111. SURFZ0P = SURFZ0 CHAN POI1;
  112. SURFZ1P = SURFZ1 CHAN POI1;
  113. N0 = NBNO SURFZ0P;
  114. i = 0;
  115. M0 = SURFZ0P POIN 1; M1 = SURFZ1P POIN 1;
  116. REPETE BOU0 (N0 - 1);
  117. i = i + 1;
  118. P0 = SURFZ0P POIN (i + 1); P1 = SURFZ1P POIN (i + 1);
  119. RIGIX = RELA UX M0 - UX M1 - UX P0 +UX P1;
  120. RIGIY = RELA UY M0 - UY M1 - UY P0 +UY P1;
  121. RIGIZ = RELA UZ M0 - UZ M1 - UZ P0 +UZ P1;
  122. RIGCLP = RIGCLP ET (RIGIX ET RIGIY ET RIGIZ);
  123. FIN BOU0;
  124.  
  125. *surfaces x=cte
  126. SURFX0P = SURFX0 CHAN POI1;
  127. SURFX1P = SURFX1 CHAN POI1;
  128. N0 = NBNO SURFX0P;
  129. i = 0;
  130. M0 = SURFX0P POIN 1; M1 = SURFX1P POIN 1;
  131. REPETE BOU1 (N0 - 1);
  132. i = i + 1;
  133. P0 = SURFX0P POIN (i + 1); P1 = SURFX1P POIN (i + 1);
  134. RIGIX = RELA UX M0 - UX M1 - UX P0 +UX P1;
  135. RIGIY = RELA UY M0 - UY M1 - UY P0 +UY P1;
  136. RIGIZ = RELA UZ M0 - UZ M1 - UZ P0 +UZ P1;
  137. RIGCLP = RIGCLP ET (RIGIX ET RIGIY ET RIGIZ);
  138. FIN BOU1;
  139.  
  140. *surfaces y=cte
  141. SURFY0P = SURFY0 CHAN POI1;
  142. SURFY1P = SURFY1 CHAN POI1;
  143. N0 = NBNO SURFY0P;
  144. i = 0;
  145. M0 = SURFY0P POIN 1; M1 = SURFY1P POIN 1;
  146. REPETE BOU2 (N0 - 1);
  147. i = i + 1;
  148. P0 = SURFY0P POIN (i + 1); P1 = SURFY1P POIN (i + 1);
  149. RIGIX = RELA UX M0 - UX M1 - UX P0 +UX P1;
  150. RIGIY = RELA UY M0 - UY M1 - UY P0 +UY P1;
  151. RIGIZ = RELA UZ M0 - UZ M1 - UZ P0 +UZ P1;
  152. RIGCLP = RIGCLP ET (RIGIX ET RIGIY ET RIGIZ);
  153. FIN BOU2;
  154.  
  155. FINPROC RIGCLP FCLP0;
  156. *********************************************
  157. * FIN DE LA PROCEDURE CLPC
  158. *********************************************
  159.  
  160.  
  161.  

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