* MRCFRAM4 PROCEDUR BP208322 20/05/05 21:15:02 10601 TAB_IN2*'TABLE' TOL_2*'FLOTTANT'; * * -------------------------------------------------------- * Procedure FRCFRAM4 * Procedure appele par MRCFRAME pour le calcul de la marge sismique * d'element frame tyep POUTRE LONG * * Developpers: * Alberto FRAU * DEN/DANS/DM2S/SEMT/EMSI * Nicolas ILE * DEN/DANS/DM2S/SEMT/EMSI * Giulia DI STEFANO * * * LAM1 = MRCFRAM4 MOT1 TAB1 TOL1; * * * INPUT: * * MOT1 [MOT] afin de specifier le type de calcul: * 'ELLIPSOIDE' calcul des marges avec l'enveloppe * ellipsiodale * 'RECTANGLE' calcul des marges avec l'enveloppe * prismatique * * TAB1 type TABLE pour definir les donnees suivantes: * TAB1.'BASE_Y1' dimension section direction Y en m [FLOTTANT] * TAB1.'BASE_Z1' dimension section direction Z en m [FLOTTANT] * TAB1.'LONG_Y1' longuer ly [FLOTTANT] * TAB1.'LONG_Z1' longuer lz [FLOTTANT] * TAB1.'ENROBA1' enrobage en m [FLOTTANT] * TAB1.'ACADRY1' aire de l'armature transversale * direction y en m2 [FLOTTANT] * TAB1.'ACADRZ1' aire de l'armature transversale * direction z en m2 [FLOTTANT] * TAB1.'S_CADR1' espacement des cadres en * m [FLOTTANT] * TAB1.'LI_PHI1' LISTREEL des diam barres d'acier en mm * TAB1.'PY_PHI1' LISTREEL de la position y en m de * chaque barre par rapport au * baricentre de la section * TAB1.'PZ_PHI1' LISTREEL de la position z en m de * chaque barre par rapport au * baricentre de la section * TAB1.'E_ACIE1' Module Young acier [FLOTTANT] * TAB1.'EP_BET1' deformation ultime beton [FLOTTANT] * TAB1.'EP_ACI1' deformation ultime acier [FLOTTANT] * TAB1.'OM_SY1' omega_s_y [FLOTTANT] * TAB1.'OM_SZ1' omega_s_z [FLOTTANT] * TAB1.'OM_WZ1' omega_w_y [FLOTTANT] * TAB1.'OM_WY1' omega_w_z [FLOTTANT] * TAB1.'LAMB_Y1' lambda_y [FLOTTANT] * TAB1.'LAMB_Z1' lambda_y [FLOTTANT] * TAB1.'CHI_Z1' chi_z [FLOTTANT] * TAB1.'CHI_Y1' chi_y [FLOTTANT] * TAB1.'EFFX0' EFFX statique [FLOTTANT] * TAB1.'EFFY0' EFFY statique [FLOTTANT] * TAB1.'EFFZ0' EFFZ statique [FLOTTANT] * TAB1.'MOMX0' MOMX statique [FLOTTANT] * TAB1.'MOMY0' MOMY statique [FLOTTANT] * TAB1.'MOMZ0' MOMZ statique [FLOTTANT] * TAB1.'NNNN1' (EFFX)2 - matrice X seisme [FLOTTANT] * TAB1.'NNVY1' Cov EFFX et EFFY -matrice X seisme [FLOTTANT] * TAB1.'NNVZ1' Cov EFFX et EFFZ -matrice X seisme [FLOTTANT] * TAB1.'NNMT1' Cov EFFX et MOMX -matrice X seisme [FLOTTANT] * TAB1.'NNMY1' Cov EFFX et MOMY -matrice X seisme [FLOTTANT] * TAB1.'NNMZ1' Cov EFFX et MOMZ -matrice X seisme [FLOTTANT] * TAB1.'VYVY1' (EFFY)2 - matrice X seisme [FLOTTANT] * TAB1.'VYVZ1' Cov EFFY et EFFZ -matrice X seisme [FLOTTANT] * TAB1.'VYMT1' Cov EFFY et MOMX -matrice X seisme [FLOTTANT] * TAB1.'VYMY1' Cov EFFY et MOMY -matrice X seisme [FLOTTANT] * TAB1.'VYMZ1' Cov EFFY et MOMZ -matrice X seisme [FLOTTANT] * TAB1.'VZVZ1' (EFFZ)2 - matrice X seisme [FLOTTANT] * TAB1.'VZMT1' Cov EFFZ et MOMX -matrice X seisme [FLOTTANT] * TAB1.'VZMY1' Cov EFFZ et MOMY -matrice X seisme [FLOTTANT] * TAB1.'VZMZ1' Cov EFFZ et MOMZ -matrice X seisme [FLOTTANT] * TAB1.'MTMT1' (MOMX)2 - matrice X seisme [FLOTTANT] * TAB1.'MTMY1' Cov MOMX et MOMY -matrice X seisme [FLOTTANT] * TAB1.'MTMZ1' Cov MOMX et MOMZ -matrice X seisme [FLOTTANT] * TAB1.'MYMY1' (MOMY)2 - matrice X seisme [FLOTTANT] * TAB1.'MYMZ1' Cov MOMY et MOMZ -matrice X seisme [FLOTTANT] * TAB1.'MZMZ1' (MOMZ)2 - matrice X seisme [FLOTTANT] * TAB1.'FCD1' fcd du beton [FLOTTANT] * TAB1.'FSD1' fsd du acier [FLOTTANT] * * TOL1 Tolerance du calcul (1.e-4) * * * OUTPUT: * * * LAM1 Marge sismique * * * * -------------------------------------------------------- * * * Input Phase BASE_Y1 = TAB_IN2.'BASE_Y1'; BASE_Z1 = TAB_IN2.'BASE_Z1'; LONG_Y1 = TAB_IN2.'LONG_Y1'; LONG_Z1 = TAB_IN2.'LONG_Z1'; ENROBA1 = TAB_IN2.'ENROBA1'; ACADRY1 = TAB_IN2.'ACADRY1'; ACADRZ1 = TAB_IN2.'ACADRZ1'; S_CADR1 = TAB_IN2.'S_CADR1'; LI_PHI1 = TAB_IN2.'LI_PHI1'; PY_PHI1 = TAB_IN2.'PY_PHI1'; PZ_PHI1 = TAB_IN2.'PZ_PHI1'; E_ACIE1 = TAB_IN2.'E_ACIE1'; EP_BET1 = TAB_IN2.'EP_BET1'; EP_ACI1 = TAB_IN2.'EP_ACI1'; OM_SY1 = TAB_IN2.'OM_SY1'; OM_SZ1 = TAB_IN2.'OM_SZ1'; OM_WZ1 = TAB_IN2.'OM_WZ1'; OM_WY1 = TAB_IN2.'OM_WY1'; LAMB_Y1 = TAB_IN2.'LAMB_Y1'; LAMB_Z1 = TAB_IN2.'LAMB_Z1'; CHI_Z1 = TAB_IN2.'CHI_Z1'; CHI_Y1 = TAB_IN2.'CHI_Y1'; EFFX0 = TAB_IN2.'EFFX0'; EFFY0 = TAB_IN2.'EFFY0'; EFFZ0 = TAB_IN2.'EFFZ0'; MOMX0 = TAB_IN2.'MOMX0'; MOMY0 = TAB_IN2.'MOMY0'; MOMZ0 = TAB_IN2.'MOMZ0'; NNNN1 = TAB_IN2.'NNNN1'; NNVY1 = TAB_IN2.'NNVY1'; NNVZ1 = TAB_IN2.'NNVZ1'; NNMT1 = TAB_IN2.'NNMT1'; NNMY1 = TAB_IN2.'NNMY1'; NNMZ1 = TAB_IN2.'NNMZ1'; VYVY1 = TAB_IN2.'VYVY1'; VYVZ1 = TAB_IN2.'VYVZ1'; VYMT1 = TAB_IN2.'VYMT1'; VYMY1 = TAB_IN2.'VYMY1'; VYMZ1 = TAB_IN2.'VYMZ1'; VZVZ1 = TAB_IN2.'VZVZ1'; VZMT1 = TAB_IN2.'VZMT1'; VZMY1 = TAB_IN2.'VZMY1'; VZMZ1 = TAB_IN2.'VZMZ1'; MTMT1 = TAB_IN2.'MTMT1'; MTMY1 = TAB_IN2.'MTMY1'; MTMZ1 = TAB_IN2.'MTMZ1'; MYMY1 = TAB_IN2.'MYMY1'; MYMZ1 = TAB_IN2.'MYMZ1'; MZMZ1 = TAB_IN2.'MZMZ1'; FCD1 = TAB_IN2.'FCD1'; FSD1 = TAB_IN2.'FSD1'; * ENR1 = ENROBA1; * NLIMC1 = (-1.0 - OM_SY1)*(((BASE_Y1)*(BASE_Z1))*(FCD1)); NLIMT1 = (OM_SY1)*(((BASE_Y1)*(BASE_Z1))*(FCD1)); * * Static Point TINI1 = TABLE; TINI1.'NN' = EFFX0; TINI1.'VY' = EFFY0; TINI1.'VZ' = EFFZ0; TINI1.'MT' = MOMX0; TINI1.'MY' = MOMY0; TINI1.'MZ' = MOMZ0; TINI1.'BY' = BASE_Y1; TINI1.'BZ' = BASE_Z1; TINI1.'FCD' = FCD1; TINI1.'FSD' = FSD1; TINI1.'WSY' = OM_SY1; TINI1.'WSZ' = OM_SZ1; TINI1.'WWY' = OM_WY1; TINI1.'WWZ' = OM_WZ1; TINI1.'LY' = LAMB_Y1; TINI1.'LZ' = LAMB_Z1; TINI1.'XIY' = CHI_Y1; TINI1.'XIZ' = CHI_Z1; TINI1.'PHI_LON' = LI_PHI1; TINI1.'PHI_Y' = PY_PHI1; TINI1.'PHI_Z' = PZ_PHI1; TINI1.'EPSI_BET' = EP_BET1; TINI1.'EPSI_ACI' = EP_ACI1; TINI1.'YOUNG_ACIER' = E_ACIE1; * 'SI' ('EGA' TYP_CAL1 'ELLIPSOIDE'); * *------------------------------------------------------------- * Methode Ellipse * * Test about the static state stress * 'SI' (T_ST1 '<EG' 0.0); LAM_FIN1 = 0.0; TIT1 = 'CHAINE' ' Element ' I_IE1 ' Lambda=' LAM_FIN1 '.....Sig0 externe'; 'MESS' TIT1; 'SINON'; MAI1 = 0. 0. 0.; * Matrix X ('PROG' MYMY1 NNMY1 NNMY1 NNNN1)); * * Static state stress * * * Initial Vecteur * * direction used for the ellispoide methode TB_DIR = 'TABLE'; * RB0 = SB0; LAMB0 = RB0/SB0; * * incremental step H_VAL1 = (SB0)/(100000.0); H_VAL2 = (SB0)/(100000.0); * * variable for the convergence test ID1_CON = 0; * * loop for each direction I_K1 = 1; 'REPE' IND3 (4); * TAB_ITE = 'TABLE'; TAB_ITE. 0 = 'TABLE'; TAB_ITE. 0 . 'ALPA' = ALP_0; TAB_ITE. 0 . 'LAMBDA' = LAMB0; TAB_ITE. 0 . 'RB' = RB0; * ALP_K = (TB_DIR. I_K1); I_M1 = 1; * first loop in order to have n_elllips=n_limite 'REPE' IND2 (200); * sauving Lambda for j iteraction TAB_ITE. I_M1 = 'TABLE'; TAB_ITE. I_M1 . 'ALPA' = ALP_K; * determination of the stress state for the chosen direction * nomalisez vector of hte rayon of the ellipsoide for the * chosen direction BJ = (XALP_J - EF_ST0)/(SBJ); * rayon of the ellipsoide for the chosen direction RBVAL1 = (TAB_ITE.(I_M1 - 1). 'RB'); * second loop in order to have f=0 I_I1 = 1; 'REPE' IND1 (200); * strees state x0, x0+h, x0-h VV1 = (RBVAL1 + H_VAL1)*(BJ); VV2 = (RBVAL1 - H_VAL1)*(BJ); VV3 = (RBVAL1)*(BJ); TINIA1.'VY' = 0.0; TINIA1.'VZ' = 0.0; TINIA1.'MT' = 0.0; TINIA1.'MZ' = 0.0; TINIB1.'VY' = 0.0; TINIB1.'VZ' = 0.0; TINIB1.'MT' = 0.0; TINIB1.'MZ' = 0.0; TINIC1.'VY' = 0.0; TINIC1.'VZ' = 0.0; TINIC1.'MT' = 0.0; TINIC1.'MZ' = 0.0; 'OUBL' VV1; 'OUBL' VV2; 'OUBL' VV3; ((2.0)*(H_VAL1)); * MESS '-------------------------'; * LIST F_VAL1; * LIST D_VAL1; * LIST (TINIC1.'MY'); * LIST (TINIC1.'NN'); * SI (I_I1 EGA 4); * ERRE 5; * FINSI; * controle 'SI' ((('ABS'(F_VAL1)) '<' ((TOL_2)/(100.0))) 'OU' (I_I1 'EGA' 200)); RBJ = RBVAL1; 'QUIT' IND1; 'SINON'; 'SI' (('ABS'(D_VAL1)) < 1.E-12); RBVAL2 = RBVAL1; RBVAL1 = RBVAL1*1.1; 'SINON'; * otherwise RBVAL2 = RBVAL1; RBVAL1 = RBVAL1 - ((F_VAL1)/(D_VAL1)); 'FINSI'; 'FINSI'; I_I1 = I_I1 + 1; 'FIN' IND1; * computation of lambda LAMBJ = RBJ/SBJ; TAB_ITE. I_M1 . 'LAMBDA' = LAMBJ; TAB_ITE. I_M1 . 'RB' = RBJ; XCOUB1 = (((TAB_ITE. I_M1 .'LAMBDA')*(TAB_ITE. I_M1 .'LAMBDA'))* (MATX1)); * amplified stress state using the lambda coef * Dh*ex ; Dh*ey ; Dh*ez * x0*lam + Dh*ex ; x0*lam + Dh*ey ; x0*lam + Dh*ez VV_HXP = XALP_L + DE_HX; VV_HYP = XALP_L + DE_HY; * x0*lam + Dh*ex ; x0*lam + Dh*ey ; x0*lam + Dh*ez VV_HXN = XALP_L - DE_HX; VV_HYN = XALP_L - DE_HY; * x0*lam VV_0 = XALP_L; * * * 'SI' ((VV_HYP2) '>' (NLIMT1)); TINIA1.'NN' = VV_HXP2; TINIA1.'VY' = 0.0; TINIA1.'VZ' = 0.0; TINIA1.'MT' = 0.0; TINIA1.'MY' = VV_HXP1; TINIA1.'MZ' = 0.0; TINIB1.'NN' = VV_HXN2; TINIB1.'VY' = 0.0; TINIB1.'VZ' = 0.0; TINIB1.'MT' = 0.0; TINIB1.'MY' = VV_HXN1; TINIB1.'MZ' = 0.0; ((2.0)*(H_VAL2)); * TINIA1.'NN' = VV_02; TINIA1.'VY' = 0.0; TINIA1.'VZ' = 0.0; TINIA1.'MT' = 0.0; TINIA1.'MY' = VV_01; TINIA1.'MZ' = 0.0; TINIB1.'NN' = VV_HYN2; TINIB1.'VY' = 0.0; TINIB1.'VZ' = 0.0; TINIB1.'MT' = 0.0; TINIB1.'MY' = VV_HYN1; TINIB1.'MZ' = 0.0; ((1.0)*(H_VAL2)); 'SINON'; 'SI' ((VV_HYN2) '<' (NLIMC1)); TINIA1.'NN' = VV_HXP2; TINIA1.'VY' = 0.0; TINIA1.'VZ' = 0.0; TINIA1.'MT' = 0.0; TINIA1.'MY' = VV_HXP1; TINIA1.'MZ' = 0.0; TINIB1.'NN' = VV_HXN2; TINIB1.'VY' = 0.0; TINIB1.'VZ' = 0.0; TINIB1.'MT' = 0.0; TINIB1.'MY' = VV_HXN1; TINIB1.'MZ' = 0.0; ((2.0)*(H_VAL2)); * TINIA1.'NN' = VV_HYP2; TINIA1.'VY' = 0.0; TINIA1.'VZ' = 0.0; TINIA1.'MT' = 0.0; TINIA1.'MY' = VV_HYP1; TINIA1.'MZ' = 0.0; TINIB1.'NN' = VV_02; TINIB1.'VY' = 0.0; TINIB1.'VZ' = 0.0; TINIB1.'MT' = 0.0; TINIB1.'MY' = VV_01; TINIB1.'MZ' = 0.0; ((1.0)*(H_VAL2)); 'SINON'; TINIA1.'NN' = VV_HXP2; TINIA1.'VY' = 0.0; TINIA1.'VZ' = 0.0; TINIA1.'MT' = 0.0; TINIA1.'MY' = VV_HXP1; TINIA1.'MZ' = 0.0; TINIB1.'NN' = VV_HXN2; TINIB1.'VY' = 0.0; TINIB1.'VZ' = 0.0; TINIB1.'MT' = 0.0; TINIB1.'MY' = VV_HXN1; TINIB1.'MZ' = 0.0; ((2.0)*(H_VAL2)); * TINIA1.'NN' = VV_HYP2; TINIA1.'VY' = 0.0; TINIA1.'VZ' = 0.0; TINIA1.'MT' = 0.0; TINIA1.'MY' = VV_HYP1; TINIA1.'MZ' = 0.0; TINIB1.'NN' = VV_HYN2; TINIB1.'VY' = 0.0; TINIB1.'VZ' = 0.0; TINIB1.'MT' = 0.0; TINIB1.'MY' = VV_HYN1; TINIB1.'MZ' = 0.0; ((2.0)*(H_VAL2)); * 'FINSI'; 'FINSI'; * * costruction n_limit 'UX' ((-1.0)*(VAL_X1)) 'UZ' ((-1.0)*(VAL_Y1)); * check on the n_limit * if |n_limit|=0 rotate the chosen direction by 10 degrees MATR1 = MATR1 'ET' (SIN(10.0)) (COS(10.0)))); AAA1 = MATR1*ALP_K; 'FINSI'; * convergence test VET_TEST = (TAB_ITE. I_M1 . 'ALPA') - (TAB_ITE. (I_M1 - 1) . 'ALPA'); * * SI (I_K1 > 3); * ERRE 5; * FINSI; * deduction of the final value of Lambda 'SI' ((TAB_ITE. I_M1 . 'LAMBDA') '>' 0.0); LAM_FIN1 = (TAB_ITE. I_M1 . 'LAMBDA'); 'SINON'; 'SI' (LAM_FIN1 '>' (TAB_ITE. I_M1 . 'LAMBDA')); LAM_FIN1 = (TAB_ITE. I_M1 . 'LAMBDA'); 'FINSI'; 'FINSI'; 'FINSI'; 'QUIT' IND2; 'SINON'; 'SI' (I_M1 'EGA' 199); ID1_CON = 1; 'SI' ((TAB_ITE. I_M1 . 'LAMBDA') '>' 0.0); LAM_FIN1 = (TAB_ITE. I_M1 . 'LAMBDA'); 'SINON'; 'SI' (LAM_FIN1 '>' (TAB_ITE. I_M1 . 'LAMBDA')); LAM_FIN1 = (TAB_ITE. I_M1 . 'LAMBDA'); 'FINSI'; 'FINSI'; 'FINSI'; 'SINON'; * otherwise updating the n_limit ALP_K = DELTG1; 'FINSI'; 'FINSI'; * Display * SI (I_K1 EGA 3); * MESS '-----------------------------'; * LIST F_VAL1; * LIST I_I1; * LIST LAMBJ; * MESS '*'; * LIST NLIMT1; * LIST NLIMC1; * LIST TINIC1.'VY'; * LIST TINIC1.'VZ'; * LIST TINIC1.'NN'; * MESS '*'; * LIST ('EXTR' (TAB_ITE. I_M1 . 'ALPA') 'UX' MAI1); * LIST ('EXTR' (TAB_ITE. I_M1 . 'ALPA') 'UY' MAI1); * LIST ('EXTR' (TAB_ITE. I_M1 . 'ALPA') 'UZ' MAI1); * LIST ('EXTR' DELTG1 'UX' MAI1); * LIST ('EXTR' DELTG1 'UY' MAI1); * LIST ('EXTR' DELTG1 'UZ' MAI1); * MESS '-----------------------------'; * SI (I_M1 EGA 10); * ERRE 5; * FINSI; * FINSI; I_M1 = I_M1 + 1; 'FIN' IND2; I_K1 = I_K1 + 1; 'FIN' IND3; * * screen message 'SI' (ID1_CON 'EGA' 0); TIT1 = 'CHAINE' ' Element ' I_ELE1 ' Lambda=' LAM_FIN1; 'MESS' TIT1; 'FINSI'; 'SI' (ID1_CON 'EGA' 1); TIT1 = 'CHAINE' ' Element ' I_ELE1 ' Lambda=' LAM_FIN1 '.....Attention non convergence'; 'FINSI'; 'FINSI'; 'SINON'; * *------------------------------------------------------------- * Methode Rectangle * * Test about the static state stress * ID1_CON = 0; 'SI' (T_ST1 '<EG' 0.0); LAM_FIN1 = 0.0; TIT1 = 'CHAINE' ' Element ' I_IE1 ' Lambda=' LAM_FIN1 '.....Sig0 externe'; 'MESS' TIT1; 'SINON'; LAMB0 = 1.0; H_VAL3 = LAMB0/1000; TOL_2 = FCBET1/1000; * * reference list for the 4 point for rectangle solid * * creation of the resuming table TAB_ITE = 'TABLE'; TAB_ITE. 0 = 'TABLE'; TAB_ITE. 0 .'LAMBDA' = LAMB0 ; * I_MM1 = 0; ID1_CON = 0; * * loop for in order to find f=0 'REPE' IND4 (200); * * stress state for the 8 points X1_0 = (((MYMY1)**(0.5))*(((-1.0)*(LAMB0)))) + MOMY0; Z1_0 = (((NNNN1)**(0.5))*(((-1.0)*(LAMB0)))) + EFFX0; X2_0 = (((MYMY1)**(0.5))*(((1.0)*(LAMB0)))) + MOMY0; Z2_0 = (((NNNN1)**(0.5))*(((-1.0)*(LAMB0)))) + EFFX0; X3_0 = (((MYMY1)**(0.5))*(((1.0)*(LAMB0)))) + MOMY0; Z3_0 = (((NNNN1)**(0.5))*(((1.0)*(LAMB0)))) + EFFX0; X4_0 = (((MYMY1)**(0.5))*(((-1.0)*(LAMB0)))) + MOMY0; Z4_0 = (((NNNN1)**(0.5))*(((1.0)*(LAMB0)))) + EFFX0; * * put the N11, N22 et N12 stress state in the lists * * deduction of f for each point III1 = 1; 'REPE' IND2 (4); TINIC1.'VY' = 0.0; TINIC1.'VZ' = 0.0; TINIC1.'MT' = 0.0; TINIC1.'MZ' = 0.0; LL_F0 = LL_F0 ET III1 = III1 + 1; 'FIN' IND2; * saving TAB_ITE. I_MM1 .'L_X' = LL_X0; TAB_ITE. I_MM1 .'L_Z' = LL_Z0; TAB_ITE. I_MM1 .'L_F' = LL_F0; * finding the minimum value of f and the corresponding point * computation of D (gradiant) in case of Point_1=Argmin(fmin) X1_DP = + MOMY0; Z1_DP = + EFFX0; X1_0 = + MOMY0; Z1_0 = + EFFX0; X1_DN = + MOMY0; Z1_DN = + EFFX0; TINIA1.'NN' = Z1_DP; TINIA1.'VY' = 0.0; TINIA1.'VZ' = 0.0; TINIA1.'MT' = 0.0; TINIA1.'MY' = X1_DP; TINIA1.'MZ' = 0.0; TINIB1.'NN' = Z1_DN; TINIB1.'VY' = 0.0; TINIB1.'VZ' = 0.0; TINIB1.'MT' = 0.0; TINIB1.'MY' = X1_DN; TINIB1.'MZ' = 0.0; ((2.0)*(H_VAL3)); 'OUBL' X1_DP; 'OUBL' Y1_DP; 'OUBL' Z1_DP; 'OUBL' X1_DN; 'OUBL' Y1_DN; 'OUBL' Z1_DN; * 'OUBL' X1_0; * 'OUBL' Y1_0; * 'OUBL' Z1_0; * * Display * MESS '-----------------------'; * LIST II1; * LIST LAMB0; * LIST VAL_F; * LIST D_VAL1; * MESS '*'; * LIST NLIMT1; * LIST NLIMC1; * MESS '*'; * LIST X1_0; * LIST Z1_0; * SI (I_MM1 EGA 30); * ERRE 5; * FINSI; * * test convergence 'SI' (('ABS'(VAL_F)) '<' TOL_1); * convergence!!! LAM_FIN1 = LAMB0; * MESS '-----------------------'; * LIST II1; * LIST LAMB0; * LIST VAL_F; * LIST D_VAL1; * MESS '*'; * LIST NLIMT1; * LIST NLIMC1; * MESS '*'; * LIST X1_0; * LIST Z1_0; 'QUIT' IND4; 'SINON'; 'SI' (I_MM1 'EGA' 199); LAM_FIN1 = LAMB0; ID1_CON = 1; 'QUIT' IND4; 'FINSI'; 'SI' (('ABS'(D_VAL1)) < 1.E-8); * 'SI' ((Z1_0) '>EG' (NLIMT1)); * LAMB1 = LAMB0; * LAMB0 = ((NLIMT1) - EFFX0 - ((NLIMT1)*(TOL_1)))/ * (((NNNN1)**(0.5))*('EXTR' LL_LAMZ II1)); * 'SINON'; * 'SI' ((Z1_0) '<EG' (NLIMC1)); * LAMB1 = LAMB0; * LAMB0 = ((NLIMC1) - EFFX0 + ((NLIMT1)*(TOL_1)))/ * (((NNNN1)**(0.5))*('EXTR' LL_LAMZ II1)); * 'FINSI'; * 'FINSI'; LAMB1 = LAMB0; LAMB0 = LAMB1*0.9; 'SINON'; * otherwise LAMB1 = LAMB0; LAMB0 = LAMB0 - ((VAL_F)/(D_VAL1)); 'SI' ((ABS((LAMB1 - LAMB0)/(LAMB0))) '<' (1.E-8)); LAMB0 = LAMB1*0.90; 'FINSI'; 'SI' ((LAMB0) '<' (0.0)); LAMB0 = ABS(LAMB0); 'FINSI'; 'FINSI'; 'FINSI'; * MESS '-----------------------'; * LIST II1; * LIST LAMB0; * LIST VAL_F; * LIST D_VAL1; * MESS '*'; * LIST NLIMT1; * LIST NLIMC1; * MESS '*'; * LIST X1_0; * LIST Z1_0; * SI (I_MM1 EGA 5); * QUIT MRCFRAME; * FINSI; 'OUBL' VAL_F; 'OUBL' D_VAL1; * TAB_ITE. (I_MM1 + 1) = 'TABLE'; TAB_ITE. (I_MM1 + 1) .'LAMBDA' = ABS(LAMB0) ; * I_MM1 = I_MM1 + 1; 'FIN' IND4; 'FINSI'; * * screen message 'SI' (ID1_CON 'EGA' 0); TIT1 = 'CHAINE' ' Element ' I_ELE1 ' Lambda=' LAM_FIN1; 'MESS' TIT1; 'FINSI'; 'SI' (ID1_CON 'EGA' 1); TIT1 = 'CHAINE' ' Element ' I_ELE1 ' Lambda=' LAM_FIN1 '.....Attention non convergence'; 'MESS' TIT1; 'FINSI'; * 'FINSI'; * MESS 'SONO QUI'; FINPROC LAM_FIN1;
© Cast3M 2003 - Tous droits réservés.
Mentions légales