# Steady-state thermal stress analysis by using solidDisplacementFoam

 Register Blogs Members List Search Today's Posts Mark Forums Read

 August 30, 2012, 12:29 Steady-state thermal stress analysis by using solidDisplacementFoam #1 Member   Sangeeta Join Date: Jul 2012 Location: Kingston, Canada Posts: 70 Rep Power: 7 Hello everybody, I am using OpenFoam 1.7 for solving thermal stress problem. Now I am solving some simple 2D cases and comparing with analytical solution. In this case there is a beam of length l and a rectangular cross section whose both ends are clamped as shown as below: fixedEnd1 I-------------------I finxedEnd2 In this problem, initial temperature of beam is constant. Temperatures T and –T is rising and decreasing in the lower and upper surfaces respectively. I am using solidDisplacmentFoam for solving this case. I have following concerns: 1. I am doing this problem for steady-state therefore I have changed ddt schemes as steady state in system/fvScheme. Do I need to make more changed for getting steady state solution in solidDisplacementFoam? 2. Analytical solution for this case is 2.52e+08 at upper surface and -2.52e+08 at lower surface. My simulation results are around 2.25e+08 at upper surface and -2.25e+08 at lower surface. I am not getting accurate simulation results as compared to the analytical values. What do I need to do for getting good simulation results? I appreciate if someone could help me to solve this problem. Below is my test case, so that someone more experienced than me with OpenFoam con give a hint. Best regards and thanks in advance for any reply sar_gam05 0/D dimensions [0 1 0 0 0 0 0]; internalField uniform (0 0 0); boundaryField { topSurface { type tractionDisplacement; traction uniform (0 0 0); pressure uniform 0; value uniform (0 0 0); } bottomSurface { type tractionDisplacement; traction uniform (0 0 0); pressure uniform 0; value uniform (0 0 0); } fixedEnd1 { type fixedValue; value uniform (0 0 0); } fixedEnd2 { type fixedValue; value uniform (0 0 0); } defaultFaces { type empty; } } 0/T dimensions [0 0 0 1 0 0 0]; internalField uniform 0; boundaryField { topSurface { type fixedValue; value uniform -100; } bottomSurface { type fixedValue; value uniform 100; } fixedEnd1 { type zeroGradient; } fixedEnd2 { type zeroGradient; } frontAndBack { type empty; } } blockMesh convertToMeters 1; vertices ( (0 0 0) (30 0 0) (30 10 0) (0 10 0) (0 0 0.1) (30 0 0.1) (30 10 0.1) (0 10 0.1) ); blocks ( hex (0 1 2 3 4 5 6 7) (150 100 1) simpleGrading (1.0 1.0 1.0) ); edges ( ); patches ( patch topSurface ( (3 7 6 2) ) patch bottomSurface ( (4 0 1 5) ) patch fixedEnd1 ( (0 4 7 3) ) patch fixedEnd2 ( (1 2 6 5) ) ); mergePatchPairs ( );

August 31, 2012, 19:47
#2
Senior Member

Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 646
Rep Power: 23
Hi Sargam,

Quote:
 Originally Posted by Sargam05 [SIZE=2] 1. I am doing this problem for steady-state therefore I have changed ddt schemes as steady state in system/fvScheme. Do I need to make more changed for getting steady state solution in solidDisplacementFoam?
Yes, you need to set d2dt2Scheme to steadyState. But also the case needs to be converged - either by using enough outer correctors OR by using multiple time-steps.

Quote:
 Originally Posted by Sargam05 [SIZE=2] 2. Analytical solution for this case is 2.52e+08 at upper surface and -2.52e+08 at lower surface. My simulation results are around 2.25e+08 at upper surface and -2.25e+08 at lower surface. I am not getting accurate simulation results as compared to the analytical values. What do I need to do for getting good simulation results?
Could you post the log here? Also if you could post the case would help.

Philip

September 4, 2012, 12:16
#3
Member

Sangeeta
Join Date: Jul 2012
Posts: 70
Rep Power: 7
Quote:
 Originally Posted by bigphil Hi Sargam, Yes, you need to set d2dt2Scheme to steadyState. But also the case needs to be converged - either by using enough outer correctors OR by using multiple time-steps. Could you post the log here? Also if you could post the case would help. Philip

Hi Philip,

Thanks for the reply. Yes, I have used multiple time steps to get converged solution. I have gotten converged solution for this problem.

Please find my test case, and system files as an attachment. I can not able to attach full log file because it is large in size therefore I am sending you some last iterations in log file that will help to show converged solution.

Please feel free to give suggestions.

Thanks,
Sargam
Attached Files
 Thermal stress Test Case.docx.tar.gz (10.8 KB, 23 views) system.tar.gz (1.4 KB, 18 views) log.tar.gz (69.9 KB, 8 views)

 September 4, 2012, 15:56 #4 Senior Member     Philip Cardiff Join Date: Mar 2009 Location: Dublin, Ireland Posts: 646 Rep Power: 23 Hi Sargam, I notice that your model is only converged to a residual of 1.5e-5. Normally I would converge my solid models to at least 1e-6. I recommend that you converge the model the a tighter tolerance (1e-6, 1e-7 or maybe even tighter and see if there is an effect). You could solve the model in one time-step if you change the number of outer correctors in your fvSolution: stressAnalysis { compactNormalStress no; thermalStress yes; nCorrectors 100000; D 1e-06; T 1e-06; } Also changing the linear solver relative tolerance to about 0.1 is normally optimum for solid models, and change the tolerance tighter than your solution tolerance: D { solver GAMG; tolerance 1e-08; relTol 0.1; smoother GaussSeidel; cacheAgglomeration true; nCellsInCoarsestLevel 20; agglomerator faceAreaPair; mergeLevels 1; } Are you using the exact same boundary conditions as the analytical solution? i.e. are top and bottom traction-free and are the left and right fixed in every direction or fixed only in their normal direction with zero-shear. Philip

September 4, 2012, 22:25
#5
Member

Sangeeta
Join Date: Jul 2012
Posts: 70
Rep Power: 7
Quote:
 Originally Posted by bigphil Hi Sargam, I notice that your model is only converged to a residual of 1.5e-5. Normally I would converge my solid models to at least 1e-6. I recommend that you converge the model the a tighter tolerance (1e-6, 1e-7 or maybe even tighter and see if there is an effect). You could solve the model in one time-step if you change the number of outer correctors in your fvSolution: stressAnalysis { compactNormalStress no; thermalStress yes; nCorrectors 100000; D 1e-06; T 1e-06; } Also changing the linear solver relative tolerance to about 0.1 is normally optimum for solid models, and change the tolerance tighter than your solution tolerance: D { solver GAMG; tolerance 1e-08; relTol 0.1; smoother GaussSeidel; cacheAgglomeration true; nCellsInCoarsestLevel 20; agglomerator faceAreaPair; mergeLevels 1; } Are you using the exact same boundary conditions as the analytical solution? i.e. are top and bottom traction-free and are the left and right fixed in every direction or fixed only in their normal direction with zero-shear. Philip

Hi Philip,

Thanks for the quick reply. I have incorporated changes in fvSolution as you suggested but still my solution is different from analytical solution.

Yes I am using similar boundary conditions as given in the problem. Following are my boundary conditions:

0/D

dimensions [0 1 0 0 0 0 0];

internalField uniform (0 0 0);

boundaryField
{
topSurface
{
type tractionDisplacement;
traction uniform (0 0 0);
pressure uniform 0;
value uniform (0 0 0);
}

bottomSurface
{
type tractionDisplacement;
traction uniform (0 0 0);
pressure uniform 0;
value uniform (0 0 0);
}

fixedEnd1
{
type fixedValue;
value uniform (0 0 0);
}

fixedEnd2
{
type fixedValue;
value uniform (0 0 0);
}

defaultFaces
{
type empty;
}
}

0/T

dimensions [0 0 0 1 0 0 0];

internalField uniform 0;

boundaryField
{
topSurface
{
type fixedValue;
value uniform -100;
}
bottomSurface
{
type fixedValue;
value uniform 100;
}

fixedEnd1
{
}
fixedEnd2
{
}
frontAndBack
{
type empty;
}
}

I am also attaching system and log files of my solution. Do you think that something is wrong in boundary conditions and/or system files. Is this okay to use solidDisplacementFoam solver for steady state because I have not changed equations in solidDisplacementFoam.C file (only changed steady state ddt schemes) ?

Thanks,
Sargam
Attached Files
 system.tar.gz (1.4 KB, 5 views)

September 4, 2012, 22:57
#6
Member

Sangeeta
Join Date: Jul 2012
Posts: 70
Rep Power: 7
Quote:
 Originally Posted by Sargam05 Hi Philip, Thanks for the quick reply. I have incorporated changes in fvSolution as you suggested but still my solution is different from analytical solution. Yes I am using similar boundary conditions as given in the problem. Following are my boundary conditions: 0/D dimensions [0 1 0 0 0 0 0]; internalField uniform (0 0 0); boundaryField { topSurface { type tractionDisplacement; traction uniform (0 0 0); pressure uniform 0; value uniform (0 0 0); } bottomSurface { type tractionDisplacement; traction uniform (0 0 0); pressure uniform 0; value uniform (0 0 0); } fixedEnd1 { type fixedValue; value uniform (0 0 0); } fixedEnd2 { type fixedValue; value uniform (0 0 0); } defaultFaces { type empty; } } 0/T dimensions [0 0 0 1 0 0 0]; internalField uniform 0; boundaryField { topSurface { type fixedValue; value uniform -100; } bottomSurface { type fixedValue; value uniform 100; } fixedEnd1 { type zeroGradient; } fixedEnd2 { type zeroGradient; } frontAndBack { type empty; } } I am also attaching system and log files of my solution. Do you think that something is wrong in boundary conditions and/or system files. Is this okay to use solidDisplacementFoam solver for steady state because I have not changed equations in solidDisplacementFoam.C file (only changed steady state ddt schemes) ? Thanks, Sargam

Hi Philip,

Sorry I am not able to attach log file, it is larger in size therefore I am sending you some last initial iterations from log file.

Iteration: 49997

GAMG: Solving for T, Initial residual = 7.9969e-09, Final residual = 7.9969e-09, No Iterations 0
GAMG: Solving for Dx, Initial residual = 9.99821e-09, Final residual = 9.99821e-09, No Iterations 0
GAMG: Solving for Dy, Initial residual = 9.99863e-09, Final residual = 9.99863e-09, No Iterations 0
ExecutionTime = 517.38 s ClockTime = 522 s

Iteration: 49998

GAMG: Solving for T, Initial residual = 7.9969e-09, Final residual = 7.9969e-09, No Iterations 0
GAMG: Solving for Dx, Initial residual = 9.99821e-09, Final residual = 9.99821e-09, No Iterations 0
GAMG: Solving for Dy, Initial residual = 9.99863e-09, Final residual = 9.99863e-09, No Iterations 0
ExecutionTime = 517.38 s ClockTime = 522 s

Iteration: 49999

GAMG: Solving for T, Initial residual = 7.9969e-09, Final residual = 7.9969e-09, No Iterations 0
GAMG: Solving for Dx, Initial residual = 9.99821e-09, Final residual = 9.99821e-09, No Iterations 0
GAMG: Solving for Dy, Initial residual = 9.99863e-09, Final residual = 9.99863e-09, No Iterations 0
ExecutionTime = 517.39 s ClockTime = 522 s

Iteration: 50000

GAMG: Solving for T, Initial residual = 7.9969e-09, Final residual = 7.9969e-09, No Iterations 0
GAMG: Solving for Dx, Initial residual = 9.99821e-09, Final residual = 9.99821e-09, No Iterations 0
GAMG: Solving for Dy, Initial residual = 9.99863e-09, Final residual = 9.99863e-09, No Iterations 0
Max sigmaEq = 4.4936e+08
ExecutionTime = 517.46 s ClockTime = 522 s

End

September 5, 2012, 12:48
#8
Member

Sangeeta
Join Date: Jul 2012
Posts: 70
Rep Power: 7
Quote:

Hi Philip,

Thanks for the reply. I appreciate your valuable inputs. I have taken this problem from a book "Thermal Stresses" by Naotake et al. Please open following link and find this problem in capter-2, Thermal Stresses in Beams, page number 31, heading number 2.1.2.

In this problem I have not considered curvature.

I am using right boundary conditions or I need to change boundary conditions?

Thanks,
Sargam

 September 6, 2012, 04:16 #9 Senior Member     Philip Cardiff Join Date: Mar 2009 Location: Dublin, Ireland Posts: 646 Rep Power: 23 Sargam, Hmmnn I am not sure what boundary conditions are assumed in the analytical solution, it is not clear. The solution says the beam is clamped at the left and right and then says that the beam will remain perfectly straight when the temperatures are applied, but when you apply a temperature to the top and bottom the beam will warp even if the left and right are clamped. Is there a reason why you are using this particular case? There are many analytical solutions for coupled thermal-stress problems, if you are just interested in verifying the solver. Best regards, Philip

September 6, 2012, 12:33
#10
Member

Sangeeta
Join Date: Jul 2012
Posts: 70
Rep Power: 7
Quote:
 Originally Posted by bigphil Sargam, Hmmnn I am not sure what boundary conditions are assumed in the analytical solution, it is not clear. The solution says the beam is clamped at the left and right and then says that the beam will remain perfectly straight when the temperatures are applied, but when you apply a temperature to the top and bottom the beam will warp even if the left and right are clamped. Is there a reason why you are using this particular case? There are many analytical solutions for coupled thermal-stress problems, if you are just interested in verifying the solver. Best regards, Philip

Hi Philip,

Thank you for the reply. Actually I am solving this problem just to verify the solver. Could you please suggest me some simple example problems/book/journal so that I can validate analytical results with simulation results?

Sargam

 September 6, 2012, 14:22 #11 Senior Member     Philip Cardiff Join Date: Mar 2009 Location: Dublin, Ireland Posts: 646 Rep Power: 23 Sargam, OK, I would recommend a thick walled cylinder with temperature T_i at the inner surface and T_o at the outer surface - described here in the Ansys benchmarks. The analytical solution can be found in Timoshenko. I can email you the relevant equations if you pm me your email address. Best regards, Philip

 September 12, 2012, 10:41 #12 Senior Member   Markus Rehm Join Date: Mar 2009 Location: Erlangen (Germany) Posts: 184 Rep Power: 10 Hi Philip, hi Sargam, could one of you provide the Timoshenko-case? Thanks, Markus.

 September 12, 2012, 10:51 #13 Senior Member     Philip Cardiff Join Date: Mar 2009 Location: Dublin, Ireland Posts: 646 Rep Power: 23 Hi Markus, Actually the hotCylinder test case is in the recently released solidMechanics solvers for OpenFOAM-1.6-ext (see here). There is also a utility which outputs the analytical solution. Best regards, Philip

September 12, 2012, 13:01
#15
Senior Member

Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 646
Rep Power: 23
Quote:
Mallikarjuna, as your question is unrelated to the current post, you should create a separate post for you question.

Best regards,
Philip

 September 12, 2012, 13:17 #16 Member   M Mallikarjuna Reddy Join Date: Jul 2012 Posts: 91 Rep Power: 7 Hi Philip, very much thanks for quick reply. I have one problem related this posts. When i run my case by using my solver the following error message is coming. I am not getting what it is trying to say, Error message:- malli_reddy@ubuntu:~/OpenFOAM/malli_reddy-2.1.1/PROJECT/validation\$ myDiffusivecFoam /*---------------------------------------------------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.1.1 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ Build : 2.1.1-221db2718bbb Exec : myDiffusivecFoam Date : Sep 12 2012 Time : 22:39:06 Host : "ubuntu" PID : 2089 Case : /home/malli_reddy/OpenFOAM/malli_reddy-2.1.1/PROJECT/validation nProcs : 1 sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE). fileModificationChecking : Monitoring run-time modified files using timeStampMaster allowSystemOperations : Disallowing user-supplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create mesh for time = 0 Reading transportProperties Reading field p Reading field U Reading field T Reading/calculating face flux field phi No field sources present SIMPLE: convergence criteria field p tolerance 1e-05 field U tolerance 1e-05 field T tolerance 1e-05 Starting time loop Time = 1nl [0 0 -1 0 0 0 0] 0.005626 DILUPBiCG: Solving for Ux, Initial residual = 1, Final residual = 4.7087e-06, No Iterations 5 DILUPBiCG: Solving for Uy, Initial residual = 0, Final residual = 0, No Iterations 0 #0 Foam::error:rintStack(Foam::Ostream&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so" #1 Foam::sigFpe::sigHandler(int) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so" #2 Uninterpreted: #3 Foam:ILUPreconditioner::calcReciprocalD(Foam::Fi eld&, Foam::lduMatrix const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so" #4 Foam:ILUPreconditioner:ILUPreconditioner(Foam: :lduMatrix::solver const&, Foam::dictionary const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so" #5 Foam::lduMatrix:reconditioner::addasymMatrixCons tructorToTable::New(Foam ::lduMatrix::solver const&, Foam::dictionary const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so" #6 Foam::lduMatrix:reconditioner::New(Foam::lduMatr ix::solver const&, Foam::dictionary const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so" #7 Foam::PBiCG::solve(Foam::Field&, Foam::Field const&, unsigned char) const in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libOpenFOAM.so" #8 Foam::fvMatrix::solve(Foam::dictionary const&) in "/opt/openfoam211/platforms/linuxGccDPOpt/lib/libfiniteVolume.so" #9 Foam::fvMatrix::solve() in "/home/malli_reddy/OpenFOAM/malli_reddy-2.1.1/platforms/linuxGccDPOpt/bin/myDiffusivecFoam" #10 in "/home/malli_reddy/OpenFOAM/malli_reddy-2.1.1/platforms/linuxGccDPOpt/bin/myDiffusivecFoam" #11 __libc_start_main in "/lib/i386-linux-gnu/libc.so.6" #12 in "/home/malli_reddy/OpenFOAM/malli_reddy-2.1.1/platforms/linuxGccDPOpt/bin/myDiffusivecFoam" Floating point exception please let me know what is the error. Thanks Regards Mallikarjuna

September 13, 2012, 08:04
#17
Senior Member

Markus Rehm
Join Date: Mar 2009
Location: Erlangen (Germany)
Posts: 184
Rep Power: 10
Quote:
 Originally Posted by bigphil Hi Markus, Actually the hotCylinder test case is in the recently released solidMechanics solvers for OpenFOAM-1.6-ext (see here). There is also a utility which outputs the analytical solution. Best regards, Philip

Thanks a lot. I will check it.

Markus

 Thread Tools Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post sidspark12 ANSYS Meshing & Geometry 1 December 26, 2012 05:29 syafiq CFX 1 May 7, 2012 17:06 fivos FLUENT 0 April 27, 2009 16:34 Lisa Main CFD Forum 11 July 5, 2000 14:37 Arnold Free Main CFD Forum 0 August 10, 1999 10:18

All times are GMT -4. The time now is 18:27.