|
[Sponsors] |
![]() |
![]() |
#1 |
Super Moderator
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 51 ![]() ![]() ![]() |
Hey everybody,
I do have a simple mesh motion where I move a piston up. Doing so, the mesh deforms at some place and disturbs. I tried a lot of things already but nothing seems to handle that. Any hint is welcomed. By the way. ParaView do have these strange line behavior. Does anyone knows how to change it ![]() https://Holzmann-cfd.com/forums/AGif.gif Thank you for reading and maybe getting back to me. Tobi
__________________
Keep foaming, Tobias Holzmann |
|
![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
anonymous
Join Date: Jan 2016
Posts: 416
Rep Power: 14 ![]() |
Hi!
What is your motion solver? Check the displacementLayeredMotion solver which is perfect for this application I think and it is also supports layer addition/removal. I think you are using some displacementLaplacian solver or something like that. At least I had some similar anomalies with it. EDIT: There is a thread somewhere about dynamicMesh+ACMI and I made this animation for that, but here you can see that this motion solver can handle these type of problems pretty easily. https://www.youtube.com/watch?v=mcWCuTLolFg |
|
![]() |
![]() |
![]() |
![]() |
#3 |
Super Moderator
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 51 ![]() ![]() ![]() |
Hi,
thanks for your reply. I used the componentDisplacementLaplacian solver for that problem while I modified the solver in order to use the fvOptions capabilities (to constrain the motion for the upper cells - otherwise the mesh gets messed up very fast). Interesting point to use ACMI here. Hmm... Additionally, I saw that the engine solvers in FOAM do use somehow a different mesh motion.
__________________
Keep foaming, Tobias Holzmann |
|
![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
anonymous
Join Date: Jan 2016
Posts: 416
Rep Power: 14 ![]() |
Nono, Sorry. Maybe that video is a bit misleading. The point was the mesh motion what you need. The ACMI is just another part of that toy case which is not important from your point of view.
![]() But I think I was right. When I did this case (the real case not this toy) I had really similar problems like you have now. But with the mentioned motion solver you can limit the motion to a cellZone thus the motion won't affect the whole domain like in the laplacian solvers. And you can define a linear motion between the 2 faceZone (one is the end of the piston which is moving, the other is the stationary end). Since in this solver the motion is only limited to the given cellZone as I mentioned, and the motion is simply linearly interpolated, you won't have those weird distortions. And also layer addition can be used with it, but it's a bit tricky (maybe buggy is more appropriate). |
|
![]() |
![]() |
![]() |
![]() |
#5 |
Super Moderator
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 51 ![]() ![]() ![]() |
Hi,
thanks for clarification. I will check the displacementLinearMotion or displacementLayeredMotion Additionally, as I mentioned, I modified the motion solver I use in a way that only my cellZone moves while the other part does not move. Code:
tmp<fvScalarMatrix> tcellEqn ( fvm::laplacian ( diffusivityPtr_->operator()(), cellDisplacement_, "laplacian(diffusivity,cellDisplacement)" ) + pre*fvOptions(cellDisplacement_) ); fvScalarMatrix& cellEqn = tcellEqn.ref(); cellEqn.relax(); fvOptions.constrain(cellEqn); cellEqn.solve(); fvOptions.correct(cellDisplacement_); Just as a hint. Well this works fine but for any reason the solver produces these crazy results. I will investigate into that. Kind regards and thanks for sharing your thoughts.
__________________
Keep foaming, Tobias Holzmann |
|
![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
anonymous
Join Date: Jan 2016
Posts: 416
Rep Power: 14 ![]() |
Yes, I got that you solve in a small region, but I think it is simply due to the laplacian equation somehow. If you grab a simple box and push it, after a while you will see the same phenomena. As long as your displacement is small relative to the domain it is working fine, but with large displacements I experienced this behavior even with the most simplest geometry (the mentioned simple box). Sometimes it survived some oscillations but it wasn't reliable.
If you have solved the problem it would be nice to see your solution. ![]() Good luck! |
|
![]() |
![]() |
![]() |
![]() |
#7 |
Super Moderator
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 51 ![]() ![]() ![]() |
Well, using the *linear* motion solver did the job. The *layer* solver can handle also the layer addition/removal. I have to check the libs as I want to combine them with AMR. For that, a starting point for the dynamic solver would be nicer as we do have a raw class and could combine motion + refinement easily there. Well, I need to check the implementation of the libraries I used via your suggestion. Thanks.
__________________
Keep foaming, Tobias Holzmann |
|
![]() |
![]() |
![]() |
![]() |
#8 |
Senior Member
anonymous
Join Date: Jan 2016
Posts: 416
Rep Power: 14 ![]() |
Dynamic refinement on a mesh which is always changing. Could be easily combined, but I'm interested on the result. So layer addition/removal can't be used, thus you must use some linear motion. I'm curious about the resulted mesh.
![]() |
|
![]() |
![]() |
![]() |
![]() |
#9 |
New Member
Amr Emad Ezzat
Join Date: Oct 2019
Posts: 9
Rep Power: 6 ![]() |
I had the same problem here. I tried to use the displacementInterpolation motion solver in OpenFOAM instead of using displacementLaplacian or displacementComponentLaplacian and it works very fine with me for the piston motion without any need to change the code original code.
|
|
![]() |
![]() |
![]() |
![]() |
#10 | |
New Member
Hubei Province
Join Date: Oct 2021
Posts: 1
Rep Power: 0 ![]() |
Quote:
Actually I'm suffering using the solver "displacementInterpolation", and could you post your case? Thanks! |
||
![]() |
![]() |
![]() |
![]() |
#11 |
Super Moderator
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 51 ![]() ![]() ![]() |
My suggestion to you is:
__________________
Keep foaming, Tobias Holzmann |
|
![]() |
![]() |
![]() |
![]() |
#12 | |
Member
Michael Sukham
Join Date: Mar 2020
Location: India
Posts: 79
Rep Power: 6 ![]() |
Quote:
|
||
![]() |
![]() |
![]() |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
dynamicFvMesh - tabulated motion of a solid body + mesh morphing | HendrikW | OpenFOAM Pre-Processing | 3 | December 3, 2019 02:05 |
[snappyHexMesh] No layers in a small gap | bobburnquist | OpenFOAM Meshing & Mesh Conversion | 6 | August 26, 2015 09:38 |
3D Hybrid Mesh Errors | DarrenC | ANSYS Meshing & Geometry | 11 | August 5, 2013 06:42 |
Prescribed mesh motion does not correspond to actual motion | rbarrett | CFX | 8 | June 30, 2011 13:22 |
[snappyHexMesh] snappyHexMesh won't work - zeros everywhere! | sc298 | OpenFOAM Meshing & Mesh Conversion | 2 | March 27, 2011 21:11 |