* DECONV PROCEDUR CB215821 23/10/18 21:15:03 11760 P_GAMMA/'TABLE' ; ************************************************************************ * * D E C O N V * ------------- * * FONCTION: * --------- * * Cette procédure permet d'effectuer des calculs d'interaction sol- * structure (ISS) en 2D (déformation plane ou mode Fourier 0 * (mouvement vertical) et 1 (mouvement horizontal)) par la méthode * des éléments finis * * PHRASE D'APPEL (EN GIBIANE): * ---------------------------- * * TABRESU = DECONV COUCHE FOND_SOL MOD_SOL (SOL) DIR * GAMMAO F1 F2 (FC) (TYP_F) (P_GAMMA) * * OPERANDES: * ---------- * * COUCHE 'TABLE' : table à double indice * * COUCHE.I.'indice' : données pour la ième couche du sol * * indice 'FRONTIERE' 'MAILLAGE' : frontière verticale * indice 'MASSE_VOLUMIQUE' 'FLOTTANT' : masse volumique * indice 'POISSON' 'FLOTTANT' : coefficient de Poisson * indice 'YOUNG' 'FLOTTANT' : module d'Young * indice 'AMORTISSEMENT 'FLOTTANT' : amortissement réduit * * FOND_SOL 'MAILLAGE' : frontière horizontale inférieure du sol * MOD_SOL 'MMODEL' : modèle du sol proche * SOL 'MAILLAGE' : maillage du sol proche, facultatif * DIR 'MOT' : direction de l'accélération sismique GAMMAO * 'HORI' pour la direction horizontale * 'VERT' pour la direction verticale * GAMMAO 'EVOLUTIO' : Signal sismique (accélérogramme) d'entrée pour * la déconvolution, défini par défaut à la surface * libre du sol, sinon, renseigner la table P_GAMMA * F1, F2 'FLOTTANT' : fréquences sur lesquelles l'amortissement * : réduit est ajusté suivant le modèle de * RAYLEIGH * FC 'FLOTTANT' : fréquence de coupure pour la déconvolution, * par défaut FC = 50 Hz * TYP_F 'MOT' : type de frontière : 'WHITE' (par défaut) * 'LYSMER' * P_GAMMA 'TABLE' : Description des accélérogrammes d'entrée et de * sortie pour la déconvolution (facultatif) * indice 'ENTREE' :'TABLE' : description de la nature de l'accélérogramm * GAMMAO autre que sur la surface libre (facultatif) * sous-indice 'NATURE' : Nature du point de contrôle : * 'MOT' INSIDE : profondeur du sol * 'MOT' OUTCROP : outcrop du bedrock * sous-indice 'CONTROLE' :'MAILLAGE': point de contrôle sur la frontière * verticale si sous-indice 'NATURE' = 'INSIDE' * indice 'I' :'MAILLAGE': Ième (i = 1, 2, 3,...) points sur la * frontière verticale pour lesquels on désire sortir * l'accélérogramme en champ libre (résultats de * déconvolution) * * RESULTATS: * ---------- * TABRESU 'TABLE' : table qui contient les résultats du calcul * * indice 'CHAR' 'CHARGEMENT' : excitation sur la frontière du sol * indice 'AMOR' 'RIGIDITE' : frontière absorbante de type TYP_F * indice 'DEFO' 'EVOLUTIO' : déformation maximale en fonction * de la profondeur * indice 'ACCE' 'TABLE' : table qui contient les accélérations * obtenues par la déconvolution * sous-indice I accélération du point I défini dans la * table P_GAMMA * sous-indice 'OUTCROP' accélération du outcrop de bedrock * * indice 'PAS' 'FLOTTANT' * indice 'FCDYN' 'FLOTTANT' : pas de temps et fréquence de coupure * à utiliser pour le calcul de * l'interaction sol-structure * à l'aide de la procédure DYNAMIC * * PROCEDURES APPELEES : * ------------------- * 'FRONABS' * * * AUTEUR, DATE DE CREATION ET DE MODIFICATION: * -------------------------------------------- * * F. WANG 11/06/1992 : Création, mouvement horizontal. * F. WANG 17/09/1996 : Mise à jour. * F. WANG 16/02/1999 : Modification, mouvement vertical * F. WANG 04/09/2008 : Optimisation du pas de calcul, * correction d'un plantage lié à la * profondeur de la déconvolutiobn, * Vérification du maillage de frontière. * F. WANG 07/10/2010 : Mise à zéro des vitesses initiales * au sens moyen sur les 100 premiers pas * éliminant ainsi la rotation du bloc de sol, * Changement de format du chargement réduisant * largement le temps de calcul dynamique * F. WANG 20/02/2013 : Ajout des options concernant le signal * d'entrée : PROFOND et OUTCROP * Ajout du signal de sortie outcrop de bedrock * F. WANG 04/01/2016 Changement du mot-clé 'PROFOND' en 'INSIDE' * pour être compatible avec la procedure * DECONV3D * Correction de bug dans le tracé de * l'evolution de la déformation maximale ************************************************************************ * Maillage de la frontière du sol : élément SEG3 seulement * Types d'éléments de sol QUA8 + TRI6 FRSOL = FOND_SOL; I = 1; 'REPE' BCL0 NB_COU; FRSOL = FRSOL 'ET' COUCHE.I.'FRONTIERE'; I = I + 1; 'FIN' BCL0; 'SINON'; 'SI' ('NEG' TYPF1 'SEG3'); 'FINSI'; 'FINSI'; TYP_F = 'WHITE' ; '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 ; P_INI = ( COUCHE.I.'FRONTIERE' ) 'POINT' 'INITIAL' ; P_FIN = ( COUCHE.I.'FRONTIERE' ) 'POINT' 'FINAL' ; COUCHE.I.'EPAISSEUR' = 'ABS' ( Z_INI - Z_FIN ) ; '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 colonne de sol ****************** * * La colonne est construite a l'extérieur de la frontière. * Dans le cas de PLANDEFO , elle est : * * - a droite pour la frontière droite ( X > 0 ) * - a gauche pour la frontière gauche ( X < 0 ) * ************************************************************************ 'MESS' 'CONSTRUCTION D"UNE COLONNE DE SOL' ; NOEU1 = AXP 'POINT' 1 ; NOEU2 = AXP 'POINT' 2 ; DZ = 'ABS' ( Z1 - Z2 ) ; 'SI' ( 0.0 > XF ) ; DZ = DZ * ( -1 ) ; 'FINSI' ; VEC_H = DZ 0. ; COLONN = 'TABLE' ; COLMOD = 'TABLE' ; COLMAT = 'TABLE' ; COLMAS = 'TABLE' ; COLRIG = 'TABLE' ; COLBLO = 'TABLE' ; COLAMO = 'TABLE' ; 'SI' ( 'EGA' TYP_MODE 'FOUR' ) ; 'SI' ( 'EGA' DIR 'HORI' ) ; 'SINON' ; 'SI' ( 'EGA' DIR 'VERT' ) ; 'FINSI' ; 'FINSI' ; 'SINON' ; 'SI' ( 'EGA' TYP_MODE 'PLANDEFO' ) ; 'SI' ( 'EGA' DIR 'HORI' ) ; 'SINON' ; 'SI' ( 'EGA' DIR 'VERT' ) ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 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' ; COLONN.I = ( COUCHE.I.'FRONTIERE' ) 'TRANS' 1 VEC_H ; 'ISOTROPE' 'QUA8' ; 'NU' ( COUCHE.I.'POISSON' ) 'RHO' ( COUCHE.I.'MASSE_VOLUMIQUE' ) ; 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' ; * Renumérotation des noeuds sur la frontière : TASSER "FRON" * Amortisseurs à la base de la colonne 'SAUT' 'LIGNE' ; BAS_ABS = 'TABLE' ; P_INI = ( COUCHE.NB_COU.'FRONTIERE' ) 'POINT' 'INITIAL' ; P_FIN = ( COUCHE.NB_COU.'FRONTIERE' ) 'POINT' 'FINAL' ; DZ = Z_INI - Z_FIN ; 'SI' ( DZ > 0.0 ) ; P_BAS = P_FIN ; 'SINON' ; P_BAS = P_INI ; 'FINSI' ; BAS_ABS.'YOUNG' = COUCHE.NB_COU.'YOUNG' ; BAS_ABS.'POISSON' = COUCHE.NB_COU.'POISSON' ; BAS_ABS.'MASSE_VOLUMIQUE' = COUCHE.NB_COU.'MASSE_VOLUMIQUE'; 'SI' ( 'EGA' DIR 'HORI' ) ; NHAR = 1 ; 'SINON' ; 'SI' ( 'EGA' DIR 'VERT' ) ; NHAR = 0 ; 'FINSI' ; 'FINSI' ; 'LIST' AMO_BAS ; AMOT = AMO_BAS 'ET' AMO1 ; * Accès aux noeuds sur la frontière P_INI = ( COUCHE. 1 . 'FRONTIERE' ) 'POINT' 'INITIAL' ; P_FIN = ( COUCHE. 1 . 'FRONTIERE' ) 'POINT' 'FINAL' ; DZ = Z_INI - Z_FIN ; 'SI' ( DZ > 0.0 ) ; P_SUR = P_INI ; 'SINON' ; P_SUR = P_FIN ; 'FINSI' ; NUM_SUR = 'NOEUD' P_SUR ; NUM_BAS = 'NOEUD' P_BAS ; POI_FRO = 'TABLE' ; I = 0 ; 'REPE' BOUCL2 NB_NOEU ; I = I + 1 ; 'FIN' BOUCL2 ; ****************** Réponse dynamique de la colonne ***************** * * Pour éviter des problèmes de précision liés à l'interpolation du * chargement produit par cette procédure, le pas de temps utilisé ici * pour la déconvolution sera également utilisé pour le calcul d'ISS. * * Le pas de temps est égale à 1/2, 1/4, 1/8, ... de celui de GAMMAO * pour éviter des erreurs d'interpolation sur le signal d'entrée. Il * doit être défini de sorte que la fréquence de coupure utilisée dans * la procédure DYNAMIC est au moins 4 fois FC. * * Durée de calcul * * sol monocouche : 3 aller-retours onde S * sol multicouche : 5 aller-retours onde S (prise en compte des * réflections sur les interfaces des couches) * ************************************************************************ * Fréquence de coupure FC FC = 50.0 ; 'FINSI' ; 'SAUT' 'LIGNE' ; 'MESS' 'REPONSE DYNAMIQUE DE LA COLONNE' ; '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) ; '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 à la base de la colonne * Sa transformé de Fourier doit être non nulle dans * l'intervalle (0, FC). On a DT = 7 * PAS_TEM 'SAUT' 'LIGNE' ; 'TITRE' 'FORCE APPLIQUEE A LA BASE DE LA COLONNE' ; DT = 7 * PAS_TEM ; NT = 600 ; 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' TYP_MODE 'FOUR' ) ; 'SI' ( 'EGA' DIR 'HORI' ) ; 'SINON' ; 'SI' ( 'EGA' DIR 'VERT' ) ; 'FINSI' ; 'FINSI' ; 'SINON' ; 'SI' ( 'EGA' TYP_MODE 'PLANDEFO' ) ; 'SI' ( 'EGA' DIR 'HORI' ) ; 'SINON' ; 'SI' ( 'EGA' DIR 'VERT' ) ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'LIST' FOR_BAS ; 'SI' ( 'EGA' TYP_MODE 'FOUR' ) ; 'SINON' ; 'SI' ( 'EGA' TYP_MODE 'PLANDEFO' ) ; 'FINSI' ; 'FINSI' ; 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' ; * Déplacements, vitesses, déformations et réactions * 'SI' ( 'EGA' TYP_MODE 'FOUR') ; 'SI' ( 'EGA' DIR 'HORI' ) ; 'SINON' ; 'SI' ( 'EGA' DIR 'VERT' ) ; 'FINSI' ; 'FINSI' ; 'SINON' ; 'SI' ( 'EGA' TYP_MODE 'PLANDEFO' ) ; 'SI' ( 'EGA' DIR 'HORI' ) ; 'SINON' ; 'SI' ( 'EGA' DIR 'VERT' ) ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'MESS' 'FONCTION DE TRANSFERT POUR LES DEPLACEMENTS, LES VITESSES,' ; U_FRON = 'TABLE' ; V_FRON = 'TABLE' ; E_FRON = 'TABLE' ; R_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 ; J = 0 ; 'REPE' BOUCL4_1 NB_NOEU ; J = J + 1 ; 'FIN' BOUCL4_1 ; 'FIN' BOUCL4 ; * TFR de l'accélération GAMMAO 'TITRE' 'TFR DE L ACCELEROGRAMME 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' ; *-------------------- Début de modif 1 du 20/02/2013 ------------------- * TFR du déplacement de contrôle 'TITRE' 'TFR DU DEPLACEMENT DE CONTROLE' ; OMEGA2 = ( FR_GAMO * 2. * PI ) ** 2 ; MOD = MO_GAMO / ( OMEGA2 * ( -1 ) ) ; 'MODULE' MOD 'PHASE' PH_GAMO ; * TFR du déplacement 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 unité 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 'HORI') ; VOUT = EV_FOR / (RO * CS) ; 'SINON' ; 'SI'( 'EGA' DIR 'VERT') ; VOUT = EV_FOR / (RO * CP) ; 'FINSI' ; 'FINSI' ; 'TITR' 'VITESSE OUTCROP SOUS L IMPULSION' ; IOMEGA = 2.*PI*LF_VOUT ; TF_UOUT = TF_VOUT / EVIOMEGA ; * Fonction de transfert / point de contrôle H_DEPL = 'TABLE' ; H_VITE = 'TABLE' ; H_EPSI = 'TABLE' ; H_REAC = 'TABLE' ; * Point de contrôle en surface libre (option par défaut) 'TITRE' 'DEPLACEMENT DE CONTROLE' ; * Remplacer le début zéro de TF_UOUT par celui de TF_UO 'MODULE' LM_OUT 'PHASE' LP_OUT ; * Option point de contrôle "INSIDE" 'SI' (EGA 'INSIDE' P_GAMMA.ENTREE.NATURE); 'FINSI' ; * Option point de contrôle "OUTCROP" de bedrock 'SI' (EGA 'OUTCROP' P_GAMMA.ENTREE.NATURE) ; TF_UO = TF_UOUT ; 'FINSI' ; 'FINSI' ; 'FINSI' ; *--------------------- Fin de modif 1 du 20/02/2013 -------------------- * Elimination des zéros 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' ; dess GAMMAO mima 'NCLK'; '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' ; 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 ; H_REAC.J = TF_RJ / TF_UO ; 'FIN' BOUCL5 ; 'MENA' ; *-------------------- Début de modif 2 du 20/02/2013 ------------------- * Accélération après déconvolution 'MESS' 'ACCELERATION DU CHAMP LIBRE' ; ACCE1 = 'TABLE' ; NB_GAM = NB_GAM - 1 ; 'FINSI' ; 'SI' (NB_GAM > 0) ; 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 ; 'FINSI' ; 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) à zéro NV = 70 ; Y1 = 0 ; IV = 1 ; 'REPE' BV NV ; IV = IV + 1 ; 'FIN' BV ; Y1 = Y1 / NV ; LY = LY - LY1 ; * Déformation 'TITRE' 'DEFORMATION AU NOEUD' J ; TF_EPSI = H_EPSI.J * TF_DEPLO ; * Réactions des appuis verticaux 'TITRE' 'REACTION VERTICALE AU NOEUD' J ; TF_REAC = ( H_REAC.J ) * TF_DEPLO ; * On met la réaction intiale à zéro LY = LY - LY1 ; 'FIN' BOUCL7 ; ************************************************************************ * Force d'amortissement à 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 'HORI') ; SIG_AMO = RO * CS * V_FRON.NUM_BAS ; 'SINON' ; 'SI'( 'EGA' DIR 'VERT') ; SIG_AMO = RO * CP * V_FRON.NUM_BAS ; 'FINSI' ; 'FINSI' ; * Contrainte à 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 à zéro LY = LY - LY1 ; 'MENA' ; ************************************************************************ *** FRONTIERE ABSORBANTE DU SOL PROCHE *** ************************************************************************ 'MESS' 'FRONTIERE ABSORBANTE DU SOL PROCHE' ; 'SAUT' 'LIGNE' ; 'MESS' 'FRONTIERE VERTICALE DU SOL ' ; 'SI' ( 'EGA' DIR 'HORI' ) ; NHAR = 1 ; 'SINON' ; 'SI' ( 'EGA' DIR 'VERT' ) ; NHAR = 0 ; 'FINSI' ; 'FINSI' ; I = 0 ; 'REPE' BOUCL8 NB_COU ; I = I + 1 ; 'SI' ( I 'EGA' 1 ) ; 'SINON' ; 'FINSI' ; 'FIN' BOUCL8 ; 'MESS' 'FRONTIERE HORIZONTALE DU SOL' ; BAS_ABS.'FRONTIERE' = FOND_SOL ; AMO1 = AM_V 'ET' AM_H ; ************************************************************************ *** CHARGEMENT SISMIQUE SUR LA FRONTIERE HORIZONTALE *** ************************************************************************ 'MESS' 'CHARGEMENT SISMIQUE SUR LA FRONTIERE HORIZONTALE' ; * FO : forces nodales équivalentes de la contrainte 'SI' ( 'EGA' TYP_MODE 'FOUR' ) ; 'SI' ( 'EGA' DIR 'HORI' ) ; 'SINON' ; 'SI' ( 'EGA' DIR 'VERT' ) ; 'FINSI' ; 'FINSI' ; 'SINON' ; 'SI' ( 'EGA' TYP_MODE 'PLANDEFO' ) ; 'SI' ( 'EGA' DIR 'HORI' ) ; 'SINON' ; 'SI' ( 'EGA' DIR 'VERT' ) ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'FINSI' ; * Amortissement * viteese A*VO 'SI' ( 'EGA' TYP_MODE 'FOUR' ) ; 'SI' ( 'EGA' DIR 'HORI' ) ; 'SINON' ; 'SI' ( 'EGA' DIR 'VERT' ) ; 'FINSI' ; 'FINSI' ; 'SINON' ; 'SI' ( 'EGA' TYP_MODE 'PLANDEFO' ) ; 'SI' ( 'EGA' DIR 'HORI' ) ; 'SINON' ; 'SI' ( 'EGA' DIR 'VERT' ) ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'FINSI' ; F_BAS = AM_H * CH_V ; 'MENA' ; ************************************************************************ *** CHARGEMENT SISMIQUE SUR LA FRONTIERE VERTICALE *** ************************************************************************ * FO = - Réaction 'MESS' 'CHARGEMENT SISMIQUE SUR LA FRONTIERE VERTICALE' ; J = 0 ; 'REPE' BOUCL9 NB_NOEU ; J = J + 1 ; 'SI' ( J 'EGA' 1 ) ; 'SINON' ; 'ET' CHA_VFO ; 'FINSI' ; 'FIN' BOUCL9 ; * Amortissement * viteese : A*VO * Mode PLANDEFO, DIR = HORI ou VERT 'SI' ( 'EGA' TYP_MODE 'PLANDEFO' ) ; 'SI' ( 'EGA' DIR 'HORI' ) ; 'SINON' ; 'SI' ( 'EGA' DIR 'VERT' ) ; 'FINSI' ; 'FINSI' ; 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' ; * Mode FOUR 0 ( DIR = VERT ) 'SI' ( 'EGA' TYP_MODE 'FOUR' ) ; 'SI' ( 'EGA' DIR 'VERT' ) ; VISC_Z = 'TABLE' ; K = 0 ; 'REPE' BOUCL13 NB_NOEU ; K = K + 1 ; EV01 = V_FRON.K ; 'FIN' BOUCL13 ; J = 0 ; 'REPE' BOUCL14 NB_NOEU ; J = J + 1 ; VEC_FZ = AM_V * VEC_VZ ; K = 0 ; 'REPE' BOUC14B NB_NOEU ; K = K + 1 ; VISC_Z.K = VISC_Z.K + ( AMZ_JK * V_FRON.J ) ; 'FIN' BOUC14B ; 'FIN' BOUCL14 ; * Recombinaison V_ABSC ( VISC_Z. 1 )) ; K = 1 ; 'REPE' BOUCL15 ( NB_NOEU - 1 ) ; K = K + 1 ; V_ABSC ( VISC_Z.K ))) 'ET' CHA_VAZ ; 'FIN' BOUCL15 ; CHA_VAX = CHA_VAZ ; 'FINSI' ; * Mode FOUR 1 ( DIR = HORI ) 'SI' ( 'EGA' DIR 'HORI' ) ; VISC_R = 'TABLE' ; VISC_T = '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_FR = AM_V * VEC_VR ; VEC_FT = AM_V * VEC_VT ; K = 0 ; 'REPE' BOUC17B NB_NOEU ; K = K + 1 ; VISC_R.K = VISC_R.K + ( AMR_JK * V_FRON.J ) ; VISC_T.K = VISC_T.K - ( AMT_JK * V_FRON.J ) ; 'FIN' BOUC17B ; 'FIN' BOUCL17 ; * Recombinaison V_ABSC ( VISC_R. 1 ) ) ; V_ABSC ( VISC_T. 1 ) ) ; K = 1 ; 'REPE' BOUCL18 ( NB_NOEU - 1 ) ; K = K + 1 ; 'FIN' BOUCL18 ; CHA_VAX = CHA_VAR 'ET' CHA_VAT ; 'FINSI' ; 'FINSI' ; CHA1 = CHA_HFO 'ET' CHA_HAX 'ET' CHA_VFO 'ET' CHA_VAX ; * Changement de format du chargement ************************************************************************ *** Déformation 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 'HORI' ) ; 'TITR' 'DEFORMATION DE CISAILLEMENT MAXIMALE' ; 'DESS' DEFZ 'NCLK' ; 'FINSI' ; 'SI' ( 'EGA' DIR 'VERT' ) ; 'TITR' 'DEFORMATION VERTICALE MAXIMALE' ; 'DESS' DEFZ 'NCLK' ; 'FINSI' ; TABRESU = 'TABLE' ; TABRESU.'ACCE' = ACCE1 ; TABRESU.'PAS' = PAS_TEM ; TABRESU.'FCDYN' = FCDYN ; 'FINP' TABRESU ; ************************************************************************
© Cast3M 2003 - Tous droits réservés.
Mentions légales