wkuma1
C WKUMA1 SOURCE PV 17/12/08 21:18:10 9660 C----------------------------------------------------------------------- C C DESCRIPTION FONCTIONNELLE : C ------------------------- C C Preparation des donnees de l'integrateur de la loi de comportement C externe UMAT. C C WKUMA1 prepare les donnees variables en chaque point d'integration C De ce fait, WKUMA1 est appelee par COML8 avant l'appel a UMAT. C C C INTERFACE : C --------- C C IN : wrk52 : pointeur actif sur le segment de travail WRK52 C de l'objet DECHE C IN : wkumat : pointeur actif sur le segment de travail C WKUMAT contenant les donnees a preparer C C C Les operations effectuees par WKUMA1 consistent, d'une part, a C initialiser certains elements du segment de travail WKUMAT. C Sont concernees les donnees suivantes : C C Entrees/sorties de la routines UMAT : C ----------------------------------- C C TIME : REAL*8(2), TIME(1) = 0 C TIME(2) = t0 C DTIME : REAL*8, DTIME = dt C Entrees de la routine UMAT C t0 : precedent instant d'equilibre atteint C dt : nouveau pas de temps propose par PASAPAS C pour atteindre l'equilibre avec l'increment de C deformation totale impose C Les donnees t0 et t1=t0+dt sont fournies sous C forme de MCHAML, d'ou actualisation a chaque C nouveau point d'integration C C TEMP : REAL*8, temperature a t0 C DTEMP : REAL*8, increment de temperature a t0+dt C DPRED : REAL*8(*), increments des parametres externes C a t0+dt C Entrees de la routine UMAT C Ces entrees sont mises a jour par WKUMA1 dans le C cas ou elles sont actives, c'est-a-dire : C - quand LTEMP=.TRUE. : champs de temperature C fournis en entree de COMP, C - quand LPRED=.TRUE. : existence de parametres C externes du modele. C C PNEWDT : REAL*8, rapport entre le nouveau pas de temps C suggere et le pas de temps donne en entree C Sortie de la routine UMAT C Initialisation a 1.0D+6 C C DFGRD0 : REAL*8(3,3), tenseur gradient de la C transformation a t0 ( F(t0) ) C DFGRD1 : REAL*8(3,3), tenseur gradient de la C transformation a t0+dt ( F(t0+dt) ) C Entrees de la routine UMAT C Ces entrees sont mises a jour par WKUMA1 dans le C cas ou elles sont actives, c'est-a-dire : C - quand LDFGRD=.TRUE. : gradients de C deplacement fournis en entree de COMP. C C C D'autre part, WKUMA1 prepare certains vecteurs du segment WRK52 C de l'objet DECHE qui sont passes directement a UMAT. C Sont concernees les donnees suivantes : C C Entrees/sorties de la routines UMAT : C ----------------------------------- C C SIGF : REAL*8(NTENS), tenseur des contraintes C <=> STRESS En entree : tenseur des contraintes a t0 C En sortie : tenseur des contraintes a t0+dt C WKUMA1 recopie le contenu de SIG0 dans SIGF C avant l'appel a UMAT. C C VARF : REAL*8(*), variables internes C <=> STATEV En entree : variables internes a t0 C En sortie : variables internes a t0+dt C WKUMA1 recopie le contenu de VAR0 dans VARF C avant l'appel a UMAT. C C----------------------------------------------------------------------- C C Arguments de l'interface WKUMA1 : C C Pointeurs wrk52, wkumat C C----------------------------------------------------------------------- IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) PARAMETER (XZero=0.,XUn=1.) -INC DECHE SEGMENT WKUMAT C Entrees/sorties de la routine UMAT REAL*8 DDSDDE(NTENS,NTENS), SSE, SPD, SCD, & RPL, DDSDDT(NTENS), DRPLDE(NTENS), DRPLDT, & TIME(2), DTIME, TEMP, DTEMP, DPRED(NPRED), CHARACTER*16 CMNAME INTEGER NDI, NSHR, NSTATV, NPROPS, & LAYER, KSPT, KSTEP, KINC C Variables de travail LOGICAL LTEMP, LPRED, LVARI, LDFGRD INTEGER NSIG0, NPARE0, NGRAD0 ENDSEGMENT C C 1 - Instant d'equilibre precedent et pas de temps (iteration globale, C pilotage par PASAPAS) C TIME(1)=XZero TIME(2)=temp0 DTIME=tempf-temp0 C C 2 - Recopiage des contraintes a t0 dans le vecteur SIGF C En sortie de UMAT le contenu de ce vecteur sera ecrase par les C valeurs a t0+dt C DO 10 I=1,NSIG0 SIGF(I)=SIG0(I) 10 CONTINUE C C 3 - Recopiage des variables internes a t0 dans le vecteur VARF C Operation conditionnee par le booleen LVARI car il peut C ne pas y avoir de variables internes C En sortie de UMAT le contenu de ce vecteur sera ecrase par les C valeurs a t0+dt C IF ( LVARI ) THEN DO 20 I=1,NSTATV VARF(I)=VAR0(I) 20 CONTINUE ENDIF C C 4 - Temperature a t0 et increment C Increments de parametres externes sur le pas de temps C IF ( LTEMP ) THEN TEMP=TURE0(1) DTEMP=TUREF(1)-TEMP ENDIF C IF ( LPRED ) THEN DO 30 I=1,NPARE0 DPRED(I)=PAREXF(I)-PAREX0(I) 30 CONTINUE ENDIF C C 5 - Rapport entre le pas de temps suggere pour l'iteration suivante C et le pas de temps de l'iteration en cours C Initialisation avant calcul C PNEWDT=1.0D+6 C C 6 - Gradients de la transformation a t0 et t0+dt C C En mecanique, les composantes du tenseur gradient de la tansforma- C tion sont toutes obligatoires, il y en a 4 ou 9 suivant la formu- C lation EF et la dimension du probleme. L'ordre des composantes C correspond a un parcours du tenseur ligne par ligne. C cf. IDGRAD.eso C En entree de COMP, les gradients de deplacements sont fournis. C Les gradients de transformation s'en deduisent en ajoutant le C tenseur identite (termes diagonaux). C IF ( LDFGRD ) THEN C IF (NGRAD0.EQ.4) THEN C DFGRD0(1,1)=grad0(1)+XUn DFGRD0(2,1)=grad0(3) DFGRD0(3,1)=XZero DFGRD0(1,2)=grad0(2) DFGRD0(2,2)=grad0(4)+XUn DFGRD0(3,2)=XZero DFGRD0(1,3)=XZero DFGRD0(2,3)=XZero DFGRD0(3,3)=XUn C DFGRD1(1,1)=gradf(1)+XUn DFGRD1(2,1)=gradf(3) DFGRD1(3,1)=XZero DFGRD1(1,2)=gradf(2) DFGRD1(2,2)=gradf(4)+XUn DFGRD1(3,2)=XZero DFGRD1(1,3)=XZero DFGRD1(2,3)=XZero DFGRD1(3,3)=XUn C ELSE C DFGRD0(1,1)=grad0(1)+XUn DFGRD0(2,1)=grad0(4) DFGRD0(3,1)=grad0(7) DFGRD0(1,2)=grad0(2) DFGRD0(2,2)=grad0(5)+XUn DFGRD0(3,2)=grad0(8) DFGRD0(1,3)=grad0(3) DFGRD0(2,3)=grad0(6) DFGRD0(3,3)=grad0(9)+XUn C DFGRD1(1,1)=gradf(1)+XUn DFGRD1(2,1)=gradf(4) DFGRD1(3,1)=gradf(7) DFGRD1(1,2)=gradf(2) DFGRD1(2,2)=gradf(5)+XUn DFGRD1(3,2)=gradf(8) DFGRD1(1,3)=gradf(3) DFGRD1(2,3)=gradf(6) DFGRD1(3,3)=gradf(9)+XUn C ENDIF C ENDIF C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales