fernexda |
April 14, 2015 09:31 |
Wrong boundary layer with movingWallVelocity
3 Attachment(s)
Dear all,
I'm currently doing unsteady simulations of a vertical axis wind turbine (VAWT) with sliding meshes, cyclicAMI interface and imposed motion ( solidBodyMotionFvMesh solver). And I'm going crazy trying to match my results with experimental data.
I think my problems have mainly to do with the velocity and the boundary layer. I'm using the spalart-allmaras turbulent model, and the nutUSpaldingWallFunction wall function. The problem is that the velocity on the blade boundary is not zero...
I've proceeded in two steps. - First I put a '' of (0 0 0) m/s on the blades. The boundary layer seemed ok, but the results didn't have any physical meaning...
- After looking at some example, I've discovered the 'movingWallVelocity' to take in account the movement of the paddle. Even though the results with this BC are still bad, they make more sense. BUT the velocity on the blade is not zero ! See pictures attached.
The problems I'm facing with the ' movingWallVelocity' are: - Wrong boundary layer
- Highly diffusive simulation (more than with a fixedValue...)
- Crazy power coefficient values
So the question is: does anyone know where could this come from ? Am I doing something wrong ? How could I get a better BL ?
Any help would be greatly appreciated !
Regards,
Daniel
P.S.: here are my configuration files:
* Solver: pimpleDyMFoam
* OF 2.1
*0/U
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
location "0";
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (9 0 0);
boundaryField
{
AMI_FS
{
type cyclicAMI;
}
AMI_SF
{
type cyclicAMI;
}
Inlet
{
type fixedValue;
value uniform (9 0 0);
}
Outlet
{
type inletOutlet;
inletValue uniform (0 0 0);
value uniform (0 0 0);
}
lowerSym
{
type symmetryPlane;
}
upperSym
{
type symmetryPlane;
}
back
{
type empty;
}
front
{
type empty;
}
paddle0
{
type movingWallVelocity;
value uniform (0 0 0);
}
paddle1
{
type movingWallVelocity;
value uniform (0 0 0);
}
paddle2
{
type movingWallVelocity;
value uniform (0 0 0);
}
}
*0/p
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
AMI_FS
{
type cyclicAMI;
value uniform 0;
}
AMI_SF
{
type cyclicAMI;
value uniform 0;
}
Inlet
{
type zeroGradient;
}
Outlet
{
type fixedValue;
value uniform 0;
}
lowerSym
{
type symmetryPlane;
}
upperSym
{
type symmetryPlane;
}
back
{
type empty;
}
front
{
type empty;
}
paddle0
{
type zeroGradient;
}
paddle1
{
type zeroGradient;
}
paddle2
{
type zeroGradient;
}
}
*system/fvSchemes
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default fourth;
//grad(nuTilda) cellLimited leastSquares 1.0;
}
divSchemes
{
default none;
div(phi,U) Gauss linearUpwindV grad(U);
div(phi,nuTilda) Gauss linearUpwind default;
div((nuEff*dev(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default none;
laplacian(rAU,p) Gauss linear limited 0.5;
laplacian(DnuTildaEff,nuTilda) Gauss linear limited 0.5;
laplacian(nuEff,U) Gauss linear limited 0.5;
//for pimple :
laplacian(rAUf,p) Gauss linear limited 0.5;
laplacian((1|A(U)),p) Gauss linear limited 0.5;
}
interpolationSchemes
{
interpolate(U) linear;
interpolate(HbyA) linear;
interpolate(((1|deltaT)*rAU)) linear;
//for pimple :
interpolate(U_0) linear;
interpolate((1|A(U))) linear;
interpolate(((1|deltaT)*(1|A(U)))) linear;
}
snGradSchemes
{
default limited 0.5;
}
fluxRequired
{
default no;
p ;
}
*system/fvSolution
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
pcorr
{
solver GAMG;
smoother GaussSeidel;
nPreSweeps 0;
nPostSweeps 2;
cacheAgglomeration off;
agglomerator faceAreaPair;
nCellsInCoarsestLevel 10;
mergeLevels 1;
tolerance 1e-7;
relTol 0;
//tolerance 0;
//relTol 0;
//maxIter 1000;
}
p
{
solver GAMG;
smoother GaussSeidel;
nPreSweeps 0;
nPostSweeps 2;
cacheAgglomeration off;
agglomerator faceAreaPair;
nCellsInCoarsestLevel 10;
mergeLevels 1;
tolerance 1e-7;
relTol 0;
}
pFinal
{
solver GAMG;
smoother GaussSeidel;
nPreSweeps 0;
nPostSweeps 2;
cacheAgglomeration off;
agglomerator faceAreaPair;
nCellsInCoarsestLevel 10;
mergeLevels 1;
tolerance 1e-8;
relTol 0;
}
nuTilda
{
solver smoothSolver;
smoother GaussSeidel;
tolerance 1e-7;
relTol 0;
}
nuTildaFinal
{
solver smoothSolver;
smoother GaussSeidel;
tolerance 1e-8;
relTol 0;
}
U
{
solver smoothSolver;
smoother GaussSeidel;
tolerance 1e-7;
relTol 0;
}
UFinal
{
solver smoothSolver;
smoother GaussSeidel;
tolerance 1e-8;
relTol 0;
}
}
relaxationFactors
{
fields
{
p 0.4;
pFinal 1;
}
equations
{
U 0.7;
UFinal 1;
nuTilda 0.5;
}
}
PIMPLE
{
correctPhi yes;
nOuterCorrectors 1;
nCorrectors 3;
nNonOrthogonalCorrectors 0;
pRefCell 0;
pRefValue 0;
}
PISO
{
nCorrectors 2;
nNonOrthogonalCorrectors 0;
pRefCell 0;
pRefValue 0;
}
SIMPLE
{
nNonOrthogonalCorrectors 1;
nCorrectors 2;
pRefCell 0;
pRefValue 0;
residualControl
{
p 1e-5;
U 1e-5;
nuTilda 1e-5;
}
}
potentialFlow
{
nNonOrthogonalCorrectors 3;
}
// ************************************************************************* //
|