* @ZACPLUS PROCEDUR CHAT 99/06/07 21:24:42 3584 *-----------------------------PROCEDURE ZACPLUS----------------------* ********************************************************************** * METHODE ZAC MODIFIEE (ZACPLUS) * ********************************************************************** *------------ENTREE DES DONNEES PAR LA TABLE TBZA--------------------* CLIM = TBZA.'CLIM'; TAMOD = 'TABLE'; TAMAT = 'TABLE'; I = 0; 'REPETER' BLOCM; I = I + 1; 'SI' ('EXISTE' TBZA I); TAMOD.I = 'MODEL' TBZA.I.'GEOM' 'MECANIQUE' 'ELASTIQUE' 'PLASTIQUE' 'CINEMATIQUE' CONS 'ZACCONST'; 'SIGY' TBZA.I.'SIGY' 'H' TBZA.I.'H'; 'SI' (I 'EGA' 1); MOTOT = TAMOD. 1; MATOT = TAMAT. 1; 'SINON'; MOTOT = MOTOT 'ET' TAMOD.I; MATOT = MATOT 'ET' TAMAT.I; 'FINSI'; 'SINON'; 'QUITER' BLOCM; 'FINSI'; 'FIN' BLOCM; *----------------------DEFINITION DU MATERIAU------------------------* E1 = 'CHANGER' 'STRESSES' MOTOT E1; NU1 = 'CHANGER' 'STRESSES' MOTOT NU1; SIGY1 = 'CHANGER' 'STRESSES' MOTOT SIGY1; H1 = 'CHANGER' 'STRESSES' MOTOT H1; SIGY2 = SIGY1 + (SIGY1/100.); *---------------------NOMBRE D ITERATION MAXI-------------------------* NF1 = 5; NF2 = 5; NITER = NF1 + NF2; *-------------CALCUL DES NOUVEAUX PARAMETRES DU MATERIAU--------------* H1M1 = H1**-1; E1M1 = E1**-1; E1H1 = E1 + H1; E1H1M1 = E1H1**-1; CM1 = 1.5 * H1M1; C = CM1**-1; EPRIM1 = (E1 * H1) * E1H1M1; NUPRIM1 = EPRIM1 * ((NU1 * E1M1) + (0.5 * H1M1)); DEVSIG = SS2 - SS1; SELMOY = (SS1 + SS2)/2.; SIGMEL = (SIG1 + SIG2)/2.; DSIGEL = SIG2 - SIG1; IND = FEL 'MASQUE' 'EGSUPE' -1.; NUL = 0.*SS1; DESIGY1 = 2.*SIGY1; DIST = FEL - DESIGY1; ACCOM1 = DIST 'MASQUE' 'SUPERIEUR' 'SOMME' 0.; ACCOMM = ACCOM1 > 0; SI ACCOMM; *--------------------------------------------* MESS 'LA STRUCTURE EST ACCOMMODEE'; *--------------------------------------------* SINON; *--------------------------------------------* MESS 'LA STRUCTURE EST ADAPTEE'; *--------------------------------------------* FINSI; *----------------------INITIALISATION DE PARAMETRES-------------------* ZONEZA = 0. * IND; ZONEGA1 = ZONEZA; ZONEGA2 = ZONEZA; CRIT2 = IND; CRIT3 = IND; BOUCLE = 1; NBRB1 = 0; NBRB2 = 0; QQQQ = 1; IND1 = DIST 'MASQUE' 'INFERIEUR' 0.; IND2 = IND - IND1; *----------------CALCUL DE DXCHAP RELATIF A LA ZONE 3-----------------* FELM1 = FEL**-1; RRR1 = DEVSIG * FELM1; RRRR = RRR1 * SIGY1; DXCHAP1 = DEVSIG - (2. * RRRR); SS1EQM = SS1EQ 'MASQUE' 'INFERIEUR' 1.E-10; SS2EQM = SS2EQ 'MASQUE' 'INFERIEUR' 1.E-10; SS1EQMC = IND - SS1EQM; SS2EQMC = IND - SS2EQM; SS1EQ = SS1EQ + SS1EQM; SS2EQ = SS2EQ + SS2EQM; *--------------CONVEXE1 CONVEXE2----------* RAY1 = SS1EQ - SIGY1; RAY2 = SS2EQ - SIGY1; CVX1 = RAY1 'MASQUE' 'INFERIEUR' 0.; CVX2 = RAY2 'MASQUE' 'INFERIEUR' 0.; HCVX1 = IND - CVX1; HCVX2 = IND - CVX2; *-----------------------------------------* *--------------INTERSECTION---------------* INTER = CVX1 * CVX2; NINTER = IND - INTER; *-----------------------------------------* *-------------------CALCUL DE XCHAP RELATIF A LA ZONE 2---------------* *----------------------OPERATION DE PROJECTION------------------------* NBRPRO = 0; FACT1 = FEL**2; FELM2 = FEL**-2; FACT = FACT1 * FELM2 /2.; S = SS1 + (FACT * DEVSIG); COTE1 = SMDS 'MASQUE' 'EGSUPE' 0.; COTE2 = IND - COTE1; XCHAPD1 = (MA * COTE1) + (MB * COTE2); REPETER BLOCPROJ 10; NBRPRO = NBRPRO + 1; MM1 = XCHAPD1; SMM1 = S - MM1; COTE1 = SMDS 'MASQUE' 'EGSUP' 0.; COTE2 = IND - COTE1; XCHAPD1 = (MA * COTE1) + (MB * COTE2); DMM = (MM1 - XCHAPD1) * IND1; CCRIT1 = NDMM 'MASQUE' 'SUPERIEUR' 'SOMME' 1.; CCRIT = CCRIT1 'EGA' 0; SI CCRIT; MESS 'NOMBRE DE PROJECTIONS'; LIST NBRPRO; QUITER BLOCPROJ; FINSI; FIN BLOCPROJ; *********************************************************************** * DEBUT DE LA BOUCLE * *********************************************************************** REPETER BLOC1 NITER; MESS 'DEBUT DU BLOC1'; *DEFINITION DES DIFFERENTES ZONES VARIABLES EN FONCTION DES ITERATIONS* ZONEA3 = INTER * ZONEZA; ZONEA2 = (NINTER * ZONEZA) * CRIT3; ZONEA1A = (IND2 + ZONEA3) * CRIT2; ZONEA1M = (IND2 + ZONEA3) * CRIT3; ZONEIA = (IND1 - ZONEZA) + ZONEGA1; ZONEAA = IND - ZONEIA; ZONEIM = (IND1 - ZONEZA) + ZONEGA2; ZONEAM = IND - ZONEIM; *------------------------CALCUL DES AMPLITUDES------------------------* DXCHAP = DXCHAP1 * ZONEA1A; *-----------MATERIAU-------------* EPRIM2 = EPRIM1 * ZONEAA; NUPRIM2 = NUPRIM1 * ZONEAA; E3 = EPRIM2 + (ZONEIA * E1); NU3 = NUPRIM2 + (ZONEIA * NU1); CARACTERISTIQUES 'STRESSES'; DEPSIM = CM1 * DXCHAP; DFOIM = 'BSIGMA' MOTOT DSIGIM; DRIIM = RIIM2 ET CLIM; DDINEL = 'RESOU' DRIIM DFOIM; DRO = DROA - DSIGIM; DSIG = DSIGEL + DRO; DXCHNOU = (DXCHAP * ZONEAA) - (DDEVRO * ZONEIA); DX = (DXCHNOU + DDEVRO) * ZONEAA; DEPSPL1 = CM1 * DX; DEPSIP = @ZACPRO1 EPSPL11 EPSPL12 EPSPL13 EPSPL14 EPSPL15 EPSPL16 MOTOT; *---------------------CALCUL DES VALEURS MOYENNES---------------------* XCHAP3 = SELMOY * ZONEA1M; XCHAP2 = XCHAPD1 * ZONEA2; XCHAP = XCHAP3 + XCHAP2; *-----------MATERIAU-------------* EPRIM = EPRIM1 * ZONEAM; NUPRIM = NUPRIM1 * ZONEAM; E2 = EPRIM + (ZONEIM * E1); NU2 = NUPRIM + (ZONEIM * NU1); CARACTERISTIQUES 'STRESSES'; EPSIM = CM1 * XCHAP; FOIM = 'BSIGMA' MOTOT SIGIM; RIIM = RIIM1 ET CLIM; DINEL = 'RESOU' RIIM FOIM; RO = ROA - SIGIM; SIGMOY = RO + SIGMEL; XCHNO1 = XCHAP * ZONEAM; XCHNO2 = ((-1.) * DEVRO) * ZONEIM; XCHAMOY = XCHNO1 + XCHNO2; X = (XCHAMOY + DEVRO) * ZONEAM; EPSPL1 = CM1 * X; EPSIPM = @ZACPRO1 EPSPL11 EPSPL12 EPSPL13 EPSPL14 EPSPL15 EPSPL16 MOTOT; QQQQ = QQQQ + 1; CRIT1 = BOUCLE EGA 1; SI CRIT1; *-----VERIFICATION XCHAPMOY +/- DXCHAP APPARTIENT A L'INTERSECTION----* XCHMAX = XCHAMOY + (DXCHNOU * 0.5); XCHMIN = XCHAMOY - (DXCHNOU * 0.5); DMAX1 = XCHMAX - SS2; DMIN1 = XCHMIN - SS1; INB17 = DMAX 'MASQUE' 'SUPERIEUR' SIGY2; INB18 = DMIN 'MASQUE' 'SUPERIEUR' SIGY2; INB1718 = INB17 * INB18; ZONEZAS = ((INB17 + INB18) - INB1718) * ZONEIA; ZONEZA = ZONEZAS + ZONEZA; FMOY1 = ZONEZAS 'MASQUE' 'DIFFERENT' 'SOMME' 0.; FMOY2 = FMOY1 EGA 0; NBRB1 = NBRB1 + 1; FMOY3 = NBRB1 'EGA' NF1; FMOY = FMOY2 OU FMOY3; SI FMOY; BOUCLE = BOUCLE + 1; FINSI; FINSI; CRIT4 = BOUCLE NEG 1; SI CRIT4; *---------------------VERIFICATION DSEL.DX>=0-------------------------* ZON1GAS = DSELDX 'MASQUE' 'INFERIEUR' 0.; FDELTA1 = ZON1GAS 'MASQUE' 'DIFFERENT' 'SOMME' 0.; FDELTA = FDELTA1 EGA 0; *----------------------VERIFICATION SIGM.XM>=0------------------------* ZON2GAS = SIGMXM 'MASQUE' 'INFERIEUR' 0.; GDELTA1 = ZON2GAS 'MASQUE' 'DIFFERENT' 'SOMME' 0.; GDELTA = GDELTA1 'EGA' 0; HDELTA1 = FDELTA ET GDELTA; NBRB2 = NBRB2 + 1; HDELTA2 = NBRB2 'EGA' NF2; HDELTA = HDELTA1 OU HDELTA2; SI HDELTA; QUITER BLOC1; FINSI; ZONEGA1 = ZONEGA1 + ZON1GAS; CRIT2 = IND - ZONEGA1; ZONEGA2 = ZONEGA2 + ZON2GAS; CRIT3 = IND - ZONEGA2; LIST NBRB1; LIST NBRB2; FINSI; FIN BLOC1; *-------------------------RESULTAT FINAL------------------------------* TABRES = TABLE; TABRES.'DEPFINA' = DEPSIP; TABRES.'DSIFINA' = DSIG; TABRES.'EPMFINA' = EPSIPM; TABRES.'SIMFINA' = SIGMOY; TABRES.'MATETOT' = MATOT; TABRES.'MODETOT' = MOTOT; FINP TABRES;
© Cast3M 2003 - Tous droits réservés.
Mentions légales