* DECONV3D PROCEDUR WANG 16/01/25 21:15:00 8800 F1*'FLOTTANT'F2*'FLOTTANT' FC/'FLOTTANT' P_GAMMA/'TABLE' ; ************************************************************************ * * D E C O N V 3 D * ----------------- * * FONCTION: * --------- * * Cette procedure permet d'effectuer des calculs sismiques * d'interaction sol-structure (ISS) en 3D par la methode des * elements finis. * * PHRASE D'APPEL (EN GIBIANE): * ---------------------------- * * TABRESU = DECONV3D COUCHE PC FOND_SOL MOD_SOL MAT_SOL DIR * GAMMAO F1 F2 (FC) (P_GAMMA) * * OPERANDES: * ---------- * * COUCHE 'TABLE' : table de donnees * COUCHE.'BLK' : Si existe, deconvolution pour la methode de Bielak * COUCHE.'BLK'.'EP_H' : epaisseur horizontale de la zone intermediare * verticale * COUCHE.'BLK'.'EP_V' : epaisseur veriticle de la zone intermediare * horizontale * COUCHE.I.'indice' : donnees pour la ieme couche du sol * * indice 'FRONTIERE' 'MAILLAGE' : frontiere verticale * indice 'MASSE_VOLUMIQUE' 'FLOTTANT' : masse volumique * indice 'POISSON' 'FLOTTANT' : coefficient de Poisson * indice 'YOUNG' 'FLOTTANT' : module d'Young * indice 'AMORTISSEMENT 'FLOTTANT' : amortissement reduit * * PC 'MAILLAGE' : point de reference situe au milieu du millage * de solou sur l'axe de symetrie si calcul sur * la moitie et le quart du systeme * FOND_SOL 'MAILLAGE' : frontiere horizontale inferieure du sol * MOD_SOL 'MMODEL' : modele du sol * MAT_SOL 'MCHAML' : materiau du sol * DIR 'MOT' : direction de l'acceleration sismique GAMMAO * 'UX' pour la direction horizontale X * 'UY' pour la direction horizontale Y * 'UZ' pour la direction verticale Z * GAMMAO 'EVOLUTIO' : Signal sismique (accelerogramme) d'entree pour * la deconvolution, defini par defaut a la surface * libre du sol, sinon, renseigner la table P_GAMMA * F1, F2 'FLOTTANT' : frequences sur lesquelles l'amortissement * : reduit est ajuste suivant le modele de * RAYLEIGH * FC 'FLOTTANT' : frequence de coupure pour la deconvolution, * par defaut FC = 50 Hz * P_GAMMA 'TABLE' : Description des accelerogrammes d'entree et de sorti * pour la deconvolution (facultatif) * indice 'ENTREE' :'TABLE' : description de la nature de l'accelerogramme * GAMMAO autre que sur la surface libre ou description * de l'onde incidente inclinée SH dans le cas d'un sol * demi-espace homogène. * (facultatif) * sous-indice 'NATURE' : nature du point de controle : * 'MOT' INSIDE : dans le sol * 'MOT' OUTCROP : outcrop du bedrock * 'MOT' SH : Onde incidente SH inclinée dans le cas * de la methode Bielak * DIR = UX implique onde SH dans le plan YZ, * DIR = UY implique onde SH dans le plan XZ, * * sous-indice 'ANGLE' : Angle d'incidence de l'onde SH si 'NATURE' = SH * * sous-indice 'CONTROLE' :'MAILLAGE': * si 'NATURE' = INSIDE, point de controle sur la * frontiere verticale * si 'NATURE' = 'SH', point de controle à la * surface du sol pour lequel on impose * l'accélérogramme du champ libre GAMMAO * * indice 'I' :'MAILLAGE': Ieme (i = 1, 2, 3,...) points sur la * frontiere verticale pour lesquels on desire sortir * l'accelerogramme en champ libre (resultats de * deconvolution) * RESULTATS: * ---------- * TABRESU 'TABLE' : table qui contient les resultats du calcul * * indice 'CHAR' 'CHARGEMENT' : excitation sur la frontiere du sol * indice 'AMOR' 'RIGIDITE' : frontiere absorbante * indice 'DEFO' 'EVOLUTIO' : deformation maximale en fonction * de la profondeur * indice 'ACCE' 'TABLE' : table qui contient les accelerations * obtenues par la deconvolution * sous-indice I acceleration du point I defini dans la * table P_GAMMA * sous-indice 'OUTCROP' acceleration du outcrop de bedrock * * indice 'PAS' 'FLOTTANT' * indice 'FCDYN' 'FLOTTANT' : pas de temps et frequence de coupure * a utiliser pour le calcul de * l'interaction sol-structure * a l'aide de la procedure DYNAMIC * * AUTEUR, DATE DE CREATION ET DE MODIFICATION: * -------------------------------------------- * * F. WANG 20/05/2009 : Creation. * F. WANG 07/10/2010 : Mise a zero des vitesses initiales * au sens moyen sur les 70 premiers pas * eliminant ainsi la rotation du bloc de sol, * Changement de format du chargement reduisant * largement le temps de calcul dynamique. * F. WANG 01/02/2012 : Correction d'un bug MAT_S -> MAT_SOL, * Elimination des accents dans les * commentaires pour eviter des problemes * F. WANG 20/02/2013 : Ajout des options concernant le signal * d'entree : INSIDE et OUTCROP * Ajout du signal de sortie outcrop de bedrock * F. WANG 01/02/2014 : Implantation de la methode de Bielak * permettant d'alleger le calcul * A. FRAU 01/07/2015 : Correction Bug * * F. WANG 01/10/2015 : Implantation d'une nouvelle option: Onde SH * inclinée dans l'option Bielak * ************************************************************************ BIELAK = VRAI ; 'MESS' 'DECONVOLUTION POUR LA METHODE DE BIELAK' ; 'SINON' ; BIELAK = FAUX ; 'FINSI' ; *-----------DEBUT DE MODIFICATION 01/10/2015. WANG)-------------------- SH = FAUX ; 'SI' (EGA P_GAMMA.ENTREE.NATURE 'SH') ; ANGLE = P_GAMMA.ENTREE.ANGLE ; SH = VRAI ; SI (EGA DIR 'UX') ; FINSI ; SI (EGA DIR 'UY') ; FINSI ; SI (NB_COU > 1); FINSI ; SI (NON BIELAK) ; FINSI ; 'FINSI' ; 'FINSI' ; 'FINSI' ; *-----------FIN DE MODIFICATION 01/10/2015 F. WANG)-------------------- * Verification du maillage de la frontiere du sol : * Types d'elements de frontiere : QUA4 + TRI3 ou QUA8 + TRI6 FRSOL = FOND_SOL; I = 1; 'REPE' BCL0 NB_COU; FRSOL = FRSOL 'ET' COUCHE.I.'FRONTIERE'; I = I + 1; 'FIN' BCL0; 'FINSI'; 'SI' ((('EGA' TYPF1 'QUA4') ET ('EGA' TYPF2 'TRI3')) OU (('EGA' TYPF1 'TRI3') ET ('EGA' TYPF2 'QUA4'))); TY1 = 'CUB8'; TY2 = 'PRI6'; 'SINON'; 'SI' ((('EGA' TYPF1 'QUA8') ET ('EGA' TYPF2 'TRI6')) OU (('EGA' TYPF1 'TRI6') ET ('EGA' TYPF2 'QUA8'))); TY1 = 'CU20'; TY2 = 'PR15'; 'SINON'; 'FINSI'; 'FINSI'; 'FINSI'; 'SI' (('EGA' TYPF1 'QUA4') OU ('EGA' TYPF1 'TRI3')); TY1 = 'CUB8'; TY2 = 'PRI6'; 'SINON'; 'SI' (('EGA' TYPF1 'QUA8') OU ('EGA' TYPF1 'TRI6')); TY1 = 'CU20'; TY2 = 'PR15'; 'SINON'; 'FINSI'; 'FINSI'; 'FINSI'; 'MESS' 'CARACTERISTIQUES MECANIQUES DU SOL' ; I = 0 ; 'REPE' BOUCL0 NB_COU ; I = I + 1 ; E_I = COUCHE.I.'YOUNG' ; NU_I = COUCHE.I.'POISSON' ; COUCHE.I.'MODULE_G' = E_I / ( 2. * ( 1. + NU_I ) ) ; CS_I = ( COUCHE.I.'MODULE_G' / COUCHE.I.'MASSE_VOLUMIQUE' ) ** .5 ; CP_I = ((2.0 * (1.0 - NU_I))/(1.0 - (2.0 * NU_I))) ** 0.5 ; CP_I = CP_I * CS_I ; FR_I = COUCHE.I.'FRONTIERE' ; COUCHE.I.'EPAISSEUR' = Z_MAX - Z_MIN ; 'SAUT' 'LIGNE' ; 'MESS' 'COUCHE NUMERO ' I ; 'SAUT' 'LIGNE' ; 'MESS' 'VITESSE DES ONDES S CS ' CS_I ; 'MESS' 'VITESSE DES ONDES P CP ' CP_I ; 'FIN' BOUCL0 ; ************* Construction d'une couche de sol enveloppe *************** * * La couche enveloppe est construite a l'exterieur de la * frontiere du sol (en utilisant le point de reference PC) * ************************************************************************ 'MESS' 'CONSTRUCTION D"UNE ENVELOPPE DE SOL' ; DR = (A_I/NE_I) ** 0.5 ; 'SI' BIELAK ; DR = COUCHE.BLK.EP_H ; 'FINSI' ; 'FINSI' ; R_FR = ((XMAX**2) + (YMAX**2)) ** 0.5 ; RAPP = (R_FR + DR) / R_FR ; COLONN = 'TABLE' ; COLMOD = 'TABLE' ; COLMAT = 'TABLE' ; COLMAS = 'TABLE' ; COLRIG = 'TABLE' ; COLBLO = 'TABLE' ; COLAMO = 'TABLE' ; F1 = 1.0 ; F2 = 25.0 ; 'FINSI' ; 'MESS' 'AMORTISSEMENT DE RAYLEIGH POUR LE SOL' ; ALPHA = PI * 4 * F1 * F2 / ( F1 + F2 ) ; BETA = 1 / ( PI * ( F1 + F2 ) ) ; I = 0 ; 'REPE' BOUCL1 NB_COU ; I = I + 1 ; KSI = COUCHE.I.'AMORTISSEMENT' ; FR_I = COUCHE.I.'FRONTIERE' ; 'ISOTROPE' TY1 TY2 ; 'NU' ( COUCHE.I.'POISSON' ) 'RHO' ( COUCHE.I.'MASSE_VOLUMIQUE' ) ; 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ; 'SINON' ; 'SI' ('EGA' DIR 'UZ') ; 'FINSI' ; 'FINSI' ; COLAMO.I = KSI * (( ALPHA * ( COLMAS.I ) ) 'ET' ( BETA * ( COLRIG.I 'ET' COLBLO.I ))) ; 'SI' ( I 'EGA' 1 ) ; COL1 = COLONN.I ; MOD1 = COLMOD.I ; MAT1 = COLMAT.I ; MAS1 = COLMAS.I ; RIG1 = COLRIG.I ; BLO1 = COLBLO.I ; AMO1 = COLAMO.I ; 'SINON' ; COL1 = COL1 'ET' ( COLONN.I ) ; MOD1 = MOD1 'ET' ( COLMOD.I ) ; MAT1 = MAT1 'ET' ( COLMAT.I ) ; MAS1 = MAS1 'ET' ( COLMAS.I ) ; RIG1 = RIG1 'ET' ( COLRIG.I ) ; BLO1 = BLO1 'ET' ( COLBLO.I ) ; AMO1 = AMO1 'ET' ( COLAMO.I ) ; 'FINSI' ; 'FIN' BOUCL1 ; RIGT = RIG1 'ET' BLO1 ; 'SINON' ; 'FINSI' ; * Amortisseurs a la base de l'enveloppe 'SAUT' 'LIGNE' ; (0 1 ZBA) 0.001 ; BAS_COL = SBAS ; AMOT = AMO_BAS 'ET' AMO1 ; * Point surface libre et point base du sol (1 0 ZSUR) (0 1 ZSUR) 0.001 ; P_SUR = PSUR 'POINT' 'INITIAL' ; ; (1 0 ZBAS) (0 1 ZBAS) 0.001 ; P_BAS = PBAS 'POINT' 'INITIAL' ; * Renumerotation des noeuds sur la frontiere : TASSER "FRON" 'MESS' 'NOMBRE DE NOEUDS SUR LA FRONTIERE :' NB_NOEU ; * Acces aux noeuds sur la frontiere POI_FRO = 'TABLE' ; I = 0 ; 'REPE' BOUCL2 NB_NOEU ; I = I + 1 ; 'FIN' BOUCL2 ; ******************* Reponse dynamique de L'enveloppe ***************** * * Pour eviter des problemes de precision lies a l'interpolation du * chargement produit par cette procedure, le pas de temps utilise ici * pour la deconvolution sera egalement utilise pour le calcul d'ISS. * * Le pas de temps est egale a 1/2, 1/4, 1/8, ... de celui de GAMMAO * pour eviter des erreurs d'interpolation sur le signal d'entree. Il * doit etre defini de sorte que la frequence de coupure utilisee dans * la procedure DYNAMIC est au moins 4 fois FC. * * Duree de calcul * * sol monocouche : 3 aller-retours onde S * sol multicouche : 5 aller-retours onde S (prise en compte des * reflections sur les interfaces des couches) * ************************************************************************ * Frequence de coupure FC FC = 50.0 ; 'FINSI' ; 'SAUT' 'LIGNE' ; 'MESS' 'REPONSE DYNAMIQUE DE L ENVELOPPE' ; 'SAUT' 'LIGNE' ; PAS_TEM = TEM2 - TEM1 ; PAS_2FC = 1.0 / ( 8 * FC ) ; IDIV = 0 ; 'REPE' BB1 ; ERR = (( PAS_TEM / ( 2**IDIV )) - PAS_2FC ) / PAS_2FC ; 'SI' ( ERR < 0.01 ) ; 'QUIT' BB1 ; 'FINSI' ; IDIV = IDIV + 1 ; 'FIN' BB1 ; PAS_TEM = PAS_TEM / (2**IDIV) ; *---------------------------------------------------------------------- * Aller a la partie (Bielak et SH) (modif du 01/10/2015 par F. WANG) * SI (NON (ET BIELAK SH)) ; * *---------------------------------------------------------------------- 'SI' ( NB_COU 'EGA' 1 ) ; G = ( COUCHE. 1 . 'MODULE_G' ) ; CS = ( G / ( COUCHE. 1 . 'MASSE_VOLUMIQUE' ) ) ** 0.5 ; DUREE = 6.0 * ( COUCHE. 1 . 'EPAISSEUR' ) / CS ; 'SINON' ; DUREE = 0.0 ; I = 0 ; 'REPE' BOUCD NB_COU ; I = I + 1 ; G = ( COUCHE.I.'MODULE_G' ) ; CS = ( G / ( COUCHE.I.'MASSE_VOLUMIQUE' ) ) ** 0.5 ; DUREE = DUREE + ( 10.0 * ( COUCHE.I.'EPAISSEUR' ) / CS ) ; 'FIN' BOUCD ; 'FINSI' ; * Impulsion de force horizontale a la base de l'enveloppe * Sa transforme de Fourier doit etre non nulle dans * l'intervalle (0, FC). On a DT = 7 * PAS_TEM 'SAUT' 'LIGNE' ; 'TITRE' 'FORCE APPLIQUEE A LA BASE DE L ENVELOPPE' ; DT = 7 * PAS_TEM ; NT = 300 ; DUREE = DUREE + ( 4. * DT ) ; 'SI' ( DUREE < ( 8. * DT ) ) ; DUREE = 8. * DT ; 'FINSI' ; NB_PAS = 'ENTI' ( DUREE / PAS_TEM ) ; DUREE = NB_PAS * PAS_TEM ; 'SAUT' 'LIGNE' ; 'MESS' 'CALCUL DYNAMIQUE POUR LA DECONVOLUTION' ; 'SI' ( 'EGA' DIR 'UX' ) ; 'SINON' ; 'SI' ( 'EGA' DIR 'UY' ) ; 'SINON' ; 'SI' ( 'EGA' DIR 'UZ' ) ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'LIST' FOR_BAS ; FCDYN = 1.0 / (4 * PAS_TEM) ; TAB_DYN ='TABLE' ; TAB_DYN.'DEBU' = TEM1 ; TAB_DYN.'VITE' = CH_VITI ; TAB_DYN.'INST' = LINST ; TAB_DYN.'FREQ' = FCDYN ; 'TEMP' ; 'SAUT' 'LIGNE' ; 'MENA' ; 'TEMP' ; * Deplacements, vitesses, deformations et reactions 'SI' ( 'EGA' DIR 'UX' ) ; 'SINON' ; 'SI' ( 'EGA' DIR 'UY' ) ; 'SINON' ; 'SI' ( 'EGA' DIR 'UZ' ) ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'MESS' 'FONCTION DE TRANSFERT POUR LES DEPLACEMENTS, LES VITESSES,' ; U_FRON = 'TABLE' ; V_FRON = 'TABLE' ; E_FRON = 'TABLE' ; R_FRON = 'TABLE' ; R1_FRON = 'TABLE' ; R2_FRON = 'TABLE' ; J = 0 ; 'REPE' BOUCL3 NB_NOEU ; J = J + 1 ; 'FIN' BOUCL3 ; I_TEM = 1 ; 'REPE' BOUCL4 ( NB_PAS - 1 ) ; I_TEM = I_TEM + 1 ; 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ; J = 0 ; 'REPE' BOUCL4_1 NB_NOEU ; J = J + 1 ; 'FIN' BOUCL4_1 ; 'SINON' ; 'SI' ('EGA' DIR 'UZ') ; J = 0 ; 'REPE' BOUCL4_2 NB_NOEU ; J = J + 1 ; 'FIN' BOUCL4_2 ; 'FINSI' ; 'FINSI' ; 'FIN' BOUCL4 ; * TFR de l'acceleration en surface GAMMAO 'TITRE' 'TRANSFORMATION DE FOURIER DE GAMMAO' ; XX = ( LOG NP ) / ( LOG 2 ) ; NN = 'ENTI' XX ; 'SI' ( XX > ( 1.0 * NN ) ) ; NN = NN + 1 ; 'FINSI' ; 'SI' ( IDIV NEG 0 ) ; NN = NN + IDIV ; NFREQ1 = (2**(NN - 1)) + 1 ; MO_GAMO 'PHASE' PH_GAMO ; 'FINSI' ; *-------------------- Debut de modif 1 du 20/02/2013 ------------------- * TFR du deplacement de controle 'TITRE' 'TFR DU DEPLACEMENT DE CONTROLE' ; OMEGA2 = ( FR_GAMO * 2. * PI ) ** 2 ; MOD = MO_GAMO / ( OMEGA2 * ( -1 ) ) ; 'MODULE' MOD 'PHASE' PH_GAMO ; * TFR du deplacement du outcrop de bedrock sous l'impulsion * Calcul de vitesse VOUT à partir de l'impulsion à la base F et * l'amortissement à la base C (VOUT = F/C, sur une unite de surface) G = ( COUCHE.NB_COU.'MODULE_G' ) ; RO = ( COUCHE.NB_COU.'MASSE_VOLUMIQUE' ) ; NU = ( COUCHE.NB_COU.'POISSON') ; CS = ( G / RO ) ** 0.5 ; CP = ((2.0 * (1.0 - NU))/(1.0 - (2.0 * NU))) ** 0.5 ; CP = CP * CS ; 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ; VOUT = EV_FOR / (RO * CS) ; 'SINON' ; 'SI'( 'EGA' DIR 'UZ') ; VOUT = EV_FOR / (RO * CP) ; 'FINSI' ; 'FINSI' ; 'TITR' 'VITESSE OUTCROP SOUS L IMPULSION' ; IOMEGA = 2.*PI*LF_VOUT ; TF_UOUT = TF_VOUT / EVIOMEGA ; RIMP TF_UOUT ; * Fonction de transfert H_DEPL = 'TABLE' ; H_VITE = 'TABLE' ; H_EPSI = 'TABLE' ; H_REAC = 'TABLE' ; H1_REAC = 'TABLE' ; H2_REAC = 'TABLE' ; * Point de controle en surface libre (option par defaut) 'TITRE' 'DEPLACEMENT EN SURFACE' ; * Remplacer le debut zero de TF_UOUT par celui de TF_UO 'MODULE' LM_OUT 'PHASE' LP_OUT ; * Option point de contole "INSIDE" 'SI' (EGA P_GAMMA.ENTREE.NATURE 'INSIDE'); 'FINSI' ; * Option point de controle "OUTCROP" de bedrock 'SI' (EGA P_GAMMA.ENTREE.NATURE 'OUTCROP') ; TF_UO = TF_UOUT ; 'FINSI' ; 'FINSI' ; 'FINSI' ; *--------------------- Fin de modif 1 du 20/02/2013 -------------------- * Elimination des zeros dans TF_UO TF_UO = TF_UO * EVFIL ; TF_UO = TF_UO + EVADD ; TF_GAMO = TF_GAMO * EVFIL ; TF_DEPLO = TF_DEPLO * EVFIL ; 'TITR' 'ACCELERATION FILTREE AU POINT DE CONTROLE' ; 'TITR' 'DEPLACEMENT FILTREE AU POINT DE CONTROLE' ; 'TITRE' 'DEPLACEMENT A LA BASE' ; 'TITRE' 'VITESSE A LA BASE' ; 'TITRE' 'DEFORMATION A LA BASE' ; 'TITRE' 'REACTION A LA BASE' ; 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ; 'SINON' ; 'SI' ('EGA' DIR 'UZ') ; 'FINSI' ; 'FINSI' ; J = 0 ; 'REPE' BOUCL5 NB_NOEU ; J = J + 1 ; 'TITRE' 'FONCTION DE TRANSFERT HU DU NOEUD ' J ; H_DEPL.J = TF_UJ / TF_UO ; 'TITRE' 'FONCTION DE TRANSFERT HV DU NOEUD' J ; H_VITE.J = TF_VJ / TF_UO ; 'TITRE' 'FONCTION DE TRANSFERT HE DU NOEUD' J ; H_EPSI.J = TF_EJ / TF_UO ; 'TITRE' 'FONCTION DE TRANSFERT HR DU NOEUD' J ; 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ; H_REAC.J = TF_RJ / TF_UO ; 'SINON' ; 'SI' ('EGA' DIR 'UZ') ; H1_REAC.J = TF_R1J / TF_UO ; H2_REAC.J = TF_R2J / TF_UO ; 'FINSI' ; 'FINSI' ; 'FIN' BOUCL5 ; 'MENA' ; *-------------------- Debut de modif 2 du 20/02/2013 ------------------- * Acceleration apres deconvolution 'MESS' 'ACCELERATION DU CHAMP LIBRE' ; GAMMA = 'TABLE' ; NB_GAM = NB_GAM - 1 ; 'FINSI' ; K = 0 ; 'REPE' BOUCL6 NB_GAM ; K = K + 1 ; HU = H_DEPL.NUM_P ; 'TITRE' 'ACCELERATION DU POINT' K ; TF_GAM = HU * TF_GAMO ; 'FIN' BOUCL6 ; HU = TF_UOUT / TF_UO ; 'TITRE' 'ACCELERATION OUTCROP DE BEDROCK' ; TF_GAM = HU * TF_GAMO ; 'FINSI' ; *--------------------- Fin de modif 2 du 20/02/2013 -------------------- 'SAUT' 'LIGNE' ; J = 0 ; 'REPE' BOUCL7 NB_NOEU ; J = J + 1 ; * Vitesse compatible avec GAMMAO 'TITRE' 'VITESSE DU NOEUD' J ; TF_VITE = ( H_VITE.J ) * TF_DEPLO ; * On met la vitesse initiale (moyenne sur NV point) a zero NV = 1 ; Y1 = 0 ; IV = 1 ; 'REPE' BV NV ; IV = IV + 1 ; 'FIN' BV ; Y1 = Y1 / NV ; LY = LY - LY1 ; * Deformation 'TITRE' 'DEFORMATION AU NOEUD' J ; TF_EPSI = H_EPSI.J * TF_DEPLO ; * Reactions des appuis : DIR = UX ou UY, Reaction FZ * DIR = UZ, Reaction Fx et FY 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ; 'TITRE' 'REACTION VERTICALE AU NOEUD' J ; TF_REAC = ( H_REAC.J ) * TF_DEPLO ; * On met la reaction intiale a zero LY = LY - LY1 ; 'SINON' ; 'SI' ('EGA' DIR 'UZ') ; 'TITRE' 'REACTIONS HORIZONTALES AU NOEUD' J ; TF1_REAC = ( H1_REAC.J ) * TF_DEPLO ; TF2_REAC = ( H2_REAC.J ) * TF_DEPLO ; * On met les reactions intiales a zero LY = LY - LY1 ; LY = LY - LY1 ; 'FINSI' ; 'FINSI' ; 'FIN' BOUCL7 ; ************************************************************************ * Force d'amortissement a la base 'SAUT' 'LIGNE' ; G = ( COUCHE.NB_COU.'MODULE_G' ) ; RO = ( COUCHE.NB_COU.'MASSE_VOLUMIQUE' ) ; NU = ( COUCHE.NB_COU.'POISSON') ; CS = ( G / RO ) ** 0.5 ; CP = ((2.0 * (1.0 - NU))/(1.0 - (2.0 * NU))) ** 0.5 ; CP = CP * CS ; 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ; SIG_AMO = RO * CS * V_FRON.NUM_BAS ; 'SINON' ; 'SI'('EGA' DIR 'UZ') ; SIG_AMO = RO * CP * V_FRON.NUM_BAS ; 'FINSI' ; 'FINSI' ; * Contrainte a la base 'MESS' ; 'TITR' 'FONCTION DE TRANSFERT DE L"IMPULSION' ; HS = TF_FOR / TF_UO ; TF_SIG = HS * TF_DEPLO ; * On met la contrainte initiale a zero LY = LY - LY1 ; 'MENA' ; ************************************************************************ *** FRONTIERE ABSORBANTE DU SOL PROCHE *** ************************************************************************ 'MESS' 'FRONTIERE ABSORBANTE DU SOL PROCHE' ; 'SAUT' 'LIGNE' ; 'MESS' 'FRONTIERE VERTICALE DU SOL ' ; I = 0 ; 'REPE' BOUCL8 NB_COU ; I = I + 1 ; 'SI' ( I 'EGA' 1 ) ; 'SINON' ; 'FINSI' ; 'FIN' BOUCL8 ; 'MESS' 'FRONTIERE HORIZONTALE DU SOL' ; AMOF = AM_V 'ET' AM_H ; ************************************************************************ *** CHARGEMENT SISMIQUE SUR LA FRONTIERE HORIZONTALE *** ************************************************************************ 'MESS' 'CHARGEMENT SISMIQUE SUR LA FRONTIERE HORIZONTALE' ; * FO : forces nodales equivalentes de la contrainte 'SI' ( 'EGA' DIR 'UX' ) ; 'SINON' ; 'SI' ( 'EGA' DIR 'UY' ) ; 'SINON' ; 'SI' ( 'EGA' DIR 'UZ' ) ; FOR_H = FOR_P ; 'FINSI' ; 'FINSI' ; 'FINSI' ; * Amortissement * vitesse (A*VO) 'SI' (NON BIELAK) ; 'SI' ( 'EGA' DIR 'UX' ) ; 'SINON' ; 'SI' ( 'EGA' DIR 'UY' ) ; 'SINON' ; 'SI' ( 'EGA' DIR 'UZ' ) ; 'FINSI' ; 'FINSI' ; 'FINSI' ; F_BAS = AM_H * CH_V ; 'MENA' ; 'FINSI' ; ************************************************************************ *** CHARGEMENT SISMIQUE SUR LA FRONTIERE VERTICALE *** ************************************************************************ * FO = - Reaction 'MESS' 'CHARGEMENT SISMIQUE SUR LA FRONTIERE VERTICALE' ; 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ; J = 0 ; 'REPE' BOUCL9_1 NB_NOEU ; J = J + 1 ; 'SI' ( J 'EGA' 1 ) ; 'SINON' ; 'ET' CHA_VFO ; 'FINSI' ; 'FIN' BOUCL9_1 ; 'SINON' ; 'SI' ('EGA' DIR 'UZ') ; J = 0 ; 'REPE' BOUCL9_2 NB_NOEU ; J = J + 1 ; 'SI' ( J 'EGA' 1 ) ; 'SINON' ; CHA_VFO ; 'FINSI' ; 'FIN' BOUCL9_2 ; 'FINSI' ; 'FINSI' ; * Amortissement * viteese : A*VO 'SI' (NON BIELAK) ; * DIR = UZ 'SI' ( 'EGA' DIR 'UZ' ) ; VISC = 'TABLE' ; K = 0 ; 'REPE' BOUCL10 NB_NOEU ; K = K + 1 ; EV01 = V_FRON.K ; 'FIN' BOUCL10 ; J = 0 ; 'REPE' BOUCL11 NB_NOEU ; J = J + 1 ; VEC_F = AM_V * VEC_U ; K = 0 ; 'REPE' BOUC11B NB_NOEU ; K = K + 1 ; VISC.K = VISC.K + ( AM_JK * V_FRON.J ) ; 'FIN' BOUC11B ; 'FIN' BOUCL11 ; * Recombinaison V_ABSC ( VISC. 1 ) ) ; K = 1 ; 'REPE' BOUCL12 ( NB_NOEU - 1 ) ; K = K + 1 ; V_ABSC ( VISC.K ) ) ) 'ET' CHA_VAX ; 'FIN' BOUCL12 ; 'FINSI' ; * Dir = UX ou UY 'SI' (( 'EGA' DIR 'UX' ) OU ( 'EGA' DIR 'UY' )) ; UDIR = DIR ; VISC_X = 'TABLE' ; VISC_Y = 'TABLE' ; K = 0 ; 'REPE' BOUCL16 NB_NOEU ; K = K + 1 ; EV01 = V_FRON.K ; 'FIN' BOUCL16 ; J = 0 ; 'REPE' BOUCL17 NB_NOEU ; J = J + 1 ; VEC_F = AM_V * VEC_U ; K = 0 ; 'REPE' BOUC17B NB_NOEU ; K = K + 1 ; VISC_X.K = VISC_X.K + ( AMX_JK * V_FRON.J ) ; VISC_Y.K = VISC_Y.K + ( AMY_JK * V_FRON.J ) ; 'FIN' BOUC17B ; 'FIN' BOUCL17 ; * Recombinaison V_ABSC ( VISC_X. 1 ) ) ; V_ABSC ( VISC_Y. 1 ) ) ; K = 1 ; 'REPE' BOUCL18 ( NB_NOEU - 1 ) ; K = K + 1 ; 'FIN' BOUCL18 ; CHA_VAX = CHA_VAX 'ET' CHA_VAY ; 'FINSI' ; 'FINSI' ; 'SI' BIELAK ; CHA1 = CHA_HFO 'ET' CHA_VFO ; 'SINON' ; CHA1 = CHA_HFO 'ET' CHA_HAX 'ET' CHA_VFO 'ET' CHA_VAX ; 'FINSI' ; * Changement de format du chargement ************************************************************************ *** Deformation de cisaillement maximale *** ************************************************************************ 'MESS' 'DEFORMATION MAXIMALE' ; J = 0 ; 'REPE' BOUCL19 NB_NOEU ; J = J + 1 ; 'REMP' PROF J ZJ ; 'REMP' GMAX J GX ; 'FIN' BOUCL19 ; * Evolution de deformation en profondeur 'SI' (('EGA' DIR 'UX') OU ('EGA' DIR 'UY')) ; 'TITR' 'DEFORMATION DE CISAILLEMENT MAXIMALE' ; 'DESS' DEFZ 'NCLK' ; 'FINSI' ; 'SI' ( 'EGA' DIR 'UZ' ) ; 'TITR' 'DEFORMATION VERTICALE MAXIMALE' ; 'DESS' DEFZ 'NCLK' ; 'FINSI' ; *-------------DEBUT DE MODIFICATION 01/02/2014 (F. WANG)---------------- * *----------------------------------------------------------------------- * IMPLANTATION DE LA METHODE DE BIELAK : * GENERATION DE LA ZONE INTERMEDIAIRE ET LE CHARGEMENT CORRESPONDANT *----------------------------------------------------------------------- 'SI' BIELAK ; * Calcul de dépalcement et d'acceleration A_FRON = 'TABLE' ; J = 0 ; 'REPE' BBLK1 NB_NOEU ; J = J + 1 ; 'TITRE' 'DEPLACEMENT AU NOEUD' J ; TF_DEPL = ( H_DEPL.J ) * TF_DEPLO ; LY = LY - LY1 ; 'TITR' 'ACCELARATION AU NOEUD' J ; * A_FRON.J = DERIV1 V_FRON.J ; TF_ACCE = ( H_DEPL.J ) * TF_GAMO ; LY = LY - LY1 ; 'FIN' BBLK1 ; * RECUPERATION DE LA COLONNE DE DECONVOLUTION BLKV_MAI = COL1 ; BLKV_MOD = MOD1 ; BLKV_MAT = MAT1 ; BLKV_MAS = MAS1 ; BLKV_RIG = RIG1 ; BLKV_AMO = AMO1 ; * GENERATION DE LA ZONE HORIZONTALE VEC_V = 0 0 (-1*COUCHE.BLK.EP_V) ; BLKH_MOD = 'MODE' BLKH_MAI 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' TY1 TY2 ; 'NU' (COUCHE.NB_COU.'POISSON') 'RHO' (COUCHE.NB_COU.'MASSE_VOLUMIQUE') ; BLKH_AMO = KSI * ((ALPHA * BLKH_MAS) 'ET' (BETA * BLKH_RIG)) ; * ZONE INTERMEDIAIRE COMPLETE BLK_MAI = BLKV_MAI 'ET' BLKH_MAI ; BLK_MOD = BLKV_MOD 'ET' BLKH_MOD ; BLK_MAT = BLKV_MAT 'ET' BLKH_MAT ; BLK_MAS = BLKV_MAS 'ET' BLKH_MAS ; BLK_RIG = BLKV_RIG 'ET' BLKH_RIG ; BLK_AMO = BLKV_AMO 'ET' BLKH_AMO ; * TRACE DE LA ZONE *----------------------------------------------------------------------- * CALCUL DU CHARGEMENT SUR LA ZONE INTERMEDIAIRE *----------------------------------------------------------------------- 'SI' ('EGA' DIR 'UX') ; 'FINSI' ; 'SI' ('EGA' DIR 'UY') ; 'FINSI' ; 'SI' ('EGA' DIR 'UZ') ; 'FINSI' ; * FRONTIERE HORIZONTALE F1 = 1.* NBFOND ; * FRONTIERE VERTICALE (SAUF LES NOEUDS A LA BASE * DEJA COMPTES SUR LA FRONTIERE HORIZONTALE) K = 0 ; 'REPE' BBLK2 NB_NOEU ; K = K + 1 ; 'SI' ((ABS (ZK - ZBAS)) > 0.001) ; 'FINSI' ; 'FIN' BBLK2 ; * FRONTIERE HORIZONTALE + VERTICALE CHU = CHU_V 'ET' CHU_H ; CHV = CHV_V 'ET' CHV_H ; CHA = CHA_V 'ET' CHA_H ; TAB_F = 'TABLE' ; TAB_FD = 'TABLE' ; TAB_FV = 'TABLE' ; TAB_FA = 'TABLE' ; I = 0 ; 'REPE' BBLK3 N_T ; CHU_I = CHU_I * BLK_RIG ; CHV_I = CHV_I * BLK_AMO ; CHA_I = CHA_I * BLK_MAS ; TAB_F.I = CHU_I + CHV_I + CHA_I ; TAB_FD.I = CHU_I ; TAB_FV.I = CHV_I ; TAB_FA.I = CHA_I ; I = I + 1 ; 'FIN' BBLK3 ; *----------------------------------------------------------------------- *----------------------------------------------------------------------- 'FINSI' ; * Sortie des resultats TABRESU = 'TABLE' ; 'SI' BIELAK ; * -- pour tester la procédure ----- TABRESU.'CHA1' = CHA1 ; TABRESU.'CHA2' = CHA2 ; *---------------------------------- TABRESU.'BLK_MAI' = BLK_MAI ; TABRESU.'BLK_MOD' = BLK_MOD ; TABRESU.'BLK_MAT' = BLK_MAT ; TABRESU.'BLK_MAS' = BLK_MAS ; TABRESU.'BLK_RIG' = BLK_RIG ; TABRESU.'BLK_AMO' = BLK_AMO ; 'SINON' ; 'FINSI' ; *-----------FIN DE MODIFICATION 01/02/2014 (F. WANG)------------------- TABRESU.'ACCE' = GAMMA ; TABRESU.'PAS' = PAS_TEM ; TABRESU.'FCDYN' = FCDYN ; *---------------------------------------------------------------------- 'SINON' ; *---------------------------------------------------------------------- * BIELAK ET ONDE SH * DEBUT DE MODIFICATION 01/10/2015. WANG) *---------------------------------------------------------------------- SI SH ; * RECUPERATION DE L ENVELOPPE DE DECONVOLUTION BLKV_MAI = COL1 ; BLKV_MOD = MOD1 ; BLKV_MAT = MAT1 ; BLKV_MAS = MAS1 ; BLKV_RIG = RIG1 ; BLKV_AMO = AMO1 ; * GENERATION DE LA ZONE HORIZONTALE VEC_V = 0 0 (-1*COUCHE.BLK.EP_V) ; BLKH_MOD = 'MODE' BLKH_MAI 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' TY1 TY2 ; 'NU' (COUCHE.NB_COU.'POISSON') 'RHO' (COUCHE.NB_COU.'MASSE_VOLUMIQUE') ; BLKH_AMO = KSI * ((ALPHA * BLKH_MAS) 'ET' (BETA * BLKH_RIG)) ; * ZONE INTERMEDIAIRE COMPLETE BLK_MAI = BLKV_MAI 'ET' BLKH_MAI ; BLK_MOD = BLKV_MOD 'ET' BLKH_MOD ; BLK_MAT = BLKV_MAT 'ET' BLKH_MAT ; BLK_MAS = BLKV_MAS 'ET' BLKH_MAS ; BLK_RIG = BLKV_RIG 'ET' BLKH_RIG ; BLK_AMO = BLKV_AMO 'ET' BLKH_AMO ; * TRACE DE LA ZONE INTERNE ET INTERMEDIAIRE * SURFACE INTERIEURE 'TITR' 'SURFACE INTERIEURE' ; 'TRAC' BLK_INT CACH ; * ACCES AUX NOEUDS 'TASS' BLK_INT ; POI_INT = 'TABLE' ; J = 0 ; 'REPE' BINT1 NB_INT ; J = J + 1 ; 'FIN' BINT1 ; 'TASS' BLK_MAI ; POI_ZON = 'TABLE' ; J = 0 ; 'REPE' BZON1 NB_ZON ; J = J + 1 ; 'FIN' BZON1 ; * TFR: ACCELERATION, VITESSE ET DEPLACEMENT DU POINT DE CONTROLE * (FC a prendre en compte ...) XX = ( 'LOG' NP ) / ( 'LOG' 2 ) ; NN = 'ENTI' XX ; 'SI' ( XX > ( 1.0 * NN ) ) ; NN = NN + 1 ; 'FINSI' ; 'TITRE' 'TFR ACCELERATION' ; 'SI' ( IDIV NEG 0 ) ; NN = NN + IDIV ; NFREQ1 = (2**(NN - 1)) + 1 ; MO_GAMMO 'PHASE' PH_GAMMO ; 'FINSI' ; OMEGA = 2*PI*FR_GAMMO ; 'TITRE' 'TFR VITESSE' ; 'RIMP' TFIOM ; TF_VITEO = TF_GAMMO / TFIOM ; 'TITRE' 'TFR DEPLACEMENT' ; TF_DEPLO = TF_VITEO / TFIOM ; * ACCELERATION, VITESSE ET DEPLACEMENT TABDON = 'TABLE' ; TABDON.PDC = P_GAMMA.ENTREE.CONTROLE ; TABDON.DIR = DIR ; TABDON.ANGLE = ANGLE ; TABDON.VS = CS_I ; TABDON.KSI = KSI ; TABDON.F1 = F1 ; TABDON.F2 = F2 ; TABDON.LF = FR_GAMMO ; * SURFACE INTERIEURE A_INT = 'TABLE' ; V_INT = 'TABLE' ; D_INT = 'TABLE' ; J = 0 ; 'REPE' BINT2 NB_INT ; J = J + 1 ; 'TITR' 'FONCTION DE TRANSFERT BLK_INT, NOEUD' J ; TABDON.PDF = POI_INT.J ; 'TITR' 'ACCELARATION BLK_INT, NOEUD' J ; LY = LY - LY1 ; 'TITR' 'VITESSE BLK_INT, NOEUD' J ; LY = LY - LY1 ; 'TITR' 'DEPLACEMENT BLK_INT, NOEUD' J ; LY = LY - LY1 ; 'DETR' H_INT ; 'FIN' BINT2 ; * ZONE INTERMEDIAIRE A_ZON = 'TABLE' ; V_ZON = 'TABLE' ; D_ZON = 'TABLE' ; J = 0 ; 'REPE' BZON2 NB_ZON ; J = J + 1 ; 'TITR' 'FONCTION DE TRANSFERT BLK_MAI, NOEUD' J ; TABDON.PDF = POI_ZON.J ; 'TITR' 'ACCELARATION BLK_MAI, NOEUD' J ; LY = LY - LY1 ; 'TITR' 'VITESSE BLK_MAI, NOEUD' J ; LY = LY - LY1 ; 'TITR' 'DEPLACEMENT BLK_MAI, NOEUD' J ; LY = LY - LY1 ; 'DETR' H_ZON ; 'FIN' BZON2 ; *----------------------------------------------------------------------- * CHARGEMENT SUR LA ZONE INTERNE (REACTION PAR LA ZONE INTERMEDIAIRE) * ZONE INTERMEDIARE COMPLETE SOUMISE AU MOUVEMENT DU CHAMP LIBRE *----------------------------------------------------------------------- 'SI' ('EGA' DIR 'UX') ; 'FINSI' ; 'SI' ('EGA' DIR 'UY') ; 'FINSI' ; J = 1 ; 'REPE' BZON3 (NB_ZON - 1) ; J = J + 1 ; 'FIN' BZON3 ; TABF_Z = 'TABLE' ; I = 0 ; 'REPE' BZON4 N_T ; CHD_Z = CHD_Z * BLK_RIG ; CHV_Z = CHV_Z * BLK_AMO ; CHA_Z = CHA_Z * BLK_MAS ; TABF_Z.I = CHD_Z + CHV_Z + CHA_Z ; I = I + 1 ; 'FIN' BZON4 ; TABREA = TABLE ; I = 0 ; 'REPE' BINT5 N_T ; I = I + 1 ; 'FIN' BINT5 ; *----------------------------------------------------------------------- * CHARGEMENT SUR LA ZONE INTERMEDIAIRE * * -SURFACE INTERIEURE: SOUMISE AU MOUVEMENT CHAMP LIBRE * -LE RESTE DE LA ZONE INTERMEDIARE Y COMPRIS LES NOEUDS INTERMEDIAIRES * SI ELEMENTS CU20 OU PR15): MOUVEMENT BLOQUE (ON NE MET RIEN) *----------------------------------------------------------------------- J = 1 ; 'REPE' BINT3 (NB_INT - 1) ; J = J + 1 ; 'FIN' BINT3 ; TABF_I = 'TABLE' ; I = 0 ; 'REPE' BINT4 N_T ; CHD_I = CHD_I * BLK_RIG ; CHV_I = CHV_I * BLK_AMO ; CHA_I = CHA_I * BLK_MAS ; TABF_I.I = CHD_I + CHV_I + CHA_I ; I = I + 1 ; 'FIN' BINT4 ; * Sortie des resultats TABRESU = 'TABLE' ; TABRESU.'BLK_MAI' = BLK_MAI ; TABRESU.'BLK_MOD' = BLK_MOD ; TABRESU.'BLK_MAT' = BLK_MAT ; TABRESU.'BLK_MAS' = BLK_MAS ; TABRESU.'BLK_RIG' = BLK_RIG ; TABRESU.'BLK_AMO' = BLK_AMO ; TABRESU.'ACCE' = GAMMA ; TABRESU.'PAS' = PAS_TEM ; TABRESU.'FCDYN' = 1./(4*PAS_TEM) ; FINSI ; FINSI ; *------------FIN DE MODIFICATION 01/10/2015. WANG)--------------------- 'FINPROC' TABRESU ; ************************************************************************
© Cast3M 2003 - Tous droits réservés.
Mentions légales