|
[Sponsors] |
All Mach number implicit solver with Kurganov-Tadmore scheme - pisoCentralFoam |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
November 15, 2015, 12:38 |
|
#81 | |
Senior Member
Matvey Kraposhin
Join Date: Mar 2009
Location: Moscow, Russian Federation
Posts: 355
Rep Power: 21 |
Quote:
This means, that for continuity equation, formulated with explicit scheme, both of two versions are equals mathematically and numerically: div(phi) = div(phiPos + phiNeg) = div(phiPos) + div(phiNeg)
__________________
MDPI Fluids (Q2) special issue for OSS software: https://www.mdpi.com/journal/fluids/..._modelling_OSS GitHub: https://github.com/unicfdlab Linkedin: https://linkedin.com/in/matvey-kraposhin-413869163 RG: https://www.researchgate.net/profile/Matvey_Kraposhin Last edited by mkraposhin; November 16, 2015 at 08:17. Reason: grammar |
||
November 16, 2015, 07:40 |
|
#82 |
Senior Member
Join Date: Oct 2013
Posts: 397
Rep Power: 19 |
Thanks, that makes sense. I need to read up on the Kurganov-Tadmor schemes when I find some time.
|
|
December 15, 2015, 12:55 |
|
#83 |
New Member
Lewis
Join Date: Dec 2015
Posts: 14
Rep Power: 11 |
Hi Matvey
I'm Lewis, a student from the UK studying Aerospace Engineering. For my Final Year Project, I have been allocated "Development of an OpenFOAM code for Aerospace Engineering". I have run some tutorial cases and got to grips with OpenFOAM and ParaView, using Ubuntu and the terminal window. As your code is a newer hybrid solver, with scope for expansion, I am very interested in using your published code as a foundation. Therefore I will adapt it to my own need, the beauty of OpenFOAM. I see you've already run cases using a cylinder, which is ideal for me, as my plan with your code is to run it with a cylinder within the geometry. And progress this shape into an aerofoil, for greater use in the Aviation Industry. What are your opinions on use of your code to adapt and create this application? As I would like to be able to run the simulations at a sub-sonic velocity, and then supersonic. Many thanks in advance |
|
December 16, 2015, 05:47 |
|
#84 |
Senior Member
Matvey Kraposhin
Join Date: Mar 2009
Location: Moscow, Russian Federation
Posts: 355
Rep Power: 21 |
Hi, Lewis
I'm not sure that i undestand your question correctly. Because you are talking about Code:
Development of an OpenFOAM code for Aerospace Engineering or Code:
I am very interested in using your published code as a foundation As for simulation of external flow over bodies, i can tell you that this solver was test for simple and complex geomtries for Mach humbers from 0.01 to 6 by me and my colleagues. So, if you need to use it only for gas dynamics, then you don't need to change it. In this case, we need to create a separate thread on forum in "Solving" section for questions about setup of numerical case. And if you are talking about extending this solver, we can proceed here, but you must supply more information on your physical problem
__________________
MDPI Fluids (Q2) special issue for OSS software: https://www.mdpi.com/journal/fluids/..._modelling_OSS GitHub: https://github.com/unicfdlab Linkedin: https://linkedin.com/in/matvey-kraposhin-413869163 RG: https://www.researchgate.net/profile/Matvey_Kraposhin |
|
December 16, 2015, 12:09 |
|
#85 |
New Member
Lewis
Join Date: Dec 2015
Posts: 14
Rep Power: 11 |
Hi Matvey
My question is, do you think there is an opportunity for me to use this for airflow over an aerofoil, at transonic speeds? Will it converge? I suppose you have already answered that question, when you said you and your colleagues used it with simple and complex geometries. I'd like to use this solver, just have to edit some of the code to show I know what I'm doing, and why I did it. Thanks Lewis |
|
December 16, 2015, 15:51 |
|
#86 | |
Senior Member
Matvey Kraposhin
Join Date: Mar 2009
Location: Moscow, Russian Federation
Posts: 355
Rep Power: 21 |
Quote:
Hi, i think, yes, it will converge. We have plans to make it LTS, but not for this year. Also, we make publication YSC 2015 procedia, so you can download pdf from here PisoCentralFoam at researchgate or from elsevier doi:10.1016/j.procs.2015.11.007 Also, we made application of this scheme for multicomponent reacting flow It will be nice if you will help us during your work to investigate range of application of this scheme (solver)
__________________
MDPI Fluids (Q2) special issue for OSS software: https://www.mdpi.com/journal/fluids/..._modelling_OSS GitHub: https://github.com/unicfdlab Linkedin: https://linkedin.com/in/matvey-kraposhin-413869163 RG: https://www.researchgate.net/profile/Matvey_Kraposhin |
||
December 18, 2015, 07:15 |
|
#87 |
Senior Member
Matvey Kraposhin
Join Date: Mar 2009
Location: Moscow, Russian Federation
Posts: 355
Rep Power: 21 |
Dear colleagues!
We made update of pisoCentralFoam solver for OpenFOAM 3.0.0. In new version LTS time scheme is included and pisoCentralFoam can be used for steady state simulations
__________________
MDPI Fluids (Q2) special issue for OSS software: https://www.mdpi.com/journal/fluids/..._modelling_OSS GitHub: https://github.com/unicfdlab Linkedin: https://linkedin.com/in/matvey-kraposhin-413869163 RG: https://www.researchgate.net/profile/Matvey_Kraposhin |
|
January 14, 2016, 05:17 |
|
#88 |
New Member
sethu
Join Date: Oct 2011
Posts: 7
Rep Power: 15 |
Dear Matvey Kraposhin,
Thank you very much for your pisoCentralFoam LTS version. Im wondering whether I can use your solver for application like steady state simulation of NASA rotor 37 is an isolated transonic axial compressor rotor where i need to account for rotational effect either in SRF or MRF (for rotor+stator). Please give me your comments on this. I had modified rhoSimpleFoam as rhoSRFSimpleFoam for a single rotor case. But, when i executed the solver im getting error as follows, [Maximum number of iterations exceeded From function thermo<Thermo, Type>::T(scalar f, scalar T0, scalar (thermo<Thermo, Type>::*F)(const scalar) const, scalar (thermo<Thermo, Type>::*dFdT)(const scalar) const, scalar (thermo<Thermo, Type>::*limit)(const scalar) const) const in file /home/nrcs-cae/OpenFOAM/OpenFOAM-2.3.x/src/thermophysicalModels/specie/lnInclude/thermoI.H at line 76. FOAM aborting #0 Foam::error:rintStack(Foam::Ostream&) at ??:? #1 Foam::error::abort() at ??:? #2 Foam::species::thermo<Foam::hConstThermo<Foam:er fectGas<Foam::specie> >, Foam::sensibleInternalEnergy>::TEs(double, double, double) const at ??:? #3 Foam::hePsiThermo<Foam:siThermo, Foam:ureMixture<Foam::constTransport<Foam::speci es::thermo<Foam::hConstThermo<Foam:erfectGas<Foa m::specie> >, Foam::sensibleInternalEnergy> > > >::calculate() at ??:? #4 Foam::hePsiThermo<Foam:siThermo, Foam:ureMixture<Foam::constTransport<Foam::speci es::thermo<Foam::hConstThermo<Foam:erfectGas<Foa m::specie> >, Foam::sensibleInternalEnergy> > > >::correct() at ??:? #5 at ??:? #6 __libc_start_main in "/lib/i386-linux-gnu/libc.so.6" #7 at ??:? Aborted (core dumped) Any advice on selecting solvers for my steady state (SRF,MRF) turbo machinery compressible cases? Regards, Sethu |
|
January 14, 2016, 11:44 |
|
#89 |
Senior Member
Matvey Kraposhin
Join Date: Mar 2009
Location: Moscow, Russian Federation
Posts: 355
Rep Power: 21 |
Hi, Sethu
I added MRF capabilities to pisoCentralFoam, you can download new solver and tutorials from github. As for rhoSRFSimpleFoam, you must create new thread, because this thread dedicated to pisoCentralFoam
__________________
MDPI Fluids (Q2) special issue for OSS software: https://www.mdpi.com/journal/fluids/..._modelling_OSS GitHub: https://github.com/unicfdlab Linkedin: https://linkedin.com/in/matvey-kraposhin-413869163 RG: https://www.researchgate.net/profile/Matvey_Kraposhin |
|
March 29, 2016, 20:30 |
Species diffusion in reactingCentralFoam
|
#90 |
New Member
Bryan Schmidt
Join Date: Sep 2013
Posts: 18
Rep Power: 13 |
Dear Dr. Kraposhin,
I have been using reactingCentralFoam to compute a nonreacting supersonic flow with foreign gas injection in a boundary layer. The mixtures are binary, but the foreign gas often has a molecular weight that is quite different from that of the free stream gas (nitrogen). I have a question about how species diffusion is handled. It seems to me that a unity Schmidt number assumption is made using the mixture-averaged viscosity, such that all species effectively have the same diffusivity. Am I correct in this understanding? I also see that the equations invoke Fick's Law for diffusion, except I don't see a correction velocity as is typically done when mass fractions are implemented as opposed to mole fractions in Fick's Law. If I'm correct, do you have a sense of what the errors are associated with this both in the species transport and energy equations? Thanks. |
|
April 6, 2016, 13:16 |
|
#91 | |
New Member
Lewis
Join Date: Dec 2015
Posts: 14
Rep Power: 11 |
Hi Matvey
I'm struggling to understand this error, all I have done is simply created a new geometry (a double-wedge aerofoil) in GMSH and meshed it. And then substituted this in for the cylinder geometry. I've changed a few properties too, like rho = 1.225 and velocity to simulate conditions at Sea Level. And upon running the command I get a printstack error: Quote:
Can you, or anyone else, please advise? Many thanks |
||
April 7, 2016, 05:41 |
|
#92 |
Senior Member
Join Date: Oct 2013
Posts: 397
Rep Power: 19 |
I suggest trying another linear equation solver. Matvey (or someone else from his group) has ported the BiCGStab solver which is more stable and crashes less often. Check out the gits, it's in one of them.
|
|
April 10, 2016, 07:14 |
|
#93 | |
New Member
Lewis
Join Date: Dec 2015
Posts: 14
Rep Power: 11 |
Quote:
It has been edited ever so slightly and is now running without crashing, but the flow is wrong. It's an MH45 aerofoil at an angle of attack of 10 degrees. But when running it, the lower velocity just seems to grow out from the aerofoil. Has anyone seen this before? Can anyone advise? Am I missing files or something? Picture attached EDIT: Problem solving files, the time step is very small and thus the end time is small, this is probably the reason for the simulation? Because the simulation is correct in respective to such a small time step? Am I right in thinking so? I've changed it and have it running but obviously it's a long compute time, even with a higher time step. Just thinking as the difference between the scale is very small, and looking at solvers like simpleFoam aerofoil case, if converted to a small time step, it shows a similar picture. Last edited by levvis; April 10, 2016 at 11:48. |
||
May 30, 2016, 15:57 |
|
#94 |
New Member
Jim
Join Date: Feb 2014
Location: UK
Posts: 22
Rep Power: 12 |
Hi Matvey,
I saw from an earlier post that pisoCentralFoam is not bound to the acoustic Courant number, but rather the flow Courant number. Does this mean that this solver is unsuitable for cases where you are interested in acoustic waves? Thanks, James |
|
June 3, 2016, 12:03 |
|
#95 |
Senior Member
Matvey Kraposhin
Join Date: Mar 2009
Location: Moscow, Russian Federation
Posts: 355
Rep Power: 21 |
Hi,
We tested this solver for several simple cases (monopole and diploe). It was found, that it can be used to reproduce acoustic waves if you will preserve next conditions: 1) Acoustics courant < 1 (Or better < 0.1) 2) Mesh resolution is > 20 cells per resolved wave
__________________
MDPI Fluids (Q2) special issue for OSS software: https://www.mdpi.com/journal/fluids/..._modelling_OSS GitHub: https://github.com/unicfdlab Linkedin: https://linkedin.com/in/matvey-kraposhin-413869163 RG: https://www.researchgate.net/profile/Matvey_Kraposhin |
|
June 21, 2016, 06:34 |
|
#96 |
New Member
|
Hi mkraposhin,
Have you tried this solver for cavitating flows? |
|
July 8, 2016, 17:48 |
|
#97 |
New Member
Eduardo Alvarez
Join Date: Dec 2015
Posts: 3
Rep Power: 11 |
Hi Mkraposhin,
I'm modeling a shock tube with multiple sections of different gases. I've been an OpenFOAM front-end user for a while, but I have never done anything complicated like mixing two solvers. I'm using your solver to model the shock with turbulent boundary layers along the shock tube, and is working very well, but now I need to add the different immiscible stages of gases. How should I go about doing so? Is there a specific solver (compressibleMultiphaseInterFoam, for example) you would recommend mixing into your solver? Thanks for your help, and great job in developing pisoCentralFoam! |
|
February 26, 2022, 17:41 |
|
#98 |
New Member
Pete
Join Date: Feb 2016
Posts: 8
Rep Power: 10 |
Matvey - I have been testing your reactingPimpleCentralFoam solver (OF4 version) for the purpose of modeling Rotating Detonation Engines. Doing some simple non-reacting simulations of hydrogen injected into air at subsonic Ma# (0.7ish) shows tremendous numerical diffusion compared to rhoReactingFoam. I'm using the standardMachToAcCourantRatio Kappa function and maxkappa is pretty much 1.0 everywhere and minKappa is around 0.5. If I force Kappa to 0 (in the code), the jets look very much like rhoReactingFoam, so it appears to be the central fluxes causing the diffusion. I was wondering why use Ma/CFL as the kappa function as opposed to just Ma?
Thanks for posting your code, it looks like a significant contribution to the community! Pete |
|
February 27, 2022, 11:40 |
|
#99 |
Senior Member
Matvey Kraposhin
Join Date: Mar 2009
Location: Moscow, Russian Federation
Posts: 355
Rep Power: 21 |
Hi, strakey!
Numerical diffusion in hybrid KNP/PIMPLE solvers arises due to next approximation techniques:
Therefore, you can reduce numerical diffusion by tuning OpenFOAM settings in next way:
Regarding your question about blending function kappa. I've tried several different ways - Ma/CCo, 1/CCo and others and found that Ma/CCo serves better for correct simulation. Considerations are simple: when Ma < 1, but CCo is also < 1 (actually it must be equal to Ma), then KNP scheme must be recovered, because it works well for subsonic flows with acoustic waves propagation. However, when M < 1, while CCo > 1, the standard PIMPLE method must be used. Finally, when M > 1, then regardless of CCo, the KNP method should work. It would be cool if you find the way to improve this blending and share it with the community. And just two final notes: 1) I strongly recommend to use latest versions . Since I don't have too much to support all OpenFOAM branches, I fix bugs only in the latest one. 2) I've published another solver for highspeed multicomponent flows (reactingLagrangianQGDFoam: https://github.com/unicfdlab/QGDsolv...m/gasDiffusion), which can be very good for freestream simulations with shocks and shears. Look at the next comparison of solvers for overexpanded jet. rhoCentralFoam: RCF-centerline_ds.png pimpleCentralFoam (but with Euler ddt scheme): PCF-centerline_ds.png QGDFoam QGD-centerline_ds.png Lines with different colores on these figures correspond to different mesh resolutions. rhoCentralFoam implements KNP scheme, which is from the Gold fund of numerical algorithms. pimpleCentralFoam empirically was found to be more robust for complex 3D geometries. And QGDFoam is superior in resolving complex flows. but in relatively simple geometries.
__________________
MDPI Fluids (Q2) special issue for OSS software: https://www.mdpi.com/journal/fluids/..._modelling_OSS GitHub: https://github.com/unicfdlab Linkedin: https://linkedin.com/in/matvey-kraposhin-413869163 RG: https://www.researchgate.net/profile/Matvey_Kraposhin Last edited by mkraposhin; February 28, 2022 at 10:14. |
|
February 28, 2022, 13:17 |
|
#100 |
New Member
Pete
Join Date: Feb 2016
Posts: 8
Rep Power: 10 |
Matvey - Thanks for the reply. I think I understand this better now. I downloaded the OF6 version and compiled it for OF7 with some minor changes. I also downloaded the Yeqn.H and heqn.H from the 2112 branch and this also compiled fine under OF7. The MULES modifications you made here did have a big impact on diffusion of temperature. I also have it outputting the hLambdaCoeff as a volScalarField with an fvc::average() procedure and the coefficients are near 1 now as expected. I still, however see too much diffusion in the species, much more than energy. From the Yeqn.H code, it looks like all species equations are being modified by the same set of lambdaCoeffs, which are 0 regardless of what I set my inertSpecies to. I'm not sure how a slicedSurfaceScalarField works though. I'm going to insert some more output fields to see what exactly is being computed for lambdaCoeffs for each of the species (4 in my case) but it seems as though lambdaCoeffs should be different for each species field?
Update: It looks like the lambdaCoeffs (allFacesLambda) being used to modify the transport equations in Yeqn.H is that for the last species in the loop calling the MULES limiter, Code:
forAll(Y, iCmpt) { volScalarField& Yi = Y[iCmpt]; if ( Yi.name() != inertSpecie ) { Info << "Limiting for: " << Yi.name() << endl; surfaceScalarField& rhoPhiYCorr = phiY[iCmpt]; mulesWithDiffusionImplicitLimiter ( rho, Yi, phi_own, phi_nei, allFacesLambda, rhoPhiYCorr, diffusiveFlux[iCmpt], mDCf[iCmpt], SuSp[iCmpt] ); if (Yi.name() == "CH4") //pete 2-28-2022 { lambdavolH2O=fvc::average(lambdaCoeffs); } } } For my case, the lambdaCoeff for the last species is 0 everywhere, so 0 is being used for all of the species fields everywhere. I think hLambdaCoeff is just left at its initial value (1.0). I also tried backward, vanLeer and other things to minimize diffusion but these all have a small effect. Lastly, I don't know if you have seen this work (https://www.appliedccm.com/wp-conten...M-2019-DWS.pdf), but this seems similar to what you are doing here with your hybrid solver. Thanks Pete Last edited by strakey; February 28, 2022 at 14:25. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
DPMFoam - Serious Error --particle-laden flow in simple geometric config | benz25 | OpenFOAM Running, Solving & CFD | 27 | December 19, 2017 21:47 |
foam-extend_3.1 decompose and pyfoam warning | shipman | OpenFOAM | 3 | July 24, 2014 09:14 |
Solver is finishing with huge Mach number | Fonzie | CFX | 1 | March 12, 2007 15:15 |
High Mach number solver error | Luke | CFX | 3 | January 31, 2007 23:26 |
TVD scheme at low Mach number | Axel Rohde | Main CFD Forum | 5 | August 6, 1999 03:01 |