|April 3, 2011, 13:46||
Problem with moving mesh and remeshing technique..
Join Date: Feb 2011
Posts: 5Rep Power: 7
I have recently been trying in vain to simulate a piston moving within a cylinder representing a simple IC engine. I started by using a thin cross section model and have successfully obtained a simple model with the piston movement dictated by a userfunction.
I then wanted to produce a full 3D cylindrical model of this. When attempting to do this using the same techniques I had before I kept getting an error related to a negative element or volume within the mesh around half way done the piston's first stroke. I have tried various simplified models and even just a small piston inside a large cylinder but with no luck.
I have also tried using the remeshing technique with ICEM meshing as described in the EDR tutorial from this link:
Using this technique I still get unexplained errors.
If anyone could shed any light onto why this is happening and/or how I can overcome them or if there is another way I should be going about this I would be very very grateful.
|April 3, 2011, 19:03||
Join Date: Mar 2009
Location: Sydney, Australia
Posts: 12,414Rep Power: 97
I have done zillions of IC engine models in a past life as an automotive engineer. I was using CFX before the remeshing became a realistic option so my mesh had to do the entire motion from BDC to TDC without folding. I found that if you meshed it at BDC and squashed it to TDC it would always fold, but if you meshed it at TDC and stretched it to BDC it would work fine.
So my recommendation is to stretch the mesh out, do not compress it.
|April 4, 2011, 08:42||
Join Date: Apr 2009
Posts: 530Rep Power: 13
If you need to do BDC to TDC for some reason, or several cycles, then to avoid the mesh folding (I assume it's a hex mesh) you would need to specify the mesh motion using a subdomain that covers the entire deforming mesh zone. The displacement of each node can be specified using a weighting function. So the bottom moves with some imposed function, say sin(t). The top is stationary. The displacement of all nodes can be described by a linear weighting function multiplied by sin(t), where the weighting function returns zero at the top and 1 and the bottom. Since the bottom is moving, then use a callback such as areaAve(zGlobal)@bottom to get the coordinate location of the bottom.
|Thread||Thread Starter||Forum||Replies||Last Post|
|How to set boundary layer of a moving body in GAMBIT to a mesh zone for dynamic mesh||tomyangbath||FLUENT||17||March 25, 2016 05:36|
|A question on adaptive remeshing or mesh deformation for handling object motions||daveatstyacht||OpenFOAM||10||November 13, 2010 10:29|
|Dynamic Mesh moving interface help||akash.iitb||FLUENT||0||August 23, 2010 23:53|
|Dynamic Mesh Problem.||Tom Clark||FLUENT||9||July 7, 2010 07:56|
|Moving and deforming mesh||paolo||FLUENT||0||June 19, 2003 08:12|