CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (http://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Pressure Driven Supersonic Flow in Converging-Diverging Nozzle (http://www.cfd-online.com/Forums/openfoam-solving/118803-pressure-driven-supersonic-flow-converging-diverging-nozzle.html)

cdm June 4, 2013 15:12

Pressure Driven Supersonic Flow in Converging-Diverging Nozzle
 
After extensively reading through the forums and running a number of test cases, I still can't find suitable boundary conditions for my geometry. Hopefully someone here will have had previous experience and may be able to provide some input.

I'm trying to simulate a supersonic converging-diverging nozzle for comparison to experimental results. The known conditions are: stagnation p and T at inlet of 300kPa and 1200K, wall temp roughly 600K, Mach number of 2.03 at outlet, and based on a gas dynamics analytical calculation for design conditions, the outlet static pressure should be roughly 37kPa (isentropic).

I've tried a number of boundary conditions as below, implemented in OF 2.1.1, and using rhoCentralFoam with kOmegaSST. For all cases, the temperature was defined as follows:

Code:

    INLET
    {
        type            totalTemperature;
        gamma          1.34;
        T0              uniform 1200;
        value          uniform 1200;
    }
    OUTLET
    {
        type            zeroGradient;
    }
    WALL
    {
        type            fixedValue;
        value          uniform 600;
    }

Case 1:
This case has been the most promising; however, the flow settles with an outlet static pressure around 31 to 36kPa, below the expected 37kPa. Maybe this is an effect of a turbulent boundary layer or something else? Further reducing lInf to 0.001 causes the simulation to crash with a high pressure gradient near the outlet.

Pressure, P
Code:

    INLET
    {
        type            totalPressure;
        p0              uniform 300000;
        U              U;
        phi            phi;
        rho            rho;
        psi            none;
        gamma          1.34;
        value          uniform 300000;
    }
    OUTLET
    {
        type            waveTransmissive;
        value          uniform 37000;
        field          p;
        gamma          1.34;
        phi            phi;
        rho            rho;
        psi            psi;
        lInf            0.1;
        fieldInf        37000;
    }
    WALL
    {
        type            zeroGradient;
    }

Velocity, U
Code:

    INLET
    {
        type            zeroGradient;
    }
    OUTLET
    {
        type            zeroGradient;
    }
    WALL
    {
        type            fixedValue;
        value          uniform (0 0 0);
    }

Case 2:
This case implemented the desired static pressure at the outlet of 37kPa. The velocity was defined as in Case 1. The solution crashes after a few thousand iterations with a large pressure gradient at the outlet (similar to the small lInf in Case 1).

Pressure, P
Code:

    INLET
    {
        type            totalPressure;
        p0              uniform 300000;
        U              U;
        phi            phi;
        rho            rho;
        psi            none;
        gamma          1.34;
        value          uniform 300000;
    }
    OUTLET
    {
        type            fixedValue;
        value          uniform 37000;
    }
    WALL
    {
        type            zeroGradient;
    }

Case 3:
This case is the same as Case 2, except for a fluxCorrectedVelocity boundary implemented at the outlet. Again, there is a large pressure gradient (even larger this time) at the exit.

Velocity, U
Code:

    OUTLET
    {
        type            fluxCorrectedVelocity;
        phi            phi;
        rho            rho;
    }

Case 4:
This case implements the fluxCorrectedVelocity outlet velocity boundary condition (as in Case 3) with a waveTransmissive outlet pressure boundary condition (similar to Case 1, but lInf = 0.01). The simulation does not crash, but the pressure is far too high (between roughly 200 and 400 kPa) and fluctuates wildly with no apparent trend to settle.


Conclusions:
Does anyone have any suggestions for further boundary conditions that I could explore? Or any comments on the above cases? Case 1 is the only usable result so far, but I'm not confident that waveTransmissive is beneficial in this case since I don't have any shocks in the developed flow and I want the flow to relax to a given static pressure at the outlet, not artificially at a distance from the outlet. But when I specify the desired static pressure, a pressure gradient develops at the outlet and crashes the simulation.

Thanks for reading, and I appreciate any help.

Henning86 June 5, 2013 08:00

nozzle
 
im using this BC:

pressureInletOutletVelocity for U

are you just simulating the nozzle without a wake?

cdm June 5, 2013 12:49

I tried using that boundary condition on the outlet, but it didn't help when specifying a static pressure. What pressure BC do you use with it?

There are no shocks in my system, and I'm not concerned with the wake. What I'm trying to investigate is temperature distribution in a constant area downstream of the throat.

jaason July 19, 2013 10:32

I'm working on a similar problem supersonic flow in a MicroNozzle.

for your temperature field have you tried using totalTemperature BC for the inlet with inletOutletTotalTemperature at the exit? might be something to look into. Though it might be difficult to use when the walls are not adiabatic.

Also for the velocity I had better luck with pressureDirectedInletOutletVelocity and pressureNormalInletOutletVelocity (just be aware of patch orientation for the latter)

for pressure I am using totalPressure and waveTransmissive.

Also what is the exact function of Linf. Does it weight the impact of the farfields effect on the BC? where larger would Linf decrease the effect of the farfield on the BC?

cheers

cdm July 21, 2013 16:24

jaason, thanks for your input. I'll have a look at your suggested boundary conditions. Right now I've been using (inlet / outlet, respectively) totalPressure / waveTransmissive for Pressure, totalTemperature / zeroGradient for Temperature, and zeroGradient / inletOutlet (with inletValue uniform (0 0 0) for the outlet).

I believe what you say is roughly how lInf is expected to work. It relaxes the BC pressure such that it would realise a farfield pressure pInf at a distance lInf from the BC patch. If lInf = 0 it would essentially be forcing a fixedValue. However, for large lInf, I think I read that sometimes there is trouble with convergence and having large oscillations in the outlet pressure. So far it appears to work fine for my supersonic flow nozzle with over-expanded conditions.


All times are GMT -4. The time now is 17:29.