Dear @Jason.Jonkman ,
After adjusting the parameters as you suggested, the following cross section was obtained at x=D/2 as shown below.
The set values are as follows.
k_VortexDecay
=0
k_vCurl
=5
Is the simulation running without problems?
Best regards,
Dear @Yuki.Ogura,
I can’t answer your question generally, but are you now seeing the wake deflection you expect?
Best regards,
Dear @Jason.Jonkman ,
Sorry for my bad question.
The velocity deficit ratio in the xy-plane was obtained at 6D downstream of the wind turbine under the previous conditions, as shown in the following figure.
The blue line is the result of the LES analysis.
The velocity deficit ratio in the xy-plane was obtained at 6D downstream of the wind turbine under the previous conditions, as shown in the following figure.
The blue line is the result of the LES analysis. Which parameter should be changed to reduce the wake range and increase the maximum wake deficits order to bring the black line closer to the blue line?
Dear @Yuki.Ogura,
I see from your plot that the wake deflection matches reasonable well between FAST.Farm (curled wake) and LES, but the wake is recovering faster in FAST.Farm. This implies that your eddy viscosity in FAST.Farm is too high. It looks like your simulation involves inflow without ambient turbulence, so, the ambient turbulence part of the eddy viscosity is likely quite low. So, it is the eddy viscosity associated with the shear layer in the wake that is too high. This can be changed in FAST.Farm by changing (reducing) k_vCurl
and/or k_vShr
.
Best regards,
Dear @Jason.Jonkman ,
I followed your advice and ran the simulation with a reduced k_vSr.
I were able to match the Cueled Wake results to the LES results as shown in the figure below.
Thank you for your support.
Best regards,
1 Like
Dear @Yuki.Ogura @Jason.Jonkman
This post is very interesting. I haven’t tried the curved wake model yet. As you mentioned, the curled wake model has more accurate wake under yaw conditions. Can I make some improvements in DWM to achieve better yaw wake simulation? What aspects should I start from?
Best regards,
Dear @Jundong.Wang,
I’m not sure I understand what you are asking, but certainly the curled wake model of FAST.Farm is better than the polar model in skewed flow conditions, e.g., applications of wind farm controls with wake steering.
For details on the curled wake model of FAST.Farm, see our Wind Energy Science journal article: https://onlinelibrary.wiley.com/doi/full/10.1002/we.2785.
Best regards,
Dear Jonkman,
Sorry to bother you again,I’m trying to compare the velocity profiles of the actuator line model and FAST.FARM of two turbine string , but my actuator line simulation’s wake shows some strange phenomena: the maximum velocity loss occurs near the hub neither near the tip, which is different from the similar results I’ve seen before. What could be causing this?
Here is the fvOptions file.
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 3.0.x |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvOptions;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
/*EpsSource1
{
type myALeSource;
fields (epsilon);
selectionMode cellSet;
cellSet AL1;
diskRadius 40;
diskCenter (0.0001 0 70);
C4e_factor 0.9;
writeToFile true;
monitorMethod points;
monitorCoeffs
{
points
(
(-20 40 70)
);
}
}
EpsSource2
{
type myALeSource;
fields (epsilon);
selectionMode cellSet;
cellSet AL2;
diskRadius 40;
diskCenter (560.0001 0 70);
C4e_factor 2e2;
writeToFile true;
monitorMethod points;
monitorCoeffs
{
points
(
(520 40 70)
);
}
}*/
turbine1
{
type axialFlowTurbineALSource;
active on;
axialFlowTurbineALSourceCoeffs
{
fieldNames (U);
selectionMode cellSet; // cellSet || points || cellZone
cellSet turbine;
origin (0 0 0);//
axis (1 0 0);
verticalDirection (0 0 1);//垂直高度方向
azimuthalOffset 0;
yawAngle 0;
freeStreamVelocity (8 0 0);
tipSpeedRatio 7.54;//叶尖速比
rotorRadius 89.15;
dynamicStall
{
active off;
dynamicStallModel LeishmanBeddoes;
}
endEffects
{
active on;
endEffectsModel Glauert; // Glauert || Shen || liftingLine
GlauertCoeffs
{
tipEffects on;
rootEffects on;
}
ShenCoeffs
{
c1 0.125;
c2 21;
tipEffects on;
rootEffects on;
}
}
blades
{
blade1
{
writePerf true;
writeElementPerf true;
nElements 57;
elementProfiles
(
//Cylinder_Aerodyn15
Cylinder_Aerodyn15
FFA_W3_241_Aerodyn15
FFA_W3_301_Aerodyn15
FFA_W3_360_Aerodyn15
FFA_W3_480_Aerodyn15
FFA_W3_480_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
);
elementData
(
// axialDis radius azimuth chord chordMount pitch
(0 2.8 0 5.38 0.25 -14.5)
(0 8.179769842 0 5.379960542 0.25 -14.5)
(0 13.90314305 0 5.635440637 0.25 -13.88881566)
(0 19.89533568 0 6.070654313 0.25 -10.60868772)
(0 26.06466526 0 6.203008845 0.25 -7.801802346)
(0 32.30763834 0 6.019962425 0.25 -6.382197792)
(0 38.5156384 0 5.645323326 0.25 -5.227502158)
(0 44.58238871 0 5.185829384 0.25 -4.088596355)
(0 50.41106166 0 4.69821952 0.25 -2.886552384)
(0 55.92010112 0 4.222691222 0.25 -1.736174932)
(0 61.04704772 0 3.786080587 0.25 -0.718703543)
(0 65.75009523 0 3.398094491 0.25 0.130379615)
(0 70.00759769 0 3.061899684 0.25 0.819565193)
(0 73.81585351 0 2.77627915 0.25 1.382704418)
(0 77.18597429 0 2.535947291 0.25 1.861958764)
(0 80.14021663 0 2.331431759 0.25 2.280079398)
(0 82.70848486 0 2.12906893 0.25 2.644084094)
(0 84.92515655 0 1.903322498 0.25 2.945070681)
(0 86.82648588 0 1.626011864 0.25 3.177328958)
(0 88.44866288 0 1.183598976 0.25 3.35752648)
);
}
blade2
{
$blade1;
writePerf true;
writeElementPerf true;
azimuthalOffset 120.0;
}
blade3
{
$blade2;
azimuthalOffset 240.0;
}
}
// tower
// {
// active off; // not sure if this works
// includeInTotalDrag false; // default is false
// nElements 1;
// elementProfiles (cylinder);
// elementData
// ( // axial distance (turbine axis), height, diameter
// (10.0 -90.0 4.50)
// (10.0 0.00 3.50)
// );
// }
//
hub
{
nElements 2;
elementProfiles (Cylinder_Aerodyn15);
elementData
( // axial distance, height, diameter
(0 2.8 5.6)
(0 -2.8 5.6)
);
}
profileData
{
Cylinder_Aerodyn15
{
data ((-180 0 0.6)(180 0 0.6));
//data (#include "../../resources/foilData/Cylinder_Aerodyn15.dat");
}
FFA_W3_241_Aerodyn15
{
//data ((-180 0 1.0)(180 0 1.0));
data (#include "../../resources/foilData/FFA_W3_241_Aerodyn15.txt");
}
FFA_W3_301_Aerodyn15
{
//data ((-180 0 1.0)(180 0 1.0));
data (#include "../../resources/foilData/FFA_W3_301_Aerodyn15.txt");
}
FFA_W3_360_Aerodyn15
{
//data ((-180 0 1.0)(180 0 1.0));
data (#include "../../resources/foilData/FFA_W3_360_Aerodyn15.txt");
}
FFA_W3_480_Aerodyn15
{
//data ((-180 0 1.0)(180 0 1.0));
data (#include "../../resources/foilData/FFA_W3_480_Aerodyn15.txt");
}
FFA_W3_600_Aerodyn15
{
//data ((-180 0 1.0)(180 0 1.0));
data (#include "../../resources/foilData/FFA_W3_600_Aerodyn15.txt");
}
}
}
}
turbine2
{
type axialFlowTurbineALSource;
active on;
axialFlowTurbineALSourceCoeffs
{
fieldNames (U);
selectionMode cellSet; // cellSet || points || cellZone
cellSet turbine;
origin (1248.1 0 0);
axis (1 0 0);
verticalDirection (0 0 1);
azimuthalOffset 0;
yawAngle 0;
freeStreamVelocity (5.53 0 0);
tipSpeedRatio 9.93;
rotorRadius 89.15;
dynamicStall
{
active off;
dynamicStallModel LeishmanBeddoes;
}
endEffects
{
active on;
endEffectsModel Glauert; // Glauert || Shen || liftingLine
GlauertCoeffs
{
tipEffects on;
rootEffects on;
}
ShenCoeffs
{
c1 0.125;
c2 21;
tipEffects on;
rootEffects on;
}
}
blades
{
blade1
{
writePerf true;
writeElementPerf true;
nElements 57;
elementProfiles
(
//Cylinder_Aerodyn15
Cylinder_Aerodyn15
FFA_W3_241_Aerodyn15
FFA_W3_301_Aerodyn15
FFA_W3_360_Aerodyn15
FFA_W3_480_Aerodyn15
FFA_W3_480_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
FFA_W3_600_Aerodyn15
);
elementData
(
// axialDis radius azimuth chord chordMount pitch
(0 2.8 0 5.38 0.25 -14.5)
(0 8.179769842 0 5.379960542 0.25 -14.5)
(0 13.90314305 0 5.635440637 0.25 -13.88881566)
(0 19.89533568 0 6.070654313 0.25 -10.60868772)
(0 26.06466526 0 6.203008845 0.25 -7.801802346)
(0 32.30763834 0 6.019962425 0.25 -6.382197792)
(0 38.5156384 0 5.645323326 0.25 -5.227502158)
(0 44.58238871 0 5.185829384 0.25 -4.088596355)
(0 50.41106166 0 4.69821952 0.25 -2.886552384)
(0 55.92010112 0 4.222691222 0.25 -1.736174932)
(0 61.04704772 0 3.786080587 0.25 -0.718703543)
(0 65.75009523 0 3.398094491 0.25 0.130379615)
(0 70.00759769 0 3.061899684 0.25 0.819565193)
(0 73.81585351 0 2.77627915 0.25 1.382704418)
(0 77.18597429 0 2.535947291 0.25 1.861958764)
(0 80.14021663 0 2.331431759 0.25 2.280079398)
(0 82.70848486 0 2.12906893 0.25 2.644084094)
(0 84.92515655 0 1.903322498 0.25 2.945070681)
(0 86.82648588 0 1.626011864 0.25 3.177328958)
(0 88.44866288 0 1.183598976 0.25 3.35752648)
);
}
blade2
{
$blade1;
writePerf true;
writeElementPerf true;
azimuthalOffset 120.0;
}
blade3
{
$blade2;
azimuthalOffset 240.0;
}
}
// tower
// {
// active off; // not sure if this works
// includeInTotalDrag false; // default is false
// nElements 1;
// elementProfiles (cylinder);
// elementData
// ( // axial distance (turbine axis), height, diameter
// (10.0 -90.0 4.50)
// (10.0 0.00 3.50)
// );
// }
//
hub
{
nElements 2;
elementProfiles (Cylinder_Aerodyn15);
elementData
( // axial distance, height, diameter
(0 2.8 5.6)
(0 -2.8 5.6)
);
}
profileData
{
Cylinder_Aerodyn15
{
data ((-180 0 0.6)(180 0 0.6));
//data (#include "../../resources/foilData/Cylinder_Aerodyn15.dat");
}
FFA_W3_241_Aerodyn15
{
//data ((-180 0 1.0)(180 0 1.0));
data (#include "../../resources/foilData/FFA_W3_241_Aerodyn15.txt");
}
FFA_W3_301_Aerodyn15
{
//data ((-180 0 1.0)(180 0 1.0));
data (#include "../../resources/foilData/FFA_W3_301_Aerodyn15.txt");
}
FFA_W3_360_Aerodyn15
{
//data ((-180 0 1.0)(180 0 1.0));
data (#include "../../resources/foilData/FFA_W3_360_Aerodyn15.txt");
}
FFA_W3_480_Aerodyn15
{
//data ((-180 0 1.0)(180 0 1.0));
data (#include "../../resources/foilData/FFA_W3_480_Aerodyn15.txt");
}
FFA_W3_600_Aerodyn15
{
//data ((-180 0 1.0)(180 0 1.0));
data (#include "../../resources/foilData/FFA_W3_600_Aerodyn15.txt");
}
}
}
}
// ************************************************************************* //
Best regards,
Dear @Zhiyan.Dong,
I’m not familiar enough with OpenFOAM to comment on your set-up. If are using OpenFOAM within SOWFA, I suggest posting your question on the SOWFA GitHub site: GitHub · Where software is built.
Best regards,
Dear Jonkman,
I’m sorry to bother you again, I then solved the problem I mentioned earlier and tried to learn amr-wind to run the same example, the wake deficit of the two actuator lines method is more similar, so I ruled out the problem of the actuator line simulation, I then tried to calibrate the FAST.FARM parameters, I turned up the value of vkCurl with reference to your earlier paper and combined with your suggestion in the “[(Differences between curl and polar wake models in FAST Farm for a fixed bottom farm · OpenFAST/openfast · Discussion #1756 · GitHub)” post, The increase in its value does significantly reduce the gap between FAS.FARM and LES, but there is still a significant numerical difference, I have tried several parameter combinations later, but it still can’t reduce the gap with LES, do you have any suggestions?
Best regards,
Dear @Zhiyan.Dong,
Can you clarify what conditions you are simulating (wind turbine, inflow, skew angle)?
The wake deficit looks quite different in the near wake (1D). Is the rotor thrust the same between LES and FAST.Farm? The initial wake deficit is wider in FAST.Farm, which you could adjust by playing with C_NearWake
.
Otherwise, the last (yellow) solution from FAST.Farm is getting closer to result you expect.
Best regards,