Abaqus deakin subroutines ali alireza [modo de compatibilidade]
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
501
On Slideshare
501
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
27
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Abaqus User Alireza Asgari q Subroutine Primer Alireza Asgari Centre for Material and Fibre Innovation Deakin Universityy
  • 2. Running Abaqus Your work station CAD lab PCs Debug your subroutines here and Submit your jobs hereCAD lab PCs y j
  • 3. User subroutines Lecture 7 of User Subroutine tutorial isLecture 7 of User Subroutine tutorial is about UMAT and VUMAT L t 7 h 9 l !Lecture 7 has 9 examples!
  • 4. Lecture 7 on P drive
  • 5. What is UMAT and VUMAT
  • 6. UMAT and VUMAT I Ab /St d d th d fi dIn Abaqus/Standard the user-defined material model is implemented in user subroutine UMAT In Abaqus/Explicit the user-definedq p material model is implemented in user subroutine VUMATsub out e U Use UMAT and VUMAT if existing material models of Abaqus do not represent themodels of Abaqus do not represent the behaviour of your material
  • 7. Requirements of Mechanics E ilib iEquilibrium CompatibilityCompatibility Displacements are continuous and satisfies boundary conditionsboundary conditions Constitutive law Stress can be calculated from strains using the stress-strain relationship! UMAT VUMATUMAT or VUMAT
  • 8. Steps required in writing a UMAT or VUMATVUMAT 1. Define your constitutive equation Explicit definition of stress in terms of strainp Definition of the stress rate only Definition of dependence on timeDefinition of dependence on time, temperature, etc D fi iti f i t l t t i bl ithDefinition of internal state variables, either explicitly or in rate form
  • 9. Steps required in writing a UMAT or VUMATVUMAT 2 T f th tit ti ti i t2. Transform the constitutive equation into an incremental equation using a suitable integration procedureprocedure Forward Euler (explicit integration) Backward Euler (implicit integration) Midpoint method 3. Follow FORTRAN77 or C conventions 4 I i i li ll i bl l4. Initialize all variables properly 5. Use ABAQUS utility routines 6 A i h f S6. Assign enough storage space for State Variables (SV)
  • 10. UMAT interface Include your UMAT Input filep Abaqus/CAE
  • 11. Create friendship between your Fortran file and Abaqusand Abaqus Now your input file or CAE model knows that it has to use a User Subroutine but Abaqus does not know where to find it! You have to compile and link Abaqus withYou have to compile and link Abaqus with your Fortran file If you use CAE, it’s dead easy! If you use Command line to submit job, youy j , y can manually compile and link with Abaqus
  • 12. CAE approach to submit the job Include your file in job definition and submit!
  • 13. Command line approach Use ABAQUS command It sets all the environmental variables for youy c:> abaqus job=myJob user=mySubroutine
  • 14. Compiling and linking user subroutines Ab d d fi d iAbaqus uses commands defined in C:ABAQUSsiteabaqus_v6.env My settings”My settings compile_fortran='df /c /nologo /debug /include:%I‘ li k l ' / l /d b / b llink_sl='LINK /nologo /debug /subsystem:console /INCREMENTAL:NO /defaultlib:dformd.lib /nodefaultlib:dfor.lib /defaultlib:msvcrt.lib / d f ltlib td lib/nodefaultlib:msvcrtd.lib /nodefaultlib:libcd.lib /nodefaultlib:libc.lib /dll /def:%E /out:%U %F %A %B oldnames.lib user32 lib ws2 32 lib netapi32 lib advapi32 lib'user32.lib ws2_32.lib netapi32.lib advapi32.lib
  • 15. Now how to Debug Fi t li f UMAT t bFirst line of UMAT must be INCLUDE ‘ABA_PARAM.INC’ First line of VUMAT must be INCLUDE ‘VABA PARAM.INC’INCLUDE VABA_PARAM.INC These files are located in C ABAQUS6 5 1 itC:ABAQUS6.5-1site The easiest way I found is to copy these files and paste in the same folder where your FORTRAN file lives!
  • 16. Debugging M k /d b i i dMake sure /debug is in compile_fortran and link_sl environmental variables Now submit the job with the following command C:> Abaqus –j myJob –user myUser –debug standard dfdev Fortran debugger of your system. In Deakin Abaqus executable that you want to modify with your User subroutine. Change to explicit if you are linking a VUMAT y y we use Digital Fortran explicit if you are linking a VUMAT
  • 17. Compaq Visual Fortran Now Visual Fortran starts Open your FORTRAN fileOpen your FORTRAN file Set a break point where you want to debug Run the executable, click on Go (F5) Use Abaqus I/O units to write data to filesUse Abaqus I/O units to write data to files Unit 7 is the .msg file Unit 6 is the .dat file
  • 18. Compaq Visual Fortran Run (GO) BreakpointBreakpoint
  • 19. Manual compiling (if you want to control Digital Fortran)(if you want to control Digital Fortran) The command line in previous slide, uses Digital Fortran to compile your user subroutine and creates an .obj file. Then it uses Digital Fortran again to link .obj file to Abaqus executable. You can do this manually: C:> df myUserSub.f /c /nologo /fixed /debug C > b j J b U S b bj d b t d d dfdC:> abaqus -j myJob -user myUserSub.obj -debug -standard dfdev This is useful if you want to control compile and link flags rather than relying on env file I suggestlink flags rather than relying on env file. I suggest reading Digital Fortran documentation.
  • 20. VPAC and APAC VPAC has Abaqus on wexstan vpac orgVPAC has Abaqus on wexstan.vpac.org APAC has Abaqus on ac.apac.edu.au First load abaqusFirst load abaqus module load abaqus [enter] Use PBS script to submit the job #!/bi /b h#!/bin/bash #PBS -l nodes=1:ppn=2 #PBS -l walltime=2:00:00 #PBS -k oe #PBS -j oe#PBS j oe # Go to the directory from which you submitted the job cd $PBS_O_WORKDIR # module load abaqus # # Run your job abaqus job=myJob This is the command line that we talked about! If you have user subroutine youhave user subroutine, you have to modify this line.