$$$$ MRCFRAME * MRCFRAME PROCEDUR FANDEUR 22/01/19 21:15:10 11256 DEBPROC MRCFRAME TYP_CAL1*'MOT ' TAB_IN*'TABLE' TOL_1*'FLOTTANT' L_ELE1/'LISTENTI'; * * -------------------------------------------------------- * Procedure MRCFRAME * Computation of security coef Lambda for frame element TIMO and POUT * * Developpers: * Alberto FRAU * DEN/DANS/DM2S/SEMT/EMSI * Nicolas ILE * DEN/DANS/DM2S/SEMT/EMSI * Giulia DI STEFANO * INPUT: * TYP_CAL1: Calculation option * 'RECTANGLE' * 'ELLIPSOIDE' * TAB_IN.'MAILLAGE': Maillage du voile [MAILLAGE] * TAB_IN.'EFFORT_SEISME': MCHAML de la matrice * representant l'enveloppe des * efforts sismiques (voir SISSIB) * TAB_IN.'EFFORT_STATIQUE': MCHAML des efforts statiques qui * agissent sur l'element frame * TAB_IN.'CARACTERISTIQUES' :MCHAML contenant les * caracteristiques de l'element * frame : * 'B_Y' longeur Y de la section * 'B_Z' longeur Z de la section * 'LIBY' Longeur ly * 'LIBZ' Longeur lz * 'SCAD' Espacement cadres * 'ENRB' Enrobage * 'PFER' Diametres ferrailage * [LISTREEL] * 'YFER' position y ferraillage * [LISTREEL] * 'ZFER' position z ferraillage * [LISTREEL] * 'ASWY' aire ferraillage transv y * 'ASWZ' aire ferraillage transv z * 'YACI' mod young acier * 'EPSB' eps beton * 'EPSA' eps acier * TAB_IN.'FC_BET': Resistance caracteristique beton * [FLOTTANT] * TAB_IN.'GAM_C': Coef gammac 1.5/1.2 EC2/EC8 * [FLOTTANT] * TAB_IN.'ALP_C': Coef alpa 1.0 EC2 * [FLOTTANT] * TAB_IN.'FS_ACI': resistance caracteristique de l'acier * [FLOTTANT] * TAB_IN.'GAM_S': Coef gammas 1.15 EC2 * [FLOTTANT] * TOL_1: Tolerance [FLOTTANT] * L_ELE1: Liste des elements sur lesquels on veut sortir les * graphiques des surfaces limites et des enveloppes * (sans ou avec covariance - RECTANGLE ou ELLISPOIDE) * (pas necessaire) [LISTREEL] * OUTPUT: * TT2: Table Contenant: * .'CH_LAMBDA': MCHAML les valeurs des marges (composent LAME) * .'CARTE': Maillage avec deux colorations pour indiquer les * elements avec une marge superieure à 1 ou * inferieure: * ROUGE elements -> Lambda < 1.0 * VERT elements -> Lambda > 1.0 * .'GRAPHIQUES': Sous table pour les outils de graphique: * .I. Ieme element * .'LIMITE': Surface limite de la couche externe * [MAILLAGE] * .'RECTANGLE': enveloppe sismique sans prise en compte * des covariances (methode RECTANGLE) * [MAILLAGE] * .'ELLIPSOIDE': enveloppe sismique avec prise en compte * des covariances (methode RECTANGLE) * [MAILLAGE] * .'RECTANGLE_AUG': enveloppe sismique amplifié sans prise * en compte des covariances * (methode RECTANGLE) [MAILLAGE] * .'ELLIPSOIDE_AUG': enveloppe sismique amplifié avec prise * en compte des covariances * (methode RECTANGLE) [MAILLAGE] * * -------------------------------------------------------- * * Controle 'SI' ('EXIST' TAB_IN 'MAILLAGE'); MAI_F = TAB_IN.'MAILLAGE'; 'SI' ('NEG' ('TYPE' MAI_F) 'MAILLAGE'); 'MESS' 'Error Input....'; 'QUIT' MRCFRAME; 'FINSI'; 'SINON'; 'MESS' 'Error....'; 'QUIT' MRCFRAME; 'FINSI'; 'SI' ('EXIST' TAB_IN 'EFFORT_SEISME'); CH_SEI1 = TAB_IN.'EFFORT_SEISME'; 'SI' ('NEG' ('TYPE' CH_SEI1) 'MCHAML'); 'MESS' 'Error Input....'; 'QUIT' MRCFRAME; 'FINSI'; 'SINON'; 'MESS' 'Error....'; 'QUIT' MRCFRAME; 'FINSI'; 'SI' ('EXIST' TAB_IN 'EFFORT_STATIQUE'); CH_STA1 = TAB_IN.'EFFORT_STATIQUE'; 'SI' ('NEG' ('TYPE' CH_STA1) 'MCHAML'); 'MESS' 'Error Input....'; 'QUIT' MRCFRAME; 'FINSI'; 'SINON'; 'MESS' 'Error....'; 'QUIT' MRCFRAME; 'FINSI'; 'SI' ('EXIST' TAB_IN 'CARACTERISTIQUES'); CH_CAR1 = TAB_IN.'CARACTERISTIQUES'; 'SI' ('NEG' ('TYPE' CH_CAR1) 'MCHAML'); 'MESS' 'Error Input....'; 'QUIT' MRCFRAME; 'FINSI'; 'SINON'; 'MESS' 'Error....'; 'QUIT' MRCFRAME; 'FINSI'; 'SI' ('EXIST' TAB_IN 'FC_BET'); FCBET1 = TAB_IN.'FC_BET'; 'SI' ('NEG' ('TYPE' FCBET1) 'FLOTTANT'); 'MESS' 'Error Input....'; 'QUIT' MRCFRAME; 'FINSI'; 'SINON'; 'MESS' 'Error....'; 'QUIT' MRCFRAME; 'FINSI'; 'SI' ('EXIST' TAB_IN 'GAM_C'); GAMC1 = TAB_IN.'GAM_C'; 'SI' ('NEG' ('TYPE' GAMC1) 'FLOTTANT'); 'MESS' 'Error Input....'; 'QUIT' MRCFRAME; 'FINSI'; 'SINON'; 'MESS' 'Error....'; 'QUIT' MRCFRAME; 'FINSI'; 'SI' ('EXIST' TAB_IN 'ALP_C'); ALPC1 = TAB_IN.'ALP_C'; 'SI' ('NEG' ('TYPE' ALPC1) 'FLOTTANT'); 'MESS' 'Error Input....'; 'QUIT' MRCFRAME; 'FINSI'; 'SINON'; 'MESS' 'Error....'; 'QUIT' MRCFRAME; 'FINSI'; 'SI' ('EXIST' TAB_IN 'FS_ACI'); FSACI1 = TAB_IN.'FS_ACI'; 'SI' ('NEG' ('TYPE' FSACI1) 'FLOTTANT'); 'MESS' 'Error Input....'; 'QUIT' MRCFRAME; 'FINSI'; 'SINON'; 'MESS' 'Error....'; 'QUIT' MRCFRAME; 'FINSI'; 'SI' ('EXIST' TAB_IN 'GAM_S'); GAMS1 = TAB_IN.'GAM_S'; 'SI' ('NEG' ('TYPE' GAMS1) 'FLOTTANT'); 'MESS' 'Error Input....'; 'QUIT' MRCFRAME; 'FINSI'; 'SINON'; 'MESS' 'Error....'; 'QUIT' MRCFRAME; 'FINSI'; * 'MESS' ; 'MESS' '**************************************************************'; 'MESS' ' Calculs des coef de securite '; 'MESS' '**************************************************************'; 'MESS'; * * controle of input data 'SI' (NEG (TYP_CAL1) 'ELLIPSOIDE'); 'SI' (NEG (TYP_CAL1) 'RECTANGLE'); 'MESS' ' ERROR....Type de calcul errone!!!'; 'QUIT' MRCFRAME; 'FINSI'; 'FINSI'; 'SI' ('EGA' TYP_CAL1 'ELLIPSOIDE'); 'MESS' ' ------------------------------------------------------------'; 'MESS' ' Methode Ellipsoide'; 'MESS' ' ------------------------------------------------------------'; 'MESS'; 'SINON'; 'MESS' ' ------------------------------------------------------------'; 'MESS' ' Methode Rectangle'; 'MESS' ' ------------------------------------------------------------'; 'MESS'; 'FINSI'; * LIS_MOT1 = 'EXTR' CH_SEI1 'COMP' ; LIS_MOT2 = MOTS 'C11' 'C22' 'C33' 'C44' 'C55' 'C66' 'C12' 'C13' 'C14' 'C15' 'C16' 'C23' 'C24' 'C25' 'C26' 'C34' 'C35' 'C36'; 'SI' ('NON' (EXIST LIS_MOT1 LIS_MOT2 'ET')); 'MESS' ' ERROR....MCHAML seisme'; 'MESS' ' composantes erronees!!!'; 'QUIT' MRCFRAME; 'FINSI'; * LIS_MOT1 = 'EXTR' CH_STA1 'COMP' ; LIS_MOT2 = MOTS 'EFFX' 'EFFY' 'EFFZ' 'MOMX' 'MOMY' 'MOMZ'; 'SI' ('NON' (EXIST LIS_MOT1 LIS_MOT2 'ET')); 'MESS' ' ERROR....MCHAML statique'; 'MESS' ' composantes erronees!!!'; 'QUIT' MRCFRAME; 'FINSI'; * LIS_MOT1 = 'EXTR' CH_CAR1 'COMP' ; LIS_MOT2 = MOTS 'B_Y' 'B_Z' 'LIBY' 'LIBZ' 'SCAD' 'YFER' 'ENRB' 'PFER' 'ZFER' 'ASWY' 'ASWZ' 'YACI' 'EPSB' 'EPSA' 'TYFR'; 'SI' ('NON' (EXIST LIS_MOT1 LIS_MOT2 'ET')); 'MESS' ' ERROR....MCHAML caracteristiques'; 'MESS' ' composantes erronees!!!'; 'QUIT' MRCFRAME; 'FINSI'; * * creation of the table output TT2 = 'TABLE'; * * creation of the MCHAML field for the output CH_LAM1 = 'VIDE' MCHAML; MAI_RE1 = 'VIDE' MAILLAGE; *Unused*MODTOT = 'VIDE' MMODEL; * * number of element shear wall N_ELE1 = 'NBEL' MAI_F; * * Resistance de design FCD1 = (FCBET1*ALPC1)/GAMC1 ; FSD1 = FSACI1 / GAMS1 ; * * loop for the element I_ELE1 = 1; 'REPE' IND_ELE1 N_ELE1; * element I ELE_FRA1 = MAI_F ELEM I_ELE1; * extracting the forces and characteristics for the external layer EFFX0 = EXTR (REDU CH_STA1 ELE_FRA1) 'EFFX' 1 1 1; EFFY0 = EXTR (REDU CH_STA1 ELE_FRA1) 'EFFY' 1 1 1; EFFZ0 = EXTR (REDU CH_STA1 ELE_FRA1) 'EFFZ' 1 1 1; MOMX0 = EXTR (REDU CH_STA1 ELE_FRA1) 'MOMX' 1 1 1; MOMY0 = EXTR (REDU CH_STA1 ELE_FRA1) 'MOMY' 1 1 1; MOMZ0 = EXTR (REDU CH_STA1 ELE_FRA1) 'MOMZ' 1 1 1; * NNNN1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C11' 1 1 1; NNVY1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C12' 1 1 1; NNVZ1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C13' 1 1 1; NNMT1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C14' 1 1 1; NNMY1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C15' 1 1 1; NNMZ1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C16' 1 1 1; VYVY1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C22' 1 1 1; VYVZ1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C23' 1 1 1; VYMT1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C24' 1 1 1; VYMY1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C25' 1 1 1; VYMZ1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C26' 1 1 1; VZVZ1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C33' 1 1 1; VZMT1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C34' 1 1 1; VZMY1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C35' 1 1 1; VZMZ1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C36' 1 1 1; MTMT1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C44' 1 1 1; MTMY1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C45' 1 1 1; MTMZ1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C46' 1 1 1; MYMY1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C55' 1 1 1; MYMZ1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C56' 1 1 1; MZMZ1 = EXTR (REDU CH_SEI1 ELE_FRA1) 'C66' 1 1 1; * BASE_Y1 = EXTR (REDU CH_CAR1 ELE_FRA1) 'B_Y' 1 1 1; BASE_Z1 = EXTR (REDU CH_CAR1 ELE_FRA1) 'B_Z' 1 1 1; LONG_Y1 = EXTR (REDU CH_CAR1 ELE_FRA1) 'LIBY' 1 1 1; LONG_Z1 = EXTR (REDU CH_CAR1 ELE_FRA1) 'LIBZ' 1 1 1; ENROBA1 = EXTR (REDU CH_CAR1 ELE_FRA1) 'ENRB' 1 1 1; ACADRY1 = EXTR (REDU CH_CAR1 ELE_FRA1) 'ASWY' 1 1 1; ACADRZ1 = EXTR (REDU CH_CAR1 ELE_FRA1) 'ASWZ' 1 1 1; S_CADR1 = EXTR (REDU CH_CAR1 ELE_FRA1) 'SCAD' 1 1 1; LI_PHI1 = EXTR (REDU CH_CAR1 ELE_FRA1) 'PFER' 1 1 1; PY_PHI1 = EXTR (REDU CH_CAR1 ELE_FRA1) 'YFER' 1 1 1; PZ_PHI1 = EXTR (REDU CH_CAR1 ELE_FRA1) 'ZFER' 1 1 1; E_ACIE1 = EXTR (REDU CH_CAR1 ELE_FRA1) 'YACI' 1 1 1; EP_BET1 = EXTR (REDU CH_CAR1 ELE_FRA1) 'EPSB' 1 1 1; EP_ACI1 = EXTR (REDU CH_CAR1 ELE_FRA1) 'EPSA' 1 1 1; * * Determination armature long totale II1 = 1; A_LONG1 = 0.0; 'REPE' IND11 (DIME LI_PHI1); A_LONG1 = A_LONG1 + ((PI)*((((EXTR LI_PHI1 II1)/(1000.))/(2.0))**2.0)); II1 = II1 + 1; 'FIN' IND11; * * Determination parametres adimensionelles OM_SY1 = ((A_LONG1)*(FSD1))/(((BASE_Y1)*(BASE_Z1))*(FCD1)); OM_SZ1 = ((A_LONG1)*(FSD1))/(((BASE_Y1)*(BASE_Z1))*(FCD1)); OM_WZ1 = ((ACADRZ1)*(FSD1))/(((BASE_Y1)*(S_CADR1))*(FCD1)); OM_WY1 = ((ACADRY1)*(FSD1))/(((BASE_Z1)*(S_CADR1))*(FCD1)); LAMB_Y1 = ((LONG_Z1)/(BASE_Y1)); LAMB_Z1 = ((LONG_Y1)/(BASE_Z1)); CHI_Z1 = ((BASE_Z1 - ((2.0)*(ENROBA1)))/(BASE_Z1)); CHI_Y1 = ((BASE_Y1 - ((2.0)*(ENROBA1)))/(BASE_Y1)); * * test pour savoir si on est dans la condiction COURT ou LONG TEST_Y1 = LAMB_Y1 '