2. User material development in LS-Dyna environment:
Learnt dynamic simulation using LS Dyna software
Learnt FORTRAN language, its compilation and implementation in
FEA code development
Understood the process of implementing user material subroutine
development in LS Dyna environment
Implementation of user defined material model for DP model with
solid element and its verification with existing DP model (in
progress)
3. User interface in LS-DYNA
User Interface provides freedom to choose solution methods for
the problem at hand. LS-DYNA already offers options for all
imaginable tasks such as element types, materials, contacts,
connections, loads, boundary conditions, etc. But sometimes, the user
still wishes to implement her or his own algorithm at a particular point
of the solution procedure. Therefore, LS-DYNA also provides user-
defined interfaces, i.e. the source code is partly open for modifications.
4. User interface in LS-DYNA
Environment for large-scale real-world problems, no need for the
comprehensive task of developing and maintaining complete FE
software
Implementation concerns only to a specific field of interest
The most popular user interface is for material modeling.
There also exist user interfaces for structural elements, airbag sensors,
solution control, friction, interface control, weld failure, loads, output
control, adaptivity, thermal contact, and others.
Allow users to verify research results in the context of general and
complicated finite element applications
Up to a total of ten different material models in a single LS-DYNA
executable
An overview of the procedure of implementing UMAT in the interface
will be presented.
5. User-defined materials (material modeling)
Strain/ Deformation Constitutive Relation Stress/Forces
Existing material models
Isotropic elastic to anisotropic elasto-plastic with damage etc with
constitutive laws that can predict the behavior of metals, plastics, rubber, foam,
concrete, soil, composites, wood etc.
Best solution for their material at hand
Gives rise to the possibility to implement own material models.
*MAT_USER_DEFINED_MATERIAL_MODELS defines the input for the user
material interface.
Main program calls subroutine usrmat in dyn21.f, and from there, different
subroutines are called depending on the element type in use
umatXX (or umatn) , has the provision to compute stresses from strains
7. usermat package
available via LS-DYNA distributors contains several files such as:
library files (*.a)
object files (*.o)
include files (*.inc)
Fortran source files (*.f) and
a Makefile
Most important file is Fortran Source file dyn21.f
Makefile specifies how to derive the LS-DYNA executable and also gives
information about the specific Fortran compiler that should be used.
Compilation needs
- Fortran user routine
- Fortran 77 or Fortran 90 compiler
- Makefile
- The Fortran source file dyn21.f
- Object code files
8. Standard structure and arguments of a user routine
Bulk modulus,
K
and the
Shear
modulus, G are
used to
calculate
Time step
9. Writing a UMAT (User MATerial Subroutine) for LS-Dyna:
Material Model Theoretical Development
Material model represented as concise mathematical equations
Flow stress function
Change in the flow stress of the material (temperature, strain rate, etc)
Stress integration scheme
von Mises isotropic material model for plane stress condition:
Flow stress
elastic strain at yield point
plastic strain
material matrix
plastic multiplier
yield function
10. Writing a UMAT (User MATerial Subroutine) for LS-Dyna:
FORTRAN Implementation of the UMAT
Creation of a Fortran code using the theoretical model
Insert the code in the dyn21.f file
Compilation of a working copy of LS-Dyna (.exe)
11. Writing a UMAT (User MATerial Subroutine) for LS-Dyna:
Implementation In LS-Dyna & Compilation
√ Code development
Incorporate into LS-Dyna
LS-Dyna provides object files and source routine (dyn21.f)
Addition of own subroutine to the supplied source routine
Compilation of the modified source file using the same compiler
that LS-Dyna uses
Intel(R) Visual Fortran Compiler (readme.txt)
Create LS Dyna solver (ls971_dpmv4.exe)
Ready to run FE simulation
12. Steps required to build a UMAT:
Download the required Object files. ftp.lstc.com
Open the "dyn21.F" file in a text editor . Notepad++
Search for "subroutine umat43". This will take you to the location where
you can start adding your UMAT's. (next slide)
Start Intel(R) Visual Fortran Compiler Professional Edition 11.1 for
Windows* OS
Provide directory path and use "make" command to compile the code.
If compilation is successful, an executable will be created that can be used
as solver to run LS-DYNA. Copy it to the directory C:LSDYNAprogram
To call the code in the LS-Dyna input file we use this in keyword file:
*MAT_USER_DEFINED_MATERIAL_MODELS
13. Writing a UMAT (User MATerial Subroutine) for LS-Dyna:
UMAT Verification
Running a simple problem and compare the results against analytical results
Successful UMAT verification guarantees a high level of confidence and quality in
the developed material model
Mattias Unosson, Eric Buzaud:
Acceleration history of bar’s top center node Pressure history (bottom center’s solid element)
L=0.6 cm
D=0.32 cm
Vo=227 m/s
Hinweis der Redaktion
While an executable file can be hand-coded in machine language, it is far more usual to develop software as source code in a high-level language easily understood by humans, or in some cases an assembly language more complex for humans but more closely associated with machine code instructions. The high-level language is compiled into either an executable machine code file or a non-executable machine-code object file of some sort; the equivalent process on assembly language source code is called assembly. Several object files are linked to create the executable.High level languages allow much more abstraction than low level languages. This allows algorithms and functions to be written without requiring detailed knowledge of the hardware used in the computing platform. The compiler provides this interface transparently for the programmer. Low level languages will require more involvement with the actual register and interrupt interfaces to the hardware. This can provide more control and efficiency for the program and can be good for applications which need high speed execution, but high level compilers are much better at optimizing for speed now.Examples of high level languages include C, C++, Java, etc.Examples of low level languages include machine language specific to each processor and assembly language specific to each processor.