Description Of The Mechanical Behaviour Interface To The Abaqus Solver .

Transcription

Description of the mechanical behaviour interface to the AbaqussolverT. Helfer, Kulbir SinghSOMMAIRE1 U SAGE OF LIBRARIES GENERATED USING MF RONT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1.12A GENERIC umat SUBROUTINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21.1.1Setting the compiler flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21.2N AME OF THE BEHAVIOUR IN THE A BAQUS INPUT FILE . . . . . . . . . . . . . . . . . . . . . . . . . . .31.3N OTE ON LIBRARIES LOCATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31.3.1Under Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31.3.2Under Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 D ESCRIPTION OF THE INTERFACE FUNCTIONALITIES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42.1S UPPORTED MODELLING HYPOTHESIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42.2S ETTING THE OUT- OF - BOUNDS POLICY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42.3S ETTING PARAMETERS VALUES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43 T EST CASES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43.1U NIT TESTS IN SMALL STRAIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43.1.1Unit tests in finite strain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4I SOTROPIC PLASTIC BEHAVIOUR WITH ISOTROPIC HARDENING ON A NOTCHED BEAM . . . . . .4A NNEXE A D EFINITION OF THE CONSISTENT TANGENT OPERATOR FOR FINITE STRAIN BEHAVIOURS . .10R ÉFÉRENCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113.2

1U SAGE OF LIBRARIES GENERATED USING MF RONTThe mechanisms used by Abaqus to incorporate external subroutines is not suitable for mechanical behavioursgenerated by MFront.We propose a solution which is meant to be flexible and easy to set up for the end-user.This solution is based on a :— a generic umat subroutine which aims at loading dynamically libraries generated by MFront.— a naming convention of the material behaviour in the Abaqus input file which allow the user to specifyboth the function to called and the library in which this function is implemented.This approach allows the user to build MFront libraries before the computations. Those libraries can be sharedamong various computations by setting the appropriate environment variable 1 .1.1AGENERICumatSUBROUTINEA generic umat subroutine is delivered with MFront. It is implemented in a file called umat.cpp.The aim of this subroutine is to dynamically load libraries generated by MFront using the name given to thebehaviour in the input file. This subroutine can with little modifications (under comments in the source file)be made compatible with other user subroutines so mixing « standard umat » implementations and MFrontimplementations shall be feasible.We must insist : this file is the only source that must be compiled along with Abaqus : generation of MFrontlibraries is a different process that is done independently.As such, abaqus shall be called like this :abaqus user umat.cpp [options] inputfile.inp1.1.1Setting the compiler flagsThe generic umat subroutine is written using the C -11 standard. Depending on the compiler and compilerversion, appropriate flags shall be added for the compilation. Those flags are defined in the abaqus v6.envfile that can be overridden by the user.123456789101112cppCmd " g "# C c o m p i l e rcompile cpp [ cppCmd ,’ c ’ , ’ fPIC ’ , ’ w ’ , ’ Wno deprecated ’ , ’ DTYPENAME typename ’ ,’ D LINUX SOURCE ’ , ’ DABQ LINUX ’ , ’ DABQ LNX86 64 ’ , ’ DSMA GNUC ’ ,’ DFOR TRAIL ’ , ’ DHAS BOOL ’ , ’ DASSERT ENABLED ’ ,’ D BSD TYPES ’ , ’ D BSD SOURCE ’ , ’ D GNU SOURCE ’ ,’ D POSIX SOURCE ’ , ’ D XOPEN SOURCE EXTENDED ’ , ’ D XOPEN SOURCE ’ ,’ DHAVE OPENGL ’ , ’ DHKS OPEN GL ’ ,’ DGL GLEXT PROTOTYPES ’ ,’ DMULTI THREADING ENABLED ’ , ’ D REENTRANT ’ ,’ DABQ MPI SUPPORT ’ , ’ DBIT64 ’ , ’ D LARGEFILE64 SOURCE ’ ,’ D FILE OFFSET BITS 64 ’ , ’ s t d c 11 ’ ,mpiCppImpl , ’ I \% I ’ ]F IGURE 1 : Declaration of the C compiler flags for gcc under LiNuX in the abaqus v6.env file. The--std c 11 flag was added at Line 11.1. LD LIBRARY PATH under Unix systems, PATH under Windows systems2

For gcc, one have to add the --std c 11 flag. The modification made to the abaqus v6.env are reportedon Figure 1 in this case.1.2N AMEOF THE BEHAVIOUR IN THEA BAQUSINPUT FILEThe name of the behaviour shall define the function to be called and the library in which this function isimplemented. It is important to notice that the name of the behaviour is automatically converted to upper-caseby Abaqus.The name of the libraries generated by MFront though the Abaqus interface are thus upper-cased. The usershall thus be aware that he/she must not rename MFront generated libraries using lower-case letters.By convention, this name is splitted into two parts, separed by the underscore character (’ ’). The first partis the name of library, without prefix (lib) or suffix (.dll or .so). This convention implies that thelibrary name does not contain an underscore character.For example, on UNIX systems, if one want to call the ELASTICITY behaviour in libABAQUSBEHAVIOUR.solibrary, the name of the behaviour in the Abaqus input file has to be : ABAQUSBEHAVIOUR ELASTICITY. Thisleads to the following declaration of the material :*Material, name ABAQUSBEHAVIOUR ELASTICITY1.3N OTEON LIBRARIES LOCATIONSAs explained above, MFront libraries will be loaded at the runtime time. This means that the libraries must befound by the dynamic loader of the operating system.1.3.1Under LinuxUnder Linux, the search path for dynamic libraries are specified using the LD LIBRARY PATH variable environment. This variable defines a colon-separated set of directories where libraries should be searched for first,before the standard set of directories.Depending on the configuration of the system, the current directory can be considered by default.1.3.2Under WindowsUnder Windows, the dynamic libraries are searched :— in the current directory ;— in the directories listed in the PATH environment. This variable defines a semicolon-separated set ofdirectories.2D ESCRIPTION OF THE INTERFACE FUNCTIONALITIES3

2.1S UPPORTED2.2S ETTINGTHE OUT- OF - BOUNDS POLICY2.3S ETTINGPARAMETERS VALUESMODELLING HYPOTHESISThe values of the parameters can be set in an external text file which is automatically read. If the behaviourname is Norton, the name of this file must be Norton-parameters.txt. This file must be in the currentdirectory.The parameters file must be formatted like this :ParameterName ParameterValueOtherParameterName OtherParameterValue. .If a parameter is omitted, this parameter will have its default value.33.1T EST CASESU NITTESTS IN SMALL STRAINIsotropic elastic behaviour under tensile loading in small strainIsotropic elastic behaviour under shear loading in small strainIsotropic viscoplastic behaviour under tensile loading in small strainIsotropic plastic behaviour with isotropic hardening under shear loading in small strain3.1.1Unit tests in finite strainIsotropic elastic behaviour under shear loading in finite strainSaint-Venant Kirchhoff hyperelastic behaviour under tensile loadingSaint-Venant Kirchhoff hyperelastic behaviour under shear loading3.2I SOTROPICA NNEXE APLASTIC BEHAVIOUR WITH ISOTROPIC HARDENING ON A NOTCHED BEAMD EFINITION OF THE CONSISTENT TANGENT OPERATOR FORFINITE STRAIN BEHAVIOURS4

80007000Shear stress σxz (MPa)60005000400030002000Small strain analytical resultsMFront 0.090.1Engineering shear strain γxzF IGURE 2 : Comparison of the results obtained by the MFront implementation of an isotropic elastic behaviourand the results obtained with the Abaqus build-in elastic behaviour under shear loading.5

MTest36Abaqus34Axial stress σzz (MPa)3230282624222000.511.522.5Axial strain (%)F IGURE 3 : Comparison of the results obtained with Abaqus and MTest using an MFront implementation ofan isotropic viscoplastic behaviour under tensile loading.6

700Shear stress σxz (MPa)600500400300"./plasticity-shear-abq.txt" using 6:122000.01"./plasticity-shear-mfront.txt" using 6:120.020.030.040.050.060.070.080.090.1Engineering shear strain γxzF IGURE 4 : Comparison of the results obtained by the MFront implementation of an isotropic plastic behaviourwith isotropic hardening and the results obtained with the Abaqus build-in behaviour under shear loading.7

8 1046 104Shear stress σxz (MPa)4 1042 1040-2 104Abaqus build-in behaviour-4 104MFront implementationSmall strain analytical results0.10.20.30.40.50.60.70.80.91Time (a.u.)F IGURE 5 : Comparison of the results obtained by the MFront implementation of an isotropic elastic behaviourand the results obtained with the Abaqus build-in elastic behaviour under shear loading when the HughesWinglet hypo-elastic formulation is used.8

σ zz (MPa)Axial Cauchy stress7 1056 1055 1054 1053 1052 105105AbaqusMTest001020304050Axial Green-Lagrange strain60εGLzz708090(%)F IGURE 6 : Comparison of the results obtained the MFront implementation of the Saint-Venant Kirchhoff hyperelastic behaviour using Abaqus and MTest.F IGURE 7 : Comparison of the VON M ISES stress distribution obtained with MFront and the results obtainedwith the Abaqus build-in plasticity behaviour on a notched beam.9

F IGURE 8 : Comparison of the stress vs. strain curves obtained with MFront and with the Abaqus build-inplasticity behaviour on a notched beam.Abaqus expresses the equilibrium in the rotated frame. To our current knowledge, the derivation of the consistenttangent operator C is not described in any reference and the expression defined in the Abaqus manuel differsfrom the one given in the book of B ELYTSCHKO et al. [Belytschko 00].Let δ F a variation of the deformation gradient at the end of the time step. This variation induces a variation of : — a variation δ L of the gradient defined by : 1δL δF. F t t— a variation δ D of the strain rate defined by the symmetric part of δ L. — a variation δ W of the spin rate defined by the unsymmetric part of δ L. — a variation of the τ of the Kirchhoff stress tensor.For the sake of conciseness, F t twill be noted F in the rest of this section. The abaqus manual defines the consistent tangent operator C as the tangent moduli associated with theJ AUMAN rate of the K IRCHHOFF stress CJ τ divided by J. C satisfies :J C : δ D CJ τ : δ D δ τ δ W . τ τ . δ W The mechanical behaviour allows us to compute δ τ as :δτ τ: δF F The tangent operator τis well defined and given by most mechanical behaviour implementations. F 10(1)

W: F T F W 1 ?l F 1 ?r F T . F2 FTo compute the other terms, we will need The term ?l F 1 can be computed using the method tpld of the t2tot2 class. The term ?r F 1 can be computed using the method tprd of the t2tot2 class.This derivative allow us to compute the remaining terms of Equation (1) : Wδ W . τ ?l (τ ) : δF F Wτ . δ W ?r (τ ) : δF F The terms ?l (τ ) W F and ?r (τ ) W F can be computed with the tpld and tprd of the t2tot2 class. Finally, Equation (1) can be recast as :J C : δ D K : δF where K is given by : W W τ ?l (τ ) ?r (τ ) K F F F Following H AN [Han 12], the consistent tangent operator C can then be deduced from the K matrix using thefollowing relationship :J Cijkl Kijkm FlmRÉFÉRENCES[Belytschko 00] B ELYTSCHKO T ED. Nonlinear Finite Elements for Continua and Structures. Wiley-Blackwell,Chichester ; New York, 2000.[Han 12]H AN X U. Modélisation de la fragilisation due au gonflement dans les aciers inoxydables austénitiques irradiés. Thèse : Ecole Doctorale Sciences des Métiers de l’Ingénieur, Paris, France,2012.11

As such, abaqus shall be called like this : abaqus user umat.cpp [options] inputfile.inp 1.1.1 Setting the compiler flags The generic umat subroutine is written using the C -11 standard. Depending on the compiler and compiler version, appropriate flags shall be added for the compilation. Those flags are defined in the abaqus_v6.env