ERSATZ ENGINEERING STRESS-STRAIN CURVE GENERATOR

Builds a synthetic metallic engineering stress-strain curve from six anchor points (yield, ultimate, failure) divided into three segments: linear elastic, pre-ultimate strain hardening (power or Voce-like saturation), and post-necking softening (linear, concave-down/up power, or damage-slope). Optional energy targets back-solve the shape exponents in each segment so the reconstructed area matches measured values (e.g., from curve_engstress_stats), capturing the plateau-then-cliff post-neck profile typical of ductile metals.

When to use

Classification: process.

Tagged: curve_generation, damage, ductile_metal, energy_target, engineering_stress_strain, ersatz, failure, metallic.

Inputs

Label ID Type Default Required Description
Material Name material_name scalar   Optional label string used to identify or annotate the generated curve (e.g., ‘DP600’); leave blank if no annotation is needed.
Eng Yield Strain eng_yield_strain scalar 0.005   Engineering strain at the yield point (dimensionless); default 0.005 — the first anchor marking the end of the linear-elastic segment.
Eng Yield Stress eng_yield_stress scalar 210   Engineering stress at yield in MPa; default 210 — defines the slope of the elastic segment together with eng_yield_strain.
Eng Ultimate Strain eng_ultimate_strain scalar 0.2   Engineering strain at the ultimate tensile strength (UTS) point (dimensionless); default 0.2 — marks the onset of necking and post-neck softening.
Eng Ultimate Stress eng_ultimate_stress scalar 350   Engineering UTS stress in MPa; default 350 — the peak stress anchor and upper bound of the strain-hardening segment.
Eng Failure Strain eng_failure_strain scalar 0.3   Engineering strain at fracture/failure (dimensionless); default 0.3 — defines the end point of the post-necking softening segment.
Eng Failure Stress eng_failure_stress scalar 320   Engineering stress at fracture/failure in MPa; default 320 — the terminal stress anchor; must be less than eng_ultimate_stress for a softening profile.
Post-Necking Shape post-necking_shape select linear   Shape of the post-necking softening segment between ultimate (after any plateau) and failure. linear is the existing straight-line drop (backward compatible default). power_concave_down starts horizontal at the ultimate (slope = 0) and accelerates the drop. power_concave_up drops fast immediately past the ultimate and eases gently into the failure anchor. damage_based applies continuum damage to a slope-at-ultimate continuation: small Damage at Failure barely softens the curve (continues at the slope of the rising-segment), close to 1 drops it fast.
Post-Necking Power post-necking_power scalar 2   For power_concave_down / power_concave_up: curvature of the post-necking segment (ignored when shape = linear; default 2). For damage_based: exponent of the damage ramp D(t) = D_max * t^power (default 2 = gentle, 1 = linear ramp, 3-4 = sharper softening near failure).
Damage at Failure damageat_failure scalar 0.3   Used only when Post-Necking Shape = damage_based. Terminal damage value D_max in [0, 1] at the failure strain. Larger values (closer to 1) drop the curve quickly toward a stress well below the failure anchor; small values barely soften the curve, continuing the slope at the ultimate. Set to 0 to auto-determine: D_auto = (epsilon_failure - epsilon_ultimate) / epsilon_ultimate, clamped to [0, 0.95] — small post-ultimate strain gap gives mild damage, large gap gives strong damage. Note: the damage_based shape does NOT necessarily land on the failure stress anchor — that anchor is informational under this shape. Default 0.3.
Plateau Fraction plateau_fraction scalar 0   Fraction of the post-ultimate range (epsilon ultimate to epsilon failure) where the curve stays flat at the ultimate stress before any softening starts. 0 (default) means no plateau and is backward compatible. 0.3 keeps the curve at the ultimate for 30% of the post-ultimate strain range, then the chosen Post-Necking Shape applies for the remaining 70%. Use this knob to control how long the material stays at peak stress before failure.
Pre-Ultimate Shape Power pre-ultimate_shape_power scalar 0.5   Concave-down power for the strain-hardening segment from yield to ultimate: sigma = sigma_yld + (sigma_ult - sigma_yld) * t^p. Default 0.5 reproduces prior behaviour (sqrt rise — fast initial climb, slowing toward the ultimate). Smaller values (0.2 - 0.4) reach the ultimate even faster; larger values (0.7 - 1.0) keep the curve closer to the yield line for longer before approaching the ultimate. Use this knob to control how fast the material reaches the ultimate. Ignored when Target Energy (Yield to Ultimate) > 0 with Pre-Ultimate Shape = power, since the exponent is then back-solved to match the target area.
Target Energy (Yield to Ultimate) target_energy(yieldto_ultimate) scalar 0   Optional energy criterion: area under the engineering curve from yield to ultimate (∫ sigma d epsilon) that the reconstructed hardening segment should match. When > 0, the worker back-solves the pre-ultimate shape parameter so the reconstructed area equals this target. For Pre-Ultimate Shape = power: closed-form p = (sigma_ult - sigma_yld) / (target_energy / (eps_ult - eps_yld) - sigma_yld) - 1, clamped to [0.05, 5]. For Pre-Ultimate Shape = voce: bisects the saturation rate k. Set 0 (default) to disable and use the explicit Pre-Ultimate Shape Power / Voce K knob instead. Typical use: pipe energy_yield_to_ultimate from curve_engstress_stats here so the reconstruction matches the measured plastic work.
Pre-Ultimate Shape pre-ultimate_shape select power   Functional family for the strain-hardening segment from yield to ultimate. power (default, backward compatible) uses sigma = sigma_yld + (sigma_ult - sigma_yld) * t^p. voce uses a saturation form sigma = sigma_yld + (sigma_ult - sigma_yld) * (1 - exp(-k*t)) / (1 - exp(-k)) — fast initial rise that flattens as it approaches the ultimate, often a better fit for measured metals curves than a single-exponent power.
Voce K voce_k scalar 0   Voce saturation rate constant (1/strain); default 0.0 — only active when pre_ult_shape = ‘voce’; controls how quickly the hardening rate decays toward the UTS.
Target Energy (Ultimate to Failure) target_energy(ultimateto_failure) scalar 0   Optional energy criterion for the post-neck segment: area under the engineering curve from ultimate to failure (∫ sigma d epsilon) that the reconstructed post-neck segment should match. When > 0 and Post-Necking Shape is power_concave_down or power_concave_up, the worker back-solves Post-Necking Power so the reconstructed area equals this target. For power_concave_down (closed form): p = (sigma_fail - sigma_ult) / (target / (eps_fail - eps_ult) - sigma_ult) - 1, clamped to [1, 50]. For power_concave_up: p = r/(1-r) where r = (mean - sigma_ult) / (sigma_fail - sigma_ult). High p in concave_down naturally produces the plateau-then-cliff profile common in measured ductile-metal post-neck curves (stays near sigma_ult most of the way, then drops sharply near failure). No-op for linear (area is fixed) and damage_based (multi-parameter — left untouched). Set 0 (default) to disable. Typical use: pipe energy_ultimate_to_failure from curve_engstress_stats here so the post-neck reconstruction matches the measured plastic work.

Outputs

Label ID Type Description
curve_ersatz_eng_output_1 curve_ersatz_eng_output_1 vector Synthesized engineering stress-strain curve as a two-column vector [strain, stress (MPa)] spanning from the origin through the elastic, hardening, and post-necking segments to the failure anchor.

Disciplines

  • data.curve.transform
  • engineering.material.calibration
  • engineering.material.characterization

Runnable example

A runnable example is registered for this worker. Open the example workflow on the d3VIEW canvas: /api/workflow/example?id=curve_ersatz_eng


Auto-generated from transformation schema. Worker id: curve_ersatz_eng. Schema hash: 7cb9b2d2e351. Hand-curated docs in workerexamples/ override this page when present.