Problem with dynamic mesh (EXTERNAL - 3D)
Hi everyone,
I’m currently trying to simulate a pitching airfoil attached to a fixed body. As SU2 does not support non-conformal interfaces, the only option available within the existing SU2 code is to use the external kind of grid movement (can't use rigid motion, rotating frames or moving walls). Unfortunately, I’m having trouble with the external mesh motion type, especially in 3D: the mesh smoother keeps diverging (?), even with very small changes in the pitch angle (0.05 degrees crashes the solver). I actually get negative volume cells even if my original grid does not contain any. The grid currently used is viscous and is built to have a y+ value of 1. Wall cell height is therefore small (2.5e-6 m). Prior to running these 3D cases, I tested SU2 features in 2D. While testing, I have found weird grid solver behavior when running parallel 2D test cases. In fact, the volume grid solver requires more linear iterations as the number of partitions is increased, as seen in the table below. The number of cells for the 2D case is 47600. Code:
np avg niter I had a look in the code, but couldn’t find anything. Does anyone have any idea of what’s happening? Has anyone else encountered such problem? I'll check if I can reproduce the problem with a grid in the TestCases folder with a new configuration file and update accordingly. Regards, Frederik |
Update...
Hello everyone,
I was able to continue my investigations on the dynamic mesh external errors I’ve encountered so far. Also sorry about the length of this post... The problem seems to happen when the following conditions are all met:
Here is my test case details, as the bug is not easily demonstrable using the grids included in the TestCases suite. In fact, grids with boundary layers crash instantly and unstructured grids work fine.
Grid properties: Code:
Prop Grid A Grid B Grid C Grid D Code:
Parts Grid A Grid B Grid C Grid D Code:
Parts Grid A Grid B Grid C Grid D https://qtxfya.by3301.livefilestore....art.png?psid=1 https://qtxeya.by3301.livefilestore....art.png?psid=1 https://qtxeya.by3301.livefilestore....art.png?psid=1 https://qtxeya.by3301.livefilestore....art.png?psid=1 https://qtxeya.by3301.livefilestore....art.png?psid=1 https://qtxeya.by3301.livefilestore....art.png?psid=1 https://qtxeya.by3301.livefilestore....art.png?psid=1 ...continued... |
Update #2...
...continued...
Some observations too:
Additionally, I had initially investigated 2D tests on high aspect ratio cells (impact of linear and non-linear interactions and solver) with the following results. There is no problem here per se, it could just be useful for other people. https://qtxeya.by3301.livefilestore....ess.png?psid=1 https://qtxeya.by3301.livefilestore....ume.png?psid=1 https://qtxeya.by3301.livefilestore....nce.png?psid=1 |
Quote:
Thank you for sharing your experience here. I just have some questions regarding your problem. From your post I understood you are using external grid solver in your process, right? If so could you please provide more information on your grid procedure. Are you remeshing the entire domain in every time step or updating your mesh? Besides, I think it is possible to create a series of mesh that is marched in time and mapping the solution between them in a simulation like yours. Is there a gap in your geometry between the pitching airfoil and the solid body? You may consider using FFD box to deform your pitching airfoil for simulating its movement. I haven't used this feature of SU2 yet, but more information on your dynamic mesh process including how you are linking your external grid solver and how you are updating the mesh will help. Bests, Payam |
Thanks for the reply. I'm not currently at home and my images are not showing... can you see the images?
I'm using this: Code:
GRID_MOVEMENT= YES To create my grid, I used Pointwise. Then I exported the grid in a SU2 format. I used some Matlab tools (included in SU2 source in /MeshTools/Matlab/) and made some of my own. I simply read the grid file, recorded what nodes are located in the surface boundaries and deplaced them. I'm not remeshing the entire domain, I'm deforming it. I update the mesh every time step by moving the boundaries. SU2 deforms the interior volumes. Regards, Frédérik Quote:
|
Quote:
Quote:
If you want to use the deformation, I suggest you to create a FFD box around your pitching component and move that component in every time step. The mesh will deform automatically. The FFD box is used in optimization problems as parametrization technique, but you can trick this technique to move the component instead. There will be no crash like what you have gotten here, except you might confront with negative volume mesh problems, which might be resolved by decreasing the time step size. Meanwhile, I suggest you to check this thread as well: 2D NACA 6412 Tutorial Extrusion Problem You will see pictures like yours in which a kind of meshy explosion happened due to use of single precision display rendering. Additionally, there are other approaches to move that component in a simulation: 1] You can create a series of structured mesh with constant resolution in specific time steps separately, in which your component is moving. Then, for your simulation which is marching in time, map the solution from one to another respectfully. It sometimes called quasi-static approach. 2] You can create a small overset structured block around your component, then define a unstructured interface between the solid body and the moving component. It results a hybrid grid in overall. For the movement, move the component with its overset structured boundary layer block, and just remesh, deform or update the unstructured block alone. This approach maintains the grid quality, and also resolves the meshy-explosion-liked problem. 3] As already mentioned, you can use FFD box around your moving component to simulate its motion. The fully-structured grid will be deformed. Meanwhile, you can combine this approach with the second aforementioned approach. For this purpose, define a FFD box around your moving component with its structured block for simulating the motion. Quote:
Meanwhile, developer's guide here will help you to find out how one can access these factors in the grid module. These are my suggestions for your case. I hope they help you. Good Luck, Payam |
As l understand from grid_movement_structure.cpp source code motion_filename should include global vertex index, x-location, y-location for boundary nodes at each time step. However, when l run parallel the vertex index from the solution file is different compared to that of *.su2 mesh file due to reordering. Therefore, do l need any further modification for parallel run?
Best Mehmet |
All times are GMT -4. The time now is 17:07. |