CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

Mesh motion crashes...

Register Blogs Community New Posts Updated Threads Search

Like Tree5Likes
  • 1 Post By Tobi
  • 2 Post By simrego
  • 1 Post By simrego
  • 1 Post By Tobi

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   January 26, 2020, 14:12
Default Mesh motion crashes...
  #1
Super Moderator
 
Tobi's Avatar
 
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 52
Tobi has a spectacular aura aboutTobi has a spectacular aura aboutTobi has a spectacular aura about
Send a message via ICQ to Tobi Send a message via Skype™ to Tobi
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
GerhardHolzinger likes this.
__________________
Keep foaming,
Tobias Holzmann
Tobi is offline   Reply With Quote

Old   January 27, 2020, 05:37
Default
  #2
Senior Member
 
anonymous
Join Date: Jan 2016
Posts: 416
Rep Power: 14
simrego is on a distinguished road
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
jherb and Tobi like this.
simrego is offline   Reply With Quote

Old   January 27, 2020, 12:16
Default
  #3
Super Moderator
 
Tobi's Avatar
 
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 52
Tobi has a spectacular aura aboutTobi has a spectacular aura aboutTobi has a spectacular aura about
Send a message via ICQ to Tobi Send a message via Skype™ to Tobi
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
Tobi is offline   Reply With Quote

Old   January 27, 2020, 14:04
Default
  #4
Senior Member
 
anonymous
Join Date: Jan 2016
Posts: 416
Rep Power: 14
simrego is on a distinguished road
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).
simrego is offline   Reply With Quote

Old   January 27, 2020, 14:14
Default
  #5
Super Moderator
 
Tobi's Avatar
 
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 52
Tobi has a spectacular aura aboutTobi has a spectacular aura aboutTobi has a spectacular aura about
Send a message via ICQ to Tobi Send a message via Skype™ to Tobi
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
Tobi is offline   Reply With Quote

Old   January 27, 2020, 14:21
Default
  #6
Senior Member
 
anonymous
Join Date: Jan 2016
Posts: 416
Rep Power: 14
simrego is on a distinguished road
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!
Tobi likes this.
simrego is offline   Reply With Quote

Old   January 27, 2020, 17:10
Default
  #7
Super Moderator
 
Tobi's Avatar
 
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 52
Tobi has a spectacular aura aboutTobi has a spectacular aura aboutTobi has a spectacular aura about
Send a message via ICQ to Tobi Send a message via Skype™ to Tobi
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.
simrego likes this.
__________________
Keep foaming,
Tobias Holzmann
Tobi is offline   Reply With Quote

Old   January 28, 2020, 08:33
Default
  #8
Senior Member
 
anonymous
Join Date: Jan 2016
Posts: 416
Rep Power: 14
simrego is on a distinguished road
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.
simrego is offline   Reply With Quote

Old   November 28, 2021, 05:31
Default
  #9
New Member
 
Amr Emad Ezzat
Join Date: Oct 2019
Posts: 9
Rep Power: 7
Amr Emad Ezzat is on a distinguished road
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.
Amr Emad Ezzat is offline   Reply With Quote

Old   June 18, 2022, 04:21
Default
  #10
New Member
 
Hubei Province
Join Date: Oct 2021
Posts: 1
Rep Power: 0
LiangHongjian is on a distinguished road
Quote:
Originally Posted by Amr Emad Ezzat View Post
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.
Hi, Emad,
Actually I'm suffering using the solver "displacementInterpolation", and could you post your case?
Thanks!
LiangHongjian is offline   Reply With Quote

Old   June 19, 2022, 17:16
Default
  #11
Super Moderator
 
Tobi's Avatar
 
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 52
Tobi has a spectacular aura aboutTobi has a spectacular aura aboutTobi has a spectacular aura about
Send a message via ICQ to Tobi Send a message via Skype™ to Tobi
My suggestion to you is:
  • use moveDynamicMesh
  • Write out each time-step
  • Inspect your mesh motion
  • Analyze the mesh problems/wrong setup
  • Correct it
If that is not helping. Put some pics here or the error message(s).
__________________
Keep foaming,
Tobias Holzmann
Tobi is offline   Reply With Quote

Old   June 27, 2022, 02:58
Default
  #12
Member
 
Michael Sukham
Join Date: Mar 2020
Location: India
Posts: 84
Rep Power: 6
2538sukham is on a distinguished road
Quote:
Originally Posted by Tobi View Post
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.
Hi Tobi. In the layered dictionary, i dont find layer addition removal. So is it something that we have to manually compile? or out of the box it supports topology change with layer addition/removal?
2538sukham is offline   Reply With Quote

Reply


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 Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
dynamicFvMesh - tabulated motion of a solid body + mesh morphing HendrikW OpenFOAM Pre-Processing 3 December 3, 2019 03:05
[snappyHexMesh] No layers in a small gap bobburnquist OpenFOAM Meshing & Mesh Conversion 6 August 26, 2015 10:38
3D Hybrid Mesh Errors DarrenC ANSYS Meshing & Geometry 11 August 5, 2013 07:42
Prescribed mesh motion does not correspond to actual motion rbarrett CFX 8 June 30, 2011 14:22
[snappyHexMesh] snappyHexMesh won't work - zeros everywhere! sc298 OpenFOAM Meshing & Mesh Conversion 2 March 27, 2011 22:11


All times are GMT -4. The time now is 11:59.