April 10, 2013, 11:36
|
How to find separation point over airfoil
|
#1
|
New Member
Leo
Join Date: Jan 2013
Location: Duisburg,Germany
Posts: 3
Rep Power: 13
|
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
Last edited by oscarli; April 11, 2013 at 05:26.
|
|
|