Problem
max_strain_criteria compares strains directly against stress allowables. In src/failure_criterias.jl:17-29, the checks use m.Xt, m.Xc, m.Yt, m.Yc, and m.S12 as strain limits. These quantities have units of stress, so the criterion is dimensionally inconsistent and will generally classify realistic strains as safe regardless of the material stiffness.
Engineering consequence
Maximum-strain predictions are incorrect, especially when comparing materials with different E1, E2, and G12. The implementation can also silently produce meaningless results because Julia does not enforce physical units.
Proposed improvement
Compute allowable strains from the elastic constants and strengths, e.g. ε1t = Xt/E1, ε1c = Xc/E1, ε2t = Yt/E2, ε2c = Yc/E2, and γ12 = S12/G12. Apply the sign-dependent limits to the local strain components. Add documentation clarifying engineering-shear conventions and regression tests for uniaxial and combined loading.
Problem
max_strain_criteriacompares strains directly against stress allowables. Insrc/failure_criterias.jl:17-29, the checks usem.Xt,m.Xc,m.Yt,m.Yc, andm.S12as strain limits. These quantities have units of stress, so the criterion is dimensionally inconsistent and will generally classify realistic strains as safe regardless of the material stiffness.Engineering consequence
Maximum-strain predictions are incorrect, especially when comparing materials with different
E1,E2, andG12. The implementation can also silently produce meaningless results because Julia does not enforce physical units.Proposed improvement
Compute allowable strains from the elastic constants and strengths, e.g.
ε1t = Xt/E1,ε1c = Xc/E1,ε2t = Yt/E2,ε2c = Yc/E2, andγ12 = S12/G12. Apply the sign-dependent limits to the local strain components. Add documentation clarifying engineering-shear conventions and regression tests for uniaxial and combined loading.