gernay
C GERNAY SOURCE MB234859 23/02/03 21:15:09 11581 * *______________________________________________________________________ * * MODELE GERNAY *______________________________________________________________________ * IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC DECHE * PARAMETER(UN=1.D0,DEUX=2.D0,UNDEMI=.5D0) * REAL*8 YOUN, NU, BULK3, G2, LAM, & TETA0, DTETA, TETAF, ALPH, TREF, DYDT, DNDT, & YOUN0, NU0, BULK30, G20, LAM0, & YOUNF, NUF, BULK3F, G2F, LAMF, & DELDSE(6,6), ETHERM(6), DTHERM(6), & YREF, NREF, EPSE0(6), DEPSE(6),DHOOK(6,6), & DSIG2(3,3),DEPST2(3,3),TENS(3,3),DSIG(6), & V1(3),V2(3),V3(3),V(3,3),P(3,3) REAL*8 PARAHOT3(83,1),sigma6v(6), deps6v(6),STRESS(6),DSTRAN(6) REAL*8 STRAN(6),STATEV(32),PROPS(10),DDSDDE(6,6) character*10 cmat logical lerror,lcp * * ON EXPLORE LE DECHE * NPT=1 NOEL=1 KERRE=0 NMAT = XMAT(/1) NVARI = VAR0(/1) NSTRS = SIG0(/1) * * TRANSFER DE L'ETAT INITIAL, DU DEPST, ET DU MATERIAU * DO I=1,NSTRS STRESS(I) = SIG0(I) STRAN(I) = EPST0(I) DSTRAN(I)= DEPST(I) ENDDO * DO I=1,NVARI STATEV(I) = VAR0(I) ENDDO * PROPS( 1) = XMAT( 2) PROPS( 2) = XMAT( 5) PROPS( 3) = XMAT( 6) PROPS( 4) = XMAT( 7) PROPS( 5) = XMAT( 8) PROPS( 6) = XMAT( 9) PROPS( 7) = XMAT(10) PROPS( 8) = XMAT(11) PROPS( 9) = XMAT(12) PROPS(10) = XMAT( 1) C C----------------------------------------------------------------------- C Constantes de materiau C ---------------------- C PROPS(1) : NU Coefficient de Poisson c PROPS(2) : RC Resistance à la compression c PROPS(3) : RT Resistance à la traction c PROPS(4) : RB Resistance à la compression biaxiale c PROPS(5) : EPS1 Deformation au pic en compression c PROPS(6) : DILA Parametre de dilatance alpha_g c PROPS(7) : DAM1 Endommagement de compression au pic c PROPS(8) : XC Paramètre adimensionnel, rapport de l'energie de rupture c en compression dissipée avant le pic sur l'énergie totale c PROPS(9) : GT Densite d'energie de rupture en traction c PROPS(10) : YOUN Young pour le calcul de la rigidite elastique c C----------------------------------------------------------------------- C * print *,' ' * print *, ' POINT DINTEGRATION IGAU = ', IGAU * print *, ' stress', stress * print *, 'dstran', dstran * print *,' STATEV 1 à 4' , (statev(i),i=1,4) * print *,' STATEV 5 à 10 epspl ', (statev(i),i=5,10) * print *,' STATEV 11 à 16 epstr ', (statev(i),i=11,16) * print *,' STATEV 17 à 22 sig,eff,c ', (statev(i),i=17,22) * print *,' STATEV 24 à 29 sig,eff ', (statev(i),i=24,29) * print *,' STATEV 30 à 32 tmax,phi,epsth ',(statev(i),i=30,32) cmat = 'SICO_ETC3D' idimpara3 = 83 c ATTENTION si idimpara3 est modifié il faut modifier aussi la dimension c de parahot3 (plus haut) lerror = .false. **** npttot3=30 npttot3=1 * lcp = .false. * * CAS CONTRAINTES PLANES * if (IFOUR.EQ.-2) then lcp = .true. endif * TEMPERATURES EN DEBUT ET FIN DE PAS TETA1 = ture0(1) TETA2 = turef(1) C Recuperation des constantes de materiau C PARAHOT3(2,NPT) = PROPS(1) PARAHOT3(3,NPT) = PROPS(2) PARAHOT3(4,NPT) = PROPS(3) PARAHOT3(7,NPT) = PROPS(4) PARAHOT3(5,NPT) = PROPS(5) PARAHOT3(8,NPT) = PROPS(6) PARAHOT3(9,NPT) = PROPS(7) PARAHOT3(10,NPT)= PROPS(8) PARAHOT3(11,NPT)= PROPS(9) C c remplissage des variables internes c accumulated plastic strain kappa at the beginning of the step c in tension and in compression PARAHOT3(idimpara3-37,NPT) = STATEV(1) PARAHOT3(idimpara3-36,NPT) = STATEV(2) c damage variable in tension and in compression PARAHOT3(idimpara3-41,NPT) = STATEV(3) PARAHOT3(idimpara3-40,NPT) = STATEV(4) c plastic strains do i=1,6 PARAHOT3(idimpara3-25+i,NPT) = STATEV(4+i) end do c transient creep strain at the beginning of the step do i=1,6 PARAHOT3(17+i,NPT) = STATEV(10+i) end do c effective stress in compression (used for transient creep strain calculation) do i=1,6 PARAHOT3(23+i,NPT) = STATEV(16+i) end do do i=1,6 PARAHOT3(29+i,NPT) = PARAHOT3(23+i,NPT) end do c effective stress after convergence (used for sigf3d forward calculation) do i=1,6 PARAHOT3(idimpara3-7+i,NPT) = STATEV(23+i) end do c remplissage des contraintes c remplissage du vecteur contraintes et du vecteur c increment de deformation if (.not.lcp) then do i=1,6 PARAHOT3(idimpara3-13+i,NPT) = STRESS(i) sigma6v(i)= STRESS(i) deps6v(i)= DSTRAN(i) end do else do i=1,4 PARAHOT3(idimpara3-13+i,NPT) = STRESS(i) sigma6v(i)= STRESS(i) deps6v(i)= DSTRAN(i) end do PARAHOT3(idimpara3-8,NPT)=0.d0 PARAHOT3(idimpara3-7,NPT)=0.d0 sigma6v(5) = 0.d0 sigma6v(6) = 0.d0 deps6v(5) = 0.d0 deps6v(6) = 0.d0 endif c remplissage des deformations au debut du pas t c et en fin de pas if (.not.lcp) then do i=1,6 PARAHOT3(idimpara3-31+i,NPT) = STRAN(i) PARAHOT3(idimpara3-19+i,NPT) = STRAN(i) + DSTRAN(i) end do else do i=1,4 PARAHOT3(idimpara3-31+i,NPT) = STRAN(i) PARAHOT3(idimpara3-19+i,NPT) = STRAN(i) + DSTRAN(i) end do endif c TEMPERATURES c ******************************************************************************** c probleme pour vecteur STATEV - STATEV(30,31,32) ne passe pas d'un pas à l'autre c => il faut passer le vecteur STATEV à 32 composantes au lieu de 29 c ******************************************************************************** c actualisation de la temperature au pas courant **** TEMP = TEMP + DTEMP **** PARAHOT3(idimpara3-39,NPT) = TEMP PARAHOT3(idimpara3-39,NPT) = TETA2 c actualisation éventuelle de la temperature maximale atteinte **** if (TEMP.gt.STATEV(30)) STATEV(30) = TEMP if (TETA2.gt.STATEV(30)) STATEV(30) = TETA2 PARAHOT3(idimpara3-38,NPT) = STATEV(30) c phi function PARAHOT3(17,NPT) = STATEV(31) c Thermal strain PARAHOT3(idimpara3,NPT) = STATEV(32) c appel a mater2 NTOT = 1 & ddsdde, sigma6v, deps6v,lcp,NOEL,NPT,Kinc) * print *, ' sortie de mater2tg' . NOEL,NPT) * print *, ' sortie de mater3tg' C sauvetage des resultats c remplissage des contraintes if (.not.lcp) then do i=1,6 STRESS(i) = sigma6v(i) end do else do i=1,4 STRESS(i) = sigma6v(i) end do endif c if ((NOEL.eq.18).and.(NPT.eq.23)) then * print *,'GERNAY CONTRAINTES EN FIN DE PAS stress = ', stress c endif c actualisation des variables internes c accumulated plastic strain kappa at the beginning of the step c in tension and in compression STATEV(1) = PARAHOT3(idimpara3-37,NPT) STATEV(2) = PARAHOT3(idimpara3-36,NPT) c damage variable in tension and in compression STATEV(3) = PARAHOT3(idimpara3-41,NPT) STATEV(4) = PARAHOT3(idimpara3-40,NPT) c plastic strains do i=1,6 STATEV(4+i) = PARAHOT3(idimpara3-25+i,NPT) end do c transient creep strain at the beginning of the step do i=1,6 STATEV(10+i) = PARAHOT3(17+i,NPT) end do c effective stress in compression (used for transient creep strain calculation) do i=1,6 STATEV(16+i) = PARAHOT3(23+i,NPT) end do c equivalent strain STATEV(23) = STATEV(1) + STATEV(2) c effective stress after convergence (used for sigf3d forward calculation) do i=1,6 STATEV(23+i) = PARAHOT3(idimpara3-7+i,NPT) end do c maximum temperature STATEV(30) = PARAHOT3(idimpara3-38,NPT) c phi function STATEV(31) = PARAHOT3(17,NPT) c Thermal strain STATEV(32) = PARAHOT3(idimpara3,NPT) c do iloc=1,NTENS do iloc=1,4 print *,'>>>>>>>>>>>>>>>>>>>> problem stress = ', . stress print *,'in NOEL = , NPT = ', IB , IGAU KINC = -2 endif enddo if (KINC.eq.-2) then print *,'in NOEL = , NPT = ', IB , IGAU endif * * TRANSFERT DE L'ETAT FINAL * DO I=1,NSTRS SIGF(I) = STRESS(I) ENDDO * DO I=1,NVARI VARF(I) = STATEV(I) ENDDO * RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales