Download @clpc.procedur

Back to the list

   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 :  

© Cast3M 2003 - All rights reserved.
Disclaimer