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