C CREEP SOURCE CB215821 16/04/21 21:16:08 8920 SUBROUTINE CREEP (DECRA,DESWA,STATEV,serd,EC0,ESW0,P,QTILD, & TEMP,DTEMP,PREDEF,DPRED,TIME,DTIME, & CMNAME,leximp,LEND,COORDS,NSTATV,NOEL,NPT, & layer,kspt,KSTEP,KINC) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC CCREEL C----------------------------------------------------------------------- C C DESCRIPTION FONCTIONNELLE : C ------------------------- C C Version du module externe CREEP integree au code pour eviter tout C probleme d'edition de lien et pour permettre le passage de tests C de non regression. C C En utilisation normale, ce module doit etre surcharge par celui C de meme nom fourni par l'utilisateur. C C Si cette version de CREEP est appelee, cela signifie qu'il n'y a C pas eu surcharge par le module utilisateur C ATTENTION : si l'utilisateur oublie de surcharger et affecte a sa C loi le meme numero que l'un de ceux pris en charge ci-apres, il y C a risque d'erreur non controlee a l'execution. C C CONVENTION : on autorise la programmation de l'utilisateur a se C servir de KSTEP comme code retour, de la meme maniere que l'on C s'en sert ci-dessous. Regles a respecter : C 1. Pas d'initialisation superflue de KSTEP en entrant dans CREEP. C KSTEP est initialise a 1 par WCREE0, avant l'appel a CREEP. C 2. En cas d'erreur, KSTEP est affecte d'une valeur differente de 1 C C----------------------------------------------------------------------- C C DESCRIPTION DE L'INTERFACE : C -------------------------- C C OUT : DECRA : REAL*8(5) C DECRA(1) : increment scalaire de deformation de C fluage, au debut du pas si LEND=0, a la fin du C pas si LEND=1. C Les composantes 2 a 5 ne sont pas exploitees C dans le cas d'une adherence a CAST3M. C C OUT : DESWA : REAL*8(5) C DESWA(1) : increment scalaire de deformation de C gonflement, au debut du pas si LEND=0, a la fin C du pas si LEND=1. C Les composantes 2 a 5 ne sont pas exploitees C dans le cas d'une adherence a CAST3M. C C Remarque : la routine CREEP evalue des VITESSES C de deformation (fluage et gonflement) au debut C ou a la fin du pas, suivant la valeur de LEND. C Les increments DECRA(1) et DESWA(1) sont ensuite C determines par les produits de ces vitesses par C le pas de temps DTIME. C C IN/OUT : STATEV : REAL*8(*), variables internes supplementaires C Il s'agit des eventuelles variables internes C s'ajoutant aux 4 pre-definies 'EC0 ', 'ESW0', C 'P ' et 'QTLD'. C Valeurs au debut du pas si LEND=0. C Peuvent etre mises a jour si LEND=1 : valeurs a C la fin du pas. C C IN/OUT : serd : REAL*8, puissance volumique de deformation C inelastique (produit contracte du tenseur des C contraintes et du tenseur des vitesses de C deformation inelastique). C Entree/sortie facultative de la routine CREEP, C non exploitee par CAST3M pour l'instant. C C IN : EC0 : REAL*8, deformation de fluage cumulee. C 1ere variable interne parmi les 4 pre-definies. C Valeur au debut du pas. C C IN : ESW0 : REAL*8, deformation de gonflement cumulee. C 2eme variable interne parmi les 4 pre-definies. C Valeur au debut du pas. C C IN : P : REAL*8, 1er invariant du tenseur des contraintes C (1/3 trace(SIGMA)). C 3eme variable interne parmi les 4 pre-definies. C Valeur au debut du pas si LEND=0, a la fin du C pas si LEND=1. C C IN : QTILD : REAL*8, contrainte equivalente de Von Mises C (SQRT(3/2 S:S) ou S deviateur des contraintes). C 4eme variable interne parmi les 4 pre-definies. C Valeur au debut du pas si LEND=0, a la fin du C pas si LEND=1. C C IN : TEMP : REAL*8, temperature a la fin du pas. C DTEMP : REAL*8, increment de temperature sur le pas. C PREDEF : REAL*8(*), vecteur des parametres externes de la C loi de comportement, valeurs a la fin du pas. C DPRED : REAL*8(*), increments des parametres externes C sur le pas de temps. C C IN : TIME : REAL*8(2) C TIME(1) : duree cumulee des iterations internes C a la fin du pas en cours. C TIME(2) : instant intermediaire absolu a la fin C du pas en cours. C DTIME : REAL*8, valeur du pas de temps en cours. C C Remarque : l'instant absolu correspondant a la C precedente iteration interne convergee est C TIME(2)-DTIME. C C IN : CMNAME : CHARACTER*16, identifiant de la loi de C comportement. C On conserve le type 'chaine de caracteres' pour C l'identifiant de la loi, afin de preserver la C compatibilite avec ABAQUS. C Dans le cas d'une adherence a CAST3M, la loi est C identifiee par le numero qui lui a ete attribue: C argument 'NUME_LOI' de l'operateur MODE. C Par convention, ce numero est encode dans les 4 C derniers caracteres de la chaine, et doit etre C recupere dans CREEP par une instruction du type C K4ILOI = CMNAME(13:16) C avec K4ILOI variable locale de type CHARACTER*4. C C IN : leximp : INTEGER, indicateur d'integration par un schema C Entree non active dans le cas d'une adherence C a CAST3M. C C IN : LEND : INTEGER, indicateur de debut/fin de pas. C LEND=0 : les entrees P, QTILD sont definies au C debut du pas ; les sorties DECRA(1), DESWA(1) C sont calculees au debut du pas. C LEND=1 : les entrees P, QTILD sont definies a la C fin du pas ; les sorties DECRA(1), DESWA(1) sont C calculees a la fin du pas. C C IN : COORDS : REAL*8(*), coordonnees cartesiennes du point C d'integration courant. C C IN NSTATV : INTEGER, nombre de variables internes C supplementaires (en plus des 4 pre-definies). C C IN : NOEL : INTEGER, numero de l'element courant. C NPT : INTEGER, numero du point d'integration courant. C C IN : 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 non actives dans le cas d'une adherence C a CAST3M. C C IN/OUT : KSTEP : INTEGER C Entree n'ayant pas de sens dans le cas d'une C adherence a CAST3M. C On autorise la programmation de l'utilisateur a C se servir de KSTEP comme code retour de CREEP C (cf. description fonctionnelle ci-dessus). C C IN : KINC : INTEGER, compteur d'iterations internes. C Incrementation geree par l'appelant CCREEP. C C----------------------------------------------------------------------- C C MODELES PRIS EN CHARGE par le module CREEP 'bouchon' : C ---------------------------------------------------- C C ILOI = 21 : Modele 'FLUAGE' 'POLYNOMIAL' de CAST3M, INPLAS=21 C ILOI = 23 RESTRICTION A LA FORMULATION MASSIVE C Le modele ILOI=23 comprend deux variables internes C supplementaires artificielles : C 'PSUP' <=> 'P ' et 'QSUP' <=> 'QTLD' C C ILOI = 22 : Modele 'FLUAGE' 'POLYNOMIAL' de CAST3M, INPLAS=21 C ILOI = 24 RESTRICTION A LA FORMULATION MASSIVE C Instanciation des composantes de materiau au fur et a C mesure des iterations internes (uniquement les coef. C du polynome de la loi de fluage). C Le modele comprend cette fois des parametres externes. C Les composantes de materiau sont evaluees par les C memes fonctions externes que celles utilisees par C l'operateur VARI. C MODELE 'MAQUETTE' C Le modele ILOI=24 comprend deux variables internes C supplementaires artificielles : C 'PSUP' <=> 'P ' et 'QSUP' <=> 'QTLD' C C----------------------------------------------------------------------- C Arguments de l'interface C CHARACTER*16 CMNAME C INTEGER leximp, LEND, NSTATV, NOEL, NPT, layer, kspt, & KSTEP, KINC C REAL*8 DECRA(5), DESWA(5), STATEV(*), & serd, EC0, ESW0, P, QTILD, & TEMP, DTEMP, PREDEF(*), DPRED(*), TIME(2), DTIME, & COORDS(*) C C Variables locales C C Tableaux de travail C REAL*8 VALPAR(5) C C Variables scalaires C INTEGER NBPAR C REAL*8 TFIS, TUO2, FACF, DSIU, DGRA, & XAF0, XAF1, XAF2, XAF3, XAF4, XAF5, XAF6, & EC0PT C CHARACTER*4 K4ILOI C REAL*8 FVAF0, FVAF1, FVAF2, FVAF3, FVAF4, FVAF5, FVAF6 EXTERNAL FVAF0, FVAF1, FVAF2, FVAF3, FVAF4, FVAF5, FVAF6 C C C------------------- Debut du code executable -------------------------- C C K4ILOI = CMNAME(13:16) C C======================================================================= C ILOI = 21 : C Modele 'FLUAGE' 'POLYNOMIAL' de CAST3M, INPLAS=21 C RESTRICTION A LA FORMULATION MASSIVE C======================================================================= C IF (K4ILOI.EQ.' 21') THEN C C........Affectation des parametres pour evaluation des coefficients C du polynome de la loi de fluage C TFIS = 1.5D+19 TUO2 = 1.5D+3 FACF = 1.D0 DSIU = 0.95D0 DGRA = 8.0D-6 ** pour eviter les overflow qtild=MAX(min(1D65,QTiLD),-1d65) C C........Evaluation des coefficients du polynome de la loi de fluage C XAF0 = 0.D0 * FACF XAF1 = ( ( EXP(0.183D0*(100.D0-DSIU)) ) * & ( (0.2031D-13+(0.67861D-32*TFIS)) / (DGRA*DGRA) ) * & ( EXP(-45294.4D0/TUO2) ) ) & * FACF XAF2 = 1.D0 XAF3 = ( ( EXP(0.241D0*(100.D0-DSIU)) ) * & ( 0.1524D-25+(0.50825D-44*TFIS) ) * & ( EXP(-66431.8D0/TUO2) ) ) & * FACF XAF4 = 4.5D0 XAF5 = ( (1.447D-34*TFIS) * (EXP(-3624.D0/TUO2)) ) * FACF XAF6 = 1.D0 C C........Calcul de la vitesse de deformation de fluage et de l'increment C........Pas de terme de gonflement C EC0PT = XAF0 + XAF1 * (QTILD**XAF2) + XAF3 * (QTILD**XAF4) & + XAF5 * (QTILD**XAF6) DECRA(1) = EC0PT * DTIME C DESWA(1) = 0.D0 C C======================================================================= C ILOI = 22 : C Modele 'FLUAGE' 'POLYNOMIAL' de CAST3M, INPLAS=21 C RESTRICTION A LA FORMULATION MASSIVE C Instanciation des composantes de materiau au fur et a mesure des C iterations internes (uniquement les coef. du polynome de la loi C de fluage). C Le modele comprend cette fois des parametres externes. C Les composantes de materiau sont evaluees par les memes fonctions C externes que celles utilisees par l'operateur VARI. C MODELE 'MAQUETTE' C======================================================================= C ELSE IF (K4ILOI.EQ.' 22') THEN C IERUT = 0 C C........Affectation des parametres et evaluation des coefficients C du polynome de la loi de fluage C IF ( LEND.EQ.0 ) THEN C NBPAR = 3 VALPAR(1) = PREDEF(1)-DPRED(1) VALPAR(2) = PREDEF(2)-DPRED(2) VALPAR(3) = PREDEF(3)-DPRED(3) XAF0 = FVAF0(VALPAR,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -22000-IERUT RETURN ENDIF C XAF2 = FVAF2(VALPAR,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -22000-IERUT RETURN ENDIF C XAF4 = FVAF4(VALPAR,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -22000-IERUT RETURN ENDIF C XAF5 = FVAF5(VALPAR,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -22000-IERUT RETURN ENDIF C XAF6 = FVAF6(VALPAR,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -22000-IERUT RETURN ENDIF C NBPAR = 4 VALPAR(4) = PREDEF(4)-DPRED(4) XAF3 = FVAF3(VALPAR,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -22000-IERUT RETURN ENDIF C NBPAR = 5 VALPAR(5) = PREDEF(5)-DPRED(5) XAF1 = FVAF1(VALPAR,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -22000-IERUT RETURN ENDIF C ELSE C NBPAR = 3 XAF0 = FVAF0(PREDEF,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -22000-IERUT RETURN ENDIF C XAF2 = FVAF2(PREDEF,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -22000-IERUT RETURN ENDIF C XAF4 = FVAF4(PREDEF,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -22000-IERUT RETURN ENDIF C XAF5 = FVAF5(PREDEF,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -22000-IERUT RETURN ENDIF C XAF6 = FVAF6(PREDEF,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -22000-IERUT RETURN ENDIF C NBPAR = 4 XAF3 = FVAF3(PREDEF,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -22000-IERUT RETURN ENDIF C NBPAR = 5 XAF1 = FVAF1(PREDEF,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -22000-IERUT RETURN ENDIF C ENDIF C C........Calcul de la vitesse de deformation de fluage et de l'increment C........Pas de terme de gonflement C EC0PT = XAF0 + XAF1 * (QTILD**XAF2) + XAF3 * (QTILD**XAF4) & + XAF5 * (QTILD**XAF6) DECRA(1) = EC0PT * DTIME C DESWA(1) = 0.D0 C C======================================================================= C ILOI = 23 : C Modele 'FLUAGE' 'POLYNOMIAL' de CAST3M, INPLAS=21 C RESTRICTION A LA FORMULATION MASSIVE C Equivalent au modele ILOI=21 C Variables internes supplementaires 'PSUP' et 'QSUP' C======================================================================= C ELSE IF (K4ILOI.EQ.' 23') THEN C C........Affectation des parametres pour evaluation des coefficients C du polynome de la loi de fluage C TFIS = 1.5D+19 TUO2 = 1.5D+3 FACF = 1.D0 DSIU = 0.95D0 DGRA = 8.0D-6 C C........Evaluation des coefficients du polynome de la loi de fluage C XAF0 = 0.D0 * FACF XAF1 = ( ( EXP(0.183D0*(100.D0-DSIU)) ) * & ( (0.2031D-13+(0.67861D-32*TFIS)) / (DGRA*DGRA) ) * & ( EXP(-45294.4D0/TUO2) ) ) & * FACF XAF2 = 1.D0 XAF3 = ( ( EXP(0.241D0*(100.D0-DSIU)) ) * & ( 0.1524D-25+(0.50825D-44*TFIS) ) * & ( EXP(-66431.8D0/TUO2) ) ) & * FACF XAF4 = 4.5D0 XAF5 = ( (1.447D-34*TFIS) * (EXP(-3624.D0/TUO2)) ) * FACF XAF6 = 1.D0 C C........Calcul de la vitesse de deformation de fluage et de l'increment C........Pas de terme de gonflement C EC0PT = XAF0 + XAF1 * (QTILD**XAF2) + XAF3 * (QTILD**XAF4) & + XAF5 * (QTILD**XAF6) DECRA(1) = EC0PT * DTIME C DESWA(1) = 0.D0 C C........MAJ des variables internes supplementaires le cas echeant C IF ( LEND.EQ.1 ) THEN STATEV(1) = P STATEV(2) = QTILD ENDIF C C======================================================================= C ILOI = 24 : C Modele 'FLUAGE' 'POLYNOMIAL' de CAST3M, INPLAS=21 C RESTRICTION A LA FORMULATION MASSIVE C Instanciation des composantes de materiau au fur et a mesure des C iterations internes (uniquement les coef. du polynome de la loi C de fluage). C Le modele comprend cette fois des parametres externes. C Les composantes de materiau sont evaluees par les memes fonctions C externes que celles utilisees par l'operateur VARI. C MODELE 'MAQUETTE' C Equivalent au modele ILOI=22 C Variables internes supplementaires 'PSUP' et 'QSUP' C======================================================================= C ELSE IF (K4ILOI.EQ.' 24') THEN C C........Affectation des parametres et evaluation des coefficients C du polynome de la loi de fluage C MAJ des variables internes supplementaires le cas echeant C IF ( LEND.EQ.0 ) THEN C NBPAR = 3 VALPAR(1) = PREDEF(1)-DPRED(1) VALPAR(2) = PREDEF(2)-DPRED(2) VALPAR(3) = PREDEF(3)-DPRED(3) XAF0 = FVAF0(VALPAR,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -24000-IERUT RETURN ENDIF C XAF2 = FVAF2(VALPAR,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -24000-IERUT RETURN ENDIF C XAF4 = FVAF4(VALPAR,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -24000-IERUT RETURN ENDIF C XAF5 = FVAF5(VALPAR,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -24000-IERUT RETURN ENDIF C XAF6 = FVAF6(VALPAR,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -24000-IERUT RETURN ENDIF C NBPAR = 4 VALPAR(4) = PREDEF(4)-DPRED(4) XAF3 = FVAF3(VALPAR,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -24000-IERUT RETURN ENDIF C NBPAR = 5 VALPAR(5) = PREDEF(5)-DPRED(5) XAF1 = FVAF1(VALPAR,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -24000-IERUT RETURN ENDIF C ELSE C NBPAR = 3 XAF0 = FVAF0(PREDEF,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -24000-IERUT RETURN ENDIF C XAF2 = FVAF2(PREDEF,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -24000-IERUT RETURN ENDIF C XAF4 = FVAF4(PREDEF,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -24000-IERUT RETURN ENDIF C XAF5 = FVAF5(PREDEF,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -24000-IERUT RETURN ENDIF C XAF6 = FVAF6(PREDEF,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -24000-IERUT RETURN ENDIF C NBPAR = 4 XAF3 = FVAF3(PREDEF,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -24000-IERUT RETURN ENDIF C NBPAR = 5 XAF1 = FVAF1(PREDEF,NBPAR,IERUT) IF (IERUT.GT.0) THEN KSTEP = -24000-IERUT RETURN ENDIF C STATEV(1) = P STATEV(2) = QTILD C ENDIF C C........Calcul de la vitesse de deformation de fluage et de l'increment C........Pas de terme de gonflement C EC0PT = XAF0 + XAF1 * (QTILD**XAF2) + XAF3 * (QTILD**XAF4) & + XAF5 * (QTILD**XAF6) DECRA(1) = EC0PT * DTIME C DESWA(1) = 0.D0 C C======================================================================= C Modele externe non reconnu C======================================================================= C ELSE C KSTEP = 0 C ENDIF C RETURN END