27 Replies Latest reply on Dec 16, 2015 5:31 AM by Neil Glasson

Thermal load in static analysis - confusing results when ALPHX is T dependant

Hello folks,

I'm using static analysis with external thermal load and want to calculate thermal expansion dl/l. The point is that T_load goes to cryogenic temperatures where ALPHX(T) is strictly not constant and not linear with T and I get confusing results. Example:

A cube with 1mm edges

Material with ALPHX(T)=

T[K]     ALPHX(T)[1e-6]

300     10

250     9.5

200     9

150     7.5

100     5

65     0

50    -3

Study -> Reference Temperature T_ref = 300K

External load -> Temperature - applied to the whole body - T_load = 65K

What I expect by physics is dl/l = SUM_i (T_ref -> T_load) [ 0.5*(ALPHX(T_i)+ALPHX(T_(i+1))) * (T_i - T_(i+1)) ] = ~0,0018 - should be UX=1.8micron

What I get is exactly dl/l = 0 / UX=0 !?

Is it possible SIMULATION does not integrate ALPHX(T) dT in order to calculate dl/l but instead uses something like dl/l = APLHX(T_load) * (T_load - T_ref)

which physicaly is not very useful.

Could somebody please verify and explain what's my mistake?

Stefan

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

I'm using static analysis.....

Linear or non-linear static analysis?

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

What I get is exactly dl/l = 0 / UX=0 !?

> post a screenshot of your result. are you saying there is 0 deformation?

what type of restraint did you use?

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

The result is the same using linear or non-linear static analysis.

The intermediate steps in non-linear anaysis however show that there is a deformation during the iteration from T_ref to T_load. But the deformation becomes zero when T converges to T_load where ALPHX(T_load)=0.

Besides external load - temperature, the only restraint is one fixed corner, defined by 3 perpendicular sliding planes

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

version/service pack? i remember that at one point there was a version that wasn't recognizing K as K which caused some problems

also, waht happens when you remove your material's temperature dependency?

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

This is SW Premium 2013 x64-Edition SP5.0

Removing the property curve and setting a constant ALPX=10e-6 value gives correct results for displacement -2.5µm/mm (300K->65K).

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

Ok, so the software is solving things properly.

Let's put in your material curve minus the 0 and negative points.

If you still have a problem, post the model to have someone check in 2014 or contact your reseller tech support.

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

I'm with you that the software is solving properly if ALPX ist a constant value. But I'd say that the temperature dependant curve of ALPX(T) is handled in a wrong way.

So here are the deformations UX (Second column) starting from T_ref=300K to different T_load (first column). The model is still a single cube with 1x1x1mm. In the third culumn I used my calculator to compute a value "dl" which happens to be excatly what SW does with the ALPX(T) curve:

250               -0,48          -0.475                                                         -0.49

200               -0,90          -0.900                                                         -0.95

150               -1.13          -1.125                                                         -1.36

100               -1.00          -1.000                                                         -1,68

65                  0.00           0                                                               -1.76

50                  0.75           0.750                                                         -1.74

The expected deformation however should be as shown in the fourth column "expected" an integration S ALPX(T)dT , respectively a discrete SUM(i=T_ref ... T_load) [0.5*(ALPX(T_i)+ALPX(T_(i+1)))*(T_i-T_(i+1))].

I'll forward this to tech support as soon as the point of contact of our company is back from vacation.

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

so i think what you're saying is the software is ignoring the temperature dependent temperature curve?

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

Hello Jared,

Yes, it seem so.

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

Stefan,

If I recall correctly, the thermal load just in Static Analysis can be applied only to external surfaces, neglecting any interior body elements.  This would greatly reduce any expected thermal response as you deviate from your reference temperature.  If you want the entire body to be at a steady-state temp you must run a thermal study first, then import those results as a temperature load in the study properties.  Pardon me if you have, I just didn't see a thermal study in the screenshot you posted.

Justin S.

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

Hello Justin,

you're right if you do the study on a SW part. In a SW assembly you can open the assembly tree in the main window and select a part (actually you have to click twice...). The selected parts are highlighted in blue. This applies the thermal load to the whole volume of these parts. For the sample above I created a SW assembly with only one part, the cube. Sorry I didn't mention before.

Stefan.

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

Stefan,

No my apologies, yes you're right in that - I see it now looking back at your screenshot.  I run 2014 SP2.0 currently, have run the model and get the same as you:

Doing a quick iteration spreadsheet I came up with -1.762 µm at 65° to compare to the model.

I tried a thermal transient study as well and tied to a NL study to see if that made a difference, and it did not - same results.

UPDATE:  When I stopped an analysis to modifiy some parameters I was playing with, the ALPHA vs TEMP table had reset itself to include only the 65/0 and 300/10e-6 rows...

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

wait, justin just jogged my memory

you're expecting the software to actually change the E during the static analysis from zero strain to the temperature?

thats probably it

the software is just looking at the temperature you applied and applying the discrete property at that temperture and calculating the delta T and the displacements from zero strain

for what you want, you're talking a nonlinear problem (time effects).

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

>>the software is just looking at the temperature you applied and applying the discrete property at that temperture

You're right, that's also my understanding of the software. The point is about selecting the correct property.

For example for thermal conductivity KX or specific heat C or modulus of elasticity EX, these are really the discrete property at that temperature T_load which are applied, and that's correct in terms of physics.

With CTE there's one difference. Actually the property that should be applied is not APLX itself but the "linear expansion dl/l". This dl/l  needs to be computed (at T_load, from ALPX(T), considering zero strain at T_ref) just before starting the solver. Then this is the valid discrete proterty at the temperature T_load and there's nothing nonlinear about it.

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

Reference?

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

I admit it's harder to find references than I expected. Looks like the topic is too trivial to be mentioned in text books. I only found paragraphs as short as 3 sentences in all of my physics books. Seems there's more to tell about thermal transportation processes than about thermal expansion.

Even Paul A. Tipler, "Physics for scientists and engineers" (german translation 1994) just summarises that the definition of CTE is the differential equation  "alpha = 1 / L * (dL / dT)" and concludes that averaging alpha is sufficient in most cases.

http://en.wikipedia.org/wiki/Thermal_expansion just says that the differential equation may need to be integrated if alpha varies with temperature.

The german wikipedia http://de.wikipedia.org/wiki/Ausdehnungskoeffizient actually is the only reference I found for the moment which mentions the integral of the above differential equation. Actually I also missed the exponential term and only used tayor developed simplifications in my explanations above.

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

What I found/remember was that the dl=alpha*dT equation is valid mainly for small temperature increments (could not find a definitive 'small' value), or for alpha's which are mostly constant vs. temperature and can be defined by an approximate averaged alpha value.  Otherwise the equation would require integration (as you mentioned).

Pretty interesting topic/idea/issue so far, just odd the NL steps in SW don't handle it by default...

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

"NL steps in SW don't handle it by default..."

we're talking about a static analysis in this case. there is no time stepping/history regarding the temperature. the property is pulled directly from the curve via linear interpolation between the 2 closest points on the curve as far as I am aware.

It sounds like stefan is looking for something beyond that.

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

True he's running static, but I assumed the temperature load was input as a 300 k --> 65 K so it really should read the temp at each step I'd think, but could be completely wrong!

That said, I've tried it in NL dynamic with temp loads defined in the NL analysis, as well as tied to a transient thermal and it gives the same results.

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

>> What I found/remember was that the dl=alpha*dT equation is valid mainly for small temperature increments

Small temperature increments means that the variation of alpha(T) with temperature is small in the temperature intervall. There are two approximations within this commonly known but simpified equations.

The one is about the exponential function being approximated to be exp(x)~x (by taylor development) at x~0. The error in doing so is less than 5% if the overall delta-L is less than 10% of L_0 - which is even the case for metals (alpha~1e-5 1/K) with large delta-T up to far above 1000K and for polymers (alpha~1e-4 1/K) with a delta-T of several 100K - but show me a polymer which won't disintegrate at such temperatures. So this is true for any practical case.

The other approximation is that the variation of alpha(T) within the named temperature intervall is small in the sense that the integral S alpha(T) dT is approximated by alpha * delta-T. A variation of 10% of alpha(T) could lead to an error of 10%, a variation of a factor of 2 (say from 1e-5 to 5e-6 1/K) in alpha(T) could lead to an error of 50% already!

The Assumption that the variation of alpha(T) is small within the temperature interval is true only for materials such as metals far from their melting point or polymers far from their glas transition temperature.

But alpha(T) may vary strongly with temperatue for example at very low temperature, when coming close to the melting point of metals, at the glas transition temperature of polymers (e.g. glue, silicones), or for ice between -4°C...0°C. See or example the alpha(T) for silicon, germanium, Alloy 36 etc.

So my understanding now is that the software uses the simplified equation but doesn't comment on that. So when entering a temperature dependant curve for ALPX(T) large errors may arise. I dont' believe it would be much work to implement the full integral solution of the differential equation alpha = 1/L dT/dL instead. At least there should be a clear statement in the documentation/helpfiles about this limitation of the software.

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

A full reference of the implementation and a physical example would go a long way.

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

justin, if you select body/parts you can apply temperature to the whole body

going to a thermal analysis gives more "accuracy" because you will have a temperature gradient

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

Is anyone working on the issue?

Over the last year I learned that my simulations did not correctly predict displacements at cryogenic temperatures. Having found the above topic I've read it ten times and did similar simulations. The bottom line is that a part cooled down to close to zero temperature will show zero thermal expansion.

Is there any chance to have the thermal expansion implemented correctly (meaning by integration)? In simulations at cryogenic temperatures this is crucial. Depending on the alpha vs T curve things now go wrong somewhere between 200 Kelvin and 100 Kelvin, errors explode as the temperature gets closer to zero. For the moment the results are not reliable.

Thanks for any feedback

Peter van der Linden

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

Hello Peter,

Scientists and Mechanical Enginees use different definitions of thermal expansion. Scientists use strict differential definition:

CTE = 1/L*dL/dT

Mechanical Engineers use integrated definition:

Thermal Expansion = Delta-L / L @ T_0 -> T_1

which regularly is used in material data sheets like "Thermal Expansion 20°C -> 500°C"...

SW Simulation uses Mechanical Engineers' definition. For the time being, you need to integrate CTE values from a starting temperature (e.g 20°C laboratory environment) to T_x in order to obtain correct results from you simulation.

I heard that in future versions it shall be possible to select which kind of data to enter for thermal expansion but I don't know if this is true.

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

Hello Stefan,

Thanks a lot, now we're getting there!

As thermal expansion is important in cryogenics both expressions are used.

On the other hand in most cryo textbooks it is only treated with the same formulae you give.

For example: uspas.fnal.gov/materials/10MIT/Lecture_1.2.pdf

Historically data were mostly given as delta L / L but the NIST cryogenic database gives the CTE.

On the practical side of implementing this:

There is a problem of units in the integrated CTE, it will be dimensionless.

SW wants to have a unit 1/K.

It works if alpha(T_x) = (integral T=0 to T_x of CTE) / (T_0 - T_x)

I've just tested this on a copper bar and got correct values.

Now I' ll have to create the curves for my favorite materials...

Thanks a lot

Peter

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

I too have recently been grappling with this and have settled on this simple work-around:

Instead of entering a proper CTE data table into Solidworks, I first process the data table so that each temperature has a corresponding mean of all the CTE data points between that specific temperature and the zero strain temperature of interest (in my case 293K).  I am modelling for cryogenics and am interested in the thermal response to temperatures down to 65K relative to 293K.  My Solidworks output now agrees well with hand calculation - it did not before.

I hope this helps.

Neil

• Re: Thermal load in static analysis - confusing results when ALPHX is T dependant

Solidworks Simulation does not integrate the temperature dependent CTE values as a function of temperature.  It simply takes the final temperature, looks up the CTE from the table and then multiplies by the delta temperature to calculate the expansion.   This generally works just fine when the reference temperature for zero strain matches the reference temperature for the CTE data.  The CTE data is assumed be be calculated as alpha_bar =  (L-Lo)/Lo/(T-To) where To is the reference temperature for zero strain.  However, this fails when the desired temperature for zero strain is not the same as the CTE data's reference temperature.

For example, calculate the expansion of a long rod with temperature dependent CTE values from 25 C up to some high temperature.  Then re-defined the zero stress temperature to the high temperature in the simulation and calculated the shrinkage back to 25 C.  You don't get the same value!

To fix this problem you have to re-normalize the CTE data for the new zero strain temperature:

Calculate deltaL/Lo for each CTE as CTE(Ti)*(Ti-To).  Fit a curve to this deltaL/Lo data.  Calculate the re-normalized CTE values as CTE(Tref) = (deltaL/Lo(Ti)-deltaL(Lo(Tref))/(Ti-Tref), where Tref is the new zero strain reference temperature.  Then copy and paste this new table into the CTE table for the material.  You have to do this for each new zero strain reference temperature.  So if you are running a simulation for 500 C zero strain and 1000 C zero strain, you have to enter new CTE data each time!  I did this for a 1 meter long Kovar Bar from 25 to 900 C.  The change in length from hot to cold was 9.86 mm, but when I went the other way I only got a shrinkage of 8.3 mm which is wrong.  So when I re-normalized the CTE data I got back the same 9.86 mm of shrinkage.