|
[Sponsors] |
pimpleDyMFoam with AMI - high-frequency pressure changes |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
September 22, 2014, 14:50 |
pimpleDyMFoam with AMI - high-frequency pressure changes
|
#1 |
New Member
chubb87
Join Date: May 2011
Posts: 21
Rep Power: 15 |
Hello,
there is an issue with high-frequency pressure oscillations for simulations with pimpleDyMFoam and transientSimpleDyMFoam (for rotating machinery), which was confirmed by independent research groups. These oscillations are unphysical and are definitely connected to the AMI interface (correlate with circumferential number of cells of stator & with rotor-frequency). After detailed examination of a simplified testcase (see attachment) we are sure about that. This problem was examined primarily with OpenFOAM 2.1.x, but occurs also with OpenFOAM 2.3.x. Has anyone noticed this phenomenon and/or has a solution? Thanks a lot in advance. Martin Attachments with links: Modelpump-pimpleDyMFoam-OF-2.1.x: transient set-up including the initial solution, https://dl.dropboxusercontent.com/u/...F-2.1.x.tar.gz turboPerformance-OF2.1: functionObject for the head evaluation, https://dl.dropboxusercontent.com/u/...e-OF2.1.tar.gz |
|
September 28, 2014, 14:01 |
|
#2 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,981
Blog Entries: 45
Rep Power: 128 |
Greetings Martin,
I was curious and took a quick look at the mesh in your case, as well as to the "fvSolution" and "fvSchemes" files. What I can see is that:
To conclude, I strongly suggest that you try either using an identical mesh resolution in the inside and outside regions; or at least use a 2:1 proportion. In addition, it might be better to use a fixed deltaT, which is a multiple that correlates the location of the cell faces on the AMI patches with the rotation speed, so that you can avoid getting sliver-like face interfaces. Best regards, Bruno |
|
September 29, 2014, 08:28 |
|
#3 |
New Member
chubb87
Join Date: May 2011
Posts: 21
Rep Power: 15 |
Dear Bruno,
thank you very much for investigating my case. Regarding your comments, I can say the following: 1. CorrectPhi is not the reason for the oscillations. I also ran the calculations with that option activated and the oscillations were still present. 2. The same applies to different relaxation factors. 3. Shouldn’t the AMI interface be able to handle small jumps in mesh resolution. A transition from 60 to 72 cells in circumferential direction is not a bad transition, and in axial direction it is even a 1:1 match. I do not consider it satisfactory if the AMI cannot cope with that. For our real-world cases it is not possible to always make sure the mesh is 1:1 or 2:1.Kind regards, Martin |
|
September 30, 2014, 08:31 |
|
#4 |
Senior Member
Jan
Join Date: Jul 2009
Location: Hamburg
Posts: 144
Rep Power: 20 |
Hi Martin,
have you tried to tighten the tolerance for p, e.g. 1e-8? Sometimes this helps to reduce such oscillations. Or may change linearUpwind to something like blended 0.8 linear upwind. Should be slightly more diffusive, but also may reduce the oscillations. Best regards, Jan |
|
October 4, 2014, 12:22 |
|
#5 | |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,981
Blog Entries: 45
Rep Power: 128 |
Greetings to all!
To add to Jan's answer, there is also the presentation "OFW09.0005 How grid quality affects solution accuracy" at http://openfoam-extend.sourceforge.n.../download.html - which should give some more ideas. In addition, in OpenFOAM 2.3.0 were introduced a few more features which might solve a bit these issues: http://www.openfoam.org/version2.3.0/ami.php Quote:
Yet another example of how significant is the mesh, is if when running a transient simulation, even without any dynamic meshing, there is a very small cell that has fluid passing through it at a very high speed, where the Courant Number will sky rocket for that very small cell, and/or forcing the deltaT step to reduce to very small values. There are several possible workarounds, but the best solution is to try and improve the mesh in that particular location; any workaround will very likely be suboptimal. Best regards, Bruno |
||
October 7, 2014, 13:25 |
|
#6 |
New Member
chubb87
Join Date: May 2011
Posts: 21
Rep Power: 15 |
@Jan:
Unfortunately tightening the tolerances does not reduce the oscillations. I also tried more diffusive schemes, even pure upwind does not yield less oscillations. @Bruno: Thanks for the links. I tested the option "lowWeightCorrection" (the only new feature I have influence on that might help), but that does not reduce the oscillations, nor does the variation of "meshTolerance". I actually tried the GGI-feature in foam-extend-3.1, but without improvement. In that regard the two interface methods behave equivalently. The geometry is very simple and the mesh is fairly clean, we have made sure of that (also tried different conversion mechanisms). I appreciate your advice regarding the mesh, but in my opinion that it is not the reason for the oscillations. Best regards, Martin |
|
October 9, 2014, 16:54 |
|
#7 |
New Member
Join Date: Apr 2010
Posts: 10
Rep Power: 16 |
Hello all,
after having a look in my dirty tricks chamber , I found : modifying point coordinates on both interfaces reduces these wiggles. Just twist each interface about one cell's angle , variing angle from z = 0 to z = 0.1, so that ami weights ( or cell faces overlap ) do not have sudden jumps while rotating. Too sad that the wiggles do not disappear completley ... Please find attached a "twisted" points file. Attachment 34303 Attachment 34304 Attachment 34305 Attachment 34306 Attachment 34307 This twisting was done via a super ugly shell script : assuming constant/polyMesh/points.gz was backed up to constant/polyMesh/pointsOrig.gz # do some sed awk magic, find points with distance 0.05 from z axis, apply diferential rotation to them, write back to polyMesh dir cp constant/polyMesh/pointsOrig.gz . gunzip -f pointsOrig.gz cat pointsOrig \ | sed 's/(/( /' \ | sed 's/)/ )/' \ | awk '/\(/ { x=$2;y=$3;z=$4; r2=$2*$2+$3*$3; if( sqrt((r2 - 0.0025)*(r2 - 0.0025)) < 1e-6) { if( NR >= 7149 ) angle=atan2(1,0)*4*0.013 * z / 0.1 * 2.0; else angle=atan2(1,0)*4*0.013 * z / 0.1 * -1.0; xDash= x*cos(angle)+y*sin(angle) ; yDash=-x*sin(angle)+y*cos(angle); { printf "/*"x" "y " "z"*/" "("xDash" "yDash" "z" )\n" ; next } } } { print $0 }' > points # zip the processed points file gzip -f points # put back to polyMesh dir cp points.gz constant/polyMesh/ I am sure ,there are several tricks like this out in the wild ... Bandfrosch |
|
October 10, 2014, 14:46 |
|
#8 |
New Member
Join Date: Apr 2010
Posts: 10
Rep Power: 16 |
Sorry , links do not work ... Mesh view from above : mesh1.png Mesh view from below : mesh2.png twisted AMI patches : mesh3.png Volume flow comparison : vDot.png points.gz file : points.gz Hope it works this time .... Bandfrosch |
|
October 14, 2014, 08:52 |
|
#9 |
New Member
chubb87
Join Date: May 2011
Posts: 21
Rep Power: 15 |
Hello Bandfrosch,
thanks very much for providing this idea and script. It really reduces the oscillations a bit. I have applied it from the middle (axial direction), such that the cells get twisted 2 cells in circumferential direction with the same total twist at both endings. I doubt though, whether this trick is practical for real pumps and testing this right now. In order to reduce the oscillations completely, I guess this trick has to be combined with mesh refinement and/or 1:a matching interfaces, where 'a' is an integer. Hopefully in future OF versions there will be a more useful AMI-implementation. Regards, Martin |
|
October 26, 2014, 08:03 |
|
#10 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,981
Blog Entries: 45
Rep Power: 128 |
Greetings to all!
FYI: A few days a similar report was filled on the official bug tracker for OpenFOAM, which seems to shed some more light on the source of this problem: http://www.openfoam.org/mantisbt/view.php?id=1421 Best regards, Bruno |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
AMI speed performance | danny123 | OpenFOAM | 21 | October 24, 2020 05:13 |
high pressure boundary condition | fragzilla | CFX | 5 | September 14, 2012 03:40 |
Tutorial problem: "rhopSonicFoam - shockTube" with high pressure | shangzung | OpenFOAM | 0 | November 1, 2009 14:07 |
Does star cd takes reference pressure? | monica | Siemens | 1 | April 19, 2007 12:26 |
Hydrostatic pressure in 2-phase flow modeling (long) | DS & HB | Main CFD Forum | 0 | January 8, 2000 16:00 |