您好,欢迎来到九壹网。
搜索
您的当前位置:首页LS-dyna常见问题汇总00

LS-dyna常见问题汇总00

来源:九壹网


LS-dyna常见问题汇总00

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 质量缩放 (2)

3.Long run times 长分析时间 (6)

4.Quasi-static 准静态 (8)

5.Instability 计算不稳定 (10)

6.Negative Volume 负体积 (12)

7.Energy balance 能量平衡 (14)

8.Hourglass control 沙漏控制 (19)

9.Damping 阻尼 (23)

10.ASCII output for MPP via binout (27)

11.Contact Overview 接触概述 (30)

12.Contact Soft 1 接触Soft=1 (33)

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

14. 怎样进行二次开发 (37)

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 Y oung‘s Modulus of steel are provided in each system of units. ―GRA VITY‖ is gravitational acceleration.

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|,这样还是可以保证时间步乘积不变。

为了确定什么时候和位置质量自动增加了,可以输出GLSTA T和MA TSUM文件。这些文件允许你绘出完整的模型或者单独部件所增加的质量对时间的曲线。为了得到由壳单元组成的部件增加的质量云图,将*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文件里。MA TSUM 中动量和动能不受增加到可变形点焊上的质量的影响。GSLTA T中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 V ersion:

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. Y ou 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 GLSTA T and MA TSUM 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. Y ou 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 A WAY 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).

Y ou 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. MA TSUM momentum and KE does NOT factor in added mass to def. spotwelds. GLSTA T 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

―a dded 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 V ersion:

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_implic it_…‖和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 V ersion:

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.

Y ou can do a quasi-static analysis by running a regular explic it simulation, invoking time- and/or mass-scaling as necessary to crank out the results in a reasonable timeframe, but this approach can be tricky. Y ou 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

(creates

example

in and

/home/jday/test/cantilever/solid/typ2sol_dr_nrb.k 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. Y ou 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://*************.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 V ersion:

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://*************.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).

A void 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.

A void 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 V ersion:

Negative V olumes 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.

- A void 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 能量平衡

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

内能internal energy

动能kinetic energy

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

沙漏能houglass energy

系统阻尼能system damping energy

刚性墙能量rigidwall energy

GLSTA T中报告的弹簧阻尼能‖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‖,不管是从铰链刚度还是从离散单元而来,总是包含在内能里面。

在MA TSUM文件中能量值是按一个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)的能量贡献,然而GLSTA T 文件中的能量包含了它们。注意它们的贡献可以通过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 GLSTA T (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 MA TSUM (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 GLSTA T 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 ***********************************************.

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. Y ou 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. Y ou 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那样来计算沙漏刚度。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务