piocau
C PIOCAU SOURCE PV090527 24/04/30 21:15:01 11926 C======================================================================= C OPERATEUR TRANSFORMANT LES CONTRAINTES DE PIOLA KIRCHHOFF C EN CONTRAINTES DE CAUCHY ET RECIPROQUEMENT C C IM = 0 : SI2 = PICA MODL1 SI1 DU (UXFEM) (MODERIV); C IM = 1 : SI2 = CAPI MODL1 SI1 DU (UXFEM) (MODERIV); C C MODL1= OBJET MODELE (TYPE MMODEL) C C SI1 = CHAMP DE CONTRAINTES (TYPE MCHAML)EN ENTREE C OU DE DEFORMATIONS C C SI2 = CHAMP DE CONTRAINTES (TYPE MCHAML) EN SORTIE C OU DE DEFORMATIONS C C DU = INCRMT DE DEPLACEMENT ENTRE CONFIG DE DEPART ET ACTUELLE C (TYPE CHPOINT) C C UXFEM = DEPLACEMENT ENRICHI ENTRE CONFIG FISSURE FERMEE ET C CONFIG DE DEPART (elements xq4r et xc8r) C C MODERIV = mot cle optionnel parmi 'JAUM' ou 'UTIL' C C CODE COMBESCURE SEPT 87 C C======================================================================= IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMMODEL -INC SMCHAML POINTEUR MCHEX1.MCHELM C PARAMETER(NDERI=7) CHARACTER*4 MODERI(NDERI) DATA MODERI/'LINE','QUAD','I ','II ','TRUE','JAUM','UTIL'/ c -> IDERI = 1 2 1 2 3 4 5 c traitement particulier uniquement si IDERI = 4 ou 5 C----------------------------------------------------------------------- IPMODL=0 IPCHE1=0 IPCHE2=0 IPCHP1=0 *as xfem 2010_01_13 IPCHP0=0 ICHAX1=0 IDERI=0 c option de calcul des deformations (par defaut lineaires) IF(IDERI.EQ.0) IDERI=1 IF(IDERI.GE.3) IDERI=IDERI-2 IF(IERR.NE.0) RETURN IF(IERR.NE.0)RETURN C C ON LIT LE MCHAML A TRANSFORMER C if (ipin.eq.0) ierr=2 IF(IERR.NE.0) RETURN IF(IERR.NE.0) RETURN mchelm=ipin mchelm=ipche1 IF(IERR .NE. 0) RETURN C C ON LIT UN CHPOINT DE DEPLACEMENTS C IF(IERR.NE.0) RETURN IF(IERR.NE.0) RETURN C IF (IERR.NE.0) RETURN *as xfem 2010_01_13 if (ierr.ne.0) then if (ichax1.ne.0) then write(ioimp,*) 'pr un deplacement enrichi, on a besoin du ', & 'deplacement entre la config. 0 et la config. de reference' return endif endif C MMODEL = IPMODL NBPART = KMODEL(/1) IPICA = 0 DO 4 IPART=1,NBPART IMODEL = KMODEL(IPART) C Pour certains modeles (OTTOSEN, UO2), les operateurs PICA et CAPI ne C doivent pas modifier les champs ! * septembre 2019: cette restriction est enlevee ** IF ( INATUU.EQ.42 .OR. INATUU.EQ.108 ) IPICA = IPICA+1 C Pour les modeles utilisateur UMAT, les contraintes sont deja de Cauchy C et ne doivent donc pas etre transportees ! IF ( INATUU.EQ.-1) IPICA = IPICA+1 C Verification presence XFEM *as xfem 2010_01_13 NOBMO1=IVAMOD(/1) if (NOBMO1.ne.0) then Do iobmo1=1,NOBMO1 if (TYMODE(iobmo1).eq.'MCHAML') then MCHEX1=IVAMOD(iobmo1) if (MCHEX1.TITCHE .eq. 'ENRICHIS') then ICHAX1 = MCHEX1.ICHAML(1) goto 3 endif endif Enddo endif 3 CONTINUE *fin as xfem 2010_01_13 4 CONTINUE C Presence XFEM -> pointeur ICHAX1 non nul *as xfem 2010_01_13 if (ichax1.ne.0 .and. ipchp0.EQ.0) then write(ioimp,*) 'pr un deplacement enrichi, on a besoin du ', & 'deplacement entre la config. 0 et la config. de reference' return endif C IPICA = NBPART -> Le modele entier contient des modeles UMAT C Recopie MCHAML IPCHE1 tel quel et on quitte IF (IPICA.EQ.NBPART) THEN IRET = 1 C C Melange de MODELEs : Traitement GENERAL C ELSE IRET = 0 & IPCHE2,IRET) ENDIF IF (IRET.EQ.1) THEN ENDIF END
© Cast3M 2003 - Tous droits réservés.
Mentions légales