wkuma0
C WKUMA0 SOURCE CB215821 24/04/12 21:17:29 11897 IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C----------------------------------------------------------------------- C C DESCRIPTION FONCTIONNELLE : C ------------------------- C C Preparation des donnees de l'integrateur de la loi de comportement C externe UMAT. C C WKUMA0 prepare les donnees independantes de l'element et du point C d'integration ; de ce fait, WKUMA0 est appelee par COML6 avant le C demarrage des boucles imbriquees sur les elements de la sous-zone C et sur les points de Gauss de l'element. C C La plupart des donnees concernees sont des entrees non actives ou C des sorties non exploitees dans le cas d'une adherence a CAST3M. C C C INTERFACE : C --------- C C IN : iqmod : pointeur actif sur le modele elementaire 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 IN : IFOURB : type de calcul CAST3M C = 2 : tridimensionnel (3D) C = 0 : axisymetrie (2D) C = -1 : deformations planes (2D) C = -2 : contraintes planes (2D) C = -3 : deformations planes generalisees (2D) C = 3 a 11 : unidimensionnel plan (massif 1D) C = 12 a 14 : unidimensionnel axisymetrique (massif 1D) C C C Les operations effectuees par WKUMA0 consistent a initialiser C certains elements du segment de travail WKUMAT. C Sont concernees les donnees suivantes : C C Entrees/sorties de la routines UMAT : C ----------------------------------- C C SSE : REAL*8, energie de deformation elastique C SPD : REAL*8, dissipation plastique C SCD : REAL*8, dissipation visqueuse C Entrees/sorties facultatives de la routine UMAT, C non exploitees par CAST3M pour l'instant C Initialisation arbitraire C C C RPL : REAL*8, puissance calorifique volumique degagee C par le travail mecanique, a t0+dt C DRPLDT : REAL*8, derivee de RPL par rapport a la C temperature, a t0+dt C Sorties facultatives de la routine UMAT, non C exploitees par CAST3M pour l'instant C Initialisation arbitraire C 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 ne sont initialisees par WKUMA0 que C dans le cas ou elles ne sont pas actives, i.e. C quand aucun champ de temperature ni aucun champ C de parametre externe n'est fourni en entree a C l'operateur COMP (cas d'un modele independant C de la temperature et de tout autre parametre). C C C CMNAME : CHARACTER*16, identifiant de la loi de C comportement C Entree de la routine UMAT C C C NDI : INTEGER prenant la valeur de IFOURB C Entree de la routine UMAT C C C NSHR : INTEGER, nombre de composantes extradiagonales C du tenseur des contraintes C Entree de la routine UMAT, non active dans le C cas d'une adherence a CAST3M C Initialisation arbitraire C C C NSTATV : INTEGER, nombre de variables internes C NPROPS : INTEGER, nombre de constantes de materiau C Entrees de la routine UMAT C C C DROT : REAL*8(3,3), matrice de passage du repere local C de l'element fini massif au repere general C du maillage C Cette matrice etant dependante de l'element fini C son initialisation dans ce sous-programme est C arbitraire (matrice identite) C Entree de la routine UMAT, non active pour les C elements finis non massifs C C C DFGRD0 : REAL*8(3,3), tenseur gradient de deplacement C a t0 C DFGRD1 : REAL*8(3,3), tenseur gradient de deplacement C a t0+dt C Entrees de la routine UMAT C Ces entrees ne sont initialisees par WKUMA0 que C dans le cas ou elles ne sont pas actives, i.e. C quand aucun champ de gradient de deplacement C n'est fourni en entree a l'operateur COMP. C C C LAYER : INTEGER, numero de couche pour des coques C composites ou des solides multi-couches C KSPT : INTEGER, numero de section dans la couche C courante C Entrees de la routine UMAT, non actives dans le C cas d'une adherence a CAST3M C Initialisation arbitraire C C C KSTEP : INTEGER C KINC : INTEGER C Entrees de la routine UMAT n'ayant pas C de sens dans le cas d'une adherence a CAST3M C Initialisation arbitraire C C C Variables de travail : C -------------------- C C LTEMP : LOGICAL, indicateur de fourniture de C la temperature C LTEMP=.TRUE. : TEMP et DTEMP mis a jour par C WKUMA1, a chaque nouveau point d'integration. C LTEMP=.FALSE. : TEMP et DTEMP mis a zero une C fois pour toutes par WKUMA0. C C LPRED : LOGICAL, indicateur d'existence de parametres C externes du modele C LPRED=.TRUE. : mise a jour de PAREX0(*) par C COMVAL et de DPRED(*) par WKUMA1, a chaque C nouveau point d'integration. C LPRED=.FALSE. : PAREX0(1) mis a zero par COMVAL C a chaque nouveau point d'integration et DPRED(1) C mis a zero une fois pour toutes par WKUMA0. C C LVARI : LOGICAL, indicateur d'existence de variables C internes de la loi de comportement C LVARI=.TRUE. : initialisation de VARF(*) par C WKUMA1 a chaque nouveau point d'integration, C par recopiage du contenu de VAR0(*). C LVARI=.FALSE. : VAR0(1) et VARF(1) mis a zero C par COMVAL a chaque nouveau point d'integration, C pas de recopiage dans WKUMA1. C C LDFGRD : LOGICAL, indicateur de fourniture de C gradients de deplacement C LDFGRD=.TRUE. : DFGRD0 et DFGRD1 mis a jour par C WKUMA1, a chaque nouveau point d'integration. C LDFGRD=.FALSE. : DFGRD0 et DFGRD1 mis a zero une C fois pour toutes par WKUMA0. C C NSIG0 : INTEGER, nombre de composantes du tenseur des C contraintes C Stockage dans une variable de travail afin de ne C pas "mesurer" un vecteur a chaque nouvel appel a C WKUMA1 C C NPARE0 : INTEGER, nombre de parametres externes de la loi C de comportement C Stockage dans une variable de travail afin de ne C pas "mesurer" un vecteur a chaque nouvel appel a C WKUMA1 C N'est utile que dans le cas ou le modele depend C effectivement de parametres externes C C NGRAD0 : INTEGER, nombre de composantes des tenseurs C gradients de deplacement C Stockage dans une variable de travail afin de ne C pas "mesurer" un vecteur a chaque nouvel appel a C WKUMA1 C C----------------------------------------------------------------------- -INC PPARAM -INC SMMODEL -INC DECHE C 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 Arguments de l'interface C C Pointeurs iqmod, wrk52, wkumat C----------------------------------------------------------------------- C IMODEL=iqmod C C 1 - Initialisations arbitraires d'entrees/sorties non actives ou C non exploitees C SSE=0.0D0 SPD=0.0D0 SCD=0.0D0 C RPL=0.0D0 DRPLDT=0.0D0 C C 2 - Temperature a t0 et increment C Parametres externes a t0 et increments C NTURE0=TURE0(/1) IF (NTURE0.GT.0) THEN LTEMP=.TRUE. ELSE LTEMP=.FALSE. TEMP=0.0D0 DTEMP=0.0D0 ENDIF C NPARE0=PAREX0(/1) nomid=LNOMID(14) IF (nomid.NE.0) THEN SEGACT,nomid nparmo = lesobl(/2) IF (nparmo.EQ.1) THEN IF (lesobl(1).EQ.'T ') THEN nparmo = 0 ENDIF ENDIF ELSE nparmo = 0 ENDIF IF (nparmo.EQ.0) THEN LPRED = .FALSE. DPRED(1) = 0.0D0 ELSE LPRED = .TRUE. ENDIF C C 3 - Numero de loi externe encode dans une chaine de 16 caracteres C NMAMOD=MATMOD(/2) CMNAME=MATMOD(NMAMOD) C C 4 - Type de calcul C Nombre de composantes du tenseur des contraintes C Nombre de variables internes C Nombre de constantes de materiau C C Type de calcul NDI=IFOURB C C Initialisation arbitraire du nombre de composantes C extradiagonales du tenseur des contraintes NSHR=0 C NSIG0=SIG0(/1) C NSTATV=VAR0(/1) nomid=lnomid(10) IF (nomid.EQ.0) THEN LVARI=.FALSE. ELSE SEGACT,NOMID NOBL=LESOBL(/2) NFAC=LESFAC(/2) LVARI=(NOBL.NE.0 .OR. NFAC.NE.0) ENDIF C NPROPS=xmatf(/1) C C 5 - Matrice d'increments de rotation C Initialisation a la matrice identite C C C 6 - Gradients de deplacement a t0 et t0+dt C NGRAD0=grad0(/1) IF (NGRAD0.NE.0) THEN LDFGRD=.TRUE. ELSE LDFGRD=.FALSE. DO 20 J=1,3 DO 21 I=1,3 DFGRD0(I,J)=0.0D0 DFGRD1(I,J)=0.0D0 21 CONTINUE 20 CONTINUE ENDIF C C 7 - Initialisations arbitraires d'entrees/sorties non actives ou C non exploitees C LAYER=0 KSPT=0 C KSTEP=1 KINC=1 C END
© Cast3M 2003 - Tous droits réservés.
Mentions légales