* G_ULTI2D PROCEDUR AF221230 16/11/03 21:15:04 9139 * -------------------------------------------------------- * Procedure G_ULTI2D * fonction pour la determination de la position de l'etat de contrainte S * actuel par rapport à la surface limite pour les trois couches * (externe, interne et intermediaire) selon le modele de MARTI * (voir EFFMERTI). la procedure donne en sortie la * valeur de controle VAL1. Si VAL1<0. S est en dehors du domaine ultime * VAL1>0. S est à l'intérieur du domaine ultime * * VAL1 = G_ULTI2D TAB1; * * En entree on utilise une table TAB1. Un indice de la table TAB1 * indique si la definition de la surface limite doit etre faite pour * la couche extrene, interne ou intermediaire: * * TAB1.'TYPE_COUCHE' MOT pour indiquer le type de couche * 'COUCHE_EXT' couche externe * 'COUCHE_INT' couche interne * 'COUCHE_COR' couche intermediaire * * 1er option: TAB1.'TYPE_COUCHE' = 'COUCHE_EXT' (couche externe) * ou TAB1.'TYPE_COUCHE' = 'COUCHE_INT' (couche interne) * * TAB1.'S11' Contrainte sigma_11 [FLOTTANT] * .'S22' Contrainte sigma_22 [FLOTTANT] * .'S12' Contrainte sigma_12 [FLOTTANT] * .'FCK' Resistence caracteristiques du beton [FLOTTANT] * .'FSK_1' Resis. caract. de l'acier direction x [FLOTTANT] * .'FSK_2' Resis. caract. de l'acier direction y [FLOTTANT] * .'RHO_1' taux d'acier direction x [FLOTTANT] * .'RHO_2' taux d'acier direction y [FLOTTANT] * .'GAMMA_C' coefficient gamma_c * .'ALPA_C' coefficient alpha * .'NU_C' coefficient nu * .'GAMMA_S' coefficient gamma_s * * * 2er option: TAB1.'TYPE_COUCHE' = 'COUCHE_COR' (couche interm.) * * TAB1.'T1' Contrainte sigma_11 [FLOTTANT] * .'T2' Contrainte sigma_22 [FLOTTANT] * .'FCK' Resistence caracteristique du beton [FLOTTANT] * .'FSK_T' Resis. caract. de l'acier direction x [FLOTTANT] * .'RHO_T taux d'acier direction x [FLOTTANT] * .'GAMMA_C' coefficient gamma_c * .'ALPA_C' coefficient alpha * .'NU_C' coefficient nu * .'GAMMA_S' coefficient gamma_s * .'COT_THETA' cotg(theta) - facteur cisaillement[FLOTTANT] * * * Develeppers: * Alberto FRAU * DEN/DANS/DM2S/SEMT/EMSI * Nicolas ILE * DEN/DANS/DM2S/SEMT/EMSI * * -------------------------------------------------------- * * Type of surface 'SI' ('EXIST' TAB1 'TYPE_COUCHE'); TPY1 = TAB1.'TYPE_COUCHE'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; * * 'SI' (('EGA' TPY1 'COUCHE_INT') 'OU' ('EGA' TPY1 'COUCHE_EXT')); * * ------------ Surface ultime pour les couches externes et --------- * ------------ interne du modele de MARTI ------------------------- * * controle 'SI' ('EXIST' TAB1 'S11'); X1 = TAB1.'S11'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'S22'); Y1 = TAB1.'S22'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'S12'); Z1 = TAB1.'S12'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'FCK'); FC1 = TAB1.'FCK'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'FSK_1'); FSX = TAB1.'FSK_1'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'FSK_2'); FSY = TAB1.'FSK_2'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'RHO_1'); RSX = TAB1.'RHO_1'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'RHO_2'); RSY = TAB1.'RHO_2'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'GAMMA_C'); GAMC = TAB1.'GAMMA_C'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'ALPA_C'); ALP1 = TAB1.'ALPA_C'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'NU_C'); NU1 = TAB1.'NU_C'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'GAMMA_S'); GAMS = TAB1.'GAMMA_S'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; * * Determination of resistances (Steel and concrete) FXS = ((FSX)*(RSX))/(GAMS); FYS = ((FSY)*(RSY))/(GAMS); FC = ((ALP1)*((FC1)/(GAMC))); FC = FC*NU1; * VAL1 = -10000.; * * **************************************************************** * Domain 1 **************************************************************** * 'SI' ((X1 '<EG' (FXS)) 'ET' (X1 '>EG' (FXS - FC)) 'ET' (Y1 '<EG' (FYS)) 'ET' (Y1 '>' (FYS - FC)) 'ET' ((X1 + Y1 - FXS - FYS + FC) '>EG' 0.0)); * VAL1 = ((FXS - X1)*(FYS - Y1)) - ((Z1)*(Z1)); * 'FINSI'; * **************************************************************** * Domain 2 **************************************************************** * 'SI' ((X1 '<EG' (FXS - (0.5*FC))) 'ET' (X1 '>EG' ((-1.0)*(FXS + FC))) 'ET' (Y1 '>EG' (FYS - (0.5*FC))) 'ET' (Y1 '<EG' (FYS)) 'ET' ((X1 + Y1 - FXS - FYS + FC) '<' 0.0) 'ET' ((X1 + Y1 + FXS - FYS + FC) '>EG' 0.0)); * VAL1 = ((FC - FYS + Y1)*(FYS - Y1)) - ((Z1)*(Z1)); * 'FINSI'; * **************************************************************** * Domain 3 **************************************************************** * 'SI' ((X1 '<EG' (FXS)) 'ET' (X1 '>' (FXS - (0.5*FC))) 'ET' (Y1 '>EG' ((-1.0)*(FYS + FC))) 'ET' (Y1 '<EG' (FYS - (0.5*FC))) 'ET' ((X1 + Y1 - FXS - FYS + FC) '<' 0.0) 'ET' ((X1 + Y1 - FXS + FYS + FC) '>EG' 0.0)); * VAL1 = ((FXS - X1)*(FC - FXS + X1)) - ((Z1)*(Z1)); * 'FINSI'; * **************************************************************** * Domain 4 **************************************************************** * 'SI' ((X1 '<' (FXS - (0.5*FC))) 'ET' (X1 '>EG' ((-1.0)*(FXS + (0.5*FC)))) 'ET' (Y1 '<' (FYS - (0.5*FC))) 'ET' (Y1 '>EG' ((-1.0)*(FYS + (0.5*FC))))); * VAL1 = (((FC)*(FC))/(4.0)) - ((Z1)*(Z1)); * 'FINSI'; * **************************************************************** * Domain 5 **************************************************************** * 'SI' ((X1 '<' ((-1.0)*(FXS + (0.5*FC)))) 'ET' (X1 '>EG' ((-1.0)*(FXS + (FC)))) 'ET' (Y1 '>EG' ((-1.0)*(FYS + FC))) 'ET' (Y1 '<EG' FYS) 'ET' ((X1 + Y1 + FXS - FYS + FC) '<' 0.0) 'ET' ((X1 + Y1 + FXS + FYS + FC) '>EG' 0.0)); * VAL1 = ((-1.0)*((FXS + X1)*(FC + FXS + X1))) - ((Z1)*(Z1)); * 'FINSI'; * **************************************************************** * Domain 6 **************************************************************** * 'SI' ((X1 '<EG' FXS) 'ET' (X1 '>EG' ((-1.0)*(FXS + (0.5*FC)))) 'ET' (Y1 '<' ((-1.0)*(FYS + (0.5*FC)))) 'ET' (Y1 '>EG' ((-1.0)*(FYS + (FC)))) 'ET' ((X1 + Y1 - FXS + FYS + FC) '<' 0.0) 'ET' ((X1 + Y1 + FXS + FYS + FC) '>EG' 0.0)); * VAL1 = ((-1.0)*((FYS + Y1)*(FC + FYS + Y1))) - ((Z1)*(Z1)); * 'FINSI'; * **************************************************************** * Domain 7 **************************************************************** * 'SI' ((X1 '<EG' ((1.0)*(FXS))) 'ET' (X1 '>EG' ((-1.0)*(FXS + (FC)))) 'ET' (Y1 '>EG' ((-1.0)*(FYS + (FC)))) 'ET' (Y1 '<EG' ((1.0)*(FYS))) 'ET' ((X1 + Y1 + FXS + FYS + FC) '<' 0.0)); * VAL1 = ((FC + FXS + X1)*(FC + FYS + Y1)) - ((Z1)*(Z1)); * 'FINSI'; * 'SINON'; 'SI' (('EGA' TPY1 'COUCHE_COR')); * * ------------ Surface ultime pour la couches externes et ---- * ------------ interne du modele de MARTI ------------------------- * * controle 'SI' ('EXIST' TAB1 'T1'); X1 = TAB1.'T1'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'T2'); Y1 = TAB1.'T2'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'FCK'); FC1 = TAB1.'FCK'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'FSK_T'); FST = TAB1.'FSK_T'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'RHO_T'); RST = TAB1.'RHO_T'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'GAMMA_C'); GAMC = TAB1.'GAMMA_C'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'ALPA_C'); ALP1 = TAB1.'ALPA_C'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'GAMMA_S'); GAMS = TAB1.'GAMMA_S'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'NU_C'); NU1 = TAB1.'NU_C'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; 'SI' ('EXIST' TAB1 'COT_THETA'); COTH1 = TAB1.'COT_THETA'; 'MESS' 'Input Error ...'; 'FINSI'; 'SINON'; 'MESS' 'Input Error ...'; 'FINSI'; * * 'SI' (RST > 0.0); FC = ((ALP1)*((FC1)/(GAMC))); FGA = ((((FST)*(RST))/(GAMS)))*(COTH1); FGB = (((1.0)*(NU1))*(FC))/(COTH1 + ((1.0)/(COTH1))); 'SINON'; 'SI' (FC1 < 1.e6); FG1 = ((0.35)/(GAMC))*((((FC1)/(10.0)))**(0.5)); FG1 = ((FG1)*(10.0)); 'SINON'; FG1 = ((0.35)/(GAMC))*(((FC1)/(1.E6))**(0.5)); FG1 = ((FG1)*(1.E6)); 'FINSI'; 'FINSI'; * VAL1 = ((FG1)*(FG1)) - ((X1*X1)) - ((Y1*Y1)); 'FINSI'; 'FINSI'; * 'FINPROC' VAL1;
© Cast3M 2003 - Tous droits réservés.
Mentions légales