Thermal Expansion Coefficient Conversion Error

Thank you for the test and for the attached library. I cannot believe that I am not able to solve this problem :slight_smile: Adding support for units and then for parameters over that created a really lovely spaghetti mess of the code. But I will try again.

I think the problem is created during the material creation and not when the material is read from the library.

For that you used 2.0.11 version?

Yes, material creation and all testing were done using 2.0.11.

Thank you for your diligent work on PrePoMax. I suspect not many people use both unit systems, so this may be a low priority. As long as I am aware of the issue, I can quite easily work around it.

That’s strange, I’m pretty sure it still worked in version 2.0.9.

I checked your library, and as I suspected, the problem is how the values with units are saved. The values have no units, so they cannot be converted.

I tried reproducing the behavior you got but failed. I tried entering the values manually and then pasting them from Notepad or Excel, and everything worked correctly. Do you remember if you imported this material from an older library or created it from scratch?

Older materials in old libraries are not saved correctly. So, the only thing that will work correctly is to recreate the material in the new PrePoMax version from scratch. Importing them from old libraries/models might import the wrongly written values.

Can you try to create as simple as possible material with only Elasticity defined that fails to convert? And if you succeed please describe how you entered the values into the data fields.

I created new materials in v2.0.11, but saved and recalled them using an existing library that I think was created with v2.0.3. I entered most of the properties by copying and pasting from Excel. A few properties with no temperature dependence were entered manually.

I did an additional test as follows:

  • Start v2.0.11
  • Create new 3D model with (in…°F) units
  • Create Material-A
    • Select “Elastic”
      • Assign: E = 30E6 psi, Poisson’s ratio = 0.3
  • Create new material library Test-A
  • Save Material-A in library Test-A
  • Start new v2.0.11 session
  • Create new 3D model with (mm…°C) units
  • Open material library Test-A
  • Select Material-A
  • Close material library
  • Open Material-A in edit dialog
    • Young’s modulus = 30E6 MPa (should be 207E3 MPa)

I can confirm this (hence my previous post) which surprised me because I know that it was fixed in version 2.0.9 (or was it 2.0.10?)

from (mm, ton, s, °C) to (m, kg, s, °C)

It seems the problem occurs only when numbers are displayed in exponential notation after entering, i.e. <=1e-5 and >= 1e+15

1 Like

You were right. I was able to reproduce the problem. I added a check to determine if a string contains a unit and it did not work correctly. I fixed it now with a slower method that seems to work. The fix will be in the next developer release today.

Please give it a try to see if now it finally works.

1 Like

Thanks, i couldn’t find a problem now.

Personally I would just like to see exponential notation for large numbers used earlier, perhaps starting from 1e+6 or 1e+8.

1 Like

I really hope the problem is gone :slight_smile:

I think using a double precision results in exponents being used only at really large or small numbers. I will check if I can easily apply different (user) formating to all numbers in PrePoMax.

Thank you Matej and Gunnar for figuring this out!

1 Like