MatTest
Technical Documentation

Calculation Methodology

All computations in MatTest are performed entirely in your browser using well-established methods from materials science. This page documents each step in detail.

1. Data Input & Preprocessing

MatTest accepts two types of input: raw load-displacement data (which is then converted to engineering stress-strain) or direct engineering stress-strain data.

For load-displacement data, the following conversions are applied:

  • Load is converted to Newtons based on the selected unit (N, kN, lbf, kgf)
  • Displacement is converted to millimetres based on the selected unit
  • Engineering stress = Force (N) / Initial area A₀ (mm²), output in target stress unit
  • Engineering strain = Displacement (mm) / Gauge length L₀ (mm) — dimensionless

Rows with missing or non-numeric values in the selected columns are automatically discarded. The first row with negative strain is trimmed to start analysis at zero strain.

2. Engineering Stress & Strain

Engineering (nominal) stress and strain are defined as:

σ_eng = F / A₀

ε_eng = ΔL / L₀ = (L - L₀) / L₀

where F is the applied force, A₀ is the original cross-sectional area, L is the current gauge length, and L₀ is the original gauge length. These are the standard definitions used throughout the analysis unless stated otherwise.

3. Elastic Modulus Auto-Fit

The elastic modulus E (Young's modulus) is determined by finding the linear region of the engineering stress-strain curve. The algorithm:

  1. Considers only the first 50% of data points as candidates for the linear region
  2. Applies a sliding window of approximately 20% of the candidate range
  3. For each window position, performs linear regression (σ vs ε)
  4. Selects the window with the highest R² (coefficient of determination)
  5. Returns the slope of that regression as E, along with the strain range used and R²

E = slope of best-fit line in [σ vs ε] in optimal window

R² = 1 - SS_res / SS_tot

This approach is robust to noisy data near the origin and toe compensation effects, as it finds the purest linear region rather than forcing a fit through all early data.

4. Yield Strength (Offset Method)

The yield strength is determined by the proof stress / offset method (typically 0.2% offset per ASTM E8 / ISO 6892-1). The offset line is defined as:

σ_offset(ε) = E × (ε - ε_offset)

where ε_offset = offset_percent / 100 (e.g., 0.002 for 0.2%)

The yield point is found by locating the intersection of this offset line with the stress-strain curve. Linear interpolation is used between data points to achieve sub-point-spacing accuracy.

The offset percentage is configurable (default 0.2%). For materials with a distinct upper/lower yield point, consider using the lower yield stress instead.

5. True Stress & True Strain

True stress and strain account for the changing cross-sectional area during deformation. Under the assumption of volume conservation and uniform deformation (valid only up to necking):

ε_true = ln(1 + ε_eng)

σ_true = σ_eng × (1 + ε_eng)

Warning: These equations are only valid up to the onset of necking (UTS). Beyond the UTS, deformation becomes non-uniform, and these formulas no longer accurately represent the local stress and strain in the neck. MatTest computes true values only up to the UTS point and marks post-UTS values as approximate.

6. Hardening Rate

The instantaneous strain hardening rate (work hardening rate) is computed as the numerical derivative of true stress with respect to true strain:

dσ_true/dε_true

Computed using central differences:

dσ/dε[i] = (σ[i+1] - σ[i-1]) / (ε[i+1] - ε[i-1])

Forward/backward differences at endpoints

The raw hardening rate can be noisy; smoothing is applied before using it for the Considere criterion. See Section 9 for smoothing methods.

7. Necking Onset (Considere Criterion)

Necking initiates when the load-bearing capacity increment can no longer compensate for the area reduction. The Considere criterion states:

dσ_true/dε_true = σ_true

Necking onset = point where hardening rate (smoothed) crosses true stress from above

MatTest finds this crossing point on the true stress-true strain curve by scanning for a sign change in (dσ/dε - σ_true) and uses linear interpolation for precision. The smoothed hardening rate is used for this detection to avoid false positives from noise.

8. Hollomon Strain Hardening Law

The Hollomon (power law) equation describes the plastic flow stress:

σ_true = K × ε_p^n

where ε_p = ε_true - σ_true/E (plastic true strain)

Fitting is performed by linear regression on logarithmic values:

ln(σ_true) = n × ln(ε_p) + ln(K)

n = slope, K = exp(intercept)

Only data points with positive plastic strain (ε_p > 0) are included. The default fitting range spans the entire pre-necking true strain range. In Advanced Mode, the user can specify a custom range to focus on the power-law regime.

The R² value from the log-log regression is reported as a measure of how well the Hollomon model fits the data.

9. Smoothing Methods

Two smoothing methods are available for the hardening rate curve:

Moving Average

Each point is replaced by the mean of its neighbors within a symmetric window of size w. Window is centered; edges use available points only.

y_smooth[i] = mean(y[i-w/2 : i+w/2])

Savitzky-Golay Filter

A polynomial of specified order is fitted to each local window using least squares, and the center value of the polynomial is used as the smoothed value. This preserves peaks and features better than a simple moving average.

Fit polynomial of order p to window of size w, evaluate at center point

10. Limitations & Assumptions

Fracture strain is reported as an estimated engineering strain at the inferred fracture event. MatTest first searches the post-UTS engineering stress history for the earliest sustained collapse, then falls back to the largest post-UTS stress drop, and only uses the final recorded point when neither pattern is clear.

  • Isotropic, homogeneous material — anisotropic materials (e.g., rolled sheets with texture) require more advanced analysis.
  • Uniaxial stress state — multiaxial loading is not considered.
  • Volume conservation — assumed for true stress/strain conversion (valid for metals, not porous materials).
  • Uniform deformation up to UTS — required for true stress/strain formulas.
  • Estimated fracture point — the inferred fracture strain is based on post-UTS stress collapse and can still shift if your machine records extra tail data or stops slightly early.
  • Toe compensation not applied — the E-fit algorithm mitigates toe effects by finding the highest-R² linear region, but formal toe compensation per ASTM E111 is not implemented.
  • Hollomon model validity — the power law is a good approximation for many metals in the mid-strain range but may not fit low- or high-strain regions well.

Disclaimer: Results from MatTest are intended for research and educational purposes only. They are not certified for structural engineering design, safety-critical applications, or regulatory compliance. Always verify critical results with accredited testing.