Thermal stress in 2D

Numerical methods and mathematical models of Elmer
aether
Posts: 9
Joined: 24 Nov 2012, 22:12
Antispam: Yes

Thermal stress in 2D

Post by aether »

Hi,

I'm trying to simulate thermal stress/strain in a simple 2D system: A top block (called "rib") affixed to a bottom block (called "substrate"). The reference (stress-free) temperature of the rib is 400K and of the substrate 300K. The system is at T=300K.

I use statements like "Reference Temperature = 300" in the material sections to set the ref temps. I use an initial condition T=300 applied to both bodies to enforce the operating temperature. There are no heat sources or other boundary conditions. I include a statement "Exported Variable 1 = Temperature" in the solver section per Peter's instruction in one of the threads.

I run Elmer and get:

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:

Full solver log attached along with SIF file and a screenshot of the geometry. Running Elmer on Windows and the geometry/mesh were made in Salome.

Can someone offer some wisdom to get me unstuck?

Thanks,

John
Attachments
solver_log.txt
Solver log result.
(2.22 KiB) Downloaded 229 times
case.sif
SIF file.
(2.53 KiB) Downloaded 266 times
Geo/mesh image
Geo/mesh image
elmer_photo.JPG (135.53 KiB) Viewed 8812 times
mzenker
Posts: 1999
Joined: 07 Dec 2009, 11:49
Location: Germany

Re: Thermal stress in 2D

Post by mzenker »

Hi,

I don't know the Linear Elasticity Solver all that well, but the Models Manual says:
For each boundary either a Dirichlet boundary condition or a force boundary condition must be given.
But there isn't any in your sif file, so that might well be the cause of the crash.

Remark: IMO the solver should spit a more specific message before aborting... ;)

HTH,

Matthias
aether
Posts: 9
Joined: 24 Nov 2012, 22:12
Antispam: Yes

Re: Thermal stress in 2D

Post by aether »

Hi Matthias,

Thanks for the comments. I indeed did not specify boundary condition because the Models Manual states (right after the sentence you quoted)
The default boundary condition is the natural boundary condition which implies that ~g = 0.
So, I made this explicit by adding to my sif:

Code: Select all

Boundary Condition 1
  Target Boundaries(9) = 1 2 3 4 5 6 7 8 9 
  Name = "BoundaryCondition 2: Zero force"
  Force 1 = 0
  Force 3 = 0
  Force 2 = 0
End
But this gave the same result, i.e.,
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
I'm interested in any comments on--
1. Ideas why it's choking.
2. Is the Linear Elastic model the right one for this thermal stress problem? Or is something else (Finite Elasticity?) better/easier?
3. Anyone know of an example thermal stress problem posted?
4. Is the approach of setting reference temperatures and using an initial condition to set the simulation temperature correct?

TIA for any help.

John
annier
Posts: 1147
Joined: 27 Aug 2013, 13:51
Antispam: Yes

Re: Thermal stress in 2D

Post by annier »

Hi John,
I made a test geometry/mesh in Salome 7.4.0 and ran your initial solver input file with Elmer NonGui( OS: Ubuntu 14.04). It ran perfectly ( without any error) with the following results:
1. displacement
displacement
displacement
displacement.jpg (86.32 KiB) Viewed 8800 times
2. von mises stress results.
von_mises
von_mises
von_mises.jpg (54.06 KiB) Viewed 8800 times

Inferences:
1. Your solver input file is numerically consistent and there are no issues with it.
2. You need to see how you prepared Geometry/Mesh and imported in ElmerGUI.

yours sincerely
Anil Kunwar
Last edited by annier on 08 Jul 2015, 13:37, edited 1 time in total.
Anil Kunwar
Faculty of Mechanical Engineering, Silesian University of Technology, Gliwice
raback
Site Admin
Posts: 4141
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Thermal stress in 2D

Post by raback »

Hi

If you just have thermal stresses without any BCs your problem has a nonzero null-space as it has two rigid body translations and one rotation that may be added to the solution. Thus linear solvers may have hard time in finding the solution for the system. You should set some BCs that constrain the rigid body motion.

-Peter
annier
Posts: 1147
Joined: 27 Aug 2013, 13:51
Antispam: Yes

Re: Thermal stress in 2D

Post by annier »

Hi,
After Peter's suggestion, i tried to put some physical reasoning into the thermal stress boundary conditions (BCs syntax given below) by constraining the motions at
1) constraint to the motion of the substrate [(a),(e) in figure]

Code: Select all

Boundary Condition 1
  Target Boundaries(1) = 3
  Name = "Substrate Bottom"
  Displacement 1 = 0.0
  Displacement 2 = 0.0
End
2) constraints to the perpendicular motion (displacement 2 = 0) of the substrate and ribs at extreme ends [(b),(f) in figure]

Code: Select all

Boundary Condition 1
  Target Boundaries(1) = 3
  Name = "Substrate Bottom"
  !Displacement 1 = 0.0
  Displacement 2 = 0.0
End

Boundary Condition 2
  Target Boundaries(1) = 6
  Name = "Ribs Top"
 ! Displacement 1 = 0.0
  Displacement 2 = 0.0
End
3) constraints to x,y at the extreme ends(displacement 1 = 0, displacement 2 =0) of both ribs and substrate [(c),(g) in figure]

Code: Select all

Boundary Condition 1
  Target Boundaries(1) = 3
  Name = "Substrate Bottom"
  Displacement 1 = 0.0
  Displacement 2 = 0.0
End

Boundary Condition 2
  Target Boundaries(1) = 6
  Name = "Ribs Top"
  Displacement 1 = 0.0
  Displacement 2 = 0.0
End
4) constraints to motion of top of ribs [(d),(h) in figure]

Code: Select all

Boundary Condition 1
  Target Boundaries(1) = 6
  Name = "Ribs Top"
  Displacement 1 = 0.0
  Displacement 2 = 0.0
End
Figure (Please find the compressed file for image in high resolution)
displacement_and_vonmises_stress_results
displacement_and_vonmises_stress_results
the_displacement_and_vonmises.png (139.76 KiB) Viewed 8781 times




Yours Sincerely
Anil Kunwar
Attachments
displacement_vonmises.png.tar.gz
high_resolution_picture_attachment
(1.22 MiB) Downloaded 233 times
Last edited by annier on 08 Jul 2015, 16:15, edited 4 times in total.
Anil Kunwar
Faculty of Mechanical Engineering, Silesian University of Technology, Gliwice
raback
Site Admin
Posts: 4141
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Thermal stress in 2D

Post by raback »

Hi Anil

Nice comparison!

In principle it is ok to study the displacement of freely floating object as well. The minimum number of dofs we need to fix are three: two for the translations and one for the rotation.

For example one could use "Target Coordinates" to fix (x,y) displacements at center. We still need a third point fixed to eliminate the rotation oround z-axis. One could set another point at the center axis with different y and there only fix the x-component. So this would look something like

Set center of origin to zero (for the next free BC)

Code: Select all

Boundary Condition 5
  Target Coordinates(1,2) = 0.0 0.0
  Displacement 1 = 0.0
  Displacement 2 = 0.0 
End
Another point at the y-axis

Code: Select all

Boundary Condition 6 
  Target Coordinates(1,2) = 0.0 1.0 
  Displacement 1 = 0.0
End 
Note that the points should be within the object.

En even simpler way to fix the problem would be to define a really small spring coefficient that would not affect the results but would draw the object to the center.

Commercial software usually have some automatic ways constrain the null-space but in Elmer the user should no in more detail what to do.

-Peter
aether
Posts: 9
Joined: 24 Nov 2012, 22:12
Antispam: Yes

Re: Thermal stress in 2D

Post by aether »

Great stuff! Thanks, Anil. Thanks, Peter.

Per Anil, I went back to Salome (7.5.1) and was able to make a geometry/mesh that worked fine with that same SIF in Elmer. So the workflow is fixed. THANKS.

Have begun to reproduce the nice panel Anil made. Peter, re: need to fix at least 3 DOFs, understood. I guess in 3D that will be 6 DOFs? 3 translation, 3 rotation? Please confirm.

John
raback
Site Admin
Posts: 4141
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Thermal stress in 2D

Post by raback »

Yep, 3D needs 6. Of course not any six (or any 3 in 2D) will do...

If you have symmetry it is a good idea to use that since it halves the computational effort and naturally fixes some rigid body motions.

-Peter
aether
Posts: 9
Joined: 24 Nov 2012, 22:12
Antispam: Yes

Re: Thermal stress in 2D

Post by aether »

Hi,

To sum up and for the benefit of some future novice, I've attached mesh, sif, and results for a square with three edges fixed under 100C (figure a) or 200C (figure b) of thermal stress. The behavior is physical. This should help get someone get started with thermal stresses.

Thanks again.

John
Attachments
square_with_3_sides_fixed_sif.txt
SIF
(2.84 KiB) Downloaded 253 times
Results
Results
thermal_stress_example.jpg (45.69 KiB) Viewed 8760 times
Mesh_3_square.unv
Mesh
(293.36 KiB) Downloaded 233 times
Post Reply