LS-dyna常见挑战与解决方案全收录


LS-DYNA常见问题汇总


1.Consistent system of units 单位制度

相信做仿真分析的人第一个需要明确的就是一致单位系统(Consistent Units)。计算机只认识0&1、只懂得玩数字,它才不管你用的数字的物理意义。而工程师自己负责单位制的统一,否则计算出来的结果没有意义,不幸的是大多数老师在教有限元数值计算时似乎没有提到这一点。

见下面LS-DYNA FAQ中的定义:

Definition of a consistent system of units (required for LS-DYNA):

1 force unit = 1 mass unit * 1 acceleration unit

1 力单位 = 1 质量单位 × 1 加速度单位

1 acceleration unit = 1 length unit / (1 time unit)^2

1 加速度单位 = 1 长度单位/1 时间单位的平方

The following table provides examples of consistent systems of units.

As points of reference, the mass density and Young’s Modulus of steel are provided in each system of units. “GRAVITY” is gravitational acceleration.

MASSLENGTHTIMEFORCESTRESSENERGYDENSITYYOUNG’sVelocity (56.3KMPH)GRAVITY
kgmsNPaJoule7.83E+032.07E+1115.659.806
kgcms1.e-02N7.83E-032.07E+091.56E+039.81E+02
kgcmms1.e+04N7.83E-032.07E+031.569.81E-04
kgcmus1.e+10N7.83E-032.07E-031.56E-039.81E-10
kgmmmsKNGPaKN-mm7.83E-062.07E+0215.659.81E-03
gmcmsdynedy/cm2erg7.83E+002.07E+121.56E+039.81E+02
gmcmus1.e+07NMbar1.e7Ncm7.83E+002.07E+001.56E-039.81E-10
gmmms1.e-06NPa7.83E-032.07E+111.56E+049.81E+03
gmmmmsNMPaN-mm7.83E-032.07E+0515.659.81E-03
tonmmsNMPaN-mm7.83E-092.07E+051.56E+049.81E+03
lbfs2/ininslbfpsilbf-in7.33E-043.00E+076.16E+02386
slugftslbfpsflbf-ft15.24.32E+0951.3332.17
kgfs2/mmmmskgfkgf/mm2kgf-mm8.02E-107.00E+021.56E+04( Japan )
kgmmsmN1000Pa7.83E-062.07E+089.81E+02
gmcmms100000Pa7.83E+002.07E+06


2.Mass Scaling 质量缩放

质量缩放指的是通过增加非物理的质量到结构上从而获得大的显式时间步的技术。

在一个动态分析中,任何时候增加非物理的质量来增大时间步将会影响计算结果(因为F=ma)。有时候这种影响不明显,在这种情况下增加非物理的质量是无可非议的。比如额外的质量只增加到不是关键区域的很少的小单元上或者准静态的分析(速度很小,动能相对峰值内能非常小)。总的来说,是由分析者来判断质量缩放的影响。你可能有必要做另一个减小或消除了质量缩放的分析来估计质量增加对结果的灵敏度。

你可以通过人工有选择的增加一个部件的材料密度来实现质量缩放。这种手动质量缩放的方法是独立于通过设置*Control_timestep卡DT2MS项来实现的自动质量缩放。

当DT2MS设置为一个负值时,质量只是增加到时间步小于TSSFAC*|DT2MS|的单元上。通过增加这些单元的质量,它们的时间达到TSSFAC*|DT2MS|。有无数种TSSFAC和DT2MS的组合可以得到同样的乘积,因而有相同的时间步,但是对于每一种组合增加的质量将是不一样的。一般的趋势是TSSFAC越小,增加的质量越多。 作为回报,当TSSFAC减小时计算稳定性增加(就像在没有做质量缩放的求解中一样)。 如果TSSFAC缺省的值0.9会导致稳定性问题,可以试试0.8或者0.7。 如果你减小TSSFAC,你可以相应增加|DT2MS|,这样还是可以保证时间步乘积不变。

为了确定什么时候和位置质量自动增加了,可以输出GLSTAT和MATSUM文件。这些文件允许你绘出完整的模型或者单独部件所增加的质量对时间的曲线。为了得到由壳单元组成的部件增加的质量云图,将*database_extent_binary卡的STSSZ项设置为3。 这样你可以用ls-prepost绘出每个单元的质量增加量的云图,具体方法是通过选择Fcomp>Misc>time step size。

在*control_timestep中设置DT2MS正值和负值的不同之处如下:

负值:初始时间步将不会小于TSSFAC*-DT2MS。质量只是增加到时间步小于TSSFAC*|DT2MS|的单元上。当质量缩放可接受时,推荐用这种方法。用这种方法时质量增量是有限的。过多的增加质量会导致计算任务终止。

正值:初始时间将不会小于DT2MS。 单元质量会增加或者减小以保证每一个单元的时间步都一样。这种方法尽管不会因为过多增加质量而导致计算终止,但更难以作出合理的解释。

*control_timestep卡中的参数MS1ST控制是否只是在初始化时增加一次质量(MS1ST=1)还是任何需要维持由DT2MS所指定的时间步时都增加质量(MS1ST=0)。

你可以通过在*control_termination卡片中设置参数ENDMAS来控制当质量增加到初始质量一定比率时终止计算(只对自动质量缩放有效)


可变形点焊梁的质量缩放

*mat_spotweld卡的质量缩放参数DT只影响点焊单元。如果*control_timestep卡中没有指定质量缩放(DT2MS=0),而且时间由可变形点焊控制,可以用参数DT来在初始化时增加惯量到点焊单元上来提高时间步达到DT指定的值。当DT不为0时,增加到可变形点焊梁元上的质量会输出到d3hsp文件里。MATSUM 中动量和动能不受增加到可变形点焊上的质量的影响。GSLTAT中DOES和总的KE受增加的质量的影响。

考虑三种调用可变形点焊的质量缩放的情况:

1.当DT2MS为负值*mat_spotweld卡DT=0时,尽管在d3hsp文件中可变形点焊质量增量百分比不真实。下面几个值是正确的:d3hsp中”added spotweld mass”; 第一个时间步之后的”added mass” & “percentage increase”; glstat和matsum中的”added mass”。

2. 当DT2MS为负值且*mat_spotweld卡DT≠0时,可变形点焊质量增加不会包含在d3hsp、glstat、matsum文件中的”added mass”里。这非常容易令人误解。用户必须检查d3hsp文件的”added spotweld mass”。建议不要同时使用两种质量缩放标准,推荐使用第一种方法(即负的DT2MS&DT=0)。

3. 如果DT2MS=0且DT≠0,初始时间步将不考虑增加点焊的质量,但是之后每一个周期时间步都会增加10%,直到时间步达到正确的值(考虑点焊质量增加)。glstat & matsum不包含”added mass”的行。

注意质量增加会引起能量比率增长。



3.Long run times 长分析时间

当用显式时间积分时,对于仿真非常小的部件而分析时间又要相当长时没有好的方法。质量缩放(mass-scaling)增加了需要确认非物理质量的增加不会显著影响计算结果的负担。当使用时间缩放(time-scaling)时也有同样的问题。时间缩放(time-scaling)是指为了减小需要的时间步数,通过增加加载速率而缩短仿真时间。

要确认时间步不是仅由很少的小单元或者刚度大单元控制,可以通过在d3hsp文件中搜索”smallest”来显示100个最小的时间步单元。如果只有很少的几个单元控制时间步,可以把那些单元及邻近区域重新remesh或者把它们变成刚体。

可是仅运行必要长的时间是很明显的。这意味着在一个跌落分析的情况时,给跌落物体一个初速度,把它放在离地面一个非常小的距离。冲击之后,仅运行足够得到需要的结果的时间。

值得注意的是对于一个长时间的仿真,如果时间步数超过了50万步,最好使用双精度版本的LS-DYNA求解器,使截断误差的影响最小化。运行双精度版本要增加30%的时间。

对于长时间的分析,自动显式/隐式转换可能是一个选择。使用这种方法,用户可以指定在一个时间段内使用隐式积分。隐式积分的优点是时间步不由单元尺寸控制,所以可以得到大的时间步。当然,隐式计算也非常点用cpu时间。而且,目前并不是所有的LS-DYNA的功能和材料都在隐式分析中实现(大部分已经实现)。下面的FEA information newsletter里讨论了显式/隐式转换(http://www.feapublications.com/pages/pdfnews/3feadec.pdf)。


4.Quasi-static 准静态

动态松驰(Dynamic relaxation)并不是有意为一般的准静态(quasi-static)分析设置的。它适合于当预载只产生小的弹情况应变的施加预载,或者初始化系统到一个预定义的几何形状[1]。但对其它更多情况并不适合。

你可以通过做一个常规的显示仿真来模拟准静态分析,通过按需要调用时间/质量缩放(time-scaling,mass-scaling)来在可接受的时间内得到结果,但这种方法是需要技巧地。你必须监测系统动能按希望的使惯性效应最小化。基本上动能相对内能应该保持在一个较小的值。时间缩放是指加载比在准静态实验里更快,以减少总的仿真时间。关于质量缩放更多内容可以看”mass_scaling”一节。或者你可以尝试用LS-DYNA运行一个隐式静力分析。可以看用户手册里的卡片*control_implicit_…”和Appendix M。

See also: gravity.txt, readme.preload, mass_scaling, long_run_times, implicit.general, quick_initialization.

Note[1]:初始化到预定义的几何

1. 从第一次分析的最终状态输出一个节点位移文件。(这一部分未按原文翻译)注意d3plot文件里不包含节点转动信息,因此转动输出为0。这对初始化壳和梁单元会是个问题。LS-Prepost有一个选项是输出节点位移,在Output->Nodal Displacements里。但是这个输出是i8,3e16格式的,但需要的是i8,3e15,所以要注意修改一下。

如果你做了一个正常的动态松驰分析来得到初始状态,一个预定义位移和转动的drdisp.sif文件在DR阶段结束时会自动创建。

2. 在第二次分析时,快速的初始化到第一步输出的预定义的几何。你需要设置卡片*control_dynamic_relaxation里的参数IDRFLG=2,而且在命令行里指定”m=filename”(其中filename指第一步创建的文件)。这样在瞬态分析之前,LS-DYNA会自动做一个100步的预分析来使节点根据文件filename指定的数据移动到指定值。



5.Instability 计算不稳定

一些表示计算不稳定的消息如:

“out-of-range velocities” 速度超出范围

“negative volume in brick element” 体单元负体积

“termination due to mass increase” 因质量增加而终止

用来克服显式求解中的不稳定的方法如下:

首先(也是最重要的)是使用可获得的最新的LS-DYNA版本。最新的执行块可以从ftp://user@ftp.lstc.com上下载(注:前提是你有访问权限)。联系LSTC获得user帐号的密码。最新的BETA版执行块可以在ftp://ftp.lstc.com/outgoing/ls971上找到(不需要密码,但lstc公司对ftp访问有IP限制)。

其次是增加d3plot的输出频率到可以显示出不稳定的出现过程。这可以提供导致不稳定性发生的线索。



其它的不些解决数值不稳定性的技巧:

* 试着用双精度LS-DYNA版本运行一次

* 试着减小时间步(timestep)缩放系数(即使使用了质量缩放mass-scaling)

* 单元类型和/或沙漏(hourglass)控制。对出现不稳定的减缩体和壳单元,试着用沙漏控制type 4 和沙漏系数0.05

。或者试着用类型16的壳单元,沙漏控制type 8。如果壳响应主要是弹性,设置BWC=1 和 PROJ=1 (仅对B-T壳)。

避免使用type=2体单元。对体单元部件,在厚度方向最少用两个体单元。

* 接触。设置接触的bucket sorts之间周期数为0,这样会使用缺省的分类间隔。如果参与接触的两个部件的相对速

度异常的大,可能需要减小bucket sort的间隔(比如减小到5,2甚至1)。

如果仿真过程中有明显的接触穿透出现,转换到使用*contact_automatic_surface_to_surface或者

*contact_automatic_single_surface,并设置SOFT=1。 确保几何考虑了壳单元的厚度。如果壳非常薄,比如小于1mm,放大或者设置接触厚度到一个更加合理的值。

* 避免冗余的接触定义,也就是说不要对同样的两个部件定义多于一个的接触对。

* 查找出现不稳定的部件的材料定义中的错误(比如误输入,不一致的单位系统等)

* 关掉所有的*damping

这些技巧是一些通用的方法,可能并不适合于所有的情况。



6.Negative Volume 负体积

泡沫材料的负体积(或其它软的材料)

对于承受很大变形的材料,比如说泡沫,一个单元可能变得非常扭曲以至于单元的体积计算得到一个负值。这可能发生在材料还没有达到失效标准前。对一个拉格朗日(Lagrangian)网格在没有采取网格光滑(mesh smoothing)或者重划分(remeshing)时能适应多大变形有个内在的限制。LS-DYNA中计算得到负体积(negative volume)会导致计算终止,除非在*control_timestep卡里面设置ERODE选项为1,而且在*control_termination里设置DTMIN项为任何非零的值,在这种情况下,出现负体积的单元会被删掉而且计算继续进行(大多数情况)。有时即使ERODE和DTMIN换上面说的设置了,负体积可能还是会导致因错误终止。

有助于克服负体积的一些方法如下:

* 简单的把材料应力-应变曲线在大应变时硬化。这种方法会非常有效。

* 有时候修改初始网格来适应特定的变形场将阻止负体积的形成。此外,负体积通常只对非常严重的变形情况是个问题,而且特别是仅发生在像泡沫这样的软的材料上面。

* 减小时间步缩放系数(timestep scale factor)。缺省的0.9可能不足以防止数值不稳定。

* 避免用全积分的体单元(单元类型2和3),它们在包含大变形和扭曲的仿真中往往不是很稳定。全积分单元在大变形的时候鲁棒性不如单点积分单元,因为单元的一个积分点可能出现负的Jacobian而整个单元还维持正的体积。在计算中用全积分单元因计算出现负的Jacobian而终止会比单元积分单元来得快。

* 用缺省的单元方程(单点积分体单元)和类型4或者5的沙漏(hourglass)控制(将会刚化响应)。对泡沫材料首先的沙漏方程是:如果低速冲击type 6,系数1.0; 高速冲击type 2或者3。

* 对泡沫用四面体(tetrahedral)单元来建模,使用类型10体单元。

* 增加DAMP参数(foam model 57)到最大的推荐值0.5。

* 对包含泡沫的接触,用*contact选项卡B来关掉shooting node logic。

* 使用*contact_interior卡

用part set来定义需要用contact_interior来处理的parts,在set_part卡1的第5项DA4来定义contact_interior类型。缺省类型是1,推荐用于单一的压缩。在版本970里,类型1的体单元可以设置type=2,这样可以处理压缩和减切混合的模式。

* 如果用mat_126,尝试ELFORM=0

* 尝试用EFG方程(*section_solid_EFG)。因为这个方程非常费时,所以只用在变形严重的地方,而且只用于六面体单元。



7.Energy balance 能量平衡

GLSTAT(参见*database_glstat)文件中报告的总能量是下面几种能量的和:

内能 internal energy

动能 kinetic energy

接触(滑移)能 contact(sliding) energy

沙漏能 houglass energy

系统阻尼能 system damping energy

刚性墙能量 rigidwall energy

GLSTAT中报告的弹簧阻尼能”Spring and damper energy”是离散单元(discrete elements)、安全带单元

(seatbelt elements)内能及和铰链刚度相关的内能(*constrained_joint_stiffness…)之和。而内能”Internal Energy”包含弹簧阻尼能”Spring and damper energy”和所有其它单元的内能。 因此弹簧阻尼能”Spring and damper energy”是内能”Internal energy”的子集。

由SMP 5434a版输出到glstat文件中的铰链内能”joint internal energy”跟*constrained_joing_stiffness不相关。它似乎与*constrained_joint_revolute(_spherical,etc)的罚值刚度相关连。这是SMP 5434a之前版本都存在的缺失的能量项,对MPP 5434a也一样。这种现象在用拉格朗日乘子(Lagrange Multiplier)方程时不会出现。

与*constrained_joint_stiffness相关的能量出现在jntforc文件中,也包含在glstat文件中的弹簧和阻尼能和内能中。回想弹簧阻尼能”spring and damper energy”,不管是从铰链刚度还是从离散单元而来,总是包含在内能里面。

在MATSUM文件中能量值是按一个part一个part的输出的(参见*database_matsum)。

沙漏能Hourglass energy仅当在卡片*control_energy中设置HGEN项为2时才计算和输出。同样,刚性墙能和阻尼能仅当上面的卡片中RWEN和RYLEN分别设置为2时才会计算和输出。刚性阻尼能集中到内能里面。质量阻尼能以单独的行”system damping energy”出现。由于壳的体积粘性(bulk viscosity)而产生的能量耗散(energy dissipated)在版本970.4748之前是不计算的。在后续子版本中,设置TYPE=-2来在能量平衡中包含它。



最理想的情况下能量平衡:

总能量total energy = 初始总能量 + 外力功external work

换句话说,如果能量比率energy ratio(指的是glstat中的total energy/initial energy,实际上是total energy/(initial energy + external work)) 等于1.0。注意,质量缩放而增加质量可能会导致能量比率增加。

注意在LSprepost的History>Global energies中不包含删掉的单元(eroded elements)的能量贡献,然而GLSTAT文件中的能量包含了它们。注意它们的贡献可以通过ASCII>glstat中的”Eroded Kinetic Energy”& “Eroded Internal Energy”来绘制。侵蚀能量(Eroded energy)是与删掉的单元相关的内能和删掉的节点相关的动能。 典型来说,如果没有单元删掉”energy ratio w/o eroded energy”等于1,如果有单元被删掉则小于1。删掉的单元与”total energy/initial energy”比率没有关系。总能量比率增加要归于其它原因,比如增加质量。重述一下,将一个单元删掉时,文件glstat中的内能和动能不会反映能量的丢失。取而代之的是能量的丢失记录在glstat文件的”eroded internal energy” & “eroded kinetic energy”中。 如果用内能减去”eroded internal energy”将得到分析中还存在的单元的内能。对动能也一样。

matsum文件中的内能和动能只包含余下(noneroded)的单元的贡献。

注意,如果在*control_contact卡中将ENMASS设置为2,则与删掉的单元的相关的节点不会删掉,”eroded kinetic energy”是0。

在LSprepost中History>Global 只是动能和内能的简单相加,因此不包含接触能和沙漏能等的贡献。

壳的负内能:为了克服这种不真实的效应

--关掉考虑壳的减薄(ISTUPD in *control_shell)

--调用壳的体积粘性(set TYPE=-2 在*control_bulk_viscosity卡中)

--对在matsum文件中显示为负的内能的parts使用*damping_part_stiffness;

先试着用一个小的值,比如0.01。如果在*control_energy中设置RYLEN=2,因为刚性阻尼而能会计算且包含在内能中。

正的接触能:当在接触定义中考虑了摩擦时将得到正的接触能。摩擦将导致正的接触能。如果没有设置接触阻尼和接触摩擦系数,你将会看到净接触能为零或者一个很小的值(净接触能=从边和主边能量和)。 所说的小是根据判断-在没有接触摩擦系数时,接触能为峰值内能的10%内可以被认为是可接受的。

负的接触能:突然增加的负接触能可能是由于未检测到的初始穿透造成的。在定义初始几何时考虑壳的厚度偏置通常是最有效的减小负接触能的步骤。查阅LS-DYNA理论手册的23.8.3&23.8.4节可得到更多接触能的信息。

负接触能有时候因为parts之间的相对滑动而产生。这跟摩擦没有关系,这里说的负接触能从法向接触力和法向穿透产生。当一个穿透的节点从它原来的主面滑动到临近的没有连接的主面时,如果穿透突然检测到,则产生负的接触能。

如果内能为负接触能的镜像,例如glstat文件中内能曲线梯度与负接触能曲线梯度值相等,问题可能是非常局部化的,对整体求解正确性冲击较小。你可以在LS-prepost中分离出有问题的区域,通绘制壳单元部件内能云图(Fcomp > Misc > Internal energy)。实际上,显示的是内能密度,比如内能/体积。内能密度云图中的热点通常表示着负的接触能集中于那里。

如果有多于一个的接触定义,sleout文件(*database_sleout)将报告每一个接触对的接触能量,因此缩小了研究负接触能集中处的范围。

克服负接触能的一般的建议如下:

-消除初始穿透(initial penetration)。(在message文件中查找”warning”)

-检查和排除冗余的接触条件。不应该在相同的两个parts之间定义多于一个的接触。

-减小时间步缩放系数

-设置接触控制参数到缺省值,SOFT=1 & IGNORE=1除外(接触定义选项卡C)

-对带有尖的边的接触面,设置SOFT=2(仅用于segment-to-segment接触)。而且,在版本970中推荐设置SBOPT(之前的EDGE)为4对于部件之间有相对滑移的SOFT=2的接触。为了改进edge-to-edge SOFT=2接触行为,设置DEPTH=5。请注意SOFT=2接触增加了额外的计算开消,尤其是当SBOPT或者DEPTH不是缺省值时,因此应该仅在其它接触选项(SOFT=0或者SOFT=1)不能解决问题时。模型的细节可能会指示可用其它的一些方法。



8.Hourglass control 沙漏控制

沙漏(hourglass)模式是一种非物理的零能变形模式,产生零应变和应力。沙漏模式仅发生在减缩积分(单积分点)体、壳和厚壳单元上。LS-DYNA里面有多种算法用于抑制沙漏模式。缺省的算法(type 1)通常不是最有效的算法,但却是最经济的。

一种完全消除沙漏的方法是转换到全积分或者选择减缩积分(S/R)方程的单元。但这种方法是一种下策。例如,第一,类型2体单元比缺省的单点积分体单元计算开消大; 其二,在大变形应用时更不稳定(更容易出现负体积);其三,类型2体单元当单元形状比较差时在一些应用中会趋向于剪切锁死(shear-lock),因而表现得过于刚硬。

三角形壳和四面体单元没有沙漏模式,但缺点是在许多应用中被认为过于刚硬。

减小沙漏的一个好的方法是细化网格,但这当然并不总是现实的。

加载方式会影响沙漏程度。施加压力载荷优于在单点上加载,因为后者更容易激起沙漏模式。

为了评估沙漏能,在*control_energy卡片中设置HGEN=2,而且用*database_glstat和*database_matsum卡分别输出系统和每一个部件的沙漏能。这一点是要确认非物理的沙漏能相对于每一个part的峰值内能要小(经验上来说<10%)。对于壳单元,可以绘制出沙漏能密度云图,但事先在*database_extent_binary卡中设置SHGE=2。然后在LS-Prepost中选择Fcomp>Misc>hourglass energy。

对于流体部件,缺省的沙漏系数通常是不合适的(太高)。因此对于流体,沙漏系数通常要缩小一到两个数量级。对流体用基于粘性的沙漏控制。缺省的沙漏方程(type 1)对流体通常是可以的。

对于结构部件一般来说基于刚性的沙漏控制(type 4,5)比粘性沙漏控制更有效。通常,当使用刚性沙漏控制时,习惯于减小沙漏系数到0.03~0.05的范围,这样最小化非物理的硬化响应同时又有效抑制沙漏模式。对于高速冲击,即使对于固体结构部件,推荐采用基于粘性的沙漏控制(type 1,2,3)。

粘性沙漏控制仅仅是抑制沙漏模式的进一步发展,刚性沙漏控制将使单元朝未变形的方向变形。

类型8沙漏控制仅用于单元类型16的壳。这种沙漏类型激活了16号壳的翘曲刚度,因此单元的翘曲不会使解退化。如果使用沙漏控制8,16号壳单元可以用于解被称为扭曲梁(Twisted Beam)问题。

对于单元类型1的体和减缩积分2D体(shell types 13 & 15)类型6沙漏控制调用了一种假设应变协同转动方程。使用沙漏控制类型6和系数1.0,一个弹性部件在厚度方向仅仅需要划分一层类型1的体单元就可以获得正确的弯曲刚度。在隐式计算里面,对于类型1的体单元应该总是使用类型6的沙漏控制(实际上,在V970里面这是自动设置的)。

(More on type 6 HG control from Lee Bindeman)

类型6的沙漏控制与类型4,5不在于它用了一个假设应变场和材料属性来估算出假设应力场。这个应力在单元封闭域内进行积分得到沙漏力,因此单元表现的像一个有同样假设应变场的全积分单元。这种假设应变场设计成用来阻止纯弯曲中不真实的剪切变形和近似不可压材料中的体积锁死。

类型4和5的沙漏控制基于单元体积,波速和密度像在LS-DYNA理论手册中方程3.21那样来计算沙漏刚度。

沙漏类型6主要的改进是应力场在单元域内积分。这使得当使用大的长细比或者歪斜形状的体单元时沙漏控制非常鲁棒。类型4和5的沙漏控制对大长细比和歪斜形状单元反应变不好,它趋向于对某些沙漏模式反应的过于刚硬而对其它模式反应得过弱。

沙漏控制类型6另一个理论上的优点是对在厚度方向只有一个单元的梁可以在弹性弯曲问题中得到准确的解。要做到这一点,设置沙漏刚度参数为1.0。同样,对弹性材料方形截面杆的扭曲问题,当沙漏系数设为1.0时可以用很少的单元来解。然而,对于非线性材料,用粗糙的网格得到好的结果是不可能的,因为应力场不是像沙漏类型6假设的那样线性变化的。在梁厚度方向上如果没有更多积分点的话,没有办法捕获应力场的非线性状态。

对于选择沙漏控制,下面几个问题要考虑。对于单元有大的长细比或者明显歪斜(不管是初始还是变形过程中),推荐采用类型6的沙漏控制。类型6的沙漏控制通常对软的材料更好,像泡沫或蜂窝材料在计算中会有非常明显的变形。

在材料不是特别软或者单元有合理的形状且网格不是太粗糙时,类型4,5和6沙漏控制似乎都能得到同样的结果。这种情况推荐用类型4的沙漏控制,因为它比其它的更快。

类型6的沙漏控制在LS-DYNA User’s Manual中参考的Belytschko和Bindeman的论文中有更详细的描述。


9.Damping 阻尼

在LS-DYNA中阻尼完全是可选的,通过使用一个*DAMPING卡片来调用。应该知道能量可以通过其它的非*DAMPING的方式耗散,比如,因为沙漏力产生的能量,刚性墙的力产生的能量,接触摩擦力产生的能量,离散阻尼产生的内能等。

有时候,接触力可能将噪声引入到响应里。在这种情况下,通过*CONTACT卡第二张卡的VDC参数来增加粘性阻尼,从而帮助减小噪声。VDC以临界阻尼的百分比输入,典型的值是10到20。


*DAMPING卡片概览:


LS-DYNA中的质量阻尼(Mass damping)包括*damping_global & *damping_part_mass,是用于抑止低频的结构振动模式,但此外它有抑制刚体模式的效应。因此对经受明显刚体运动的部件,应该要么从质量阻尼中排除或者在部件经历大的刚体运动期间关掉质量阻尼;或者使用*damping_relative来替代。通过使用*damping_relative,仅仅相对指定刚体的运动/振动被抑制。

在质量阻尼情况下临界阻尼系数是4*pi/T,其中T是要抑制的模态的周期(通常是最低阶(基频)模态)。周期可以通过特征值分析(eigenvalue)或者从一个无阻尼的瞬态分析结果来估计。如果选择使用质量阻尼,建议使用小于临界阻尼系数的阻尼值。取10%的临界阻尼的值,即输入0.4*pi/T,是相当典型的值。可以选择用同样的阻尼系数抑制所有的部件(*damping_global)或者对每一个部件指定不同的阻尼系数(*damping_part_mass)。在任何一种情况下,阻尼系数可能会随时间变化(在仿真中间关掉或打开阻尼时会有用)。

*damping_part_stiffness是为了抑制高频振动和数值振荡,通常对结构振动没有明显的影响。这种情况下阻尼系数COEF近似表示临界阻尼的一个系数。典型的COEF值是0.1。如果使用刚性阻尼产生不稳定,消除阻尼或者减小COEF的值来使回复稳定(也许降低一个数量级或者在某些情况下更多)。

质量和刚性阻尼在隐式瞬态分析中都实现了。

在版本970中另一个可选的阻尼是频率不相关的阻尼选项,它的目标是抑制一个范围的频率和一批部件(*damping_frequency_range)。Damping_frequency_range是由Arup的Richard Sturt开发的,它的理论细节是私有的。它开发的意图是帮助LS-DYNA来适当地处理振动预测问题中的阻尼--包括车辆NVH时间历程分析,某些地震问题和土木结构的振动问题。


*damping_frequency_range的关键点在于:

-仅使用很小的阻尼,例如1%到2%

-处理阻尼将轻微的减小了响应的刚度,那是因为阻尼力的应力滞后于理论上正确的阻尼力,由于需要估计频率内容。

-用户指定的频率范围最理想情况是不要超过最高值和最低值之间30%。在这个范围之外同样可以获得阻尼,但阻尼值会减小。这种阻尼是基于节点速度的,所以可能会由于结构模态或者刚体转动而有振荡。

在Rayleigh阻尼里,阻尼矩阵表达为质量和刚度矩阵的线性组合

C = alpah*M + beta*K

LS-DYNA为标准的非线性分析在单元级实现Rayleigh阻尼。这是为了数值上的方便,因为在显式方法里不需要生成刚度矩阵K。取而代之,通过简单的将应力在单元面积上积分得到内力。Rayleigh阻尼作为这个应力的一个修正而实现。

版本960中的刚性阻尼(stiffness damping)完全重新实现,即使这样可以在960中提供COEF值,这个值与950中的BETA值是相符的,其中:COEF=BETA*(w/2)

版本950和960中的刚性阻尼不完全相同。在960中刚性阻尼方程在高频域提供一个近似的临界阻尼分数。方程的详细信息是不公开的。这个方程中的变化是因为使用旧版本方程时产生不稳定的频率而促使的。在版本970的3510子版本(或者更高)中,旧的950版本的刚性阻尼方程作为一个选项提供,通过设置COEF值为负值来调用。这个参数之后被解释成V950用户手册中所指的BETA值。


10.ASCII output for MPP via binout

从970版本开始,有了二进制格式格式的所谓的ASCII output文件(matsum,rcforc,etc.)。--注单机版和smp版输出的为文本格式的ASCII output文件。

MPP-DYNA 不是直接写出ASCII输出文件,而是输出二进制格式数据。这些数据可以有两种格式:dbout(参见V.970用户手册Appendix L,P.L3)和binout。MPP缺省情况下会输出binout格式的数据。卡片*database_matsum,*database_rcforc,etc的第二个参数控制输出哪一种类型的数据。

1= old format,例如,ASCII文件(SMP) 或者 dbout文件(MPP)

2= new binout格式(对MPP版这是缺省的)

3= both formats都输出

LS-Prepost可以直接读取binout数据而不需要转换,但dbout文件需要用dumpbdb来转换成ASCII格式输出。 在LS-Prepost里,选项页”2″(启动界面右边的Group按钮下面),在CFD按钮下面有“Binout”按钮。点击之后在左下面出现的子面板中点击“Load”按钮,选择求解器输出的binout文件。之后可以进行相关曲线的绘制。(此处修改原文部分)

作为lsda软件包的一部分,有两个程序可以获得(以用户账号登陆lstc ftp site,在”lsda”目录下)。一个是”l2a”,它可以用来从binout文件中提取不同的ascii文件。另一个是”ioq”,它是让你用来直接读取/浏览binout文件的小工具。

通常一个”l2a”执行块会包含在相应平台的MPP执行块的压缩包里,但你也可以用那个l2a来操作任何ls-dyna执行块(MPP or SMP)产生的binout文件。要从binout文件中提取ASCII输出文件,在命令行执行l2a,后面包含binout文件的名字。例如:”./l2a binout.0000″

Binout文件是平台无关的,例如,你可以在与输出binout数据的平台同一平台或者任何其它平台下处理binout数据。


当MPP LS-DYNA执行块输出binout数据时,将会有多于一个的文件以”binout”作为根名字。每一个这样的文件需要被独立的打开来得到所有需要的数据。在d3hsp文件里,你可以看到像如下的部分所示的信息告许你每一个binout文件包含哪些数据。

>The following binary output file are being created,

>and contain data equivalent to the indicated ascii output files

> binout0000:(on processor 0)

> nodout

> matsum

> rcforc

> abstat

> rbdout

> sleout

> jntforc (type 0)

> binout0001:(on processor 1)

> jntforc

> binout0003:(on processor 3)

> deforc


对MPP可选的控制输出格式的方法(from Jason):

如果你在pfile中输入如下行

pfile:

gen {dboutonly}

to execute:

mpirun -np ## mpp970 i=… p=pfile

程序将像之前一样输出dbout.*文件(没有binout),之后你可以用dumpbdb来提取所有的ASCII文件。



11.Contact Overview 接触概述

这里提供LS-DYNA接触的一些简要信息。讨论不包含所有的接触类型的接触选项。更详细的LS-DYNA的接触回顾可以在www.feapublicatoins.com上找到FEA Information Newsletters中关于接触模型的由四个部分组成的系列文章。这一系列文章的四部分分别在2001年的8,9,10,12月份的新闻信里。

Automatic vs. Non-automatic:

对大多数显式分析推荐用自动接触类型。非自动接触类型(接触方向是重要的情况)有时用于金属成型仿真,其中几何是非常直接的且接触面的方向在分析之间可以可靠的确定。非自动接触通常推荐用于隐式分析。


类型:

Type 13接触(contact_automatic_single_surface)是一种单面接触(不需要定义主面),总是考虑壳的厚度且没有方向性。因而参与接触的板壳面在建模的时候需要至少保持一个小的间隙。为了避免初始穿透,间隙不能小于潜在会发生接触的两个壳之间厚度的平均值。体单元之间不需要有间隙。接触类型13的接触搜索算法比接触类型3(contact_surface_to_surface)或者接触类型a3(contact_automatic_surface_to_surface)更加复杂。例如,type13可以处理例如壳边对面,梁对壳面的情况。和任何其它单面接触类型一样,接触力不是直接从RCFORC文件中获取,你必需要定义contact_force_transducer_penalty来获取接触力。文章”contact.13vs26″提供了关于contact_automatic_single_surface 和contact_automatic_general对比的一些额外信息。

Type 3接触(contact_surface_to_surface)是双向的面对面接触,其中壳的厚度考虑选项可以通过*contact或者*control_contact(*contact优先)卡片打开或者关闭。接触片的方向是很重要的,因为这种接触类型只在一个方向来检测潜在的接触。

在如面对面的一个双向接触中,先检测从面侧的节点对主面的穿透,然后再检测主面侧的节点对从面的穿透。这种方法当用用设置SOFT=2来调用segment-based接触时会有例外。

接触类型a3没有方向性(从壳的中面检测任一侧的潜在接触)而且总是考虑壳厚度,从这一点考虑它非常类似于type 13的接触。


接触参数的一些摘记:


SOFT

SOFT是*contact选项卡A的第一个参数。SOFT的缺省值是0。SOFT=1除了在确定接触刚度方面之外与SOFT=0差不多是一样的。SOFT=2与SOFT=0根本上是不一样的,不但在确定接触刚度方法上,而且在搜索穿透的产生的方法上也不一样。SOFT=2会调用所谓的”segment-based contact”。对于SOFT=1 & 2接触的摘记可以分别参考文章”contact.soft1″ & “contact.soft2″。(稍后推出,敬请期待)


IGNORE

在仿真分析中的任何一个时间点,如果一个节点突然检测到在面下面(比如说,节点运动的非常快,穿透之前没有检测到),原来的(IGNORE=0)算法仅仅是把节点移动到主面上,不施加任何力(称之为”shooting node logic”)。如果shooting node logic选项被关掉(SNLOG=1),会突然出现一个相当大的力,而且产生负的接触能。如果IGNORE设置为1,这样shooting node logic标志SNLOG没有作用。相当于突然的穿透被留意到而且通过局部的调整接触厚度来补偿。因此在任何分析的时间点,如果检测到突然的穿透,程序不会施加任何很大的力也不会移动任何节点。但接触力会阻止进一步的穿透。


12.Contact Soft 1 接触Soft=1

通过在*Contact卡的选项卡A中设置Soft=1所调用接触方程与缺省的罚函数接触方程的区别不如Soft=2接触算法大。除了在确定接触刚度方面不一样外,Soft=1和Soft=0是差不多的。Soft=1方法基于考虑稳定性的时间步来计算接触刚度。换句话说,你可以把soft=1的接触看作是一组简单弹簧质量系统,其中每一个都有与实际仿真分析中用到的时间步相匹配的Courant 时间步。对软材料与刚硬材料的接触或两个接触面的网格密度不一致情况,Soft=1通常比Soft=0更有效。

当Soft=1时,采用通过soft=0 & soft=1计算得到的最大的刚度值。因此如果soft=0刚度更大,减小SOFSCL将没有效果。

K = max(SLSFAC*SFS*k0, SOFSCL*k1)

其中:

k 是罚刚度

SLSFAC是用户在*Control_contact中输入的选项

SFS 是用户在*Contact卡3中输入的选项

SOFSCL 是用户在*Contact选项卡A中输入的值

k0 是从材料体积模量和单元尺寸计算得到的刚度

k1 是从节点质量和计算时间步计算得到的刚度

注意:对于双面接触,像*contact_automatic_surface_to_surface,在上面的方程中用SFM替换SFS(在*contact卡3中输入)


13.LS-DYNA中夹层板(sandwich)的模拟

在LS-DYNA中夹层板(sandwich plate)通常有三种方式来模拟

1. 采用几层体单元来模拟,当板比较薄,沿厚度方向单元尺寸比较小,时间步很难提高,

2. 中间的夹层材料用体单元模拟,外面的包层材料用shell单元模拟,在体单元和壳单元之间用Contact_tied (_offset)卡建立粘接关系,

3. 用一层壳单元来模拟。对材料*Mat_composite_damage和*mat_enhanced_composite_damage打开层板理论选项(*control_shell卡LAMSHT项设置为


1)对最后一种方式,需要定义*intergration_shell卡片。

例如下面这个层合板:

*INTEGRATION_SHELL

1,8,0

-.9722, .02778, 1

-.9167, .02778, 1

-.6667, .22222, 2

-.2222, .22222, 2

.2222, .22222, 2

.6667, .22222, 2

.9167, .02778, 3

.9722, .02778, 3

*PART

material

1 1 11

*PART

material

2 1 12

*PART

material

3 1 11

*SECTION_SHELL

1 2 0.0000000 8.0000000 0.00000 -1.000000 0

18.000000 18.000000 18.000000 18.000000 0.0000000

*mat_composite_damage

11, 2.7e-6, 73.4, 73.4, 73.4, 0.32, 0.32, 0.32

27.8, 27.8, 27.8

1.e9, 1.e9, 1.e9, 1.e9

*mat_composite_damage

12, 6.3e-7, 0.286, 0.286, 0.286, .3, .3, .3

0.11, 0.11, 0.11

1.e9, 1.e9, 1.e9, 1.e9


其中*intergration_shell卡片中第一项S表示板厚度方向积分点的规一化坐标值,从-1到

1。

积分点规一化坐标=(积分点全局Z坐标-中面Z坐标)/(thickness/2)

第二项WF(Weighting factors)为与积分点关联的厚度与整个板厚度的比值,WF和应该为1。第三项指向各层对应的part ID号,这个part ID号仅用来指定这一层的材料。


14. LS-DYNA隐式-显式自动转换例子

在LS-DYNA中可以通过卡片*Control_implicit_general的选项imflag指定为一个负值(这个负值的绝对值为一条*define_curve ID),来自动实现在指定的时间内作隐式或显式分析。

这里的例子为一个一端固定平板,另一端施加从0-0.01秒从0增加到10.0的力,之后释放。曲线ID3 指定从0-0.01秒内用隐式计算,增量步为20步。之后自动转为显式继续求解。


14. 怎样进行二次开发

14.1 二次开发的过程和需要的文件

在回答这个问题前,给大家一点背景知识(针对vwindows平台):

1、DYNA只是一个求解器(一个固定的可执行的exe文件),它可以读取K文件,并进行计算,最终输出结果。

2、DYNA开发过程:

编译       连接

DYNA源代码---->DYNA.OBJ文件或DYNA.lib————>DYNA.exe

如果进行二次开发,实际上就是要修改原有的exe文件,在其中加入自己的程序(子材料什么的)。而不管你是“一般用户”还是正版用户,都不太可能直接修改exe文件(除非你特别特别牛,能直接编写机器语言(比汇编语言还低一级别),开个玩笑,基本不可能实现)。所以目前DYNA开发商,给正版用户提供了下面的方式进行二次开发:

编译     连接

自定义程序代码(F文件)————>OBJ文件 + DYNA.lib————>新的DYNA.exe文件(其中包含自定义的部分)

从上面可以看出二次开发实际上是重新生成了一个全新的可执行程序,这一过程需要F文件、 DYNA.lib和其它资源文件,而不需要原来的DYNA.EXE文件,所以不管你是正版还是别的,如果没有DYNA.lib文件等都是不可能进行二次开发的。而“一般用户 ”和正版用户的区别在于:

1、正版用户可以直接要求开发商提供F文件、 DYNA.lib和其它资源文件,而一般用户只有通过其它渠道。

2、将K文件提交DYNA.EXE计算时,正版用户由于有license ,可以直接通过检查并进行计算;而“一般用户”目前基本上是通过修改 DYNA.exe文件。跳过检查,最终实现计算的。

一般用户”要实现二次开发就必需首先有F文件、 DYNA.lib和其它资源文件;通过编译连接后生成新的EXE文件;再修改EXE文件,跳过license检查(这个网上有说明具体过程,所以关键是要得到那几个二次开发文件)。

“一般用户”完全有可能进行二次开发,关键是要通过其它渠道得到正版用户才有的F文件、DYNA.lib和其它资源文件


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空