* CTOD PROCEDUR JC220346 12/09/12 21:15:06 7501 ************************************************* * PROCEDURE POUR LA DETERMINATION DU CTOD * * PAR LA METHODE DE LA DROITE A 45 DEGRES * *************************************************************** *SUPTAB.'MAILLAGE' : MAILLAGE ENTIER (UTILE UNIQUEMENT EN 3D) * * * *SUPTAB.'LIFIS1' : OBJET DE TYPE MAILLAGE REPRESENTANT LA LIGNE * * DE FISSURE EN 2D * * CETTE LIGNE DOIT CONTENIR AU MOINS 6 ELEMENTS * * * * * * * * SUPTAB.'FRTFISS' : LIGNE DE FRONT DE FISSURE EN 3 D DE TYPE MAILLAGE * * POINTE DE FISSURE EN 2D DE TYPE POINT * * * *SUPTAB.'PSF1' : POINTS DE LA SURFACE DE FISSURE * * N'APPARTENANT PAS AU FRONT DE FISSURE EN 3D * * * * U : DEPLACEMENT RESULTANT DE NONLIN AU TEMPS SOUHAITE * * * ************************************************************************ * SORTIE * * SUPTAB.'CTOD' :*TABLE DE REELS CONTENANT LES VALEURS DE CTOD OBTENUES* * A CHAQUE NOEUD P DU FRONT DE FISSURE EN 3D * * LES INDICES DE CETTE TABLE SONT DE TYPE POINT * * EX : SUPTAB.'CTOD'.P : CTOD AU NOEUD DU FRONT DE * * COORDONNEES EGALES A CELLES DU POINT P * * *REEL : VALEUR DU CTOD OBTENUE EN 2D * ************************************************************************ ************************************************************************ ***************** QUELQUES INITIALISATIONS ************************** ************************************************************************ &IMP = 'VALEUR' IMPI ; IELEMLIN = IELEM2 'OU' IELEM3; SI (EGA &DIM 3); **------------cas où l'on est en dimension 3----------** FRTFISS = SUPTAB.'FRTFISS'; PSF = SUPTAB.'PSF1'; MAILLAGE = SUPTAB.'MAILLAGE'; SINON; **-----------cas où l'on est en dimension 2-----------** LIFIS1 = SUPTAB.'LIFIS1'; PF = SUPTAB.'FRTFISS'; FINSI; *************************************************************** ************** CALCULS EN DIMENSION 3 ****************** *******RECUPERATION DES LIGNES PERPENDICULAIRES AU FRONT******* *******DE FISSURE SUR LESQUELLES SERONT EFFECTUES LES CALCULS** *************************************************************** *&&&&&&&&&&&&&&&&* SI (EGA &DIM 3); *&&&&&&&&&&&&&&&&* *------determination de cas de fissure debouchante ou non-----* TMAIL = TABLE; TM = TABLE; TRANCHE = TABLE; *-----recuperation des points extremites du front de fissure----* *-----determination du volume de travail MAILVOL----------------* MAILVOL = FRTFISS; REPETER BVOL 7; FIN BVOL; *--récupération de la surface initiale de MAILVOL : SURINIT-----* SURINIT = PINIT; REPETER BSURINIT 7; FIN BSURINIT; SURINIT1 = SURINIT; SURINIT = PINIT; REPETER BSURI 7; FIN BSURI ; *--récupération de la surface finale de MAILVOL : SURFIN-------* SURFIN = PFIN; REPETER BSURFIN 7; FIN BSURFIN; SURFIN1 = SURFIN; SURFIN = PFIN ; REPETER BSURF 7 ; FIN BSURF ; *--remplissage de la table des plans orthogonaux à la fissure--* *--------------------- TMAIL ----------------------------* TM.1 = SURINIT; I = 0; TRANCHET = TRANCHE.1; I = I + 1; **--récuperation des tranches--** TRANCHET = TRANCHET ET TRANCHE.(I + 1); TM.(I + 1) = TMAIL.(I + 1); FIN BRECU; FINSI; TM.P = SURFIN ; *-------récupération des lignes supports de calcul----------* *------intersections entre les plans de TMAIL et la---------* *---------------------surface de fissure--------------------* **--récupération de la surface de fissure : SURFIS--** PLANFIS = ENVMAIL POINT 'PLAN' PINIT PFIN PSF 0.001; COSURFIS = CO1 et FRTFISS ; SURFIS = PLANFIS INCLU COSURFIS; **--cas où on n'a pas pris la bonne partie du plan pour SURFIS--** FINSI; **--récupération des lignes et des points du front de fissure--** TLIG = TABLE;TPF = TABLE; I = 0; REPETER BLIG P; I = I + 1; **--récupération des lignes--** **--récupération des points du front de fissure--** TOT = TLIG.I ET CHFRTFIS; FIN BLIG; *&&&&&&* FINSI; *&&&&&&* *************************************************************** ************** DIMENSION 2 ET 3 ****************** *************************************************************** *&&&&&&&&&&&&&&&* SI (EGA &DIM 2 ); *&&&&&&&&&&&&&&&* P = 1; *&&&&&&&* FINSI; *&&&&&&&* SI (EGA &DIM 3); FINSI; J = 0; REPETER BKTOTALE P; J = J + 1; SI (EGA &DIM 3); PF = TPF.J; LIGCTOD = TLIG.J; MESS 'LIGNE ' J ' DU FRONT DE FISSURE'; SINON; LIGCTOD = LIFIS1; FINSI; FINSI; *-----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; * 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--** SINON; FINSI; **--calcul de la matrice de passage --** **--calcul des déplacements dans le repère local--** **--mode 1--** CHV = (X3 * CHVX) + (Y3 * CHVY) + (Z3 * CHVZ); **--mode 2--** CHU = (X1 * CHVX) + (Y1 * CHVY) + (Z1 * CHVZ); FINSI; ************************************************************** * CALCUL DU CTOD * ************************************************************** **-- détermination de l'element d'intersection avec D45 par itération--** **--( si elle existe )--** ICTOD = 0; TESTE = 6; BCOUP = 'FAUX'; REPETER BCTOD TESTE; ICTOD = ICTOD + 1; V1 = ABS (V1); SI (EGA P1 PF); V1 = 0.;FINSI; V2 = ABS (V2); SI ((V1 >EG R1) ET (V2 <EG R2)); BCOUP = 'VRAI'; QUIT BCTOD; FINSI; FIN BCTOD; SI (EGA &IMP 1); mess 'INTERSECTION SUR L ELEMENT N°' ICTOD; FINSI; *----------CAS OU L'INTERSECTION EXISTE : CALCUL PLASTIQUE------* *---------CALCUL DU CTOD AVEC L'INTERSECTION DE LA DROITE A 45--* SI (EGA BCOUP 'VRAI'); **-cas d'éléments linéaires--** SI (IELEMLIN); ETA = (V1 + V2 - R1 - R2) / (V1 - V2 + R2 - R1); N1 = (1 - ETA) / 2; N2 = (1 + ETA) / 2; V = (N1 * V1) + (N2 * V2) ; SI (((V > R1) ET (V < R2) ET (V1 < V) ET (V < V2))); SINON; FINSI; SINON; VM = ABS (VM); SI (EGA &IMP 1); FINSI; A = ((2 * VM) - V1 - V2); B = (R2 - R1 + V1 - V2); C = 2 * (RM - VM); DELTA = (B**2) - (4 * A * C); SI (DELTA >EG 0); ETA1 = (((-1) * B) - (DELTA**0.5)) / (2 * A); ETA2 = (((-1) * B) + (DELTA**0.5)) / (2 * A); N1A = ETA1 * (ETA1 - 1) / 2; NMA = 1 - (ETA1**2); N2A = ETA1 * (ETA1 + 1) / 2; VA = (N1A * V1) + (NMA * VM) + (N2A * V2); N1B = ETA2 * (ETA2 - 1) / 2; NMB = 1 - (ETA2**2); N2B = ETA2 * (ETA2 + 1) / 2; VB = (N1B * V1) + (NMB * VM) + (N2B * V2); SI ((ABS (ETA1) <EG 1) OU (ABS (ETA2) <EG 1)); SI (EGA ICTOD 1); SI ((ABS (ETA1) <EG 1) ET (ABS (ETA2) <EG 1)); SINON; FINSI; SINON; SI (((VA > R1) ET (VA < RM) ET (V1 < VA) ET (VA < VM)) OU ((VA > RM) ET (VA < R2) ET (VM < VA) ET (VA < V2))); SINON; SI (((VB > R1) ET (VB < RM) ET (V1 < VB) ET (VB < VM)) OU ((VB > RM) ET (VB < R2) ET (VM < VB) ET (VB < V2))); SINON; MESS 'PAS DE SOLUTION SATISFAISANTE'; FINSI; FINSI; FINSI; SINON; SI (EGA &IMP 1); FINSI; SI (EGA ICTOD 1); FINSI; FINSI; SINON; SI (EGA ICTOD 1); FINSI; FINSI; FINSI; SINON; *------CAS OU L'ON SE TROUVE EN ELASTICITE :--------------* *------PAS D'INTERSECTION AVEC LA DROITE A 45°------------* *------CALCUL DU CTOD AVEC LE SIF K1 ---------------------* FINSI; SI (EGA &DIM 3); SINON; FINSI; FIN BKTOTALE; FINPROC SUPTAB ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales