* ISSLEQ PROCEDUR AF221230 17/03/28 21:15:00 9380 ************************************************************************ * * I S S L E Q * ------------ * * FONCTION: * --------- * * Procedure pour la résolution des problèmes ISS et de propagation des * ondes 1D avec la methode lineaire equivalente. * * PHRASE D'APPEL (EN GIBIANE): * ---------------------------- * * ISSLEQ TDON1 * * OPERANDES: * ---------- * * TDON1 :Table des donnees (type TABLE) * .'SOL' :sous-table pour definir les * donnees du profil * du sol (type TABLE) * .'ITERATION' :sous table pour la partie du * sol à iterer (type TABLE) * .I : couche I (type TABLE) * .'MAILLAGE' :maillage de la couche I * (type MAILLAGE) * .'FRONTIERE' :frontiere de la couche I * (type MAILLAGE) * .'MASSE_VOLUMIQUE' :masse volumique de la couche I * (type FLONNTANT) * .'POISSON' :coefficient de poisson de la * couche I (type FLOTTANT) * .'G_GAMMA' :evolution de la courbe * caracteristique G/G0-gamma * (type EVOLUTION) * .'H_GAMMA' :evolution de la courbe * caracteristique Eps-gamma * (type EVOLUTION) * .'BASE' :frontiere inferieure de la * derniere couche qui compose * la stratigraphie (type MAILLAGE) * a introduire une seule fois pour * la dernier couche * .'CONSTANTE' :sous table pour la partie du * sol à iterer (type TABLE) * .I : couche I (type TABLE) * .'MAILLAGE' :maillage de la couche I * (type MAILLAGE) * .'FRONTIERE' :frontiere de la couche I * (type MAILLAGE) * .'MASSE_VOLUMIQUE' :masse volumique de la couche I * (type FLONNTANT) * .'POISSON' :coefficient de poisson de la * couche I (type FLOTTANT) * .'AMORTISSEMENT' :amortissement * couche I (type FLOTTANT) * .'STRUCTURE' :sous-table pour definir les * donnees de la structure (type TABLE) * .'MAILLAGE' :maillage de la structure * (type MAILLAGE) * .'RIGIDITE' :rigidité de la structure * (type RIGIDITE) * .'MASSE' :masse de la structure * (type RIGIDITE) * .'AMORTISSEMENT' :amortissement de la structure * (type RIGIDITE) * .'BLOCAGES_MECANIQUES' :tout type des blocages mecaniques * supplementaires (type RIGIDITE) * .'PARAMETRES' :sous TABLE pour definir les parametres * du calcul (type TABLE) * .'GAMMAO_X' :evolution de l’acceleration selon * la direction x (type EVOLUTION) * .'GAMMAO_Y' :evolution de l’acceleration selon * la direction y (type EVOLUTION) * .'GAMMAO_Z' :evolution de l’acceleration selon * la direction z (type EVOLUTION) * [seulement une des trois evolution * est necessaire] * .'POINT' :point de reference (type POINT) * .'CRITERE' :critere de convergence pour le * calcul lineaire equivalent (type FLOTTANT) * (default 0.05) * .'CHI' :coefficient pour la deformation moyenne * gamma_m (type FLOTTANT) * .'F1' :premiere frequence pour modele * d'amortissement de Rayleigh * (type FLOTTANT) * .'F2' :premiere frequence pour modele * d'amortissement de Rayleigh * (type FLOTTANT) * .'FC' :premiere de coupure du signal * (type FLOTTANT) * .'TYPE' :type de frontiere absorbante (LYSMER * ou WHITE) (type MOT) (defaut LYSMER) * .'PAR_DEC' :sous-table à donner pour la procedure * DECONV3D - voir la notice correspondante * (P_GAM sous-table) (facultatif) * .'TYPE_CALCUL' : type de calcul ‘ISS_COMPLET’ (type MOT) * tout le sol est à considere comme * domaine à iterer. La sous-table * ITERATION dans la table SOL est * obligatoire * type de calcul ‘ISS_COMP_SIMP’ (type MOT) * une partie du sol est considere * comme domaine à iterer et une * partie constante. La sous table * ITERATION dans la table SOL et la * sous table CONSTANTE dans la table * SOL sont obligatoires * RESULTATS: * ---------- * TDON1 :Table des donnees (type TABLE) * .'STEP "J"' :sous-table des resultats * pour chaque iteration (type TABLE) J=0..N * .'ITERATION' :sous table pour la partie du * sol à iterer (type TABLE) * .'T_SOL' :sous-table avec les maillages des * couche * .I : couche I (type MAILLAGE) * .'T_ESO' :sous-table avec les mchaml pour * les module E des couches * .I : couche I (type MCHAML) * .'T_MOD' :sous-table avec les modeles pour * les couches * .I : couche I (type MMODEL) * .'T_GGO' :sous-table avec les mchaml pour * les rapports G/G0 des couches * .I : couche I (type MCHAML) * .'T_MAT' :sous-table avec les materiaux pour * les couches * .I : couche I (type MCHAML) * .'T_RIG' :sous-table avec les rigites pour * les couches * .I : couche I (type RIGIDITE) * .'T_MAS' :sous-table avec les masses pour * les couches * .I : couche I (type RIGIDITE) * .'T_KSI' :sous-table avec les amortissements * pour les couches * .I : couche I (type RIGIDITE) * .'T_AMO' :sous-table avec les matrices * d amortissement amortissements * pour les couches * .I : couche I (type MCHAML) * .'T_DIS' :sous-table avec les champs des * deformations maximales pour chaque * couche * .I : couche I (type MAILLAGE) * .'O_SOL' :Assemblage des maillages pour * la partie à iterer (type MAILLAGE) * .'O_MOD' :Assemblage des MMODEL pour * la partie à iterer (type MAILLAGE) * .'O_GGO' :Assemblage des MCHAML G/G0 pour * la partie à iterer (type MAILLAGE) * .'O_MAT' :Assemblage des materiaux pour * la partie à iterer (type MAILLAGE) * .'O_RIG' :Assemblage des rigidités pour * la partie à iterer (type MAILLAGE) * .'O_MAS' :Assemblage des masses pour * la partie à iterer (type MAILLAGE) * .'O_KSI' :Assemblage des MCHAML Eps pour * la partie à iterer (type MAILLAGE) * .'O_AMO' :Assemblage des amortissements pour * la partie à iterer (type MAILLAGE) * .'O_DIS' :Assemblage des MCHAML Dmax pour * la partie à iterer (type MAILLAGE) * .'CONSTANTE' :sous table pour la partie du * sol constante (type TABLE) * .'T_SOL' :sous-table avec les maillages des * couche * .I : couche I (type MAILLAGE) * .'T_ESO' :sous-table avec les mchaml pour * les module E des couches * .I : couche I (type MCHAML) * .'T_MOD' :sous-table avec les modeles pour * les couches * .I : couche I (type MMODEL) * .'T_GGO' :sous-table avec les mchaml pour * les rapports G/G0 des couches * .I : couche I (type MCHAML) * .'T_MAT' :sous-table avec les materiaux pour * les couches * .I : couche I (type MCHAML) * .'T_RIG' :sous-table avec les rigites pour * les couches * .I : couche I (type RIGIDITE) * .'T_MAS' :sous-table avec les masses pour * les couches * .I : couche I (type RIGIDITE) * .'T_KSI' :sous-table avec les amortissements * pour les couches * .I : couche I (type RIGIDITE) * .'T_AMO' :sous-table avec les matrices * d amortissement amortissements * pour les couches * .I : couche I (type MCHAML) * .'T_DIS' :sous-table avec les champs des * deformations maximales pour chaque * couche * .I : couche I (type MAILLAGE) * .'O_SOL' :Assemblage des maillages pour * la partie à iterer (type MAILLAGE) * .'O_MOD' :Assemblage des MMODEL pour * la partie à iterer (type MAILLAGE) * .'O_GGO' :Assemblage des MCHAML G/G0 pour * la partie à iterer (type MAILLAGE) * .'O_MAT' :Assemblage des materiaux pour * la partie à iterer (type MAILLAGE) * .'O_RIG' :Assemblage des rigidités pour * la partie à iterer (type MAILLAGE) * .'O_MAS' :Assemblage des masses pour * la partie à iterer (type MAILLAGE) * .'O_KSI' :Assemblage des MCHAML Eps pour * la partie à iterer (type MAILLAGE) * .'O_AMO' :Assemblage des amortissements pour * la partie à iterer (type MAILLAGE) * .'O_DIS' :Assemblage des MCHAML Dmax pour * la partie à iterer (type MAILLAGE) * .'TOTALE' :sous table pour l'assembles des deux parties * CONSTANTE + ITERER (type TABLE) * .I : couche I (type MAILLAGE) * .'O_SOL' :Assemblage des maillages pour * la partie à iterer (type MAILLAGE) * .'O_MOD' :Assemblage des MMODEL pour * la partie à iterer (type MAILLAGE) * .'O_GGO' :Assemblage des MCHAML G/G0 pour * la partie à iterer (type MAILLAGE) * .'O_MAT' :Assemblage des materiaux pour * la partie à iterer (type MAILLAGE) * .'O_RIG' :Assemblage des rigidités pour * la partie à iterer (type MAILLAGE) * .'O_MAS' :Assemblage des masses pour * la partie à iterer (type MAILLAGE) * .'O_KSI' :Assemblage des MCHAML Eps pour * la partie à iterer (type MAILLAGE) * .'O_AMO' :Assemblage des amortissements pour * la partie à iterer (type MAILLAGE) * .'O_DIS' :Assemblage des MCHAML Dmax pour * la partie à iterer (type MAILLAGE) * .'STRUCTURE' :sous-table pour definir les * donnees de la structure (type TABLE) * .'MAILLAGE' :maillage de la structure * (type MAILLAGE) * .'RIGIDITE' :rigidité de la structure * (type RIGIDITE) * .'MASSE' :masse de la structure * (type RIGIDITE) * .'AMORTISSEMENT' :amortissement de la structure * (type RIGIDITE) * .'BLOCAGES_MECANIQUES' :tout type des blocages mecaniques * supplementaires (type RIGIDITE) * .'RES_DYN_X' :Table des resultats du calcul DYNAMIC * * COMMENTAIRES * -------------------------------------------- * La procedure peut etre utilisée seulement pour des cas 3D * * AUTEUR, DATE DE CREATION ET DE MODIFICATION: * -------------------------------------------- * * A. FRAU 25/11/2015 : Creation. * ************************************************************************ * ************************************************************* MESS ''; MESS ''; MESS ''; ************************************************************* * 'MESS'; 'FINSI'; * ************************************************************* *************** inizio procedura ******************* ************************************************************* * * * 'SI' ('EXIST' (TDON1) 'STEP0'); ************************************************************* **************** STEP SUP A 1 ********************** ************************************************************* * 'SI' ('EXIST' (TDON1) 'COLONNE'); 'SI' ('EXIST' (TDON1) 'STRUCTURE'); 'SINON'; 'FINSI'; 'SINON'; 'SI' ('EXIST' (TDON1) 'STRUCTURE'); 'SINON'; 'FINSI'; 'FINSI'; * MOT11 = 'CHAINE' 'STEP ' I_STEP; MOT22 = 'CHAINE' 'STEP' I_STEP; MOT33 = 'CHAINE' 'STEP' (I_STEP - 1); * * TDON1.MOT22 = TABLE; * ************************************************************** * extraction tables ************************************************************** * MESS ''; * TABPAR = TDON1.'PARAMETRES'; TABFRO = TDON1.'FRONTIERE'; 'SI' ('EXIST' (TDON1) 'STRUCTURE'); TABSTR = TDON1.MOT33.'STRUCTURE'; 'FINSI'; * 'SI' (EXIST (TDON1.'SOL') 'CONSTANTE'); TABSOL_C = TDON1.'SOL'.'CONSTANTE'; 'FINSI'; * 'SI' (EXIST (TDON1.'SOL') 'ITERATION'); TABSOL_I = TDON1.'SOL'.'ITERATION'; 'FINSI'; * 'SI' (EXIST (TDON1) 'COLONNE'); TABCOL = TDON1.'COLONNE'; 'FINSI'; * 'SI' (EXIST (TDON1.MOT33.'SOL') 'CONSTANTE'); TABRES_C = TDON1.MOT33.'SOL'.'CONSTANTE'; * SOL_C = TABRES_C.T_SOL; ESO_C = TABRES_C.T_ESO; MOD_C = TABRES_C.T_MOD; MAT_C = TABRES_C.T_MAT; KSI_C = TABRES_C.T_KSI; RIG_C = TABRES_C.T_RIG; MAS_C = TABRES_C.T_MAS; AMO_C = TABRES_C.T_AMO; GGO_C = TABRES_C.T_GGO; * MAI_SOLC = TABRES_C.O_SOL; MOD_SOLC = TABRES_C.O_MOD; MAT_SOLC = TABRES_C.O_MAT; GGO_SOLC = TABRES_C.O_GGO; KSI_SOLC = TABRES_C.O_KSI; RIG_SOLC = TABRES_C.O_RIG; MAS_SOLC = TABRES_C.O_MAS; AMO_SOLC = TABRES_C.O_AMO; * * 'FINSI'; * 'SI' (EXIST (TDON1.MOT33.'SOL') 'ITERATION'); TABRES_I = TDON1.MOT33.'SOL'.'ITERATION'; * SOL_I = TABRES_I.T_SOL; ESO_I = TABRES_I.T_ESO; MOD_I = TABRES_I.T_MOD; MAT_I = TABRES_I.T_MAT; KSI_I = TABRES_I.T_KSI; RIG_I = TABRES_I.T_RIG; MAS_I = TABRES_I.T_MAS; AMO_I = TABRES_I.T_AMO; GGO_I = TABRES_I.T_GGO; * MAI_SOLI = TABRES_I.O_SOL; MOD_SOLI = TABRES_I.O_MOD; MAT_SOLI = TABRES_I.O_MAT; GGO_SOLI = TABRES_I.O_GGO; KSI_SOLI = TABRES_I.O_KSI; RIG_SOLI = TABRES_I.O_RIG; MAS_SOLI = TABRES_I.O_MAS; AMO_SOLI = TABRES_I.O_AMO; * * 'FINSI'; * 'SI' (EXIST (TDON1.MOT33) 'COLONNE'); TABRESC = TDON1.MOT33.'COLONNE'; * SOLCOL = TABRESC.T_SOL; ESOCOL = TABRESC.T_ESO; MODCOL = TABRESC.T_MOD; MATCOL = TABRESC.T_MAT; KSICOL = TABRESC.T_KSI; RIGCOL = TABRESC.T_RIG; MASCOL = TABRESC.T_MAS; AMOCOL = TABRESC.T_AMO; GGOCOL = TABRESC.T_GGO; * MAISOLC = TABRESC.O_SOL; MODSOLC = TABRESC.O_MOD; MATSOLC = TABRESC.O_MAT; GGOSOLC = TABRESC.O_GGO; KSISOLC = TABRESC.O_KSI; RIGSOLC = TABRESC.O_RIG; MASSOLC = TABRESC.O_MAS; AMOSOLC = TABRESC.O_AMO; * * 'FINSI'; * F1 = TABPAR.'F1' ; F2 = TABPAR.'F2' ; FC = TABPAR.'FC' ; * ************************************************************** * preparation deconvolution ************************************************************** * MESS ''; * * Deconvilution 3D (Cas Mode Plan et 3D) - Colonne * NN1 = 'DIME' (TABCOL); I = 1; 'REPE' IND1 (NZONEC); 'SI' (I 'EGA' 1); BOR_FRO = (TABCOL. I .'FRONTIERE'); 'SINON'; BOR_FRO = BOR_FRO 'ET' (TABCOL. I .'FRONTIERE'); 'FINSI'; I = I + 1; 'FIN' IND1; 'OUBL' NN1; 'OUBL' I; * * LL2B = LL2; I = 1; 'REPE' IND1 (NN1); 'SI' (I EGA NN1); PP1 = LL2B; 'SINON'; 'FINSI'; LL2A = LL2A 'ET' PP1; 'SINON'; LL2A = LL2A ET PP1; 'SINON'; LL2A = PP1; 'FINSI'; 'FINSI'; NN2 = NN1 - (I - 1); J = 1; 'SI' (NN2 'NEG' 1); 'REPE' IND2 (NN2); VAL1 = 0.; VAL1 = ((VAL1)**(0.5)); 'SI' (VAL1 > 0.001); LL2C = LL2C 'ET' PPX; 'SINON'; LL2C = LL2C 'ET' PPX; 'SINON'; LL2C = PPX; 'FINSI'; 'FINSI'; 'FINSI'; J = J + 1; 'FIN' IND2; 'FINSI'; LL2B = LL2C; 'OUBL' LL2C; I = I + 1; 'FIN' IND1; LL2 = LL2A; 'OUBL' LL2A; 'OUBL' LL2B; 'OUBL' LL2C; 'OUBL' NN1; 'OUBL' NN2; 'OUBL' VAL1; 'OUBL' PP1; 'OUBL' PPX; * I = 1 ; ID2 = 'CHAINE' 'N'; TABDV2 = 'TABLE'; 'REPE' BLOC4 NELEM_F ; XX1 = -10000.; XX2 = 10000.; YY1 = -10000.; YY2 = 10000.; 'STRICTEMENT' MAI2; TABDV2.I = 'TABLE' ; TABDV2.I.'FRONTIERE' = MAI2; TABDV2.I.'EPAISSEUR' = Z1 - Z3 ; * ZELEM1 = MAISOLC 'ELEM' 'CONTENANT' PP1; * VALX1 = 0.; VALX2 = 0.; VALX1 = ((VALX1)**(0.5)); VALX2 = ((VALX2)**(0.5)); VALY1 = 0.; VALY2 = 0.; VALY1 = ((VALY1)**(0.5)); VALY2 = ((VALY2)**(0.5)); 'SI' ((VALX1 + VALX2) < 0.0001); ZELEM = ZELEM1; 'FINSI'; 'SI' ((VALY1 + VALY2) < 0.0001); ZELEM = ZELEM2; 'FINSI'; 'OUBL' ZELEM1; 'OUBL' ZELEM2; 'OUBL' VALX1; 'OUBL' VALX2; 'OUBL' VALY1; 'OUBL' VALY2; * * I = I + 1 ; 'FIN' BLOC4 ; 'OUBL' ELEM_I; 'OUBL' NOEU1; 'OUBL' NOEU2; 'OUBL' NOEU3; 'OUBL' Z1; 'OUBL' Z3; 'OUBL' PP1; 'OUBL' PP2; 'OUBL' ID1; * TDON1.MOT22.'COLONNE' = TABLE; 'SI' ('EXIST' TABPAR 'GAMMAO_X'); DIR = 'UX' ; GAMMAO = TABPAR.'GAMMAO_X' ; MOD_DEC = MODSOLC; MAT_DEC = MATSOLC; MAI_DEC = MAISOLC; * PPX1 = PPX2 = P_GAM = TABLE; 10000.); MAT_DEC DIR GAMMAO F1 F2 FC P_GAM; TDON1.MOT22.'COLONNE'.'TAB_DEC' = TABDV2; TDON1.MOT22.'COLONNE'.'RES_DEC_X' = TABRXDV2; 'OUBL' P_GAM; 'OUBL' PPXF 'OUBL' BOR_FRO; 'OUBL' BOR_FON; 'OUBL' MOD_DEC; 'OUBL' MAT_DEC; 'OUBL' DIR; 'OUBL' GAMMAO; 'OUBL' MAI_DEC; 'FINSI'; * 'SI' ('EXIST' TABPAR 'GAMMAO_Y'); DIR = 'UY' ; GAMMAO = TABPAR.'GAMMAO_Y' ; MOD_DEC = MODSOLC; MAT_DEC = MATSOLC; MAI_DEC = MAISOLC; * PPX1 = (TABDV2 . 1 .FRONTIERE) PPX2 = (TABDV2 . 1 .FRONTIERE) * P_GAM = TABLE; 10000.); MAT_DEC DIR GAMMAO F1 F2 FC P_GAM; TDON1.MOT22.'COLONNE'.'TAB_DEC' = TABDV2; TDON1.MOT22.'COLONNE'.'RES_DEC_Y' = TABRYDV2; 'OUBL' P_GAM; 'OUBL' PPXF 'OUBL' BOR_FRO; 'OUBL' BOR_FON; 'OUBL' MOD_DEC; 'OUBL' MAT_DEC; 'OUBL' DIR; 'OUBL' GAMMAO; 'OUBL' MAI_DEC; 'FINSI'; * 'SI' ('EXIST' TABPAR 'GAMMAO_Z'); DIR = 'UZ' ; GAMMAO = TABPAR.'GAMMAO_Z' ; MOD_DEC = MODSOLC; MAT_DEC = MATSOLC; MAI_DEC = MAISOLC; * PPX1 = (TABDV2 . 1 .FRONTIERE) PPX2 = (TABDV2 . 1 .FRONTIERE) * P_GAM = TABLE; 10000.); MAT_DEC DIR GAMMAO F1 F2 FC P_GAM; TDON1.MOT22.'COLONNE'.'TAB_DEC' = TABDV2; TDON1.MOT22.'COLONNE'.'RES_DEC_Z' = TABRZDV2; 'OUBL' P_GAM; 'OUBL' PPXF 'OUBL' BOR_FRO; 'OUBL' BOR_FON; 'OUBL' MOD_DEC; 'OUBL' MAT_DEC; 'OUBL' DIR; 'OUBL' GAMMAO; 'OUBL' MAI_DEC; 'FINSI'; 'SINON'; * * Deconvilution 3D (Cas 3D) I = 1; 'REPE' IND1 (NN1); 'SI' (I EGA 1); BOR_FRO = (TABFRO.LATERALE. I .MAILLAGE); 'SINON'; BOR_FRO = BOR_FRO ET (TABFRO.LATERALE. I .MAILLAGE); 'FINSI'; I = I + 1; 'FIN' IND1; 'OUBL' NN1; 'OUBL' I; * * LL2B = LL2; I = 1; 'REPE' IND1 (NN1); 'SI' (I EGA NN1); PP1 = LL2B; 'SINON'; 'FINSI'; LL2A = LL2A 'ET' PP1; 'SINON'; LL2A = LL2A ET PP1; 'SINON'; LL2A = PP1; 'FINSI'; 'FINSI'; NN2 = NN1 - (I - 1); J = 1; 'SI' (NN2 'NEG' 1); 'REPE' IND2 (NN2); VAL1 = 0.; VAL1 = ((VAL1)**(0.5)); 'SI' (VAL1 > 0.001); LL2C = LL2C 'ET' PPX; 'SINON'; LL2C = LL2C 'ET' PPX; 'SINON'; LL2C = PPX; 'FINSI'; 'FINSI'; 'FINSI'; J = J + 1; 'FIN' IND2; 'FINSI'; LL2B = LL2C; 'OUBL' LL2C; I = I + 1; 'FIN' IND1; LL2 = LL2A; 'OUBL' LL2A; 'OUBL' LL2B; 'OUBL' LL2C; 'OUBL' NN1; 'OUBL' NN2; 'OUBL' VAL1; 'OUBL' PP1; 'OUBL' PPX; * I = 1 ; ID2 = 'CHAINE' 'N'; TABDV = 'TABLE'; * 'REPE' BLOC4 NELEM_F ; XX1 = -10000.; XX2 = 10000.; YY1 = -10000.; YY2 = 10000.; 'STRICTEMENT' MAI2; * TABDV.I = 'TABLE' ; TABDV.I.'FRONTIERE' = MAI2; TABDV.I.'EPAISSEUR' = Z1 - Z3 ; * VAL1 = 0.; VAL1 = ((VAL1)**(0.5)); 'SINON'; VAL1 = 100000.; 'FINSI'; VAL2 = 0.; VAL2 = ((VAL2)**(0.5)); 'SINON'; VAL2 = 100000.; 'FINSI'; * * 'SI' (VAL1 < 0.0001); * VALX1 = 0.; VALX2 = 0.; VALX1 = ((VALX1)**(0.5)); VALX2 = ((VALX2)**(0.5)); VALY1 = 0.; VALY2 = 0.; VALY1 = ((VALY1)**(0.5)); VALY2 = ((VALY2)**(0.5)); 'SI' ((VALX1 + VALX2) < 0.0001); ZELEM = ZELEM1; 'FINSI'; 'SI' ((VALY1 + VALY2) < 0.0001); ZELEM = ZELEM2; 'FINSI'; * 'OUBL' ZELEM1; 'OUBL' ZELEM2; 'OUBL' VALX1; 'OUBL' VALX2; 'OUBL' VALY1; 'OUBL' VALY2; ID1 = 'CHAINE' 'C'; 'SI' ('EGA' ID2 'C'); ID2 = 'CHAINE' 'C'; 'SINON'; 'SI' ('EGA' ID2 'I'); ID2 = 'M'; 'SINON'; ID2 = 'C'; 'FINSI'; 'FINSI'; 'SINON'; 'SI' (VAL2 < 0.0001); * VALX1 = 0.; VALX2 = 0.; VALX1 = ((VALX1)**(0.5)); VALX2 = ((VALX2)**(0.5)); VALY1 = 0.; VALY2 = 0.; VALY1 = ((VALY1)**(0.5)); VALY2 = ((VALY2)**(0.5)); 'SI' ((VALX1 + VALX2) < 0.0001); ZELEM = ZELEM1; 'FINSI'; 'SI' ((VALY1 + VALY2) < 0.0001); ZELEM = ZELEM2; 'FINSI'; * ID1 = 'CHAINE' 'I'; 'SI' ('EGA' ID2 'I'); ID2 = 'CHAINE' 'I'; 'SINON'; 'SI' ('EGA' ID2 'C'); ID2 = 'M'; 'SINON'; ID2 = 'I'; 'FINSI'; 'FINSI'; 'SINON'; 'FINSI'; 'FINSI'; 'OUBL' ZELEM1; 'OUBL' ZELEM2; * 'SI' ('EGA' ID1 'C'); 'FINSI'; 'SI' ('EGA' ID1 'I'); 'FINSI'; * I = I + 1 ; 'FIN' BLOC4 ; 'OUBL' ELEM_I; 'OUBL' NOEU1; 'OUBL' NOEU2; 'OUBL' NOEU3; 'OUBL' Z1; 'OUBL' Z3; 'OUBL' PP1; 'OUBL' PP2; 'OUBL' ID1; * TDON1.MOT22.'SOL' = TABLE; 'SI' ('EXIST' TABPAR 'GAMMAO_X'); DIR = 'UX' ; GAMMAO = TABPAR.'GAMMAO_X' ; 'SI' ('EGA' ID2 'C'); MOD_DEC = MOD_SOLC; MAT_DEC = MAT_SOLC; MAI_DEC = MAI_SOLC; 'FINSI'; * 'SI' ('EGA' ID2 'I'); MOD_DEC = MOD_SOLI; MAT_DEC = MAT_SOLI; MAI_DEC = MAI_SOLI; 'FINSI'; * 'SI' ('EGA' ID2 'M'); MOD_DEC = MOD_SOLC ET MOD_SOLI; MAT_DEC = MAT_SOLC ET MAT_SOLI; MAI_DEC = MAI_SOLC ET MAI_SOLI; 'FINSI'; * P_GAM = TABPAR.'PAR_DEC'; MAT_DEC DIR GAMMAO F1 F2 FC P_GAM; * TDON1.MOT22.'SOL'.'TAB_DEC' = TABDV; TDON1.MOT22.'SOL'.'RES_DEC_X' = TABRXDV; 'FINSI'; * 'SI' ('EXIST' TABPAR 'GAMMAO_Y'); DIR = 'UY' ; GAMMAO = TABPAR.'GAMMAO_Y' ; 'SI' ('EGA' ID2 'C'); MOD_DEC = MOD_SOLC; MAT_DEC = MAT_SOLC; MAI_DEC = MAI_SOLC; 'FINSI'; * 'SI' ('EGA' ID2 'I'); MOD_DEC = MOD_SOLI; MAT_DEC = MAT_SOLI; MAI_DEC = MAI_SOLI; 'FINSI'; * 'SI' ('EGA' ID2 'M'); MOD_DEC = MOD_SOLC ET MOD_SOLI; MAT_DEC = MAT_SOLC ET MAT_SOLI; MAI_DEC = MAI_SOLC ET MAI_SOLI; 'FINSI'; * P_GAM = TABLE; 10000.); MAT_DEC DIR GAMMAO F1 F2 FC P_GAM; * TDON1.MOT22.'SOL'.'TAB_DEC' = TABDV; TDON1.MOT22.'SOL'.'RES_DEC_Y' = TABRYDV; 'FINSI'; * 'SI' ('EXIST' TABPAR 'GAMMAO_Z'); DIR = 'UZ' ; GAMMAO = TABPAR.'GAMMAO_Z' ; 'SI' ('EGA' ID2 'C'); MOD_DEC = MOD_SOLC; MAT_DEC = MAT_SOLC; MAI_DEC = MAI_SOLC; 'FINSI'; * 'SI' ('EGA' ID2 'I'); MOD_DEC = MOD_SOLI; MAT_DEC = MAT_SOLI; MAI_DEC = MAI_SOLI; 'FINSI'; * 'SI' ('EGA' ID2 'M'); MOD_DEC = MOD_SOLC ET MOD_SOLI; MAT_DEC = MAT_SOLC ET MAT_SOLI; MAI_DEC = MAI_SOLC ET MAI_SOLI; 'FINSI'; * P_GAM = TABLE; 10000.); MAT_DEC DIR GAMMAO F1 F2 FC P_GAM; * TDON1.MOT22.'SOL'.'TAB_DEC' = TABDV; TDON1.MOT22.'SOL'.'RES_DEC_Z' = TABRZDV; 'FINSI'; 'OUBL' P_GAM; 'OUBL' BOR_FRO; 'OUBL' BOR_FON; 'OUBL' MOD_DEC; 'OUBL' MAT_DEC; 'OUBL' DIR; 'OUBL' GAMMAO; 'OUBL' MAI_DEC; 'FINSI'; * 'SI' ('EXIST' (TDON1) 'STRUCTURE'); 'FINSI'; * ************************************************************** * resolution dynamique ************************************************************** * MESS ''; * * Detection plage de temps A1 = 0; 'SI' ('EXIST' TABPAR 'GAMMAO_X'); 'SI' (AA1 > A1); A1 = AA1; 'FINSI'; 'OUBL' AA1; 'OUBL' AA2; 'OUBL' AA3; 'FINSI'; 'SI' ('EXIST' TABPAR 'GAMMAO_Y'); 'SI' (AA1 > A1); A1 = AA1; 'FINSI'; 'OUBL' AA1; 'OUBL' AA2; 'OUBL' AA3; 'FINSI'; 'SI' ('EXIST' TABPAR 'GAMMAO_Z'); 'SI' (AA1 > A1); A1 = AA1; 'FINSI'; 'OUBL' AA1; 'OUBL' AA2; 'OUBL' AA3; 'FINSI'; A2 = (ENTI((TABPAR.'DELTA_T')/DT1))/2; NB_PAS = A1 + A2; NN1 = A1 + A2; NN2 = A1 - A2; 'SI' (NN2 < 0); NN2 = 0; 'FINSI'; 'OUBL' A2; 'OUBL' A1; 'OUBL' DT1; NN1 = ((NN1 - 1)*(4)) + 1; NN2 = ((NN2 - 1)*(4)) + 1; NB_PAS = NN1 + 4; * * * resolution dynamique sur la colonne 'SI' ('EGA' V_MOD 'TRID' ) ; 'SINON'; RX 0.0 RY 0.0 RZ 0.0; RX 0.0 RY 0.0 RZ 0.0; 'FINSI'; 'FINSI'; 'SI' ('EXIST' TABPAR 'GAMMAO_X'); TAB_DYXC = TABLE ; TAB_DYXC.'VITE' = CH_VITI ; TAB_DYXC.'FREQ' = TABRXDV2.'FCDYN' ; TAB_DYXC.'DEBU' = 0.0 ; NPAS ( NB_PAS - 1 ) ; 'TEMPS' ; 'MENAGE' ; 'FINSI'; 'SI' ('EXIST' TABPAR 'GAMMAO_Y'); TAB_DYYC = TABLE ; TAB_DYYC.'VITE' = CH_VITI ; TAB_DYYC.'FREQ' = TABRYDV2.'FCDYN' ; TAB_DYYC.'DEBU' = 0.0 ; NPAS ( NB_PAS - 1 ) ; 'TEMPS' ; 'MENAGE' ; 'FINSI'; 'SI' ('EXIST' TABPAR 'GAMMAO_Z'); TAB_DYZC = TABLE ; TAB_DYZC.'VITE' = CH_VITI ; TAB_DYZC.'FREQ' = TABRZDV2.'FCDYN' ; TAB_DYZC.'DEBU' = 0.0 ; NPAS ( NB_PAS - 1 ) ; 'TEMPS' ; 'MENAGE' ; 'FINSI'; 'SINON'; * * resolution dynamique du systeme sol+structure MAITOT = MAI_SOLC; MODTOT = MOD_SOLC; RIGTOT = RIG_SOLC; MASTOT = MAS_SOLC; AMOTOT = AMO_SOLC; MAITOT = MAITOT 'ET' MAI_SOLI; MODTOT = MODTOT 'ET' MOD_SOLI; RIGTOT = RIGTOT 'ET' RIG_SOLI; MASTOT = MASTOT 'ET' MAS_SOLI; AMOTOT = AMOTOT 'ET' AMO_SOLI; 'FINSI'; 'SINON'; MAITOT = MAI_SOLI; MODTOT = MOD_SOLI; RIGTOT = RIG_SOLI; MASTOT = MAS_SOLI; AMOTOT = AMO_SOLI; 'FINSI'; 'FINSI'; MAITOT = MAITOT 'ET' (TABSTR.'MAILLAGE'); RIGTOT = RIGTOT 'ET' (TABSTR.'RIGIDITE'); MASTOT = MASTOT 'ET' (TABSTR.'MASSE'); AMOTOT = AMOTOT 'ET' (TABSTR.'AMORTISSEMENT'); 'SI' ('EXIST' (TABSTR) 'BLOCAGES_MECANIQUES' ); RIGTOT = RIGTOT 'ET' (TABSTR.'BLOCAGES_MECANIQUES'); 'FINSI'; 'FINSI'; * 'ELIM' 0.001 MAITOT; * 'SI' ('EGA' V_MOD 'TRID' ) ; 'SINON'; RX 0.0 RY 0.0 RZ 0.0; RX 0.0 RY 0.0 RZ 0.0; 'FINSI'; 'FINSI'; * 'SI' ('EXIST' TABPAR 'GAMMAO_X'); TAB_DYX = TABLE ; TAB_DYX.'VITE' = CH_VITI ; TAB_DYX.'FREQ' = TABRXDV.'FCDYN' ; TAB_DYX.'DEBU' = 0.0 ; NPAS ( NB_PAS - 1 ) ; 'TEMPS' ; 'MENAGE' ; 'FINSI'; 'SI' ('EXIST' TABPAR 'GAMMAO_Y'); TAB_DYY = TABLE ; TAB_DYY.'VITE' = CH_VITI ; TAB_DYY.'FREQ' = TABRYDV.'FCDYN' ; TAB_DYY.'DEBU' = 0.0 ; NPAS ( NB_PAS - 1 ) ; 'TEMPS' ; 'MENAGE' ; 'FINSI'; 'SI' ('EXIST' TABPAR 'GAMMAO_Z'); TAB_DYZ = TABLE ; TAB_DYZ.'VITE' = CH_VITI ; TAB_DYZ.'FREQ' = TABRZDV.'FCDYN' ; TAB_DYZ.'DEBU' = 0.0 ; NPAS ( NB_PAS - 1 ) ; 'TEMPS' ; 'MENAGE' ; 'FINSI'; 'FINSI'; * ************************************************************** * deductions reponse ************************************************************** * * * ************************************************************** * deduction du champ de deformation maximale ************************************************************** * MESS ''; DEF_C = 'TABLE'; DEFC = 'TABLE'; II1 = 1; 'REPE' IND1 (NZONE_C); DEF_C. II1 = 'TABLE'; JJ1 = 1; JJ1 = JJ1 + 1; 'FIN' IND2; II1 = II1 + 1; 'FIN' IND1; II1 = 1; 'REPE' IND1 (NZONEC); DEFC. II1 = 'TABLE'; JJ1 = 1; JJ1 = JJ1 + 1; 'FIN' IND2; II1 = II1 + 1; 'FIN' IND1; 'SINON'; II1 = 1; 'REPE' IND1 (NZONE_C); II1 = II1 + 1; 'FIN' IND1; 'FINSI'; 'FINSI'; * DEF_I = 'TABLE'; II1 = 1; * DEF_I. II1 = 'TABLE'; * JJ1 = 1; * 'REPE' IND2 ('DIME' (SOL_I. II1)); * DEF_I. II1 . JJ1 = 'MANU' 'CHML' (MOD_I. II1 . JJ1) 'DMAX' 0.0; * JJ1 = JJ1 + 1; * 'FIN' IND2; II1 = II1 + 1; 'FIN' IND1; 'FINSI'; * I = 1; 'REPE' IND1 (NN1); 'SI' (I '>' (NN2)); 'FINSI'; 'FINSI'; 'FINSI'; 'SINON'; 'FINSI'; 'FINSI'; 'FINSI'; 'FINSI'; * DEPSOL = 'REDU' (TRESUC. I .'DEPL') ('EXTR' MODSOLC 'MAIL'); 'OUBL' CH1; * * Cas 3D - COLONNE 'SI' ('EGA' V_MOD 'TRID' ) ; II1 = 1; 'REPE' IND3 (NZONEC); JJ1 = 1; E12 = G12 / 2.0 ; E13 = G13 / 2.0 ; E23 = G23 / 2.0 ; EPS2 = E11; EPS2 = EPS2 + (E22); EPS2 = EPS2 + (E33); EPS2 = EPS2 + (E12); EPS2 = EPS2 + (E13); EPS2 = EPS2 + (E23); 'DETR' E11; 'DETR' E22; 'DETR' E33; 'DETR' G12; 'DETR' G13; 'DETR' G23; 'DETR' E12; 'DETR' E13; 'DETR' E23; CHDEFM = (S11 - S33)*(0.5); 'SI' (VAL1 > VAL2); DEFC. II1 . JJ1= CHDEFM; 'FINSI'; JJ1 = JJ1 + 1; 'FIN' IND4; II1 = II1 + 1; 'FIN' IND3; 'FINSI'; 'FINSI'; I = I + 1; 'FIN' IND1; 'SINON'; * CHDEFM_I = 'TABLE'; CHDEFM_C = 'TABLE'; I = 1; 'REPE' IND1 (NN1); 'SI' (I '>' (NN2)); 'FINSI'; 'FINSI'; 'FINSI'; 'SINON'; 'FINSI'; 'FINSI'; 'FINSI'; 'FINSI'; * DEPSOL = 'REDU' (TRESU. I .'DEPL') ('EXTR' MODTOT 'MAIL'); 'OUBL' CH1; * * Cas 3D 'SI' ('EGA' V_MOD 'TRID' ) ; * ******** VECCHIA VERSIONE * 'SI' ('EGA' ('TYPE' TABSOL_C) 'TABLE'); * II1 = 1; * 'REPE' IND3 (NZONE_C); * MOD1 = 'REDU' MODTOT (SOL_C. II1); * EPS1 = 'REDU' EPSSOL (SOL_C. II1); * E11 = EXCO 'EPXX' EPS1 'SMXX' ; * E22 = EXCO 'EPYY' EPS1 'SMYY' ; * E33 = EXCO 'EPZZ' EPS1 'SMZZ' ; * G12 = EXCO 'GAXY' EPS1 'SMXY' ; * G13 = EXCO 'GAXZ' EPS1 'SMXZ' ; * G23 = EXCO 'GAYZ' EPS1 'SMYZ' ; * E12 = G12 / 2.0 ; * E13 = G13 / 2.0 ; * E23 = G23 / 2.0 ; * EPS2 = E11; * EPS2 = EPS2 + (E22); * EPS2 = EPS2 + (E33); * EPS2 = EPS2 + (E12); * EPS2 = EPS2 + (E13); * EPS2 = EPS2 + (E23); * EPS2 = CHAN 'TYPE' EPS2 'CONTRAINTES' ; * EPS2 = 'PRIN' EPS2 MOD1; * 'DETR' E11; * 'DETR' E22; * 'DETR' E33; * 'DETR' G12; * 'DETR' G13; * 'DETR' G23; * 'DETR' E12; * 'DETR' E13; * 'DETR' E23; * S11 = 'EXCO' SI11 EPS2 'DMAX' ; * S33 = 'EXCO' SI33 EPS2 'DMAX' ; * CHDEFM = (S11 - S33)*(0.5); * VAL1 = 'EXTR' CHDEFM 'DMAX' 1 1 1; * VAL2 = 'EXTR' (DEF_C. II1) 'DMAX' 1 1 1; * 'SI' (VAL1 > VAL2); * DEF_C. II1 = CHDEFM; * 'FINSI'; * II1 = II1 + 1; * 'FIN' IND3; * 'FINSI'; * 'SI' ('EGA' ('TYPE' TABSOL_I) 'TABLE'); * II1 = 1; * 'REPE' IND3 (NZONE_I); * JJ1 = 1; * 'REPE' IND4 ('DIME' SOL_I. II1); * MOD1 = 'REDU' MODTOT (SOL_I. II1 . JJ1); * EPS1 = 'REDU' EPSSOL (SOL_I. II1 . JJ1); * E11 = 'EXCO' 'EPXX' EPS1 'SMXX' ; * E22 = 'EXCO' 'EPYY' EPS1 'SMYY' ; * E33 = 'EXCO' 'EPZZ' EPS1 'SMZZ' ; * G12 = 'EXCO' 'GAXY' EPS1 'SMXY' ; * G13 = 'EXCO' 'GAXZ' EPS1 'SMXZ' ; * G23 = 'EXCO' 'GAYZ' EPS1 'SMYZ' ; * E12 = G12 / 2.0 ; * E13 = G13 / 2.0 ; * E23 = G23 / 2.0 ; * EPS2 = E11; * EPS2 = EPS2 + (E22); * EPS2 = EPS2 + (E33); * EPS2 = EPS2 + (E12); * EPS2 = EPS2 + (E13); * EPS2 = EPS2 + (E23); * EPS2 = 'CHAN' 'TYPE' EPS2 'CONTRAINTES' ; * EPS2 = 'PRIN' EPS2 MOD1; * 'DETR' E11; * 'DETR' E22; * 'DETR' E33; * 'DETR' G12; * 'DETR' G13; * 'DETR' G23; * 'DETR' E12; * 'DETR' E13; * 'DETR' E23; * EPS2 = 'PRIN' EPS1 MOD1; * S11 = 'EXCO' SI11 EPS2 'DMAX' ; * S33 = 'EXCO' SI33 EPS2 'DMAX' ; * CHDEFM = (S11 - S33)*(0.5); * VAL1 = 'EXTR' CHDEFM 'DMAX' 1 1 1; * VAL2 = 'EXTR' (DEF_I. II1 . JJ1) 'DMAX' 1 1 1; * 'SI' (VAL1 > VAL2); * DEF_I. II1 . JJ1 = CHDEFM; * 'FINSI'; * JJ1 = JJ1 + 1; * 'FIN' IND4; * II1 = II1 + 1; * 'FIN' IND3; * 'FINSI'; * ******** NUOVA VERSIONE * CHDEFM_C = 'TABLE'; II1 = 1; 'REPE' IND3 (NZONE_C); 'SI' (I EGA (NN2 + 1)); E12 = G12 / 2.0 ; E13 = G13 / 2.0 ; E23 = G23 / 2.0 ; EPS2 = E11; EPS2 = EPS2 + (E22); EPS2 = EPS2 + (E33); EPS2 = EPS2 + (E12); EPS2 = EPS2 + (E13); EPS2 = EPS2 + (E23); 'DETR' E11; 'DETR' E22; 'DETR' E33; 'DETR' G12; 'DETR' G13; 'DETR' G23; 'DETR' E12; 'DETR' E13; 'DETR' E23; * CHDEFM_C. II1 = (S11 - S33)*(0.5); CHDEFM_C. II1 = (S11 - S33)*(1.0); 'SINON'; E12 = G12 / 2.0 ; E13 = G13 / 2.0 ; E23 = G23 / 2.0 ; EPS2 = E11; EPS2 = EPS2 + (E22); EPS2 = EPS2 + (E33); EPS2 = EPS2 + (E12); EPS2 = EPS2 + (E13); EPS2 = EPS2 + (E23); 'DETR' E11; 'DETR' E22; 'DETR' E33; 'DETR' G12; 'DETR' G13; 'DETR' G23; 'DETR' E12; 'DETR' E13; 'DETR' E23; * CHDEFM_C. II1 = MAXI (CHDEFM_C. II1) ((S11 - S33)*(0.5)); CH_111 = (CHDEFM_C. II1); * CH_222 = ((S11 - S33)*(0.5)); CH_222 = ((S11 - S33)*(1.0)); DIF_11 = CH_111 - CH_222; CHDEFM_C. II1 = (CH_111 '*' MASQ2) + (CH_222 '*' MASQ1); 'FINSI'; DEF_C. II1 = CHDEFM_C. II1; II1 = II1 + 1; 'FIN' IND3; 'FINSI'; * * CHDEFM_I = 'TABLE'; II1 = 1; 'REPE' IND3 (NZONE_I); 'SI' (I EGA (NN2 + 1)); E12 = G12 / 2.0 ; E13 = G13 / 2.0 ; E23 = G23 / 2.0 ; EPS2 = E11; EPS2 = EPS2 + (E22); EPS2 = EPS2 + (E33); EPS2 = EPS2 + (E12); EPS2 = EPS2 + (E13); EPS2 = EPS2 + (E23); 'DETR' E11; 'DETR' E22; 'DETR' E33; 'DETR' G12; 'DETR' G13; 'DETR' G23; 'DETR' E12; 'DETR' E13; 'DETR' E23; * EPS2 = 'PRIN' EPS1 MOD1; * EPS2 = 'PRIN' EPS2 MOD1; * CHDEFM_I. II1 = (S11 - S33)*(0.5); CHDEFM_I. II1 = (S11 - S33)*(1.0); 'SINON'; E12 = G12 / 2.0 ; E13 = G13 / 2.0 ; E23 = G23 / 2.0 ; EPS2 = E11; EPS2 = EPS2 + (E22); EPS2 = EPS2 + (E33); EPS2 = EPS2 + (E12); EPS2 = EPS2 + (E13); EPS2 = EPS2 + (E23); 'DETR' E11; 'DETR' E22; 'DETR' E33; 'DETR' G12; 'DETR' G13; 'DETR' G23; 'DETR' E12; 'DETR' E13; 'DETR' E23; * EPS2 = 'PRIN' EPS1 MOD1; * EPS2 = 'PRIN' EPS2 MOD1; * CHDEFM_I. II1 = MAXI (CHDEFM_I. II1) ((S11 - S33)*(0.5)); CH_111 = (CHDEFM_I. II1); * CH_222 = ((S11 - S33)*(0.5)); CH_222 = ((S11 - S33)*(1.0)); DIF_11 = CH_111 - CH_222; CHDEFM_I. II1 = (CH_111 '*' MASQ2) + (CH_222 '*' MASQ1); 'FINSI'; DEF_I. II1 = CHDEFM_I. II1; II1 = II1 + 1; 'FIN' IND3; 'FINSI'; 'FINSI'; 'FINSI'; I = I + 1; 'FIN' IND1; 'FINSI'; 'OUBL' NN1; 'OUBL' NN2; 'OUBL' DEPSOL; 'OUBL' EPSSOL; 'OUBL' MOD1; 'OUBL' EPS1; 'OUBL' EPS2; 'OUBL' S11; 'OUBL' S33; 'OUBL' CHDEFM; 'OUBL' VAL1; 'OUBL' VAL2; 'OUBL' II1; 'OUBL' JJ1; * * NN1 = 'DIME' DEF_I; I = 1; 'REPE' IND1 (NZONE_I); * J = 1; * NN2 = 'DIME' (DEF_I. I); * 'REPE' IND2 (NN2); * DEF_SOLI = DEF_SOLI 'ET' (DEF_I. I . J); * J = J + 1; * 'FIN' IND2; DEF_SOLI = DEF_SOLI 'ET' (DEF_I. I); I = I + 1; 'FIN' IND1; 'FINSI'; * * NN1 = 'DIME' DEF_C; I = 1; 'REPE' IND1 (NZONE_C); DEF_SOLC = DEF_SOLC 'ET' (DEF_C. I); I = I + 1; 'FIN' IND1; 'FINSI'; * * NN1 = 'DIME' DEFC; I = 1; 'REPE' IND1 (NZONEC); J = 1; 'REPE' IND2 (NN2); DEFCOL = DEFCOL 'ET' (DEFC. I . J); J = J + 1; 'FIN' IND2; I = I + 1; 'FIN' IND1; 'FINSI'; * ************************************************************** * Modification des matrices ************************************************************** * MESS ''; ALPHA = 4.0 * PI * F1 * F2 / ( F1 + F2 ) ; BETA = 1.0 / ( PI * ( F1 + F2 ) ) ; 'SI' (EXIST (TDON1.MOT33.'SOL') 'CONSTANTE'); * ESO_C_N = TABLE; MAT_C_N = TABLE; KSI_C_N = TABLE; RIG_C_N = TABLE; AMO_C_N = TABLE; GGO_C_N = TABLE; * 'FINSI'; * 'SI' (EXIST (TDON1.MOT33.'SOL') 'ITERATION'); TABRES_I = TDON1.MOT33.'SOL'.'ITERATION'; * ESO_I_N = TABLE; MAT_I_N = TABLE; KSI_I_N = TABLE; RIG_I_N = TABLE; AMO_I_N = TABLE; GGO_I_N = TABLE; * 'FINSI'; * 'SI' (EXIST (TDON1.MOT33) 'COLONNE'); TABRESC = TDON1.MOT33.'COLONNE'; * ESOCOL_N = TABLE; MATCOL_N = TABLE; KSICOL_N = TABLE; RIGCOL_N = TABLE; AMOCOL_N = TABLE; GGOCOL_N = TABLE; * 'FINSI'; * 'SI' ('EXIST' (TDON1.MOT33.'SOL') 'ITERATION'); * NN1 = 'DIME' DEF_I; I = 1; 'REPE' IND1 (NZONE_I); * * VECCHIA VERSIONE * ESO_I_N. I = TABLE; * MAT_I_N. I = TABLE; * KSI_I_N. I = TABLE; * RIG_I_N. I = TABLE; * AMO_I_N. I = TABLE; * GGO_I_N. I = TABLE; * J = 1; * 'REPE' IND2 ('DIME' (DEF_I. I)); * LLGAM1 = 'EXTR' (TABSOL_I. I .'G_GAMMA') ABSC; * LLGAM2 = 'EXTR' (TABSOL_I. I .'H_GAMMA') ABSC; * LLGG01 = 'EXTR' (TABSOL_I. I .'G_GAMMA') ORDO; * LLEPS1 = 'EXTR' (TABSOL_I. I .'H_GAMMA') ORDO; * VDEF1 = (TABPAR.'CHI')*('EXTR' (DEF_I. I .J) * 'DMAX' 1 1 1); * 'SI' (VDEF1 < ('EXTR' LLGAM1 1)); * VGG01 = 'EXTR' LLGG01 1; * 'SINON'; * 'SI' (VDEF1 > ('EXTR' LLGAM1 ('DIME' LLGAM1))); * VGG01 = 'EXTR' LLGG01 ('DIME' LLGAM1); * 'SINON'; * VGG01 = 'EXTR' (IPOL (LOG ('PROG' VDEF1)) * (LOG LLGAM1) LLGG01) 1 ; * * 'FINSI'; * 'FINSI'; * 'SI' (VDEF1 < ('EXTR' LLGAM2 1)); * VEPS1 = 'EXTR' LLEPS1 1; * 'SINON'; * 'SI' (VDEF1 > ('EXTR' LLGAM2 ('DIME' LLGAM2))); * VEPS1 = 'EXTR' LLEPS1 ('DIME' LLGAM2); * 'SINON'; * VEPS1 = EXTR (IPOL (LOG (PROG VDEF1)) * (LOG LLGAM2) LLEPS1) 1 ; * 'FINSI'; * 'FINSI'; * * ESO_I_N. I . J = VGG01*(TABSOL_I. I .'MODULE_E'); * MAT_I_N. I . J = 'MATE' (MOD_I. I . J ) * 'YOUN' (ESO_I_N. I . J) 'NU' (TABSOL_I. I .'POISSON') * 'RHO' (TABSOL_I. I .'MASSE_VOLUMIQUE'); * GGO_I_N. I . J = 'MANU' 'CHML' MOD_I.I.J 'G_GO' VGG01; * KSI_I_N. I . J = 'MANU' 'CHML' MOD_I.I.J 'KS' VEPS1; * RIG_I_N. I . J = 'RIGI' (MOD_I.I.J) (MAT_I_N.I.J) ; * AMO_I_N. I . J = (VEPS1) * (((ALPHA) * (MAS_I. I . J)) * 'ET' ((BETA) * (RIG_I_N. I . J))); * * J = J + 1; * 'FIN' IND2; * * NUOVA VERSIONE LLGAM1 = LOG(LLGAM1); LLGAM2 = LOG(LLGAM2); (LOG((TABPAR.'CHI')*((DEF_I. I)))) EV_CO1 'GRAVITE') 'SCAL' 'G_GO'; (LOG((TABPAR.'CHI')*((DEF_I. I)))) EV_CO2 'GRAVITE') 'SCAL' 'KS'; ESO_I_N. I = (GGO_I_N. I)*(TABSOL_I. I .'MODULE_E'); 'YOUN' (ESO_I_N. I) 'NU' (TABSOL_I. I .'POISSON') 'RHO' (TABSOL_I. I .'MASSE_VOLUMIQUE'); (((ESO_I_N. I)*(KSI_I_N. I))*(BETA)) 'NU' (TABSOL_I. I .'POISSON') 'RHO' (((TABSOL_I. I .'MASSE_VOLUMIQUE')*(KSI_I_N. I))*(ALPHA)); I = I + 1; 'FIN' IND1; 'FINSI'; * 'SI' (EXIST (TDON1.MOT33.'SOL') 'CONSTANTE'); * NN1 = 'DIME' DEF_C; I = 1; 'REPE' IND1 (NZONE_C); * ESO_C_N. I = VGG01*(TABSOL_C. I .'MODULE_E'); 'NU' (TABSOL_C. I .'POISSON') 'RHO' (TABSOL_C. I .'MASSE_VOLUMIQUE'); AMO_C_N. I = (VEPS1) * (((ALPHA) * (MAS_C. I)) 'ET' ((BETA) * (RIG_C_N. I))); I = I + 1; 'FIN' IND1; 'FINSI'; * ************************************************************** * Controle convergence ************************************************************** * MESS ''; *'SI' ( 'NON' ( 'EXIS' TOL_EPS ) ) ; * TOL_EPS = 0.05 ; *'FINSI' ; TOL_EPS = TABPAR.'CRITERE'; * K = 0; 'SI' ('EXIST' (TDON1.MOT33.'SOL') 'ITERATION') ; * I = 1; 'REPE' IND1 (NZONE_I); J = 1; JJ1 = 1; DELTA = ( 'ABS' ( VAL1 - VAL0 ) ) / VAL1 ; 'SI' ( DELTA >EG 0.05 ) ; K = K + 1 ; 'FINSI' ; JJ1 = JJ1 + 1; 'FIN' IND3; J = J + 1; 'FIN' IND2; * J = 1; * 'REPE' IND2 ('DIME' (DEF_I. I )); * VAL0 = EXTR (GGO_I. I . J) 'G_GO' 1 1 1 ; * VAL1 = EXTR (GGO_I_N. I . J) 'G_GO' 1 1 1 ; * DELTA = ( 'ABS' ( VAL1 - VAL0 ) ) / VAL1 ; * 'SI' ( DELTA >EG 0.05 ) ; * K = K + 1 ; * 'FINSI' ; * J = J + 1; * 'FIN' IND2; I = I + 1; 'FIN' IND1; * 'MESS' ''; 'MESS' '--------------------------------------------------------------'; TIT11 = 'CHAINE' '-- Non convergence sur ' K ' elements --'; 'MESS' TIT11; 'MESS' '--------------------------------------------------------------'; 'FINSI'; * ************************************************************** * Assemblage ************************************************************** * 'MESS' ''; I = 1; 'REPE' BLOC3 NZONE_I; * NELEM_I = (DIME SOL_I.I); * * VECCHIA VERSIONE * J = 1; * 'REPE' BLOC31 NELEM_I ; * 'SI' ( ( I 'EGA' 1 ) 'ET' ( J 'EGA' 1 ) ) ; * 'SI' ('EXIST' (SOL_I. I) J); * GGO_SI_N = GGO_I_N. I . J ; * MAT_SI_N = MAT_I_N. I . J ; * RIG_SI_N = RIG_I_N. I . J ; * KSI_SI_N = KSI_I_N. I . J ; * AMO_SI_N = AMO_I_N. I . J ; * 'FINSI'; * 'SINON'; * 'SI' ('EXIST' (SOL_I. I) J); * GGO_SI_N = GGO_SI_N 'ET' (GGO_I_N. I . J); * MAT_SI_N = MAT_SI_N 'ET' (MAT_I_N. I . J); * RIG_SI_N = RIG_SI_N 'ET' (RIG_I_N. I . J); * KSI_SI_N = KSI_SI_N 'ET' (KSI_I_N. I . J); * AMO_SI_N = AMO_SI_N 'ET' (AMO_I_N. I . J); * 'FINSI'; * 'FINSI'; * J = J + 1; * 'FIN' BLOC31; * * NUOVA VERSIONE 'SI' ( ( I 'EGA' 1 )) ; GGO_SI_N = GGO_I_N. I; MAT_SI_N = MAT_I_N. I; RIG_SI_N = RIG_I_N. I; KSI_SI_N = KSI_I_N. I; AMO_SI_N = AMO_I_N. I; 'SINON'; GGO_SI_N = GGO_SI_N 'ET' (GGO_I_N. I); MAT_SI_N = MAT_SI_N 'ET' (MAT_I_N. I); RIG_SI_N = RIG_SI_N 'ET' (RIG_I_N. I); KSI_SI_N = KSI_SI_N 'ET' (KSI_I_N. I); AMO_SI_N = AMO_SI_N 'ET' (AMO_I_N. I); 'FINSI'; I = I + 1; 'FIN' BLOC3; 'FINSI'; * I = 1; 'REPE' BLOC3 NZONEC; J = 1; 'REPE' BLOC31 NELEMC ; 'SI' ( ( I 'EGA' 1 ) 'ET' ( J 'EGA' 1 ) ) ; 'SI' ('EXIST' (SOLCOL. I) J); GGOSC_N = GGOCOL_N. I . J ; MATSC_N = MATCOL_N. I . J ; RIGSC_N = RIGCOL_N. I . J ; KSISC_N = KSICOL_N. I . J ; AMOSC_N = AMOCOL_N. I . J ; 'FINSI'; 'SINON'; 'SI' ('EXIST' (SOLCOL. I) J); GGOSC_N = GGOSC_N 'ET' (GGOCOL_N. I . J); MATSC_N = MATSC_N 'ET' (MATCOL_N. I . J); RIGSC_N = RIGSC_N 'ET' (RIGCOL_N. I . J); KSISC_N = KSISC_N 'ET' (KSICOL_N. I . J); AMOSC_N = AMOSC_N 'ET' (AMOCOL_N. I . J); 'FINSI'; 'FINSI'; J = J + 1; 'FIN' BLOC31; I = I + 1; 'FIN' BLOC3; * I = 1; 'REPE' BLOC3 NZONE_C; J = 1; 'REPE' BLOC31 NELEM_C ; 'SI' ( ( I 'EGA' 1 ) 'ET' ( J 'EGA' 1 ) ) ; 'SI' ('EXIST' (SOL_C. I) J); GGO_SC_N = GGO_C_N. I . J ; MAT_SC_N = MAT_C_N. I . J ; RIG_SC_N = RIG_C_N. I . J ; KSI_SC_N = KSI_C_N. I . J ; AMO_SC_N = AMO_C_N. I . J ; 'FINSI'; 'SINON'; 'SI' ('EXIST' (SOL_C. I) J); GGO_SC_N = GGO_SC_N 'ET' (GGO_C_N. I . J); MAT_SC_N = MAT_SC_N 'ET' (MAT_C_N. I . J); RIG_SC_N = RIG_SC_N 'ET' (RIG_C_N. I . J); KSI_SC_N = KSI_SC_N 'ET' (KSI_C_N. I . J); AMO_SC_N = AMO_SC_N 'ET' (AMO_C_N. I . J); 'FINSI'; 'FINSI'; J = J + 1; 'FIN' BLOC31; I = I + 1; 'FIN' BLOC3; 'SINON'; I = 1; 'REPE' BLOC3 NZONE_C; 'SI' ( ( I 'EGA' 1 )) ; GGO_SC_N = GGO_C_N. I ; MAT_SC_N = MAT_C_N. I ; RIG_SC_N = RIG_C_N. I ; KSI_SC_N = KSI_C_N. I ; AMO_SC_N = AMO_C_N. I ; 'SINON'; GGO_SC_N = GGO_SC_N 'ET' (GGO_C_N. I ); MAT_SC_N = MAT_SC_N 'ET' (MAT_C_N. I ); RIG_SC_N = RIG_SC_N 'ET' (RIG_C_N. I ); KSI_SC_N = KSI_SC_N 'ET' (KSI_C_N. I ); AMO_SC_N = AMO_SC_N 'ET' (AMO_C_N. I ); 'FINSI'; I = I + 1; 'FIN' BLOC3; 'FINSI'; 'FINSI'; * DEF_SOLT = DEF_SOLI; MAI_SOLT = MAI_SOLI; MOD_SOLT = MOD_SOLI; GGO_ST_N = GGO_SI_N; MAT_ST_N = MAT_SI_N; RIG_ST_N = RIG_SI_N; MAS_SOLT = MAS_SOLI; KSI_ST_N = KSI_SI_N; AMO_ST_N = AMO_SI_N; DEF_SOLT = DEF_SOLC 'ET' DEF_SOLI; MAI_SOLT = MAI_SOLI 'ET' MAI_SOLC; MOD_SOLT = MOD_SOLI 'ET' MOD_SOLC; MAS_SOLT = MAS_SOLI 'ET' MAS_SOLC; GGO_ST_N = GGO_ST_N 'ET' GGO_SOLC; MAT_ST_N = MAT_ST_N 'ET' MAT_SOLC; RIG_ST_N = RIG_ST_N 'ET' RIG_SOLC; KSI_ST_N = KSI_ST_N 'ET' KSI_SOLC; AMO_ST_N = AMO_ST_N 'ET' AMO_SOLC; * GGOST_C = GGOSC_N; MATST_C = MATSC_N; RIGST_C = RIGSC_N; KSIST_C = KSISC_N; AMOST_C = AMOSC_N; 'SINON'; DEF_SOLT = DEF_SOLC 'ET' DEF_SOLI; MAI_SOLT = MAI_SOLI 'ET' MAI_SOLC; MOD_SOLT = MOD_SOLI 'ET' MOD_SOLC; GGO_ST_N = GGO_ST_N 'ET' GGO_SOLC; MAT_ST_N = MAT_ST_N 'ET' MAT_SOLC; RIG_ST_N = RIG_ST_N 'ET' RIG_SOLC; MAS_SOLT = MAS_SOLI 'ET' MAS_SOLC; KSI_ST_N = KSI_ST_N 'ET' KSI_SOLC; AMO_ST_N = AMO_ST_N 'ET' AMO_SOLC; 'FINSI'; 'FINSI'; 'SINON'; DEF_SOLT = DEF_SOLC; MAI_SOLT = MAI_SOLC; MOD_SOLT = MOD_SOLC; MAS_SOLT = MAS_SOLC; GGO_ST_N = GGO_SOLC; MAT_ST_N = MAT_SOLC; RIG_ST_N = RIG_SOLC; KSI_ST_N = KSI_SOLC; AMO_ST_N = AMO_SOLC; * GGOST_C = GGOSC_N; MATST_C = MATSC_N; RIGST_C = RIGSC_N; KSIST_C = KSISC_N; AMOST_C = AMOSC_N; 'SINON'; DEF_SOLT = DEF_SOLC; GGO_ST_N = GGO_SOLC; MAT_ST_N = MAT_SOLC; RIG_ST_N = RIG_SOLC; KSI_ST_N = KSI_SOLC; AMO_ST_N = AMO_SOLC; 'FINSI'; 'FINSI'; 'FINSI'; * * ************************************************************** * Sauvegarde ************************************************************** * MESS ''; * TABRC_N = TABLE ; TABRC_N.'T_SOL' = SOLCOL ; TABRC_N.'T_ESO' = ESOCOL ; TABRC_N.'T_MOD' = MODCOL ; TABRC_N.'T_GGO' = GGOCOL_N ; TABRC_N.'T_MAT' = MATCOL_N; TABRC_N.'T_RIG' = RIGCOL_N ; TABRC_N.'T_MAS' = MASCOL ; TABRC_N.'T_KSI' = KSICOL_N ; TABRC_N.'T_AMO' = AMOCOL_N ; TABRC_N.'T_DIS' = DEFC ; TABRC_N.'O_SOL' = MAISOLC ; TABRC_N.'O_MOD' = MODSOLC ; TABRC_N.'O_GGO' = GGOST_C ; TABRC_N.'O_MAT' = MATST_C ; TABRC_N.'O_RIG' = RIGST_C ; TABRC_N.'O_MAS' = MASSOLC ; TABRC_N.'O_KSI' = KSIST_C ; TABRC_N.'O_AMO' = AMOST_C ; TABRC_N.'O_DIS' = DEFCOL ; * TABR_C_N = TABLE ; TABR_C_N.'T_SOL' = SOL_C ; TABR_C_N.'T_ESO' = ESO_C_N ; TABR_C_N.'T_MOD' = MOD_C ; TABR_C_N.'T_GGO' = GGO_C_N ; TABR_C_N.'T_MAT' = MAT_C_N ; TABR_C_N.'T_RIG' = RIG_C_N ; TABR_C_N.'T_MAS' = MAS_C ; TABR_C_N.'T_KSI' = KSI_C_N ; TABR_C_N.'T_AMO' = AMO_C_N ; TABR_C_N.'T_DIS' = DEF_C ; TABR_C_N.'O_SOL' = MAI_SOLC ; TABR_C_N.'O_MOD' = MOD_SOLC ; TABR_C_N.'O_GGO' = GGO_SC_N ; TABR_C_N.'O_MAT' = MAT_SC_N ; TABR_C_N.'O_RIG' = RIG_SC_N ; TABR_C_N.'O_MAS' = MAS_SOLC ; TABR_C_N.'O_KSI' = KSI_SC_N ; TABR_C_N.'O_AMO' = AMO_SC_N ; TABR_C_N.'O_DIS' = DEF_SOLC ; 'SINON'; TABR_C_N = TABLE ; TABR_C_N.'T_SOL' = SOL_C ; TABR_C_N.'T_ESO' = ESO_C_N ; TABR_C_N.'T_MOD' = MOD_C ; TABR_C_N.'T_GGO' = GGO_C_N ; TABR_C_N.'T_MAT' = MAT_C_N ; TABR_C_N.'T_RIG' = RIG_C_N ; TABR_C_N.'T_MAS' = MAS_C ; TABR_C_N.'T_KSI' = KSI_C_N ; TABR_C_N.'T_AMO' = AMO_C_N ; TABR_C_N.'T_DIS' = DEF_C ; TABR_C_N.'O_SOL' = MAI_SOLC ; TABR_C_N.'O_MOD' = MOD_SOLC ; TABR_C_N.'O_GGO' = GGO_SC_N ; TABR_C_N.'O_MAT' = MAT_SC_N ; TABR_C_N.'O_RIG' = RIG_SC_N ; TABR_C_N.'O_MAS' = MAS_SOLC ; TABR_C_N.'O_KSI' = KSI_SC_N ; TABR_C_N.'O_AMO' = AMO_SC_N ; TABR_C_N.'O_DIS' = DEF_SOLC ; 'FINSI'; 'FINSI'; TABR_I_N = TABLE ; TABR_I_N.'T_SOL' = SOL_I ; TABR_I_N.'T_ESO' = ESO_I_N ; TABR_I_N.'T_MOD' = MOD_I ; TABR_I_N.'T_GGO' = GGO_I_N ; TABR_I_N.'T_MAT' = MAT_I_N ; TABR_I_N.'T_RIG' = RIG_I_N ; TABR_I_N.'T_MAS' = MAS_I ; TABR_I_N.'T_KSI' = KSI_I_N ; TABR_I_N.'T_AMO' = AMO_I_N ; TABR_I_N.'T_DIS' = DEF_I ; TABR_I_N.'O_SOL' = MAI_SOLI ; TABR_I_N.'O_MOD' = MOD_SOLI ; TABR_I_N.'O_GGO' = GGO_SI_N ; TABR_I_N.'O_MAT' = MAT_SI_N ; TABR_I_N.'O_RIG' = RIG_SI_N ; TABR_I_N.'O_MAS' = MAS_SOLI ; TABR_I_N.'O_KSI' = KSI_SI_N ; TABR_I_N.'O_AMO' = AMO_SI_N ; TABR_I_N.'O_DIS' = DEF_SOLI ; 'FINSI'; * TABR_T_N = TABLE; TABR_T_N.'O_SOL' = MAI_SOLT ; TABR_T_N.'O_MOD' = MOD_SOLT ; TABR_T_N.'O_GGO' = GGO_ST_N ; TABR_T_N.'O_MAT' = MAT_ST_N ; TABR_T_N.'O_RIG' = RIG_ST_N ; TABR_T_N.'O_MAS' = MAS_SOLT ; TABR_T_N.'O_KSI' = KSI_ST_N ; TABR_T_N.'O_AMO' = AMO_ST_N ; TABR_T_N.'O_DIS' = DEF_SOLT ; * TDON1.MOT22 .'SOL' = TABLE; TDON1.MOT22 .'SOL'.'ITERATION' = TABR_I_N; 'FINSI'; * TDON1.MOT22.'COLONNE' = TABRC_N; TDON1.MOT22.'SOL'.'CONSTANTE' = TABR_C_N; 'SINON'; TDON1.MOT22.'SOL'.'CONSTANTE' = TABR_C_N; 'FINSI'; 'FINSI'; * TDON1.MOT22.'SOL'.'TOTALE' = TABR_T_N; 'SI' ('EXIST' (TDON1) 'STRUCTURE'); TDON1.MOT22.'STRUCTURE' = TABSTR; 'FINSI'; * * 'OUBL' I; 'OUBL' J; 'OUBL' ZZ; 'OUBL' MOD_C; 'OUBL' MODC; 'OUBL' MAT_C; 'OUBL' MATC; 'OUBL' RIG_C; 'OUBL' RIGC; 'OUBL' MAS_C; 'OUBL' MASC; 'OUBL' AMO_C; 'OUBL' AMOC; 'OUBL' KSI_C; 'OUBL' KSIC; 'OUBL' SOL_C; 'OUBL' SOLC; 'OUBL' ESO_C; 'OUBL' ESOC; 'OUBL' GGO_C; 'OUBL' GGOC; 'OUBL' MOD_I; 'OUBL' MAT_I; 'OUBL' RIG_I; 'OUBL' MAS_I; 'OUBL' AMO_I; 'OUBL' KSI_I; 'OUBL' SOL_I; 'OUBL' ESO_I; 'OUBL' GGO_I; 'OUBL' MAI_SOLC; 'OUBL' MAT_SOLC; 'OUBL' GGO_SOLC; 'OUBL' KSI_SOLC; 'OUBL' MOD_SOLC; 'OUBL' RIG_SOLC; 'OUBL' MAS_SOLC; 'OUBL' AMO_SOLC; 'OUBL' MAI_SOLI; 'OUBL' MAT_SOLI; 'OUBL' GGO_SOLI; 'OUBL' KSI_SOLI; 'OUBL' MOD_SOLI; 'OUBL' RIG_SOLI; 'OUBL' MAS_SOLI; 'OUBL' AMO_SOLI; 'OUBL' MAISOLC; 'OUBL' MATSOLC; 'OUBL' GGOSOLC; 'OUBL' KSISOLC; 'OUBL' MODSOLC; 'OUBL' RIGSOLC; 'OUBL' MASSOLC; 'OUBL' AMOSOLC; 'OUBL' MAI_SOLT; 'OUBL' MAT_SOLT; 'OUBL' GGO_SOLT; 'OUBL' KSI_SOLT; 'OUBL' MOD_SOLT; 'OUBL' RIG_SOLT; 'OUBL' MAS_SOLT; 'OUBL' AMO_SOLT; 'OUBL' MAISOLT; 'OUBL' MATSOLT; 'OUBL' GGOSOLT; 'OUBL' KSISOLT; 'OUBL' MODSOLT; 'OUBL' RIGSOLT; 'OUBL' MASSOLT; 'OUBL' AMOSOLT; 'OUBL' TABSOL_C; 'OUBL' TABCOL; 'OUBL' TABSOL_I; 'OUBL' TABPAR; 'OUBL' TABSOL; 'OUBL' TABSTR; 'OUBL' TABFRO; 'OUBL' H_SAND; 'OUBL' G_SAND; 'OUBL' H_CLAY; 'OUBL' G_CLAY; 'OUBL' H_SAND; 'OUBL' EH_SAND; 'OUBL' EG_SAND; 'OUBL' EH_CLAY; 'OUBL' EG_CLAY; 'OUBL' EH_SAND; 'OUBL' MAIL1C; 'OUBL' GAM_EFF; 'OUBL' TABRES_T; 'OUBL' TABRESC; 'OUBL' TABRES_C; 'OUBL' TABRES_I; 'OUBL' ZONE_C; 'OUBL' ZONE_I; 'OUBL' ZONEC; 'OUBL' NN1; 'OUBL' NELEM_C; 'OUBL' NELEMC; 'OUBL' NELEM1C; 'OUBL' NELEM1_I; 'OUBL' NELEM_I; 'OUBL' NZONE_C; 'OUBL' NZONE_I; 'OUBL' NZONEC; 'OUBL' F1; 'OUBL' F2; 'OUBL' FC; 'OUBL' ALPHA; 'OUBL' BETA; 'OUBL' MAIL1_I; 'OUBL' GGO_SI_N; 'OUBL' KSI_SI_N; 'OUBL' MAT_SI_N; 'OUBL' KSI_SOLI; 'OUBL' GGO_SOLI; 'OUBL' TABR_T_N; 'OUBL' TABR_I_N; 'OUBL' GGO_I_N; 'OUBL' AMO_I_N; 'OUBL' RIG_I_N; 'OUBL' KSI_I_N; 'OUBL' MAT_I_N; 'OUBL' ESO_I_N; 'OUBL' DEF_I; 'OUBL' TRESUX; 'OUBL' TAB_DYX; 'OUBL' TABRXDV; 'OUBL' TABDV; 'OUBL' LLEPS1; 'OUBL' LLGG01; 'OUBL' LLGAM2; 'OUBL' LLGAM1; 'OUBL' L_GG03; 'OUBL' L_GG02; 'OUBL' L_GG01; * ************************************************************* *************** FIN STEP SUP A 1 ******************** ************************************************************* * 'SINON'; ************************************************************* ******************** STEP0 ************************* ************************************************************* * MESS ''; MESS ''; * ************* controle general ***************************** 'SI' ('EXIST' (TDON1) 'SOL'); 'MESS' ; 'SINON'; TABSOL = TDON1.'SOL'; 'FINSI'; 'SINON'; 'MESS' ; 'FINSI'; 'SI' ('EXIST' (TDON1) 'PARAMETRES'); 'MESS' ; 'SINON'; TABPAR = TDON1.'PARAMETRES'; 'FINSI'; 'SINON'; 'MESS' ; 'FINSI'; V_STR = FAUX; 'SI' ('EXIST' (TDON1) 'STRUCTURE'); 'MESS' ; 'SINON'; TABSTR = TDON1.'STRUCTURE'; V_STR = VRAI; 'FINSI'; 'SINON'; 'MESS' ; 'FINSI'; * ************* controle parametre ***************************** 'SI' ('EXIST' (TABPAR) 'F1'); 'MESS' ; 'MESS' ' Erruer....F1 n est pas un flottant' FINSI; 'SINON'; 'MESS' ; 'FINSI'; 'SI' ('EXIST' (TABPAR) 'F2'); 'MESS' ; 'MESS' ' Erruer....F2 n est pas un flottant' FINSI; 'SINON'; 'MESS' ; 'FINSI'; 'SI' ('EXIST' (TABPAR) 'FC'); 'MESS' ; 'MESS' ' Erruer....FC n est pas un flottant' FINSI; 'SINON'; 'MESS' ; 'FINSI'; 'MESS' ; 'FINSI'; 'SINON'; 'FINSI'; *'SI' ('EXIST' (TABPAR) 'REPONSE'); * I = 1; * 'REPE' IND1 ('DIME' (TABPAR.'REPONSE')); * 'SI' ('NEG' (TYPE (TABPAR.'REPONSE'. I .'NOM')) 'MOT'); * 'MESS' ; * 'MESS' ' Erruer dans la tables des parametres'; * 'MESS' ' dans la table des reponse a l indice ' I; * 'MESS' ' le sous-indice NOM doit etre un mot'; * 'QUIT' ISSLEQ; * 'FINSI'; * 'SI' ('NEG' (TYPE (TABPAR.'REPONSE'. I .'NOEUD')) 'POINT'); * 'MESS' ; * 'MESS' ' Erruer dans la tables des parametres'; * 'MESS' ' dans la table des reponse a l indice ' I; * 'MESS' ' le sous-indice NOEUD doit etre un point'; * 'QUIT' ISSLEQ; * 'FINSI'; * 'SI' ('NEG' (TYPE (TABPAR.'REPONSE'. I .'COMP')) 'MOT'); * 'MESS' ; * 'MESS' ' Erruer dans la tables des parametres'; * 'MESS' ' dans la table des reponse a l indice ' I; * 'MESS' ' le sous-indice COMP doit etre un mot'; * 'QUIT' ISSLEQ; * 'FINSI'; * I = I + 1; * 'FIN' IND1; *'SINON'; * 'MESS' ; * 'MESS' ' Erruer....il manque la table des point de reponse'; * 'QUIT' ISSLEQ; *'FINSI'; 'SI' ('EXIST' (TABPAR) 'TYPE_CALCUL'); 'SI' (('NEG' (TABPAR.'TYPE_CALCUL') (CHAINE 'ISS_COMPLET')) ET ('NEG' (TABPAR.'TYPE_CALCUL') 'ISS_CHAMPLOIN') ET ('NEG' (TABPAR.'TYPE_CALCUL') (CHAINE 'ISS_COMP_SIMP'))); 'MESS' ; 'FINSI'; 'SINON'; TABPAR.'TYPE_CALCUL' = CHAINE 'ISS_COMPLET'; 'FINSI'; T_CAL = TABPAR.'TYPE_CALCUL'; 'SI' ('EXIST' (TABPAR) 'CRITERE'); 'MESS'; 'MESS' ' Erruer....CRITERE n est pas un flottant' 'FINSI'; 'SINON'; 'MESS'; 'MESS' ' CRITERE fixe à 0.05' TABPAR.'CRITERE' = 0.05; 'FINSI'; * ************* controle sol ********************************** 'SINON'; 'FINSI'; * * serie de checks pour le calcul complet 'SI' ('EGA' T_CAL 'ISS_COMPLET'); 'SI' ('EXIST' TABSOL 'CONSTANTE'); 'MESS' ; 'MESS' ' il n y a pas besoin de la partie du sol constante'; 'FINSI'; 'SI' ('EXIST' TABSOL 'ITERATION'); 'MESS' ; 'MESS' ' la sous indice ITERATION doit etre une TABLE'; 'SINON'; TABSOL_I = TABSOL.'ITERATION'; 'FINSI'; 'SINON'; 'MESS' ; 'FINSI'; * I = 1; 'REPE' IND1 (NN1); 'SI' ('EXIST' (TABSOL_I. I) 'MAILLAGE'); 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice MAILLAGE'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_I. I) 'FRONTIERE'); 'MESS' ; 'SINON'; F_LATE = F_LATE 'ET' (TABSOL_I. I .'FRONTIERE'); 'FINSI'; 'SINON'; 'MESS' ; 'FINSI'; * 'SI' ('EXIST' (TABSOL_I. I) 'MODULE_E'); 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice MODULE_E'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_I. I) 'MASSE_VOLUMIQUE'); 'FLOTTANT'); 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice MASSE_VOLUMIQUE'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_I. I) 'POISSON'); 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice POISSON'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_I. I) 'G_GAMMA'); 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice G_GAMMA'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_I. I) 'H_GAMMA'); 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice H_GAMMA'; 'FINSI'; * 'SI' (I 'EGA' NN1); 'MESS' ; 'SINON'; 'FINSI'; 'SINON'; 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'FINSI'; 'FINSI'; * I = I + 1; 'FIN' IND1; 'MESS' ; 'SINON'; 'FINSI'; 'MESS' ; 'SINON'; 'FINSI'; 'FINSI'; * * serie de checks pour le calcul champ loin 'SI' ('EGA' T_CAL 'ISS_CHAMPLOIN'); 'SI' ('EXIST' TABSOL 'ITERATION'); 'MESS' ; 'FINSI'; 'SI' ('EXIST' TABSOL 'CONSTANTE'); 'MESS' ; 'MESS' ' la sous indice CONSTANTE doit etre une TABLE'; 'SINON'; TABSOL_C = TABSOL.'CONSTANTE'; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' il y a besoin de la partie du sol constante'; 'FINSI'; * I = 1; 'REPE' IND1 (NN1); 'SI' ('EXIST' (TABSOL_C. I) 'MAILLAGE'); 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice MAILLAGE'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_C. I) 'FRONTIERE'); 'MESS' ; 'SINON'; F_LATE = F_LATE 'ET' (TABSOL_C. I .'FRONTIERE'); 'FINSI'; 'SINON'; 'MESS' ; 'FINSI'; * 'SI' ('EXIST' (TABSOL_C. I) 'MODULE_E'); 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice MODULE_E'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_C. I) 'MASSE_VOLUMIQUE'); 'FLOTTANT'); 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice MASSE_VOLUMIQUE'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_C. I) 'POISSON'); 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice POISSON'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_C. I) 'G_GAMMA'); 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice G_GAMMA'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_C. I) 'H_GAMMA'); 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice H_GAMMA'; 'FINSI'; * 'SI' (I 'EGA' NN1); 'MESS' ; 'SINON'; 'FINSI'; 'SINON'; 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'FINSI'; 'FINSI'; * I = I + 1; 'FIN' IND1; 'MESS' ; 'SINON'; 'FINSI'; 'MESS' ; 'SINON'; 'FINSI'; 'FINSI'; * * serie de checks pour le calcul complet simple 'SI' ('EGA' T_CAL 'ISS_COMP_SIMP'); 'SI' ('EXIST' TABSOL 'ITERATION'); 'MESS' ; 'MESS' ' la sous indice ITERATION doit etre une TABLE'; 'SINON'; TABSOL_I = TABSOL.'ITERATION'; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' il y a besoin de la partie du sol a iteter'; 'FINSI'; 'SI' ('EXIST' TABSOL 'CONSTANTE'); 'MESS' ; 'MESS' ' la sous indice CONSTANTE doit etre une TABLE'; 'SINON'; TABSOL_C = TABSOL.'CONSTANTE'; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' il y a besoin de la partie du sol constante'; 'FINSI'; * I = 1; 'REPE' IND1 (NN1); 'SI' ('EXIST' (TABSOL_C. I) 'MAILLAGE'); 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice MAILLAGE'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_C. I) 'FRONTIERE'); 'MESS' ; 'SINON'; F_LATE = F_LATE 'ET' (TABSOL_C. I .'FRONTIERE'); 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' constant manque le sous_indice FRONTIERE'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_C. I) 'MODULE_E'); 'MESS' ; 'MESS' ' constant le sous_indice MODULE_E nest pas'; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice MODULE_E'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_C. I) 'MASSE_VOLUMIQUE'); 'FLOTTANT'); 'MESS' ; 'MESS' ' constant le sous_indice MASSE_VOLUMIQUE'; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice MASSE_VOLUMIQUE'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_C. I) 'POISSON'); 'MESS' ; 'MESS' ' constant le sous_indice POISSON nest pas du'; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice POISSON'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_C. I) 'AMORTISSEMENT'); 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice AMORTISSEMENT'; 'FINSI'; * 'SI' (I 'EGA' NN1); 'MESS' ; 'SINON'; 'FINSI'; 'SINON'; 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' constant il ne doit pas apparaitre le'; 'FINSI'; 'FINSI'; * I = I + 1; 'FIN' IND1; I = 1; 'REPE' IND1 (NN1); 'SI' ('EXIST' (TABSOL_I. I) 'MAILLAGE'); 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice MAILLAGE'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_I. I) 'FRONTIERE'); 'MESS' ; 'SINON'; F_LATE = F_LATE 'ET' (TABSOL_I. I .'FRONTIERE'); 'FINSI'; 'SINON'; 'MESS' ; 'FINSI'; * 'SI' ('EXIST' (TABSOL_I. I) 'MODULE_E'); 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice MODULE_E'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_I. I) 'MASSE_VOLUMIQUE'); 'FLOTTANT'); 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice MASSE_VOLUMIQUE'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_I. I) 'POISSON'); 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice POISSON'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_I. I) 'G_GAMMA'); 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice G_GAMMA'; 'FINSI'; * 'SI' ('EXIST' (TABSOL_I. I) 'H_GAMMA'); 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice H_GAMMA'; 'FINSI'; * 'SI' (I 'EGA' NN1); 'MESS' ; 'SINON'; 'FINSI'; 'SINON'; 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'FINSI'; 'FINSI'; * I = I + 1; 'FIN' IND1; * 'MESS' ; 'SINON'; 'FINSI'; 'MESS' ; 'SINON'; 'FINSI'; 'FINSI'; * * creation de la table pour la frontiere du sol * * NNA = 0; 'FINSI'; 'FINSI'; * KK = 1; 'REPE' IND2 (NNA); MM1 = 'CHAINE' 'NN'; I = 1; 'REPE' IND1 (NN1); 'SI' ('EXIST' (TABSOL_C. I) 'FRONTIERE'); 'SINON'; 'FINSI'; MM1 = 'CHAINE' 'C'; II1 = I; 'FINSI'; 'FINSI'; I = I + 1; 'FIN' IND1; 'FINSI'; * I = 1; 'REPE' IND1 (NN1); 'SI' ('EXIST' (TABSOL_I. I) 'FRONTIERE'); 'SINON'; 'FINSI'; MM1 = 'CHAINE' 'I'; II1 = I; 'FINSI'; 'FINSI'; I = I + 1; 'FIN' IND1; 'FINSI'; * 'SI' ('NEG' MM1 'NN'); KK = KK + 1; 'SI' ('EGA' MM1 'C'); 'SINON'; 'FINSI'; 'FINSI'; 'SI' ('EGA' MM1 'I'); 'SINON'; 'FINSI'; 'FINSI'; 'FINSI'; * 'FIN' IND2; 'OUBL' NN1; 'OUBL' NNA; 'OUBL' CH1; 'OUBL' CH2; 'OUBL' CH3; 'OUBL' II1; 'OUBL' MM1; 'OUBL' KK1; 'OUBL' VAL1; * TABFRO = TABLE; TABFRO.'LATERALE' = TABLE; I = 1; 'REPE' IND1 (NN1); TABFRO.'LATERALE'. I = TABLE; TABFRO.'LATERALE'. I .'MAILLAGE' = 'FINSI'; TABFRO.'LATERALE'. I .'MAILLAGE' = 'FINSI'; I = I + 1; 'FIN' IND1; 'OUBL' NN1; 'OUBL' LL_I; 'OUBL' LL_M; * * K = 1; 'SI' ('EGA' T_CAL 'ISS_CHAMPLOIN'); TABCOL = TABLE; I = 1; 'REPE' IND1 (NN1); 'SI' ('EXIST' (TABSOL_C. I) 'PROFILE'); LL1 = TABSOL_C. I .'PROFILE'; MESS MIMMO; SUR1 = LL1 TRANS 1 (1. 0.); MAI1A = MAI1A 'ET' SUR1; MAI2A = MAI2A 'ET' LL2; TABCOL. K = TABLE; TABCOL. K .'MAILLAGE' = SUR1; TABCOL. K .'FRONTIERE' = LL2; TABCOL. K .'MODULE_E' = TABSOL_C. I .'MODULE_E'; TABCOL. K .'MASSE_VOLUMIQUE' = TABSOL_C. I .'MASSE_VOLUMIQUE'; TABCOL. K .'POISSON' = TABSOL_C. I .'POISSON'; TABCOL. K .'G_GAMMA' = TABSOL_C. I .'G_GAMMA'; TABCOL. K .'H_GAMMA' = TABSOL_C. I .'H_GAMMA'; LL3 = PP1 LIGNE TRANS 1 (1. 0.); 'FINSI'; K = K + 1; 'FINSI'; I = I + 1; 'FIN' IND1; 'OUBL' MAI1; 'OUBL' VOL1; 'OUBL' LL1; 'OUBL' LL2; 'OUBL' LL3; 'OUBL' SUR1; 'OUBL' PP1; 'FINSI'; * TABCOL = TABLE; I = 1; 'REPE' IND1 (NN1); 'SI' ('EXIST' (TABSOL_C. I) 'PROFILE'); LL1 = TABSOL_C. I .'PROFILE'; SUR1 = LL1 'TRANS' 1 (1. 0.); MAI1A = MAI1A 'ET' SUR1; MAI2A = MAI2A 'ET' LL2 'ET' LL1; TABCOL. K = TABLE; TABCOL. K .'MAILLAGE' = SUR1; TABCOL. K .'FRONTIERE' = LL2 'ET' LL1; TABCOL. K .'MODULE_E' = TABSOL_C. I .'MODULE_E'; TABCOL. K .'MASSE_VOLUMIQUE' = TABSOL_C. I .'MASSE_VOLUMIQUE'; TABCOL. K .'POISSON' = TABSOL_C. I .'POISSON'; TABCOL. K .'G_GAMMA' = TABSOL_C. I .'G_GAMMA'; TABCOL. K .'H_GAMMA' = TABSOL_C. I .'H_GAMMA'; LL3 = PP1 'LIGNE' 'TRANS' 1 (1. 0.); MAI2A = MAI2A 'ET' LL3; 'FINSI'; K = K + 1; 'FINSI'; I = I + 1; 'FIN' IND1; 'OUBL' MAI1; 'OUBL' VOL1; 'OUBL' LL1; 'OUBL' LL2; 'OUBL' LL3; 'OUBL' SUR1; 'OUBL' PP1; 'FINSI'; * TABCOL = TABLE; I = 1; 'REPE' IND1 (NN1); 'SI' ('EXIST' (TABSOL_C. I) 'PROFILE'); LL1 = TABSOL_C. I .'PROFILE'; SUR1 = LL1 'TRANS' 1 (1. 0. 0.); SUR2 = LL1 'TRANS' 1 (0. 1. 0.); MAI1A = MAI1A 'ET' VOL1; MAI2A = MAI2A 'ET' SUR1 'ET' SUR2 'ET' SUR3 'ET' SUR4; TABCOL. K = TABLE; TABCOL. K .'MAILLAGE' = VOL1; TABCOL. K .'FRONTIERE' = SUR1 ET SUR2 ET SUR3 ET SUR4; TABCOL. K .'MODULE_E' = TABSOL_C. I .'MODULE_E'; TABCOL. K .'MASSE_VOLUMIQUE' = TABSOL_C. I .'MASSE_VOLUMIQUE'; TABCOL. K .'POISSON' = TABSOL_C. I .'POISSON'; TABCOL. K .'G_GAMMA' = TABSOL_C. I .'G_GAMMA'; TABCOL. K .'H_GAMMA' = TABSOL_C. I .'H_GAMMA'; LL3 = PP1 'LIGNE' 'TRANS' 1 (1. 0. 0.); SUR5 = LL3 'TRANS' 1 (0. 1. 0.); 'ET' SUR5); MAI2A = MAI2A 'ET' SUR5; 'FINSI'; K = K + 1; 'FINSI'; I = I + 1; 'FIN' IND1; 'OUBL' MAI1; 'OUBL' VOL1; 'OUBL' LL1; 'OUBL' SUR1; 'OUBL' SUR2; 'OUBL' SUR3; 'OUBL' SUR4; 'OUBL' SUR5; 'OUBL' PP1; 'FINSI'; 'OUBL' MAI1A; 'OUBL' MAI2A; 'FINSI'; * I = 1; * 'SI' ('EGA' T_CAL 'ISS_CHAMPLOIN'); 'REPE' IND1 (NN1); MAI1 = TABCOL. I .MAILLAGE; 'SINON'; 'FINSI'; * J = 1; 'REPE' IND2 (NN2); MAI2 = TABSOL_C. J .'MAILLAGE'; 'SINON'; 'FINSI'; 'SI' ((Z3 > Z1) 'ET' (Z4 < Z2)); 'FINSI'; J = J + 1; 'FIN' IND2; TABCOL. I .'INDICE' = LL1; * I = I + 1; 'FIN' IND1; 'FINSI'; * 'OUBL' NN1; 'OUBL' MAI1; 'OUBL' CH1; 'OUBL' CH2; 'OUBL' CH3; 'OUBL' NN2; 'OUBL' LL1; * * ************* controle structure ********************************** 'SI' ('EXIST' (TABSTR) 'MAILLAGE'); 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice MAILLAGE'; 'FINSI'; * 'SI' ('EXIST' (TABSTR) 'RIGIDITE'); 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice RIGIDITE'; 'FINSI'; * 'SI' ('EXIST' (TABSTR) 'MASSE'); 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice MASSE'; 'FINSI'; * 'SI' ('EXIST' (TABSTR) 'AMORTISSEMENT'); 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice AMORTISSEMENT'; 'FINSI'; * 'SI' ('EXIST' (TABSTR) 'BLOCAGES_MECANIQUES'); 'MESS' ; 'FINSI'; 'SINON'; 'MESS' ; 'MESS' ' manque le sous_indice BLOCAGES_MECANIQUES'; 'FINSI'; * 'FINSI'; * MESS ''; * ************************************************************** * MESS ''; * F1 = TABPAR.'F1' ; F2 = TABPAR.'F2' ; FC = TABPAR.'FC' ; * ************************************************************** * Selection des elements et des modules ************************************************************** * 'FINSI'; 'FINSI'; 'FINSI'; * SOL_C = 'TABLE'; ESO_C = 'TABLE'; 'FINSI'; SOL_I = 'TABLE'; ESO_I = 'TABLE'; 'FINSI'; * SOLCOL = 'TABLE'; ESOCOL = 'TABLE'; 'FINSI'; * I = 1; 'REPE' BLOC1 NZONE_I; * SOL_I. I = 'TABLE'; * ESO_I. I = 'TABLE'; * NELEM_I = 'NBEL' TABSOL_I.I.MAILLAGE ; * TELEM_I = TABSOL_I.I.MAILLAGE 'ELEM' 'TYPE'; * NTYPE_I = 'DIME' TELEM_I ; * * J = 1; * ITYPE = 1 ; * 'REPE' BLOC11 NTYPE_I ; * MTYPE = 'EXTR' TELEM_I ITYPE ; * MAIL1_I = TABSOL_I.I.'MAILLAGE' 'ELEM' MTYPE ; * NELEM1_I = 'NBEL' MAIL1_I ; * K = 1 ; * 'REPE' BLOC111 NELEM1_I ; * SOL_I.I.J = MAIL1_I 'ELEM' K ; * 'SI' ('EXIST' (TABSOL_I.I) 'G_GO'); * ESO_I.I.J = ((TABSOL_I.I.'G_GO' )*(TABSOL_I.I.'MODULE_E')); * 'SINON'; * ESO_I.I.J = TABSOL_I.I.'MODULE_E' ; * 'FINSI'; * K = K + 1 ; * J = J + 1 ; * 'FIN' BLOC111 ; * ITYPE = ITYPE + 1 ; * 'FIN' BLOC11 ; SOL_I.I = TABSOL_I.I.'MAILLAGE' ; 'SI' ('EXIST' (TABSOL_I.I) 'G_GO'); ESO_I.I = ((TABSOL_I.I.'G_GO' ) *(TABSOL_I.I.'MODULE_E')); 'SINON'; ESO_I.I = TABSOL_I.I.'MODULE_E' ; 'FINSI'; I = I + 1 ; 'FIN' BLOC1 ; 'OUBL' NELEM_I; 'OUBL' TELEM_I; 'OUBL' NTYPE_I; 'OUBL' I; 'OUBL' J; 'OUBL' K; 'OUBL' ITYPE; 'FINSI'; * I = 1; 'REPE' BLOC1 NZONEC; 'SI' ('EXIST' (TABCOL) I); SOLCOL. I = 'TABLE'; ESOCOL. I = 'TABLE'; * * ITYPE = 1 ; J = 1; 'REPE' BLOC11 NTYPEC ; K = 1 ; 'REPE' BLOC111 NELEM1C ; ESOCOL.I.J = TABCOL.I.'MODULE_E' ; Z1 = Z1 - 0.001; Z2 = Z2 + 0.001; X1 = -100000.; X2 = 100000.; ZZ1 = 1; 'SI' ('EXIST' SOL_C JJ1); 'SINON'; SOL_C. JJ1 = 'TABLE'; ESO_C. JJ1 = 'TABLE'; 'FINSI'; 'STRICTEMENT' MAI2; SOL_C. JJ1 . J = MAI2; 'SI' ('EXIST' (TABSOL_C.JJ1) 'G_GO'); ESO_C.JJ1.J = ((TABSOL_C.JJ1.'G_GO' ) *(TABSOL_C.JJ1.'MODULE_E')); 'SINON'; ESO_C.JJ1.J = TABSOL_C.JJ1.'MODULE_E' ; 'FINSI'; ZZ1 = ZZ1 + 1; 'FIN' BLOC1111; 'SINON'; Z1 = Z1 - 0.001; Z2 = Z2 + 0.001; X1 = -100000.; X2 = 100000.; Y1 = -100000.; Y2 = 100000.; ZZ1 = 1; 'SI' ('EXIST' SOL_C JJ1); 'SINON'; SOL_C. JJ1 = 'TABLE'; ESO_C. JJ1 = 'TABLE'; 'FINSI'; 'STRICTEMENT' MAI2; SOL_C. JJ1 . J = MAI2; 'SI' ('EXIST' (TABSOL_C.I) 'G_GO'); ESO_C.I.J = ((TABSOL_C.I.'G_GO' ) *(TABSOL_C.I.'MODULE_E')); 'SINON'; ESO_C.I.J = TABSOL_C.I.'MODULE_E' ; 'FINSI'; ZZ1 = ZZ1 + 1; 'FIN' BLOC1111; 'FINSI'; K = K + 1 ; J = J + 1 ; 'FIN' BLOC111 ; ITYPE = ITYPE + 1 ; 'FIN' BLOC11 ; 'FINSI'; I = I + 1 ; 'FIN' BLOC1 ; 'OUBL' NELEMC; 'OUBL' TELEMC; 'OUBL' NTYPEC; 'OUBL' I; 'OUBL' J; 'OUBL' K; 'OUBL' ITYPE; 'OUBL' CH1; 'OUBL' CH2; 'OUBL' CH3; 'OUBL' MAI1; 'OUBL' MAI2; 'OUBL' MAI3; 'OUBL' X1; 'OUBL' X2; 'OUBL' Y1; 'OUBL' Y2; 'OUBL' Z1; 'OUBL' Z2; 'OUBL' JJ1; 'OUBL' ZZ1; 'SINON'; I = 1; J = 1; 'REPE' BLOC1 NZONE_C; SOL_C.I = TABSOL_C.I.'MAILLAGE' ; 'SI' ('EXIST' (TABSOL_C.I) 'G_GO'); ESO_C.I = ((TABSOL_C.I.'G_GO' ) *(TABSOL_C.I.'MODULE_E')); 'SINON'; ESO_C.I = TABSOL_C.I.'MODULE_E' ; 'FINSI'; I = I + 1 ; 'FIN' BLOC1 ; 'OUBL' I; 'FINSI'; 'FINSI'; * ************************************************************************ * Les courbes G/Gmax-gamma et h-gamma etablies par Seed et Idriss ************************************************************************ * 1.00E-3 3.16E-3 1.00E-2 3.16E-2 1.00E-1 ; 0.152 0.076 0.037 0.013 0.004 ; 0.0925 0.138 0.200 0.260 0.290 ; 0.246 0.115 0.049 0.049 0.049 ; 0.155 0.210 0.246 0.246 0.246 ; TITRE 'COURBE G/GMAX-GAMMA PAR SEED ET IDRISS, SOL ARGILEUX' ; * TITRE 'COURBE H-GAMMA PAR SEED ET IDRISS, SOL ARGILEUX' ; * TITRE 'COURBE G/GMAX-GAMMA PAR SEED ET IDRISS, SOL SABLEUX' ; * TITRE 'COURBE H-GAMMA PAR SEED ET IDRISS, SOL SABLEUX' ; * ************************************************************************ * Former les matrices K, M, C ************************************************************************ * MESS ''; * MOD_I = 'TABLE' ; GGO_I = 'TABLE' ; MAT_I = 'TABLE' ; RIG_I = 'TABLE' ; MAS_I = 'TABLE' ; KSI_I = 'TABLE' ; AMO_I = 'TABLE' ; 'FINSI'; MOD_C = 'TABLE' ; MAT_C = 'TABLE' ; GGO_C = 'TABLE' ; RIG_C = 'TABLE' ; MAS_C = 'TABLE' ; KSI_C = 'TABLE' ; AMO_C = 'TABLE' ; 'FINSI'; MODCOL = 'TABLE' ; MATCOL = 'TABLE' ; GGOCOL = 'TABLE' ; RIGCOL = 'TABLE' ; MASCOL = 'TABLE' ; KSICOL = 'TABLE' ; AMOCOL = 'TABLE' ; 'FINSI'; * GCLAY = 0 ; GSAND = 0 ; HCLAY = 0 ; HSAND = 0 ; * I = 1 ; 'REPE' BLOC2 NZONE_I ; 'SI' ( 'EGA' ( TABSOL_I.I.'G_GAMMA') 'CLAY' ) ; TABSOL_I.I.'G_GAMMA' = EG_CLAY ; GCLAY = 1 ; 'SINON' ; 'SI' ( 'EGA' ( TABSOL_I.I.'G_GAMMA') 'SAND' ) ; TABSOL_I.I.'G_GAMMA' = EG_SAND ; GSAND = 1 ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'SI' ( 'EGA' ( TABSOL_I.I.'H_GAMMA') 'CLAY' ) ; TABSOL_I.I.'H_GAMMA' = EH_CLAY ; HCLAY = 1 ; 'SINON' ; 'SI' ( 'EGA' ( TABSOL_I.I.'H_GAMMA') 'SAND' ) ; TABSOL_I.I.'H_GAMMA' = EH_SAND ; HSAND = 1 ; 'FINSI' ; 'FINSI' ; 'FINSI' ; * MOD_I.I = 'TABLE' ; * GGO_I.I = 'TABLE' ; * MAT_I.I = 'TABLE' ; * RIG_I.I = 'TABLE' ; * MAS_I.I = 'TABLE' ; * KSI_I.I = 'TABLE' ; * AMO_I.I = 'TABLE' ; * NELEM_I = ('DIME' SOL_I.I); * ALPHA = 4 * PI * F1 * F2 / ( F1 + F2 ) ; BETA = 1.0 / ( PI * ( F1 + F2 ) ) ; * * J = 1 ; * 'REPE' BLOC21 NELEM_I ; * 'SI' ('EXIST' (TABSOL_I.I) 'AMORTISSEMENT'); * H_I = (TABSOL_I.I.'AMORTISSEMENT'); * 'SINON'; * H_I = 'EXTR' ( 'EXTR' (TABSOL_I. I .'H_GAMMA') 'ORDO' ) 1 ; * 'FINSI'; * 'SI' ('EGA' V_MOD 'TRID'); * MOD_I. I . J = 'MODE' (SOL_I. I . J ) 'MECANIQUE' * 'ELASTIQUE' 'ISOTROPE' CUB8 PRI6; * MAT_I. I . J = 'MATE' (MOD_I. I . J ) 'YOUN' (ESO_I. I . J) * 'NU' (TABSOL_I. I .'POISSON') * 'RHO' (TABSOL_I. I .'MASSE_VOLUMIQUE'); * 'SINON'; * MOD_I. I . J = 'MODE' (SOL_I. I . J) 'MECANIQUE' * 'ELASTIQUE' 'ISOTROPE' QUA8 TRI6 ; * MAT_I. I . J = 'MATE' (MOD_I. I . J) 'YOUN' (ESO_I. I . J ) * 'NU' (TABSOL_I. I .'POISSON') * 'RHO' (TABSOL_I. I .'MASSE_VOLUMIQUE'); * 'FINSI'; * 'SI' ('EXIST' (TABSOL_I.I) 'G_GO'); * GGO_I. I . J = 'MANU' 'CHML' MOD_I.I.J G_GO (TABSOL_I.I.'G_GO'); * 'SINON'; * GGO_I. I . J = 'MANU' 'CHML' MOD_I.I.J G_GO 1.0 ; * 'FINSI'; * RIG_I. I . J = 'RIGI' MOD_I.I.J MAT_I.I.J; * MAS_I. I . J = 'MASS' MOD_I.I.J MAT_I.I.J; * KSI_I. I . J = 'MANU' 'CHML' MOD_I.I.J 'KS' H_I ; * KSI_I_J = 'EXTR' KSI_I.I.J 'KS' 1 1 1 ; * AMO_I. I . J = (KSI_I_J) * (((ALPHA) * (MAS_I. I . J)) * 'ET' ((BETA) * (RIG_I. I . J))); * J = J + 1 ; * 'FIN' BLOC21 ; 'SI' ('EXIST' (TABSOL_I.I) 'AMORTISSEMENT'); H_I = (TABSOL_I.I.'AMORTISSEMENT'); 'SINON'; 'FINSI'; 'SI' ('EGA' V_MOD 'TRID'); 'ELASTIQUE' 'ISOTROPE' CUB8 PRI6; 'NU' (TABSOL_I. I .'POISSON') 'RHO' (TABSOL_I. I .'MASSE_VOLUMIQUE'); 'SINON'; 'ELASTIQUE' 'ISOTROPE' QUA8 TRI6 ; 'NU' (TABSOL_I. I .'POISSON') 'RHO' (TABSOL_I. I .'MASSE_VOLUMIQUE'); 'FINSI'; 'SI' ('EXIST' (TABSOL_I.I) 'G_GO'); 'SINON'; 'FINSI'; (((ESO_I. I)*(KSI_I. I))*(BETA)) 'NU' (TABSOL_I. I .'POISSON') 'RHO' (((TABSOL_I. I .'MASSE_VOLUMIQUE')*(KSI_I. I))*(ALPHA)); * KSI_I_J = 'EXTR' KSI_I.I.J 'KS' 1 1 1 ; * AMO_I. I . J = (KSI_I_J) * (((ALPHA) * (MAS_I. I . J)) * 'ET' ((BETA) * (RIG_I. I . J))); I = I + 1 ; 'FIN' BLOC2 ; 'FINSI'; OUBL H_I; OUBL KSI_I_J; OUBL J; OUBL I; OUBL NELEM_I; OUBL GSAND; OUBL HSAND; OUBL GCLAY; OUBL HCLAY; * GCLAY = 0 ; GSAND = 0 ; HCLAY = 0 ; HSAND = 0 ; * I = 1 ; 'REPE' BLOC2 NZONEC ; 'SI' ( 'EGA' ( TABCOL.I.'G_GAMMA') 'CLAY' ) ; TABCOL. I .'G_GAMMA' = EG_CLAY ; GCLAY = 1 ; 'SINON' ; 'SI' ( 'EGA' ( TABCOL.I.'G_GAMMA') 'SAND' ) ; TABCOL. I .'G_GAMMA' = EG_SAND ; GSAND = 1 ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'SI' ( 'EGA' ( TABCOL.I.'H_GAMMA') 'CLAY' ) ; TABCOL. I .'H_GAMMA' = EH_CLAY ; HCLAY = 1 ; 'SINON' ; 'SI' ( 'EGA' ( TABCOL.I.'H_GAMMA') 'SAND' ) ; TABCOL. I .'H_GAMMA' = EH_SAND ; HSAND = 1 ; 'FINSI' ; 'FINSI' ; 'FINSI' ; MODCOL. I = 'TABLE' ; GGOCOL. I = 'TABLE' ; MATCOL. I = 'TABLE' ; RIGCOL. I = 'TABLE' ; MASCOL. I = 'TABLE' ; KSICOL. I = 'TABLE' ; AMOCOL. I = 'TABLE' ; * ALPHA = 4 * PI * F1 * F2 / ( F1 + F2 ) ; BETA = 1.0 / ( PI * ( F1 + F2 ) ) ; * J = 1 ; 'REPE' BLOC21 NELEMC ; 'SI' ('EGA' V_MOD 'TRID'); 'ELASTIQUE' 'ISOTROPE' CUB8 PRI6; 'NU' (TABCOL.I.'POISSON') 'RHO' (TABCOL. I .'MASSE_VOLUMIQUE') ; 'SINON'; 'ELASTIQUE' 'ISOTROPE' QUA8 TRI6 ; 'NU' ( TABCOL.I.'POISSON' ) 'RHO' ( TABCOL.I.'MASSE_VOLUMIQUE' ) ; 'FINSI'; AMOCOL. I . J = (KSICOL_J) * (((ALPHA) * (MASCOL. I . J)) 'ET' ((BETA) * (RIGCOL. I . J))); J = J + 1 ; 'FIN' BLOC21 ; I = I + 1 ; 'FIN' BLOC2 ; * I = 1 ; 'REPE' BLOC2 NZONE_C ; 'SI' ( 'EGA' ( TABSOL_C.I.'G_GAMMA') 'CLAY' ) ; TABSOL_C. I .'G_GAMMA' = EG_CLAY ; GCLAY = 1 ; 'SINON' ; 'SI' ( 'EGA' ( TABSOL_C.I.'G_GAMMA') 'SAND' ) ; TABSOL_C. I .'G_GAMMA' = EG_SAND ; GSAND = 1 ; 'FINSI' ; 'FINSI' ; 'FINSI' ; 'SI' ( 'EGA' ( TABSOL_C.I.'H_GAMMA') 'CLAY' ) ; TABSOL_C. I .'H_GAMMA' = EH_CLAY ; HCLAY = 1 ; 'SINON' ; 'SI' ( 'EGA' ( TABSOL_C.I.'H_GAMMA') 'SAND' ) ; TABSOL_C. I .'H_GAMMA' = EH_SAND ; HSAND = 1 ; 'FINSI' ; 'FINSI' ; 'FINSI' ; MOD_C. I = 'TABLE' ; GGO_C. I = 'TABLE' ; MAT_C. I = 'TABLE' ; RIG_C. I = 'TABLE' ; MAS_C. I = 'TABLE' ; KSI_C. I = 'TABLE' ; AMO_C. I = 'TABLE' ; * ALPHA = 4 * PI * F1 * F2 / ( F1 + F2 ) ; BETA = 1.0 / ( PI * ( F1 + F2 ) ) ; * J = 1 ; 'REPE' BLOC21 NELEM_C ; 'SI' ('EGA' V_MOD 'TRID'); 'ELASTIQUE' 'ISOTROPE' CUB8 PRI6; 'NU' (TABSOL_C. I .'POISSON') 'RHO' (TABSOL_C. I .'MASSE_VOLUMIQUE'); 'SINON'; 'ELASTIQUE' 'ISOTROPE' QUA8 TRI6 ; 'NU' (TABSOL_C. I .'POISSON') 'RHO' (TABSOL_C. I .'MASSE_VOLUMIQUE') ; 'FINSI'; AMO_C. I . J = KSI_C_J * (((ALPHA) * (MAS_C. I . J)) 'ET' ((BETA) * (RIG_C. I . J))); J = J + 1 ; 'FIN' BLOC21 ; I = I + 1 ; 'FIN' BLOC2 ; 'SINON'; I = 1 ; 'REPE' BLOC2 NZONE_C ; MOD_C.I = 'TABLE' ; GGO_C.I = 'TABLE' ; MAT_C.I = 'TABLE' ; RIG_C.I = 'TABLE' ; MAS_C.I = 'TABLE' ; KSI_C.I = 'TABLE' ; AMO_C.I = 'TABLE' ; * ALPHA = 4 * PI * F1 * F2 / ( F1 + F2 ) ; BETA = 1.0 / ( PI * ( F1 + F2 ) ) ; * H_C = TABSOL_C. I .'AMORTISSEMENT'; 'SI' ('EGA' V_MOD 'TRID'); 'ELASTIQUE' 'ISOTROPE' CUB8 PRI6; 'SINON'; 'ELASTIQUE' 'ISOTROPE' QUA8 TRI6 ; 'FINSI'; 'SI' ('EXIST' (TABSOL_C.I) 'G_GO'); 'SINON'; 'FINSI'; 'NU' ( TABSOL_C.I.'POISSON' ) 'RHO' ( TABSOL_C.I.'MASSE_VOLUMIQUE' ) ; AMO_C.I = KSI_C_J * (( ALPHA * MAS_C.I ) 'ET' ( BETA * RIG_C.I )); I = I + 1 ; 'FIN' BLOC2 ; 'FINSI'; 'FINSI'; 'OUBL' H_C; 'OUBL' HC; 'OUBL' KSI_C_J; 'OUBL' KSIC_J; 'OUBL' I; 'OUBL' NELEM_C; 'OUBL' NELEMC; 'OUBL' GSAND; 'OUBL' HSAND; 'OUBL' GCLAY; 'OUBL' HCLAY; * ************************************************************************ * Assemblage ************************************************************************ * MESS ''; I = 1; 'REPE' BLOC3 NZONE_I; * NELEM_I = (DIME SOL_I.I); * J = 1; * 'REPE' BLOC31 NELEM_I ; * 'SI' ( ( I 'EGA' 1 ) 'ET' ( J 'EGA' 1 ) ) ; * 'SI' ('EXIST' (SOL_I. I) J); * MAI_SOLI = SOL_I. I . J ; * MOD_SOLI = MOD_I. I . J ; * GGO_SOLI = GGO_I. I . J ; * MAT_SOLI = MAT_I. I . J ; * RIG_SOLI = RIG_I. I . J ; * MAS_SOLI = MAS_I. I . J ; * KSI_SOLI = KSI_I. I . J ; * AMO_SOLI = AMO_I. I . J ; * 'FINSI'; * 'SINON'; * 'SI' ('EXIST' (SOL_I. I) J); * MAI_SOLI = MAI_SOLI 'ET' (SOL_I. I . J); * MOD_SOLI = MOD_SOLI 'ET' (MOD_I. I . J); * GGO_SOLI = GGO_SOLI 'ET' (GGO_I. I . J); * MAT_SOLI = MAT_SOLI 'ET' (MAT_I. I . J); * RIG_SOLI = RIG_SOLI 'ET' (RIG_I. I . J); * MAS_SOLI = MAS_SOLI 'ET' (MAS_I. I . J); * KSI_SOLI = KSI_SOLI 'ET' (KSI_I. I . J); * AMO_SOLI = AMO_SOLI 'ET' (AMO_I. I . J); * 'FINSI'; * 'FINSI'; * J = J + 1; * 'FIN' BLOC31; 'SI' ( ( I 'EGA' 1 )) ; MAI_SOLI = SOL_I. I; MOD_SOLI = MOD_I. I; GGO_SOLI = GGO_I. I; MAT_SOLI = MAT_I. I; RIG_SOLI = RIG_I. I; MAS_SOLI = MAS_I. I; KSI_SOLI = KSI_I. I; AMO_SOLI = AMO_I. I; 'SINON'; MAI_SOLI = MAI_SOLI 'ET' (SOL_I. I); MOD_SOLI = MOD_SOLI 'ET' (MOD_I. I); GGO_SOLI = GGO_SOLI 'ET' (GGO_I. I); MAT_SOLI = MAT_SOLI 'ET' (MAT_I. I); RIG_SOLI = RIG_SOLI 'ET' (RIG_I. I); MAS_SOLI = MAS_SOLI 'ET' (MAS_I. I); KSI_SOLI = KSI_SOLI 'ET' (KSI_I. I); AMO_SOLI = AMO_SOLI 'ET' (AMO_I. I); 'FINSI'; I = I + 1; 'FIN' BLOC3; 'FINSI'; * I = 1; 'REPE' BLOC3 NZONEC; J = 1; 'REPE' BLOC31 NELEMC ; 'SI' ( ( I 'EGA' 1 ) 'ET' ( J 'EGA' 1 ) ) ; 'SI' ('EXIST' (SOLCOL. I) J); MAISOLC = SOLCOL. I . J ; MODSOLC = MODCOL. I . J ; GGOSOLC = GGOCOL. I . J ; MATSOLC = MATCOL. I . J ; RIGSOLC = RIGCOL. I . J ; MASSOLC = MASCOL. I . J ; KSISOLC = KSICOL. I . J ; AMOSOLC = AMOCOL. I . J ; 'FINSI'; 'SINON'; 'SI' ('EXIST' (SOLCOL. I) J); MAISOLC = MAISOLC 'ET' (SOLCOL. I . J); MODSOLC = MODSOLC 'ET' (MODCOL. I . J); GGOSOLC = GGOSOLC 'ET' (GGOCOL. I . J); MATSOLC = MATSOLC 'ET' (MATCOL. I . J); RIGSOLC = RIGSOLC 'ET' (RIGCOL. I . J); MASSOLC = MASSOLC 'ET' (MASCOL. I . J); KSISOLC = KSISOLC 'ET' (KSICOL. I . J); AMOSOLC = AMOSOLC 'ET' (AMOCOL. I . J); 'FINSI'; 'FINSI'; J = J + 1; 'FIN' BLOC31; I = I + 1; 'FIN' BLOC3; * I = 1; 'REPE' BLOC3 NZONE_C; J = 1; 'REPE' BLOC31 NELEM_C ; 'SI' ( ( I 'EGA' 1 ) 'ET' ( J 'EGA' 1 ) ) ; 'SI' ('EXIST' (SOL_C. I) J); MAI_SOLC = SOL_C. I . J ; MOD_SOLC = MOD_C. I . J ; GGO_SOLC = GGO_C. I . J ; MAT_SOLC = MAT_C. I . J ; RIG_SOLC = RIG_C. I . J ; MAS_SOLC = MAS_C. I . J ; KSI_SOLC = KSI_C. I . J ; AMO_SOLC = AMO_C. I . J ; 'FINSI'; 'SINON'; 'SI' ('EXIST' (SOL_C. I) J); MAI_SOLC = MAI_SOLC 'ET' (SOL_C. I . J); MOD_SOLC = MOD_SOLC 'ET' (MOD_C. I . J); GGO_SOLC = GGO_SOLC 'ET' (GGO_C. I . J); MAT_SOLC = MAT_SOLC 'ET' (MAT_C. I . J); RIG_SOLC = RIG_SOLC 'ET' (RIG_C. I . J); MAS_SOLC = MAS_SOLC 'ET' (MAS_C. I . J); KSI_SOLC = KSI_SOLC 'ET' (KSI_C. I . J); AMO_SOLC = AMO_SOLC 'ET' (AMO_C. I . J); 'FINSI'; 'FINSI'; J = J + 1; 'FIN' BLOC31; I = I + 1; 'FIN' BLOC3; 'SINON'; I = 1; 'REPE' BLOC3 NZONE_C; 'SI' ( ( I 'EGA' 1 )) ; MAI_SOLC = SOL_C. I ; MOD_SOLC = MOD_C. I ; GGO_SOLC = GGO_C. I ; MAT_SOLC = MAT_C. I ; RIG_SOLC = RIG_C. I ; MAS_SOLC = MAS_C. I ; KSI_SOLC = KSI_C. I ; AMO_SOLC = AMO_C. I ; 'SINON'; MAI_SOLC = MAI_SOLC 'ET' (SOL_C. I ); MOD_SOLC = MOD_SOLC 'ET' (MOD_C. I ); GGO_SOLC = GGO_SOLC 'ET' (GGO_C. I ); MAT_SOLC = MAT_SOLC 'ET' (MAT_C. I ); RIG_SOLC = RIG_SOLC 'ET' (RIG_C. I ); MAS_SOLC = MAS_SOLC 'ET' (MAS_C. I ); KSI_SOLC = KSI_SOLC 'ET' (KSI_C. I ); AMO_SOLC = AMO_SOLC 'ET' (AMO_C. I ); 'FINSI'; I = I + 1; 'FIN' BLOC3; 'FINSI'; 'FINSI'; * MAI_SOLT = MAI_SOLI; MOD_SOLT = MOD_SOLI; GGO_SOLT = GGO_SOLI; MAT_SOLT = MAT_SOLI; RIG_SOLT = RIG_SOLI; MAS_SOLT = MAS_SOLI; KSI_SOLT = KSI_SOLI; AMO_SOLT = AMO_SOLI; MAI_SOLT = MAI_SOLI 'ET' MAI_SOLC; MOD_SOLT = MOD_SOLI 'ET' MOD_SOLC; GGO_SOLT = GGO_SOLI 'ET' GGO_SOLC; MAT_SOLT = MAT_SOLI 'ET' MAT_SOLC; RIG_SOLT = RIG_SOLI 'ET' RIG_SOLC; MAS_SOLT = MAS_SOLI 'ET' MAS_SOLC; KSI_SOLT = KSI_SOLI 'ET' KSI_SOLC; AMO_SOLT = AMO_SOLI 'ET' AMO_SOLC; * MAISOLT = MAISOLC; MODSOLT = MODSOLC; GGOSOLT = GGOSOLC; MATSOLT = MATSOLC; RIGSOLT = RIGSOLC; MASSOLT = MASSOLC; KSISOLT = KSISOLC; AMOSOLT = AMOSOLC; 'SINON'; MAI_SOLT = MAI_SOLI 'ET' MAI_SOLC; MOD_SOLT = MOD_SOLI 'ET' MOD_SOLC; GGO_SOLT = GGO_SOLI 'ET' GGO_SOLC; MAT_SOLT = MAT_SOLI 'ET' MAT_SOLC; RIG_SOLT = RIG_SOLI 'ET' RIG_SOLC; MAS_SOLT = MAS_SOLI 'ET' MAS_SOLC; KSI_SOLT = KSI_SOLI 'ET' KSI_SOLC; AMO_SOLT = AMO_SOLI 'ET' AMO_SOLC; 'FINSI'; 'FINSI'; 'SINON'; MAI_SOLT = MAI_SOLC; MOD_SOLT = MOD_SOLC; GGO_SOLT = GGO_SOLC; MAT_SOLT = MAT_SOLC; RIG_SOLT = RIG_SOLC; MAS_SOLT = MAS_SOLC; KSI_SOLT = KSI_SOLC; AMO_SOLT = AMO_SOLC; * MAISOLT = MAISOLC; MODSOLT = MODSOLC; GGOSOLT = GGOSOLC; MATSOLT = MATSOLC; RIGSOLT = RIGSOLC; MASSOLT = MASSOLC; KSISOLT = KSISOLC; AMOSOLT = AMOSOLC; 'SINON'; MAI_SOLT = MAI_SOLC; MOD_SOLT = MOD_SOLC; GGO_SOLT = GGO_SOLC; MAT_SOLT = MAT_SOLC; RIG_SOLT = RIG_SOLC; MAS_SOLT = MAS_SOLC; KSI_SOLT = KSI_SOLC; AMO_SOLT = AMO_SOLC; 'FINSI'; 'FINSI'; 'FINSI'; * * ON MET TOUT DANS LA TABLE "TABRES" * MESS ''; * TABRESC = TABLE ; TABRESC.'T_SOL' = SOLCOL ; TABRESC.'T_ESO' = ESOCOL ; TABRESC.'T_MOD' = MODCOL ; TABRESC.'T_GGO' = GGOCOL ; TABRESC.'T_MAT' = MATCOL ; TABRESC.'T_RIG' = RIGCOL ; TABRESC.'T_MAS' = MASCOL ; TABRESC.'T_KSI' = KSICOL ; TABRESC.'T_AMO' = AMOCOL ; TABRESC.'O_SOL' = MAISOLC ; TABRESC.'O_MOD' = MODSOLC ; TABRESC.'O_GGO' = GGOSOLC ; TABRESC.'O_MAT' = MATSOLC ; TABRESC.'O_RIG' = RIGSOLC ; TABRESC.'O_MAS' = MASSOLC ; TABRESC.'O_KSI' = KSISOLC ; TABRESC.'O_AMO' = AMOSOLC ; * TABRES_C = TABLE ; TABRES_C.'T_SOL' = SOL_C ; TABRES_C.'T_ESO' = ESO_C ; TABRES_C.'T_MOD' = MOD_C ; TABRES_C.'T_GGO' = GGO_C ; TABRES_C.'T_MAT' = MAT_C ; TABRES_C.'T_RIG' = RIG_C ; TABRES_C.'T_MAS' = MAS_C ; TABRES_C.'T_KSI' = KSI_C ; TABRES_C.'T_AMO' = AMO_C ; TABRES_C.'O_SOL' = MAI_SOLC ; TABRES_C.'O_MOD' = MOD_SOLC ; TABRES_C.'O_GGO' = GGO_SOLC ; TABRES_C.'O_MAT' = MAT_SOLC ; TABRES_C.'O_RIG' = RIG_SOLC ; TABRES_C.'O_MAS' = MAS_SOLC ; TABRES_C.'O_KSI' = KSI_SOLC ; TABRES_C.'O_AMO' = AMO_SOLC ; 'SINON'; TABRES_C = TABLE ; TABRES_C.'T_SOL' = SOL_C ; TABRES_C.'T_ESO' = ESO_C ; TABRES_C.'T_MOD' = MOD_C ; TABRES_C.'T_GGO' = GGO_C ; TABRES_C.'T_MAT' = MAT_C ; TABRES_C.'T_RIG' = RIG_C ; TABRES_C.'T_MAS' = MAS_C ; TABRES_C.'T_KSI' = KSI_C ; TABRES_C.'T_AMO' = AMO_C ; TABRES_C.'O_SOL' = MAI_SOLC ; TABRES_C.'O_MOD' = MOD_SOLC ; TABRES_C.'O_GGO' = GGO_SOLC ; TABRES_C.'O_MAT' = MAT_SOLC ; TABRES_C.'O_RIG' = RIG_SOLC ; TABRES_C.'O_MAS' = MAS_SOLC ; TABRES_C.'O_KSI' = KSI_SOLC ; TABRES_C.'O_AMO' = AMO_SOLC ; 'FINSI'; 'FINSI'; TABRES_I = TABLE ; TABRES_I.'T_SOL' = SOL_I ; TABRES_I.'T_ESO' = ESO_I ; TABRES_I.'T_MOD' = MOD_I ; TABRES_I.'T_GGO' = GGO_I ; TABRES_I.'T_MAT' = MAT_I ; TABRES_I.'T_RIG' = RIG_I ; TABRES_I.'T_MAS' = MAS_I ; TABRES_I.'T_KSI' = KSI_I ; TABRES_I.'T_AMO' = AMO_I ; TABRES_I.'O_SOL' = MAI_SOLI ; TABRES_I.'O_MOD' = MOD_SOLI ; TABRES_I.'O_GGO' = GGO_SOLI ; TABRES_I.'O_MAT' = MAT_SOLI ; TABRES_I.'O_RIG' = RIG_SOLI ; TABRES_I.'O_MAS' = MAS_SOLI ; TABRES_I.'O_KSI' = KSI_SOLI ; TABRES_I.'O_AMO' = AMO_SOLI ; 'FINSI'; * TABRES_T = TABLE; TABRES_T.'O_SOL' = MAI_SOLT ; TABRES_T.'O_MOD' = MOD_SOLT ; TABRES_T.'O_GGO' = GGO_SOLT ; TABRES_T.'O_MAT' = MAT_SOLT ; TABRES_T.'O_RIG' = RIG_SOLT ; TABRES_T.'O_MAS' = MAS_SOLT ; TABRES_T.'O_KSI' = KSI_SOLT ; TABRES_T.'O_AMO' = AMO_SOLT ; * TDON1.'FRONTIERE' = TABFRO; TDON1.'COLONNE' = TABCOL; 'FINSI'; * TDON1.'STEP0' = TABLE; TDON1.'STEP0'.'SOL' = TABLE; TDON1.'STEP0'.'SOL'.'ITERATION' = TABRES_I; 'FINSI'; * TDON1.'STEP0'.'COLONNE' = TABRESC; TDON1.'STEP0'.'SOL'.'CONSTANTE' = TABRES_C; 'SINON'; TDON1.'STEP0'.'SOL'.'CONSTANTE' = TABRES_C; 'FINSI'; 'FINSI'; * TDON1.'STEP0'.'SOL'.'TOTALE' = TABRES_T; 'SI' ('EXIST' (TDON1) 'STRUCTURE'); TDON1.'STEP0'.'STRUCTURE' = TABSTR; 'FINSI'; * 'OUBL' I; 'OUBL' J; 'OUBL' ZZ; 'OUBL' MOD_C; 'OUBL' MODC; 'OUBL' MAT_C; 'OUBL' MATC; 'OUBL' RIG_C; 'OUBL' RIGC; 'OUBL' MAS_C; 'OUBL' MASC; 'OUBL' AMO_C; 'OUBL' AMOC; 'OUBL' KSI_C; 'OUBL' KSIC; 'OUBL' SOL_C; 'OUBL' SOLC; 'OUBL' ESO_C; 'OUBL' ESOC; 'OUBL' GGO_C; 'OUBL' GGOC; 'OUBL' MOD_I; 'OUBL' MAT_I; 'OUBL' RIG_I; 'OUBL' MAS_I; 'OUBL' AMO_I; 'OUBL' KSI_I; 'OUBL' SOL_I; 'OUBL' ESO_I; 'OUBL' GGO_I; 'OUBL' MAI_SOLC; 'OUBL' MAT_SOLC; 'OUBL' GGO_SOLC; 'OUBL' KSI_SOLC; 'OUBL' MOD_SOLC; 'OUBL' RIG_SOLC; 'OUBL' MAS_SOLC; 'OUBL' AMO_SOLC; 'OUBL' MAI_SOLI; 'OUBL' MAT_SOLI; 'OUBL' GGO_SOLI; 'OUBL' KSI_SOLI; 'OUBL' MOD_SOLI; 'OUBL' RIG_SOLI; 'OUBL' MAS_SOLI; 'OUBL' AMO_SOLI; 'OUBL' MAISOLC; 'OUBL' MATSOLC; 'OUBL' GGOSOLC; 'OUBL' KSISOLC; 'OUBL' MODSOLC; 'OUBL' RIGSOLC; 'OUBL' MASSOLC; 'OUBL' AMOSOLC; 'OUBL' MAI_SOLT; 'OUBL' MAT_SOLT; 'OUBL' GGO_SOLT; 'OUBL' KSI_SOLT; 'OUBL' MOD_SOLT; 'OUBL' RIG_SOLT; 'OUBL' MAS_SOLT; 'OUBL' AMO_SOLT; 'OUBL' MAISOLT; 'OUBL' MATSOLT; 'OUBL' GGOSOLT; 'OUBL' KSISOLT; 'OUBL' MODSOLT; 'OUBL' RIGSOLT; 'OUBL' MASSOLT; 'OUBL' AMOSOLT; 'OUBL' TABSOL_C; 'OUBL' TABCOL; 'OUBL' TABSOL_I; 'OUBL' TABPAR; 'OUBL' TABSOL; 'OUBL' TABSTR; 'OUBL' TABFRO; 'OUBL' H_SAND; 'OUBL' G_SAND; 'OUBL' H_CLAY; 'OUBL' G_CLAY; 'OUBL' H_SAND; 'OUBL' EH_SAND; 'OUBL' EG_SAND; 'OUBL' EH_CLAY; 'OUBL' EG_CLAY; 'OUBL' EH_SAND; 'OUBL' MAIL1C; 'OUBL' GAM_EFF; 'OUBL' TABRES_T; 'OUBL' TABRESC; 'OUBL' TABRES_C; 'OUBL' TABRES_I; 'OUBL' ZONE_C; 'OUBL' ZONE_I; 'OUBL' ZONEC; 'OUBL' NN1; 'OUBL' NELEM_C; 'OUBL' NELEMC; 'OUBL' NELEM1C; 'OUBL' NELEM1_I; 'OUBL' NELEM_I; 'OUBL' NZONE_C; 'OUBL' NZONE_I; 'OUBL' NZONEC; 'OUBL' F1; 'OUBL' F2; 'OUBL' FC; 'OUBL' ALPHA; 'OUBL' BETA; 'OUBL' MAIL1_I; MESS ''; MESS ''; * ************************************************************* ****************** FIN STEP 0 *********************** ************************************************************* * 'FINSI'; * * * ************************************************************* ************** FIN DE LA PROCEDURE ****************** ************************************************************* * FINPROC;
© Cast3M 2003 - Tous droits réservés.
Mentions légales