LS-DYNA - PERAGLOBAL

54
出品 | LS-DYNA 二次开发技术与应用 安世亚太仿真业务部 产品经理 李中明

Transcript of LS-DYNA - PERAGLOBAL

Page 1: LS-DYNA - PERAGLOBAL

出品 |

LS-DYNA

二次开发技术与应用

安世亚太仿真业务部

产品经理 李中明

Page 2: LS-DYNA - PERAGLOBAL

出品 |

2

• 1、LS-DYNA二次开发应用方向

• 2、LS-DYNA二次开发环境搭建

• 3、LS-DYNA二次开发语言简介

• 4、LS-DYNA二次开发材料模型

目 录

Page 3: LS-DYNA - PERAGLOBAL

出品 |

3

• 1、LS-DYNA二次开发应用方向

• 2、LS-DYNA二次开发环境搭建

• 3、LS-DYNA二次开发语言简介

• 4、LS-DYNA二次开发材料模型

目 录

Page 4: LS-DYNA - PERAGLOBAL

出品 |

4

• 目前主要有三类应用:

• a、对求解器的计算过程或结果进行获取和运算;

• b、对求解器的计算输入特定的初始与(或)边界条件;

• c、对求解器的计算过程进行定制,如材料模型与单元算法的二次开发。

1、LS-DYNA二次开发应用方向

Page 5: LS-DYNA - PERAGLOBAL

出品 |

5

• 1、LS-DYNA二次开发应用方向

• 2、LS-DYNA二次开发环境搭建

• 3、LS-DYNA二次开发语言简介

• 4、LS-DYNA二次开发材料模型

目 录

Page 6: LS-DYNA - PERAGLOBAL

出品 |

6

• 操作系统

• Windows

• Windows XP Pro

• Windows Vista

• Windows 7

• Windows 8

• Windows 10

• ……

• Linux:

• Red Hat Enterprise

• SUSE Linux Enterprise

• ……

• Unix

• Mac OS

• ……

2、LS-DYNA二次开发环境搭建

• 编译环境

• Fortran

• Compaq Visual FORTRAN

• Intel Fortran

• PGI Fortran

• Microsoft Visual Studio C++.NET

Page 7: LS-DYNA - PERAGLOBAL

出品 |

7

• LS-DYNA 960版本 • Windows:

• SGI Workstation

2、LS-DYNA二次开发环境搭建

Page 8: LS-DYNA - PERAGLOBAL

出品 |

8

• LS-DYNA 960版本

• Windows:

• 1. The following files are provided for making a user-defined LS-DYNA solver:

• LSDYNA.LIB LS-DYNA 960 static library for Win32

• LSDYNA.F FORTRAN source code (main program entry & user routines)

• LSDYNA.DSP Compaq Visual FORTRAN 6.6B project file

• Copy them to a writable disk drive (hard disk or network drive).

• 2. Add user-defined subroutines in the file LSDYNA.F.

• 3. In Compaq Visual FORTRAN 6.6B use the project file LSDYNA.DSP to build a user-defined LS-DYNA

executable (LSDYNA.EXE). Ignore the warning messages caused by multiple-defined subroutines in LIB files.

• 4. Run LS-DYNA (LSDYNA.EXE) and follow the command-line options listed in the LS-DYNA User's Manual.

2、LS-DYNA二次开发环境搭建

Page 9: LS-DYNA - PERAGLOBAL

出品 |

9

• LS-DYNA 970版本(Windows)

• 3858 版本

• 5434 版本

• 5434a版本

• 6763 版本

2、LS-DYNA二次开发环境搭建

1、Microsoft Visual Studio C++.NET 2003

2、Intel(R) Fortran Compiler 8.1

Page 10: LS-DYNA - PERAGLOBAL

出品 |

10

• LS-DYNA 970版本

• Windows:

• 1.Open a Dos command Windows

• Start->Programs->Intel(R) Software Development Tools->Intel(R) Fortran compiler 8.1->Build Environment

for IA-32 applications

• 2.Modify user defined material subroutine

• Modify dyn21.F with notepad or other edit utility.

• 3.Make executable

• Type "nmake" and press Enter to Compiler and link.

• Ignore the warning messages caused by multiple-defined subroutines in the LIB files.

2、LS-DYNA二次开发环境搭建

Page 11: LS-DYNA - PERAGLOBAL

出品 |

11

• R11.1

• R10

• R9

• R8

• R7

• 971_R6

• 971_R3

• 971_7600

2、LS-DYNA二次开发环境搭建

1、Microsoft Visual Studio C++.NET 2003

2、Intel(R) Fortran Compiler 8.1

1、Microsoft Visual Studio C++.NET 2003/2005

2、Intel(R) Fortran Compiler 9.1

1、Microsoft Visual Studio C++.NET 2008

2、Intel(R) Fortran Compiler 10.1

1、Microsoft Visual Studio C++.NET 2010

2、Intel Parallel Studio XE 2013

1、Microsoft Visual Studio C++.NET 2010/2013

2、Intel Parallel Studio XE 2016

1、Microsoft Visual Studio C++.NET 2017

2、Intel Parallel Studio XE 2017

Page 12: LS-DYNA - PERAGLOBAL

出品 |

12

• LS-DYNA R11.0版本

• Windows:

• 1.Open a Dos command Windows:

• Start->Programs->Intel Parallel Studio XE 2013->Command Prompt->Parallel Studio XE with Intel Compiler XE

v13.1->Intel 64 Visual Studio 2010 mode

• 2.Make the executable by default package:

• Go to the working directory where you unzip User Defined Materials package. Type nmake.exe under command line

prompt. See if you can generate the executable by default package.

• 3.Modify user defined material subroutine:

• Modify dyn21.F with notepad or other edit utility. Copy or insert your own code into dyn21.F.

• 3.Make executable:

• Type "nmake" and press Enter to Compile and link. Ignore the warning messages caused by multiple-defined

subroutines in the LIB files.

2、LS-DYNA二次开发环境搭建

Page 13: LS-DYNA - PERAGLOBAL

出品 |

13

• 1、LS-DYNA二次开发应用方向

• 2、LS-DYNA二次开发环境搭建

• 3、LS-DYNA二次开发语言简介

• 4、LS-DYNA二次开发材料模型

目 录

Page 14: LS-DYNA - PERAGLOBAL

出品 |

14

• Fortran语言

• 作为一门诞生于上个世纪50年代后半期的高级计算机语言,Fortran在这个C/C++、Java等新

兴语言大行其道的时代仍然活跃在人们的视野之中。Fortran语言的长项在于数值计算,在科学

研究和工程设计领域有着广泛的用途。在描述数学语言的自然性方面,Fortran同现存的其他高

级语言相比有着明显的优势。对于科研工作者和工程技术人员而言,Fortran语言的易学性和易

用性是公认的。

• Fortran是英语中“公式(Formula)”和“翻译(Translation)”两个单词取前几个字母的缩

写形式,意即“公式翻译”。Fortran主要面向科学研究、工程设计或企事业管理中经常遇到的

能够用数学公式表达的数值计算问题。因为可以像抄写教科书里的公式一样书写数学表达式,

它比用英文书写的自然语言更接近数学语言。这使得Fortran在科研工作者和工程技术人员中拥

有庞大的使用人群。Fortran语言是第一个被正式推广的高级计算机语言。从1954年开始以来

在六十多年的发展历程中,它始终是数值计算领域所使用的主要语言(之一)。

3、LS-DYNA二次开发语言简介

Page 15: LS-DYNA - PERAGLOBAL

出品 |

15

• Windows下的Fortran编译器

• 由于Windows操作系统有着庞大的用户群体,因此Windows系统下的编译器开发非常活跃。

目前市场上常见的Fortran编译器包括Visual Fortran系列、 Absoft公司的Absoft Fortran 、

Salford的FTN系列、G95/gFortran的Windows版本,Macrovision公司的PGI Visual

Fortran等。这其中,影响较大、功能较全、性能较好、应用最广泛的Fortran编译器提供了

集成开发环境的Visual Fortran系列。

• Visual Fortran系列编译器起源于微软公司开发的Fortran Power Station 4.0编译系统。该

系统结合了当时微软最新开发的Develop Studio集成开发环境(IDE),使得Fortran程序

的开发方式跟上了时代的潮流。这套工具随后被卖给了数字设备(DEC)公司继续开发,产

生了一个非常流行的Fortran编译器系统。

• Compaq Visual Fortran(CVF):Compaq公司1998年1月收购DEC公司,其图形用户界

面直接使用了微软公司的Develop Studio 6.0集成开发环境,最后版本6.6。

• Inter Visual Fortran(IVF):2005年6月14日发布9.0,作为Compaq Visual Fortran

(CVF)的后继编译器;现在最新正式版Intel® Parallel Studio 2020。

3、LS-DYNA二次开发语言简介

Page 16: LS-DYNA - PERAGLOBAL

出品 |

16

• a、程序书写格式:

• 固定格式:文件扩展名为*.F或*.FOR;

• 自由格式:文件扩展名为*.F90。

• b、Fortran中的程序单元:

• 可执行程序单元:主程序单元、外部函数子程序单元、外部子例行子程序单元;

• 不可执行程序单元:为其他程序单元提供定义,有模块程序单元和数据块程序单元。

• c、输入与输出:

• 格式输出与输出;

• 系统隐含的标准格式输入输出;

• 无格式的输入输出。

• d、常量与变量

• f、内部过程(数学函数等)与运算符

• ……

3、LS-DYNA二次开发语言简介

Page 17: LS-DYNA - PERAGLOBAL

出品 |

17

• 一、基本编译器介绍:集群配置有三套基本的编译器:1、GCC编译器,2、PGI编

译器,3、INTEL编译器。介绍如下:

MPI编译环境及编译器

Page 18: LS-DYNA - PERAGLOBAL

出品 |

18

• 1、LS-DYNA二次开发应用方向

• 2、LS-DYNA二次开发环境搭建

• 3、LS-DYNA二次开发语言简介

• 4、LS-DYNA二次开发材料模型

目 录

User Defined Element Interface for Solids and Shells

User Defined Solution Control

User Defined Equation of State

User Defined Materials

Page 19: LS-DYNA - PERAGLOBAL

出品 |

19

• 开发方式:

• 1、通过库文件、子程序等编译链

接成新的执行程序;

• 2、逐渐使用开发库文件,然后用

*MODULE来使用。

LS-DYNA用户自定义

Page 20: LS-DYNA - PERAGLOBAL

出品 |

20

• 二次开发材料模型(User Defined Materials)流程:

• 1、用户编写User Defined Materials 代码;

• 2、编译代码、链接、生成新的可执行文件;

• 通过nmake实现与完成(nmake程序+makefile)。

• 3、在输入文件中通过*MAT_USER_DEFINED_MATERIAL_MODELS关键字填入相应的

材料属性参数值,再进行计算。

4、LS-DYNA二次开发材料模型

Page 21: LS-DYNA - PERAGLOBAL

出品 |

21

• 材料模型接口子程序:

• subroutine umat41 (cm,eps,sig,epsp,hsv,dt1,capa,etype,tt,temper,failel,crv,cma)

• subroutine umat42 (cm,eps,sig,epsp,hsv,dt1,capa,etype,tt,temper,failel,crv,cma)

• subroutine umat43 (cm,eps,sig,epsp,hsv,dt1,capa,etype,tt,temper,failel,crv,cma)

• subroutine umat44 (cm,eps,sig,epsp,hsv,dt1,capa,etype,tt,temper,failel,crv,cma)

• subroutine umat45 (cm,eps,sig,epsp,hsv,dt1,capa,etype,time,temp,failel,crv,cma)

• subroutine umat46 (cm,eps,sig,epsp,hsv,dt1,capa,etype,tt,temper,failel,crv,cma,thhsvi,nthhsv)

• subroutine umat47 (cm,eps,sig,epsp,hsv,dt1,capa,etype,tt,temper,failel,crv,cma)

• subroutine umat48 (cm,eps,sig,epsp,hsv,dt1,capa,etype,tt,temper,failel,crv,cma)

• subroutine umat49 (cm,eps,sig,epsp,hsv,dt1,capa,etype,tt,temper,failel,crv,cma)

• subroutine umat50 (cm,eps,sig,epsp,hsv,dt1,capa,etype,tt,temper,failel,crv,cma)

4、LS-DYNA二次开发材料模型

Page 22: LS-DYNA - PERAGLOBAL

出品 |

22

• subroutine umat41 (cm,eps,sig,epsp,hsv,dt1,capa,etype,tt,temper,failel,crv,cma)

• cm----------------- material constants(定义的材料参数)

• eps----------------- strain increment(传递应变增量)

• sig------------------ stress(传递应力变化)

• epsp--------------- (前一时间步的有效塑性应变)

• hsv----------------- history variable(用户定义的历史变量)

• dt1----------------- current time step size(当前时间步)

• capa---------------- reduction factor for transverse shear(横向剪切缩减因子)

• etype--------------- eq.“solid” for solid elements ……(单元类型)

• tt------------------- current problem time(当前时间)

• temper------------ current temperature(当前温度)

• failel--------------- flag for failure, set to .true. to fail an integration point, if .true. on input the integration point

has failed earlier.(失效判定符)

• crv----------------- array representation of curves in keyword deck.(关键字中定义的曲线)

• cma---------------- additional memory for material data defined by LMCA at 6th field of 2nd card of

*DATA_USER_DEFINED

4、LS-DYNA二次开发材料模型

Page 23: LS-DYNA - PERAGLOBAL

出品 |

23

• 定义isotropic elastic material,通过cm (n)数组定义需要的材料参数:

• cm(1)=first material constant, here young‘s modulus 材料参数1:杨氏模量

• cm(2)=second material constant, here poisson‘s ratio 材料参数2:泊松比

• ……

• ……

• ……

• cm(n)=nth material constant 材料常数n:

4、LS-DYNA二次开发材料模型

Page 24: LS-DYNA - PERAGLOBAL

出品 |

24

• eps(6)数组传递应变增量:

• eps(1)=local x strain increment

• eps(2)=local y strain increment

• eps(3)=local z strain increment

• eps(4)=local xy strain increment

• eps(5)=local yz strain increment

• eps(6)=local zx strain increment

4、LS-DYNA二次开发材料模型

• sig(6)数组传递应力变化:

• sig(1)=local x stress

• sig(2)=local y stress

• sig(3)=local z stress

• sig(4)=local xy stress

• sig(5)=local yz stress

• sig(6)=local zx stress

Page 25: LS-DYNA - PERAGLOBAL

出品 |

25

• 弹性常数:

• 杨氏模量 E

• 泊松比 n

• 剪切模量 G

• 体积模量 K

4、LS-DYNA二次开发材料模型

Page 26: LS-DYNA - PERAGLOBAL

出品 |

26

• 对于各向同性弹性体,广义胡

克定律表示为:

4、LS-DYNA二次开发材料模型1-各向同性弹性材料

• 用应变表示应力的关系式:

• 其中K为体积弹性模量:

Page 27: LS-DYNA - PERAGLOBAL

出品 |

27

• 用应力偏量与静水应力以及相应的应变关系式:

4、LS-DYNA二次开发材料模型1-各向同性弹性材料

Page 28: LS-DYNA - PERAGLOBAL

出品 |

28

• 写成增量形式为:

• 应力的递推关系式为:

4、LS-DYNA二次开发材料模型1-各向同性弹性材料

Page 29: LS-DYNA - PERAGLOBAL

出品 |

29

• 计算材料剪切模量:g

• 计算计算静水应力增量:P

• 更新应力:

4、LS-DYNA二次开发材料模型1-各向同性弹性材料

Page 30: LS-DYNA - PERAGLOBAL

出品 |

30

• 代码段:

• include文件

• 数据的定义

• 数组定义

• 变量定义

• 初始化完成后的输出信息

• ncycl.eq.1调用信息子程序

4、LS-DYNA二次开发材料模型1-各向同性弹性材料

Page 31: LS-DYNA - PERAGLOBAL

出品 |

31

• 定义应力增量与应变增量的关系:

• 根据输入参数计算shear modulus, g

• 体单元的3向应力状态的应力应变关系

• 壳单元使用capa横向剪切缩减因子

• 梁单元

• 厚壳单元

• 非以上单元输出出错信息

4、LS-DYNA二次开发材料模型1-各向同性弹性材料

Page 32: LS-DYNA - PERAGLOBAL

出品 |

32

• 定义应力增量与应变增量的关系:

• 根据输入参数计算shear modulus, g

• 体单元的3向应力状态的应力应变关系

• 壳单元使用capa横向剪切缩减因子

• 梁单元

• 厚壳单元

• 非以上单元输出出错信息

4、LS-DYNA二次开发材料模型1-各向同性弹性材料

Page 33: LS-DYNA - PERAGLOBAL

出品 |

33

• 定义应力增量与应变增量的关系:

• 根据输入参数计算shear modulus, g

• 体单元的3向应力状态的应力应变关系

• 壳单元使用capa横向剪切缩减因子

• 梁单元

• 厚壳单元

• 非以上单元输出出错信息

4、LS-DYNA二次开发材料模型1-各向同性弹性材料

Page 34: LS-DYNA - PERAGLOBAL

出品 |

34

• 编译代码,生成新的执行程序ls971.exe

• 选择32位或64位,进入dos命令行界面。

4、LS-DYNA二次开发材料模型1-各向同性弹性材料

Page 35: LS-DYNA - PERAGLOBAL

出品 |

35

• 编译代码,生成新的执行程序ls971.exe

• 出现正确的环境变量配置提示(说明安装使用环境没有问题)

• 进入到二次开发包的文件夹(cd 二次开发文件夹)

4、LS-DYNA二次开发材料模型1-各向同性弹性材料

Page 36: LS-DYNA - PERAGLOBAL

出品 |

36

• 编译代码,生成新的执行程序ls971.exe

• nmake程序来执行编译、链接、生成新的执行程序;

• 二次开发包文件夹中生成的obj文件和ls971.exe程序。

4、LS-DYNA二次开发材料模型1-各向同性弹性材料

Page 37: LS-DYNA - PERAGLOBAL

出品 |

37

• 使用自定义的材料模型

• K文件中添加*MAT_USER_DEFINED_MATERIAL_MODELS:

• 开始计算:使用LSTC Manager或ANSYS调用程序计算。

4、LS-DYNA二次开发材料模型1-各向同性弹性材料

Page 38: LS-DYNA - PERAGLOBAL

出品 |

38

• 计算结果:

4、LS-DYNA二次开发材料模型1-各向同性弹性材料

Page 39: LS-DYNA - PERAGLOBAL

出品 |

39

• 程序自带的*MAT_PLASTIC_KINEMATIC的输入参数:

4、LS-DYNA二次开发材料模型2-各向同性弹塑性硬化材料(rate effect)

Page 40: LS-DYNA - PERAGLOBAL

出品 |

40

• *MAT_PLASTIC_KINEMATIC模型描述:

• 在各向同性硬化中:屈服面的中心是固定的,但半径是塑性应变的函数;在随动硬化中,屈服

面的半径是固定的,但是中心在塑性应变的方向上平移。 因此该模型的屈服条件为:

其中 即:偏应力-移动张量

当前屈服极限

• 应变率影响通过Cowper-Symonds [Jones 1983]模型来缩放屈服应力:

4、LS-DYNA二次开发材料模型2-各向同性弹塑性硬化材料(rate effect)

Page 41: LS-DYNA - PERAGLOBAL

出品 |

41

• *MAT_PLASTIC_KINEMATIC模型描述:

• 借助硬化系数β,实现将各向同性硬化、随动硬化和混合硬化三种模型统一成一种算式,形成一

个材料模型模块。本例子用各向同性硬化(β =1)来描述其该材料模型的二次开发流程。

• 二次开发过程:

• 1、先按照弹性变形的应力、应变关系求t=tn+1时刻的应力试探值:

• 2、检查屈服条件:

• 3、如果>0则表示已经进入塑性区,则修正:

• 缩小偏应力,按照比例返回到新的屈服面上:

• 因β =1 不用更新:

4、LS-DYNA二次开发材料模型2-各向同性弹塑性硬化材料(rate effect)

Page 42: LS-DYNA - PERAGLOBAL

出品 |

42

• 用户自定义材料模型实现*MAT_PLASTIC_KINEMATIC的功能

4、LS-DYNA二次开发材料模型2-各向同性弹塑性硬化材料(rate effect)

• 进入子程序前已知:eps(6)数组传递应变增量

• eps(1)=local x strain increment

• eps(2)=local y strain increment

• eps(3)=local z strain increment

• eps(4)=local xy strain increment

• eps(5)=local yz strain increment

• eps(6)=local zx strain increment

• hsv(1)

• hsv(2)

• ……

• 返回主程序求出:sig(6)数组传递应力增量

• sig(1)=local x stress

• sig(2)=local y stress

• sig(3)=local z stress

• sig(4)=local xy stress

• sig(5)=local yz stress

• sig(6)=local zx stress

• hsv(1)

• hsv(2)

• ……

Page 43: LS-DYNA - PERAGLOBAL

出品 |

43

• 二次开发的代码段:

• include文件

• 数据的定义

• 数组定义

• 变量定义

• 初始化完成后的输出信息

• ncycl.eq.1调用信息子程序

• 计算剪切模量g

• 计算静水应力增量(1):P

• 计算当前的静水应力:hsv(2)

4、LS-DYNA二次开发材料模型2-各向同性弹塑性硬化材料(rate effect)

Page 44: LS-DYNA - PERAGLOBAL

出品 |

44

• 二次开发的代码段:

• 计算尝试应力(2):sig(1)~sig(6)

• 计算塑性硬化模量qh:

• 更新屈服应力ak:

• 考虑应变率影响:

• 计算有效应变

• 计算应变率

• 更新屈服应力ak:

4、LS-DYNA二次开发材料模型2-各向同性弹塑性硬化材料(rate effect)

Page 45: LS-DYNA - PERAGLOBAL

出品 |

45

• 二次开发的代码段:

• 计算偏应力(3):

• 计算屈服函数(4):

• 检查屈服(5):

• 计算塑性应变增量(6):

• 更新应力(7):

4、LS-DYNA二次开发材料模型2-各向同性弹塑性硬化材料(rate effect)

Page 46: LS-DYNA - PERAGLOBAL

出品 |

46

• 自定义材料模型参数输入:

• cm(1)=young's modulus

• cm(2)=poisson's ratio

• cm(3)=shear modulus

• cm(4)=Hardening factor beta

4、LS-DYNA二次开发材料模型2-各向同性弹塑性硬化材料(rate effect)

• 自定义材料模型参数输入:

• cm(5)=Tangent modulus

• cm(6)=yield stress

• cm(7)=bulk Modulus

• cm(8)=C

• cm(9)=p

Page 47: LS-DYNA - PERAGLOBAL

出品 |

47

• 计算结果:

4、LS-DYNA二次开发材料模型2-各向同性弹塑性硬化材料(rate effect)

Page 48: LS-DYNA - PERAGLOBAL

出品 |

48

• Windows

• Linux

• Mac OS

第二部分-二次开发的实操

Page 49: LS-DYNA - PERAGLOBAL

出品 |

49

• VS2008的安装:

Windows系统

Page 50: LS-DYNA - PERAGLOBAL

出品 |

50

• Intel Fortran安装:

Windows系统

Page 51: LS-DYNA - PERAGLOBAL

出品 |

51

• 开发环境测试:

Windows系统

Page 52: LS-DYNA - PERAGLOBAL

出品 |

52

• 开发环境搭建:

Linux ReaHat 5系统

Page 53: LS-DYNA - PERAGLOBAL

出品 |

53

• 开发环境搭建:

Mac OS系统

Page 54: LS-DYNA - PERAGLOBAL

出品 |

大咖慧,顾名思义,汇集众多大咖智慧。

是由安世亚太打造的一个以设计、仿真、增材制造等领域技术

和行业专家为主的智慧学习平台。目前主要通过线上培训、研

讨等方式,由行业相关领域资深专家与学员们分享交流最新技

术和应用研究成果。

如有任何需求、建议,请关注订阅号(peraglobal),给我们留言