|
[Sponsors] |
November 18, 2018, 04:06 |
Venkatakrishnan limiter + SLAU in OpenFOAM
|
#1 |
Senior Member
Join Date: Sep 2015
Location: Singapore
Posts: 102
Rep Power: 11 |
Dear all,
I am trying to implement an implicit solver for solving steady-state compressible flows in OpenFOAM. With regards to this, I have coded a matrix-free LU-SGS method [1] with optional preconditioning. I have also coded Venkatakrishan slope limiter [2] which is supposed to provide improved convergence and the SLAU scheme [3] which is capable of handling low Mach number regions. I tried running the solver with the 1st order upwind scheme for M~0.01 flow over a cylinder. While the solution converged, there was some asymmetry in the solution (see attached image). The journal papers report perfectly symmetric profiles. So, I am not sure where I am going wrong. I increased farfield boundary distance from 10D to 40D but it had no effect. By the way, I am applying fixedValue boundary conditions. When I switched to using TVD schemes such as van Leer and van Albada, the solution did not converge. I reported this problem in this thread and a user suggested that I use Venkatakrishnan's limiter. However, when I tried to use the 2nd order scheme with Venkatakrishnan's slope limiter, the solution does not converge either. I have tried varying the parameter K from 0.1 to 5 but there has been no improvement in convergence thus far. I have tried running with the HLL flux scheme too but the same thing happens. It converges for 1st order but not for second order. This led me to believe that there are two problems here: one with the flux scheme and the other with the spatial scheme. To summarise:
Any comments/suggestions would be of great help. USV PS: I am using OpenFOAM v2.4. References
|
|
November 26, 2018, 09:09 |
More info on Venkatakrishnan limiter (with code)
|
#2 |
Senior Member
Join Date: Sep 2015
Location: Singapore
Posts: 102
Rep Power: 11 |
Dear all,
I realized that I didn't provide much information to help with the troubleshooting. So, I decided to include parts of my code. I have implemented Venkatakrishnan limiter as a limitedGradScheme following the same general layout as the cellLimitedGrad scheme. The important function is the limitFace function which is given by: Code:
template<> inline void VKcellLimitedGrad<scalar>::limitFace ( scalar& limiter, const scalar& maxDelta, const scalar& minDelta, const scalar& extrapolate, const scalar& epsSqr ) { const scalar& deltaNeg = extrapolate; scalar deltaPos(0); if (extrapolate > SMALL) { deltaPos = maxDelta; } else if (extrapolate < -SMALL) { deltaPos = minDelta; } scalar deltaPosSqr(sqr(deltaPos)), deltaNegSqr(sqr(deltaNeg)), deltaPosNeg(deltaPos*deltaNeg); scalar limiter0 = ( deltaPosSqr + epsSqr + 2*deltaPosNeg )/ ( deltaPosSqr + 2*deltaNegSqr + deltaPosNeg + epsSqr ); limiter = min(limiter, min(limiter0, 1)); } I have simplified the expression by dividing the numerator by . I don't think this is critical. Please correct me if I am wrong though. In the main function calcGrad, the important piece of code that is different from the calcGrad function in cellLimitedGrad scheme is coloured red: Code:
// create limiter scalarField limiter(vsf.internalField().size(), 1.0); const surfaceScalarField& deltaCoeffs = mesh.surfaceInterpolation::deltaCoeffs(); forAll(owner, facei) { label own = owner[facei]; label nei = neighbour[facei]; // eps^2 = (K*dx)^3 scalar epsSqr = pow3(K_/deltaCoeffs[facei]); // owner side limitFace ( limiter[own], maxVsf[own], minVsf[own], (Cf[facei] - C[own]) & g[own], epsSqr ); // neighbour side limitFace ( limiter[nei], maxVsf[nei], minVsf[nei], (Cf[facei] - C[nei]) & g[nei], epsSqr ); } USV |
|
December 25, 2018, 18:04 |
|
#3 |
Senior Member
Join Date: Oct 2011
Posts: 242
Rep Power: 17 |
I am not an open foam user, what is behind fixed value boundary condition? Is it a dirichlet bc? Do you prescribe everything at the bc? If so I would rather use a characteristic bc such as a Farfield bc based on Rankine Hugoniot relations or acoustic relations. Given the trials you have already done, a wrong bc set up could explain convergence issues. Dirichlet bc can yield wave reflections, not easily smoothed out using 2nd order reconstruction while characteristic based bc help a lot in allowing pressure waves to exit the domain
As far as asymmetry is concerned, if your solution is converged, it may be caused by the wall bc which generates too much entropy. Do the paper about slau mention if they use a specific bc such as curvature corrected wall bc? |
|
January 1, 2019, 07:53 |
|
#4 | |
Senior Member
Join Date: Sep 2015
Location: Singapore
Posts: 102
Rep Power: 11 |
Hello naffrancois,
You're right. fixedValue prescribes everything at the boundary. I modified it to waveTransmissive which should allow the acoustic waves to leave the domain but it didn't have any effect on the asymmetry. Since the farfield is quite some distance away from the cylinder, I don't think that it is the main thing. On the other hand, you're quite right about the too much entropy being generated near the wall. I was using a simple symmetry technique (ST) at the wall. I went through the papers on curvature corrected symmetry technique (CCST). I was able to get symmetric results for a M=0.3 flow over a cylinder with Venkatakrishnan limiter (using 1st order upwind scheme, generated the asymmetry). For this case, it was crucial for the farfield BC to be waveTransmissive for good convergence. I compared ST and CCST. It turns out that the differences were quite subtle but CCST was more accurate. Thanks for bringing that to my attention! I've attached am image of the results. By the way, I checked the paper on SLAU and it says the following: Quote:
In summary,
So, the main problem now is that the solver is not able to handle very low Mach numbers but it performs fine at the higher subsonic values. Does anyone has any thoughts on this? Many thanks, USV |
||
September 10, 2019, 06:11 |
|
#5 |
New Member
Join Date: Nov 2018
Posts: 1
Rep Power: 0 |
Hi USV,
Which low Mach preconditioner are you using (if any)? Have you been able to progress further? |
|
September 19, 2019, 08:19 |
|
#6 |
Senior Member
Ashwani
Join Date: Sep 2013
Location: Hyderabad
Posts: 154
Rep Power: 13 |
Does it run for case M=0.1, 0.2. SLAU may have some issues at low Mach number. But 0.1 seems fine.
When you run second order scheme. Did you get symmetric solution, even though your simulation might have not converged? Also, what do you mean by asymmetry? Have you tried to match with Cp or something at the wall. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Doubt in the Venkatakrishnan limiter. | EMolina | SU2 | 2 | January 23, 2016 11:19 |
OpenFOAM v3.0.1 Training, London, Houston, Berlin, Jan-Mar 2016 | cfd.direct | OpenFOAM Announcements from Other Sources | 0 | January 5, 2016 04:18 |
Venkatakrishnan limiter | kei-tee | Main CFD Forum | 1 | November 6, 2012 02:02 |
64bitrhel5 OF installation instructions | mirko | OpenFOAM Installation | 2 | August 12, 2008 19:07 |
Venkatakrishnan limiter | emca | Main CFD Forum | 0 | November 9, 2007 16:34 |