Preprint
Article

This version is not peer-reviewed.

Convergence, Node Collocation and the Disc-Edge Singularity of a Vortex-Ring/Vortex-Cylinder Free-Wake Model for the Uniformly Loaded Actuator Disc

Submitted:

31 July 2026

Posted:

03 August 2026

You are already at the latest version

Abstract
Free-wake vortex-ring models are the simplest way of describing a uniformly loaded actuator disc consistently with the Euler equations, i.e. including the radial velocity that accompanies slipstream contraction or expansion. This paper examines the numerical behaviour of this model class using an independent open-source FORTRAN 90/95 implementation and a 1:1 Python replica, for the propeller case (cT = 1) and the Betz case (cT = -8/9). Three results are reported. First, the two convergence measures in common use—the residual of the wake (sheet) equations and the deviation of the power coefficient cP from momentum theory—are shown not to be equivalent: the latter has a discretisation floor and is not monotone, so it is unsuitable as a stopping criterion, and accuracy figures obtained with it are sometimes misleading. Second, the discrete Kelvin–Helmholtz saw-tooth mode is stabilised by a damping factor proportional to √z, which reaches the residual floor within a few hundred instead of 104 iterations; the remaining cP fluctuation band reflects the unresolved disc-edge region and is removed by node collocation with a spacing-proportional vortex kernel, which converges to a unique fixed point with machine-level residuals and \( c_P-(-16/27)=+4.7\times10^{-5} \). Third, the converged solutions show a bounded edge strength with fitted exponent \( a=0.00\pm0.04 \) in \( \gamma\propto s^{a} \), differing from both the \( s^{-1/2} \) spiral and the constant-\( \gamma \) proposals in the literature; we explain why single-valued, regularised sheet discretisations cannot decide this question.
Keywords: 
;  ;  ;  ;  ;  ;  ;  ;  ;  ;  

1. Introduction

Rotors, and wind-turbine rotors in particular, have been modelled by an axisymmetric actuator disc (AD) for more than 150 years [1,2]. In its classical form the model is evaluated by an integral momentum balance in which only the axial velocity component appears [3]. It is easily shown, however, that such a description is not consistent with the differential equations of inviscid flow, Euler’s equations,
· u = 0 ,
ρ D u D t = p + f ,
because the radial velocity component that necessarily accompanies a contracting or expanding slipstream is discarded. Among the ways of restoring consistency without solving (1)–(2) numerically, vortex-ring (free-wake) methods [4,5] are arguably the simplest: the wake boundary is represented by a free vortex sheet whose position and strength are obtained from two physical conditions, and the velocity field follows from the Biot–Savart law in closed (elliptic-integral) form.
Starting from ye’s 1990 paper [6], this approach was developed further and applied by van Kuik and Lignarolo [7] and by Bontempo and Manna [8,9]; Conway [10] generalised the underlying analytical framework to non-uniform heavy loading. Despite this long history, three questions of practical relevance for anybody implementing such a model have, to the best of the author’s knowledge, not been answered in the open literature:
1.
What do the usual convergence measures actually measure? Free-wake AD codes are commonly stopped either on a residual of the wake (sheet) equations or on the deviation of the computed power coefficient c P from its momentum-theory value. Are these two criteria equivalent, and does either of them certify a converged solution?
2.
Is the free-wake fixed-point iteration stable, and at what price? A cylindrical vortex sheet is Kelvin–Helmholtz (KH) unstable, so any explicit update of the sheet position must be damped. Which damping keeps the scheme stable without corrupting the solution near the disc edge?
3.
What does a converged free-wake solution say about the disc-edge singularity? Two mutually exclusive edge behaviours have been proposed in the literature: a self-similar (Prandtl/Kaden) spiral with γ s 1 / 2 [5,11] and a bounded sheet strength with logarithmic velocity singularities [12].
The present paper answers these questions with the help of an independent, open-source FORTRAN 90/95 [13] implementation of the vortex-ring/vortex-cylinder model for a uniformly (constantly) loaded actuator disc, together with a 1:1 Python replica of the same algorithm that allows systematic parameter studies. The main findings are:
  • The sheet residual and the momentum-theory deviation are not equivalent (Section 3). The latter possesses a discretisation floor and is not even monotone during the iteration; using it as a stopping criterion can flatter the apparent accuracy by more than an order of magnitude.
  • The KH saw-tooth mode is controlled by a damping factor λ z , which is stable for all ring numbers tested and equilibrates the edge region about two orders of magnitude faster than the λ z damping used previously (Section 3.2).
  • With midpoint collocation, c P retains a small residual fluctuation band that shrinks with the discretisation but not with the number of iterations; it is a property of the unresolved edge region, not an iteration deficiency (Section 3.3). Replacing midpoint collocation by node collocation with a spacing-proportional vortex kernel (Section 2.4) removes the band entirely and yields a unique fixed point with machine-level residuals.
  • The converged solutions of this model class show a bounded edge strength, with a fitted exponent a = 0.00 ± 0.04 in γ s a — different from both proposals cited above. We show why a single-valued, midpoint- or kernel-regularised sheet discretisation is structurally unable to represent a rolled-up spiral, and why this does not affect the computed c P (Section 5).
The code, its Python replica, the configuration files of all cases discussed here and the GNUPLOT/Python post-processing scripts are available at https://github.com/Schaffarczyk/RingsCylinderActuatorDisk/.

2. Model and Numerical Method

2.1. Model Description

Axisymmetric coordinates ( z , r ) are used with the velocity u = ( u z , u r ) , non-dimensionalised with the undisturbed wind speed, u z ( r ) z = 1 , and with the disc radius, so that the disc occupies z = 0 , 0 r < 1 . Its edge r E = ( 0 , 1 ) may carry a singularity, i.e. a point at which u is not defined; this is the subject of Section 5.
The wake boundary is modelled by a piecewise linear vortex sheet which starts at r e d g e = ( 0 , 1 ) and ends at r C y l = ( z S I V C , r S I V C ) , where a semi-infinite vortex cylinder (SIVC) with tangential vorticity is appended. For 0 < z < z S I V C , N vortex rings of strength γ are placed with non-uniform (cosine-clustered) spacing at positions ( z s l i , r s l i ) ,
z i = z S I V C 1 cos φ i ,
φ i = π 2 · i N , 1 i N ,
so that the resolution is highest at the disc edge, where the solution varies most rapidly. This part of the approach is identical to that of [8,9].
The single physical parameter of the model is the thrust coefficient c T , with c T > 0 for the propeller case (induced velocities > 0 ) and c T < 0 for the turbine case; momentum theory is valid for 1 c T < . Several exact relations follow from momentum theory and are used below both as initial conditions and as reference values. The asymptotic radial extension of the slipstream is
r z s l r S I V C = 1 + 1 + c T 2 1 + c T ,
giving r = 0.9239 for c T = 1 and r = 2 = 1.4142 for c T = 8 / 9 (the Betz case). The value of the total (i.e. inflow included) stream function on the slipstream far downstream is
ψ w a k e = 1 4 1 + 1 + c T ,
i.e. ψ w a k e = 0.603553 for c T = 1 and ψ w a k e = 1 / 3 for c T = 8 / 9 . (If only the induced part of the stream function is used, the corresponding value is c T / ( 4 1 + c T ) ; the code works with the total stream function, Equation (6).) The model parameters are summarised in Table 1.

2.2. Induced Velocities

An accurate evaluation of the induced axial and radial velocities is the key to any arbitrarily accurate — that is, successful — implementation. The computation is split into three parts:
1.
the velocities induced by the N 1 remaining vortex rings on the ring under consideration, 0 z z S I V C ;
2.
the self-induced velocity of the ring under consideration. Bontempo’s expressions [9] (Equations (6) and (7) therein) are used, which, remarkably, do not contain any core parameter:
v z , m m = γ m β m + 1 β m 8 π cos β m d s m 4 π r m log 8 π r m d s m 0.25 ,
v r , m m = γ m sin β m β m + 1 β m 8 π ,
with β m the local slope of the sheet at ring m, r m its radial position and d s m the distance between the two neighbouring rings. For the self-induction of vortex rings in general see, e.g., [15];
3.
the velocities induced by the semi-infinite vortex cylinder at z S I V C , for which the closed-form expressions of [4] (chapter 36) are used.
To avoid singular velocities on the sheet itself, all velocities are evaluated at the arithmetic midpoints of two neighbouring (singularity-carrying) sheet points. No artificial vortex core is introduced. This midpoint collocation is the classical choice; Section 2.4 discusses a structurally different alternative.
As an independent check against implementation errors, three different sets of equations for the induced velocities can be selected at run time: (i) Equations (1)–(7) of [8,9], (ii) Equation (D1) of [5], and (iii) the expressions of chapters 33 and 36 of [4]. All three agree to the accuracy of the elliptic-integral evaluation. For consistency of nomenclature, the formulation of Branlard [4] is used throughout. The complete and incomplete elliptic integrals (chapter C.4 of [4]) are evaluated with the open-source routine RFL of Carlson and Notis [16]; the implementation was verified against Mathematica to 10 significant digits.
The accuracy of the induced velocities was verified separately for the ring part ( 0 < z < z S I V C ) and for the cylinder part ( z z S I V C ), and against the data of van Kuik [14].

2.3. Free-Wake (Slipstream) Iteration

The shape of the slipstream is determined by the induced velocities and vice versa, through two conditions [5,8,9]:
  • the sheet must be force free, implemented as γ = c T / ( 2 u s ) with u s 2 = ( 1 + u z ) 2 + u r 2 ;
  • the sheet must be aligned with the flow, implemented as ψ w ( z ) = ψ w ( ) = ψ w a k e , Equation (6).
An initial guess for the slipstream shape reduces the number of iterations. Three options are implemented: a cylinder of radius r S I V C ; the prescribed exponential shape
r s l ( z ) = r S I V C + r 0 r S I V C exp ( a z ) ;
and a prescribed algebraic shape deduced from the axial velocity on the axis of a vortex cylinder, attributed by van Kuik [5] to Snel and Schepers,
u z ( r = 0 , z ) = γ 2 1 + z z 2 + r S I V C 2 .
In Equation (9), r S I V C is given by Equation (5) while the decay parameter a (not to be confused with the axial induction factor) has to be estimated, a 1 2 . Figure 1 shows a two-parameter fit of the c T = 1 slipstream data of van Kuik [14], who normalises with r S I V C , v K : = 1 ; the fit gives r 0 = 1.03498 , r S I V C = 1.00006 (as it should) and a = 1.01452 .
Several update schemes for the sheet position have been implemented, selected by the parameter iter-sc:
(1)
Equations (13) and (14) of [9];
(2)
shifting the sheet points normal to the current sheet direction;
(3)
van Kuik’s [5] Equation (D.12),
r ( z ) = ψ r u z , ψ = ψ ( sheet , z ) ψ w a k e ,
damped with λ ( z ) = min ( z , 0.1 ) · under ;
(7)
as (3), but with the damping factor λ ( z ) = min 0.1 , under · z ;
(8)
as (7), plus Anderson acceleration (window 4) of the resulting fixed-point iteration.
Schemes 7 and 8 are the recommended ones; among the older schemes, No. 3 was preferred. All schemes may be under-relaxed, with under = 0.001 0.01 for scheme 1, < 0.01 for scheme 2, 0.1 0.9 for scheme 3 and 0.05 0.1 for schemes 7 and 8, where under acts as the prefactor of z .
The iteration is terminated when (i) the number of iterations exceeds maxiter, (ii) the sheet residual satisfies errsl epsSL , or (iii) (schemes 7 and 8) c P has stopped moving, | Δ c P | < 10 6 over the last 100 iterations (Cauchy criterion). In earlier versions of the code the iteration was stopped when err c P : = | c P c P , m o m | fell below a prescribed tolerance. As shown in Section 3, err c P is not a valid iteration criterion.

2.4. Node Collocation with a Spacing-Proportional Vortex Kernel

The analysis of Section 3 and Section 5 identifies a structural conflict of the midpoint-collocation scheme: stability requires a position-dependent damping, the edge region remains under-determined, and c P retains a fluctuation band. A fourth version of the code therefore changes the discretisation itself, following van Kuik and Lignarolo [7] (Appendices A and B):
1.
N vortex rings with circulations Γ i are collocated at the nodes  ( z i , r i ) ; ring 1 is pinned at the disc edge ( 0 , 1 ) and exempted from the boundary conditions, in line with the discussion of the leading edge in [7] (Section 4.3 therein).
2.
A vortex kernel regularises all evaluations at distances ρ < 1 2 β d s i using smoothed (Marshall-type) expressions. Deviating from the fixed δ = 0.002 of [7], the kernel radius is taken proportional to the local spacing, δ i = β d s i with β = e 1 / 2 0.607 , which matches the analytic contribution of the local sheet strip. A fixed δ biases c P by 10 2 as soon as d s δ , i.e. as soon as the spacing varies appreciably along the sheet, as it does with the clustering of Equations (3)–(4).
3.
The update is single-phase with uniform damping d = 0.05 ,
Γ i Γ i + d Γ i * Γ i , Γ i * = c T 2 v i d s i , r i r i + d ψ w a k e ψ i r i 1 + v z , i .
The kernel removes the saw-tooth mode (Section 3.2), so no z-dependent damping is needed. The normal-velocity (“fine-tuning”) phase of [7] (Appendix B.3) was tested and found to be neither stable nor necessary in this implementation: after the ψ -phase, v n 3 · 10 2 at the edge and 2 · 10 3 on the sheet; it is retained only as a diagnostic (see Section 5.4).

2.5. Implementation Notes

The code is written in FORTRAN 90/95 [13] and deliberately kept simple: a minimal set of language features is used and no algorithmic “tricks” are applied, so that the source remains readable and maintainable. It consists of three files only: mem.f (global variables), VortexCode.f (the slipstream iteration loop) and SubA.f (the function library, including the elliptic integrals). Compilation uses GNU Fortran [17] with the mandatory options -fno-automatic (local variables in subroutines and functions) and -fdefault-real-8 (64-bit reals, 15 –16 decimal digits). The latter must be applied to all source files including mem.f; otherwise the global arrays of the module remain 32-bit while the rest of the code works in double precision — an error that is easily overlooked and that limits the attainable residual to 10 6 .
The power coefficient is obtained from the axial velocity at the disc following Equations (15)–(20) of [9]. The radial integration of u z ( z = 0 , r ) from r = 0 to r = 1 uses Simpson’s rule; since this is second-order accurate, at least 10 3 points are required for an accuracy of 10 6 , and 3000 points are used throughout. As expected for a scheme in which every ring interacts with every other ring, the CPU time scales as N 2 (Figure 2).
All results reported below were, in addition, reproduced with a 1:1 Python replica of the code (numpy/scipy, identical Carlson elliptic integrals), which made the systematic parameter studies of Section 3 ( N = 300 4000 , up to 15 000 iterations) practicable.

3. Convergence Measures, Stability and the Power Coefficient

A numerical scheme deserves to be called meaningful only if it satisfies the elementary requirement
ϵ > 0 n N : after n iterations the result is accurate to ϵ .
Whether a given free-wake code satisfies Equation (13) depends on which quantity “the result” refers to. This section shows that the two quantities commonly monitored behave very differently in this respect.

3.1. What the Two Convergence Measures Measure

The code monitors
errsl = 1 N i = 1 N ψ ( z i , r i ) ψ w a k e d s i ,
err c P = c P c P , m o m c P , m o m .
These measure two fundamentally different things. errsl is the residual of the discrete system: it can, in principle, be driven to zero by iteration alone. err c P is the distance between the discrete solution and the continuum momentum-theory limit. Even at the exact discrete fixed point ( errsl = 0 ), err c P retains a discretisation floor made up of (i) a contribution 1 / N 2 from the ring discretisation (Table 2), (ii) a truncation error from the finite z S I V C , and (iii) the contribution of the disc-edge region, which the panels cannot resolve (Section 5). Consequently errsl < 10 8 neither implies nor can imply err c P < 10 8 .
Three further mechanisms decouple the two measures:
1.
The d s -weighting makes errsl blind at the disc edge. With the cosine clustering of Equations (3)–(4), d s z S I V C π 2 / ( 4 N 2 ) at the first ring — precisely where | Δ ψ | is largest (edge singularity) and where c P is most sensitive, because the weight 2 r d r of the power integration concentrates near r = 1 . The code therefore also reports the unweighted max | Δ ψ | .
2.
A damping factor λ z freezes the edge. The relaxation factor λ ( z ) = min ( z , 0.1 ) of scheme 3 vanishes at the disc, so the equilibration time of the first ring is 1 / z 1 10 4 iterations for N = 600 , z S I V C = 25 : errsl reaches its floor after 200 iterations while c P keeps creeping for thousands of iterations. A reference run over 15 000 iterations never reached a fixed point; c P wandered by ± 2 · 10 3 around c P , m o m at errsl 10 9 .
3.
err c P is not monotone. During this creep c P  crosses  c P , m o m . Values as small as err c P 10 6 occur at these zero crossings without indicating convergence at all.
Item 3 has a direct practical consequence: accuracy tables obtained by stopping the iteration on err c P — such as Table 2, which is representative of what is found in the literature — must be read with care, since they may report the position of a zero crossing rather than a converged result.
Two implementation errors were found and corrected in the course of this analysis and are reported here because they are easy to reproduce in any comparable code: the segment length d s entering Equation (14) was taken from a stale variable, which made errsl about 50 times too large, and the under-relaxation factor was applied twice, giving an effective relaxation min ( z , 0.1 ) · under 2 .

3.2. Stability: The Saw-Tooth (Kelvin–Helmholtz) Mode

A cylindrical vortex sheet is KH unstable; the discrete manifestation is a saw-tooth mode on the grid scale. Systematic tests with the Python replica ( N = 600 ) gave the following picture:
  • undamped Newton steps, Equation (11) with λ = 1 : the saw-tooth amplitude grows from 10 2 to O ( 1 ) and c P diverges;
  • constant damping: marginally stable at λ 0.003 for N = 600 and unstable for larger λ ; the threshold decreases with N;
  • λ z (scheme 3): stable, but the edge is frozen (see Section 3.1);
  • λ = min ( 0.1 , under z ) (scheme 7): stable for N = 600  and  N = 1200 , with an edge equilibration about 100 times faster than scheme 3.
Purely local alternatives — per-station Newton iterations with a geometry-consistent finite-difference Jacobian, Gauss–Seidel sweeps, and naive streamline tracing — were also tested. They either diverge or converge to a shifted fixed point: the ring-to-ring coupling near the edge is too strong for any purely local update. This is a genuine property of the problem, not of a particular implementation, and explains why free-wake AD codes need global (or strongly damped) updates.

3.3. The c P Band and Its Reduction by Richardson Extrapolation

With scheme 7, err c P drops to 10 4 within 350 iterations ( N = 600 , z S I V C = 25 ) and then oscillates slowly around c P , m o m ; with the Anderson-accelerated scheme 8, errsl reaches its floor three to four times faster still. The remaining oscillation band of c P , ± ( 3 5 ) · 10 4 for N = 600 , z S I V C = 25 , is not an iteration deficiency: at errsl 10 8 the discrete equations leave the unresolved edge region — and with it c P — undetermined within this band. Different (all stable) update schemes converge to slightly different pseudo-solutions inside the same band. The band shrinks with increasing N and z S I V C , but not with more iterations.
The code therefore reports, in addition to the last iterate, an exponentially weighted moving average of c P (time constant 50 iterations) and the fluctuation band ± ( max min ) / 2 over the last 100 iterations. We recommend quoting c P as “average ± band” and reducing the band by an N-study with Richardson extrapolation.
Table 3 and Figure 3 show such a study for the Betz case ( c T = 8 / 9 , exact momentum-theory value c P , m o m = 16 / 27 = 0.592593 ) computed with scheme 7 at z S I V C = 50 and 1100–1200 iterations per run. All extrapolation variants land at c P , = 0.59250 0.59253 , i.e. within ( 0.6 1.1 ) · 10 4 of 16 / 27 . The observed convergence order is p 1.2 — edge-dominated, and clearly not the smooth 1 / N 2 of the ring discretisation away from the edge. The recommended citation for this protocol is c P = 0.59251 ± 0.00007 .
A complementary study at fixed N = 2000 with z S I V C = 50 , 100 and 200 gave the perhaps counter-intuitive result that a larger  z S I V C degrades the result: the bands grow from 6.8 · 10 5 to 2.0 · 10 4 and 3.9 · 10 4 , and the means move away from 16 / 27 . The reason is that at fixed N all cell sizes scale z S I V C — the first (edge) cell even z S I V C / N 2 — so the loss of resolution outweighs the smaller truncation error of the cylinder, which is already subdominant at z S I V C = 50 . The practical rule is therefore: use z S I V C = 50 and invest the available effort in N; a double extrapolation in ( N , z S I V C ) is unnecessary.

3.4. Node Collocation: A Unique Fixed Point

The node-collocation discretisation of Section 2.4 changes this picture qualitatively. Table 4 lists the converged results for the Betz case: the residual max | Δ ψ | reaches machine level ( 10 12 ), there is no c P band and no drift, i.e. the iteration converges to a unique fixed point. The error in c P saturates between N = 1600 and N = 3200 : the fixed points converge (Aitken limit) to c P , l i m = 0.592545 , leaving an N-independent model bias of + 4.7 · 10 5 with respect to momentum theory, while the pre-saturation discretisation error decays with an observed order p 1 (Figure 4). Already at N = 1600 the error is + 4.9 · 10 5 , i.e. better than the midpoint scheme at N = 4000 .
Separating the origin of the remaining bias — truncation of the vortex tube at L t u b e = 30 R w a k e versus the kernel model at the tube junction and at the edge — requires runs with N L t u b e ; at fixed N, enlarging L t u b e degrades the result because all cells coarsen, the same resolution/truncation confounding as in the z S I V C -study above. In contrast to midpoint collocation, the remaining c P error is a smooth, pure discretisation error without band or drift, so that Richardson extrapolation is clean (Figure 4). The edge singularity itself remains kernel-smoothed; resolving the conjectured 1 / s zone (Section 5) would still require an analytic edge cell or a multivalued sheet parametrisation.

4. Results for the Two Reference Cases

4.1. Propeller, c T = 1

The propeller case with c T = 1 is only moderately non-linear: the slipstream contracts to r = 0.9239 , i.e. to about 0.93 of the disc radius, and c P = 1.207 , to be compared with the linear approximation c P , l i n = 1 + c T / 4 = 1.25 of [18] (Equation (9.107) therein). Figure 5, Figure 6 and Figure 7 compare the computed axial velocity and vortex strength along the slipstream, and the streamline pattern, with the data of van Kuik [14]. The agreement is good over the whole range except for the immediate vicinity of the disc edge, z 10 3 , where the two codes deviate — exactly the region discussed in Section 5. The computed edge streamline coincides with ψ w a k e = 0.60355339 from Equation (6), which is an independent check of the converged solution.

4.2. Betz Turbine, c T = 8 / 9

For the Betz case the slipstream expands to r = 2 and ψ w a k e = 1 / 3 . Figure 8, Figure 9, Figure 10 and Figure 11 show the axial and radial induced velocities, the vortex strength and the streamline pattern. Both v z and v r tend to finite values as z 0 + in these regularised solutions — a point taken up in Section 5. The converged power coefficient is c P = 0.59251 ± 0.00007 (Section 3.3) with midpoint collocation and c P = 0.5925454 with node collocation at N = 3200 (Section 3.4), against the momentum-theory value 16 / 27 = 0.592593 .

5. The Disc-Edge Singularity

Along a force-free vortex sheet, γ u s = c T / 2 is constant. Van Kuik [5,11] proposes that at the disc edge the wake boundary rolls up into a self-similar (Prandtl/Kaden-type) spiral whose unrolled strength diverges as
γ ( s ) s 1 / 2 , s 0 ,
with s the arc length measured from the edge. Is Equation (16) an established result or a hypothesis? A review of the literature together with the numerical evidence of the present model gives the following picture.

5.1. What Is Established

(a) The linear (frozen-wake) model is singular at the rim. For a semi-infinite vortex cylinder of constant strength, the induced velocity field is singular at the rim: v z diverges logarithmically and v r / s . This is analytic — it is visible in the very Branlard expressions [4] used in this code — and Chattot [12] derives from the Biot–Savart law that the linearised slip line behaves as r R x ln x near the edge.
(b) The non-linear force-free problem is singular at the leading edge of the sheet. All potential-flow computations that let γ adjust to the force-free condition find the sheet strength growing (resolution-limited) towards the leading edge. Van Kuik [19] states that “in all flow cases the distributions have a singularity at the leading edge”, with a load-dependent strength; see also [7]. The qualitative statement “the disc edge is singular” is therefore established.

5.2. The 1 / s Spiral: Strongly Supported, Not Proven

The analytical basis of Equation (16) is the local non-linear analysis of Schmidt and Sparenberg [20] for a large constant normal load. Van Kuik revisited the edge in [11] and constructed the flow induced by, and a steady solution for, Prandtl’s self-similar vortex-sheet spirals [21,22]. Equation (16) is exactly the Kaden roll-up law, which is rigorously established for the unsteady two-dimensional similarity problem (see, e.g., [15]). Independent support comes from Spalart [23], who concludes — explicitly labelling it a conjecture — that “the cross-section of the vortex sheet probably begins with a 45 spiral”, supported by a viscous numerical solution. In contrast, Chattot [12] obtains, from a linearised analysis with a prescribed constant sheet strength, logarithmic velocity singularities and a bounded γ ; the disagreement is traceable to that assumption, since it is precisely the force-free coupling γ = c T / ( 2 u s ) that drives γ where u s 0 . No free-wake computation has resolved the spiral, and no experiment resolves the exponent. Thus the existence of the singularity is established, whereas the specific form (16) is a well-founded, independently supported, but unproven hypothesis.

5.3. Numerical Evidence from the Present Model

The converged solutions of the present model show a bounded edge strength. A log–log fit γ s a over the first rings of converged double-precision solutions (scheme 7) gives the exponents of Table 5: a = 0.00 ± 0.04 over two decades in s, with γ e d g e 0.55 < γ = 2 / 3 and, at matched s, N-independent values. This is consistent with the logarithmic decrease seen in Figure 10.
This result does not contradict the spiral picture. A discretisation of the present class is structurally unable to represent it, for three independent reasons:
1.
the single-valued parametrisation r s l ( z ) of the sheet excludes any multivalued (rolled-up) geometry;
2.
the self-induction term, Equations (7)–(8) (or the vortex kernel of Section 2.4), regularises the Biot–Savart kernel at the panel scale d s ;
3.
the force-free update evaluated with this regularised velocity keeps γ bounded, because u s cannot reach zero.
The code therefore converges to the regularised solution of the no-roll-up problem, which is why the present findings differ from van Kuik’s s 1 / 2  and from Chattot’s constant- γ picture. Practically, the singularity is integrable ( γ d s < ), so c P converges unaffected; its footprint in the computation is the saturation of max | Δ ψ | at the first ring(s) and the c P band of Section 3.3. Any attempt to settle the exponent numerically will require either an analytic edge element or a multivalued sheet parametrisation — neither of which is contained in any of the free-wake AD codes known to the author.

5.4. A Note on the “Fine-Tuning” of van Kuik and Lignarolo

The convergence scheme of [7] (Appendix B.3) switches, after convergence of the ψ -condition with damping 0.05, to the condition v n = 0 , applied as Δ r i = v n , i d with d = 0.0025 (“fine tuning”). Transferring this second phase to a midpoint-collocation code fails structurally: after ψ -convergence, v n at the first 5 rings is O ( 1 ) — 0.9 at the first ring — which is a discretisation artefact of midpoint collocation and not a usable residual; stepping on it destroys the solution for either sign of the update. In the node-collocation discretisation of Section 2.4 the artefact disappears ( v n 3 · 10 2 at the edge), but the v n -phase is then unnecessary, because the ψ -iteration already converges to machine accuracy. It is worth noting that even in [7] the fine-tuning does not resolve the edge: a 40% violation of Δ p s h e e t = 0 is reported at the first ring, and the authors conclude that the boundary conditions hold for a vortex sheet but not for its leading edge.

6. Discussion

Six model and discretisation parameters were found to influence the accuracy of the computed solution: (i) the number of rings N; (ii) the axial location z S I V C of the semi-infinite cylinder; (iii) the number of integration points at the disc; (iv) the model used for the self-induction; (v) the initial and converged shape of the slipstream; and (vi) the number and distribution of vortex rings close to the disc edge. This confirms van Kuik’s finding [5] that these parameters are interrelated rather than independent. Nevertheless, increasing N always increases the accuracy, whereas increasing z S I V C at fixed N does not (Section 3.3).
The results suggest the following practical recommendations for free-wake actuator-disc computations:
1.
Do not stop the iteration on the momentum-theory deviation. Use the sheet residual, monitor the unweighted max | Δ ψ | in addition to the d s -weighted mean, and treat err c P as a verification quantity, never as a convergence criterion.
2.
Quote c P as “average ± band” when using midpoint collocation, and reduce the band by an N-study with Richardson extrapolation rather than by more iterations.
3.
Use z S I V C 50 and invest the remaining computational effort in N.
4.
Prefer node collocation with a spacing-proportional kernel if a unique fixed point is required, e.g. for gradient-based optimisation or for embedding the model in a larger solver. A kernel radius proportional to the local spacing is essential on clustered grids.
5.
Do not expect the edge exponent from this class of model. A bounded γ at the edge is a property of the regularisation, not a physical result.
Returning to Equation (13): for the sheet residual, the improved iteration demonstrably satisfies the requirement, and node collocation does so with machine-level residuals. For err c P the requirement can hold only in the combined limit (iterations , N , z S I V C ), because at fixed discretisation err c P has a floor that no iteration can undercut. This distinction is elementary, but it is not usually made explicit in the actuator-disc literature, where agreement with momentum theory to a given number of digits is often presented as evidence of numerical convergence.
The limitations of the present work should be stated clearly. The model is restricted to a uniformly loaded, axisymmetric, steady, inviscid disc without swirl; the generalisation to non-uniform loading exists analytically [10] but has not been implemented here. The remaining model bias of the node-collocation scheme ( 4.7 · 10 5 in c P ) has not been decomposed into its tube-truncation and kernel contributions, which would require runs with N L t u b e . Finally, neither discretisation resolves the edge region itself, so the results of Section 5 bound what such models can say about the singularity rather than settling the question.

7. Conclusions

An independent, open-source FORTRAN 90/95 implementation of the vortex-ring/vortex-cylinder model for a uniformly loaded actuator disc, together with a 1:1 Python replica, was used to examine the numerical behaviour of this model class for the propeller case c T = 1 and the Betz case c T = 8 / 9 . The conclusions are:
1.
The sheet residual errsl and the momentum-theory deviation err c P measure different things. errsl can be driven below 10 8 while err c P stagnates at a discretisation floor; err c P is not monotone and is therefore unsuitable as a stopping criterion.
2.
A damping factor z (optionally with Anderson acceleration) stabilises the Kelvin–Helmholtz saw-tooth mode and reaches the residual floor within a few hundred iterations, where the previously used damping z required 10 4 iterations or never settled.
3.
With midpoint collocation, c P retains a fluctuation band ( ± 4 · 10 4 at N = 600 , z S I V C = 25 ) that reflects the under-determined edge region. An N-study with Richardson extrapolation gives c P = 0.59251 ± 0.00007 for the Betz case, i.e. within 10 4 of 16 / 27 .
4.
Node collocation with a spacing-proportional vortex kernel and a pinned first ring converges with uniform damping to a unique fixed point (residuals 10 12 , no band, no drift) and reaches c P ( 16 / 27 ) = + 4.7 · 10 5 , a residual model bias that is independent of N.
5.
The converged solutions exhibit a bounded edge strength with fitted exponent a = 0.00 ± 0.04 , differing from both the γ s 1 / 2 spiral and the constant- γ picture. This is the expected behaviour of a single-valued, regularised sheet discretisation and does not decide between the two proposals; the existence of the edge singularity is established, its specific form remains an open question.
Future work should address the decomposition of the remaining model bias, the extension to non-uniformly loaded discs, and — for the edge question — an analytic or multivalued edge element capable of representing a rolled-up sheet.

Author Contributions

The author confirms sole responsibility for conceptualisation, methodology, software, validation, formal analysis, investigation, writing—original draft preparation and writing—review and editing.

Funding

This research received no external funding.

Data Availability Statement

The FORTRAN source code, its Python replica, the configuration files of all cases discussed in this paper and the post-processing scripts are openly available at https://github.com/Schaffarczyk/RingsCylinderActuatorDisk/. The reference data of [14] are available from their author.

Acknowledgments

The author would like to thank Gijs van Kuik for providing his reference data ( c T = 1 and c T = 8 / 9 ) and Emmanuel Branlard for helpful discussions.

Conflicts of Interest

The author declares no conflicts of interest.

Abbreviations

AD actuator disc
EWMA exponentially weighted moving average
KH Kelvin–Helmholtz
SIVC semi-infinite vortex cylinder

References

  1. van Kuik, G.; Sørensen, J.; Okulov, V. Rotor theories by Professor Joukowsky: Momentum theories. Prog. Aerosp. Sci. 2015, 73, 1–18. [Google Scholar] [CrossRef]
  2. Schaffarczyk, A. Introduction to Wind Turbine Aerodynamics, 3rd ed.; Springer: Berlin/Heidelberg, Germany, 2024. [Google Scholar]
  3. Sørensen, J. General Momentum Theory for Horizontal Axis Wind Turbines; Springer International Publishing: Cham, Switzerland, 2016. [Google Scholar]
  4. Branlard, E. Wind Turbine Aerodynamics and Vorticity-Based Methods; Springer: Cham, Switzerland, 2017. [Google Scholar]
  5. van Kuik, G. The Fluid Dynamic Basis for Actuator Disc and Rotor Theories, revised 2nd ed.; IOS Press: Amsterdam, The Netherlands, 2022. [Google Scholar]
  6. ye, S. A simple vortex model. In Proceedings of the Proceedings of the 3rd IEA Symposium on the Aerodynamics of Wind Turbines (IEA Annex XI), Harwell, ETSU, UK, 1990. [Google Scholar]
  7. van Kuik, G.; Lignarolo, L. Potential flow solutions for energy extracting actuator disc flows. Wind Energy 2016, 19, 1391–1406. [Google Scholar] [CrossRef]
  8. Bontempo, R.; Manna, M. A ring-vortex free-wake model for uniformly loaded propellers. Part I—Model description. In Proceedings of the Proceedings of the 73rd Conference of the Italian Thermal Machines Engineering Association (ATI 2018), Pisa, Italy, 12–14 September 2018, 2018; Energy Procedia; Vol. 148. [Google Scholar]
  9. Bontempo, R.; Manna, M. A ring-vortex free-wake model for uniformly loaded propellers. Part II—Solution procedure and analysis of the results. In Proceedings of the Proceedings of the 73rd Conference of the Italian Thermal Machines Engineering Association (ATI 2018), Pisa, Italy, 12–14 September 2018; Energy Procedia; 2018, p. Vol. 148. [Google Scholar]
  10. Conway, J. Exact actuator disk solutions for non-uniform heavy loading and slipstream contraction. J. Fluid Mech. 1998, 365, 235–267. [Google Scholar] [CrossRef]
  11. van Kuik, G. The edge singularity of an actuator disc with a constant normal load. In Proceedings of the Proceedings of the 22nd ASME Wind Energy Symposium, Reno, NV, USA, 6–9 January 2003; 2003, p. number AIAA-2003-0356. [Google Scholar] [CrossRef]
  12. Chattot, J.J. On the edge singularity of the actuator disk model. J. Sol. Energy Eng. 2021, 143, 014502. [Google Scholar] [CrossRef]
  13. Chapman, S. Fortran 90/95 for Scientists and Engineers, 2nd ed.; McGraw-Hill: New Delhi, India, 2013. [Google Scholar]
  14. van Kuik, G. Reference data for the uniformly loaded actuator disc, cT=1 and cT=-8/9. Private communication, 2021. [Google Scholar]
  15. Saffman, P. Vortex Dynamics; Cambridge University Press: Cambridge, UK, 1992. [Google Scholar]
  16. Carlson, B.; Notis, E. Algorithm 577: Algorithms for incomplete elliptic integrals. ACM Trans. Math. Softw. 1981, 7, 398–403. [Google Scholar] [CrossRef]
  17. The GCC Team. The GNU Fortran Compiler. Available online: https://gcc.gnu.org/fortran/ (accessed on 27 July 2026).
  18. Breslin, J.; Andersen, P. Hydrodynamics of Ship Propellers; Cambridge University Press: Cambridge, UK, 1994. [Google Scholar]
  19. van Kuik, G. On the velocity at wind turbine and propeller actuator discs. Wind Energy Sci. 2020, 5, 855–865. [Google Scholar] [CrossRef]
  20. Schmidt, G.; Sparenberg, J. On the edge singularity of an actuator disk with large constant normal load. J. Ship Res. 1977, 21, 125–131. [Google Scholar] [CrossRef]
  21. van Kuik, G. The flow induced by Prandtl’s self-similar vortex sheet spirals at infinite distance from the spiral kernel. Eur. J. Mech. B/Fluids 2004, 23, 607–616. [Google Scholar] [CrossRef]
  22. van Kuik, G. A steady solution for Prandtl’s self-similar vortex sheet spirals. Eur. J. Mech. B/Fluids 2009, 28, 296–298. [Google Scholar] [CrossRef]
  23. Spalart, P. On the simple actuator disk. J. Fluid Mech. 2003, 494, 399–405. [Google Scholar] [CrossRef]
Figure 1. Two-parameter ( a 2 , k ) fit of the c T = 1 slipstream of van Kuik [14] according to r ( z ) = r + ( 1 r ) exp ( a 2 z k ) with a 2 = 1.7743 and k = 0.7570 . Abscissa: axial coordinate z (logarithmic); ordinate: slipstream radius r.
Figure 1. Two-parameter ( a 2 , k ) fit of the c T = 1 slipstream of van Kuik [14] according to r ( z ) = r + ( 1 r ) exp ( a 2 z k ) with a 2 = 1.7743 and k = 0.7570 . Abscissa: axial coordinate z (logarithmic); ordinate: slipstream radius r.
Preprints 226231 g001
Figure 2. Elapsed CPU time for 10 slipstream iterations as a function of the number of rings N (double logarithmic; symbols: measurement, line: fit). Hardware: Intel i3-4160 at 3.6 GHz; operating system: openSUSE Leap 42.3 Linux, kernel 4.12.14-lp151.28.44-default.
Figure 2. Elapsed CPU time for 10 slipstream iterations as a function of the number of rings N (double logarithmic; symbols: measurement, line: fit). Hardware: Intel i3-4160 at 3.6 GHz; operating system: openSUSE Leap 42.3 Linux, kernel 4.12.14-lp151.28.44-default.
Preprints 226231 g002
Figure 3. Betz case, z S I V C = 50 , midpoint collocation, scheme 7. (Left) Richardson extrapolation of c P ( N ) over 1 / N 2 with the fluctuation bands as error bars; the extrapolated value is 0.592522 . (Right) Evolution of c P during the iteration for N = 1000 , 2000 and 4000; the dashed line is c P , m o m = 16 / 27 .
Figure 3. Betz case, z S I V C = 50 , midpoint collocation, scheme 7. (Left) Richardson extrapolation of c P ( N ) over 1 / N 2 with the fluctuation bands as error bars; the extrapolated value is 0.592522 . (Right) Evolution of c P during the iteration for N = 1000 , 2000 and 4000; the dashed line is c P , m o m = 16 / 27 .
Preprints 226231 g003
Figure 4. Node collocation, N-study for the Betz case. (Left) Error scaling of the converged fixed points: circles, distance to 16 / 27 ; squares, distance to the model limit c P , l i m = 0.592545 . (Right) c P ( N ) over 1 / N together with the model limit and 16 / 27 .
Figure 4. Node collocation, N-study for the Betz case. (Left) Error scaling of the converged fixed points: circles, distance to 16 / 27 ; squares, distance to the model limit c P , l i m = 0.592545 . (Right) c P ( N ) over 1 / N together with the model limit and 16 / 27 .
Preprints 226231 g004
Figure 5. Axial distribution of the induced axial velocity on the slipstream, c T = 1 : present code (red), data of van Kuik [14] (green), asymptotic value v z ( ) (black).
Figure 5. Axial distribution of the induced axial velocity on the slipstream, c T = 1 : present code (red), data of van Kuik [14] (green), asymptotic value v z ( ) (black).
Preprints 226231 g005
Figure 6. Axial distribution of the vortex strength γ on the slipstream, c T = 1 : present code, data of van Kuik [14] and the momentum-theory value γ .
Figure 6. Axial distribution of the vortex strength γ on the slipstream, c T = 1 : present code, data of van Kuik [14] and the momentum-theory value γ .
Preprints 226231 g006
Figure 7. Computed streamlines (lines of ψ = const . ) for c T = 1 ; the wake boundary is drawn in red. The edge streamline coincides with ψ w a k e = 0.60355339 .
Figure 7. Computed streamlines (lines of ψ = const . ) for c T = 1 ; the wake boundary is drawn in red. The edge streamline coincides with ψ w a k e = 0.60355339 .
Preprints 226231 g007
Figure 8. Axial distribution of the induced axial velocity on the slipstream, Betz case ( c T = 8 / 9 ).
Figure 8. Axial distribution of the induced axial velocity on the slipstream, Betz case ( c T = 8 / 9 ).
Preprints 226231 g008
Figure 9. Axial distribution of the induced radial velocity on the slipstream, Betz case.
Figure 9. Axial distribution of the induced radial velocity on the slipstream, Betz case.
Preprints 226231 g009
Figure 10. Axial distribution of the vortex strength on the slipstream, Betz case. Note the logarithmic decrease towards the disc edge (small z), which corresponds to the fitted exponent a 0 of Table 5.
Figure 10. Axial distribution of the vortex strength on the slipstream, Betz case. Note the logarithmic decrease towards the disc edge (small z), which corresponds to the fitted exponent a 0 of Table 5.
Preprints 226231 g010
Figure 11. Computed streamlines for the Betz case, c T = 8 / 9 ; red: slipstream, ψ w a k e = 0.33333 .
Figure 11. Computed streamlines for the Betz case, c T = 8 / 9 ; red: slipstream, ψ w a k e = 0.33333 .
Preprints 226231 g011
Table 1. Major and minor parameters of the model. The names are those of the configuration file inpa.dat of the code.
Table 1. Major and minor parameters of the model. The names are those of the configuration file inpa.dat of the code.
Name Meaning
major
c T thrust coefficient
restart LOGICAL; if .true. the code restarts from an existing sls.DAT
N number of vortex rings
ZSIVC axial location of the semi-infinite vortex cylinder
minor
selfind (0,1), self-induction off/on
update (0,1), default = 1 , debugging only
maxiter maximum number of slipstream iterations ( 2000 used)
under under-relaxation parameter, see Section 2.3
epsSL stop tolerance for the sheet residual errsl
wakety initial wake shape: 1 = exponential, Equation (9); 2 = fit of the data of [14]; 3 = algebraic, Equation (10)
wake-a decay parameter a for wakety = 1
iter-sc update scheme: 3 = ψ -condition; 7 = ψ with z -damping; 8 = 7 + Anderson acceleration; V4 = node collocation, Section 2.4
Table 2. Error in c P as a function of the number of rings, obtained with the midpoint scheme and the iteration stopped at err c P < 10 6 ( z S I V C = 200 ). See Section 3.1 for a detailed discussion.
Table 2. Error in c P as a function of the number of rings, obtained with the midpoint scheme and the iteration stopped at err c P < 10 6 ( z S I V C = 200 ). See Section 3.1 for a detailed discussion.
Number of Rings N Error in c P
4000 1.5 · 10 4
8000 1.7 · 10 5
16000 1.6 · 10 6
Table 3. N-study for the Betz case, z S I V C = 50 , midpoint collocation with scheme 7. c ¯ P is the exponentially weighted moving average, the band is ± ( max min ) / 2 over the last 100 iterations.
Table 3. N-study for the Betz case, z S I V C = 50 , midpoint collocation with scheme 7. c ¯ P is the exponentially weighted moving average, the band is ± ( max min ) / 2 over the last 100 iterations.
N c ¯ P Band ± c ¯ P c P , mom
1000 0.5923884 3.8 · 10 4 + 2.0 · 10 4
2000 0.5924765 6.8 · 10 5 + 1.2 · 10 4
4000 0.5925145 5.3 · 10 5 + 7.8 · 10 5
Table 4. Node collocation with a spacing-proportional kernel (Section 2.4), Betz case: the iteration converges to a unique fixed point — residuals at machine level, no c P band, no drift.
Table 4. Node collocation with a spacing-proportional kernel (Section 2.4), Betz case: the iteration converges to a unique fixed point — residuals at machine level, no c P band, no drift.
N max | Δ ψ | c P c P ( 16 / 27 )
400 4 · 10 12 0.5920118 + 5.8 · 10 4
800 6 · 10 12 0.5923623 + 2.3 · 10 4
1600 4 · 10 12 0.5925434 + 4.9 · 10 5
3200 9 · 10 12 0.5925454 + 4.7 · 10 5
Table 5. Fitted edge exponents a of γ s a (Betz case, z S I V C = 25 , scheme 7, converged solutions).
Table 5. Fitted edge exponents a of γ s a (Betz case, z S I V C = 25 , scheme 7, converged solutions).
Fit Window (Rings) s-Range a ( N = 600 ) a ( N = 1200 )
2–20 5 · 10 4 4 · 10 2 0.04 + 0.02
3–40 8 · 10 4 1 . h 5 · 10 1 0.03 0.02
5–80 1 · 10 3 6 · 10 1 + 0.01 0.02
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.
Copyright: This open access article is published under a Creative Commons CC BY 4.0 license, which permit the free download, distribution, and reuse, provided that the author and preprint are cited in any reuse.
Prerpints.org logo

Preprints.org is a free preprint server supported by MDPI in Basel, Switzerland.

Subscribe

© 2026 MDPI (Basel, Switzerland) unless otherwise stated

Accessibility

Disclaimer

Terms of Use

Privacy Policy

Privacy Settings