附录B:用户自定义状态方程
用户能够在LS-DYNA中自定义状态方程子程序。为了调用用户子程序,必须做到:
1、通过LS-DYNA用户自定义EOS界面编写子程序。
2、创建包含EOS子程序的可执行算例。
3、在关键字K文件中定义PART来调用子程序,用*EOS_USER_DEFINED,并输入合适的参数。
所有的子程序,包括界面,用户自定义材料都包含在文件dyn21.F(Unix/Linux)或者lsdyna.f(Windows)。多达是个自定义程序能够同时添加到更新固体或壳体压力的压力中去。本文档对添加这样的子模型提供指导。变量名称和子程序会根据运算平台和当前的LS-DYNA版本不同而发生变化。
ls-dyna二次开发交流群
QQ群:241533898
各位做二次开发的同志可以加入该群相互探讨~
普通综述
当关键字文档中一个part的*EOS_USER_DEFINED定义后,LS-DYNA以合适的输入数据调用子程序ueoslib。在每个单元中对于每一次积分点调用两次子程序。第一次调用需要用EOS计算体积模量,第二次更新压力和内部能量。在这些子程序中,如果用户需要可以自行修改,下面的数据结构是为了运用特殊的标量材料子程序而初始化的。
iflag- =0计算体积模量,=1时是压力和能量的更新
cb- 体积模量
pnew- 新的压力
rho0- 相关密度
hist- 在长度上用户自定义历史变量NHV的数组
specen- 每个相关单元的内部能量
df- 体积比率
v0- 初始体积
pc- 压力界限
如果在EOS卡片中vectorization 标记活跃(IVECT=1),变量通常是存储在长度nlq的向量块中,向量从1ft排列到11
用户能够在LS-DYNA中自定义状态方程子程序。为了调用用户子程序,必须做到:
1、通过LS-DYNA用户自定义EOS界面编写子程序。
2、创建包含EOS子程序的可执行算例。
3、在关键字K文件中定义PART来调用子程序,用*EOS_USER_DEFINED,并输入合适的参数。
所有的子程序,包括界面,用户自定义材料都包含在文件dyn21.F(Unix/Linux)或者lsdyna.f(Windows)。多达是个自定义程序能够同时添加到更新固体或壳体压力的压力中去。本文档对添加这样的子模型提供指导。变量名称和子程序会根据运算平台和当前的LS-DYNA版本不同而发生变化。
ls-dyna二次开发交流群
各位做二次开发的同志可以加入该群相互探讨~
普通综述
当关键字文档中一个part的*EOS_USER_DEFINED定义后,LS-DYNA以合适的输入数据调用子程序ueoslib。在每个单元中对于每一次积分点调用两次子程序。第一次调用需要用EOS计算体积模量,第二次更新压力和内部能量。在这些子程序中,如果用户需要可以自行修改,下面的数据结构是为了运用特殊的标量材料子程序而初始化的。
iflag- =0计算体积模量,=1时是压力和能量的更新
cb- 体积模量
pnew- 新的压力
rho0- 相关密度
hist- 在长度上用户自定义历史变量NHV的数组
specen- 每个相关单元的内部能量
df- 体积比率
v0- 初始体积
pc- 压力界限
如果在EOS卡片中vectorization 标记活跃(IVECT=1),变量通常是存储在长度nlq的向量块中,向量从1ft排列到11
