* G_AUX PROCEDUR JB251061 22/08/09 21:15:01 11426 * ============================================================================= * PROCEDURE DE CONSTRUCTION DES CHAMPS AUXILIAIRES * POUR CALCULER LES FIC VIA LA PROCEDURE G_THETA * ------------------------------------------------ * * DESCRIPTION : CALCULE LES CHAMPS AUXILIAIRES NECESSAIRES A G_THETA POUR * DETERMINER LES FACTEURS D'INTENSITE DES CONTRAINTES VIA * L'OPTION 'DECOUPLAGE'; * ============================================================================= NMESS = OBJUTI.'NMESS'; * I - PRELIMINAIRES * ----------------- * TABLES QUI CONTIENDRONT LES CHAMPS AUXILIAIRES * OBJETS UTILES GDIME = OBJUTI.'DIMENSION'; DIR1 = OBJUTI.'DIRECTION1'; DIR2 = OBJUTI.'DIRECTION2'; FINSI; DIR3 = OBJUTI.'DIRECTION3'; FINSI; V1 V2 V3 = OBJUTI.'V1' OBJUTI.'V2' OBJUTI.'V3'; FINSI; SI (EGA METH_AUX 'MECA'); RIGTOT = OBJUTI.'RIGTOT'; FINSI; MAT_INST = OBJUTI.'MAT_INST'; MODSUP = OBJUTI.'MODSUP'; MODINF = OBJUTI.'MODINF'; ELTETA = OBJUTI.'ELTETA'; MAILLAGE = OBJUTI.'MAILLAGE'; M_FRONT = OBJUTI.'FRONT'; * AJOUT BP BT POUR LE CONTACT FROTTANT OBJCON = OBJUTI.'OBJCON'; MAILCON = OBJUTI.'MAILCON'; FINSI; * LISTMOT SCAL : * LISTMOTS POUR LE DEPLACEMENT ET POUR LA FORCE : * ON EXTRAIT LES GDIME PREMIERS MOTS CAR ON NE VEUT PAS DES ROTATIONS * DANS LE CAS DES COQUES MOD_MEC_R = OBJUTI.'MOD_MEC_R'; MOD_MEC = OBJUTI.'MOD_MEC'; SI (EGA GDIME 3); FINSI; * FRONT DE FISSURE PM = SUPTAB.'FRONT_FISSURE'; SI (NON BOOL.'COQ'); FINSI; FINSI; * CHAMPS NULS * ON COMMENCE A REMPLIR LA TABLE CH_AUX REPE IMOD GDIME; FIN IMOD; * COEFFICIENTS MATERIAUX * CAS D UN MONO-MATERIAU * on construit les champ auxilaires d'une solution d'un materiau * homogene => on prend les valeurs de E et nu en pointe de fissure FINSI; SINON; FINSI; * Constante de Kolosov SI (EGA GMODE 'PLANCONT'); KAP_1 = (3. - VNU_1) / (1. + VNU_1); SINON; KAP_1 = (3. - (4. * VNU_1)); FINSI; * Module de cisaillement MU_1 = VYO_1 / (2.*(1. + VNU_1)); * Constante C_MATE (= 1 / E^etoile) SI (EGA GMODE 'PLANCONT'); C_MATE = 1. / VYO_1; SINON; C_MATE = (1. - (VNU_1*VNU_1)) / VYO_1; FINSI; SINON; * CAS D UN BI-MATERIAU MESS ' MAT_INST MAT2'; MESS VYO_1 VYO_2; MESS VNU_1 VNU_2; FINSI; * Constante de Kolosov SI (EGA GMODE 'PLANCONT'); KAP_1 = (3. - VNU_1) / (1. + VNU_1); KAP_2 = (3. - VNU_2) / (1. + VNU_2); SINON; KAP_1 = (3. - (4. * VNU_1)); KAP_2 = (3. - (4. * VNU_2)); FINSI; * Module de cisaillement MU_1 = VYO_1 / (2.*(1. + VNU_1)); MU_2 = VYO_2 / (2.*(1. + VNU_2)); * Constante bi-metallique EPS1 VA1 = (KAP_1/MU_1) + (1./MU_2); VA2 = (KAP_2/MU_2) + (1./MU_1); EPS1 = (1./(2.*PI)) * (LOG (VA1/VA2)); * Constante C_MATE (= 1 / E^etoile) COSH1 = PI * EPS1; COSH1 = ((EXP COSH1) + (EXP (COSH1*(-1.)))) / 2.; VA1 = (MU_1 + (KAP_1*MU_2)) * (MU_2 + (KAP_2*MU_1)); VA2 = MU_1 * MU_2 * ((MU_1*(1. + KAP_2)) + (MU_2*(1. + KAP_1))); C_MATE = (COSH1*COSH1*VA1) / (4.*VA2); FINSI; OBJUTI.'MU_1' = MU_1; OBJUTI.'C_MATE' = C_MATE; * METHODE DE CALCUL DES CHAMPS AUXILIAIRES : * G-ANALYTIQUE = ON UTILISE L EXPRESSION ANALYTIQUE DE GRAD(U) ET SIGMA * U-ANALYTIQUE = ON UTILISE L EXPRESSION ANALYTIQUE DE U ET ON CALCULE * SIGMA, FINT=BSIGMA, GRAD(U) ... * MECANIQUE = ON APPLIQUE UNE PRESSION/UN CISAILLEMENT SUR LES FACES DE LA FISSURE * ET ON RESOUT LE PROBLEME ASSOCIE SI (EGA METH_AUX 'MECA'); FINSI; SI (EGA METH_AUX 'UANA'); FINSI; SI (EGA METH_AUX 'GANA'); FINSI; * II - METHODE MECANIQUE * ---------------------- SI (EGA METH_AUX 'MECA'); * II.1 - CONDITIONS AUX LIMITES * ***************************** SI (NON BOOL.'COQ'); SINON; FINSI; * II.2 - CHARGEMENT * ***************** * LEVRES DE FISSURE LSUP = SUPTAB.'LEVRE_SUPERIEURE'; LINF = SUPTAB.'LEVRE_INFERIEURE'; * CALCUL DU CHARGEMENT EN MODE I * CALCUL DE LA NORMALE AUX LEVRES (DE LINF VERS LSUP) * CALCUL DU CHARGEMENT EN MODE II REPE ILEVR 2; LEVR = LVS.&ILEVR; FII = FII - (PSCA1 * FI); TFII.&ILEVR = FII / NFII; FIN ILEVR; FII = TFII.(1) - TFII.(2); * CALCUL DU CHARGEMENT EN MODE III * ON ENLEVE DE LSUP ET LINF LA PARTIE QUI EST DANS ELTETA * ON APPLIQUE LA PRESSION SUR LES LEVRES REDUITES * ON DONNE LA BONNE AMPLITUDE A FII ET FIII EN UTILISANT CELLE DE FI QUI EST * BIEN CALCULEE (JUSQU'ICI FII ET FIII SONT DE NORME UNITE) ET ON REDUIT T_PREI.(1) T_PREI.(2) T_PREI.(3) = FI FII FIII; * II.3 - CALCUL DU DEPLACEMENT ET DES CONTRAINTES * *********************************************** REPE IMOD GDIME; TAB1 = CH_AUX.&IMOD; TAB1.'A_PREI' = T_PREI.&IMOD; FIN IMOD; FINSI; * III - METHODES ANALYTIQUES * -------------------------- * III.1 PREPARATION DU PASSAGE LOCAL -> GLOBAL * ******************************************** * CAS XFEM PSI0 PHI0 = SUPTAB.'PSI' SUPTAB.'PHI'; SINON; * CAS ELEMENTS STANDARDS SI (EGA METH_AUX 'UANA'); * METHODE U-ANALYTIQUE (FORCEMENT EN 2D POUR L'INSTANT) * INCLINAISON DE LA FISSURE PAR RAPPORT A L'AXE GLOBAL ALPHA1 = ATG (YG0 - ((YP1 + YP2)/2.)) (XG0 - ((XP1 + XP2)/2.)); * COORDONNEES DANS LE REPERE GLOBAL ET LOCAL XL1 = ((XG1 - XG0)*(COS ALPHA1)) + ((YG1 - YG0)*(SIN ALPHA1)); YL1 = ((YG1 - YG0)*(COS ALPHA1)) - ((XG1 - XG0)*(SIN ALPHA1)); YL1 = YL1 + C1 + C2; FINSI; * COORDONNEES CYLINDRIQUES RAY1 TETA1 (1.E-30 POUR EVITER ERREUR ATG 0 0) TETA1 = ATG YL1 (XL1 + 1.E-30); RAY1 = (((XL1*XL1) + (YL1*YL1))**0.5) + 1.E-10; * ON INVERSE AFIN D'AVOIR YL1 > 0 POUR MODSUP ET < 0 POUR MODINF SI ((VA1 < 0.) ET (VA2 > 0.)); PPPP = P_SUP ; P_SUP = P_INF ; P_INF = PPPP; MMDD = MODSUP ; MODSUP = MODINF ; MODINF = MMDD; FINSI; SI ((EGA XP1 XP2 1.E-10) ET (EGA YP1 YP2 1.E-10)); TETA1 = TETA1 - TETA_S - TETA_F; * ON SE DEBROUILLE POUR AVOIR EXACTEMENT +/-180 SUR LEVRE SUP/INF SI ((VA1 > 0.) ET (VA2 < 0.)); TETA1 = TETA1 + ((TETA_S*0.) + 180.) + ((TETA_F*0.) - 180.); SINON; TETA1 = TETA1 + ((TETA_F*0.) + 180.) + ((TETA_S*0.) - 180.); FINSI; FINSI; * VALEUR EN RADIAN TETA1RAD = TETA1*PI/180.; FINSI; FINSI; SINON; * METHODE G-ANALYTIQUE LSUP = SUPTAB.'LEVRE_SUPERIEURE'; * ON EST OBLIGE DE PASSER PAR DES ELEMENTS LINEAIRES A CAUSE DE PSIP SI (EGA GDIME 2); FINSI; FINSI; FINSI; * CAS XFEM OU STD EN METHODE G-ANALYTIQUE * ON RECUPERE LES LEVEL SET * LV7 = (PSI PHI 0)^T * ET ON CALCULE LES GRADIENTS DANS LE REPERE GLOBAL * GLV7 = (PSI,X PSI,Y PSI,Z) * (PHI,X PHI,Y PHI,Z) * (0 0 0 ) SI (EGA GDIME 2); * CAS 2D * ON S'ASSURE QUE LE REPERE EST DIRECT VIA SIGN1 PHI1 = SIGN1 * PHI1; GPHI1 = SIGN1 * GPHI1; * ANGLE ALPHA1 DE PASSAGE LOCAL -> GLOBAL PPMOY = 0.5 * ((GPSI1 / NGPSI1) + (GPHI1VZ / NGPHI1)); ROT1 = ROT0 + ROT1; COSA2 = COS1A ** 2; SINA2 = SIN1A ** 2; SINCOSA = SIN1A * COS1A; SINON; * CAS 3D * CREATION DE LA MATRICE DE ROTATION FINSI; * REPERE LOCAL DE LA FISSURE * Coordonnees cylindriques RAY1 TETA1 RAY1 = ((XL1**2) + (YL1**2))**0.5; * debut du cas contact frottant BOOL.'FROT' (btrolle 19/02/2013) * ajout des solutions analytiques du saut sur les levres de la fissure * projection de psi1 sur la fissure et calcul de psi,x * PSI en CHAML aux PG sur la fissure utilise pour calcul du gradient * on selectionne la partie de psi2 non nulle (= dans le champ theta) SI (EGA GDIME 2); * contour du domaine theta * maillage support pour l'integration * OBJCON2 = MODE mai1 'MECANIQUE' 'ZCO2'; SINON; * maillage support pour l'integration * OBJCON2 = 'MODELISER' mai1 'MECANIQUE' 'ZCO3'; FINSI; * ON GARDE OBJCON2 POUR PLUS TARD OBJUTI.'OBJCON2' = OBJCON2; * PSI en CHPOINT sur la fissure utilise pour calcul du repere local TESPSI = PSI2 'MASQUE' 'INFERIEUR'(-1E-15); * terme sqrt(r/2pI) et sa derivee,r RM05B = ((PSI2B/(2.*PI)) **0.5); RM05BR = 0.5*((2.*PI*PSI2B)**-0.5); * Change le nom pour pouvoir calculer grad avec ZCO 1 'AY ' 0. 'NATURE' 'DIFFUS') 1 'AZ ' 0. 'NATURE' 'DIFFUS'); SI (GDIME 'EGA' 2); * Angle ALPHA1 de passage local -> global 'AZ,Y' 0. 'AZ,Z' 1. 'STRESSES'; ROT2 = ROT20 + ROT2; SINON; * CHAM DES NORMALES * CHAM PREMIERE TANGENTE = GRAD DE PSI * MAIS ON ORTHONORMALISE LE REPERE V12 = GPSI2 - (PSCA1 * V22); V12 = V12 / NV12; * CHAM DE LA DERNIERE TANGENTE PRODUIT VECT DES 2 AUTRES FINSI; * r,x (r = -PSI sur la fissure) SI (EGA GDIME 3); FINSI; FINSI; FINSI; * fin du cas contact frottant BOOL.'FROT' (btrolle 19/02/2013) FINSI; * COS ET SIN UTILES COS1T = COS TETA1; COS05T = COS (0.5*TETA1); COS15T = COS (1.5*TETA1); SIN1T = SIN TETA1; SIN05T = SIN (0.5*TETA1); SIN15T = SIN (1.5*TETA1); FINSI; * III.2 - METHODE U-ANALYTIQUE * ---------------------------- SI (EGA METH_AUX 'UANA'); * CAS D UN MONO-MATERIAU * CHAMP AUX. MODE 1 UX_1 = ((RAY1/(2.*PI))**0.5) / (2.*MU_1) * COS05T * (KAP_1 - COS1T); UY_1 = ((RAY1/(2.*PI))**0.5) / (2.*MU_1) * SIN05T * (KAP_1 - COS1T); * CHAMP AUX. MODE 2 UX_1 = ((RAY1/(2.*PI))**0.5) / (2.*MU_1) * SIN05T * (2. + KAP_1 + COS1T); UY_1 = ((RAY1/(2.*PI))**0.5) / (2.*MU_1) * COS05T * (2. - KAP_1 - COS1T); SINON; * CAS D UN BI-MATERIAU EPSLGR = EPS1 * (LOG RAY1); VA1 = COS (EPSLGR*180./PI); VA2 = SIN (EPSLGR*180./PI); BTA1 = ((0.5*VA1) + (EPS1*VA2)) / (0.25 + (EPS1*EPS1)); BTAPM1 = ((0.5*VA2) - (EPS1*VA1)) / (0.25 + (EPS1*EPS1)); DTA_1 = EXP (0. - ((PI - TETA1RAD)*EPS1)); DTA_2 = EXP ((PI + TETA1RAD)*EPS1); GAM_1 = (KAP_1*DTA_1) - (DTA_1**(-1.)); GAM_2 = (KAP_2*DTA_2) - (DTA_2**(-1.)); GAMPM_1 = (KAP_1*DTA_1) + (DTA_1**(-1.)); GAMPM_2 = (KAP_2*DTA_2) + (DTA_2**(-1.)); COS05T = COS (TETA1/2.) ; SIN05T = SIN (TETA1/2.); D_1 = (BTA1*GAM_1*COS05T) + (BTAPM1*GAMPM_1*SIN05T); D_2 = (BTA1*GAM_2*COS05T) + (BTAPM1*GAMPM_2*SIN05T); DPM_1 = (BTAPM1*GAM_1*COS05T) - (BTA1*GAMPM_1*SIN05T); DPM_2 = (BTAPM1*GAM_2*COS05T) - (BTA1*GAMPM_2*SIN05T); GTAR1 = EPSLGR + (0.5*TETA1RAD); CVA_1 = (SIN TETA1) * (SIN (GTAR1*180./PI)); CVA_2 = (SIN TETA1) * (COS (GTAR1*180./PI)); * CHAMP AUX. MODE 1 UX_1 = ((RAY1/(2.*PI))**0.5)/(4.*MU_1)*(D_1 + (2.*DTA_1*CVA_1)); UX_2 = ((RAY1/(2.*PI))**0.5)/(4.*MU_2)*(D_2 + (2.*DTA_2*CVA_1)); UY_1 = 0-(((RAY1/(2.*PI))**0.5)/(4.*MU_1)*(DPM_1 + (2.*DTA_1*CVA_2))); UY_2 = 0-(((RAY1/(2.*PI))**0.5)/(4.*MU_2)*(DPM_2 + (2.*DTA_2*CVA_2))); * CHAMP AUX. MODE 2 UX_1 = 0-(((RAY1/(2.*PI))**0.5)/(4.*MU_1)*(DPM_1 - (2.*DTA_1*CVA_2))); UX_2 = 0-(((RAY1/(2.*PI))**0.5)/(4.*MU_2)*(DPM_2 - (2.*DTA_2*CVA_2))); UY_1 = 0-(((RAY1/(2.*PI))**0.5)/(4.*MU_1)*(D_1 - (2.*DTA_1*CVA_1))); UY_2 = 0-(((RAY1/(2.*PI))**0.5)/(4.*MU_2)*(D_2 - (2.*DTA_2*CVA_1))); FINSI; REPE IMOD GDIME; * RETOUR DU REPERE LOCAL VERS LE GLOBAL UG1 = (UL1*(COS ALPHA1)) - (UL2*(SIN ALPHA1)); UG2 = (UL1*(SIN ALPHA1)) + (UL2*(COS ALPHA1)); * CHAMPS AUXILIAIRES TAB1 = CH_AUX.&IMOD; FIN IMOD; FINSI; * III.3 - METHODE G-ANALYTIQUE * **************************** SI (EGA METH_AUX 'GANA'); * ON COMMENCE PAR CREER UN CHAMP DE TYPE GRADIENT NUL QUE L'ON TRANSFORME EN * CHAMP DE TYPE SCALAIRE POUR POUVOIR FAIRE LES OPERATIONS ALGEBRIQUES AVEC LES * CHAMPS DE TYPE SCALAIRE DEFINIS PLUS HAUT A PARTIR DE TETA1 * PREMIERE ETAPE : ECRITURE DES CHAMPS * ------------------------------------ * PREFACTEURS PREF1 = (1/(2*PI*RAY1))**0.5; * TABLES (ELLES CONTIENDRONT LES CHAMPS POUR LES 2/3 MODES) * REMARQUE : DANS CE QUI SUIT ON EXPRIME LES COMPOSANTES DU GRADIENT DU CHAMP * DE DEPLACEMENT DANS LA BASE MIXTE ENTRE LA BASE CARTESIENNE LOCALE * ET LA BASE CYLINDRIQUE LOCALE. * U1T N'EST DONC PAS U1,T MAIS BIEN (U1,T)/R. * REMARQUE : LE TENSEUR DES CONTRAINTES EST BIEN SUR SYMETRIQUE MAIS ON LE * TRAITE QUAND MEME COMME S'IL NE L'ETAIT PAS POUR POUVOIR EFFECTUER * LA ROTATION DE LA MEME MANIERE QUE POUR LE GRADIENT DU DEPLACEMENT * MODE I : * ******** * GRADIENT DU DEPLACEMENT DANS LA BASE LOCALE GRU1 = GRU0 + U1R + U1T + U2R + U2T; GRULOC.(1) = (PREF1 / (4.*MU_1)) * GRU1 MSCAL MGUI MGUI; * CONTRAINTES DANS LA BASE LOCALE SIG1 = GRU0 + SIG11 + SIG12 + SIG21 + SIG22 + SIG33; SIGLOC.(1) = PREF1 * SIG1 MSCAL MGUI MGUI; * MODE II : * ********* * GRADIENT DU DEPLACEMENT DANS LA BASE LOCALE GRU1 = GRU0 + U1R + U1T + U2R + U2T; GRULOC.(2) = (PREF1 / (4.*MU_1)) * GRU1 MSCAL MGUI MGUI; * CONTRAINTES DANS LA BASE LOCALE SIG1 = GRU0 + SIG11 + SIG12 + SIG21 + SIG22 + SIG33; SIGLOC.(2) = PREF1 * SIG1 MSCAL MGUI MGUI; * MODE III : * ********** * GRADIENT DU DEPLACEMENT DANS LA BASE LOCALE GRU1 = GRU0 + U3R + U3T; GRULOC.(3) = (PREF1 / MU_1) * GRU1 MSCAL MGUI MGUI; * CONTRAINTES DANS LA BASE LOCALE SIG1 = GRU0 + SIG13 + SIG31 + SIG23 + SIG32; SIGLOC.(3) = PREF1 * SIG1 MSCAL MGUI MGUI; * DEUXIEME ETAPE : PASSAGE DANS LA BASE GLOBALES * ---------------------------------------------- * MATRICE DE PASSAGE DE LA BASE CYLINDRIQUE A LA BASE CART. GLOBALE * (SA TRANSPOSEE EN FAIT) * PCG = (R,X R*T,X 0) * (R,Y R*T,Y 0) * (R,Z R*T,Z 0) * AVEC : * R,I = COST * PSI,I + SINT * PHI,I * R*T,I = COST * PHI,I - SINT * PSI,I PCG = GRU0; REPE I 3; FIN I; * MATRICE DE PASSAGE DE LA BASE CART. LOCALE A LA BASE CART. GLOBALE * (SA TRANSPOSEE EN FAIT) * C'EST ROT1 CALCULE PLUS HAUT * BOUCLE SUR LES MODES REPE IMOD GDIME; GRU1 = GRULOC.&IMOD; SIG1 = SIGLOC.&IMOD; GRUAUX = GRU0; SIGAUX = GRU0; * BOUCLES SUR LES INDICES (DOUBLE PRODUIT MATRICIEL) REPE I 3; REPE J 3; REPE K 3; REPE L 3; * POUR LE GRADIENT DU DEPLACEMENT : LE CHANGEMENT DE BASE EST MIXTE * POUR LE TENSEUR DES CONTRAINTES : LE CHANGEMENT DE BASE EST NORMAL FIN L; FIN K; FIN J; FIN I; * IL FAUT REPASSER LE CHAMP DE CONTRAINTE EN TYPE 'CONTRAINTES' ET NE GARDER * QUE LES COMPOSANTES PERTINENTES * IL FAUT REPASSER LE GRADIENT DU DEPLACEMENT EN TYPE 'GRADIENT' * STOCKAGE TAB1 = CH_AUX.&IMOD; TAB1.'A_PREI' = FOR000; TAB1.'A_DEPI' = DEP000; TAB1.'A_SIGF' = SIGAUX; TAB1.'A_DEPGR' = GRUAUX; FIN IMOD; ******************************************************************************* * SAUT DE DEPLACEMENT DANS LE CAS DU FROTTEMENT ENTRE LES LEVRES 'AY,X' 0. 'AY,Y' 0. 'AY,Z' 0. 'AZ,X' 0. 'AZ,Y' 0. 'AZ,Z' 0. 'TYPE' 'SCALAIRE' 'STRESSES'; * LIST GRW0 ;FIN; * MODE I : * ******** * GRADIENT DU SAUT DE DEPLACEMENT DANS LA BASE LOCALE (MIS A 0 EN MODE I * CAR NE DOIT PAS INTERVENIR) GRWLOC.(1) = GRW0; * MODE II : * ********* * GRADIENT DU SAUT DE DEPLACEMENT DANS LA BASE LOCALE W1R = (8.*C_MATE * RM05BR) / 2.; W1X = W1R*DRDX2; W1Y = W1R*DRDY2; SI (EGA GDIME 3); W1Z = W1R*DRDZ2; FINSI; * MODE III : * ********** * GRADIENT DU SAUT DE DEPLACEMENT DANS LA BASE LOCALE GRWLOC.(3) = GRW0; SI (EGA GDIME 3); W3R = (8*C_MATE * RM05BR/(1. - VNU_1)) / 2.; W3X = W3R*DRDX2; W3Y = W3R*DRDY2; W3Z = W3R*DRDZ2; FINSI; * MATRICE DE PASSAGE DE LA BASE CART. LOCALE A LA BASE CART. GLOBALE * (SA TRANSPOSEE EN FAIT) * C'EST ROT2 CALCULE PLUS HAUT * BOUCLE SUR LES MODES REPE IMOD GDIME; GRW1 = GRWLOC.&IMOD; GRWAUX = GRW0; * BOUCLES SUR LES INDICES (DOUBLE PRODUIT MATRICIEL) REPE I 3; REPE J 3; FIN J; FIN I; CH_AUX.&IMOD.'B_DEPGR' = GRWAUX; FIN IMOD; FINSI; FINSI; REPE IMOD 0; * MSUP = MAILLAGE ELEM 'BLEU'; * TRAC 'CACH' (VECT (REDU T_PREI.&IMOD MSUP) 'FORC') MSUP; UAUX = CH_AUX.&IMOD.'A_DEPI'; TRAC 'CACH' DEF1; FIN IMOD; FINP CH_AUX;
© Cast3M 2003 - Tous droits réservés.
Mentions légales