Question about code snippet of subroutine inductionFactors2 from AeroDyn module

Dear all,
Here is the code snippet from inductionFactors2 (inductionFactors2, aerodyn module, Openfast v3.5.3),

!..
! compute axial induction factor:
!..
sigma_p = Bchord/(TwoPi_R8r) ! local solidity
k = sigma_pcn/(4.0_R8KiFsphisphi)*drdz

! “corrections”
VxCorrected = Vxcos(cantAngle)+xVelCorr
kCorrectionFactor = 1.0_R8Ki + xVelCorr/(Vx
cos(real(cantAngle,R8Ki)))
kpCorrectionFactor = kCorrectionFactor
k = k*kCorrectionFactor**2

my question is why kCorrectionFactor takes that form?
When dealing with a rigid system, Vx is zero, which make kCorrectionFactor goes to infinite, so does factor k. That leads to the breakdown of momentum theory no mater what inflow velocity is.
I think kCorrectionFactor should be calculated according to following equation,
kCorrectionFactor = 1 / (1−"Vx∗cos(cantAngle)" /“xVelCorr” )
in which ‘minus’ comes from the local blade coordinate system illustrated in Aerodyn Manual,
When Vx is positive, it reduce the relative Vwind.
Here is the derivation process of kCorrectionFactor,

Best regards,

Dear @Shaozhuo.Luo

In the current implementation xVelCorr is zero. You are correct that Vx could be zero, and we could potentially “protect” the calculation of kCorrectionFactor to avoid it being infinite. I do believe that most compilers would return kCorrectionFactor =1

Let us know if my interepretation is incorect and if you observe weird behavior.

best regards,

Emmanuel

Thanks for your help.

Best regards