Skip to content

feat(data): add CFRP T700/epoxy and G10 composite laminates (#138, #139)#210

Merged
gerchowl merged 1 commit into
mainfrom
feature/phase5-batch6-composites
May 6, 2026
Merged

feat(data): add CFRP T700/epoxy and G10 composite laminates (#138, #139)#210
gerchowl merged 1 commit into
mainfrom
feature/phase5-batch6-composites

Conversation

@gerchowl
Copy link
Copy Markdown
Contributor

@gerchowl gerchowl commented May 6, 2026

Summary

Adds two anisotropic structural composite laminates to src/pymat/data/plastics.toml. Both stored as scalars in the canonical orientation (warp / 0deg fiber direction) with V_f, resin, and orientation documented in each per-property _sources.note. Closes #138 and #139.

  • pymat.cfrp_t700 — Toray T700S UD ply, 60% Vf, Toray 2500 / 120 degC epoxy, RT, 0deg.
  • pymat.g10 — NEMA G-10 / G-10CR glass-cloth/epoxy, 295 K, warp direction.
Material density (g/cm^3) E_long (GPa) sigma_t,long (MPa) k_long (W/(m*K)) alpha_long (/K)
cfrp_t700 (UD, 60% Vf, 0deg) 1.55 135 2550 9.37 -0.38e-6
g10 (G-10CR, warp) 1.904 27.9 429 0.85 1.18e-5

For CFRP, transverse (90deg) modulus / strength / k / CTE are intentionally not stored: the schema is scalar and a single number cannot capture the ~3x quasi-iso vs UD-0deg gap or the +30e-6 /K transverse CTE. Notes in _sources flag this for each affected property. For G-10, fill direction is ~0.65-0.80 of warp (Kasen Table I); normal-direction k and CTE differ from warp by ~0.7x and ~3.6x respectively, also documented in notes.

CFRP CTE is negative (-0.38e-6 /K) along the fiber axis — this is correct, not a sign error. Aligned PAN carbon fibers contract on heating along the fiber axis; the data sheet quotes this directly.

Primary citations

  • G-10CR mechanical / electrical — Kasen, MacDonald, Beekman, Schramm (1980) "Mechanical, Electrical, and Thermal Characterization of G-10CR and G-11CR Glass-Cloth/Epoxy Laminates Between Room Temperature and 4 K", Adv. Cryogenic Eng. 26:235. DOI 10.1007/978-1-4613-9859-2_24. License proprietary-reference-only.
  • G-10CR thermal (k, Cp, alpha)NIST Cryogenic Material Properties G-10CR — polynomial curve fits evaluated at 293 K. License PD-USGov.
  • CFRP T700S/epoxy — Toray T700S Carbon Fiber Data Sheet (Commercial Documentation AQ.866-6, July 2024, toray-cfe.com). License proprietary-reference-only.

Assumptions / fields intentionally omitted

  • CFRP V_f = 60% (industry-standard high-performance); resin = Toray 2500 / 120 degC. Documented in cfrp_t700._sources._default.note.
  • G-10 dielectric constant 4.9 is the standard NEMA G-10 / IEC 60893 GEC1 industry value; not in Kasen 1980 — flagged as such in the per-property note.
  • No melting_point / glass_transition stored for either composite (both have decomposition behavior, not clean melting; Tg of G-10/G-10CR varies by resin batch and is not in Kasen 1980).
  • No youngs_modulus_curve / thermal_conductivity_curve (Schema: T-dependent property curves #148 T-dependent) added in this PR despite NIST polynomial availability — scope-limited to scalar entries; Schema: T-dependent property curves #148 curve adoption is a follow-up if needed.
  • No transverse / quasi-iso composite values for CFRP (schema is scalar; explicit in note).

Test plan

  • python -c 'import tomllib; tomllib.loads(open("src/pymat/data/plastics.toml").read())' parses cleanly
  • python scripts/check_licenses.py — 7 TOMLs, no issues
  • uv run python -m pytest tests/test_toml_integrity.py tests/test_sources.py — 43 passed
  • uv run python -m pytest (full suite) — 628 passed, 24 skipped
  • uv run ruff check . && uv run ruff format --check . — clean
  • Spot-check: from pymat import g10, cfrp_t700; g10.density == 1.904; cfrp_t700.thermal_expansion == -3.8e-7; g10.source_of("thermal.thermal_conductivity") returns NIST PD-USGov source

Closes #138 (CFRP T700/epoxy laminate) and #139 (G10 glass-epoxy laminate).

Both materials are anisotropic structural composites added to plastics.toml.
The schema is scalar, so a single canonical orientation is reported per
property and the orientation/V_f/temperature assumptions are documented in
each per-property `_sources.note`.

CFRP T700S/epoxy (`pymat.cfrp_t700`):
- Toray T700S unidirectional ply at 60% fiber volume, Toray 2500 / 120 degC
  epoxy resin, room temperature, 0deg fiber direction.
- Mechanical/thermal/electrical from the Toray T700S commercial data sheet
  (toraycma.com/toray-cfe.com, July 2024 release).
- CTE is correctly negative (-0.38e-6 /K) along the fiber axis — typical
  for aligned PAN carbon fibers; transverse CTE (~+30e-6 /K) is not stored.

G-10 / G-10CR (`pymat.g10`):
- Mechanical (E_warp, sigma_t, sigma_c, nu, density) from Kasen et al.
  (1980), NBS characterization, manufacturer A production plant, 295 K,
  warp direction (DOI 10.1007/978-1-4613-9859-2_24, Adv. Cryogenic Eng. 26,
  235). License `proprietary-reference-only`.
- Thermal (k_warp, Cp, alpha_warp) computed from the NIST Cryogenic
  Material Properties G-10CR polynomial curve fits at T = 293 K
  (https://trc.nist.gov/cryogenics/materials/G-10%20CR%20Fiberglass%20Epoxy/).
  License `PD-USGov`.
- Electrical (volume resistivity, breakdown voltage) from Kasen Table III.
- G-10CR meets NEMA G-10 spec; values are canonical for both grades.

Both entries are registered in `_CATEGORY_BASES["plastics"]` so
`from pymat import g10, cfrp_t700` works through the lazy loader.
@gerchowl gerchowl enabled auto-merge (squash) May 6, 2026 23:40
@gerchowl gerchowl merged commit 8aa2a4a into main May 6, 2026
19 checks passed
@vig-os-release-app vig-os-release-app Bot mentioned this pull request May 6, 2026
6 tasks
@vig-os-release-app vig-os-release-app Bot mentioned this pull request May 7, 2026
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add CFRP T700/epoxy laminate

1 participant