* SIF PROCEDUR FD218221 18/03/20 21:15:06 9778 ************************************************************************ * PROCEDURE POUR LA DETERMINATION DE K * * PAR LA METHODE DES DEPLACEMENTS * ************************************************************************ * * * SUPTAB.'MAILLAGE' : EN 3D SEULEMENT, MAILLAGE DE LA PIECE * * * * SUPTAB.'FRTFISS' : FRONT DE FISSURE * * - EN 2D : POINT SITUE EN POINTE DE FISSURE * * - EN 3D : MAILLAGE DE LA LIGNE FRONT DE FISSURE * * * * SUPTAB.'MODMIXTE' : BOOLEEN VALANT VRAI SI ON EST EN MODE MIXTE * * * * SUPTAB.'LEVRE_1' : MAILLAGE DES LEVRES DE LA FISSURE * * - EN 2D : MAILLAGE D'UNE LIGNE * * - EN 3D : MAILLAGE D'UNE SURFACE * * - EN CAS DE MODE MIXTE, LEVRE SUPERIEURE * * SUPTAB.'LEVRE_2' : EN CAS DE MODE MIXTE SEULEMENT * * MAILLAGE DE LA LEVRE INFERIEURE * * * * SUPTAB.'DEBOUCH' : BOOLEEN VALANT VRAI SI LA FISSURE EST DEBOUCHANTE * * ET FAUX SINON (EN 3D SEULEMENT) * * SUPTAB.'PDEBOUCH' : EXISTE EN CAS DE FISSURE DEBOUCHANTE EN 3D * * * EN CAS DE FISSURE SYMETRIQUE :POINT INTERSECTION ENTRE LA * * LIGNE DEBOUCHANTE ET FRTFISS (TYPE POINT) * * * EN CAS DE FISSURE NON SYMETRIQUE : LES 2 POINTS INTERSECTION * * ENTRE LA LIGNE DEBOUCHANTE ET LE FRONT DE FISSURE * * (TYPE MAILLAGE) * * * * SUPTAB.'EPAI' : CHPOINT OU REEL DES EPAISSEURS AUX NOEUDS (POUR LES * * ELEMENTS COQUES) * * SUPTAB.'MEMBRANE' : BOOLEEN VALANT VRAI SI LES K1 ET EVENTUELLEMENT * * K2 DOIVENT ETRE EVALUES A PARTIR DES DEFORMATIONS* * MEMBRANAIRES (POUR LES ELEMENTS COQUES) * * SUPTAB.'FLEXION' : BOOLEEN VALANT VRAI SI LES K1 ET K2 DE FLEXION * * DOIVENT ETRE EVALUES (POUR LES ELEMENTS COQUES) * * * * SUPTAB.'GRANDS_DEPLACEMENTS' : BOOLEEN VALANT VRAI POUR UN CALCUL EN * * GRANDS DEPLACEMENTS * * * * MAT : CHAMP DE MATERIAU * * * * U : CHAMP DE DEPLACEMENT * ************************************************************************ ************************************************************************ * ARGUMENTS DE SORTIE * * TABLE SUPTAB * ************************************************************************ * * *SUPTAB.'K1' :* EN 2D, CONTIENT LE REEL K1 : SUPTAB.K1 = K1 * * * EN 3D, CONTIENT UNE TABLE DE REELS QUI REPRESENTENT LES* * K1 A CHAQUE NOEUD DU FRONT DE FISSURE ; CETTE TABLE DE * * REELS A POUR INDICES DES OBJETS DE TYPE POINT : * * EXEMPLE : SUPTAB.K1.P = K1 TROUVE AU NOEUD DU FRONT * * DONT LES COORDONNEES SONT CELLES DE P * * * POUR LES COQUES, CONTIENT UNE TABLE DE 3 REELS : * * SUPTAB.K1.TOTAL : K1(flexion) + K1(membrane) * * SUPTAB.K1.MEMBRANE : K1(membrane) * * SUPTAB.K1.FLEXION : K1(flexion) * * * *SUPTAB.'K2' :* EN 2D, CONTIENT LE REEL K2 : SUPTAB.K2 = K2 * * * EN 3D, CONTIENT UNE TABLE DE REELS QUI REPRESENTENT LES* * KII A CHAQUE NOEUD DU FRONT DE FISSURE ;CETTE TABLE DE * * REELS A POUR INDICES DES OBJETS DE TYPE POINT : * * EXEMPLE : SUPTAB.K2.P = K2 TROUVE AU NOEUD DU FRONT * * DONT LES COORDONNEES SONT CELLES DE P * * * POUR LES COQUES, CONTIENT UNE TABLE DE 3 REELS : * * SUPTAB.K2.TOTAL : K2(flexion) + K2(membrane) * * SUPTAB.K2.MEMBRANE : K2(membrane) * * SUPTAB.K2.FLEXION : K2(flexion) * * * ************************************************************************ ************************************************************************ * ACQUISITION DES DONNEES D'ENTREE ET INITIALISATIONS ************************************************************************ * Options generales IELEMLIN = IELEM2 'OU' IELEM3; ICOQ = (EGA &DIM 3) ET ((IELEM2) 'OU' (IEL2Q)); IMASS = (EGA &DIM 3) ET ((IELEM3) 'OU' (IEL3Q)); * Type de calcul SI (EXISTE SUPTAB 'MODMIXTE'); MODMIXT = SUPTAB.'MODMIXTE'; SINON; MODMIXT = FAUX; FINSI; * Pour le cas avec des coques SI (EXISTE SUPTAB 'EPAI'); CHEP = SUPTAB.'EPAI'; FINSI; SI (EXISTE SUPTAB 'MEMBRANE'); MEMB = SUPTAB.'MEMBRANE'; SINON; MEMB = FAUX; FINSI; SI (EXISTE SUPTAB 'FLEXION'); FLEX = SUPTAB.'FLEXION'; SINON; FLEX = FAUX; FINSI; * Cas fissure debouchante SI (EXISTE SUPTAB 'DEBOUCH'); DEBOUCH = SUPTAB.'DEBOUCH'; SINON; DEBOUCH = FAUX; FINSI; SI DEBOUCH; PDBOUCH1 = SUPTAB.'PDEBOUCH'; SINON; FINSI; FINSI; * Cas grands deplacements (on fait les calculs sur la configuration) SI (EXISTE SUPTAB 'GRANDS_DEPLACEMENTS'); IGDDEP = SUPTAB.'GRANDS_DEPLACEMENTS'; SINON; IGDDEP = FAUX; FINSI; SI IGDDEP; FORM U; FINSI; * Maillage SI IMASS; SI (EXISTE SUPTAB 'MAILLAGE'); MAILLAGE = SUPTAB.'MAILLAGE'; SINON; ERRE 'Il manque la donnee du maillage !'; FINSI; FINSI; * Front de fissure SI (EXISTE SUPTAB 'FRTFISS'); SI IMASS; FRTFISS = SUPTAB.'FRTFISS'; SINON; PF = SUPTAB.'FRTFISS'; FINSI; SINON; ERRE 'Il manque la donnee du front de fissure !'; FINSI; * Levres de la fissure SI (EXISTE SUPTAB 'LEVRE_1'); SI IMASS; SURFIS1 = SUPTAB.'LEVRE_1'; SINON; LIFIS1 = SUPTAB.'LEVRE_1'; FINSI; SINON; ERRE 'Il manque la donnee des levres de la fissure !'; FINSI; SI MODMIXT; SI (EXISTE SUPTAB 'LEVRE_2'); SI IMASS; SURFIS2 = SUPTAB.'LEVRE_2'; SINON; LIFIS2 = SUPTAB.'LEVRE_2'; FINSI; SINON; ERRE 'Il manque la donnee de la levre inferieure !'; FINSI; FINSI; * En 3D, on recupere des points sur les levres de la fissure mais * n'appartenant pas au front SI IMASS; SI MODMIXT; FINSI; FINSI; ************************************************************************ * EN 3D : RECUPERATION DES * - POINTS DU FRONT DE FISSURE --> TABLE TPF * - POINTS SUR LES LIGNES PERPENDICULAIRES AU FRONT DE FISSURE * SUR LESQUELLES SERONT EFFECTUES LES CALCULS * -- > TABLES TLIG1 ET TLIG2 ************************************************************************ SI IMASS; TMAIL = TABLE; TRANCHE = TABLE; * recuperation des points extremites du front de fissure * determination du volume de travail MAILVOL : * 3 couches d'elements autour de la ligne de front MAILVOL = FRTFISS; REPETER BVOL 3; FIN BVOL; * récupération de la surface initiale de MAILVOL --> SURINIT SURINIT = PINIT; REPETER BSURINIT 3; FIN BSURINIT; SURINIT1 = SURINIT; SURINIT = PINIT; REPETER BSURI 7; FIN BSURI; * récupération de la surface finale de MAILVOL --> SURFIN SURFIN = PFINA; REPETER BSURFIN 3; FIN BSURFIN; SURFIN1 = SURFIN; SURFIN = PFINA; REPETER BSURF 7; FIN BSURF; * récuperation des mailles et des plans orthogonaux à la fissure * --> tables TMAIL et TRANCHE I = 0; TRANCHET = TRANCHE.1; I = I + 1; * récuperation des tranches TRANCHET; TRANCHET = TRANCHET ET TRANCHE.(I + 1); * si elements lineaires SI IELEMLIN; SINON; * si elements quadratiques, points sommets * puis noeuds milieux (TMAIL.((2 * I) - 1) ET TMAIL.((2 * I) + 1)); FINSI; FIN BRECU; FINSI; SI (NON IELEMLIN); (TMAIL.P ET TMAIL.(P - 2)); FINSI; * récupération des lignes supports de calcul et des points du front de * fissure --> tables TLIG1, TLIG2 et TPF TLIG1 = TABLE; TPF = TABLE; SI MODMIXT; TLIG2 = TABLE; FINSI; I = 0; REPETER BLIG P; I = I + 1; * récupération des lignes SI MODMIXT; FINSI; * récupération des points du front de fissure FIN BLIG; FINSI; * ATTENTION! Pas de prise en compte de delaminages en coques. * *************************************************************** ************** DIMENSION 2 ET 3 ****************** *************************************************************** SI (EGA &DIM 2); P = 1; FINSI; SI ICOQ; SI MEMB; P = 1; SINON; P = 0; FINSI; SI FLEX; P = P + 1; FINSI; FINSI; TABK1 = TABLE; TABK2 = TABLE; J = 0; REPETER BKTOTALE P; J = J + 1; SI IMASS; PF = TPF.J; LIFIS1 = TLIG1.J; SI (EGA MODMIXT VRAI); LIFIS2 = TLIG2.J; FINSI; SINON; SI (EGA MODMIXT VRAI); FINSI; FINSI; *-------DETERMINATION DES POINTS DE CALCUL DE LA LIGNE------* *------- DE FISSURE LIFIS1 (ET LIFIS2 EN MIXTE) : ------* *-------3 PREMIERS NOEUDS DE LA LIGNE APRES PF--------------* *------- NOEUDS MILIEUX Y COMPRIS --------------* SI ((NON ICOQ) OU (EGA J 1)); LIGP1 = LIFIS1; LIGP1 = PINT11 ET PINTER1 ET PINT12; SI MODMIXT; LIGP2 = LIFIS2; LIGP2 = PINT21 ET PINTER2 ET PINT22; FINSI; *-----------CALCUL DU COEFFICIENT DE K -----------------------* *--ON RECUPERE LE MODULE D'YOUNG ET COEFFICIENT DE POISSON----* *--DU PREMIER POINT DE LA SERIE DONNEE -----------------------* P1 = PINT11; PN = PINT12; **----------cas où l'on est en 2 D------------** SI ((EGA TYPMOD 'AXIS') OU (EGA TYPMOD 'PLANDEFO')); YOUNGB = YOUNG / (1 -(NU**2)); FINSI; SI ((EGA TYPMOD 'PLANCONT') 'OU' (ICOQ)); YOUNGB = YOUNG; FINSI; **----------cas où l'on est en 3 D -----------** SI IMASS; **----cas de fissure débouchante----** ************************************** SI DEBOUCH; **--cas de fissure symétrique--** BOOLINIT = FAUX; BOOLFIN = FAUX; SI (EGA PINIT PDBOUCH1); BOOLINIT = VRAI; SINON; BOOLFIN = VRAI; FINSI; SINON; **--cas de fissure non symétrique--** BOOLINIT = VRAI; BOOLFIN = VRAI; FINSI; **--déterminations de young--** BOOL1 = FAUX; BOOL2 = FAUX; SI ((EGA J 1) ET BOOLINIT); BOOL1 = VRAI; FINSI; SI ((EGA J P) ET BOOLFIN); BOOL2 = VRAI; FINSI; **--cas où l'on se trouve en partie débouchante : contraintes planes--** SI (BOOL1 OU BOOL2); YOUNGB = YOUNG; **--cas où l'on se trouve en partie non débouchante : déf planes--** SINON; YOUNGB = YOUNG / (1 - (NU**2)); FINSI; **----cas de la fissure non débouchante : def planes----** ********************************************************** SINON; YOUNGB = YOUNG / (1 - (NU**2)); FINSI; FINSI; **----calcul du coef----** ************************** COEF = (YOUNGB / 4.) * ((PI * 2.) ** 0.5); * COEF = YOUNGB * .6266570687; *-----PASSAGE DANS LE REPERE LOCAL DE FISSURE---------------* * TRANSLATION DES CHPS DE DEPL : NOUVELLE ORIGINE PF **--récupération des composantes du déplacement--** SI ((EGA TYPMOD 'PLANDEFO') OU (EGA TYPMOD 'PLANCONT') OU (EGA TYPMOD 'TRID')); FINSI; SI (EGA TYPMOD 'AXIS'); FINSI; CHVX=CHVX - CHVXPF; CHVY=CHVY - CHVYPF; SI (EGA TYPMOD 'TRID'); CHVZ=CHVZ - CHVZPF; FINSI; SI (ICOQ ET FLEX); CHEP = CHEP/2.; CHRX=CHRX - CHRXPF; CHRY=CHRY - CHRYPF; CHRZ=CHRZ - CHRZPF; FINSI; * ROTATION DES CHPS DE DEPL : DS REPERE DE LA FISSURE **----cas du 2 D----** SI (EGA &DIM 2); YV = XU PVECT; CHU = (CHVX * X1) + (CHVY * Y1); CHV = (CHVX * X2) + (CHVY * Y2); **----cas du 3 D----** SINON; **--récupération du repère local :XU YV ZW--** SI IMASS; SINON; FINSI; FINSI; SI ICOQ; P1PN = P1 ET PF; KK = 0; REPETER BKPY NPY; KK = KK + 1; PSUVX = PSCAL XU VECX; SI (PSUVX < 0); SINON; FINSI; SI (NVECV > 1.0E-6); QUITTER BKPY; FINSI; FIN BKPY; FINSI; **--calcul de la matrice de passage --** **--calcul des déplacements dans le repère local--** **--mode 1--** SI IMASS; CHV = (X3 * CHVX) + (Y3 * CHVY) + (Z3 * CHVZ); CHU = (X1 * CHVX) + (Y1 * CHVY) + (Z1 * CHVZ); FINSI; FINSI; FINSI; SI ICOQ; SI (EGA J 1); SI (MEMB); CHV = (X2 * CHVX) + (Y2 * CHVY) + (Z2 * CHVZ); CHU = (X1 * CHVX) + (Y1 * CHVY) + (Z1 * CHVZ); CHW = (X3 * CHVX) + (Y3 * CHVY) + (Z3 * CHVZ); SINON; CHU = (X2 * CHRX) + (Y2 * CHRY) + (Z2 * CHRZ); CHU = CHEP*CHU; CHV = (X1 * CHRX) + (Y1 * CHRY) + (Z1 * CHRZ); CHV = CHEP*CHV; CHV = (-1.)*CHV; FINSI; FINSI; SI (EGA J 2); CHU = (X2 * CHRX) + (Y2 * CHRY) + (Z2 * CHRZ); CHU = CHEP*CHU; CHV = (X1 * CHRX) + (Y1 * CHRY) + (Z1 * CHRZ); CHV = CHEP*CHV; CHV = (-1.)*CHV; FINSI; FINSI; *------------ INITIALISATIONS PRELIMINAIRES --------------* K1MOY = 0.; K2MOY = 0.; LIGP = TABLE; I = 0; CPT = 0; TR = TABLE; TK1 = TABLE; TK2 = TABLE; *---DEFINITION DES CONVENTIONS POUR K2 SI MODMIXT; P1PN = P1 ET PF; KK = 0; REPETER BKPY1 NPY; KK = KK + 1; SI ((ABS(VCY)) > 1.0E-6); QUITTER BKPY1; FINSI; FIN BKPY1; SI (VCY > 0.); LIGP.1 = LIGP1; LIGP.2 = LIGP2; SINON; MESS 'ATTENTION! Echange des lignes de fissure!'; LIGP.1 = LIGP2; LIGP.2 = LIGP1; FINSI; NB = 2; SINON; NB = 1; LIGP.1 = LIGP1; FINSI; *-----------BOUCLE DE CALCULS------------------------------* REPETER BOUCLE NB; CPT = CPT + 1; SI (EGA &DIM 2); SINON; FINSI; CHX = ABS (CHX1 - CHPF); SI MODMIXT; *--------- METHODE DES MOINDRES CARRES : MODE 2 ---------* CHY = CHU2**2; CHXY = CHX * CHY; CHX2 = CHX**2; CHY2 = CHY**2; DET1 = (N * SOMX2) - (SOMX**2); ANUM = (N * SOMXY) - (SOMX * SOMY); VA2 = ANUM / DET1; BNUM = (SOMY * SOMX2) - (SOMXY * SOMX); VB2 = BNUM / DET1; DET2 = (N * SOMY2) - (SOMY**2); ANUM2 = (N * SOMXY) - (SOMX * SOMY); A2 = ANUM2 / DET2; R2 = VA2 * A2; DELTA = -1 * (VB2 / VA2); SI (EGA &IMP 1); FINSI; FINSI; *---------- METHODE DES MOINDRES CARRES : MODE 1-------- * CHV2 = CHV1**2; CHY = CHV2; CHXY = CHX * CHY; CHX2 = CHX**2; CHY2 = CHY**2; DET1 = (N * SOMX2) - (SOMX**2); ANUM = (N * SOMXY) - (SOMX * SOMY); VA1 = ANUM / DET1; BNUM = (SOMY * SOMX2) - (SOMXY * SOMX); VB1 = BNUM / DET1; DET2 = (N * SOMY2) - (SOMY**2); ANUM2 = (N * SOMXY) - (SOMX * SOMY); A2 = ANUM2 / DET2; R1 = VA1 * A2; BETA = -1. * (VB1 / VA1); SI (EGA &IMP 1); FINSI; *------ VALEUR DE K1 ET (OU) K2 EN CHAQUE POINT---------* SI MODMIXT; FINSI; ITR = 0; REPETER BK1 N; ITR = ITR + 1; I = I + 1; R = ABS (RI - RF); TR.I = R; RRR = R - BETA; * MESS ' R = 'R' BETA = 'BETA' R - BETA = 'RRR; SGNR = 1.; SI (< RRR 0.); SGNR = -1.; FINSI; RRR = SGNR*RRR; K1I = SGNR*(ABS((COEF / ((RRR)**0.5)) * VI)); VI2TH=(VA1 * R) + VB1; TK1.I = K1I; K1MOY = K1MOY + K1I; *-----CAS DU MODE MIXTE ------* SI MODMIXT; RRR = R - DELTA; SGNR = 1.; SI (< RRR 0.); SGNR = -1.; FINSI; RRR = SGNR*RRR; SI (< UI 0.); SI (EGA CPT 1); SGNR = (-1.)*SGNR; FINSI; FINSI; SI (> UI 0.); SI (EGA CPT 2); SGNR = (-1.)*SGNR; FINSI; FINSI; K2I = SGNR*(ABS((COEF / ((RRR)**0.5)) * UI)); UI2TH = (VA2 * R) + VB2; TK2.I = K2I; K2MOY = K2MOY + K2I; FINSI; *-----------------------------* FIN BK1; ***----------------TRACES DE COURBES--------------------**** SI (EGA &IMP 1); T=TABLE; T1=TABLE; T.1='MARQ ETOI '; T1.1='MARQ CARR '; T.'TITRE'=TABLE; T1.'TITRE'=TABLE; CTOT1 = CNUM1 et CTH1; SI MODMIXT; T.3='MARQ CARR '; T.4='MARQ LOSA '; CTOT2 = CNUM2 ET CTH2; T1.2='MARQ ETOI '; SINON; DESS CTOT1 'LOGO' 'LEGE' T; DESS C1NUM 'LOGO' 'LEGE' T1; FINSI; FINSI; FIN BOUCLE; *---------------------VALEUR MOYENNE DE K------------------* SI MODMIXT; N = (2 * N); FINSI; K1MOY = K1MOY / N; SI MODMIXT; K2MOY = K2MOY / N; FINSI; *************************************************************** * IMPRESSIONS * *************************************************************** IPRES = 0; REPETER BIMPRESS N; IPRES = IPRES + 1; TTR = TR.IPRES; TTK1 = TK1.IPRES; SI MODMIXT; SI (EGA IPRES 1); FINSI; SI (EGA IPRES 4); FINSI; TTK2 = TK2.IPRES; MESS TTR TTK1 TTK2; SINON; MESS TTR TTK1; FINSI; FIN BIMPRESS; SI MODMIXT; FINSI; SI IMASS; TABK1.PF = K1MOY; SI MODMIXT; TABK2.PF = K2MOY; FINSI; SINON; SUPTAB.'K1' = K1MOY; SI MODMIXT; SUPTAB.'K2' = K2MOY; FINSI; FINSI; SI ICOQ; SI ((EGA J 1) ET MEMB); TABK1.'MEMBRANE' = K1MOY; SI MODMIXT; TABK2.'MEMBRANE' = K2MOY; FINSI; SINON; TABK1.'FLEXION' = K1MOY; SI MODMIXT; TABK2.'FLEXION' = K2MOY; FINSI; FINSI; FINSI; FIN BKTOTALE; SI ICOQ; TABK1.'TOTAL' = 0.; SI MODMIXT; TABK2.'TOTAL' = 0.; FINSI; SI MEMB; TABK1.'TOTAL' = TABK1.'MEMBRANE'; SI MODMIXT; TABK2.'TOTAL' = TABK2.'MEMBRANE'; FINSI; FINSI; SI FLEX; TABK1.'TOTAL' = TABK1.'TOTAL' + TABK1.'FLEXION'; SI MODMIXT; TABK2.'TOTAL' = TABK2.'TOTAL' + TABK2.'FLEXION'; FINSI; FINSI; FINSI; SI (IMASS OU ICOQ); SUPTAB.'K1'= TABK1; SI MODMIXT; SUPTAB.'K2'= TABK2; FINSI; FINSI; SI IGDDEP; FORM CONF0; FINSI; FINPROC SUPTAB;
© Cast3M 2003 - Tous droits réservés.
Mentions légales