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