―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中推荐设置