LS-DYNA常见问题汇总10 下载本文

LS-DYNA常见问题汇总

1.0

资料来源:网络和自己的总结 yuminhust2005

Copyright of original English version owned by relative author. Chinese version owned by Aifea.com/Kevin

目录

1.Consistent system of units 单位制度 ......................................................................................... 2 2.Mass Scaling 质量缩放 ............................................................................................................... 4 3.Long run times 长分析时间 ....................................................................................................... 9 4.Quasi-static 准静态 ................................................................................................................... 11 5.Instability 计算不稳定 .............................................................................................................. 14 6.Negative Volume 负体积 ........................................................................................................... 17 7.Energy balance 能量平衡 ......................................................................................................... 20 8.Hourglass control 沙漏控制 ..................................................................................................... 27 9.Damping 阻尼 ............................................................................................................................ 32 10.ASCII output for MPP via binout ........................................................................................... 37 11.Contact Overview 接触概述 ................................................................................................... 41 12.Contact Soft 1 接触Soft=1 ..................................................................................................... 45 13.LS-DYNA中夹层板(sandwich)的模拟 .................................................................................. 47 14. 怎样进行二次开发.................................................................................................................. 50

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.

Velocity LENGTTIMENERGDENSITGRAVITMASS FORCE STRESS YOUNG’s (56.3KMPH E Y Y Y H) kg kg kg kg kg gm gm gm gm ton lbfs2/in slug kgfs2/mm kg m cm cm cm mm cm cm mm mm mm in ft mm mm s s ms us ms s us s ms s s s s s N 1.e-02N 1.e+04N 1.e+10N KN 1.e+07N 1.e-06N N N lbf lbf Pa Joule 7.83E+03 2.07E+11 15.65 9.806 7.83E-03 2.07E+09 1.56E+03 9.81E+02 7.83E-03 2.07E+03 1.56 9.81E-04 7.83E-03 2.07E-03 1.56E-03 9.81E-10 15.65 9.81E-03 GPa KN-mm 7.83E-06 2.07E+02 dyne dy/cm2 erg 7.83E+00 2.07E+12 1.56E+03 9.81E+02 Mbar 1.e7Ncm 7.83E+00 2.07E+00 1.56E-03 9.81E-10 Pa MPa MPa psi psf 7.83E-03 2.07E+11 1.56E+04 9.81E+03 15.65 9.81E-03 386 32.17 N-mm 7.83E-03 2.07E+05 N-mm 7.83E-09 2.07E+05 1.56E+04 9.81E+03 lbf-in 7.33E-04 3.00E+07 6.16E+02 lbf-ft 15.2 4.32E+09 51.33 kgf kgf/mm2 kgf-mm 8.02E-10 7.00E+02 1.56E+04 (Japan) mN 1000Pa 7.83E-06 2.07E+08 9.81E+02 gm cm ms 100000Pa 7.83E+00 2.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‖的行。

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

English Version:

Mass-scaling refers to a technique whereby nonphysical mass is added to a structure in order to achieve a larger explicit timestep.

Anytime you add nonphysical mass to increase the timestep in a dynamic analysis, you affect the results (think of F = ma). Sometimes the effect is insignificant and in those cases adding nonphysical mass is justifiable. Examples of such cases may include the addition of mass to just a few small elements in a noncritical area or quasi-static simulations where the velocity is low and the kinetic energy is very small relative to the peak internal energy. In the end, it‘s up to the judgement of the analyst to gage the affect of mass scaling. You may have to reduce or eliminate mass scaling in a second run to gage the sensitivity of the results to the amount of mass added.

One can employ mass scaling in a selective manner by artificially increasing material density of the parts you want to mass-scale. This manual form of mass scaling is done independently of the automatic mass scaling invoked with DT2MS in *control_timestep.

When DT2MS is input as a negative value, mass is added only to those elements whose timestep would otherwise be less than TSSFAC * |DT2MS|. By adding mass to these elements, their timestep becomes equal to TSSFAC * |DT2MS|. An infinite number of combinations of TSSF and DT2MS will give the same product and thus the same timestep but the added mass will be different for each of those combinations. The trend is that the smaller the TSSF, the greater the added mass. In return, stability may improve as TSSF is reduced (just as in non-mass-scaled solutions). If stability is a problem with the default TSSF of 0.9, try 0.8 or 0.7. If you reduce TSSF, you can increase |DT2MS| proportionally so that the product/timestep is unchanged.

To determine where and when mass is automatically added, write GLSTAT and MATSUM files. These files will allow you to plot added mass vs. time for the complete model and for individual parts, respectively. To produce fringe plots of added mass in parts comprised of shell elements (DT2MS negative), set STSSZ=3 in *database_extent_binary. You can then fringe the added mass (per element) using LS-POST by choosing Fcomp > Misc > time step size. (Here, the label ―time step

size‖ is really the element added mass.)

The difference between using a positive or negative number for DT2MS in *control_timestep is as follows:

Negative: Initial time step will not be less than TSSF * -DT2MS. Mass is added to only those elements whose timestep would otherwise be less than TSSF*abs(DT2MS). When mass scaling is appropriate, I recommend this method. The amount of mass that can be added using this method is limited. ?Excessive‘ added mass will cause the job to terminate.

Positive: Initial time step will not be less than DT2MS. Mass is added OR TAKEN AWAY from elements so that the timestep of every element is the same. This method is harder to rationalize although it is not subject to termination from ?excessive‘ added mass.

The parameter MS1ST in *control_timestep controls whether mass is added only once during initialization (MS1ST=1) or anytime as necessary to maintain the desired timestep specified via DT2MS (MS1ST=0).

You can use ENDMAS in *control_termination to stop the calculation after a certain amount of mass has been added (active for automatic mass scaling only). _____________________________________________________________________ Mass-scaling of deformable spotweld beams:

The mass-scaling parameter in *mat_spotweld (DT) affects only the spotwelds. If no mass-scaling is invoked in *control_timestep (DT2MS=0.) AND the timestep is controlled by the deformable spotwelds, DT can be used to add inertia to the spotwelds during intialization in order to increase the timestep to a value of DT. When DT is nonzero, mass added to spotweld beams is reported to d3hsp. MATSUM momentum and KE does NOT factor in added mass to def. spotwelds. GLSTAT DOES factor in added mass to total KE (spotweld.beam.type9.mscale.initvel.k)

Consider 3 cases of invoking mass-scaling in a model with deformable spotwelds:

1.Although ―percentage mass increase‖ under ―Deformable Spotwelds:‖ in d3hsp is bogus when DT2MS is neg. and DT in *mat_spotweld = 0, the following are

correct:

―added spotweld mass‖ in d3hsp

―added mass‖ and ―percentage increase‖ in d3hsp AFTER the first time step ―added mass‖ in glstat and matsum

2. Added spotweld mass controlled by DT in *mat_spotweld is NOT INCLUDED in ―added mass‖ given in d3hsp, glstat, or matsum when DT2MS is neg. and DT in *mat_spotweld is nonzero. This can be quite misleading. User must check for ―added spotweld mass‖ in d3hsp. Recommended: Do not invoke both mass-scaling criteria. Neg. DT2MS with DT=0 (case 1 above) is preferred.

3. If DT is nonzero and DT2MS=0, the initial timestep will NOT consider added spotweld mass but the time step will increase by 10% each cycle until the correct timestep (considering added spotweld mass) is achieved. Glstat and matsum contain no ―added mass‖ line item.

The above can be illustrated using

/j5000a_2/jday/test/weld/spotweld.beam.type9.mscale.k.

_____________________________________________________________________

Note that added mass may cause the energy ratio to rise. (See /j5000a_2/jday/test/erode/taylor.mat3.noerode.mscale.k)

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)。

See also: mass_scaling, quasistatic

English Version:

When you‘re using explicit time integration, there is no magic cure for long run times associated with simulating very small geometries over relatively long periods of time. Mass-scaling carries a burden of having to confirm that the addition of nonphysical mass does not significantly affect the results (see attached file ―mass_scaling‖). A similar burden exists when time-scaling is employed.

Time-scaling is a technique where the loading rate is increased and thus the simulation time is shortened in order to reduce the required number of timesteps.

Make sure that your timestep is not being controlled by only a few small or stiff elements by searching in the d3hsp file for the string ―smallest‖. If there are only a few controlling elements, you can remesh in the vicinity of those elements or perhaps make them rigid.

Though it‘s rather obvious, run only as long as is necessary. This means in the case of a drop simulation, assigning an initial velocity to the dropped object and placing it a very small distance from the landing surface. After impact, run only long enough to get the results you need.

Be aware that for lengthy simulations where the number of timesteps goes above half a million or so, you‘d be well advised to use a double precision executable of LS-DYNA to minimize error due to roundoff. Running double precision carries with it a cpu penalty of around 30%.

Automatic explicit/implicit switching may be an option. Using this technique, the user can specify time windows in which implicit time integration is used as opposed to explicit time integration. An advantage of implicit time integration is that timesteps are not tied to element size and can thus be much larger. Of course, an implicit timestep is also much more expensive in terms of cpu. Further, not all LS-DYNA features and materials are implemented for implicit analysis at this time (though most are). Explicit/implicit switching is discussed in the following archived FEA Information newsletter…

http://www.feapublications.com/pages/pdfnews/3feadec.pdf See also: mass_scaling, quasistatic.

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指定的数据移动到指定值。

English Version:

Dynamic relaxation is not intended for general quasistatic analysis. It‘s ok for applying preload when the preload produces only small elastic strains or for

initializing a system to a prescribed geometry[1] but it‘s not good for much else.

You can do a quasi-static analysis by running a regular explicit simulation, invoking time- and/or mass-scaling as necessary to crank out the results in a reasonable timeframe, but this approach can be tricky. You have to keep an eye on the kinetic energy in the system as you want to minimize the inertial effects. Basically, the kinetic energy should remain small relative to the internal energy. (By time-scaling, I mean applying the load more quickly than in the quasi-static experiment in order to reduce the simulation time.) See the file ―mass_scaling‖ for more on mass-scaling.

Or, you can try an implicit, static analysis using LS-DYNA. See the commands *control_implicit_… and Appendix M in the User‘s Manual. There are examples of implicit analysis on our ―user‖ ftp site in the ls-dyna/example directory. See also: gravity.txt,

readme.preload,

mass_scaling,

long_run_times,

implicit.general,

quick_initialization.

Note [1]

*** Initializing to a prescribed geometry ***

1. Write a file of nodal displacements from the final state of your first run. To get this data in the necessary format, use LS-TAURUS as follows:

ls-taurus g=d3plot < executes 1000 < goes to final state deform < write a file as described above t < termimate LS-TAURUS

Note the d3plot does not contain nodal rotations and thus the rotations are written as zero. This could be a real problem for initialization of shells and beams.

LS-PREPOST has an option to write the displacements using Output > Nodal Displacements but the output is i8,3e16 rather than the required i8,3e15 and hence the suggested use of LS-TAURUS.

LS-TAURUS is not available for Windows PCs. It‘s free and available for Unix and Linux workstations.

If you do a ?regular‘ dynamic relaxation run to get to the initialized state, a file of prescribed displacements and rotations will automatically be written at the conclusion of the DR phase (drdisp.sif).

Bug #2020 reported on 9/22/2004 that rigid body nodes do not get initialized according

to

data

in

―m=pres_geom_file‖.

Additional

example

in and

/home/jday/test/cantilever/solid/typ2sol_dr_nrb.k (creates drdisp.sif)

typ2sol_presgeom_nrb.k (m=drdisp.sif run). Nodes 11,22,33,44 are not initialized to what‘s in drdisp.sif 2. In your second run, quickly initialize to the prescribed geometry written in step 1. You need to set:

IDRFLG=2 in *control_dynamic_relaxation and include ―m=filename‖ on the execution line where ―filename‖ is the file created in step 1. Before the transient run begins, LS-DYNA will automatically run a precusor analysis of 100 timesteps wherein the nodse are displaced according to the data in ―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

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

See also: negative_volume_in_brick_element.tips,shooting-nodes

English Version:

Some messages that indicate an instability has occurred: ―out-of-range velocities‖

―negative volume in brick element‖ ―termination due to mass increase‖

Approaches to combating instability of an explicit solution:

First and foremost, use the latest version/revision of LS-DYNA available. The latest production executables can be downloaded from ftp://user@ftp.lstc.com. Contact LSTC for the password to this ―user‖ ftp account. More recent BETA executables are found in ftp://ftp.lstc.com/outgoing/ls971 (no password required).

The next step is to write plot states frequently enough to see the evolution of the instability. This should offer clues into what‘s initiating the instability.

Some other general tips toward resolving numerical instabilities: * Try running a double precision LS-DYNA executable.

* Timestep. Try reducing the timestep scale factor (even if mass-scaling is invoked).

* Element formulation and/or hourglass control. For underintegrated solids or shells that go unstable, try hourglass type 4 with a hourglass coefficient of 0.05. Or, try shell formulation 16 with hourglass type 8. If response of shells is primarily elastic, set BWC=1 and PROJ=1 (B-T shells only).

Avoid type 2 solids. Use at least two solid elements thru the thickness of any solid part.

* Contact. Set number of cycles between bucket sorts to zero so that the default

sort interval will be used. If the relative velocity between two parts in contact is exceptionally high, it may be necessary to reduce the bucket sort interval (for instance to 5, 2, or even 1).

If visible contact penetrations develop during the simulation, switch to *contact_automatic_surface_to_surface or *contact_automatic_single_surface with SOFT set to 1. Make sure geometry takes into account thickness of shells. If shells are VERY thin, e.g., less than 1 mm, scale up or set the contact thickness to a more reasonable value.

Avoid redundant contact definitions, that is, don‘t treat contact between the same two parts using more than one contact definition.

* Look for mistakes (typos, inconsistent units, etc.) in material input of parts that go unstable.

* Turn off all *damping.

These tips are of a general nature and may not be appropriate in all situations. See also: negative_volume_in_brick_element.tips, shooting-nodes

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)。因为这个方程非常费时,所以只用在变形严重的地方,而且只用于六面体单元。 See also: instability

English Version:

Negative Volumes in Foams (or other soft materials)

In materials that undergo extremely large deformations, such as soft foams, an element may become so distorted that the volume of the element is calculated as negative. This may occur without the material reaching a failure criterion. There is an inherent limit to how much deformation a Lagrangian mesh can accommodate without some sort of mesh smoothing or remeshing taking place. A negative volume calculation in LS-DYNA will cause the calculation to terminate unless ERODE in *control_timestep is set to 1 and DTMIN in *control_termination is set to any nonzero value in which case the offending element is deleted and the calculation continues (in most cases). Even with ERODE and DTMIN set as described, a negative volume may cause an error termination (see erode/negvol.k).

Some approaches that can help to overcome negative volumes include the following.

- Simply stiffen up the material stress-strain curve at large strains. This approach can be quite effective.

- Sometimes tailoring the initial mesh to accommodate a particular deformation field will prevent formation of negative volumes. Again, negative volumes are generally only an issue for very severe deformation problems and typically occur only in soft materials like foam.

- Reduce the time step scale factor. The default of 0.9 may not be sufficient to prevent numerical instabilities.

- Avoid fully-integrated solids (formulations 2 and 3) which tend to be less stable in situations involving large deformation or distortion. (The fully integrated element is less robust than a 1-point element when deformation is large because a negative Jacobian can occur at one of the integration points while the element as a whole maintains a positive volume. The calculation with fully integrated element will therefore terminate with a negative Jacobian much sooner than will a 1-point element. (lpb))

- Use the default element formulation (1 point solid) with type 4 or 5 hourglass control (will stiffen response). Preferred hourglass formulations for foams are: type 6 with coef. = 1.0 if low velocity impact types 2 or 3 if high velcocity impact

- Model the foam with tetrahedral elements using solid element formulation 10 (see ~pdf/dubois-foam-tets.pdf).

- Increase the DAMP parameter (foam model 57) to the maximum recommended value of 0.5.

- Use optional card B of *contact to turn shooting node logic off for contacts involving foam.

- Use *contact_interior. A part set defines the parts to be treated by contact_interior. Attribute 4 (DA4 = 5th field of Card 1) of the part set defines the TYPE of contact_interior used. The default TYPE is 1 which is recommended for uniform compression. In version 970, solid formulation 1 elements can be assigned TYPE=2 which treats combined modes of shear and compression.

- If mat_126 is used, try ELFORM = 0.

- Try EFG formulation (*section_solid_EFG). Use only where deformations are severe as this formulation is very expensive. Use only with hex elements.

*********************************************************** See also: instablity.tips

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)不能解决问题时。模型的细节可能会指示可用其它的一些方法。

English version:

Total energy reported in GLSTAT (see *database_glstat) is the sum of … internal energy kinetic energy contact (sliding) energy hourglass energy system damping energy rigidwall energy

―Spring and damper energy‖ reported in the glstat file is the sum of internal energy of discrete elements, seatbelt elements, and energy associated with joint stiffnesses (*constrained_joint_stiffness….). ―Internal Energy‖ includes ―Spring and damper energy‖ as well as internal energy of all other element types. Thus ―Spring and damper energy‖ is a subset of ―Internal energy‖.

The ―joint internal energy‖ written to glstat by SMP 5434a is independent of the constrained_joint_stiffness. It would appear to be associated with the penalty stiffness of *constrained_joint_revolute (_spherical, etc). This was a missing energy term prior to SMP rev. 5434a. It is still a missing energy term in MPP rev. 5434a. It does NOT appear when a Lagrange Multiplier formulation is used.

The energy associated with *constrained_joint_stiffness appears in the jntforc file and is included in glstat in ―spring and damper energy‖ and ―internal energy‖. Recall that ―spring and damper energy‖, whether from joint stiffness or from discrete elements, is always included in ―internal energy‖.

Energy values are written on a part-by-part basis in MATSUM (see *database_matsum).

Hourglass energy is computed and written only if HGEN is set to 2 in *control_energy. Likewise, rigidwall energy and damping energy are computed and written only if RWEN and RYLEN, respectively, are set to 2. Stiffness damping energy is lumped into internal energy. Mass damping energy appears as a separate line item ―system damping energy‖.

Energy dissipated due to shell bulk viscosity was not calculated prior to revision 4748 of v. 970. In subsequent revisions, set TYPE=-2 to iclude this energy in the energy balance.

The energy balance is perfect if total energy = initial total energy + external work, or in other words if the energy ratio (referred to in glstat as ―total energy / initial energy‖ although it actually is total energy / (initial energy + external work)) is equal to 1.0.

Note that added mass may cause the energy ratio to rise. (See ~/test/erode/taylor.mat3.noerode.mscale.k)

The History > Global energies do not include the contributions of eroded elements whereas the GLSTAT energies do include those contributions. Note that these eroded contributions can be plotted as ―Eroded Kinetic Energy‖ and ―Eroded Internal Energy‖ via ASCII > glstat. Eroded energy is the energy associated with deleted elements (internal energy) and deleted nodes (kinetic energy). Typically, the ―energy ratio w/o eroded energy‖ would be equal to 1 if no elements have been deleted or less than one if elements have been deleted. The deleted elements should have no bearing on the ―total energy / initial energy‖ ratio. Overall energy ratio growth would be attributable to some other event, e.g., added mass. Restated, when an element erodes, the internal energy and kinetic energy in glstat do not reflect the energy loss. Instead the energy losses are recorded as ―eroded internal energy‖ and ―eroded kinetic energy‖ in glstat. If you subtract ―eroded internal energy‖ from ―internal energy‖, you have the internal energy of elements which remain in the simulation. Likewise for kinetic energy. The matsum file‘s internal energy and kinetic energy include only contributions from the remaining (noneroded) elements.

An example is attached. Note that if ENMASS in *control_contact is set to 2, the nodes associated with the deleted elements are not deleted and the ―eroded kinetic energy‖ is zero. (See ~/test/m3ball2plate.15.k)

The total energy via History > Global is simply the sum of KE and internal energies and thus doesn‘t include such contributions as contact energy or hourglass energy. Negative internal energy in shells:

To combat this spurious effect, - turn off shell thinning (ISTUPD)

- invoke bulk viscosity for shells (set TYPE = -2 in *control_bulk_viscosity) - use *damping_part_stiffness for parts exhibiting neg. IE in matsum, Try a small value first, e.g., .01. If RYLEN=2 in *control_energy, then the energy due to stiffness damping is calculated and included in internal energy.

(See negative_internal_energy_in_shells for a case study) Positive contact energy:

When friction is included in a contact definition, positive contact is to be expected. Friction SHOULD result in positive contact energy. In the absence of contact damping and contact friction, one would hope to see zero (or very small) net contact energy (net = sum of slave side energy and master side energy). ―Small‖ is a matter of judgement — 10% of peak internal energy might be considered acceptable for contact energy in the absence of contact friction.

(~/test/shl2sol/sphere_to_plate.examine_contact_damping_energy.k appears to illustrate that contact damping (VDC = 0, 30, 90) produces positive sliding (or contact) energy)

Negative contact energy:

Refer to p. 3.14, 3.15 of ―Crashworthiness Engineering Course Notes‖ by Paul Du Bois. Contact jane@lstc.com to purchase these notes.

Abrupt increases in negative contact energy may be caused by undetected initial penetrations. Care in defining the initial geometry so that shell offsets are properly taken into account is usually the most effective step to reducing negative contact energy. Refer to sections 23.8.3 and 23.8.4 in the LS-DYNA Theory Manual (May 1998) for more information on contact energy.

Negative contact energy sometimes is generated when parts slide relative to each other. This has nothing to do with friction — I‘m speaking of negative energy from normal contact forces and normal penetrations. When a penetrated node slides from its original master segment to an adjacent though unconnected master segment and a penetration is immediately detected, negative contact energy is the result.

If internal energy mirrors negative contact energy, i.e., the slope of internal energy curve in glstat is equal and opposite that of the negative contact energy curve, it could be that the problem is very localized with low impact on the overall validity of the solution. You may be able to isolate the local problem area(s) by fringing internal energy of your shell parts (Fcomp > Misc > internal energy in LS-Prepost). Actually, internal energy density is displayed, i.e., internal energy/volume. Hot spots in internal energy density usually indicate where negative contact energy is focused.

If you have more than one contact defined, the sleout file (*database_sleout) will report contact energies for each contact and so the focus of the negative contact energy investigation can be narrowed.

Some general suggestions for combating negative contact energy are as follows: - Eliminate initial penetrations (look for ―Warning‖ in messag file).

- Check for and eliminate redundant contact conditions. You should NOT have more than one contact definition treating contact between the same two parts or surfaces.

- Reduce the time step scale factor.

- Set contact controls back to default except set SOFT=1 and IGNORE=1 (Optional Card C).

- For contact of sharp-edged surfaces, set SOFT=2 (applicable for segment-to-segment contact only). Furthermore, in v. 970, setting SBOPT (formerly EDGE) to 4 is recommended for SOFT=2 contact where relative sliding between parts occurs. For improved edge-to-edge SOFT=2 contact behavior, set DEPTH to 5. Please note that SOFT=2 contact carries some additional expense, particularly using nondefault values of SBOPT or DEPTH, and so should be used only where other contact options (SOFT=0 or SOFT=1) are inadequate.

The specifics of your model may dictate that some other approach be used.

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的论文中有更详细的描述。

English Version:

Hourglass (HG) modes are nonphysical, zero-energy modes of deformation that produce zero strain and no stress. Hourglass modes occur only in under-intetgrated (single integration point) solid, shell, and thick shell elements. LS-DYNA has various algorithms for inhibiting hourglass modes. The default algorithm (type 1), while the cheapest, is generally not the most effective algorithm.

A way to entirely eliminate hourglass concerns is to switch to element formulations with fully-integrated or selectively reduced (S/R) integration. There can be a downside to this approach. For example, Type 2 solids are much more expensive than the single point default solid. Secondly, they are much more unstable in large deformation applications (negative volumes much more likely). Third, type 2 solids have some tendency to ‘shear-lock‘ and thus behave too stiffly in applications where the element shape is poor.

Triangular shells and tetrahedral solid elements do not have hourglassing modes but have drawbacks with regard to overly stiff behavior in many applications.

A good way to reduce hourglassing is to refine your mesh but, of course, that isn‘t always practical.

The method of loading can affect the degree of hourglassing. A pressure loading is preferred over loading individual nodes as the latter approach is more likely to excite hourglassing modes.

To evaluate hourglass energy, set HGEN to 2 in *control_energy and use *database_glstat and *database_matsum to report the HG energy for the system and for each part, respectively. The point is to confirm that the nonphysical HG energy is small relative to peak internal energy for each part (<10% as a rule-of-thumb). For

shells only, you can fringe hourglass energy density by first setting SHGE=2 in the LS-DYNA input deck (*database_extent_binary). Then, in LS-Prepost, choose Fcomp > Misc > hourglass energy.

For fluid parts, the default HG coefficient is generally inappropriate (too high). Thus for fluids, the hourglass coefficient should generally be scaled back one or two orders of magnitude. Use only viscosity-based HG control for fluids. The default HG formulation (type 1) is generally ok for fluids.

Stiffness-based HG control (types 4,5) is generally more effective than viscous HG control for structural parts. Usually, when stiffness-based HG control is invoked, I like to reduce the HG coefficient, usually in the range of .03 to .05, soas to minimize nonphysical stiffening of the response and at the same time effectively inhibiting hourglass modes. For high velocity impacts, viscosity-based HG control (types 1,2,3) is recommended even for solid/structural parts. ―Viscous HG control only stops the HG mode from developing further. Stiffness HG control will push the element back toward its undeformed configuration. CAUTION: Stiffness hourglass control tends to be overly stiff!‖ (Paul Dubois)

Type 8 HG control applies only to shell formulation 16. This HG type activates warping stiffness in type 16 shells so that warping of the element does not degrade the solution. Type 16 shells will solve the so-called Twisted Beam problem correctly if HG type 8 is invoked. Type 6 HG control invokes an assumed-strain co-rotational formulation for type 1 solid elements and under-integrated 2D solids (shell types 13 and 15). With the HG type set to 6 and the hourglass coefficient set to 1.0, an elastic part need only be modeled with a single type 1 solid through its thickness to achieve the exact bending stiffness. Type 6 HG control should always be used for type 1 solids in implicit simulations (in fact, this is done automatically in v. 970).

(More on type 6 HG control from Lee Bindeman) ―Type 6 hourglass control for solid elements differs from types 4 and 5 because is uses an assumed strain field and material properties to evaluate an assumed stress field. This stress is integrated in closed form over the element domain to obtain hourglass forces such that the element

behaves like a fully integrated element with the same assumed strain field. The assumed strain field is designed to prevent spurious shears during pure bending and volumetric locking for nearly incompressible material.

Types 4 and 5 hourglass control calculate an hourglass stiffness based on the element volume, wave speed and density as shown in equation 3.21 in the LS-DYNA Theoretical Manual.

In my opinion, the main improvement of hourglass type 6 is that the stress field is integrated over the element domain. This makes the hourglass control quite robust when using solid elements with large aspect ratio or with skewed shapes. Type 4 and 5 hourglass control tend to not respond appropriately for large aspect ratio or skewed shapes so they tend to become much too stiff in some hourglass modes and too soft in others.

Another more academic advantage to type 6 hourglass control is that it is possible to obtain accurate results in elastic bending problems with beams made of 1 element through the thickness. To do this, set the hourglass stiffness parameter to 1.0. Similarly, torsion of a rectangular bar of elastic material can be solved with very few elements when the hourglass stiffness parameter is set to 1.0. However, with non-linear materials, good coarse mesh results are impossible because the stress field does not vary linearly as is assumed with hourglass type 6. There is no way to capture the nonlinear nature of the stress field without more integration points through the beam thickness.

To choose an hourglass control, you need to consider the problem. I would recommend type 6 hourglass control when elements have large aspect ratios (>2) or are significantly skewed, either initially or in a deformed configuration. Type 6 hourglass control is usually better with soft materials such as foam or honeycomb material that deform significantly during a calculation.

In cases where the material is not particularly soft or elements are of reasonable shape and where the mesh is not too coarse, types 4, 5, and 6 hourglass control will likely all give about the same result, in which case type 4 hourglass control is recommended since it is faster than the others.

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值。

English Version:

Damping is completely optional in LS-DYNA and is invoked using one the *DAMPING commands. Be aware that energy dissipation can occur through means other than *DAMPING, e.g., energy due to hourglass forces, energy due to rigidwall forces, energy due to contact friction forces, internal energy from discrete dampers, etc.

Sometimes, contact forces can introduce noise into the response. In such cases,

adding viscous damping via the VDC parameter on Card 2 of *contact may help reduce the noise. VDC is input as a percentage of critical damping … a typical value is 10 to 20.

Overview of *DAMPING commands:

Mass damping in LS-DYNA, which includes *damping_global and *damping_part_mass, is intended to damp low-frequency structural modes but it has the added effect of damping rigid body modes. Thus parts that undergo significant rigid body motion should EITHER be excluded from mass damping OR the mass damping should be turned off during the time the part undergoes rigid body motion OR *damping_relative should instead be used. By using *damping_relative, only motion/vibration that is relative to the motion of a particular rigid body is damped.

The critical damping coefficient in the case of mass damping is 4*pi/T where T is the period of the mode targeted for damping (usually the lowest frequency (fundamental) mode). The period can be determined from an eigenvalue analysis or estimated from results of an undamped transient analysis. If the user elects to use mass damping, a damping value less than the critical damping coefficient is suggested. A value of 10% of critical damping, input as 0.4*pi/T, is fairly typical. You can choose to damp all parts using the same damping coefficient (*damping_global) or, to tailor the damping to the individual response characteristics of each part, you can assign a different damping coefficient to each part (*damping_part_mass). In either case, the damping coefficient can vary with time (useful to turn damping off or on in the middle of a simulation).

*damping_part_stiffness is intended to damp high frequency, numerical oscillation and generally won‘t have much affect on structural vibration/oscillation. The damping coefficient COEF in this case appproximately represents a fraction of critical damping. A typical value of COEF is 0.1. If an instability results from using stiffness damping, eliminate the damping or reduce COEF (by perhaps an order of magnitude or more in some cases) so that stability is restored.

Both mass and stiffness damping are implemented for implicit transient analysis.

Another damping alternative in version 970 is a frequency-independent damping option which targets a range of frequencies and a set of parts (*damping_frequency_range). Damping_frequency_range was developed by Richard Sturt of Arup and its theoretical details are proprietary. It was developed with the intent of helping LS-DYNA to handle damping in vibration prediction problems properly - including vehicle NVH time-history analysis as well as certain classes of seismic problems and civil/structural vibration problems.The key points of *damping_frequency_range are:

- Use for low amounts of damping only, e.g. up to 1% or 2%

- The damping treatment slightly reduces the stiffness of the response – that‘s because the applied damping force lags slightly behind the

―theoretically correct‖ damping force, due to the need to evaluate frequency content.

- The frequency range specified by the user should ideally be no more than a factor of 30 between highest and lowest. Damping is still achieved outside the frequency range but the amount of damping reduces.This damping is based on the nodal velocities; these might oscillate due to structure modes or due to rigid body rotation.

___________________________________________________ Additional commentary on damping

In Rayleigh damping, the damping matrix is expressed as a linear combination of the mass and stiffness matricies:

C = alpha*M + beta*K

The LS-DYNA implementation of Rayleigh damping for standard, nonlinear analysis is done at the element level, as you stated. This is done for numerical convenience, since in the explicit method we don‘t need to form the stiffness matrix K. Instead, we compute internal forces by simply integrating stresses over the element area. The Rayleigh damping terms are implemented as corrections to these stresses.

The stiffness damping in version 960 is completely reformulated. Even though you may provide a 960 COEF value which is consistent with the 950 BETA value, ,

that is,…

COEF = BETA * (w/2)

the 950 stiffness damping and the 960 stiffness damping will not be exactly equivalent. The 960 formulation of stiffness damping provides an APPROXIMATE fraction of critical damping in the high frequency domain. The details of the formulation are proprietary. The change in formulation was prompted by the frequent occurences of instability when using the old formulation.

In rev. 3510 (or higher) of v. 970, the old 950-style stiffness damping formulation is available as an option and is invoked by setting the COEF parameter to a negative value. The parameter is then interpreted as a BETA value as documented in the v. 950 User‘s Manual.

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文件。

English Version:

Starting with version 970, a binary format for the so-called ASCII output files (matsum, rcforc, etc.) is available.

MPP-DYNA runs do not write ASCII output files directly but instead write the data to binary database(s). There are two formats for this data:

dbout (see Appendix L, p. L.3 in the v. 970 User‘s Manual) and binout. The

default for MPP is to write the binout style of database. The second input parameter of *database_matsum, *database_rcforc, etc. controls what type of output will be written.

1 = old format, i.e., ASCII files (SMP) or dbout files (MPP) 2 = new binout format (this is the default for MPP) 3 = both formats written

LS-PrePost can read the binout data directly with no conversion by dumpbdb being required. In LS-PrePost, select the square button labeled ―2″ (directly under the ―Group‖ button. Next, select ―Binout‖ and then, from the bottom of the window, select ―Load‖. From there, it‘s pretty self-explanatory.

There are two programs that are available as part of our lsda package (see the ―lsda‖ directory under the user account of our ftp site). One is ―l2a‖ which will extract the various ascii files from a binout file. The other is ―ioq‖ which is a small utility that lets you read/explore the binout file directly. An ―l2a‖ executable is generally included in the same tar file that contains the MPP executable for your platform but you can also use that l2a to operate on binout files produced by any LS-DYNA executable, MPP or SMP. To extract the ASCII files from a binout file, execute l2a and include the name of the binout file on the execution line, e.g., ―./l2a binout.0000″.

Binout files are platform-independent, i.e., you can process binout data written by one platform on that same platform or on any other platform. When a binout database is written by an MPP LS-DYNA executable, there will be more than one file with the ―binout‖ rootname. Each of these files must be opened individually to access all of the requested data. In the d3hsp file, you‘ll see something like the following which tells you what data is contained in each binout file:

> The following binary output files are being created, > and contain data equivalent to the indicated ascii output files > binout0000: (on processor 0) > nodout > glstat > matsum

> rcforc > abstat > rbdout > sleout > jntforc (type 0)

> binout0001: (on processor 1) > jntforc

> binout0003: (on processor 3) > deforc

Alternative control of output format for MPP (from Jason): if you put the following line in your pfile

pfile:

gen { dboutonly } to execute:

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

The program will output dbout.* as before and you can use dumpbdb to extract all the ASCII files.

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没有作用。相当于突然的穿透被留意到而且通过局部的调整接触厚度来补偿。因此在任何分析的时间点,如果检测到突然的穿透,程序不会施加任何很大的力也不会移动任何节点。但接触力会阻止进一步的穿透。

English Version:

Provided herein are some very brief notes on LS-DYNA contact. Not all thecontact types or contact options are discussed.

[For a comprehensive review of contact in LS-DYNA, see the four-part series on contact modeling in the archived FEA information Newsletters available at…www.feapublications.com The four parts of the series are in the August, September, October, and December 2001 newsletters.]

Automatic vs. Non-automatic:

Automatic contacts are recommended for most explicit simulations. Non-automatic contacts (in which contact orientation is important) are sometimes used for metal forming simulations where the geometries are very straightforward and contact surface orientation can be reliably established before the simulation is

conducted. Non-automatic contacts are generally recommended for implicit simulations.

TYPES:

Type 13 contact (contact_automatic_single_surface) is a single surface contact (no master surface is defined) that always considers shell thickness and has no orientation. Thus it‘s necessary that shell surfaces be modeled with at least a small gap between them. To avoid initial penetrations, the gap should be no less than the average thickness of the two shells potentially in contact. No gap is necessary between solid elements. The contact searching algorithm for type 13 contact is more complex

than

for

type

3

(contact_surface_to_surface)

or

a3

(contact_automatic_surface_to_surface), i.e., type 13 can handle situations such as shell edge to surface, and to some extent, beam to shell surface. As with any single surface contact type, resultant forces are not directly retrievable in the RCFORC file; one must define a contact_force_transducer_penalty in order to retrieve the contact forces. The article ―contact.13vs26″ provides additional information on contact_automatic_single_surface and contrasts it to contact_automatic_general.

Type 3 contact (contact_surface_to_surface) contact is a surface-to-surface (two-way) contact where shell thickness consideration can either be turned on or off either in *contact or *control_contact (*contact has priority). The orientation of the contact segments is important with this contact type as the shell only looks in one direction for potential contact.

In a two-way contact such surface_to_surface, nodes on the slave side are first checked for penetration thru the master surface and then master nodes are checked for penetration thru the slave surface. The exception is this approach is when segment-based contact is invoked by setting SOFT=2.

Contact type a3 has no orientation (a shell looks for potential contact from either side of the shell midplane) and always considers shell thickness, so in this regard, it‘s quite similar to a type 13 contact.

Table 6.1 in the 950 Keyword User‘s Manual lists the maximum penetration d that defines when a penetrating node is released from contact consideration. This

distance d is different for a type 3 contact than for a type 13 contact.

Some notes on contact parameters: SOFT

SOFT is the first parameter on Optional Card A of *contact….The default value of SOFT is 0. SOFT=1 is more or less the same as SOFT=0. EXCEPT in the way the contact stiffness is determined. SOFT=2 is a radical departure from SOFT=0, both in the way contact stiffness is determined but also in the manner that the search for penetration is conducted. SOFT=2 invokes what is called ―segment-based contact‖. For notes regarding contact with SOFT= 1 and 2, see the articles ―contact.soft1″ and ―contact.soft2″, respectively.

IGNORE

At any point during the simulation, if a node is suddenly found to be below the surface (say, it was moving very fast and wasn‘t detected before penetration), the old style (IGNORE=0) algorithm just moves the node to the master surface without applying any forces (we term this ―shooting node logic‖). If the shooting node logic is turned off (SNLOG=1), then you get large forces suddenly appearing, and negative contact energy. If IGNORE is set to 1 then the shooting node logic flag SNLOG has no affect. Rather the amount of sudden penetration is noted and compensated for by adjusting the contact thickness locally. So at any time during the simulation, if a sudden penetration is detected, the program doesn‘t apply any large forces nor are any nodes moved. Contact forces, however, will resist FURTHER penetration.

jpd 12/2002 revised 4/2003

revised 9/2003 auto vs. non-auto

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中输入)

English Version:

The contact formulation invoked by setting Soft=1 on optional card A of *contact is not so radical a departure from the default penalty contact formulation (Soft=0) as the Soft=2 contact formulation. Soft=1 is more or less the same as Soft=0 EXCEPT in the way the contact stiffness is determined. Soft=1 calculates contact stiffness based on stability considerations taking into account the timestep. In other words, you can liken Soft=1 contact to a group of simple spring-mass systems, each with a Courant timestep matched to the actual timestep used in the simulation. Soft=1 will generally be more effective than Soft=0 for soft materials contacting stiff

materials or where the mesh densities of the two contacting surfaces are dissimilar.

When SOFT=1, we use the max of the stiffness as calculated by soft=0 and soft=1. Therefore reducing SOFSCL has no effect if the soft=0 stiffness is larger.

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

where k is the penalty stiffness SLSFAC is user input on *CONTROL_CONTACT SFS is user input on *CONTACT card 3 SOFSCL is user input on *CONTACT optional card A k0 is the stiffness calculated from material bulk modulus and element dimensions k1 is the stiffness calculated from nodal masses and the solution time step.

Note: For two way contact like

*CONTACT_AUTOMATIC_SURFACE_TO_SURFACE, replace SFS with SFM (user input on *CONTACT card 3) in the above equation.

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号仅用来指定这一层的材料。

完整的一个实例如下:shell8lam22.rar 14. LS-DYNA隐式-显式自动转换例子

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

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

下载input deck-》implicit_explicit_switchk.txt

注意请用5434,5434a or 971版本运行上面的k文件,不要用6763单精度或者双精度版本(这两个版本在implicit求解方面似乎存在bug,隐式分析部分无法完成 )

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和其它资源文件;通过编译连接后生