Download umat04.dgibi

Back to the list

* fichier :  umat04.dgibi
*=======================================================================
*
*      CAS TEST DE VALIDATION DE LA PRISE EN COMPTE D'UNE LOI DE
*
*             COMPORTEMENT MECANIQUE NON LINEAIRE EXTERNE
*
*=======================================================================
*
* Modele 'NON_LINEAIRE' 'UTILISATEUR', integrateur specifique UMAT
*
* Test No4 : Modele VISCOPLASTIQUE GATT_MONERIE
*            Reprise du test gatt_3d.dgibi
*
*=======================================================================




*=======================================================================
*
*                       PROCEDURES DEPENDANTES
*
*=======================================================================




*=======================================================================
*
*                      JEU DE DONNEES PRINCIPAL
*
*=======================================================================

* ===============================
* 0 - Options generales de calcul
* ===============================
opti dime 3 mode tridim ;
opti elem cu20 ;
'OPTI' 'TRAC' 'PSC'                  ;
L = 'MOT' LIST ; F = 'MOT' FIN       ;

GRAPH    = FAUX ;
LISTCOUR = VRAI ;

* ============
* 1 - Maillage
* ============
NA  = 1 ;
NR  = 1 ;
H   = 6.2e-3 ;
D   = 5.e-3 ;
R   = D/2. ;
HS2 = H/2. ;

OO  = 0.0  0.0  0.0 ;
A1  = R    0.0  0.0 ;
A2  = R    0.0  HS2 ;
A3  = 0.0  0.0  HS2 ;

LB  = DROIT NR OO A1 ;
LD  = DROIT NA A1 A2 ;
LH  = DROIT NR A2 A3 ;
LG  = DROIT NA A3 OO ;

SU1 = DALL LB  LD  LH  LG  'PLAN' ;
SU2 = SU1 TOUR 30.0 OO A3 ;
VOL1 = VOLU 1 SU1 SU2 ;
ELIM VOL1 (D/1000.0) ;
VOL1 = REGE VOL1 ;

SUA = POIN (COOR 2 VOL1) 'INFERIEUR' (D/1000.0) ;
SUB = POIN (COOR 3 VOL1) 'INFERIEUR' (D/1000.0) ;
SUH = POIN (COOR 3 VOL1) 'SUPERIEUR' (HS2 - (D/1000.0)) ;
LG = VOL1 'POIN' 'DROIT' OO A3 (D/1000.0) ;

* ========================================================
* 2 - Affectation des parametres de la loi de comportement
* ========================================================
TE1  = 1400.0 + 273.0 ;
PO   = 4.52E-2 ;
DF1  = 1.E18 ;
* --------------------------------------------------------------
* 2.1 - AFFECTATION DES PARAMETRES DE MATERIAU : premiere partie
* --------------------------------------------------------------
* Description du module d'Young
* Degre du polynome
IDEGE = 2 ;
* Coefficient du degre 0, coefficient du degre 1, coefficient du degre 2
LEE = PROG 226930.e+06 -1.5399e+07 -9.3597e+03 ;

* Description du module de cisaillement
* Degre du polynome
IDEGG = 2 ;
* Coefficient du degre 0, coefficient du degre 1, coefficient du degre 2
LGG = PROG 85830.e+06 -5.157e+06 -3.747e+03 ;

* Polynome du coefficient de dilatation thermique Polynome(T)/(T-273)
* pour T < Talpha
* Degre du polynome
IDEGAI = 3 ;
* Coefficient du degre 0, coefficient du degre 1, coefficient du degre 2
* coefficient du degre 3
LALI = PROG -2.66e-03 9.802e-6 -2.705e-10 4.391e-13 ;

* Polynome du coefficient de dilatation thermique Polynome(T)/(T-273)
* pour T > Talpha
* Degre du polynome
IDEGAS = 3 ;
* Coefficient du degre 0, coefficient du degre 1, coefficient du degre 2
* coefficient du degre 3
LALS = PROG -3.28e-03 1.179e-05 -2.429e-09 1.219e-12 ;

* Temperature de transition pour les deux polynomes decrivant
* le coefficient de dilatation thermique (en Kelvin)
TALPHA = 923. ;

* Constructions d'objets a l'aide des donnees precedentes

*-- Liste de temperatures (en Kelvin)
TK = 'PROG' 273.15 'PAS' 10. 2603.15 ;
*-- On insere Talpha dans TK
TK = TK 'ET' ('PROG' TALPHA) ;
TK = 'ORDO' TK ;
NTK = 'DIME' TK ;
L273 = 'PROG' NTK * 273.;

*-- Construction des ordonnees : partie temperature
OEET = 'PROG' NTK*('EXTR' LEE 1) ;
'SI' ('>' ('DIME' LEE) 1) ;
  'REPE' BLOC (('DIME' LEE) - 1) ;
    OEET = OEET + (('EXTR' LEE (&BLOC+1))*(TK**(&BLOC)));
  'FIN' BLOC ;
'FINS' ;
'MESS'
  'sur la plage de temperatures' ('MINI' TK) '< T(K) <' ('MAXI' TK) ;
'MESS' 'et pour une porosite nulle' ;
MIOEET = 'MINI' OEET ;
MAOEET = 'MAXI' OEET ;
'MESS' 'module d Young            compris entre' MIOEET 'et' MAOEET ;
'SI' ('<EG' MIOEET 0) ;
  'MESS' 'ERREUR : module d Young negatif ou nul !' ;
  'FIN' ;
'FINS' ;

OGGT = 'PROG' NTK*('EXTR' LGG 1) ;
'SI' ('>' (DIME LGG) 1) ;
  'REPE' BLOC (('DIME' LGG) - 1) ;
    OGGT = OGGT + (('EXTR' LGG (&BLOC+1))*(TK**(&BLOC)));
  'FIN' BLOC ;
'FINS' ;
MIOGGT = 'MINI' OGGT ;
MAOGGT = 'MAXI' OGGT ;
'MESS' 'module de cisaillement    compris entre' MIOGGT 'et' MAOGGT ;
'SI' ('<EG' MIOGGT 0) ;
  'MESS' 'ERREUR : module de cisaillement negatif ou nul !' ;
  'FIN' ;
'FINS' ;

OALIT = 'PROG' NTK*('EXTR' LALI 1) ;
'SI' ('>' (DIME LALI) 1) ;
  'REPE' BLOC (('DIME' LALI) - 1) ;
    OALIT = OALIT + (('EXTR' LALI (&BLOC+1))*(TK**(&BLOC)));
  'FIN' BLOC ;
  OALIT = OALIT / (TK - L273);
'FINS' ;
*
OALST = 'PROG' NTK*('EXTR' LALS 1) ;
'SI' ('>' (DIME LALS) 1) ;
  'REPE' BLOC (('DIME' LALS) - 1) ;
    OALST = OALST + (('EXTR' LALS (&BLOC+1))*(TK**(&BLOC)));
  'FIN' BLOC ;
  OALST = OALST / (TK - L273);
'FINS' ;
*
ALTI = IPOL TALPHA TK OALIT ;
ALTS = IPOL TALPHA TK OALST ;
*
NTKI = TK 'MASQ' 'INFERIEUR' TALPHA 'SOMM' ;
OALIT = 'EXTR' OALIT ('LECT' 1 'PAS' 1 NTKI) ;
OALST = 'EXTR' OALST ('LECT' (NTKI+1) 'PAS' 1 NTK) ;
OALT = OALIT 'ET' OALST ;
*
* On tronque ALPHA_moy en dessous de 293K
NT293 = TK 'MASQ' 'INFERIEUR' 293. 'SOMM';
XEALTT = 'EXTR' TK ('LECT' (NT293+1) 'PAS' 1 NTK) ;
YEALTT = 'EXTR' OALT ('LECT' (NT293+1) 'PAS' 1 NTK) ;
* On remplace la partie enlevée par une IPOL entre
* ALPHA_moy(T=0) et ALPHA_moy(T=293)
AL0 = ('EXTR' LALI 1) / (0. - 273);
AL293 =  (('EXTR' LALI 1) +
         (('EXTR' LALI 2)*293.) +
         (('EXTR' LALI 3)*293.*293.) +
         (('EXTR' LALI 4)*293.*293.*293.)) / (293. - 273.);
XEALTN = (PROG 0. 293.) ET XEALTT;
YEALTN = (PROG AL0 AL293) ET YEALTT;
*
MIOALT = 'MINI' YEALTN ;
MAOALT = 'MAXI' YEALTN ;
'MESS' 'coefficient de dilatation compris entre' MIOALT 'et' MAOALT ;
'SI' ('<' MIOALT 0) ;
  'MESS' 'ERREUR : coefficient de dilatation negatif !' ;
'FINS' ;
*
ERRALT=100.*(ALTS-ALTI)/ ALTS ;
'SI' ('>' ERRALT 1.D-02) ;
  'MESS' 'ATTENTION : a la temperature de transition :' TALPHA 'K' ;
  'MESS' 'les deux valeurs du coefficient de dilatation thermique' ;
  'MESS' 'different de' ERRALT '%' ALTI ALTS ;
'FINS' ;
*
*-- Construction des evolutions obtenues pour une porosite nulle
EEET = 'EVOL' 'MANU' 'T' TK     'YOUN'  OEET   ;
EGGT = 'EVOL' 'MANU' 'T' TK     'G'     OGGT   ;
EALT = 'EVOL' 'MANU' 'T' XEALTN 'ALPH'  YEALTN ;
* --------------------------------------------------------------
* 2.2 - AFFECTATION DES PARAMETRES DE MATERIAU : deuxieme partie
* --------------------------------------------------------------
PORY = 2.5 ;
PORG = 2.25 ;
PORA = 1. ;

* Constructions d'objets a l'aide des donnees precedentes

*-- Liste de porosites ( )
PP = 'PROG' 0. 'PAS' 0.001 0.3 ;
NPP = 'DIME' PP ;

*-- Construction des ordonnees : partie porosite
OEEP = ('PROG' NPP*1.) - (PORY*PP) ;
MIOEEP = 'MINI' OEEP ;
'SI' ('<EG' MIOEEP 0) ;
  'MESS' 'ATTENTION !' ;
  'MESS' 'sur la plage de porosite :' ('MINI' PP) '< P <' ('MAXI' PP) ;
  'MESS ' 'module d Young negatif ou nul !' ;
'FINS' ;

OGGP = ('PROG' NPP*1.) - (PORG*PP) ;
MIOGGP = 'MINI' OGGP ;
'SI' ('<EG' MIOGGP 0) ;
  'MESS' 'ATTENTION !' ;
  'MESS' 'sur la plage de porosite :' ('MINI' PP) '< P <' ('MAXI' PP) ;
  'MESS ' 'module de cisaillement negatif ou nul !' ;
'FINS' ;

OALP = ('PROG' NPP*1.) - (PORA*PP) ;
MIOALP = 'MINI' OALP ;
'SI' ('<EG' MIOALP 0) ;
  'MESS' 'ATTENTION !' ;
  'MESS' 'sur la plage de porosite :' ('MINI' PP) '< P <' ('MAXI' PP) ;
  'MESS ' 'coefficient de dilatation negatif ou nul !' ;
'FINS' ;

*-- Construction des nuages
PP1 = 'EXTR' PP 1 ;

EE = 'NUAG' 'PORO'*'FLOTTANT' 'YOUN'*'EVOLUTION'
            ('EXTR' PP 1)     (EEET*('EXTR' OEEP 1)) ;
'REPE' BLOC (NPP-1) ;
  EEI = 'NUAG' 'PORO'*'FLOTTANT'     'YOUN'*'EVOLUTION'
               ('EXTR' PP (&BLOC+1)) (EEET*('EXTR' OEEP (&BLOC+1))) ;
  EE = EE 'ET' EEI ;
'FIN' BLOC ;

ETT1 = 'EVOL' 'MANU' 'T' TK 'NU' ('PROG' ('DIME'TK)*1.) ;
NU = 'NUAG' 'PORO'*'FLOTTANT' 'NU'*'EVOLUTION'
            ('EXTR' PP 1)
        ((-1.*ETT1)+(0.5*EEET*('EXTR' OEEP 1)/(EGGT*('EXTR' OGGP 1)))) ;
'REPE' BLOC (NPP-1) ;
  NUI = 'NUAG' 'PORO'*'FLOTTANT'     'NU'*'EVOLUTION'
               ('EXTR' PP (&BLOC+1))
        ((-1.*ETT1)+(0.5*(EEET*('EXTR' OEEP (&BLOC+1)))/
          (EGGT*('EXTR' OGGP (&BLOC+1))))) ;
  NU = NU 'ET' NUI ;
'FIN' BLOC ;

AL = 'NUAG' 'PORO'*'FLOTTANT' 'ALPH'*'EVOLUTION'
            ('EXTR' PP 1)     (EALT*('EXTR' OALP 1)) ;
'REPE' BLOC (NPP-1) ;
  ALI = 'NUAG' 'PORO'*'FLOTTANT'     'ALPH'*'EVOLUTION'
               ('EXTR' PP (&BLOC+1)) (EALT*('EXTR' OALP (&BLOC+1))) ;
  AL = AL 'ET' ALI ;
'FIN' BLOC ;

*-- Construction de la table contenant les informations
TA = 'TABL' ;
TA . 'YOUN' = EE ;
TA . 'NU'   = NU ;
TA . 'ALPH' = AL ;
* ---------------------------------------------------------------
* 2.3 - AFFECTATION DES PARAMETRES DE MATERIAU : troisieme partie
* ---------------------------------------------------------------
  LCOMP = 'MOTS'  'RHO'   'R'     'DG0'   'DG'    'DGCR'
                  'K0'    'EXKP'  'KPAF'  'AP'    'BP'  'QP'
                  'K1'    'M1'    'Q1'    'N1'    'K2'  'M2'  'Q2'  'N2'
                  'OMEG'  'OMCR'  'Q'     'H'     'BETA'
                  'DYN1'  'DYCR'  'DYN2'  'DYN3'
                  'K'     'A'     'Q3'    'N3'
                  'ADEN'  'KGON'  'POR0'  'BUMI'  'EFIS'
                  'CR1'   'CR2'   'CR3'   'CR';

LDONN = 'PROG' 10950.    8.314   7e-6   8.2e-6 56e-6
   1e-9      3.48     1.8e-27  4.277    1.212    500000.
7.42e-14       -2.     377000.    1.    1.e-43    2.  462000. 8.
 47350.4    47350.     0.189    600.    1.
2.06e-11    50000.      1615.    40.
2.44e-19  5.19e-36      8000.     1.
               -0.21e-02 7.75463e-15 4.52e-02 1.728e9 3.2e-11
               400. 0.094E-2 0.01E-2 0.   ;

'REPE' BLOC ('DIME' LCOMP) ;
  XX = 'EXTR' LDONN &BLOC ;
  MOTI = 'EXTR' LCOMP &BLOC ;
  TA . MOTI = XX ;
'FIN' BLOC ;
*
*-- Calcul de KP pour fluage primaire UO2
 TA.'KPUO' = TA.'K0' * (TA.'DG' ** TA.'EXKP') ;
* fluage primaire rendu significatif pour UO2 standard
 TA.'KPUO'   = 1E3 * TA.'KPUO' ;

* ==================================================================
* 3 - Definition du modele et affectation des proprietes de materiau
* ==================================================================
LCMAT07 = 'MOTS' 'YOUN' 'NU  ' 'RHO ' 'ALPH'
 'R   '   'DG  '
 'K1  '   'M1  '   'Q1  '   'N1  '   'K2  '   'M2  '   'Q2  '   'N2  '
 'OMEG'   'Q   '   'H   '   'BETA'   'K   '   'A   '   'Q3  '   'N3  '
 'ADEN'   'KGON'   'POR0'   'BUMI'   'EFIS'   'DG0 '
 'CR1 '   'CR2 '   'CR3 '   'CR  '   'KP  '   'AP  '   'BP  '   'QP  '
 'VISQ'   'TYPE'   'COMP'   'DYN ' ;

* MODIF
* Correction 25/11/2003
* Coherence Gibiane umat04.dgibi avec Esope umagat.eso :
* 6 variables internes supplementaires correspondant aux composantes du
* tenseur de deformations inelastiques

************** LCVAR07 = MOTS 'EPSE' 'PORO' 'BU  ' 'TETA' 'EPSD' 'EPSG' ;
LCVAR07 = MOTS 'EPSE' 'PORO' 'BU  ' 'TETA' 'EPSD' 'EPSG'
               'ENXX' 'ENYY' 'ENZZ' 'GNXY' 'GNXZ' 'GNYZ' ;

* MODIF

LCPAR07 = MOTS 'T   ' 'DFIS' ;

mo_util = MODE VOL1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
                    'NON_LINEAIRE' 'UTILISATEUR'
                    'NUME_LOI' 7 'C_MATERIAU' LCMAT07
                    'C_VARINTER' LCVAR07 'PARA_LOI' LCPAR07 ;

MATREE_u = MATE mo_util 'YOUN' (TA.'YOUN') ;
PP_u = MANU 'CHML' mo_util 'T   ' TE1 'PORO' PO 'RIGIDITE' ;
EE_u = VARI 'NUAG' mo_util MATREE_u PP_u ;

MATR11_u = MATE mo_util 'YOUN' EE_u    'NU  ' 0.3
                        'RHO ' 10950.0 'ALPH' 0.0 ;

MATR12_u = MATE mo_util 'R   '  (TA.'R' )     'DG  '  (TA.'DG') ;

MATR13_u = MATE mo_util 'K1  '  (TA.'K1')     'M1  '  (TA.'M1')
                        'Q1  '  (TA.'Q1')     'N1  '  (TA.'N1')
                        'K2  '  (TA.'K2')     'M2  '  (TA.'M2')
                        'Q2  '  (TA.'Q2')     'N2  '  (TA.'N2') ;

MATR14_u = MATE mo_util 'OMEG'  (TA.'OMEG')   'Q   '  (TA.'Q')
                        'H   '  (TA.'H')      'BETA'  (TA.'BETA')
                        'K   '  (TA.'K')      'A   '  (TA.'A')
                        'Q3  '  (TA.'Q3')     'N3  '  (TA.'N3')  ;

MATR15_u = MATE mo_util 'ADEN'  (TA.'ADEN')   'KGON'  (TA.'KGON')
                        'POR0'  (TA.'POR0')   'BUMI'  (TA.'BUMI')
                        'EFIS'  (TA.'EFIS')                      ;

MATR16_u = MATE mo_util 'DG0 '  (TA.'DG0')
                        'CR1 '  (TA.'CR1')    'CR2 '  (TA.'CR2')
                        'CR3 '  (TA.'CR3')    'CR  '  (TA.'CR')  ;

MATR17_u = MATE mo_util 'KP  '  (TA.'KPUO')   'AP  '  (TA.'AP')
                        'BP  '  (TA.'BP')     'QP  '  (TA.'QP')
'VISQ' 0.  'TYPE'  0.   'COMP'  0.            'DYN '  0.         ;

* TYPE = 0. combustible UO2            sinon combustible AFA3GLAA
* COMP = 0. combustible compressible   sinon incompressible
* DYN  = 0. couplage statique          sinon dynamique

MATR1_u = MATR11_u ET MATR12_u ET MATR13_u ET MATR14_u ET MATR15_u ET
          MATR16_u ET MATR17_u ;

* ========================================================
* 4 - Definition des conditions aux limites et chargements
* ========================================================
CLZB = 'BLOQ' UZ SUB ;
CLZH = 'BLOQ' UZ SUH ;
CLXG = 'BLOQ' UX LG ;
CLYG = 'BLOQ' UY SUA ;
CLT  = CLZB 'ET' CLZH 'ET' CLXG 'ET' CLYG ;

TMIL = 1.E6 ;
TFIN = 2.E6 ;
*
RHO0 = 1.0 - TA.'POR0' ;
AKBU = TA.'EFIS'*270./238./10950./RHO0*DF1 ;
* CE QUI SUIT EST VRAI CAR LE FLUX DE FISSIONS EST CONSTANT
TBU = (TA.'BUMI' / AKBU) - 1. ;
TTBU = ('ENTI' (TBU/10000.)) * 10000. ;
*------------------------
* 4.1 - Instants calcules
*------------------------
'SI' LISTCOUR ;
*--------------
LIST1 = 'PROG' 0   'PAS' 50  300  'PAS' 100  1000 'PAS' 1000  10000
                   'PAS' 10000. TTBU
                   TBU (TTBU+10000.) (TTBU+20000.)
                   'PAS' 10000. TMIL ;
'SINON' ;
*--------
LIST1 = 'PROG' 0   'PAS' 50  300  'PAS' 100  1000 'PAS' 1000  10000
                   'PAS' 10000. TTBU
                   TBU (TTBU+10000.) (TTBU+20000.)
                   'PAS' 10000. TMIL
                   'PAS' 100. (TMIL + ((TFIN - TMIL) / 200.))
                   'PAS' 1000. (TMIL + ((TFIN - TMIL) / 20.))
                   'PAS' 2000. (TMIL + ((TFIN - TMIL) / 4.))
                   'PAS' 10000. TFIN ;
'FINSI' ;
*--------
* -------------------------------
* 4.2 - Chargement en temperature
* -------------------------------
CHTEMP = 'MANU' 'CHPO' VOL1 1 'T' 1.     ;
EVT = 'EVOL' 'MANU' ('PROG' 0.  (2.*TFIN))
                    ('PROG' TE1 TE1) ;
CHARTEMP = 'CHAR' 'T' CHTEMP EVT        ;
* --------------------------------------
* 4.3 - Chargement en densite de fission
* --------------------------------------
CHFISS = 'MANU' 'CHPO' VOL1 1 'DFIS' 1.     ;
EVF = 'EVOL' 'MANU' ('PROG' 0.  (2.*TFIN))
                    ('PROG' DF1 DF1) ;
CHARFISS = 'CHAR' 'DFIS' CHFISS EVF      ;
* --------------------------------------
* 4.4 - Chargement en deplacement impose
* --------------------------------------
DEPZ = 'DEPI' CLZH 1 ;
DELTAZ = HS2/200. ;
EVEPS = 'EVOL' 'MANU'
   ('PROG' 0. TMIL   TFIN (2.*TFIN))
   ('PROG' 0. DELTAZ 0.    0.) ;
CHARMECA = 'CHAR' 'DIMP' DEPZ EVEPS ;
*
CHARTOT  = CHARMECA 'ET' CHARTEMP 'ET' CHARFISS ;

* =========================================
* 5 - Initialisation des variables internes
* =========================================
VAR00_u = ZERO mo_util 'VARINTER' ;
VAR01_u = MANU 'CHML' mo_util 'PORO' PO
                              'TYPE' 'VARIABLES INTERNES' 'STRESSES' ;
VAR0_u  = VAR00_u + VAR01_u ;

* ==========================
* 6 - Resolution par PASAPAS
* ==========================
TABU = TABLE                           ;
TABU.'MODELE' = mo_util                ;
TABU.'CARACTERISTIQUES' = MATR1_u      ;
TABU.'BLOCAGES_MECANIQUES' = CLT       ;
TABU.'CHARGEMENT' = CHARTOT            ;
TABU.'VARIABLES_INTERNES'= TABLE       ;
TABU.'VARIABLES_INTERNES' . 0 = VAR0_u ;
TABU.'TEMPS_CALCULES' = LIST1          ;
TABU.'TEMPS_SAUVES'   = LIST1          ;
*
TMASAU                   = TABLE       ;
TABU . 'MES_SAUVEGARDES' = TMASAU      ;
TMASAU .'DEFTO' = VRAI                 ;
TMASAU .'DEFIN' = VRAI                 ;
*
TEMPS 'ZERO' ;
PASAPAS TABU ;
*
CPUext = TEMPS 'NOEC' ;

* ================================================
* 7 - Post-traitement : verification des resultats
* ================================================
AP    = TA.'AP'        ;
BP    = TA.'BP'        ;
N1    = TA.'N1'        ;
N2    = TA.'N2'        ;

* Facteurs multiplicatifs dus au dopage par le Chrome
WC1 = 'TANH' ( (TA.'CR' - TA.'CR2') / TA.'CR3' ) ;
WC1 = 1. + ( 0.5 * TA.'CR1' * (1. + WC1) )       ;
CV  = 180. / PI                                  ;
WC2 = 1. - ( 'COS' (CV * TA.'DG' / TA.'DG0') )   ;
WC2 = 2. * (TA.'DG0'**TA.'M2') * WC2             ;

BUMI = TA.'BUMI' ;
AKEVD = AKBU*TA.'KGON' ;
ADEN = TA.'ADEN' ;
KGON = TA.'KGON' ;
* --------------------------------------------------------------
* 7.1 - Calcul de la cte AAAA pour le calcul de la def. de dens.
* --------------------------------------------------------------
BUMAX0=60.D0*BUMI ;
CRIT=1.D-10 ;
'REPE' BLOC 100 ;
  BUMAX = BUMI* ('EXP' (1. - (ADEN/(KGON*BUMAX0)))) ;
  BUMAX = (0.2*BUMAX) + (0.8*BUMAX0) ;
  TEST='ABS' ((BUMAX-BUMAX0)/BUMAX0) ;
  'SI' ('<' TEST CRIT) ;
    'QUIT' BLOC ;
  'FINS' ;
  BUMAX0=BUMAX ;
'FIN' BLOC ;
AAAA = (-1.D0*RHO0*(ADEN-(KGON*BUMAX))) /
                ((1.D0+ADEN)*(LOG(BUMAX/BUMI)))  ;
*
* ----------------------------
* 7.2 - Controle des resultats
* ----------------------------
SS_u  = TABU . 'CONTRAINTES'                ;
VV_u  = TABU . 'VARIABLES_INTERNES'         ;
IN_u  = TABU . 'DEFORMATIONS_INELASTIQUES'  ;
NCONT = ('DIME' (TABU . 'CONTRAINTES')) - 1 ;
*
T1     = 0.        ;
SMZZ1  = 0.        ;
FF1    = TA.'POR0' ;
ERMAX1 = 0.        ;
ERMAX2 = 0.        ;
*
LTT_u    = PROG ;
LDFF_u   = PROG ;
LEVFF_u  = PROG ;
LEVP3_u  = PROG ;
LEVTH_u  = PROG ;
LEVCALCu = PROG ;
LSMZZ_u  = PROG ;
*
'REPE' BLOC_u NCONT ;
*
* -------------------------------------
* VITESSE DE DEFORMATION THEORIQUE EVTH
* -------------------------------------
  T2   = 'EXTR' (TABU.'TEMPS_SAUVES') (&BLOC_u + 1);
  EVTH = DELTAZ / HS2 / TMIL                       ;
  'SI' (> T2 (TMIL+0.1))                           ;
    EVTH = -1. * DELTAZ / HS2 / (TFIN - TMIL)      ;
  'FINS'                                           ;
* ----------------------------------------------------
* SMZZ EST PREPONDERANTE DEVANT LES AUTRES CONTRAINTES
* ----------------------------------------------------
  SMZZ = 'MAXI' ('EXCO' (SS_u . &BLOC_u) 'SMZZ') ;
  SSM = SMZZ / 3. ;
  SSEQ = 'ABS' SMZZ ;
  SSPRIM1 = -1. * SMZZ / 3 ;
  SSPRIM2 = -1. * SMZZ / 3 ;
  SSPRIM3 =  2. * SMZZ / 3 ;
* ---------------------------------------------
* DEFORMATION VISCO-PLASTIQUE EQUIVALENTE EVPEQ
* ---------------------------------------------
  EVXX  = 'MAXI' ('EXCO' VV_u.&BLOC_u 'ENXX')                       ;
  EVYY  = 'MAXI' ('EXCO' VV_u.&BLOC_u 'ENYY')                       ;
  EVZZ  = 'MAXI' ('EXCO' VV_u.&BLOC_u 'ENZZ')                       ;
  EVH   = (EVXX+EVYY+EVZZ) / 3.                                     ;
  EVPEQ = ((EVXX - EVH)**2) + ((EVYY - EVH)**2) + ((EVZZ - EVH)**2) ;
  EVPEQ = ((2./3.) * EVPEQ)**0.5                                    ;
* ------------------------------------------
* VITESSE DE DEFORMATION VISCO-PLASTIQUE EVP
* ------------------------------------------
*-- fluage primaire
*
'SI' ('<' EVPEQ 1E-10) ; EVPEQ = 1E-10 ; 'FINSI' ;
*
  EVP01 = 1.5 * TA.'KPUO' *
  ('EXP' (-1.*TA.'QP'/(TA.'R'*TE1))) *
  ( (SSEQ**(AP-1)) / (EVPEQ**BP) ) * SSPRIM1 ;
*
  EVP02 = 1.5 * TA.'KPUO' *
  ('EXP' (-1.*TA.'QP'/(TA.'R'*TE1))) *
  ( (SSEQ**(AP-1)) / (EVPEQ**BP) ) * SSPRIM2 ;
*
  EVP03 = 1.5 * TA.'KPUO' *
  ('EXP' (-1.*TA.'QP'/(TA.'R'*TE1))) *
  ( (SSEQ**(AP-1)) / (EVPEQ**BP) ) * SSPRIM3 ;
*
*-- fluage secondaire (2 mecanismes)
*
  PP = 'MAXI' ('EXCO' VV_u . &BLOC_u 'PORO') ;

  A1  = (N1* (PP**(-1./N1) - 1.)**(-2.*N1/(N1+1.)))      ;
  B1  = (1. + (2.*PP/3.))/ ((1. - PP) **(2.*N1/(N1+1.))) ;
  AB1 = (9. * A1) / ( (4.*B1) + A1 )                     ;
  BA1 = B1 / ( B1 + (A1/4.) )                            ;
*
  GSSEQ = ((BA1 * (SSEQ**2)) + (AB1 * (SSM**2))) ** 0.5  ;

  A2 = (N2* (PP**(-1./N2) - 1.)**(-2.*N2/(N2+1.)))       ;
  B2 = (1. + (2.*PP/3.))/ ((1. - PP) **(2.*N2/(N2+1.)))  ;
*
  EVP11 = 0.5 * (TA.'K1' * (TA.'DG'**TA.'M1') * WC1 *
  ('EXP' (-1.*TA.'Q1'/(TA.'R'*TE1))) *
  (((A1*((1.5*SSM)**2)) + (B1*(SSEQ ** 2)))**((N1-1.)/2.)) *
  ((A1*1.5*SSM) + (3.*B1*SSPRIM1))) ;
*
  EVP21 = 0.5 * (TA.'K2' * WC2 * ('EXP' (-1.*TA.'Q2'/(TA.'R'*TE1))) *
  (((A2*((1.5*SSM)**2)) + (B2*(SSEQ ** 2)))**((N2-1.)/2.)) *
  ((A2*1.5*SSM) + (3.*B2*SSPRIM1))) ;
*
  EVP12 = 0.5 * (TA.'K1' * (TA.'DG'**TA.'M1') * WC1 *
  ('EXP' (-1.*TA.'Q1'/(TA.'R'*TE1))) *
  (((A1*((1.5*SSM)**2)) + (B1*(SSEQ ** 2)))**((N1-1.)/2.)) *
  ((A1*1.5*SSM) + (3.*B1*SSPRIM2))) ;
*
  EVP22 = 0.5 * (TA.'K2' * WC2 * ('EXP' (-1.*TA.'Q2'/(TA.'R'*TE1))) *
  (((A2*((1.5*SSM)**2)) + (B2*(SSEQ ** 2)))**((N2-1.)/2.)) *
  ((A2*1.5*SSM) + (3.*B2*SSPRIM2))) ;
*
  EVP13 = 0.5 * (TA.'K1' * (TA.'DG'**TA.'M1') * WC1 *
  ('EXP' (-1.*TA.'Q1'/(TA.'R'*TE1))) *
  (((A1*((1.5*SSM)**2)) + (B1*(SSEQ ** 2)))**((N1-1.)/2.)) *
  ((A1*1.5*SSM) + (3.*B1*SSPRIM3))) ;
*
  EVP23 = 0.5 * (TA.'K2' * WC2 * ('EXP' (-1.*TA.'Q2'/(TA.'R'*TE1))) *
  (((A2*((1.5*SSM)**2)) + (B2*(SSEQ ** 2)))**((N2-1.)/2.)) *
  ((A2*1.5*SSM) + (3.*B2*SSPRIM3))) ;
*
  PSI1 = TA.'K1' * WC1 * (TA.'DG'**TA.'M1')/(N1+1.) *
  ('EXP' (-1.*TA.'Q1'/(TA.'R'*TE1))) *
  (((A1*((1.5*SSM)**2)) + (B1*(SSEQ ** 2)))**((N1+1.)/2.)) ;
*
  PSI2 = TA.'K2' * WC2/(N2+1.) * ('EXP' (-1.*TA.'Q2'/(TA.'R'*TE1))) *
  (((A2*((1.5*SSM)**2)) + (B2*(SSEQ ** 2)))**((N2+1.)/2.)) ;
*
  EVPC1 = 0.5 * TA.'BETA' / TA.'H' * TA.'Q' * TA.'OMEG' *
  (GSSEQ**(-1.*TA.'Q' - 2.)) *
      (1. -
  (('TANH' ((TE1 - (TA.'OMEG' * (GSSEQ**(-1.*TA.'Q'))))  / TA.'H'))**2))
   * (PSI2 - PSI1) * ( ((AB1*SSM)/3.) +  (1.5*BA1*SSPRIM1) ) ;
*
  EVPC2 = 0.5 * TA.'BETA' / TA.'H' * TA.'Q' * TA.'OMEG' *
  (GSSEQ**(-1.*TA.'Q' - 2.)) *
      (1. -
  (('TANH' ((TE1 - (TA.'OMEG' * (GSSEQ**(-1.*TA.'Q'))))  / TA.'H'))**2))
   * (PSI2 - PSI1) * ( ((AB1*SSM)/3.) +  (1.5*BA1*SSPRIM2) ) ;
*
  EVPC3 = 0.5 * TA.'BETA' / TA.'H' * TA.'Q' * TA.'OMEG' *
  (GSSEQ**(-1.*TA.'Q' - 2.)) *
      (1. -
  (('TANH' ((TE1 - (TA.'OMEG' * (GSSEQ**(-1.*TA.'Q'))))  / TA.'H'))**2))
   * (PSI2 - PSI1) * ( ((AB1*SSM)/3.) +  (1.5*BA1*SSPRIM3) ) ;
*
  TETA = 0.5 * TA.'BETA' *
      (1. +
      ('TANH' ((TE1 - (TA.'OMEG' * (GSSEQ**(-1.*TA.'Q')))) / TA.'H'))) ;
*
  EVP1 = EVP01 + ((1. - TETA) * EVP11) + (TETA * EVP21) + EVPC1 ;
  EVP2 = EVP02 + ((1. - TETA) * EVP12) + (TETA * EVP22) + EVPC2 ;
  EVP3 = EVP03 + ((1. - TETA) * EVP13) + (TETA * EVP23) + EVPC3 ;
* -------------------------------------
* VITESSE DE DEFORMATION ELASTIQUE EVEL
* -------------------------------------
  DSMZZ = (SMZZ - SMZZ1) / (T2 - T1) ;
  EVEL  = DSMZZ / ('MAXI' EE_u)      ;
* ----------------------------------
* VITESSE DE DEFORMATION IRRADIATION
* ----------------------------------
  EVIR1 = 1.5 * TA.'A' * DF1 * (SSEQ **(TA.'N3' - 1.)) *
       ('EXP' (-1.*TA.'Q3'/(TA.'R'*TE1))) * SSPRIM1 ;
  EVIR2 = 1.5 * TA.'A' * DF1 * (SSEQ **(TA.'N3' - 1.)) *
       ('EXP' (-1.*TA.'Q3'/(TA.'R'*TE1))) * SSPRIM2 ;
  EVIR3 = 1.5 * TA.'A' * DF1 * (SSEQ **(TA.'N3' - 1.)) *
       ('EXP' (-1.*TA.'Q3'/(TA.'R'*TE1))) * SSPRIM3 ;
* ------------------------------------
* VITESSE DE DEFORMATION DENSIFICATION
* ------------------------------------
* CE QUI SUIT EST VRAI CAR LE FLUX DE FISSIONS EST CONSTANT
  BU = AKBU * T2 ;
  'SI' (BU '>' BUMI) ;
    NUMER = (RHO0 * RHO0 * AKEVD) - (RHO0 * AAAA * AKEVD) +
            (RHO0 * AAAA * AKEVD * ('LOG' (BU / BUMI))) -
            (RHO0 * AAAA / T2) ;
    DENOM = (RHO0 + (AAAA * ('LOG' (BU / BUMI)))) *
            (RHO0 + (AAAA * ('LOG' (BU / BUMI)))) ;
    EVD = -1. * (AKEVD - (NUMER/DENOM)) / 3. ;
  'SINO' ;
    EVD = 0. ;
  'FINS' ;
* ---------------------------------
* VITESSE DE DEFORMATION GONFLEMENT
* ---------------------------------
* CE QUI SUIT EST VRAI CAR LE FLUX DE FISSIONS EST CONSTANT
  EVG = AKEVD/3. ;
* -------------------------------
* VITESSE DE DEFORMATION SELON ZZ
* -------------------------------
  EVCALC = ((1.+(TA.'K'*DF1))*EVP3) + EVEL + EVIR3 +
                       EVD + EVG ;
  ECART1 = (EVCALC - EVTH) / EVTH ;
  ERMAX1 = 'MAXI' ('PROG' ('ABS' ECART1) ERMAX1) ;
* -------------------
* VITESSE DE POROSITE
* -------------------
  FF = 'MAXI' ('EXCO' (VV_u . &BLOC_u) 'PORO') ;
  DFF = (FF - FF1) / (T2 - T1) ;
  EVFF = (3.*EVD) +
         ((1. - FF) * (1.+(TA.'K'*DF1))*(EVP1+EVP2+EVP3)) +
         ((1. - FF) * (EVIR1 + EVIR2 + EVIR3)) ;
  ECART2 = ('ABS' (DFF - EVFF)) / FF ;
  ERMAX2 = 'MAXI' ('PROG' ('ABS' ECART2) ERMAX2) ;

  LTT_u = LTT_u 'ET' ('PROG' T2) ;
  LEVP3_u = LEVP3_u 'ET' ('PROG' EVP3) ;
  LEVCALCu = LEVCALCu 'ET' ('PROG' EVCALC) ;
  LEVTH_u = LEVTH_u 'ET' ('PROG' EVTH) ;
  LDFF_u = LDFF_u 'ET' ('PROG' DFF) ;
  LEVFF_u = LEVFF_u 'ET' ('PROG' EVFF) ;
  LSMZZ_u   = LSMZZ_u   'ET' ('PROG' SMZZ)   ;


  FF1   = FF ;
  SMZZ1 = SMZZ ;
  T1 = T2 ;

'FIN' BLOC_u ;

Message 'CPU avec modele externe = ' CPUext 'centiemes de seconde' ;

'SI' ( ERMAX1 '<EG' 0.05 );
   'ERRE' 0;
'SINO';
   'MESS' 'ERREUR MAXIMALE VITESSE DEFORMATION :'
           ERMAX1 '> 0.05 ' ;
   'ERRE' 5;
'FINS';

'SI' ( ERMAX2 '<EG' 0.05 );
   'ERRE' 0;
'SINO';
   'MESS' 'ERREUR MAXIMALE POROSITE :'
           ERMAX2 '> 0.05 ' ;
   'ERRE' 5;
'FINS';

*-----------------------------------------------------------------------
* 8 - Post-traitement : visualisations graphiques si demandees

'SI' GRAPH ;

  'TITR' 'Tridimensionnel : Vitesses de Deformation'         ;
  EVEVP_u  = 'EVOL' 'MANU' LTT_u 'Temps'  LEVP3_u  'Vitesse' ;
  EVEVC_u  = 'EVOL' 'MANU' LTT_u 'Temps'  LEVCALCu 'Vitesse' ;
  EVEVTH_u = 'EVOL' 'MANU' LTT_u 'Temps'  LEVTH_u  'Vitesse' ;
  TAD_u = TABLE                                              ;
  TAD_u . 1 = 'TIRC'                                         ;
  TAD_u . 3 = 'TIRR'                                         ;
  TAD_u . 'TITRE' = TABLE                                    ;
  TAD_u . 'TITRE' . 1 = 'Viscoplastique Analytique'          ;
  TAD_u . 'TITRE' . 2 = 'Totale Calculee'                    ;
  TAD_u . 'TITRE' . 3 = 'Totale Analytique'                  ;
  'DESS' (EVEVP_u 'ET' EVEVC_u 'ET' EVEVTH_u) TAD_u 'LEGE'   ;
*
  'TITR' 'Tridimensionnel : Vitesses de variation de la porosite' ;
  EVDFF_u  = 'EVOL' 'MANU' LTT_u 'Temps' LDFF_u  'Vitesse'        ;
  EVEVFF_u = 'EVOL' 'MANU' LTT_u 'Temps' LEVFF_u 'Vitesse'        ;
  TAF_u = TABLE                                                   ;
  TAF_u . 2 = 'TIRR'                                              ;
  TAF_u . 'TITRE' = TABLE                                         ;
  TAF_u . 'TITRE' . 1 = 'Calculee'                                ;
  TAF_u . 'TITRE' . 2 =  'Analytique'                             ;
  'DESS' (EVDFF_u 'ET' EVEVFF_u) TAF_u 'LEGE'                     ;
*
  'TITR' 'Tridimensionnel : Contrainte'                         ;
  EVSMZZ_u = 'EVOL' 'MANU' LTT_u 'Temps'  LSMZZ_u 'Contrainte'  ;
  'DESS' EVSMZZ_u                                               ;
'FINS' ;
'FINS' ;

FIN ;




 

© Cast3M 2003 - All rights reserved.
Disclaimer