Skip to content

Materials: Add Copper Alloys to Material-Metals#25832

Merged
chennes merged 10 commits intoFreeCAD:mainfrom
JoesCat:Cu
Feb 8, 2026
Merged

Materials: Add Copper Alloys to Material-Metals#25832
chennes merged 10 commits intoFreeCAD:mainfrom
JoesCat:Cu

Conversation

@JoesCat
Copy link
Contributor

@JoesCat JoesCat commented Nov 30, 2025

This Pull request builds-on #25344 by adding a set of Properties presented in Application Data Sheet cda144-8-mechanical-low-temperature.pdf, Nov1974, credit to the Copper Distributor's Association (CDA), permission [#721308].

Appearance

To avoid accidentally inheriting a modified or new Copper-Generic model value, all these copper and copper alloys begin with inheriting colours from Model appearances.

Copper Alloy, Table 1 inherit closest colour
Copper-102 (Cold drawn 60%) copper copper
Copper-122a (Annealed) copper classic reddish-brown
Copper-122b (Cold drawn 26%) copper classic reddish-brown
Copper-150 (Cold drawn 85-90%, Aged 1hr) copper copper
Copper-220 (Annealed) brass golden-yellow
Copper-230 (Cold drawn 14%) bronze reddish-gold
Copper-443 (Annealed 1hr) brass brass
Copper-464 (Annealed 1hr) gold yellow gold
Copper-510 (Cold drawn 85) bronze reddish gold, bronze
Copper-614 (Commercial anneal) brass brass
Copper-647 (Aged 2hr) bronze bronze
Copper-655 (Commercial anneal, soft) bronze reddish brown
Copper-706 (Anneal, ¾hr) silver copper nickel
Copper-715 (Commercial anneal) silver copper nickel
Copper-955 (Sand cast) brass brass

NOTE: The last material had no number, but based on composition, the closest was C95500, and also the Yield, Tensile strengths were closest for C95500, M01, so for consistency, I named the last material Copper-955. This may be incorrect, but was a best guess based on material composition.

Hardness

Kept original Rb, Rf hardness values, but may be converted to Vickers?

Copper Alloy, Table 1 Hardness Conversion to HV
Copper-102 (Cold drawn 60%) Rb 45-53 (100-110)-> ~105 HV1
Copper-122a (Annealed) Rf 35 HV ~46 HV1
Copper-122b (Cold drawn 26%) Rb 50 ~106 HV1
Copper-150 (Cold drawn 85-90%, Aged 1hr) Rb 68 ~132 HV1
Copper-220 (Annealed) Rf 49 ~56 HV1
Copper-230 (Cold drawn 14%) Rf 64 ~70 HV1
Copper-443 (Annealed 1hr) Rf 55 ~61 HV1
Copper-464 (Annealed 1hr) Rb 57 ~114 HV1
Copper-510 (Cold drawn 85) Rb 94 205 HV30
Copper-614 (Commercial anneal) Rb 97 222 HV30
Copper-647 (Aged 2hr) Rb 98 228 HV30
Copper-655 (Commercial anneal, soft) Rb 54 111 HV1
Copper-706 (Anneal, ¾hr) Rb 33 90 HV1
Copper-715 (Commercial anneal) Rb 47 103 HV1
Copper-955 (Sand cast) Rb 93 200 HV30

Young's and Shear Modulus

Table 2: conversion calculations for value 10⁶psi x 0.0068976 => value GPa

Copper Alloy, Table 2, 295°K Young's Modulus ±5% Shear Modulus ±2%
Copper-102 (Cold drawn 60%) 17.3e6 psi, 119 GPa -
Copper-122a (Annealed) 15.1e6 psi, 104 GPa 6.46e6 psi, 44.5 GPa
Copper-122b (Cold drawn 26%) 18.9e6 psi, 130 GPa -
Copper-150 (Cold drawn 85-90%, Aged 1hr) 15.8e6 psi, 109 GPa -
Copper-220 (Annealed) 15.1e6 psi, 104 GPa 6.59e6 psi, 45.4 GPa
Copper-230 (Cold drawn 14%) 14.9e6 psi, 103 GPa 6.55e6 psi, 45.2 GPa
Copper-443 (Annealed 1hr) 14.6e6 psi, 101 GPa 5.94e6 psi, 41.0 GPa
Copper-464 (Annealed 1hr) 14.0e6 psi, 96.5 GPa 5.76e6 psi, 39.7 GPa
Copper-510 (Cold drawn 85) 15.6e6 psi, 108 GPa -
Copper-614 (Commercial anneal) 15.8e6 psi, 109 GPa -
Copper-647 (Aged 2hr) 21.4e6 psi, 148 GPa -
Copper-655 (Commercial anneal, soft) 15.8e6 psi, 109 GPa -
Copper-706 (Anneal, ¾hr) 17.7e6 psi, 122 GPa -
Copper-715 (Commercial anneal) 22.0e6 psi, 152 GPa -
Copper-955 (Sand cast) 16.8e6 psi, 116 GPa -

Tensile and Yield Strengths

Copper Alloy, Table 2, 295°K Tensile Strength Yield Strength
Copper-102 (Cold drawn 60%) 48400 psi → 334 MPa 46800 psi → 323 MPa
Copper-122a (Annealed) 31300 psi → 216 MPa 6700 psi → 46.2 MPa
Copper-122b (Cold drawn 26%) 51800 psi → 357 MPa 49400 psi → 341 MPa
Copper-150 (Cold drawn 85-90%, Aged 1hr) 64450 psi → 444 MPa 59600 psi → 411 MPa
Copper-220 (Annealed) 38500 psi → 265 MPa 9600 psi → 66.2 MPa
Copper-230 (Cold drawn 14%) 40400 psi → 279 MPa 13000 psi → 89.6 MPa
Copper-443 (Annealed 1hr) 44800 psi → 309 MPa 10600 psi → 73.1 MPa
Copper-464 (Annealed 1hr) 63300 psi → 436 MPa 31000 psi → 214 MPa
Copper-510 (Cold drawn 85) 77400 psi → 534 MPa 72000 psi → 496 MPa
Copper-614 (Commercial anneal) 83200 psi → 574 MPa 59400 psi → 410 MPa
Copper-647 (Aged 2hr) 112400 psi → 775 MPa 105000 psi → 724 MPa
Copper-655 (Commercial anneal, soft) 61400 psi → 423 MPa 24200 psi → 167 MPa
Copper-706 (Anneal, ¾hr) 49600 psi → 342 MPa 21400 psi → 148 MPa
Copper-715 (Commercial anneal) 57800 psi → 399 MPa 18700 psi → 129 MPa
Copper-955 (Sand cast) 101200 psi → 697.7 MPa 44000 psi → 303 MPa

Elongation and Area Reduction (and UltimateStrain)

Initially, I was going to apply Elongation values (above) to UltimateStrain, but seeing the units required are kPa, it appears, you're looking for force at the worst point, which appears to be = (1/(1 - AreaReduction)) x UltimateTensileStrength (edit: UltimateStrain formula and values wrong, striked-out and please disregard them here)

Copper Alloy, Table 2, 295°K Elongation Area Reduction UltimateStrain
Copper-102 (Cold drawn 60%) 17% 77% 1451 MPa
Copper-122a (Annealed) 45% 76% 899 MPa
Copper-122b (Cold drawn 26%) 17% 76% 1488 MPa
Copper-150 (Cold drawn 85-90%, Aged 1hr) 16% 62% 1169 MPa
Copper-220 (Annealed) 56% 84% 1659 MPa
Copper-230 (Cold drawn 14%) 48% 74% 1071 MPa
Copper-443 (Annealed 1hr) 86% 81% 1626 MPa
Copper-464 (Annealed 1hr) 37% 52% 909 MPa
Copper-510 (Cold drawn 85) 18% 78% 2426 MPa
Copper-614 (Commercial anneal) 40% 66% 1687 MPa
Copper-647 (Aged 2hr) 15% 60% 1937 MPa
Copper-655 (Commercial anneal, soft) 66% 79% 2015 MPa
Copper-706 (Anneal, ¾hr) 37% 79% 1628 MPa
Copper-715 (Commercial anneal) 47% 68% 1245 MPa
Copper-955 (Sand cast) 11% 9% 767 MPa

Added a set of Copper Alloys presented in Application Data Sheet
'cda144-8-mechanical-low-temperature.pdf, Nov1974'
Permission and Credit to the 'Copper Distributor's Association (CDA)'
These cards follow values for 295°K

Colours approximate values found by general search of images and
descriptions found on the internet and use FreeCAD's appearances.
@chennes
Copy link
Member

chennes commented Nov 30, 2025

@davesrocketshop this probably needs your input, if you have time. I can double-check the values themselves, but evaluating whether the proposed treatment of UltimateStrain is correct gets a little beyond me 😁 .

Name: "Copper-102"
Author: "Joe Da Silva"
License: "LGPL-2.0-or-later"
Description: "Copper-102, Oxygen Free, Cold drawn 60%. Cu≥99.95%. These values for 295°K were imported from file 'cda144-8-mechanical-low-temperature.pdf' with permission and credit to the 'Copper Development Association' (CDA). For your own production accuracy, please use values provided by the material vendors you are working with."
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

YAML supports multi-line strings that are a lot more readable. For an example, see: https://github.com/davesrocketshop/Woods/blob/master/Resources/Models/RadialAnisotropicLinearElastic.yml

To be clear, this will work. But using multi-line strings is a good best practice.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also consider using tags. They're not supported in the current editor but will be in the next iteration. See an example here: https://github.com/davesrocketshop/Woods/blob/master/Resources/Materials/African%20Blackwood.FCMat

@davesrocketshop
Copy link
Contributor

I'm not sure about UltimateStrain. This isn't saying you're wrong, but I'm not an expert here so need to do some research.

@davesrocketshop
Copy link
Contributor

I don't think you can find the UltimateStrain that way. I'm digging deeper, but here is the AI summary:

You cannot calculate the ultimate strain directly from the ultimate tensile strength (UTS); they are two different properties measured at the same point on a stress-strain curve. The ultimate strain is the total strain the material has undergone at the point of UTS, while the UTS is the maximum stress the material can withstand.

  • Ultimate Tensile Strength (UTS): This is the maximum stress a material can endure before it starts to neck and weaken. It is represented by the peak of the engineering stress-strain curve.

  • Ultimate Strain : This is the total strain experienced by the material when it reaches its ultimate tensile strength. It is the value of the strain at the peak of the stress-strain curve.

To find the ultimate strain, you need to refer to the stress-strain curve generated during a tensile test and identify the strain value that corresponds to the point of maximum stress (UTS). You can either read this value directly from the curve or extract it from the raw data of the test.

@maxwxyz maxwxyz added the Type: Other Tasks, refactoring, quality improvement, actions, dependencies, packaging, translations or other... label Dec 1, 2025
@maxwxyz maxwxyz moved this from Queue to Merge Meeting in Merge Queue Dec 1, 2025
@maxwxyz maxwxyz added this to the 1.2 milestone Dec 1, 2025
@JoesCat
Copy link
Contributor Author

JoesCat commented Dec 1, 2025

Elongation and Area Reduction is related to point of fracture, and I likely have the formula wrong too, so it's best I remove the value for UltimateStrain for these cards.

However, something still seems a little odd, I searched for "ultimate strain at fracture as a force", and it reminded me strain is not a force, but defined it as:

Strain: A dimensionless ratio that measures how much a material deforms when a force is applied. It is calculated as:

  • Engineering Strain = (Change in Length) / (Original Length)

and a little further down I read:
Fracture Strain: The strain value at the exact moment the material breaks. It is calculated by dividing the total elongation of the material at fracture by its original length.
So in this case, I could understand elongation of 17% (for Copper-102) to resolve as a dimensionless value of

  • Fracture Strain = (17%) / (100%) = 0.17 or maybe (100%+17%)/(100%) = 1.17
    There is no kPa unit value in this result.... so I'm sort of wondering if the units are wrong for UltimateStrain.

I'll go ahead and update the cards by removing UltimateStrain, and then also apply Dave's multistrings and TAGs suggestions - those are good suggestions worth adding.

Question:
These cards only present 295K, but the documents have multiple temperature points for the same copper materials, so it may be useful too add them to the cards too, maybe as 2D or 3D arrays. Do you want me to add them too? or maybe add it in a separate PR to keep the size of this PR from growing too much?

Question:
It would be useful to pull-in other data from C10200 to supplement Copper-102, C12200 to supplement Copper-122{a/b}.....like Poisson's Ratio, densities, etc. Should I append to this PR? or leave this work for a separate PR to avoid growing this PR too large?

@davesrocketshop
Copy link
Contributor

If you have the temperature based data, I'd add that here too. No one uses it yet, but that's because it's not been available. Build it and they will come!

I wouldn't worry about the size of the PR. It's still pretty self contained. It's pretty difficult to change a material without affecting projects, so it's better to be complete and correct.

As for strain, I believe you may be right about dimensions. I blindly copied what was in the previous material cards which probably wasn't the best idea. Checking in other materials, various Aluminum and Steel materials have values, all dimensionless. While you're in there it might be a good idea to remove the units from the LinearElastic.yml file to avoid future confusion.

@davesrocketshop
Copy link
Contributor

One final note: your materials don't include the source of your information. This is useful for validating data in the future. Please add appropriate "SourceURL" and "ReferenceSource" values, especially since you have that information available. For an example see: https://github.com/davesrocketshop/Woods/blob/master/Resources/Materials/African%20Blackwood.FCMat

I know I'm being picky here, but it's better to include these things for materials included in the core. It's different if you're just using them in your own projects.

This additional information appears as general info not affected by
anneal or cold drawn or aging factors.
Information found from pages C10200, C12200, C15000, C22000, C23000,
C44300, C46400, C51000, C61400, C64700, C65500, C70600, C71500, C95500

Also followed suggestions of adding tagging and description mentioned
in pull request.
@JoesCat
Copy link
Contributor Author

JoesCat commented Dec 5, 2025

Main source of information came from:
References for Copper-102...955
copper.org 144/8R
There is a similar document located on the Nickel institute, but it's named as cda144-8-mechanical-low-temperature.pdf

details and history concerning IACS% with 100% applying to Cu~99.95%
Interesting details about IACS 100%, values are typically reported at 20°C.
Details about Magnetic Permeability

Pure copper Poisson's ratio of 0.344 and Bulk Modulus of 137 GPa for 300°K
Poissins-Ratio.gif see this page

Somewhat generic/general info

Copper Alloy, 295°K Btu/lb/°F J/kg/K Btu/sq ft/ft hr/°F W/m/K °F µm/m/K IACS% SM/m
Copper-102 (Cold drawn 60%) 0.092 385 226 391 9.4 16.92 101% 58.58
Copper-122 0.092 385 196 339 9.4 16.92 85% 49.3
Copper-150 (Cold drawn 85-90%, Aged 1hr) 0.092 385 212 367 9.4 16.92 90% 52.2
Copper-220 (Annealed) 0.09 377 109 189 10.2 18.36 44% 25.52
Copper-230 (Cold drawn 14%) 0.09 377 92 159 10.4 18.72 37% 21.46
Copper-443 (Annealed 1hr) 0.09 377 64 111 11.2 20.16 25% 14.5
Copper-464 (Annealed 1hr) 0.09 377 67 116 11.8 21.24 26% 15.08
Copper-510 (Cold drawn 85) 0.09 377 40 69.2 9.9 17.8 15% 8.7
Copper-614 (Commercial anneal) 0.09 377 39 67.5 9.6 17.3 14% 8.12
Copper-655 (Commercial anneal, soft) 0.09 377 21 36.3 10 18 7% 4.06
Copper-706 (Anneal, ¾hr) 0.09 377 26 45 9.5 17.1 9% 5.22
Copper-715 (Commercial anneal) 0.09 377 17 29.4 9 16.2 4.6% 2.67
Copper-955 (Sand cast) 0.1 419 24.2 41.9 9 16.2 8% 4.64

Specific Heat multiplier = 4186.8
Thermal Conductivity multiplier = 1.73
Cooefficient of Expansion used = 9/5*1000000
Conductivity used = 58
Magnetics used = 1.32 / 1.26e-6 =1050119

Will look at adding Ultimate Strain next...

Name: "Copper-102"
Author: "Joe Da Silva"
License: "LGPL-2.0-or-later"
SourceURL: "https://github.com/FreeCAD/FreeCAD/pull/25832"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not quite what is meant here. It should be the web page or URL where you sourced the information or downloaded the PDF. So https://copper.org/publications/pub_list/pdf/144-8-mechanical.pdf

Added the URL for the source Application Data Sheet
'cda144-8-mechanical-low-temperature.pdf, Nov1974'
This pdf is hosted by the 'Copper Distributor's Association (CDA)'

Here is the source URL for this pull request in case it's needed:
FreeCAD#25832
Copy link
Contributor

@davesrocketshop davesrocketshop left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for doing this. It is appreciated.

@JoesCat
Copy link
Contributor Author

JoesCat commented Dec 12, 2025

It took a bit of digging, but this makes sense.

I don't think you can find the UltimateStrain that way. I'm digging deeper, but here is the AI summary:

You cannot calculate the ultimate strain directly from the ultimate tensile strength (UTS); they are two different properties measured at the same point on a stress-strain curve. The ultimate strain is the total strain the material has undergone at the point of UTS, while the UTS is the maximum stress the material can withstand.

* Ultimate Tensile Strength (UTS): This is the maximum stress a material can endure before it starts to neck and weaken. It is represented by the peak of the engineering stress-strain curve.

* Ultimate Strain : This is the total strain experienced by the material when it reaches its ultimate tensile strength. It is the value of the strain at the peak of the stress-strain curve.

To find the ultimate strain, you need to refer to the stress-strain curve generated during a tensile test and identify the strain value that corresponds to the point of maximum stress (UTS). You can either read this value directly from the curve or extract it from the raw data of the test.

I went to the root directory and ran grep "ltimateStress" -R * and found many lines with UltimateStrain but also found 3 lines with ultimateStrain too.

  • Many of the lines were for *.FCMat card files, but taking a look at a few random files like AlZn4 or a few more Steels, I was finding 'Elongation' values entered into the 'UltimateStrain' (I'm guesing that Elongation was confused with UltimateStrain, or maybe it's a case of.... if you have this value available, but you have this UltimateStain field which is sort of close, so let's put it there because it's sort of close).
  • Then there were the 3 grep lines with ultimateStrain, this one is a little confusing + ultimateStrain.length() + ultimateTensileStrength.length() + yieldStrength.length() which appears to be mixing Strain and Stength.

Then, there is a csv file too, src/Mod/BIM/Presets/pset_definitions.csv. This one is interesting, because there is UltimateStrain and UltimateStress. Following this clue further, if you go into git history, this csv file was in directory ARCH, and eventually in directory BIM, so I'm guessing these two values originated in FreeCAD architecture.

Okay, going back to google, and searching for Ultimate Strain AND Architecture brought back info more in line with what you described. I found this particularly interesting, especially figure 2, and further-on more about fatigue - interesting pdf.

...anyhow, in summary, looking at the aluminum and steel cards, it may be worth adding fields for 'Elongation' and also 'Reduction of area'. Understandable, there might not be any current use for these at the moment, but it will help users plug Elongation values into Elongation, and not UltimateStrain - basically, there are going to be several *.FCMat cards that need reviewing for UltimateStrain.

These may also shed some more light, since ultimatestress is visible here, but I did not follow-up on these.

grep "ltimatestrain" -R *
grep "ltimatestress" -R *

QUESTION:
'Elongation' and 'Reduction of area', leave them for another PR, other?

@JoesCat
Copy link
Contributor Author

JoesCat commented Dec 12, 2025

Getting back to Ultimate Strain....

This is going a little slower than I expected. I noticed the graphs aren't linear. This non-linearity can be expected when pulling paper through some photocopiers or scanners back in the 70s, 80s, 90s (For example: a company I had worked at in the past, had to put warnings on their punchout sheets telling end users not to rely entirely on a photocopied images of punchouts as they might not be 'correct' when they eventually punched-out holes and found small non-conformities). To reduce the non-linearity, I started finding points per grid instead of per page, so instead of Copper-102 using bottom left=127,794 and top right=1044,27, I started using the grids like 40-50kpsi stress and 0-0.05in/in strain.

At the moment, here are the first 3...

UltimateStrain 295°K 195°K 76°K 20°K 4°K
Copper-102 (Cold drawn 60%) 2.8% 5% 18.5% 18.9% 25.7%
Copper-122a (Annealed) 39.7% 45.2% 50.8% 56.2% 57%
Copper-122b (Cold drawn 26%) 1.46% 7.2% 17.1% 37.3% 37.3%

All these points above are based on the Tensile Strength shown in Table 2, for example, Copper 102, 295°K, Tensile Strength is 48,400psi, which, interestingly, is not the peak of the curve (closer to 48,900kpsi), this might be due to +/-tolerances, but then again, if you look at the fracture point for 295°K, there is a big difference, where the elongation=17% on table2, versus the curve's=18.5%
FIG_A
FIG_B
FIG_E

QUESTION:
Should I include (calculated) Modulus of Resilience or (calculated) Material Toughness?

Copper-102 (Cold drawn 60%)

area under curve X,Ypixel strain in/in stress kpsi stress MPa MPa
0,0 -> triangle area 128,539 0.000654 29.9 206 ~0.0675
Yield area 139,423 0.00785 43.5 300 ~1.82
Yield point 153,397 0.0170 46.6 321 ~2.85
Modulus of Resilience ~4.74
Tensile area 161,387 0.0222 47.8 329 ~1.70
Tensile point 170,383.6 0.0281 48.2 332 ~1.95
0,0 -> Tensile area ~8.39
plastic region 201,379 0.0484 48.7 336 ~6.78
279,385 0.0995 48.0 331 ~17.0
329,410 0.132 45.1 311 ~10.5
368,455 0.158 39.8 274 ~7.47
fracture point 387.4,495 0.170 35.1 242 ~3.28
Material Toughness ~53.4
Modulus of Resilience 295°K 195°K 76°K 20°K 4°K
Copper-102 (Cold drawn 60%) 4.74 MPa 3.84 MPa 0.365 MPa 0.526 MPa 0.526 MPa
Copper-122a (Annealed) 0.073 MPa 0.048 MPa 0.054 MPa 0.122 MPa 0.11 MPa
Copper-122b (Cold drawn 26%) 0.88 MPa 0.95 MPa 1.46 MPa 1.13 MPa 0.99 MPa
Material Toughness 295°K 195°K 76°K 20°K 4°K
Copper-102 (Cold drawn 60%) 53.4 MPa 65.7 MPa 123 MPa 206 MPa 199 MPa
Copper-122a (Annealed) 77.1 MPa 115 MPa 143 MPa 224 MPa 202 MPa
Copper-122b (Cold drawn 26%) 51 MPa 74 MPa 121 MPa 239 MPa 229 MPa

QUESTION: Include (estimated from curve) YieldStrain?

Yield Strain 295°K 195°K 76°K 20°K 4°K
Copper-102 (Cold drawn 60%) 1.73% 1.43% 0.39% 0.39% 0.39%
Copper-122a (Annealed) 0.32% 0.22% 0.22% 0.43% 0.43%
Copper-122b (Cold drawn 26%) 0.63% 0.63% 0.82% 0.58% 0.51%

Sanity check:
copper_ult1.csv

105=4.13%, 220=41.5%, 230=40.4%, 443=82%, 464=31.8%, 510=3.6%, 614=27%
647=9.9%, 655=10.4%, 706=28.4%, 715=39.9%, 955=10.6%.

Removed spaces between IACS = nn%, so that it all stays on same line.

Added C95500 compressive MPa.
Added C64700 Si and IACS ranges.

Also looked at 'KindOfMaterial' for Steel and made similar edits based
on Table 2 info shown in brackets () to try keep a bit of consistency.
@JoesCat
Copy link
Contributor Author

JoesCat commented Dec 16, 2025

Fast-tracked values remaining UltimateStrains for 295°K - Currently going through other temps so they can be shown here when done.

@davesrocketshop
Copy link
Contributor

Remember that this will be in v1.2. You have lots of time to make it as complete as you see fit.

@JoesCat
Copy link
Contributor Author

JoesCat commented Dec 16, 2025

Thanks, this project has a pretty fast tempo, so I was expecting it to flip pretty soon (I was using v0.8 back in Feb, and (package) v1.02 now).

Ultimate Strain is the maximum stretch you can do to a material before it
gives up. This is associated with Ultimate Tensile Strength, which is the
maximum stress you can apply before the material starts to fail, elongate
and eventually fracture.

Units are of the type ΔL/L, such as, stretched 0.10in per 1.0in (10%), or
stretched 0.15mm per 1.0mm (15%). To avoid confusion, use 0.1 or 0.15 and
avoid using 10 as for 10% or 15 as with 15%, and just call it a fraction.
@luzpaz luzpaz changed the title Add Copper Alloys to Material-Metals Materials: Add Copper Alloys to Material-Metals Dec 28, 2025
Impact Charpy and Notch Tensile Strength are both considered as Toughness
There is currently no use for these in FreeCAD, but maybe a future use as
these are part of the Table 2 and better to add them now vs forget adding
them later. The Charpy test is a fast cost-effective standardized method,
and there are other more sophisticated impact tests that can be "better".
There are other tests than the notch tensile strength test, but it's also
a simple, fast, cost-effective method to create fracture toughness data.

While adding 'Elongation' and 'Reduction of Area' both these are referred
to as percentages (preferred over fraction), it seemed best to change the
'Ultimate Strain' to percentages too for consistency even though this has
was referred to as fraction or percentage when searching for definitions.

Added Yield Strain, probably not important now because the elastic region
is pretty small, but with smart metals that can do up to 5% bends then it
seems something worth adding it for that category of future metal alloys.
@maxwxyz maxwxyz moved this from Merge Meeting to Approved in Merge Queue Jan 9, 2026
@JoesCat JoesCat force-pushed the Cu branch 2 times, most recently from e284c79 to 59f29b9 Compare January 11, 2026 09:55
@JoesCat
Copy link
Contributor Author

JoesCat commented Jan 11, 2026

Something broke along the way.
I managed to remove the last 2, then add new one here:
https://github.com/JoesCat/FreeCAD/commits/Cu/
..but...
it didn't appear to propagate correctly on your end.... (I still see mention of linkedlist patch).

...anyhow.... appears I still needed to fill in holes, otherwise FreeCAD would Bork.
...and Poisson, UltimateStrain, YieldStrain, Elongation, ReductionOfArea aren't visible (I guess it seems not to like floats yet).

I only entered Copper-102 at this point, in case this is not the expected direction and other edits required to go in another direction.

@JoesCat
Copy link
Contributor Author

JoesCat commented Jan 11, 2026

Also wasn't sure what to call these new temperature arrays, so I basically used similar descriptions as the top of Table2 in the pdf.

@JoesCat
Copy link
Contributor Author

JoesCat commented Jan 12, 2026

I think the arrays are still the solution for you. A missing feature that will be added in 1.2 is interpolation. The temperatures don't need to be at fixed intervals

I suspect, libspiro might be able to help with interpolation (thinking curve-fitting), unless you already have some other curve-fitting solution available..

@davesrocketshop
Copy link
Contributor

I think the arrays are still the solution for you. A missing feature that will be added in 1.2 is interpolation. The temperatures don't need to be at fixed intervals

I suspect, libspiro might be able to help with interpolation (thinking curve-fitting), unless you already have some other curve-fitting solution available..

I have a "mostly" implemented solution already. Just need to finish it. It got lost in my tiff with the CWG

@JoesCat
Copy link
Contributor Author

JoesCat commented Jan 13, 2026

Young's Modulus

Multiplier = YYY Mpsi x 6.89476 = ZZZ GPa

Young's Modulus 295°K 195°K 76°K 20°K 4°K
Copper-102 (Cold drawn 60%) 17.3e6psi → 119GPa - 20.0e6psi → 138GPa - 22.0e6psi → 152GPa
Copper-122a (Annealed) 15.1e6psi → 104GPa 16.0e6psi → 110GPa 16.2e6psi → 112GPa 16.3e6psi → 112GPa 16.4e6psi → 113GPa
Copper-122b (Cold drawn 26%) 18.9e6psi → 130GPa 19.9e6psi → 137GPa 20.3e6psi → 140GPa 20.8e6psi → 143GPa 21.1e6psi → 145GPa
Copper-150 (Cold drawn 85-90%, Aged 1hr) 15.8e6psi → 109GPa - 17.2e6psi → 119GPa - 17.2e6psi → 119GPa
Copper-220 (Annealed) 15.1e6psi → 104GPa 16.4e6psi → 113GPa 17.7e6psi → 122GPa 18.0e6psi → 124GPa 18.1e6psi → 125GPa
Copper-230 (Cold drawn 14%) 14.9e6psi → 103GPa 15.8e6psi → 109GPa 17.6e6psi → 121GPa 18.1e6psi → 125GPa 18.2e6psi → 125GPa
Copper-443 (Annealed 1hr) 14.6e6psi → 101GPa 14.9e6psi → 103GPa 15.5e6psi → 107GPa 16.0e6psi → 110GPa 16.2e6psi → 112GPa
Copper-464 (Annealed 1hr) 14.0e6psi → 96.5GPa 14.5e6psi → 100GPa 14.8e6psi → 102GPa 15.0e6psi → 103GPa 15.1e6psi → 104GPa
Copper-510 (Cold drawn 85%) 15.6e6psi → 108GPa 16.5e6psi → 114GPa 16.7e6psi → 115GPa 16.5e6psi → 114GPa 16.4e6psi → 113GPa
Copper-614 (Commercial anneal) 15.8e6psi → 109GPa 16.1e6psi → 111GPa 16.3e6psi → 112GPa 16.3e6psi → 112GPa 16.3e6psi → 112GPa
Copper-647 (Aged 2hr) 21.4e6psi → 148GPa 22.3e6psi → 154GPa 23.2e6psi → 160GPa 23.5e6psi → 162GPa 23.6e6psi → 163GPa
Copper-655 (Commercial anneal, soft) 15.6e6psi → 108GPa 15.8e6psi → 109GPa 16.1e6psi → 111GPa 17.0e6psi → 117GPa 17.5e6psi → 121GPa
Copper-706 (Anneal, ¾hr) 17.7e6psi → 122GPa - 19.5e6psi → 134GPa - 20.5e6psi → 141GPa
Copper-715 (Commercial anneal) 22.0e6psi → 152GPa - 23.0e6psi → 159GPa - 23.2e6psi → 160GPa
Copper-955 (Sand cast) 16.8e6psi → 116GPa 17.8e6psi → 123GPa 18.5e6psi → 128GPa 18.5e6psi → 128GPa 18.5e6psi → 128GPa

Shear Modulus

Multiplier = YYY Mpsi x 6.89476 = ZZZ GPa

Shear Modulus 295°K 195°K 76°K 20°K 4°K
Copper-102 (Cold drawn 60%) - - - - -
Copper-122a (Annealed) 6.46e6psi → 44.5GPa 6.81e6psi → 46.9GPa 7.20e6psi → 49.6GPa 7.44e6psi → 51.3GPa -
Copper-122b (Cold drawn 26%) - - - - -
Copper-150 (Cold drawn 85-90%, Aged 1hr) - - - - -
Copper-220 (Annealed) 6.59e6psi → 45.4GPa 6.97e6psi → 48.1GPa 7.24e6psi → 49.9GPa 7.37e6psi → 50.8GPa -
Copper-230 (Cold drawn 14%) 6.55e6psi → 45.2GPa 6.77e6psi → 46.7GPa 7.06e6psi → 48.7GPa 7.20e6psi → 49.6GPa -
Copper-443 (Annealed 1hr) 5.94e6psi → 41.0GPa 6.15e6psi → 42.4GPa 6.48e6psi → 44.7GPa 6.55e6psi → 45.2GPa -
Copper-464 (Annealed 1hr) 5.76e6psi → 39.7GPa 5.94e6psi → 41.0GPa 6.16e6psi → 42.5GPa 6.26e6psi → 43.2GPa -
Copper-510 (Cold drawn 85%) - - - - -
Copper-614 (Commercial anneal) - - - - -
Copper-647 (Aged 2hr) - - - - -
Copper-655 (Commercial anneal, soft) - - - - -
Copper-706 (Anneal, ¾hr) - - - - -
Copper-715 (Commercial anneal) - - - - -
Copper-955 (Sand cast) - - - - -

ym_sm.ods Sanity Check for Young's and Shear Modulus.
NOTE: Libre-office ods file, since prior CSV only returned values instead of formulas (This shows the math).

Other misc...

Reduced wordiness of array models by cutting-out Metal and Temperature
as these are somewhat redundant words.

Added remaining ElasticProperties and PlasticTriaxialProperties.
@maxwxyz
Copy link
Collaborator

maxwxyz commented Jan 15, 2026

Is this PR ready?

@JoesCat
Copy link
Contributor Author

JoesCat commented Jan 15, 2026 via email

Moved Elongation and ReductionOfArea after YieldStrain/Strength and added
FractureStrength so these are grouped together on the cards since they're
all related (Note: Material viewer resorts these alphabetically).

Linear Elastic arrays are set in the order of strain/strength for Tensile
then strain/strength for Yield, and then Elongation/FractureStrength, and
then ReductionOfArea.

Reviewed pdf again and corrected a few errors missed/made earlier.
@JoesCat
Copy link
Contributor Author

JoesCat commented Jan 16, 2026

Including this here, however, did not think it was accurate enough to include in the Copper Cards as I didn't take enough slices to follow the curves accurately (so you won't see these in the cards). Question: Add these in too?

Modulus of Resilience (Ur)

Approximate values 295°K 195°K 76°K 20°K 4°K
Copper-102 (Cold drawn 60%) 4.74MPa 3.84MPa 0.365MPa 0.526MPa 0.526MPa
Copper-122a (Annealed) 0.073MPa 0.048MPa 0.054MPa 0.122MPa 0.115MPa
Copper-122b (Cold drawn 26%) 0.88MPa 0.95MPa 1.46MPa 1.14MPa 0.99MPa
Copper-150 (Cold drawn 85-90%, Aged 1hr) 1.3MPa 3.25MPa 3.6MPa 1.3MPa 1.3MPa
Copper-220 (Annealed) 0.069MPa 0.074MPa 0.14MPa 0.17MPa 0.16MPa
Copper-230 (Cold drawn 14%) 0.24MPa 0.25MPa 0.65MPa 0.64MPa 0.80MPa
Copper-443 (Annealed 1hr) 0.45MPa 0.25MPa 0.50MPa 0.86MPa 0.32MPa
Copper-464 (Annealed 1hr) 0.21MPa 0.45MPa 1.1MPa 0.74MPa 0.58MPa
Copper-510 (Cold drawn 85%) 2.25MPa 2.6MPa 3.6MPa 2.8MPa 3.1MPa
Copper-614 (Commercial anneal) 0.67MPa 0.85MPa 0.78MPa 1.1MPa 1.1MPa
Copper-647 (Aged 2hr) 2.1MPa 2.5MPa 2.8MPa 3.2MPa 3.8MPa
Copper-655 (Commercial anneal, soft) 0.81MPa 0.90MPa 0.95MPa 1.1MPa 1.1MPa
Copper-706 (Anneal, ¾hr) 0.17MPa 0.18MPa 0.72MPa 0.72MPa 0.63MPa
Copper-715 (Commercial anneal) 0.77MPa 0.80MPa 1.1MPa 1.1MPa 0.93MPa
Copper-955 (Sand cast) 0.40MPa 0.49MPa 0.62MPa 0.80MPa 0.73MPa

Material Toughness

Approximate values 295°K 195°K 76°K 20°K 4°K
Copper-102 (Cold drawn 60%) 53.4MPa 65.7MPa 123MPa 206MPa 199MPa
Copper-122a (Annealed) 77.1MPa 115MPa 143MPa 224MPa 202MPa
Copper-122b (Cold drawn 26%) 52MPa 75MPa 122MPa 239MPa 229MPa
Copper-150 (Cold drawn 85-90%, Aged 1hr) 67.8MPa 85.3MPa 127MPa 198MPa 196MPa
Copper-220 (Annealed) 120MPa 138MPa 265MPa 369MPa 345MPa
Copper-230 (Cold drawn 14%) 171MPa 164MPa 278MPa 332MPa 302MPa
Copper-443 (Annealed 1hr) 201MPa 284MPa 340MPa 407MPa 393MPa
Copper-464 (Annealed 1hr) 140MPa 147MPa 209MPa 255MPa 233MPa
Copper-510 (Cold drawn 85%) 83.8MPa 106MPa 232MPa 329MPa 254MPa
Copper-614 (Commercial anneal) 215MPa 260MPa 348MPa 378MPa 452MPa
Copper-647 (Aged 2hr) 107MPa 139MPa 193MPa 289MPa 273MPa
Copper-655 (Commercial anneal, soft) 232MPa 271MPa 356MPa 429MPa 425MPa
Copper-706 (Anneal, ¾hr) 136MPa 162MPa 233MPa 256MPa 261MPa
Copper-715 (Commercial anneal) 171MPa 199MPa 275MPa 301MPa 284MPa
Copper-955 (Sand cast) 61MPa 50MPa 38MPa 37MPa 42MPa

@JoesCat
Copy link
Contributor Author

JoesCat commented Jan 16, 2026

Ultimate Strain

UltimateStrain 295°K 195°K 76°K 20°K 4°K
Copper-102 (Cold drawn 60%) 2.8% 5% 18.5% 18.9% 25.7%
Copper-122a (Annealed) 39.7% 45.2% 50.8% 56.2% 57%
Copper-122b (Cold drawn 26%) 1.46% 7.2% 17.1% 37.3% 37.3%
Copper-150 (Cold drawn 85-90%, Aged 1hr) 4.13% 10% 16% 20% 23.9%
Copper-220 (Annealed) 41.5% 32.6% 71.7% 81.1% 83.3%
Copper-230 (Cold drawn 14%) 40.4% 58.7% 77.9% 76% 78.6%
Copper-443 (Annealed 1hr) 82% 86% 89% 92.6% 84.7%
Copper-464 (Annealed 1hr) 31.8% 32.7% 40.3% 39.2% 36.3%
Copper-510 (Cold drawn 85%) 3.6% 3.2% 24.9% 30.6% 29.7%
Copper-614 (Commercial anneal) 27% 35.8% 44.4% 43.3% 44.9%
Copper-647 (Aged 2hr) 9.9% 11.1% 17.2% 26.5% 26.6%
Copper-655 (Commercial anneal, soft) 60.8% 59.3% 63% 69% 51%
Copper-706 (Anneal, ¾hr) 28.4% 33% 38.5% 41.5% 47%
Copper-715 (Commercial anneal) 39.9% 40.9% 44.7% 48% 44.6%
Copper-955 (Sand cast) 10.6% 8.47% 6.06% 5.74% 6.08%

Yield Strain

YieldStrain 295°K 195°K 76°K 20°K 4°K
Copper-102 (Cold drawn 60%) 1.7% 1.4% 0.39% 0.39% 0.39%
Copper-122a (Annealed) 0.32% 0.22% 0.22% 0.43% 0.43%
Copper-122b (Cold drawn 26%) 0.63% 0.63% 0.82% 0.58% 0.51%
Copper-150 (Cold drawn 85-90%, Aged 1hr) 0.52% 1.0% 1.0% 0.52% 0.52%
Copper-220 (Annealed) 0.22% 0.22% 0.33% 0.33% 0.33%
Copper-230 (Cold drawn 14%) 0.43% 0.43% 0.86% 0.75% 0.97%
Copper-443 (Annealed 1hr) 0.87% 0.54% 0.76% 1.2% 0.65%
Copper-464 (Annealed 1hr) 0.32% 0.51% 0.95% 0.51% 0.44%
Copper-510 (Cold drawn 85%) 0.86% 0.92% 1.1% 0.78% 0.91%
Copper-614 (Commercial anneal) 0.39% 0.39% 0.39% 0.58% 0.58%
Copper-647 (Aged 2hr) 0.77% 0.77% 0.83% 0.90% 1.0%
Copper-655 (Commercial anneal, soft) 0.59% 0.59% 0.54% 0.54% 0.54%
Copper-706 (Anneal, ¾hr) 1.1% 1.35% 0.71% 1.1% 0.77%
Copper-715 (Commercial anneal) 0.38% 0.45% 0.32% 0.45% 0.58%
Copper-955 (Sand cast) 0.31% 0.35% 0.38% 0.44% 0.42%

Fracture Strength

Multiplier = YYY kpsi x 6.89476 = ZZZ MPa

Fracture Strength 295°K 195°K 76°K 20°K 4°K
Copper-102 (Cold drawn 60%) 35.3kpsi → 243MPa 35.3kpsi → 243MPa 46.6kpsi → 321MPa 55.0kpsi → 379MPa 51.8kpsi → 357MPa
Copper-122a (Annealed) 22.5kpsi → 155MPa 21.1kpsi → 146MPa 22.2kpsi → 153MPa 38.5kpsi → 266MPa 44.4kpsi → 306MPa
Copper-122b (Cold drawn 26%) 29.8kpsi → 206MPa 35.9kpsi → 248MPa 45.0kpsi → 310MPa 50.3kpsi → 347MPa 60.5kpsi → 417MPa
Copper-150 (Cold drawn 85-90%, Aged 1hr) 42.4kpsi → 292MPa 44.5kpsi → 307MPa 52.8kpsi → 364MPa 59.2kpsi → 408MPa 62.7kpsi → 432MPa
Copper-220 (Annealed) 25.3kpsi → 175MPa 31.6kpsi → 218MPa 38.5kpsi → 266MPa 62.2kpsi → 429MPa 58.1kpsi → 401MPa
Copper-230 (Cold drawn 14%) 30.6kpsi → 211MPa 34.0kpsi → 234MPa 45.7kpsi → 315MPa 62.0kpsi → 428MPa 64.8kpsi → 447MPa
Copper-443 (Annealed 1hr) 31.0kpsi → 214MPa 34.4kpsi → 237MPa 58.6kpsi → 404MPa 73.2kpsi → 505MPa 75.6kpsi → 521MPa
Copper-464 (Annealed 1hr) 54.3kpsi → 375MPa 59.3kpsi → 409MPa 74.6kpsi → 515MPa 104kpsi → 716MPa 84.5kpsi → 583MPa
Copper-510 (Cold drawn 85%) 43.0kpsi → 296MPa 61.9kpsi → 427MPa 77.3kpsi → 533MPa 123kpsi → 847MPa 109kpsi → 753MPa
Copper-614 (Commercial anneal) 59.2kpsi → 408MPa 62.8kpsi → 433MPa 85.2kpsi → 587MPa 123kpsi → 848MPa 129kpsi → 890MPa
Copper-647 (Aged 2hr) 75.5kpsi → 520MPa 73.6kpsi → 508MPa 73.8kpsi → 509MPa 104kpsi → 720MPa 122kpsi → 839MPa
Copper-655 (Commercial anneal, soft) 39.7kpsi → 274MPa 45.2kpsi → 312MPa 74.2kpsi → 512MPa 107kpsi → 740MPa 95.5kpsi → 659MPa
Copper-706 (Anneal, ¾hr) 30.6kpsi → 211MPa 33.1kpsi → 228MPa 53.2kpsi → 367MPa 72.5kpsi → 500MPa 68.3kpsi → 471MPa
Copper-715 (Commercial anneal) 40.8kpsi → 281MPa 53.8kpsi → 371MPa 65.6kpsi → 452MPa 98.9kpsi → 682MPa 91.8kpsi → 633MPa
Copper-955 (Sand cast) 102kpsi → 704MPa 103kpsi → 709MPa 117kpsi → 804MPa 125kpsi → 863MPa 129kpsi → 888MPa

More Misc...

@JoesCat
Copy link
Contributor Author

JoesCat commented Jan 16, 2026

...continuation...

All these points above are based on the Tensile Strength shown in Table 2, for example, Copper 102, 295°K, Tensile Strength is 48,400psi, which, interestingly, is not the peak of the curve (closer to 48,900kpsi), this might be due to +/-tolerances, but then again, if you look at the fracture point for 295°K, there is a big difference, where the elongation=17% on table2, versus the curve's=18.5%

FIG_F

FIG_C

FIG_D

FIG_G

FIG_H

FIG_I

FIG_J

FIG_M

FIG_N

FIG_K

FIG_L

FIG_O

Sanity Check:
copper_ult1.ods
What is all the numbers...
image

@JoesCat
Copy link
Contributor Author

JoesCat commented Jan 16, 2026

Done.

@maxwxyz
Copy link
Collaborator

maxwxyz commented Jan 16, 2026

@davesrocketshop @FreeCAD/cad-working-group is this good to be merged?

@davesrocketshop
Copy link
Contributor

@davesrocketshop @FreeCAD/cad-working-group is this good to be merged?

There's a lot here. Let me review again. I'll get back to you later today

@pierreporte
Copy link

OK with the change. Can’t judge on the values though but the more we have the better it is.

@maxwxyz
Copy link
Collaborator

maxwxyz commented Feb 8, 2026

@davesrocketshop good to go?

@maxwxyz maxwxyz added the Approved: CAD Usage PR or issue with poposal approved by CAD Working Group label Feb 8, 2026
@davesrocketshop
Copy link
Contributor

Thumbs up

@chennes chennes merged commit a79a221 into FreeCAD:main Feb 8, 2026
14 checks passed
@github-project-automation github-project-automation bot moved this from Approved to Done in Merge Queue Feb 8, 2026
Reqrefusion pushed a commit to Reqrefusion/FreeCAD-Documentation-Project that referenced this pull request Feb 10, 2026
…e de nouveaux matériaux à base de cuivre et d'alliages de cuivre. [FreeCAD/FreeCAD#25832 Pull request #25832]"
Reqrefusion pushed a commit to Reqrefusion/FreeCAD-Documentation-html that referenced this pull request Feb 10, 2026
…e de nouveaux matériaux à base de cuivre et d'alliages de cuivre. [FreeCAD/FreeCAD#25832 Pull request #25832]"
Reqrefusion pushed a commit to Reqrefusion/FreeCAD-Documentation-Project that referenced this pull request Feb 10, 2026
…Kupfer- und Kupferlegierungswerkstoffe erweitert. [FreeCAD/FreeCAD#25832 Pull request #25832]"
Reqrefusion pushed a commit to Reqrefusion/FreeCAD-Documentation-html that referenced this pull request Feb 10, 2026
…Kupfer- und Kupferlegierungswerkstoffe erweitert. [FreeCAD/FreeCAD#25832 Pull request #25832]"
Reqrefusion pushed a commit to Reqrefusion/FreeCAD-Documentation-html that referenced this pull request Feb 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Approved: CAD Usage PR or issue with poposal approved by CAD Working Group Mod: Materials Materials related Type: Other Tasks, refactoring, quality improvement, actions, dependencies, packaging, translations or other...

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants