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