Someone uses the OpenFOAM for StressAnalysis?
2 Attachment(s)
I'm trying to solve the problem example of the solver "solidDisplacementFoam" where I adopted some elements in the depth of the plate. When I compare the results of the OpenFoam with the results of the commercial software, they are not equal.
Can anyone help me? Attachment 11482 Results of commercial software. Attachment 11481 Results of OpenFoam. |
Because the distribution looks similar and only the order of magnitude is different, are you sure that the ICs and BCs are identical? Just a thought, I don't usually do solid mechanics.
|
Yes, I set two planes of symmetry and only one uniform plan for displacement. Checked the dimensions of the model to ensure that similarity. The only difference between the example of tutorial/OpenFOAM and the my case is that I do not consider thin plate.
|
Quote:
Did you check if the stress are the same ?? its seems that one is normal stress and the other is principal stress S1(sigmaxx) |
This case is similar to the example presented in the tutorial/solidDisplacementFoam, but I'm not considering thick plate and thin plate. The displacement in the X direction is equal in both analyzes (trade vs OpenFOAM). Already tensions are not equal in any direction. This "solver" only works for thin plate?
|
Hi Daniel,
solidDisplacementFoam should fine for thick and thin plate. I have compared many small strain elastic cases between OF and Analytical solutions as well as commercial solvers like Abaqus and the results are always very close. What are all the boundary conditions you are using? Are you using tractionDisplacement for the tractionFree surfaces? It should be possible to find an analytical solution for this case too. Philip |
Hi Philip,
In this case, the boundary conditions are: In the traction surface, I put fixedValue for prescribed displacement and in the free surfaces I put tractionDisplacement. But I don't know if there the conditions are valid for the solidDisplacement solver. In this case, the boundary conditions are: boundaryField { hole { type tractionDisplacement; traction uniform ( 0 0 0 ); pressure uniform 0; value uniform (0 0 0); } traction { type fixedValue; value uniform (1 0 0); } symmetry_b { type symmetryPlane; } symmetry_l { type symmetryPlane; } top { type tractionDisplacement; traction uniform ( 0 0 0 ); pressure uniform 0; value uniform (0 0 0); } frontAndback { type tractionDisplacement; traction uniform ( 0 0 0 ); pressure uniform 0; value uniform (0 0 0); } } Daniel |
Hi Daniel,
Your model is not constrained in the frontAndBack direction i.e. you have set the front and back as traction free so there is nothing constraining the model from moving in this direction, in general this is not good for a steady-state analysis. I would set the the back to be symmetry plane and the front to traction free and half the thickness of your model. Has the model converged? What are the settings in your fvSolution file? Also if you post your fvSchemes file if could help diagnose the problem? Philip |
Hi Philip,
Very interesting the suggestion, to use 1/8 geometry. But if I can not make this simplification in other geometry? I can not use the conditions in this way? Below is the files: fvSolution solvers { D { GAMG solver; tolerance 1e-06; relTol 0.9; GaussSeidel smoother; cacheAgglomeration true; nCellsInCoarsestLevel 20; agglomerator faceAreaPair; mergeLevels 1; } T { GAMG solver; tolerance 1e-06; relTol 0.9; GaussSeidel smoother; cacheAgglomeration true; nCellsInCoarsestLevel 20; agglomerator faceAreaPair; mergeLevels 1; } } stressAnalysis { compactNormalStress yes; nCorrectors 1; D 1e-06; } fvScheme d2dt2Schemes { SteadyState default; } gradSchemes { leastSquares default; grad (D) leastSquares; grad (T) leastSquares; } divSchemes { default none; div (sigmaD) Gauss linear; } |
Hi Daniel,
Quote:
What do you plan to model? Quote:
The reason nCorrectors is set to 1 in the tutorial case is because the steady state results are achieved through multiple time steps (where the results are not converged for intermediate time-steps). Philip |
Hi Philip,
Sorry by not responding earlier. I making various tests with the solvers of the versions OF-1.6 and OF-1.6-ext. His suggestion was very good. My result are not perfect, but much improved. Also I noticed a big difference between the results of the two versions. The results of version OF-1.6-ext are much better. Now, I have explored the schemes of discretizations for improve of results. Thank you by your help. |
That is good that your results are much improved. It is strange that you are getting different results with the different OF versions, they should be the same.
If you give more details on your case, I am happy to give suggestions on improving results and/or figure out why you might be getting different results with different versions. Philip |
Hi Philip,
A colleague suggested that the difference is only in the results viewer Paraview. The case I'm running is the same. A plate with a hole with two planes of symmetry. The same example of the OpenFOAM but I'm assuming it thick. Recently I made a change in the method of div (sigmaD). divSchemes { default none; // div(sigmaD) Gauss linear; div(sigmaD) Gauss midPoint; } This change came over my results than I expected. Daniel |
Hi Daniel,
Quote:
Quote:
I would expect the solver to be very good and accurate in this case. Quote:
Your fvSchemes shown in a previous post is optimal for solid mechanics. The only thing you might change is the timeScheme for transient simulations (steadyState -> Euler) or the grad scheme when the mesh is a problem (leastSquares, Gauss linear or maybe extendedLeastSquares). Philip |
Hi all
Thanks Phil for all nice info. Quote:
Another thing, I guess fixing the displ. @ the boundary to (1, 0, 0) give sufficient constraint to the problem in the out-of-plane direction (displ. set to zero at both plate ends) @DanielSias: I know this may sound stupid ... but have you checked that you have the same material parameters? Best regards Hisham El Safti |
fvSchemes: "default leastSquares" vs "leastSquares default"
Hi
Reading this discussion on setting fvSchemes parameters, I am suprised to see DanielSias setting e.g. for gradSchemes a line stating: "leastSquares default;". Isn't it "default leastSquares;" or does openFoam understand both syntax? This inversion is regularly applied by DanielSias in this post. Best regards Bruno Quote:
|
All times are GMT -4. The time now is 02:57. |