Curves defined with *DEFINE_CURVE are internally rediscretized.
Please take note of "Warning Concerning Rediscretization." in Remark 1 of
*DEFINE_CURVE in the User's Manual.
Data points for the rediscretized curve are written to messag and d3hsp
if IPCURV is set to 1 in *CONTROL_OUTPUT.
To display a rediscretized curve, you can put that curve data in keyword format, like this,
*keyword
*define_curve
1
0,0
1,1
2,2
3,3
... and then plot it using LSPP.
The number of points in the rediscretized curve can be changed with a parameter LCINT (4th parameter
on card 1 of *CONTROL_SOLUTION). Thus by changing LCINT to a value greater than
the default of 100, the rediscretized curve may better resemble the input curve.
Be aware though that a sharp peak in your input curve is generally not a good idea
since the rediscretized curve is unlikely to exactly hit a sharp apex exactly.
An enhancement implemented in 2015 was to include LCINT as a variable in *DEFINE_CURVE
and *DEFINE_TABLE, so discretization can be set differently for different curves.
When you get a Warning from LS-DYNA of this type...
"*** Warning 21329 (STR+1329)
The discretization of the following load curves
has resulted in differences in value that exceed 10.00
percent of the median value of the load curve
Curve ID 1 has discretization error of
96.767400 which is 90.10 percent of its median"
... you may be curious at how the values in that warning are calculated.
LS-DYNA starts by collecting an array of the absolute values of the non-zero input curve values:
sety = set of (abs(y) for all y != 0 in the input curve)
sety is then sorted, and the median value chosen.
The differencess are then computed as:
diff = abs(interpolated curve - input curve) / median y value
and the reporting is based on the maximum difference.