CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM (http://www.cfd-online.com/Forums/openfoam/)
-   -   How to find separation point over airfoil (http://www.cfd-online.com/Forums/openfoam/115981-how-find-separation-point-over-airfoil.html)

oscarli April 10, 2013 10:36

How to find separation point over airfoil
 
5 Attachment(s)
Dear all,

I'm relatively new to OpenFOAM and as a part of my MSc-thesis I am trying to simulate flow field over a naca arifoil in OpenFOAM.

Now I'm having trouble to find where is the flow separation point in my simulation. I'm working with a 2D geometry.
I have got some useful information here and done some work: I modified the simpleFoam solver in OpenFOAM to get the velocity gradient or pressure gradient, but I can not figure out where is my mistake to get the good result.

This is what I have modified from simpleFoam solver(in red color) and I have compiled the modified solver after the change.
createFields.H
Quote:

Info<< "Reading field p\n" << endl;
volScalarField p
(
IOobject
(
"p",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);

Info<< "Reading field U\n" << endl;
volVectorField U
(
IOobject
(
"U",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);

Info<< "Reading field GradU\n" << endl;
volTensorField GradU
(
IOobject
(
"GradU",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fvc::grad(U) //mesh
);

// Info<< "Reading field Gradp\n" << endl;
// volVectorField Gradp
// (
// IOobject
// (
// "Gradp",
// runTime.timeName(),
// mesh,
// IOobject::NO_READ,
// IOobject::AUTO_WRITE
// ),
// fvc::grad(p) //mesh
// );

#include "createPhi.H"


label pRefCell = 0;
scalar pRefValue = 0.0;
setRefCell(p, mesh.solutionDict().subDict("SIMPLE"), pRefCell, pRefValue);

singlePhaseTransportModel laminarTransport(U, phi);

autoPtr<incompressible::RASModel> turbulence
(
incompressible::RASModel::New(U, phi, laminarTransport)
);

IObasicSourceList sources(mesh);
Here is the detail: naca0015 airfoil, simpleFoam solver , kOmegaSST model
0 folder:

U
Quote:

/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.1.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 1 -1 0 0 0 0];

internalField uniform (0.9848 0.1736 0);

boundaryField
{
inlet
{
type fixedValue;
value $internalField;
}

outlet
{
type inletOutlet;
inletValue uniform (0 0 0);
value $internalField;
}

"airfoil.*"
{
type fixedValue;
value uniform (0 0 0);
}

defaultFaces
{
type empty;
}
}

//
p
Quote:

FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 2 -2 0 0 0 0];

internalField uniform 0;

boundaryField
{
inlet
{
type zeroGradient;
}

outlet
{
type fixedValue;
value uniform 0;
}

"airfoil.*"
{
type zeroGradient;
}

defaultFaces
{
type empty;
}
}

// ************************************************** *********************** //
omega
Quote:

FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object omega;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 0 -1 0 0 0 0];

internalField uniform 9.8;

boundaryField
{
inlet
{
type fixedValue;
value uniform 9.8;
}
outlet
{
type inletOutlet;
inletValue uniform 9.8;
value uniform 9.8;
}
airfoil
{
type omegaWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
beta1 0.075;
value uniform 9.8;
}
defaultFaces
{
type empty;
}
}


// ************************************************** *********************** //
nut
Quote:

FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 2 -1 0 0 0 0];

internalField uniform 0;

boundaryField
{
inlet
{
type calculated;
value uniform 0;
}
outlet
{
type calculated;
value uniform 0;
}
airfoil
{
type nutkWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0;
}
defaultFaces
{
type empty;
}
}


// ************************************************** *********************** //
k
Quote:

FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 2 -2 0 0 0 0];

internalField uniform 0.00375;

boundaryField
{
inlet
{
type fixedValue;
value uniform 0.00375;
}
outlet
{
type inletOutlet;
inletValue uniform 0.00375;
value uniform 0.00375;
}
airfoil
{
type kqRWallFunction;
value uniform 0.00375;
}
defaultFaces
{
type empty;
}
}
// ************************************************** *********************** //
blockMeshDict
Quote:

/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.1.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 1.00;


vertices
(
( -4.700000 0.0000 0.00 ) //Pt 0
( -2.342151 -4.2449 0.00 ) //Pt 1
( 5.055282 -1.5451 0.00 ) //Pt 2
( 5.055282 1.5451 0.00 ) //Pt 3
( -2.342151 4.2449 0.00 ) //Pt 4
( 0.300000 0.0750 0.00 ) //Pt 5
( 0.000000 0.0000 0.00 ) //Pt 6
( 0.300000 -0.0750 0.00 ) //Pt 7
( 0.900000 -0.0181 0.00 ) //Pt 8
( 0.900000 0.0181 0.00 ) //Pt 9
( -4.700000 0.0000 0.10 ) //Pt 10
( -2.342151 -4.2449 0.10 ) //Pt 11
( 5.055282 -1.5451 0.10 ) //Pt 12
( 5.055282 1.5451 0.10 ) //Pt 13
( -2.342151 4.2449 0.10 ) //Pt 14
( 0.300000 0.0750 0.10 ) //Pt 15
( 0.000000 0.0000 0.10 ) //Pt 16
( 0.300000 -0.0750 0.10 ) //Pt 17
( 0.900000 -0.0181 0.10 ) //Pt 18
( 0.900000 0.0181 0.10 ) //Pt 19
);

blocks
(
hex ( 0 1 7 6 10 11 17 16) ( 26 50 1) simpleGrading ( 10.0000 0.0010 1)
hex ( 1 2 8 7 11 12 18 17) ( 49 50 1) simpleGrading ( 0.1000 0.0010 1)
hex ( 2 3 9 8 12 13 19 18) ( 80 50 1) simpleGrading ( 1.0000 0.0010 1)
hex ( 3 4 5 9 13 14 15 19) ( 49 50 1) simpleGrading ( 10.0000 0.0010 1)
hex ( 4 0 6 5 14 10 16 15) ( 26 50 1) simpleGrading ( 0.1000 0.0010 1)
);

edges
(
polyLine 6 7 (
( 0.0125 -0.0237 0.0000 )
( 0.0250 -0.0327 0.0000 )
( 0.0500 -0.0444 0.0000 )
( 0.0750 -0.0525 0.0000 )
( 0.1000 -0.0585 0.0000 )
( 0.1500 -0.0668 0.0000 )
( 0.2000 -0.0717 0.0000 )
( 0.2500 -0.0743 0.0000 )
)
polyLine 16 17 (
( 0.0125 -0.0237 0.1000 )
( 0.0250 -0.0327 0.1000 )
( 0.0500 -0.0444 0.1000 )
( 0.0750 -0.0525 0.1000 )
( 0.1000 -0.0585 0.1000 )
( 0.1500 -0.0668 0.1000 )
( 0.2000 -0.0717 0.1000 )
( 0.2500 -0.0743 0.1000 )
)
polyLine 7 8 (
( 0.4000 -0.0725 0.0000 )
( 0.5000 -0.0662 0.0000 )
( 0.6000 -0.0570 0.0000 )
( 0.7000 -0.0458 0.0000 )
( 0.8000 -0.0328 0.0000 )
)
polyLine 17 18 (
( 0.4000 -0.0725 0.1000 )
( 0.5000 -0.0662 0.1000 )
( 0.6000 -0.0570 0.1000 )
( 0.7000 -0.0458 0.1000 )
( 0.8000 -0.0328 0.1000 )
)
polyLine 9 8 (
( 1.0000 0.0016 0.0000 )
) // trailing edge
polyLine 19 18 (
( 1.0000 -0.0016 0.1000 )
) // trailing edge
polyLine 9 5 (
( 0.8000 0.0328 0.0000 )
( 0.7000 0.0458 0.0000 )
( 0.6000 0.0570 0.0000 )
( 0.5000 0.0662 0.0000 )
( 0.4000 0.0725 0.0000 )
)
polyLine 19 15 (
( 0.8000 0.0328 0.1000 )
( 0.7000 0.0458 0.1000 )
( 0.6000 0.0570 0.1000 )
( 0.5000 0.0662 0.1000 )
( 0.4000 0.0725 0.1000 )
)
polyLine 5 6 (
( 0.2500 0.0743 0.0000 )
( 0.2000 0.0717 0.0000 )
( 0.1500 0.0668 0.0000 )
( 0.1000 0.0585 0.0000 )
( 0.0750 0.0525 0.0000 )
( 0.0500 0.0444 0.0000 )
( 0.0250 0.0327 0.0000 )
( 0.0125 0.0237 0.0000 )
)
polyLine 15 16 (
( 0.2500 0.0743 0.1000 )
( 0.2000 0.0717 0.1000 )
( 0.1500 0.0668 0.1000 )
( 0.1000 0.0585 0.1000 )
( 0.0750 0.0525 0.1000 )
( 0.0500 0.0444 0.1000 )
( 0.0250 0.0327 0.1000 )
( 0.0125 0.0237 0.1000 )
)
arc 0 1 (-4.070970 -2.427885 0.000000 )
arc 10 11 (-4.070970 -2.427885 0.100000 )
arc 1 2 ( 0.300000 -5.000000 0.000000 )
arc 11 12 ( 0.300000 -5.000000 0.100000 )
arc 2 3 ( 5.300000 0.000000 0.000000 )
arc 12 13 ( 5.300000 0.000000 0.100000 )
arc 3 4 ( 0.300000 5.000000 0.000000 )
arc 13 14 ( 0.300000 5.000000 0.100000 )
arc 4 0 (-4.070970 2.427885 0.000000 )
arc 14 10 (-4.070970 2.427885 0.100000 )
polyLine 4 5 (
( 0.3000 0.3875 0.0000 )
)
polyLine 14 15 (
( 0.3000 0.3875 0.1000 )
)
polyLine 1 7 (
( 0.3000 -0.3875 0.0000 )
)
polyLine 11 17 (
( 0.3000 -0.3875 0.1000 )
)
polyLine 9 3 (
( 0.9614 0.1473 0.0000 )
) // trailing edge
polyLine 19 13 (
( 0.9614 0.1473 0.1000 )
) // trailing edge
polyLine 8 2 (
( 0.9614 -0.1473 0.0000 )
) // trailing edge
polyLine 18 12 (
( 0.9614 -0.1473 0.1000 )
) // trailing edge
);

patches
(
patch inlet
(
( 4 14 10 0 )
( 0 10 11 1 )
)
patch outlet
(
( 1 11 12 2 )
( 2 12 13 3 )
( 3 13 14 4 )
)
wall airfoil
(
( 5 15 16 6 )
( 6 16 17 7 )
( 7 17 18 8 )
( 8 18 19 9 )
( 9 19 15 5 )
)
);

mergePatchPairs
(
);

//* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Any help would be MUCH appreciated!

Best regards
Leo

fumiya April 10, 2013 11:44

The wall shear stress vanishes at separation points and you can calculate
the wall shear stress using wallShearStress utility.
The thread (http://www.cfd-online.com/Forums/ope...omponents.html) could be of help.

Hope this helps,
Fumiya

oscarli April 12, 2013 03:25

Hi Fumiya,

Thank you very much for your reply. I will try the wallShearStress utility.



Quote:

Originally Posted by fumiya (Post 419675)
The wall shear stress vanishes at separation points and you can calculate
the wall shear stress using wallShearStress utility.
The thread (http://www.cfd-online.com/Forums/ope...omponents.html) could be of help.

Hope this helps,
Fumiya


oscarli April 12, 2013 05:08

2 Attachment(s)
Hi Fumiya,

I'v got something seems good. Is that right? I'v put the results in attach files.
Thank you very much.


All times are GMT -4. The time now is 23:21.