* fichier : xfem3d_03.dgibi ************************************************************************ ************************************************************************ ************************************************************************ * Cas-test propose par F. MERAY, modifié par JB251061 * * * * VERIFICATION QUE LE TERME DE FROTTEMENT EST BIEN NUL AVEC UNE * * FORCE DE FROTTEMENT NULLE * * * ************************************************************************ ************************************************************************ ******************************************************* ********************** Options ************************ ******************************************************* BTRAC = FAUX ; OEIL1 = -100. -100. 50. ; * PARAMETRES MATERIAUX YOUN1 = 2.1E5 ; NU1 = 0.3 ; RHO1 = 7.8E-9 ; ******************************************************* ************** MAILLAGES **************** ******************************************************* * DEFINITION D'UNE BASE ORTHONORMEE DIRECTE EX = 1. 0. 0. ; EY = 0. 1. 0. ; EZ = 0. 0. 1. ; * PARAMETRES DU MAILLAGE X-FEM * DISCRETISATION X-FEM MULT1 = 3. ; DX = 0.02*MULT1 ; DY = 0.02*MULT1 ; DZ = 0.02*MULT1 ; * DECALAGE ENTRE LA POSITION DE LA FISSURE ET LE CENTRE DU VOLUME X-FEM SHIFT = 4. ; * CENTRE DU VOLUME X-FEM CXMODL = (0.60 + (SHIFT * DX)) ; CYMODL = 0. ; CZMODL = 0.13 ; * TAILLE DU VOLUME X-FEM LX = 0.8 ; LY = 0.8 ; LZ = 0.26 ; * PARAMETRES DU MAILLAGE DE LA FISSURE CIRCULAIRE * DISCRETISATION DE LA FISSURE DXCRACK = DX / 1. ; * RAYON DE LA FISSURE A0 = 0.20 ; * INCLINAISON BETA = +75. ; ******************************************************* ************** MAILLAGE : VOLUME X-FEM **************** ******************************************************* * * POINTS NECESSAIRES A LA CONSTRUCTION DU VOLUME X-FEM PB1 = (CXMODL-(0.5*LX)) (CYMODL+(0.5*LY)) (CZMODL+(0.5*LZ)) ; PB2 = (CXMODL+(0.5*LX)) (CYMODL+(0.5*LY)) (CZMODL+(0.5*LZ)) ; PB3 = (CXMODL-(SHIFT*DX)-DX) (CYMODL+(0.5*LY)) (CZMODL+(0.5*LZ)) ; PB4 = (CXMODL-(SHIFT*DX)+(1.*DX)) (CYMODL+(0.5*LY)) (CZMODL+(0.5*LZ)) ; * RAFFINEMENT 1 DU MAILLAGE EN SURFACE PB5 = (CXMODL-(0.5*LX)) (CYMODL+(0.5*LY)) (CZMODL-(0.5*LZ)+(3.*DZ)) ; PB6 = (CXMODL+(0.5*LX)) (CYMODL+(0.5*LY)) (CZMODL-(0.5*LZ)+(3.*DZ)) ; PB7 = (CXMODL-(SHIFT*DX)-DX) (CYMODL+(0.5*LY)) (CZMODL-(0.5*LZ)+(3.*DZ)) ; PB8 = (CXMODL-(SHIFT*DX)+(1.*DX)) (CYMODL+(0.5*LY)) (CZMODL-(0.5*LZ)+(3.*DZ)) ; * RAFFINEMENT 2 DU MAILLAGE EN SURFACE PB9 = (CXMODL-(0.5*LX)) (CYMODL+(0.5*LY)) (CZMODL-(0.5*LZ)+(0.5*DZ)) ; PB10 = (CXMODL+(0.5*LX)) (CYMODL+(0.5*LY)) (CZMODL-(0.5*LZ)+(0.5*DZ)) ; PB11 = (CXMODL-(SHIFT*DX)-DX) (CYMODL+(0.5*LY)) (CZMODL-(0.5*LZ)+(0.5*DZ)) ; PB12 = (CXMODL-(SHIFT*DX)+(1.*DX)) (CYMODL+(0.5*LY)) (CZMODL-(0.5*LZ)+(0.5*DZ)) ; * RAFFINEMENT 3 DU MAILLAGE EN SURFACE PB13 = (CXMODL-(0.5*LX)) (CYMODL+(0.5*LY)) (CZMODL-(0.5*LZ)+(0.25*DZ)) ; PB14 = (CXMODL+(0.5*LX)) (CYMODL+(0.5*LY)) (CZMODL-(0.5*LZ)+(0.25*DZ)) ; PB15 = (CXMODL-(SHIFT*DX)-DX) (CYMODL+(0.5*LY)) (CZMODL-(0.5*LZ)+(0.25*DZ)) ; PB16 = (CXMODL-(SHIFT*DX)+(1.*DX)) (CYMODL+(0.5*LY)) (CZMODL-(0.5*LZ)+(0.25*DZ)) ; PB17 = (CXMODL+(0.5*LX)) (CYMODL-(0.5*LY)) (CZMODL+(0.5*LZ)) ; PB18 = (CXMODL-(0.5*LX)) (CYMODL+(0.5*LY)) (CZMODL-(0.5*LZ)) ; * DEFINITION DES DROITES NECESSAIRES AU MAILLAGE DRB1 = DRB11 ET DRB12 ET DRB13 ; DRB2 = DRB21 ET DRB22 ET DRB23 ; DRB3 = DRB31 ET DRB32 ET DRB33 ; DRB4 = DRB41 ET DRB42 ET DRB43 ; * MAILLAGE SURFACE SB1 = SB11 ET SB12 ET SB13 ET SB14 ; * MAILLAGE VOLUME * DEFINITION DU CONTOUR ET DE L'ENVELOPPE ******************************************************* ******* MAILLAGE : FISSURE CIRCULAIRE ********* ******************************************************* * POINTS NECESSAIRES A LA CONSTRUCTION DE LA FISSURE CF = (CXMODL-(SHIFT*DX)) CYMODL (CZMODL-(0.5*LZ)) ; PF1 = (CXMODL-(SHIFT*DX)) (CYMODL-A0) (CZMODL-(0.5*LZ)) ; PF2 = (CXMODL-(SHIFT*DX)) (CYMODL+A0) (CZMODL-(0.5*LZ)) ; PF3 = (CXMODL-(SHIFT*DX)) CYMODL (CZMODL-(0.5*LZ)+A0) ; PF4 = (CXMODL-(SHIFT*DX)) (CYMODL-A0*(COS(45))) (CZMODL-(0.5*LZ)+(A0*(SIN(45)))) ; PF5 = (CXMODL-(SHIFT*DX)) (CYMODL+A0*(COS(45))) (CZMODL-(0.5*LZ)+(A0*(SIN(45)))) ; * DEFINITION DU FRONT DE FISSURE LCRACK = LF2 ET LF3 ET LF4 ET LF5 ; * ROTATION DE L'ANGLE BETA * MAILLAGE DE LA FISSURE *FRONT1 = INVE FRONT1 ; *CRACK1 = ORIE CRACK1 (-1*EZ) ; * ON REPASSE EN CUB8 ******************************************************* ************** GENERATION DES LEVEL-SETS ************** ******************************************************* * DEFINITION / MISE A JOUR DES LEVEL-SETS * TRACE DES LEVEL-SETS SI BTRAC ; * ISOVALEUR POUR LE TRACE DES LEVEL-SETS TITR 'LEVEL SET PSI1' ; FINSI ; ******************************************************** ******************* MODELE & MATERIAU ****************** ******************************************************** * TRIE LES ELEMENTS D'UN MODELE XFEM ET SORT UN MCHAML * D'ENRICHISSEMENT EN FONCTION DE LA VALEUR DES LEVEL-SETS. * CONSTRUCTION DES BLOCAGES DES DDL XFEM NON ACTIFS DANS * LES ELEMENTS DE TRANSITION. ******************************************************** ***** DEFINITION DU REPERE LOCAL LIE A LA FISSURE ****** ******************************************************** * PROCEDURE LOCABA3D DEBP LOCABA3D MOD_INT*MMODEL ; ** DETERMINATION DES NORMALES AU MAILLAGE DE LA FISSURE (CHPO) CHN = -1. * CHN ; ** DEFINITION DE PARAMETRES CHT1 = 0. * CHN ; CHT2 = 0. * CHN ; ** CREATION DES VECTEURS EX ET EY CRACK = 'EXTRAIRE' MOD_INT 'MAIL' ; ** CALCUL DE LA PREMIERE TANGENTE T1 * CREATION D UN VECTEUR ALEATOIRE -> PREMIER POSSIBILITE : EX * PRODUIT VECTORIEL XT1_EX =(YN1 '*' ZV1 MYN1 MZV1 MXT1) '-' (ZN1 '*' YV1 MZN1 MYV1 MXT1) ; YT1_EX =(ZN1 * XV1 MZN1 MXV1 MYT1) '-' (XN1 * ZV1 MXN1 MZV1 MYT1) ; ZT1_EX =(XN1 * YV1 MXN1 MYV1 MZT1) '-' (YN1 * XV1 MYN1 MXV1 MZT1) ; CHT1_EX = XT1_EX '+' YT1_EX '+' ZT1_EX ; * CREATION D UN VECTEUR ALEATOIRE -> DEUXIEME POSSIBILITE : EY * PRODUIT VECTORIEL XT1_EY =(YN1 '*' ZV2 MYN1 MZV2 MXT1) '-' (ZN1 '*' YV2 MZN1 MYV2 MXT1) ; YT1_EY =(ZN1 * XV2 MZN1 MXV2 MYT1) '-' (XN1 * ZV2 MXN1 MZV2 MYT1) ; ZT1_EY =(XN1 * YV2 MXN1 MYV2 MZT1) '-' (YN1 * XV2 MYN1 MXV2 MZT1) ; CHT1_EY = XT1_EY '+' YT1_EY '+' ZT1_EY ; *** ON VERIFIE QUE CHT1_EX NON COLINAIRE A CHN (PRODUIT VECTORIEL NUL) N1 = (('PSCAL' CHT1_EX CHT1_EX M1 M1)**0.5) ; MASQ_EX = -1 * (MASQ_EY - 1.) ; *** CONSTRUCTION DE CHT1 XT1 = (MASQ_EX '*' XT1_EX MSCA MXT1 MXT1) '+' (MASQ_EY '*' XT1_EY MSCA MXT1 MXT1) ; YT1 = (MASQ_EX '*' YT1_EX MSCA MYT1 MYT1) '+' (MASQ_EY '*' YT1_EY MSCA MYT1 MYT1) ; ZT1 = (MASQ_EX '*' ZT1_EX MSCA MZT1 MZT1) '+' (MASQ_EY '*' ZT1_EY MSCA MZT1 MZT1) ; CHT1 = XT1 '+' YT1 '+' ZT1 ; * NORMALISATION DE CHT1 CHT1 = CHT1 '/' (('PSCAL' CHT1 CHT1 M1 M1)**0.5) ; ** CALCUL DE LA DEUXIEME TANGENTE CHT2 * => PRODUIT VECTORIEL ENTRE CHN ET CHT1 * PRODUIT VECTORIEL XT2 = (YN1 '*' ZT1 MYN1 MZT1 MXT2) '-' (ZN1 '*' YT1 MZN1 MYT1 MXT2) ; YT2 = (ZN1 * XT1 MZN1 MXT1 MYT2) '-' (XN1 * ZT1 MXN1 MZT1 MYT2) ; ZT2 = (XN1 * YT1 MXN1 MYT1 MZT2) '-' (YN1 * XT1 MYN1 MXT1 MZT2) ; CHT2 = XT2 '+' YT2 '+' ZT2 ; * NORMALISATION DE T2 CHT2 = CHT2 '/' (('PSCAL' CHT2 CHT2 M2 M2)**0.5) ; FINP CHN CHT1 CHT2 ; * CONSTRUCTION REPERE LOCAL * APPEL DE LA VERSION MODIFIEE DE LOCABA3D (LOCBA3D2) CHN CHT1 CHT2 = LOCABA3D MOD_INT ; CHN = 1. * CHN ; CHT1 = 1. * CHT1 ; CHT2 = 1. * CHT2 ; * AFFICHAGE REPERE LOCAL SI BTRAC ; FINSI ; ******************************************************** *************** CONDITIONS AUX LIMITES ***************** ******************************************************** SI BTRAC ; FINSI ; ******************************************************** *** CONSTRUCTION DES DIFFERENTES MATRICES DE RAIDEUR *** ******************************************************** * RIGIDITE FORMULATION XFEM 1 CHAMP * RIGIDITE TOTALE KTOT = K1 ET BLOQ1 ET REL1X ; ******************************************************* ********************** Resolution ********************* ******************************************************* ******************************************************* ******************** Calcul des FICs ****************** ******************************************************* * CREATION D'UN CHAMP DE SAUT DE DEPLACEMENT TANGENT A LA FISSURE * CREATION D'UN CHAMP DE VECTEUR CONTRAINTE NORMAL A LA FISSURE SUPTAB . 'PSI' = PSI1 ; SUPTAB . 'PHI' = PHI1 ; SUPTAB . 'FRONT_FISSURE' = FRONT1 ; SUPTAB . 'MODELE' = MOD1 ; SUPTAB . 'CARACTERISTIQUES' = MAT1 ; SUPTAB . 'SOLUTION_RESO' = U1 ; SUPTAB . 'CHARGEMENTS_MECANIQUES' = FORTOT ; SUPTAB . 'COUCHE' = 2 ; SUPTABF.'MODELE_FISSURE' = MOD_INT ; SUPTABF.'DEPLACEMENT_FISSURE' = WSAUT ; SUPTABF.'PRESSION_FISSURE' = PREFIS ; G_THETA SUPTAB ; G_THETA SUPTABF ; CHPO1 = SUPTAB.'CHPO_RESULTATS' ; CHPO1F = SUPTABF.'CHPO_RESULTATS' ; REPE IMOD 3 ; SI BTRAC ; FINSI ; SI (ERR1 > CRIT1) ; FINSI ; FIN IMOD ; FIN ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales