LS-dyna 常见问题汇总00
更新时间:2024-06-01 08:52:01 阅读量: 综合文库 文档下载
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 Young‘s Modulus of steel are provided in each system of units. ―GRAVITY‖ is gravitational acceleration.
MASS LENGTH TIME FORCE STRESS ENERGY DENSITY YOUNG’s kg kg kg kg kg gm gm gm gm ton lbfs2/in slug kgfs2/mm kg gm m cm cm cm mm cm cm mm mm mm in ft mm mm cm s s N 1.e-02N Pa GPa dy/cm2 Mbar Pa MPa MPa psi psf 1000Pa 100000Pa Joule erg 7.83E+03 7.83E-03 7.83E-03 7.83E-03 7.83E+00 2.07E+11 2.07E+09 2.07E+03 2.07E-03 2.07E+02 2.07E+12 2.07E+00 2.07E+11 2.07E+05 2.07E+05 3.00E+07 4.32E+09 7.00E+02 7.83E-06 7.83E+00 Velocity GRAVITY (56.3KMPH) 15.65 1.56E+03 1.56 1.56E-03 15.65 1.56E+03 1.56E-03 1.56E+04 15.65 1.56E+04 6.16E+02 51.33 1.56E+04 2.07E+08 2.07E+06 9.806 9.81E+02 9.81E-04 9.81E-10 9.81E-03 9.81E+02 9.81E-10 9.81E+03 9.81E-03 9.81E+03 386 32.17 (Japan) 9.81E+02 ms 1.e+04N us 1.e+10N ms s s ms s s s s s ms KN dyne 1.e-06N N N lbf lbf kgf mN KN-mm 7.83E-06 1.e7Ncm 7.83E+00 7.83E-03 N-mm N-mm lbf-in lbf-ft 7.83E-03 7.83E-09 7.33E-04 15.2 us 1.e+07N kgf/mm2 kgf-mm 8.02E-10 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 /home/jday/test/cantilever/solid/typ2sol_dr_nrb.k (creates drdisp.sif) and 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
的调整接触厚度来补偿。因此在任何分析的时间点,如果检测到突然的穿透,程序不会施加任何很大的力也不会移动任何节点。但接触力会阻止进一步的穿透。
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和其它资源文件;通过编译连接后生成新的EXE文件;再修改EXE文件,跳过license检查(这个网上有说明具体过程,所以关键是要得到那几个二次开发文件)。
―一般用户‖完全有可能进行二次开发,关键是要通过其它渠道得到正版用户才有的F文件、DYNA.lib和其它资源文件
正在阅读:
LS-dyna 常见问题汇总0006-01
2016年入党积极分子思想汇报(2篇)04-01
教师校长交流轮岗(支教)工作周志12-24
个人食品安全承诺书精品例文04-03
贵州财经大学儒魂商才综合素质培养方案实施方案(试行)0504 - 图文02-03
感觉对方不在乎的说说02-22
活动策划书模版(办公室)05-31
小学科学游戏化教学研究结题报告12-14
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 汇总
- 常见问题
- dyna
- LS
- 人教版八年级物理下册 第7章 力单元测试题三
- 2012年中考数学压轴题及解析分类汇编
- 蚌埠市基本建设项目竣工联合验收实施办法
- TD-SCDMA认证考试试题(包括各类题型并附答案)
- 赤壁人民医院内科住院楼商务文件 - 图文
- 关于动物的习语
- 宝宝阅读
- (最新版)关于物流配送中心的选址研究毕业设计2511696
- 重庆市综合评标专家库评标专家考核管理办法
- 董公择日法
- 房 屋 租 赁 合 同(1)
- 辽宁石油化工大学本科生毕业设计(论文)规范化要求(2016版)
- 金刚石涂层刀具综述
- 广播体操《七彩阳光》教学设计
- 药物毒理复习题B
- 常年财务顾问的工作内容包括哪些
- 内容最全面 - 考试必过!三级安全评价师考试资料含习题(全)
- 第七讲 数学教育目的
- 施工现场临时用电安全技术试卷及答案
- 煤矿巷道招标技术要求