the Creative Commons Attribution 4.0 License.
the Creative Commons Attribution 4.0 License.
A Lightweight Vortex Particle-Mesh Library for Variable-Fidelity Simulation of Wind Turbine Wakes
Abstract. In this work, the implementation and validation of a lightweight vortex-particle mesh solver is described. Within this method, the flow field is discretised with vorticity-carrying Lagrangian particles. Field quantities are calculated on a homogeneous rectangular grid and mapped to the instantaneous particle positions. A fast Poisson solver is employed to efficiently calculate the velocity field on the grid using fast Fourier transforms. The vorticity field is updated by applying the vorticity transport equation, the terms of which are extracted from the flow field using finite differences. The flow solver is validated by simulating an unsteady vortex ring. A nested grid region is generated which allows for the flow field representation of lift-generating bodies on the main grid. This secondary grid approach allows for the use of arbitrary lifting body models. Here, a nonlinear lifting line method has been applied and validated against an analytical solutions for an elliptical wing. The solver is validated for helical wake configurations through comparison with an idealized Betz rotor. Finally, the application to the simulation of wind turbine wakes is demonstrated through comparison with experimental results of rotor loads and wake hot-wire measurements performed in the Mexico wind tunnel campaign.
- Preprint
(4343 KB) - Metadata XML
- BibTeX
- EndNote
Status: open (until 21 Nov 2024)
-
RC1: 'Comment on wes-2024-73', Anonymous Referee #1, 28 Oct 2024
reply
1. General comments
This paper introduces a Vortex Particle-Mesh (VPM) solver complemented with the handling of lifting bodies, such as lifting lines. This solver is based on the open-source SailFFish library of FFT-based Poisson solvers.
The paper brushes the implementation of such a VPM method and presents comparisons of the code outputs to reference cases and experimental results. The reviewer definitely appreciates the effort made by the author to give a good publicity to the method on methodological aspects and with somewhat extensive validation. However, the implementation itself is essentially identical to previous efforts by groups in DTU (J H Walther), TU Delft (Prof. C S Ferreira), Université catholique de Louvain (G. Winckelmans, P. Chatelain), ETH Zurich (P. Koumoutsakos), Keio University (S. Obi), Université de Pau (P. Poncet, J.-M. Etancelin), CNAM Paris (C. Mimeau), Université de Grenoble (G-H Cottet), Université de Normandie (G. Pinon), etc. These groups have built upon and contributed to about 40 years of research toward turning vortex methods into robust, efficient and mainstream computational tools for fundamental and applied flow problems. The somewhat educated reader cannot help but have these research groups’ efforts in mind upon reading the present paper.
This is where this reviewer’s main criticism lies. While the author cites a great number of references to the vortex methods literature, this profusion mostly does not translate into the adequate credit in the text (see specific comments section). Moreover, the writing style is often unclear and ambiguous about the methodological originality and novelty: once past the introduction, there is an implicit appropriation of several methodological elements, through e.g. the phrasal modes and tenses used; it can be quite misleading for the reader. This reviewer understands that, in order to present to communicate about an implementation effort, one needs to first present the methodological foundations but one needs to adopt an adequate writing style. As a good example of a review text, I would refer the author to the recent paper by Mimeau and Mortazavi, 2021, that covers the evolution of vortex methods and their recent advances. The present paper lacks an appropriate way for the reader to clearly understand what is new and what belongs to the existing state of the art.
The present work does have some value, mainly on the implementation side and its verification: it presents a (soon-to-be) open-source vortex method implementation. Now, whether that warrants a full Wind Energy Science article, is the true question. Perhaps this contribution would be a better fit for another journal?
A second contentious aspect is several instances of unsubstantiated claims: e.g., mapping procedures optimizations, etc. (see the specific comments section).
A final global comment is the lack of a coherent motivation and positioning for the proposed contribution. The introduction in its current form does not really conduce to the original part of the work (a lightweight vortex method implementation). What was missing in the current state-of-the-art? What problem does the authors address with this lightweight implementation?
This reviewer therefore has strong reservations about (1) the contribution put forward, (2) the way it is presented with respect to the existing literature, (3) the quality of the results and of the subsequent discussions, and (4) its true capabilities (see specific comments). In a heavily revised form, the true core contribution of this manuscript would rather be about an implementation and I am afraid that cannot be considered as a topic for Wind Energy Science, given the corpus of methodological works on vortex methods in wind energy and beyond.
2. Specific comments
L 59: « higher degree of connectivity can be achieved … » I disagree, as it is quite the opposite. A particle method loses all connectivity information compared to a filament method, then bringing the issues of keeping the vorticity field divergence-free.
L 68: Chatelain and Koumoutsakos 2010 most certainly did not pioneer so called Vortex-in-Cell methods (which is the subject of that sentence), these methods have been known for two decades before that reference, please check the review of Mimeau and Mortazavi or the works of G-H Cottet.
L 78: the author mentions that the presented solver is conceptually similar to the one of Chatelain et al 2013 but that article also includes the handling of lifting lines. The author does not position, nor motivate their claimed novel approach for the treatment of lifting bodies.
L 91: Did the author use anisotropic mesh spacings? If that mesh is the one used to receive the particle information and reset the particles, then the author has forgotten that the interpolation should also account for the fact that the underlying lagrangian element is anisotropic… and the interpolation back to the mesh is far from trivial… If they just used such a mesh for their simulation without paying attention to this, I would expect some serious numerical issues.
L 119: the storage of the interpolation weights can seem like a good idea until one performs actual timings. Indeed, the interpolation kernels are so cheap to evaluate (polynomials) that the computing gains hardly compensate the additional memory fetching. I would be curious to known whether the authors achieved any gain?
L.136: James 1977’s contribution is not correctly described. It combines a homogeneous Dirichlet solver on the bounded domain with a second step, unbounded this time, which radiates the sources given by the normal derivate jumps along the boundary (or rather their opposite). It is rather elegant, there is a similar approach by Lackner 1976, thence the references to the so-called James-Lackner algorithm in parts of the literature.
L 140: the authors might want to choose their word carefully, as one might understand consistency not only in terms of order but rather a coherence between the FD stencil and the effective FD stencil at work underneath the convolution kernel.. To this reviewer’s knowledge, it is the domain of Lattice Green’s functions.
L.145: what is the « symmetric nature of the node alignment »? The author also refers to a stencil offset precomputation in the context of some strategy for the FD evaluation on the mesh but no information is given beforehand. It does seem to concern the core of the contribution though (implementation).
Section 2.4.2 : « magnitude filtering »: rephrase, it is a clipping operation, not a filtering one.
L 183: « novel method proposed by Cottet and Poncet », it is not novel anymore in 2024, and I suspect that there were reprojections in works that predate Cottet and Poncet 2003…
Sec. 2.5 Treatment of Lifting Bodies: this section relies on an embedded grid, this technique is a long standing challenge for vortex methods, there have been some recent works on the topic, with weak couplings by Billuart et al, J Comp Phys 2022 (contains an assessment of accuracy), and Pasolari et al, 2024.
In the present work, it is not clear what this embedded mesh achieves compared to other immersed lifting line techniques, such as the one by Caprace et al., 2020. Why the additional mesh? To this reviewer, all could be done within the main computational mesh.
Note that again, the phrasing is peculiar for works that predate the present manuscript: “similar approach that was taken in Spyropoulos 2022”?!L 213: “advect the wake nodes…” : Add a reference for this as it is not obvious. Do you use the version with the kink in the trailing vorticity (as done by Phillips, Hunsaker, etc.) or without it (as is Katz and Plotkin)?
L 216: “an equivalent particle…”: filaments are singular, particles are regular. What happens if a flow particle gets too close to a filament?
L 220: “ the omega_phi on the embedded grid”: How about the filaments that you did not convert to particles already? And the bound vorticity? These elements dont have a representation on the embedded grid. If their influence is neglected, the solution will be wrong if some extraneous vorticies gets advected in the region of the embedded domain.
L 222: “different velocity field regularisations” : clarify
L 233: “a line or surface average is found by sampling points” : needs references for this (e.g., melani2024, churchfield2017)
L 237: “Churchfield et al 2017”: they only do 3D mollification; “Schollenberger et al., 2020”: they do 2D, but a better reference for this would be Jha & Schmitz 2018
L 238: “Caprace et al, 2018”: I would argue that the versions of the 1D, 2D, and 3D kernels are due to Caprace 2018 and are not specifically written as a "VPM equivalent", but are rather generally applicable to any type of ALM.
L 288: “translation velocity”: how do you compute from an instantaneous velocity field?
Fig 6 b: the loss of momentum is substantial. It should be conserved by the remeshing procedure (using the Kernel M_2). What is going on?
L 308: Eq 9, form for the kinetic energy is not trivial to obtain, please provide reference.
L 328: “validate the solver”: talking about validation is delicate here since there is no real life problem where the solution is the singular lifting line.
L 354: “c0 = 1 m and span S = 5 m.” then your aspect ratio is 1.6?
L 357: “h under-relaxation factor of 0.2”: you mentioned an iterative procedure but this was never really described.
Additionally, why do you need underrelaxation here? If all the bound vortex elements are on a straight line, the cross-influence of bound vortex elements on each other is 0 so there is no need to iterate.
Unless you only have 1 straight filament between the bound vortex and 100 wingspans...? but why would you do that? cause it should give you the same solution as the analytical solution.L 359: “the trigonometric series solution…”: There is no difference between this and the actual analytical solution, except that Gamma_ts is a sampled version... but there is no added value in showing this on the plot, it is the same information as Gamma_an, and generates unnecessary noise for the reader.
L 370: “effect of the discretisation”: what happens when one changes the number of elements on the line? Saying that differences are indiscernible is not very committing: rather, can you say what is the minimum number of elements you need to guarantee a given tolerance on the precision?
Also, what will happen when one goes from a cosine distribution to a uniform particle distribution? To be close to the analytical solution, one needs tons of spanwise elements towards the tip. But if you agglomerate this on your grid of the embedded domain, the resulting particle will lose this refinement and the solution suddenly becomes very poor. This is ok if it happens far enough from the bound vortex, but the author never characterized how far. The author only said that the choice of the trigger between filament and particle happens after an arbitrarily chosen number of time steps. What if the time step becomes very small?L 376: “This poses numerical challenges for the NLL model,..”: This is unclear.
The author means that there is difficulty converging your system by only using underrelaxation? well maybe one could do it in pseudo-time an introduce a discretization of the trailing elements in the streamwise direction (akin to a VLM)...L 383 “ the NLL model indeed produces accurate results” but the author had to take some precautions as said earlier... how does that limit the applicability of the method when one puts it in the vpm code?
L 386 “ comparing the velocity field induced by the VPM model to the vortex filament wake system of the standard NLL method.”: why should they be the same? One is discretized with particles in the wake, the other assumes frozen wake...? or I did not understand? In this section, the author does no't compare velocity fields, they compare downwash
L 393 “4th-order Gaussian kernel”: The author should realize that these two operations (interpolation with M2 and the convolution with the 4th order Gaussian kernel) imply a smoothing of the solution. And by the way the smoothing length of the Gaussian kernel needs to be mentioned
L 409: “Caprace et al. (2018)”: There is an entire body of literature on the effect of the regularization on tip loads; these are not the only authors to have dealt with this, check e.g. the works of J N Sørensen,…
L 413 “In the case of the rectangular wing, no analytical solution exists.” If my memories of Prandtl’s lifting line basic applications are correct, you can actually use a sum of sine for this. Sure, it is technically infinite, but you can truncate for a given precision. If this precision is greater than the discrepancy with your result, then we can still say something.
L 420 “converges towards accurate results for the …”: No, for this reviewer, the results are not conclusive as no quantitative analysis is performed and the plots do not support that assertion. Plus, the author does not look at what happens for longer vs shorter lengths of the wake that you resolve with filaments. Additionally, they never motivate the use of filaments vs the "Act Line Method"/"Immersed Lifting Line". Why would we want to use this the NLL? To me, it sounds like a step backwards (see general comment about section 2.5 above)
3.2.4 Unsteady Case- Wake Rollup: This section would benefit from a thorough rewrite.
The terms used are confusing: the vortex pair has to converge to a separation between centroids of pi b/4, simply by conservation of momentum. Please clarify displacement, separation etc.
How are the C_y and epsilon_inf quantities measured within the simulation?L 430 : if the author has to invoke computational costs and bypass the transient for such a simple problem, there is a problem with the whole point of the paper: an efficient lightweight vortex particle method.
L 433: “carried out with M_2 scheme.” This is again very diffusive, so while the author has no viscosity, the effective viscosity due to this interpolation kernel will overwhelm the simulation
L 448: “the average velocity field in z direction is sampled to calculate the wake downwash”: this is related to a question for sec 3.2.4, but it is still not clear: how, with what smoothing for the sampling?
L 451: “The metric Cy is deceptive as the relative motion of the tip vortex is…”: this comment comes after you have used this quantity to claim convergence on the previous page!?
L 454 “Furthermore,…”: this is not convincing. Examples of accurate vortex-in-cell, or particle-in-cell simulations abound, the author should consider reviewing the 30 or so years of literature on these methods.
Sec 3.3.3 Unsteady Case: Mexnext Rotor:
L 554: the discussion of the lifting line model limitations is not entirely correct. An airfoil in a separated flow regime (stall) can be handled by a lifting line, at a time sufficiently large to be able to identify the attached circulation as the one comprising the airfoil bound circulation and the one within the recirculations. The Kutta-Joukowski theorem still holds for that total circulation. The limitations then rather lie in the three-dimensionality of the flow and spanwise gradients (and by extension tip effects…).L558: “Fig. 15 (b) is very similar to that predicted by similar NLL models in the works of Boorsma”: none of these results are shown. The discussion is impossible to follow/
L 600 : The discussion of the aerodynamic loads should be revised and properly structured. Furthermore, the conclusions mention an agreement (trends and magnitude) with the experiments; this is quite an exaggeration.
L 602-679: The agreement was only on trends for the loads; how can the author expect any agreement with the experiments on the wake velocities?
Figure 19: At last, this figure confirms the overwhelming role of the interpolation kernel used. Individual vortices disappear within a fraction of a revolution, due to the resolution and the M2 interpolation. Additionally, one can identify shed individual vortices at mid-span/radius along the blade, one would expect to observe steps/gradients in the circulation (lift) at the locations of these vortices in Figures 15 and 16.
Conclusions:
L 681: the author has performed mainly verification; the experimental results do not validate the models used (the airfoil polars to be fair)
L 694: conclusions about vortex ring case: this case was not quite challenging and the Reynolds numbers were not high. Challenging cases are those of ring collisions, or flows like a Taylor-Green vortex flow
L 724-735: Some of the final comments are a bit over-optimistic- Validation, as mentioned above, should rather be verification
- The capture and prediction of wake alleviation schemes will require finer resolutions and a high order interpolation kernel. Such problems will also involve unsteady vortex shedding, something that has not been tested here and that could prove challenging for the NLL – VPM coupling. To be honest, the NLL steady flow assumption will probably greatly affect the results.
- The port to GPU for particle-grid schemes is not so simple due to the relatively low computational intensity per degree-of-freedom. A simple datastructure does not automatically translate into large speedups when making the jump to GPU.
- The manuscript actually contains very little information about the implementation itself, which is the one original contribution in this work. Some aspects are touched in several places in the manuscript, assuming the software architecture and the data structures have been presented. It is not the case and make the read quite difficult.
- Finally, the VPM client, announced as open-source, is found not to be available yet.
3. Technical corrections
L 65: Greengard and Roklin, A fast algorithm for particle simulation,… 1997 should read 1987.
L.135: James 1977, there is no journal, (should be Journal of Computational Physics)
Eq 3: matter of notation : the time derivative is a material one (noted D/Dt typically, and not as a total derivative as would be the case for particle positions and strengths)
L. 181: a divergence-free vorticity is the consequence of vector analysis (div of a curl is null)
L. 218 : “Eulerian grid”: isn’t G_L supposed to be the Lagrangian grid? Clarify
L 269-270: some typos or confusions between t_delta and t_Gamma?
L 285: symbol “H” not the same as the “h_x” etc. introduced earlier, correct or clarify
L 343, eq 11 and the text: Using "S" for the span is very very confusing... and what is b then?
L 357: “alpha = 5.7106” why so much precision for an initial value?
L 398 “the downwash predicted by the filament method is very near the analytical result.” : already shown previously
L 400 “error” : these are two different models, so one should not refer to this as an error but rather a difference or a discrepancy
L 616: “of the cylindrical root joint and the DU-91 profile, both of which exceed the stall angle”: As it is written, the sentence mentions the existence of a stall angle for a cylinder…
4. References
Chloé Mimeau, Iraj Mortazavi. A Review of Vortex Methods and Their Applications: From Creation to Recent Advances. Fluids, 2021, 6 (2), pp.68. ⟨10.3390/fluids6020068⟩.
Citation: https://doi.org/10.5194/wes-2024-73-RC1
Viewed
HTML | XML | Total | BibTeX | EndNote | |
---|---|---|---|---|---|
165 | 52 | 11 | 228 | 10 | 10 |
- HTML: 165
- PDF: 52
- XML: 11
- Total: 228
- BibTeX: 10
- EndNote: 10
Viewed (geographical distribution)
Country | # | Views | % |
---|
Total: | 0 |
HTML: | 0 |
PDF: | 0 |
XML: | 0 |
- 1