Energy Balance
Total energy reported in GLSTAT (see *database_glstat) is the sum
of the following:
- internal energy (includes "eroded internal energy")
- kinetic energy (includes "eroded kinetic energy")
- sliding interface energy (better known as contact energy)
- hourglass energy (starting at rev. 83861, includes "eroded
hourglass energy")
- system damping energy
- stonewall energy (better known as 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".
Two energy terms are written to jntforc in 971 R3.
The first term "energy" is new in R3 and corresponds to the "joint internal energy" in glstat. It is associated with the penalty-based forces in the "constrained" DOF. It does NOT appear when a Lagrange Multiplier formulation is used. As of 1/2008, LS-PrePost is seemingly unable to plot the first energy term "energy" found in jntforc. I don't believe binout includes the first energy term in the jntforc data.
The second energy term "joint energy" is associated with *constrained_joint_stiffness and is included as "spring and damper energy" and "internal energy" in glstat.
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: There is an override in effect which resets the energy ratio to 1.0 if the denominator (initial total energy + external work) is less than 1.E-08.
Note that added mass may cause the energy ratio to rise.
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.
To invoke additional energy output to matsum associated with eroded elements, lumped mass/lumped inertia, and non-structural mass, see IERODE in *control_output
glstat includes the KE from the moving rigidwall. matsum does not.
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.
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.
---------------------------------------------
Positive contact energy:
When friction is included in a contact definition, positive contact energy accumulates due to the dissipative friction energy. This friction energy is not recoverable even as parts go out of contact.
In the absence of contact damping and contact friction, one would hope to see zero (or very small) net contact energy when the parts go out of contact (net = sum of slave side energy and master side energy). In this sense, the positive contact energy is the stored energy in the compressed contact "springs", so as long as there are contact forces being applied, there will be nonzero contact energy.
----------------------------------
Negative contact energy:
If (total contact energy - frictional contact energy) is negative, that's really what
we're calling negative contact energy and ideally, there would be
no negative contact energy.
The suggestions listed in the notes below are provided to help
reduce negative contact energy when it occurs.
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.
Internal energy per reference volume for solids is written as the second-to-last extra history variable if HYDRO=1 in *DATABASE_EXTENT_BINARY.
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=2 (Optional Card C).
- For contact of sharp-edged surfaces, set SOFT=2 on Optional Card A. SOFT=2 is also referred to as segment-based contact and so is not applicable to any NODE_TO_SURFACE type contacts.
Two important companion variables to SOFT=2 are SBOPT and DEPTH.
SBOPT: Unless sliding
between surfaces is prevalent, set SBOPT=3.
When sliding is prevalent, set SBOPT=5.
DEPTH: DEPTH=13 or 23 is recommended unless shell edge-to-edge contact must be considered, in which case set DEPTH=25 or 35.
Please note that SOFT=2 contact carries some additional expense as compared to SOFT=0 or 1, particularly using nondefault values of SBOPT or DEPTH.
The specifics of your model may dictate that some other approach be used.
---------------------------------------
Contact energy (penalty-based vs. constraint-based):
For penalty based contact, forces are easy (penalty * displacement, more or less), and energy (work) is computed on a node by node basis as contact force * node displacement = contact force * node velocity * timestep
See "Contact Energy Calculation" in the Theory Manual for more details.
For constraint contact, the idea is the same. The difference is that in the constraint based contact, forces are not directly computed: the
accelerations of the master and slave nodes are adjusted (taking into account all
external forces on the master and slave nodes, and their masses) to keep the nodes
together. It is not necessary to compute the actual contact forces applied to
the master and slave nodes, as far as the contact calculation is concerned. But we do compute the net forces on them in order to calculate the interface
energy. Before the contact, the current acceleration of each slave and master node is
stored, and after the contact the net force for each is computed as
contact force = change in acceleration * node mass
These contact forces are then used to compute the energy, just as for penalty
based contacts.
Comments
Post a Comment