* G_ULTIFR PROCEDUR AF221230 18/04/20 21:15:02 9814 * * -------------------------------------------------------- * Procedure G_ULTIFR * Computation of the function g (capacity surface) for frame elements * * Developpers: * Alberto FRAU * DEN/DANS/DM2S/SEMT/EMSI * Nicolas ILE * DEN/DANS/DM2S/SEMT/EMSI * Giulia DI STEFANO * * INPUT: * TAB1.'TYPE' P_COURT P_LONG PT_COURT PT_LONG * .'NN' effort normal [FLOTTANT] * .'VY' effort tranchant selon Y [FLOTTANT] * .'VZ' effort tranchant selon Z [FLOTTANT] * .'MY' moment flechissant Y [FLOTTANT] * .'MZ' moment flechissant Z [FLOTTANT] * .'BY' Coté horizontal de la section selon Y [FLOTTANT] * .'BZ' Coté vertical de la section selon Z [FLOTTANT] * .'FCD' Resistence caracteristiques du beton [FLOTTANT] * .'FSD' Resis. caract. de l'acier direction x [FLOTTANT] * Si TYPE = P_COURT (P = poteau) * .'WSY' taux de ferraillage longitudinal selon Y * WSY=(Aferraillage * FSD)/(BY*BZ*FCD) * .'WSZ' taux de ferraillage longitudinal selon Z * WSZ=(Aferraillage * FSD)/(BY*BZ*FCD) * .'WWY' taux des cadres selon Y * WWY=(Acadres * FSD)/(BZ*distance * entre les cadres*FCD) * .'WWZ' taux des cadres selon Z * WWZ=(Acadres * FSD)/(BY*distance * entre les cadres*FCD) * .'LY' lambda Y (rapport entre la longeur libre * d'inflexion et BY) * .'LZ' lambda Z (rapport entre la longeur libre * d'inflexion et BZ) * .'XIY' distance entre les deux niveaux de ferraillage * selon Y * XIY=(BY-2*ENROBAGE)/BY * .'XIZ' distance entre les deux niveaux de ferraillage * selon Z * XIZ=(BZ-2*ENROBAGE)/BZ * * Si TYPE = P_LONG * .'PHI_LON' diametre ferraillage longitudinal * .'PHI_Y' distance selon Y du ferraillage * par rapport au centre de masse * .'PHI_Z' distance selon Z du ferraillage * par rapport au centre de masse * .'EPSI_BET' deformation du beton * .'EPSI_ACI' deformation de l'acier * .'YOUNG_ACIER' module de Young de l'acier * * Si TYPE = PT_COURT (PT = poutre) * .'WSZ' taux de ferraillage longitudinal selon Z * WSY=(Aferraillage * FSD)/(BY*BZ*FCD) * .'WWZ' taux des cadres selon Z * WWZ=(Acadres * FSD)/(BY*distance * entre les cadres*FCD) * .'LZ' lambda Z (rapport entre la longeur libre * d'inflexion et BZ) * .'XIZ' distance entre les deux niveaux de ferraillage * selon Z * XIZ=(BZ-2*ENROBAGE)/BZ * * Si TYPE = PT_LONG * .'PHI_LON' diametre ferraillage longitudinale selon x * .'PHI_Y' distance selon Y du ferraillage * par rapport au centre de masse * .'EPSI_BET' deformation du beton * .'EPSI_ACI' deformation de l'acier * .'YOUNG_ACIER' module de Young de l'acier * *OUTPUT: les valeurs de la fonction g * -------------------------------------------------------- * Controle Type d'element 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'NN'); NN1 = TAB1.'NN'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'VY'); VY1 = TAB1.'VY'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'VZ'); VZ1 = TAB1.'VZ'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'MY'); MY1 = TAB1.'MY'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'MZ'); MZ1 = TAB1.'MZ'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'BY'); BY1 = TAB1.'BY'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'BZ'); BZ1 = TAB1.'BZ'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'FCD'); FCD1 = TAB1.'FCD'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'FSD'); FSD1 = TAB1.'FSD'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; * 'SI' (('NEG' TPY1 'P_COURT') 'ET' ('NEG' TPY1 'P_LONG') 'ET' ('NEG' TPY1 'PT_COURT') 'ET' ('NEG' TPY1 'PT_LONG')); 'FINSI'; * * * ------------- Poteau Court ----------------------------- 'SI' ('EGA' TPY1 'P_COURT'); * * check sur les données d'entree 'SI' ('EXIST' TAB1 'WSY'); WSY1 = TAB1.'WSY'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'WSZ'); WSZ1 = TAB1.'WSZ'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'WWY'); WWY1 = TAB1.'WWY'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'WWZ'); WWZ1 = TAB1.'WWZ'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'LY'); LY1 = TAB1.'LY'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'LZ'); LZ1 = TAB1.'LZ'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'XIY'); XIY1 = TAB1.'XIY'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'XIZ'); XIZ1 = TAB1.'XIZ'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; * * - * * sollicitation adimensionelle NN2 = ((NN1)/((BY1*BZ1)*(FCD1))); * on change le signe pour tenir en copte la traction NN2 = ((-1.0)*(NN2)); * * on calcule les limites n1, n2, n3 et n4 pour les trois zones (dir y) NNY_L1 = ((-1.0)*(WSY1)); NNY_L2 = 0.5 - WSY1 + ((WWY1)*(LY1 - 1 + XIY1)); NNY_L3 = 0.5 + WSY1 - ((WWY1)*(LY1 + 1 - XIY1)); NNY_L4 = 1.0 + WSY1; * * on calcule les limites n1, n2, n3 et n4 pour les trois zones (dir z) NNZ_L1 = ((-1.0)*(WSZ1)); NNZ_L2 = 0.5 - WSZ1 + ((WWZ1)*(LZ1 - 1 + XIZ1)); NNZ_L3 = 0.5 + WSZ1 - ((WWZ1)*(LZ1 + 1 - XIZ1)); NNZ_L4 = 1.0 + WSZ1; * * on calcule les vmaxy et vmaxz FFIY1 = (((LY1*LY1) + 1.0)**(0.5)) - LY1; FFIZ1 = (((LZ1*LZ1) + 1.0)**(0.5)) - LZ1; VYU2 = (WWY1*XIY1) + ((0.5 - WWY1)*(FFIY1)); VZU2 = (WWZ1*XIZ1) + ((0.5 - WWZ1)*(FFIZ1)); * * pour les 3 zones (y compris la zone externe) on definie les * coeficients a, b et c de l'equation d'ordre 2 qui definie l'equation * de g (surface de capacité) - dir Y * SI (NN2 '<' NNY_L1); AA1 = 0.0; BB1 = 0.0; CC1 = ((ABS(VY1))/((BY1*BZ1)*(FCD1)))*0.1; SINON; SI ((NN2 '>EG' NNY_L1) ET (NN2 '<' NNY_L2)); AA1 = (-1.0)*((VYU2)/((NNY_L1 - NNY_L2)**(2.0))); BB1 = (-1.0)*((2.0*AA1)*(NNY_L2)); CC1 = (-1.0)*(((AA1)*(NNY_L1**2.0)) + ((BB1)*(NNY_L1))); SINON; SI ((NN2 '>EG' NNY_L2) ET (NN2 '<' NNY_L3)); AA1 = 0.0; BB1 = 0.0; CC1 = VYU2; SINON; SI ((NN2 '>EG' NNY_L3) ET (NN2 '<EG' NNY_L4)); AA1 = (-1.0)*((VYU2)/((NNY_L4 - NNY_L3)**(2.0))); BB1 = (-1.0)*((2.0*AA1)*(NNY_L3)); CC1 = (-1.0)*(((AA1)*(NNY_L4**2.0)) + ((BB1)*(NNY_L4))); SINON; AA1 = 0.0; BB1 = 0.0; CC1 = ((ABS(VY1))/((BY1*BZ1)*(FCD1)))*0.1; FINSI; FINSI; FINSI; FINSI; * * valeur de la vyo adimensionelle VYO2 = ((AA1)*(NN2**2.0)) + ((BB1)*(NN2)) + CC1; * * * pour les 3 zones (y compris la zone externe) on definie les * coeficients a, b et c de l'equation d'ordre 2 qui definie l'equation * de g (surface de capacité) - dir Z * SI (NN2 '<' NNZ_L1); AA1 = 0.0; BB1 = 0.0; CC1 = ((ABS(VZ1))/((BY1*BZ1)*(FCD1)))*0.1; SINON; SI ((NN2 '>EG' NNZ_L1) ET (NN2 '<' NNZ_L2)); AA1 = (-1.0)*((VZU2)/((NNZ_L1 - NNZ_L2)**(2.0))); BB1 = (-1.0)*((2.0*AA1)*(NNZ_L2)); CC1 = (-1.0)*(((AA1)*(NNZ_L1**2.0)) + ((BB1)*(NNZ_L1))); SINON; SI ((NN2 '>EG' NNZ_L2) ET (NN2 '<' NNZ_L3)); AA1 = 0.0; BB1 = 0.0; CC1 = VZU2; SINON; SI ((NN2 '>EG' NNZ_L3) ET (NN2 '<EG' NNZ_L4)); AA1 = (-1.0)*((VZU2)/((NNZ_L4 - NNZ_L3)**(2.0))); BB1 = (-1.0)*((2.0*AA1)*(NNZ_L3)); CC1 = (-1.0)*(((AA1)*(NNZ_L4**2.0)) + ((BB1)*(NNZ_L4))); SINON; AA1 = 0.0; BB1 = 0.0; CC1 = ((ABS(VZ1))/((BY1*BZ1)*(FCD1)))*0.1; FINSI; FINSI; FINSI; FINSI; * * * valeur de la vyo adimensionelle * VZO2 = ((AA1)*(NN2**2.0)) + ((BB1)*(NN2)) + CC1; * * valeurs de V0y et V0z VZO = ((VZO2)*((BY1*BZ1)*(FCD1))); VYO = ((VYO2)*((BY1*BZ1)*(FCD1))); * * cas particuliers si on se trouve à l'exterieurs des 3 zones au sur * le coin de la fonction g (ou à N=0) 'SI' (ABS(VYO) < 1.E-10); 'SI' ((ABS(VY1) < 1.E-10) ET (ABS(VZ1) < 1.E-10) ET ((ABS((NN2 - NNZ_L1)) '<EG' 1.E-8) 'OU' (ABS((NN2 - NNZ_L4)) '<EG' 1.E-8))); VAL1 = 0.0; 'SINON'; VAL1 = ((-1.0)*(300000.0)); 'FINSI'; 'SINON'; 'SI' (ABS(VZO) < 1.E-10); 'SI' ((ABS(VY1) < 1.E-10) ET (ABS(VZ1) < 1.E-10) ET ((ABS((NN2 - NNZ_L1)) '<EG' 1.E-8) 'OU' (ABS((NN2 - NNZ_L4)) '<EG' 1.E-8))); VAL1 = 0.0; 'SINON'; VAL1 = ((-1.0)*(300000.0)); 'FINSI'; 'SINON'; VAL1 = 1.0 - ((VY1/VYO)**(2.0)) - ((VZ1/VZO)**(2.0)); 'FINSI'; 'FINSI'; * **** Modification 'SI' ((NN2 < NNZ_L1) OU (NN2 > NNZ_L4)); VAL1 = ((-1.0)*(300000.0)); 'FINSI'; **** Modification * 'FINSI'; * ------------- Poteau Long ----------------------------- 'SI' ('EGA' TPY1 'P_LONG'); * * Controle 'SI' ('EXIST' TAB1 'PHI_LON'); LPHI1 = TAB1.'PHI_LON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'PHI_Y'); LPHIY1 = TAB1.'PHI_Y'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'PHI_Z'); LPHIZ1 = TAB1.'PHI_Z'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'EPSI_BET'); EPSC1 = TAB1.'EPSI_BET'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'EPSI_ACI'); EPSA1 = TAB1.'EPSI_ACI'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'YOUNG_ACIER'); YOU_ACI1 = TAB1.'YOUNG_ACIER'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; * * hauteur nette DY1P = BZ1 - ENR1; DZ1P = BY1 - ENR1; DY1N = BZ1 - ENR1; DZ1N = BY1 - ENR1; * * axe neutre XCY1P = ((DY1P)*((EPSC1)/(EPSC1 + EPSA1))); XCZ1P = ((DZ1P)*((EPSC1)/(EPSC1 + EPSA1))); XCY1N = ((DY1N)*((EPSC1)/(EPSC1 + EPSA1))); XCZ1N = ((DZ1N)*((EPSC1)/(EPSC1 + EPSA1))); * * Courbure FHI1YP = (EPSC1)/(XCY1P); FHI1YN = ((-1.0)*((EPSC1)/(XCY1N))); FHI1ZP = (EPSC1)/(XCZ1P); FHI1ZN = ((-1.0)*((EPSC1)/(XCZ1N))); * * Determination evolution epsilon CC1YP = (EPSC1) - ((FHI1YP)*((BZ1)/(2.0))); CC1YN = (EPSC1) - ((FHI1YN)*((BZ1)/(-2.0))); CC1ZP = (EPSC1) - ((FHI1ZP)*((BY1)/(2.0))); CC1ZN = (EPSC1) - ((FHI1ZN)*((BY1)/(-2.0))); * * Determination des deformations dans les aciers I = 1; TAB_EY1P = 'TABLE'; TAB_EZ1P = 'TABLE'; TAB_EY1N = 'TABLE'; TAB_EZ1N = 'TABLE'; I = I + 1; 'FIN' IND1; * * Determination des efforts dans les aciers TAB_SY1P = 'TABLE'; TAB_SZ1P = 'TABLE'; TAB_SY1N = 'TABLE'; TAB_SZ1N = 'TABLE'; I = 1; VAL11 = 'ABS'(TAB_EY1P. I); 'SI' (VAL11 > ((FSD1)/(YOU_ACI1))); II1 = (TAB_EY1P. I)/VAL11; TAB_SY1P. I = ((FSD1)*(II1))* 'SINON'; TAB_SY1P. I = ((YOU_ACI1)*(TAB_EY1P. I))* 'FINSI'; VAL11 = 'ABS'(TAB_EZ1P. I); 'SI' (VAL11 > ((FSD1)/(YOU_ACI1))); II1 = (TAB_EZ1P. I)/VAL11; TAB_SZ1P. I = ((FSD1)*(II1))* 'SINON'; TAB_SZ1P. I = ((YOU_ACI1)*(TAB_EZ1P. I))* 'FINSI'; VAL11 = 'ABS'(TAB_EY1N. I); 'SI' (VAL11 > ((FSD1)/(YOU_ACI1))); II1 = (TAB_EY1N. I)/VAL11; TAB_SY1N. I = ((FSD1)*(II1))* 'SINON'; TAB_SY1N. I = ((YOU_ACI1)*(TAB_EY1N. I))* 'FINSI'; VAL11 = 'ABS'(TAB_EZ1N. I); 'SI' (VAL11 > ((FSD1)/(YOU_ACI1))); II1 = (TAB_EZ1N. I)/VAL11; TAB_SZ1N. I = ((FSD1)*(II1))* 'SINON'; TAB_SZ1N. I = ((YOU_ACI1)*(TAB_EZ1N. I))* 'FINSI'; I = I + 1; 'FIN' IND1; * * Calcul N et M Balanced N_BLY1P = ((0.8)*(BY1*XCY1P))*(FCD1); N_BLZ1P = ((0.8)*(BZ1*XCZ1P))*(FCD1); N_BLY1N = ((0.8)*(BY1*XCY1N))*(FCD1); N_BLZ1N = ((0.8)*(BZ1*XCZ1N))*(FCD1); * M_BLY1P = (-1.0)*((N_BLY1P)*((BZ1/2.0) - ((0.4)*(XCY1P)))); M_BLZ1P = (-1.0)*((N_BLZ1P)*((BY1/2.0) - ((0.4)*(XCZ1P)))); M_BLY1N = (1.0)*((N_BLY1N)*((BZ1/2.0) - ((0.4)*(XCY1N)))); M_BLZ1N = (1.0)*((N_BLZ1N)*((BY1/2.0) - ((0.4)*(XCZ1N)))); * N_BLY1P = ((N_BLY1P)*(-1.0)); N_BLZ1P = ((N_BLZ1P)*(-1.0)); N_BLY1N = ((N_BLY1N)*(-1.0)); N_BLZ1N = ((N_BLZ1N)*(-1.0)); * I = 1; N_BLY1P = N_BLY1P + ((-1.0)*(TAB_SY1P. I)); N_BLZ1P = N_BLZ1P + ((-1.0)*(TAB_SZ1P. I)); N_BLY1N = N_BLY1N + ((-1.0)*(TAB_SY1N. I)); N_BLZ1N = N_BLZ1N + ((-1.0)*(TAB_SZ1N. I)); * * I = I + 1; 'FIN' IND1; * * Calcul des limites traction et compression N_TRAC = 0.0; N_COMP = 0.0; I = 1; N_TRAC = N_TRAC + (((FSD1))* N_COMP = N_COMP + (((FSD1)*(-1.0))* I = I + 1; 'FIN' IND1; N_COMP = N_COMP - ((BY1*BZ1)*(FCD1)); * * Quadrante 1 'SI' ((MY1 >EG 0.0) 'ET' (MZ1 >EG 0.0)); MBLY1_F = M_BLY1N; MBLZ1_F = M_BLZ1N; 'SI' ((ABS((ABS(MY1)) + (ABS(MZ1)))) < 1.E-10); NBL_F = 0.0; 'SINON'; NBL_F = (((N_BLY1N)*(ABS(MY1))) + ((N_BLZ1N)*(ABS(MZ1))))/ ((ABS(MY1)) + (ABS(MZ1))); 'FINSI'; 'SINON'; * Quadrante 2 'SI' ((MY1 >EG 0.0) 'ET' (MZ1 < 0.0)); MBLY1_F = M_BLY1N; MBLZ1_F = M_BLZ1P; 'SI' ((ABS((ABS(MY1)) + (ABS(MZ1)))) < 1.E-10); NBL_F = 0.0; 'SINON'; NBL_F = (((N_BLY1N)*(ABS(MY1))) + ((N_BLZ1P)*(ABS(MZ1))))/ ((ABS(MY1)) + (ABS(MZ1))); 'FINSI'; 'SINON'; * Quadrante 3 'SI' ((MY1 < 0.0) 'ET' (MZ1 < 0.0)); MBLY1_F = M_BLY1P; MBLZ1_F = M_BLZ1P; 'SI' ((ABS((ABS(MY1)) + (ABS(MZ1)))) < 1.E-10); NBL_F = 0.0; 'SINON'; NBL_F = (((N_BLY1P)*(ABS(MY1))) + ((N_BLZ1P)*(ABS(MZ1))))/ ((ABS(MY1)) + (ABS(MZ1))); 'FINSI'; 'SINON'; * Quadrante 4 'SI' ((MY1 < 0.0) 'ET' (MZ1 >EG 0.0)); MBLY1_F = M_BLY1P; MBLZ1_F = M_BLZ1N; 'SI' ((ABS((ABS(MY1)) + (ABS(MZ1)))) < 1.E-10); NBL_F = 0.0; 'SINON'; NBL_F = (((N_BLY1P)*(ABS(MY1))) + ((N_BLZ1N)*(ABS(MZ1))))/ ((ABS(MY1)) + (ABS(MZ1))); 'FINSI'; 'FINSI'; 'FINSI'; 'FINSI'; 'FINSI'; * * N0 'SI' (NN1 '<EG' NBL_F); NN0 = N_COMP; 'SINON'; NN0 = N_TRAC; 'FINSI'; * * calcul de la valeur de g VAL1 = 1.0; VAL1 = VAL1 - ((NN1 - NBL_F)/(NN0 - NBL_F)); VAL1 = VAL1 - (((MY1)/(MBLY1_F))**(1.5)); VAL1 = VAL1 - (((MZ1)/(MBLZ1_F))**(1.5)); * 'FINSI'; * * * ------------- Poutre Courte ----------------------------- 'SI' ('EGA' TPY1 'PT_COURT'); * * controle sur les inputs 'SI' ('EXIST' TAB1 'WSZ'); WSZ1 = TAB1.'WSZ'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'WWZ'); WWZ1 = TAB1.'WWZ'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'LZ'); LZ1 = TAB1.'LZ'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'XIZ'); XIZ1 = TAB1.'XIZ'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; * * effort normale adimensionelle NN2 = ((NN1)/((BY1*BZ1)*(FCD1))); NN2 = ((-1.0)*(NN2)); * * definition des limites des zones NNZ_L1 = ((-1.0)*(WSZ1)); NNZ_L2 = 0.5 - WSZ1 + ((WWZ1)*(LZ1 - 1 + XIZ1)); NNZ_L3 = 0.5 + WSZ1 - ((WWZ1)*(LZ1 + 1 - XIZ1)); NNZ_L4 = 1.0 + WSZ1; * * vzmax FFIZ1 = (((LZ1*LZ1) + 1.0)**(0.5)) - LZ1; VZU2 = (WWZ1*XIZ1) + ((0.5 - WWZ1)*(FFIZ1)); * * calcul des coef a,b et c pour la definition de v0z en fonction de n SI (NN2 '<' NNZ_L1); AA1 = 0.0; BB1 = 0.0; CC1 = ((ABS(VZ1))/((BY1*BZ1)*(FCD1)))*0.1; SINON; SI ((NN2 '>EG' NNZ_L1) ET (NN2 '<' NNZ_L2)); AA1 = (-1.0)*((VZU2)/((NNZ_L1 - NNZ_L2)**(2.0))); BB1 = (-1.0)*((2.0*AA1)*(NNZ_L2)); CC1 = (-1.0)*(((AA1)*(NNZ_L1**2.0)) + ((BB1)*(NNZ_L1))); SINON; SI ((NN2 '>EG' NNZ_L2) ET (NN2 '<' NNZ_L3)); AA1 = 0.0; BB1 = 0.0; CC1 = VZU2; SINON; SI ((NN2 '>EG' NNZ_L3) ET (NN2 '<EG' NNZ_L4)); AA1 = (-1.0)*((VZU2)/((NNZ_L4 - NNZ_L3)**(2.0))); BB1 = (-1.0)*((2.0*AA1)*(NNZ_L3)); CC1 = (-1.0)*(((AA1)*(NNZ_L4**2.0)) + ((BB1)*(NNZ_L4))); SINON; AA1 = 0.0; BB1 = 0.0; CC1 = ((ABS(VZ1))/((BY1*BZ1)*(FCD1)))*0.1; FINSI; FINSI; FINSI; FINSI; * * * * pour les 3 zones (y compris la zone externe) on definie les * coeficients a, b et c de l'equation d'ordre 2 qui definie l'equation * de g (surface de capacité) - dir Z * VZO2 = ((AA1)*(NN2**2.0)) + ((BB1)*(NN2)) + CC1; * * Vz0 VZO = ((VZO2)*((BY1*BZ1)*(FCD1))); * * calcul de g 'SI' (ABS(VZO) < 1.E-10); 'SI' ((ABS(VZ1) < 1.E-10) 'ET' ((ABS((NN2 - NNZ_L1)) '<EG' 1.E-8) 'OU' (ABS((NN2 - NNZ_L4)) '<EG' 1.E-8))); VAL1 = 0.0; 'SINON'; VAL1 = ((-1.0)*(300000.0)); 'FINSI'; 'SINON'; VAL1 = 1.0 - ((VZ1/VZO)**(2.0)); 'FINSI'; * 'FINSI'; * * * ------------- Poutre Longe ----------------------------- 'SI' ('EGA' TPY1 'PT_LONG'); * * Controle 'SI' ('EXIST' TAB1 'PHI_LON'); LPHI1 = TAB1.'PHI_LON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'PHI_Y'); LPHIY1 = TAB1.'PHI_Y'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'PHI_Z'); LPHIZ1 = TAB1.'PHI_Z'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'EPSI_BET'); EPSC1 = TAB1.'EPSI_BET'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'EPSI_ACI'); EPSA1 = TAB1.'EPSI_ACI'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'YOUNG_ACIER'); YOU_ACI1 = TAB1.'YOUNG_ACIER'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; * * hauteur nette DY1P = BZ1 - ENR1; DY1N = BZ1 - ENR1; * * axe neutre XCY1P = ((DY1P)*((EPSC1)/(EPSC1 + EPSA1))); XCY1N = ((DY1N)*((EPSC1)/(EPSC1 + EPSA1))); * * Courbure FHI1YP = (EPSC1)/(XCY1P); FHI1YN = ((-1.0)*((EPSC1)/(XCY1N))); * * Determination evolution epsilon CC1YP = (EPSC1) - ((FHI1YP)*((BZ1)/(2.0))); CC1YN = (EPSC1) - ((FHI1YN)*((BZ1)/(-2.0))); * * Determination des deformations dans les aciers I = 1; TAB_EY1P = 'TABLE'; TAB_EY1N = 'TABLE'; I = I + 1; 'FIN' IND1; * * Determination des efforts dans les aciers TAB_SY1P = 'TABLE'; TAB_SY1N = 'TABLE'; I = 1; VAL11 = 'ABS'(TAB_EY1P. I); 'SI' (VAL11 > ((FSD1)/(YOU_ACI1))); II1 = (TAB_EY1P. I)/VAL11; TAB_SY1P. I = ((FSD1)*(II1))* 'SINON'; TAB_SY1P. I = ((YOU_ACI1)*(TAB_EY1P. I))* 'FINSI'; VAL11 = 'ABS'(TAB_EY1N. I); 'SI' (VAL11 > ((FSD1)/(YOU_ACI1))); II1 = (TAB_EY1N. I)/VAL11; TAB_SY1N. I = ((FSD1)*(II1))* 'SINON'; TAB_SY1N. I = ((YOU_ACI1)*(TAB_EY1N. I))* 'FINSI'; I = I + 1; 'FIN' IND1; * * Calcul N et M Balanced N_BLY1P = ((0.8)*(BY1*XCY1P))*(FCD1); N_BLY1N = ((0.8)*(BY1*XCY1N))*(FCD1); * M_BLY1P = (-1.0)*((N_BLY1P)*((BZ1/2.0) - ((0.4)*(XCY1P)))); M_BLY1N = (1.0)*((N_BLY1N)*((BZ1/2.0) - ((0.4)*(XCY1N)))); * N_BLY1P = ((N_BLY1P)*(-1.0)); N_BLY1N = ((N_BLY1N)*(-1.0)); * I = 1; N_BLY1P = N_BLY1P + ((-1.0)*(TAB_SY1P. I)); N_BLY1N = N_BLY1N + ((-1.0)*(TAB_SY1N. I)); * * I = I + 1; 'FIN' IND1; * * Calcul des limites traction et compression N_TRAC = 0.0; N_COMP = 0.0; I = 1; N_TRAC = N_TRAC + (((FSD1))* N_COMP = N_COMP + (((FSD1)*(-1.0))* I = I + 1; 'FIN' IND1; N_COMP = N_COMP - ((BY1*BZ1)*(FCD1)); * Quadrante 1 'SI' ((MY1 >EG 0.0)); MBLY1_F = M_BLY1N; NBL_F = N_BLY1N; 'SINON'; * Quadrante 2 MBLY1_F = M_BLY1P; NBL_F = N_BLY1P; 'FINSI'; * * N0 'SI' (NN1 '<EG' NBL_F); NN0 = N_COMP; 'SINON'; NN0 = N_TRAC; 'FINSI'; * * calcul de g VAL1 = 1.0; VAL1 = VAL1 - ((NN1 - NBL_F)/(NN0 - NBL_F)); VAL1 = VAL1 - (((MY1)/(MBLY1_F))**(1.5)); * 'FINSI'; * * 'FINPROC' VAL1;
© Cast3M 2003 - Tous droits réservés.
Mentions légales