
https://www.dynasupport.com/howtos/general
一、力的输出(Force Analysis)
可以通过一下几种方式获得受力情况:
1.使用*DATABASE_CROSS_SECTION 和 *DATABASE_SECFORC可以获得一个横截面上的内力和内力矩。注意,在使用set选项设置横截面时,必须提供用于定义横截面路径的节点集以及横截面某一侧的至少一个单元集。
2.使用*DATABASE_NODAL_FORCE_GROUP 和 *DATABASE_NODFOR可以获得施加在节点或节点集上的外部力。
3.使用*DATABASE_BNDOUT可以获得边界反力。
4.使用*DATABASE_SPCFORC可以获得由*BOUNDARY_SPC定义的边界上的反力。
5.*DATABASE_RCFORC可以输出接触力合力。在单面接触中,还需要使用*CONTACT_FORCE_TRANSDUCER_(option)来提取接触力合力。
6.单个节点所受的力由*DATABASE_NCFORC输出。必须在*CONTACT中设置SPR, MPR中至少一个输出控制选项为1,以便向程序指定输出侧为接触面主面侧或从面侧。
以上数据分别由程序输出到ASCII文件SECFORC, NODFORC, BNDOUT, SPCFORC, RCFORC, 和 NCFORC中。
二、重力载荷(Gravity Load)
(译注:重力的加载需要设置如下关键字:
*LOAD_BODY_OPTION (OPTION=X,Y,Z. 分别表示X方向,Y方向,Z方向的重力 )
*DEFINE_CURVE (定义加载曲线)
*SET_PART_LIST (指定施加重力的部件集合,不设置则为所有部件均受重力)
本文主要讨论的是在考虑突然施加重力时导致的动态效应时应该怎么做。)
关键字*LOAD_BODY_Z 可以应用重力载荷(假设Z为竖直方向),重力的预加载可以在以下三种分析方式中实现:
1.显式或隐式动力松弛分析
2.单独的隐式分析
3.显式分析的早期
如下两个关键字联用可以通过速度的重新初始化实现隐式动力松弛:
1.设置 *CONTROL_DYNAMIC_RELAXATION中的idrflag为5,DRTERM为非零值;
2.设置*INITIAL_VELOCITY_GENERATION中的iphase为1。
这样用户就可以利用隐式动力松弛来引入重力(或其它载荷),从而在显式冲击分析中给定一个初始速度。关键字*CONTROL_IMPLICIT可以控制隐式动力松弛的运行。
所有为分析模型预加载重力的办法均涉及到关键字*LOAD_BODY:
1.使用动力松弛进行预先准静态分析时,程序会将逐渐增加的重力加载到结构之上。用户可以设置两种加速度-时间曲线来定义重力:
A.*LOAD_BODY中LCID选项对应的曲线。定义该曲线时,将*define_curve中的SIDR选项设为0,并输入一个随时间不变的加速度-时间曲线;
B.*LOAD_BODY中LCIDDR选项对应的曲线。此时应将*define_curve中的SIDR选项设为1,然后将加速度数值在很短时间内(大概10ms)线性增加至重力加速度并保持不变。
使用关键字*DATABASE_BINARY_D3DRLF并将DT/CYCL 设为1可以输出动力松弛记录。
2.可以在显式动力分析模型的早期引入质量阻尼(*DAMPING_GLOBAL)来消除由于重力(*LOAD_BODY)而产生的动态震荡,模型趋于稳定后再取消阻尼并施加动态载荷。
若用户不关心由于突然增加重力而带来的动态效应,那么就不需要设置动力松弛、阻尼以及慢慢增加的重力,只需要在*LOAD_BODY中定义一个始终不变的水平曲线即可(纵坐标为重力加速度)。
三、铰链刚度(Joint stiffness)
一个回转铰链一般为没有抵抗地自由转动,但是*CONSTRAINED_JOINT_STIFFNESS_ (GENERALIZED, FLEXION-TORSION)这一关键字可以使其绕回转轴产生抵抗力拒。若用户使用关键字*CONSTRAINED_JOINT_STIFFNESS_GENERALIZED定义了铰链刚度,那么JNTFORC 文件中将会记录抵抗力拒,名字为psi-moment。在LS-Prepost中加载这一文件后,即可点击JStifR按钮来绘制相关曲线。
*CONSTRAINED_JOINT_<PLANAR>关键字中的JID选项可以用来定义JNTFORC 文件中的铰链 ID,若用户不定义该选项则程序自动为铰链分配ID。在如下示例中,JID为1,JID一行下面的数据为和*CONSTRAINED_JOINT_PLANAR有关的约束自由度,与*CONSTRAINED_JOINT_STIFFNESS_ (GENERALIZED, FLEXION-TORSION)无关。
joint ID.................................. 1
x-force................................ 3.40893E+02
y-force................................ 2.82037E+00
z-force................................. 0.00000E+00
x-moment.......................... 0.00000E+00
y-moment.......................... 0.00000E+00
z-moment.......................... 9.62622E+02
resultant force................... 2.82037E+00
resultant moment............ 9.62622E+02
JNTFORC文件中的铰链刚度ID由*CONSTRAINED_JOINT_STIFFNESS_ (GENERALIZED, FLEXION-TORSION)中设置卡1中的JSID定义,例如下方JSID为1。而JSID行下方的数据均与*CONSTRAINED_JOINT_STIFFNESS_ (GENERALIZED, FLEXION-TORSION)有关,与*CONSTRAINED_JOINT_<PLANAR>无关。
joint stiffness id number.... 1
x-displacement.................. 8.95355E+05
d(dispx)/dt........................... 5.37666E+02
y-displacement.................. 0.00000E+00
d(dispy)/dt........................... 0.00000E+00
z-displacement.................. 1.74889E+00
d(dispz)/dt........................... 4.99717E+01
force-x-stiffness................. 6.21757E+02
force-x-damping................ 0.00000E+00
force-x-total........................ 6.21757E+02
force-y-stiffness................. 0.00000E+00
force-y-damping................ 0.00000E+00
force-y-total........................ 0.00000E+00
force-z-stiffness................. 1.92379E+03
force-z-damping................ 0.00000E+00
force-z-total........................ 1.92379E+03
joint energy......................... 1.68268E+03
只有当*CONSTRAINED_JOINT_STIFFNESS_FLEXION-TORSION or _GENERALIZED中的某几个选项的参数为表格数据(ID为负数形式),而不是曲线数据时,*CONSTRAINED_JOINT_STIFFNESS_ (GENERALIZED, FLEXION-TORSION)中的JID这一选项才会生效。In this case, the table (*DEFINE_TABLE) lists n values of reaction force and then n curves are defined (*DEFINE_CURVE) immediately after the table. Each of these curves defines a moment limiting value vs. rotation for a specifc value of 'reaction force' developed by joint JID. JID doesn't apply in the case of *CONSTRAINED_JOINT_STIFFNESS_TRANSLATIONAL.(存疑,暂不译)
本文翻译自官方文档,原文链接:
https://www.dynasupport.com/howtos/general
一、有效塑性应变 (Effective plastic strain)
有效塑性应变是一个单调增加的标量值,是变形率张量中的塑性部分(Dp)ij的函数,以张量形式表示如下:
epspl=integral over time of (depspl)=integral[sqrt(2/3(Dp)ij*(Dp)ij)]*dt
当材料处于屈服状态,也就是说应力状态位于屈服面上时,有效塑性应变就会不断增加。
相反,LS-DYNA中输出的应变张量值(*DATABASE_EXTENT_BINARY中的STRFLG参数为1时输出)并不一定是单调增加的,因为它反应的是模型整体在当前状态下的变形状态,包括d性和塑性两部分。点击Fcomp >Strain可以显示应变张量的云图。
有效应变与有效塑性应变是不同的,它的张量表示是( p. 461 of LS-DYNA Theory Manual 2006):
sqrt(2/3(eps)ij*(eps)ij)
LS-DYNA中还可以显示其他种类的应变,都是通过节点位移计算而来,例如:
FCOMP >Infin
FCOMP >Green
FCOMP >Almansi
二、环境变量(Environment variables)
**仅适用于UNIX系统**
940.1版本的LS-DYNA中引入了如下环境变量:
LSTC_FILE :用来定义许可证文件
默认文件目录为:/usr/local/lstc/LSTC_FILE,可以使用setenv LSTC_FILE (license file name) 命令来指定文件名。
LSTC_SECURE :用来定义许可证文件的格式
目前支持三种文件格式:old,new和eta。若不设置这一环境变量,程序将全部检查这三种格式。也可以通过如下命令指定检查格式:
setenv LSTC_SECURE old
setenv LSTC_SECURE new
setenv LSTC_SECURE eta
LSTC_DEFGEO :以Chrsyler's格式输出ASCII文件DEFGEO
不设置这一变量时程序将输出标准LS-DYNA格式;要输出Chrsyler's格式则应使用如下命令:
setenv LSTC_DEFGEO chrysler
LSTC_OUTPUT :定义输出文件的格式
除了LS-DYNA标准格式,程序还支持其他的一些格式,但这一命令一般只有一些有特殊需求的用户使用,例如:
setenv LSTC_OUTPUT ge
LSTC_FORMAT :定义d3plot 和 d3thdt 文件的格式
这一命令可以让用户指定输出的二进制文件格式为ANSYS格式或ANSYS+LS-DYNA格式,默认情况下输出标准LS-DYNA格式。输出ANSYS格式:
setenv LSTC_FORMAT ansys
输出ANSYS+LS-DYNA格式:
setenv LSTC_FORMAT taurus+ansys
此外,用户也可以使用关键字*DATABASE_FORMAT来进行相关设置。
LSTC_BINARY :定义d3plot 和 d3thdt文件的大小为32位IEEE
用户可以使用这一命令来减小由64位设备输出的文件大小,不设置的话则默认与设备的字节长度一致。调用命令如下:
setenv LSTC_BINARY 32ieee
此外,用户也可以使用关键字*CONTROL_OUTPUT来进行相关设置。
LSTC_MEMORY :控制内存扩展
用户可以使用命令行MEMORY来设置默认内存大小,此变量有两个选项。auto选项适用于自适应运行方式,这种情况下程序会自动进行内存扩展,只用于金属成型仿真,不能用于压溃类仿真;heap选项是转为CARY(克雷)计算机设计的,可以使程序在初始化之后将克雷计算机的内存降低到最小值。
setenv LSTC_MEMORY auto
setenv LSTC_MEMORY heap
三、状态方程(Equation of state)
在某些情况下,需要使用状态方程来精确模拟材料的变形行为。状态方程可以通过计算材料所受压力与密度(有时还有能量和温度)之间的关系来确定材料的变形行为。需要使用状态方程的情形主要有应变率非常高、材料所受压力远高于屈服应力以及冲击波的传播等。实际上,这些情况一般都是同时出现的。
对于非气态材料来说,*EOS_LINEAR_POLYNOMIAL 和 *EOS_GRUNEISEN是最常用的两种状态方程。Gruneisen的参数对于包括金属在内的许多材料都是适用的。
在物体受力时,总应力是偏应力和压力的总和,平均应力(sig1 + sig2 + sig3)/3等于压力。对于不考虑状态方程的本构模型,程序会直接计算主应力,主应力的压力分量只与体积应变有关。例如,对于d性材料来说,p = K * mu,其中K为体积模量,mu = rho/rho0 - 1。
对于考虑状态方程的模型来说,材料本身的本构模型会计算总应力的偏应力分量,而状态方程则会计算压力分量。
注意,状态方程只适用于连续介质单元(*ELEMENT_SHELL with shell type 13, 14, or 15 or *ELEMENT_SOLID),并且材料模型为需要EOS的*MAT_。
如果你在使用需要EOS的本构模型,可以利用*EOS_LINEAR_POLYNOMIAL来实现简单的体积行为(bulk behavior),此时需要设置C1为体积模量,其他参数均为0。只有在应变率处于中等水平的情况下才建议使用这一办法,汽车碰撞模型中的应变率即为中等水平。
Zukas (1990, John Wiley and Sons)出版的High Velocity Impact Dynamics是一本有关材料高应变率变形行为的不错的参考书。
可以在这一文献中查找大约50种材料模型的EOS参数:"Equation of State and Strength Properites of Selected Materials", Danial J. Steinberg, Lawrence Livermore National Laboratory, 1991 (Change 1 issued 1996), UCRL-MA-106439.
至于*EOS_TABULATED_COMPACTION 和 *EOS_TABULATED这两种类型的关键字,用户手册中讲的不太具体,以下是几点注意事项:
1.eVi这一项(曲线的横坐标)表示的是ln(relative volume),在压缩时是负值;
2.eVi = ln(relative volume) 这个值应该是降序排列的,也就是首先是拉伸对应的正值,最后是压缩对应的负值。
3.压缩时压力为正。当gamma=0时,Ci等于加载曲线中的压力值,所以应该和eVi的符号相反。
本文翻译自官方文档,原文链接:
https://www.dynasupport.com/howtos/general
一、精度控制(accuracy)
除了沙漏控制之外,若程序没有进行中点应变的计算(mid-point strain calculation),那么同样有可能会在旋转系统中产生应力(create stresses in a rotating system),从而得出一个较差的计算结果。要实现中点应变的计算,需要使用*CONTROL_ACCURACY这一关键字,并将第一个参数设为1。此时程序将会分别在n+1/2和n+1进行两次应变-位移矩阵,同时计算成本将会增加25%。对于显式计算,由于其n+1/2(对应的矩阵)和n+1(对应的矩阵)几乎相同,所以不需要进行精度的额外控制。对于时间步长超过了1000倍的隐式分析,*CONTROL_ACCURACY就很重要了;如果计算模型中有旋转的物体,那就必须使用这一设置。
二、统一单位制(Consistent units)
在LS-DYNA中需要设置统一的单位制:
1 force unit = 1 mass unit * 1 acceleration unit
1 acceleration unit = 1 length unit / (1 time unit)^2
1 density unit = 1 mass unit / (1 length unit)^3
下表给出了一些常用单位制以及钢的密度和d性模量作为参考,其中GRAVITY是重力加速度。
三、截面(Cross section)
一个模型的截面由一个节点集合以及一个或多个单元集合组成,单独的节点集或单元集都无法构成截面。一个准确的截面包括定义切割面的节点以及位于切割面上和切割面一侧的可变形单元。刚体单元对截面没有贡献,所以截面只包括变形体单元。
当用户使用*DATABASE_CROSS_SECTION_PLANE中的PLANE选项进行截面的定义时,LS-DYNA 程序会选择构成截面的节点和单元,并输出到D3HSP文件中以interface definition开头的字段中。
*DADABASE_SECFORC给定了截面力和力矩的输出时间间隔,并可以在全局坐标系或者以某一刚体或加速度传感器为基准的局部坐标系中输出。
除此之外,还可以在LS-PREPOST中利用SPLANE选项来定义截面并获得截面上的力和力矩,此时截面是固定在空间中的。 *** 作步骤为:SPLANE >给定截面的位置(define location of cross-section) >CUT >FORCE >选择输出的力或力矩的类型(select force or moment component) >PLOT。使用 LS-PREPOST中的SPLANE时,截面在空间是固定的,不随变形材料的移动而移动,也就是说被切割的单元集合随着模型的变形是可变的(FixM不会起到作用)。同时,程序只会输出未被隐藏部件的力的信息。
四、双精度(Double precision)
单精度、双精度程序的文件名分别包含_s和_d字样。双精度程序的运行时间大概比单精度程序多30%(不同平台会有不同)。
我们并不会总是预先知道某一计算模型是否需要进行双精度运算,唯一的办法就是同时用单双精度进行计算,看看是否会对计算结果产生影响。通常情况下隐式分析会比显式分析更为敏感。
在某些情况下需要进行双精度运算:
1.时间步数很大的显式分析,例如200000次时间步(2000000仅仅是可度量的范围,任何一个给定分析模型的时间步数都可能超过这一数值)。数值截断导致后期模型计算不准确的原因有很多(此句存疑),其中一个可能的原因是:随着计算进程的发展,节点增量位移和总位移之比会越来越小。也就是说,此时更新后的总位移没有足够用来精确计算后期增量位移的位数。
2.使用线性单元算法的隐式分析。
3.特征值分析。
4.使用单精度程序计算出来的结果不令人满意的任意模型。
对时间步的考虑:
我们需要关注的最重要的一点是时间步长要足够小,以实现足够的计算稳定性。若无法保证稳定性,那么考虑计算精度就没有任何意义。
假如用户非常保守,大大降低了时间步长(一个或两个数量级),那么除非使用双精度计算,否则会影响到计算精度。
输出plot文件时注意
使用双精度运行计算任务时,程序输出的文件也将是双精度的。由于输出文件的大小是原来的两倍,所以在使用FEMZIP 或 plotcprs等进行后处理时会出现一些问题。因此使用双精度程序计算时,应该以32位格式输出相关文件。
设置方法:
1.修改K文件: *DATABASE_FORMAT, IBINARY=1
2.修改环境变量: export LSTC_BINARY=32ieee
3.使用命令行: e. g. ls971 i=input 32ieee=yes
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)