LS-DYNA - PERAGLOBAL
Transcript of LS-DYNA - PERAGLOBAL
出品 |
LS-DYNA
二次开发技术与应用
安世亚太仿真业务部
产品经理 李中明
出品 |
2
• 1、LS-DYNA二次开发应用方向
• 2、LS-DYNA二次开发环境搭建
• 3、LS-DYNA二次开发语言简介
• 4、LS-DYNA二次开发材料模型
目 录
出品 |
3
• 1、LS-DYNA二次开发应用方向
• 2、LS-DYNA二次开发环境搭建
• 3、LS-DYNA二次开发语言简介
• 4、LS-DYNA二次开发材料模型
目 录
出品 |
4
• 目前主要有三类应用:
• a、对求解器的计算过程或结果进行获取和运算;
• b、对求解器的计算输入特定的初始与(或)边界条件;
• c、对求解器的计算过程进行定制,如材料模型与单元算法的二次开发。
1、LS-DYNA二次开发应用方向
出品 |
5
• 1、LS-DYNA二次开发应用方向
• 2、LS-DYNA二次开发环境搭建
• 3、LS-DYNA二次开发语言简介
• 4、LS-DYNA二次开发材料模型
目 录
出品 |
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
出品 |
7
• LS-DYNA 960版本 • Windows:
• SGI Workstation
2、LS-DYNA二次开发环境搭建
出品 |
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二次开发环境搭建
出品 |
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
出品 |
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二次开发环境搭建
出品 |
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
出品 |
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二次开发环境搭建
出品 |
13
• 1、LS-DYNA二次开发应用方向
• 2、LS-DYNA二次开发环境搭建
• 3、LS-DYNA二次开发语言简介
• 4、LS-DYNA二次开发材料模型
目 录
出品 |
14
• Fortran语言
• 作为一门诞生于上个世纪50年代后半期的高级计算机语言,Fortran在这个C/C++、Java等新
兴语言大行其道的时代仍然活跃在人们的视野之中。Fortran语言的长项在于数值计算,在科学
研究和工程设计领域有着广泛的用途。在描述数学语言的自然性方面,Fortran同现存的其他高
级语言相比有着明显的优势。对于科研工作者和工程技术人员而言,Fortran语言的易学性和易
用性是公认的。
• Fortran是英语中“公式(Formula)”和“翻译(Translation)”两个单词取前几个字母的缩
写形式,意即“公式翻译”。Fortran主要面向科学研究、工程设计或企事业管理中经常遇到的
能够用数学公式表达的数值计算问题。因为可以像抄写教科书里的公式一样书写数学表达式,
它比用英文书写的自然语言更接近数学语言。这使得Fortran在科研工作者和工程技术人员中拥
有庞大的使用人群。Fortran语言是第一个被正式推广的高级计算机语言。从1954年开始以来
在六十多年的发展历程中,它始终是数值计算领域所使用的主要语言(之一)。
3、LS-DYNA二次开发语言简介
出品 |
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二次开发语言简介
出品 |
16
• a、程序书写格式:
• 固定格式:文件扩展名为*.F或*.FOR;
• 自由格式:文件扩展名为*.F90。
• b、Fortran中的程序单元:
• 可执行程序单元:主程序单元、外部函数子程序单元、外部子例行子程序单元;
• 不可执行程序单元:为其他程序单元提供定义,有模块程序单元和数据块程序单元。
• c、输入与输出:
• 格式输出与输出;
• 系统隐含的标准格式输入输出;
• 无格式的输入输出。
• d、常量与变量
• f、内部过程(数学函数等)与运算符
• ……
3、LS-DYNA二次开发语言简介
出品 |
17
• 一、基本编译器介绍:集群配置有三套基本的编译器:1、GCC编译器,2、PGI编
译器,3、INTEL编译器。介绍如下:
MPI编译环境及编译器
出品 |
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
出品 |
19
• 开发方式:
• 1、通过库文件、子程序等编译链
接成新的执行程序;
• 2、逐渐使用开发库文件,然后用
*MODULE来使用。
LS-DYNA用户自定义
出品 |
20
• 二次开发材料模型(User Defined Materials)流程:
• 1、用户编写User Defined Materials 代码;
• 2、编译代码、链接、生成新的可执行文件;
• 通过nmake实现与完成(nmake程序+makefile)。
• 3、在输入文件中通过*MAT_USER_DEFINED_MATERIAL_MODELS关键字填入相应的
材料属性参数值,再进行计算。
4、LS-DYNA二次开发材料模型
出品 |
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二次开发材料模型
出品 |
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二次开发材料模型
出品 |
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二次开发材料模型
出品 |
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
出品 |
25
• 弹性常数:
• 杨氏模量 E
• 泊松比 n
• 剪切模量 G
• 体积模量 K
4、LS-DYNA二次开发材料模型
出品 |
26
• 对于各向同性弹性体,广义胡
克定律表示为:
4、LS-DYNA二次开发材料模型1-各向同性弹性材料
• 用应变表示应力的关系式:
• 其中K为体积弹性模量:
出品 |
27
• 用应力偏量与静水应力以及相应的应变关系式:
4、LS-DYNA二次开发材料模型1-各向同性弹性材料
出品 |
28
• 写成增量形式为:
• 应力的递推关系式为:
4、LS-DYNA二次开发材料模型1-各向同性弹性材料
出品 |
29
• 计算材料剪切模量:g
• 计算计算静水应力增量:P
• 更新应力:
4、LS-DYNA二次开发材料模型1-各向同性弹性材料
出品 |
30
• 代码段:
• include文件
• 数据的定义
• 数组定义
• 变量定义
• 初始化完成后的输出信息
• ncycl.eq.1调用信息子程序
4、LS-DYNA二次开发材料模型1-各向同性弹性材料
出品 |
31
• 定义应力增量与应变增量的关系:
• 根据输入参数计算shear modulus, g
• 体单元的3向应力状态的应力应变关系
• 壳单元使用capa横向剪切缩减因子
• 梁单元
• 厚壳单元
• 非以上单元输出出错信息
4、LS-DYNA二次开发材料模型1-各向同性弹性材料
出品 |
32
• 定义应力增量与应变增量的关系:
• 根据输入参数计算shear modulus, g
• 体单元的3向应力状态的应力应变关系
• 壳单元使用capa横向剪切缩减因子
• 梁单元
• 厚壳单元
• 非以上单元输出出错信息
4、LS-DYNA二次开发材料模型1-各向同性弹性材料
出品 |
33
• 定义应力增量与应变增量的关系:
• 根据输入参数计算shear modulus, g
• 体单元的3向应力状态的应力应变关系
• 壳单元使用capa横向剪切缩减因子
• 梁单元
• 厚壳单元
• 非以上单元输出出错信息
4、LS-DYNA二次开发材料模型1-各向同性弹性材料
出品 |
34
• 编译代码,生成新的执行程序ls971.exe
• 选择32位或64位,进入dos命令行界面。
4、LS-DYNA二次开发材料模型1-各向同性弹性材料
出品 |
35
• 编译代码,生成新的执行程序ls971.exe
• 出现正确的环境变量配置提示(说明安装使用环境没有问题)
• 进入到二次开发包的文件夹(cd 二次开发文件夹)
4、LS-DYNA二次开发材料模型1-各向同性弹性材料
出品 |
36
• 编译代码,生成新的执行程序ls971.exe
• nmake程序来执行编译、链接、生成新的执行程序;
• 二次开发包文件夹中生成的obj文件和ls971.exe程序。
4、LS-DYNA二次开发材料模型1-各向同性弹性材料
出品 |
37
• 使用自定义的材料模型
• K文件中添加*MAT_USER_DEFINED_MATERIAL_MODELS:
• 开始计算:使用LSTC Manager或ANSYS调用程序计算。
4、LS-DYNA二次开发材料模型1-各向同性弹性材料
出品 |
38
• 计算结果:
4、LS-DYNA二次开发材料模型1-各向同性弹性材料
出品 |
39
• 程序自带的*MAT_PLASTIC_KINEMATIC的输入参数:
4、LS-DYNA二次开发材料模型2-各向同性弹塑性硬化材料(rate effect)
出品 |
40
• *MAT_PLASTIC_KINEMATIC模型描述:
• 在各向同性硬化中:屈服面的中心是固定的,但半径是塑性应变的函数;在随动硬化中,屈服
面的半径是固定的,但是中心在塑性应变的方向上平移。 因此该模型的屈服条件为:
其中 即:偏应力-移动张量
当前屈服极限
• 应变率影响通过Cowper-Symonds [Jones 1983]模型来缩放屈服应力:
4、LS-DYNA二次开发材料模型2-各向同性弹塑性硬化材料(rate effect)
出品 |
41
• *MAT_PLASTIC_KINEMATIC模型描述:
• 借助硬化系数β,实现将各向同性硬化、随动硬化和混合硬化三种模型统一成一种算式,形成一
个材料模型模块。本例子用各向同性硬化(β =1)来描述其该材料模型的二次开发流程。
• 二次开发过程:
• 1、先按照弹性变形的应力、应变关系求t=tn+1时刻的应力试探值:
• 2、检查屈服条件:
• 3、如果>0则表示已经进入塑性区,则修正:
• 缩小偏应力,按照比例返回到新的屈服面上:
• 因β =1 不用更新:
4、LS-DYNA二次开发材料模型2-各向同性弹塑性硬化材料(rate effect)
出品 |
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)
• ……
出品 |
43
• 二次开发的代码段:
• include文件
• 数据的定义
• 数组定义
• 变量定义
• 初始化完成后的输出信息
• ncycl.eq.1调用信息子程序
• 计算剪切模量g
• 计算静水应力增量(1):P
• 计算当前的静水应力:hsv(2)
4、LS-DYNA二次开发材料模型2-各向同性弹塑性硬化材料(rate effect)
出品 |
44
• 二次开发的代码段:
• 计算尝试应力(2):sig(1)~sig(6)
• 计算塑性硬化模量qh:
• 更新屈服应力ak:
• 考虑应变率影响:
• 计算有效应变
• 计算应变率
• 更新屈服应力ak:
4、LS-DYNA二次开发材料模型2-各向同性弹塑性硬化材料(rate effect)
出品 |
45
• 二次开发的代码段:
• 计算偏应力(3):
• 计算屈服函数(4):
• 检查屈服(5):
• 计算塑性应变增量(6):
• 更新应力(7):
4、LS-DYNA二次开发材料模型2-各向同性弹塑性硬化材料(rate effect)
出品 |
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
出品 |
47
• 计算结果:
4、LS-DYNA二次开发材料模型2-各向同性弹塑性硬化材料(rate effect)
出品 |
48
• Windows
• Linux
• Mac OS
第二部分-二次开发的实操
出品 |
49
• VS2008的安装:
Windows系统
出品 |
50
• Intel Fortran安装:
Windows系统
出品 |
51
• 开发环境测试:
Windows系统
出品 |
52
• 开发环境搭建:
Linux ReaHat 5系统
出品 |
53
• 开发环境搭建:
Mac OS系统
出品 |
大咖慧,顾名思义,汇集众多大咖智慧。
是由安世亚太打造的一个以设计、仿真、增材制造等领域技术
和行业专家为主的智慧学习平台。目前主要通过线上培训、研
讨等方式,由行业相关领域资深专家与学员们分享交流最新技
术和应用研究成果。
如有任何需求、建议,请关注订阅号(peraglobal),给我们留言