Télécharger @clpc.procedur

Retour à la liste

Numérotation des lignes :

  1. * @CLPC PROCEDUR PV 19/01/24 21:15:01 10083
  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 (LY0 * elim0);
  43. elim SURFZ1 MAIL0 (LZ0 * 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 = SURFZ0P PLUS (0. 0. LZ0);
  113. ELIM (lz0 * elim0) SURFZ1P SURFZ1;
  114.  
  115. N0 = NBNO SURFZ0P; N0 = N0 / 2 + 1;
  116. M0 = SURFZ0P POIN N0; M1 = SURFZ1P POIN N0;
  117. turfz0p = surfz0p diff (manu poi1 m0); turfz1p = surfz1p diff (manu poi1 m1);
  118. RIGIX = RELA UX M0 - UX M1 - UX tURFZ0P + UX tURFZ1P;
  119. RIGIY = RELA UY M0 - UY M1 - UY tURFZ0P + UY tURFZ1P;
  120. RIGIZ = RELA UZ M0 - UZ M1 - UZ tURFZ0P + UZ tURFZ1P;
  121. RIGCLP = RIGCLP ET (RIGIX ET RIGIY ET RIGIZ);
  122.  
  123. *surfaces x=cte
  124. SURFX0P = SURFX0 CHAN POI1;
  125. * enlever les points deja traites
  126. surfx0p = surfx0p diff (surfx0p inte surfz0p);
  127. surfx1p = surfx0p PLUS(LX0 0. 0.);
  128. ELIM (LX0 * elim0) SURFX1P SURFX1;
  129.  
  130.  
  131. N0 = NBNO SURFX0P; N0 = N0 / 2 + 1;
  132. M0 = SURFX0P POIN N0 ; M1 = SURFX1P POIN N0 ;
  133. turfx0p = surfx0p diff (manu poi1 m0); turfx1p = surfx1p diff (manu poi1 m1);
  134. RIGIX = RELA UX M0 - UX M1 - UX tURFX0P + UX tURFX1P;
  135. RIGIY = RELA UY M0 - UY M1 - UY tURFX0P + UY tURFX1P;
  136. RIGIZ = RELA UZ M0 - UZ M1 - UZ tURFX0P + UZ tURFX1P;
  137. RIGCLP = RIGCLP ET (RIGIX ET RIGIY ET RIGIZ);
  138.  
  139. *surfaces y=cte
  140. SURFY0P = SURFY0 CHAN POI1;
  141. * enlever les points deja traites
  142. surfy0p = surfy0p diff (surfy0p inte surfz0p );
  143. surfy0p = surfy0p diff (surfy0p inte surfx0p );
  144. surfy1p = surfy0p PLUS(0. LY0 0.);
  145. ELIM (LY0 * elim0) SURFY1P SURFY1;
  146.  
  147.  
  148. N0 = NBNO SURFY0P; N0 = N0 / 2 + 1;
  149. M0 = SURFY0P POIN N0 ; M1 = SURFY1P POIN N0 ;
  150. turfy0p = surfy0p diff (manu poi1 m0); turfy1p = surfy1p diff (manu poi1 m1);
  151. RIGIX = RELA UX M0 - UX M1 - UX tURFY0P + UX tURFY1P;
  152. RIGIY = RELA UY M0 - UY M1 - UY tURFY0P + UY tURFY1P;
  153. RIGIZ = RELA UZ M0 - UZ M1 - UZ tURFY0P + UZ tURFY1P;
  154. RIGCLP = RIGCLP ET (RIGIX ET RIGIY ET RIGIZ);
  155.  
  156. FINPROC RIGCLP FCLP0;
  157. *********************************************
  158. * FIN DE LA PROCEDURE CLPC
  159. *********************************************
  160.  

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