A problem about the code for calculation Reduction shape function in ElastoDyn

Dear Jonkman
Hello, I had a problem during reading the Elastodyn code, so could you please help me to solve the problem? When I read the code of ElastoDyn I found a piece of code for calculation the Reduction shape functions and This code is necessary to calculate the linear velocity of elements of blade. I don’t quite understand the meaning of Reduction shape functions and why do calculate like this?

! Integrate to find the blade axial reduction shape functions:

     DO I = 1,3     ! Loop through all blade DOFs
        DO L = 1,3  ! Loop through all blade DOFs
           AxRdBld    (  I,L  ) = 0.5*p%DRNodes(J)*(                          &
                                  p%TwistedSF(K,1,I,J,1)*p%TwistedSF(K,1,L,J,1) &
                                + p%TwistedSF(K,2,I,J,1)*p%TwistedSF(K,2,L,J,1) )
           p%AxRedBld   (K,I,L,J) = AxRdBld(I,L)
        ENDDO       ! L - All blade DOFs
     ENDDO          ! I - All blade DOFs

Thank you !


Dear JiYuan.Men,

What is called the “axial reduction shape function” in ElastoDyn is the radial shortening of the blade, associated with transverse deflection. That is, as the blade deflects in flap or edge, each node will move axially (radially) closer to the root because the distance along the deflected (curved) blade remains constant. This axial deflection is important for centrifugal stiffening of the blade. This is discussed further in the following forum topic: http://forums.nrel.gov/t/coupled-blade-modes-in-fast/314/1.

Best regards,

Dear Jonkman
I’m sorry to bother you and seek for your help again, because I have another problem . When I read the subroutine CalculateForcesMoents in ElastoDyn , a piece of code for calculatiton PFrcS0B confused me. According to note, the PFrcSOB means Partial force at the blade root (point S(0)) due to the blade. But the PFrcSOB is get by Tip’s mass times its velocity( f=m_Tip.v_Tip ). If PFrcS0B is a kind of inertial force, in my opinion, it should be get by mass times acceleration( f=m_Tip.a_Tip ) just like the code of FrcS0Bt. This is my question and hope for your help. Thank you very much.

Best Regards


Dear JiYuan.Men,

The ElastoDyn module of FAST / OpenFAST uses what are called “partial loads”. Partial loads are used to expediently calculated the reaction loads at various points in the wind turbine as soon as the accelerations are solved via the equations of motion. For a given reaction load (F), the partial loads (F_r) are defined as the acceleration-proportional terms, i.e.

F(qdd,qd,q,t) = SUM( F_r(q,t)*qdd_r, r=1,NDOF ) + F_t(qd,q,t)

where t is time, q is the set of DOFs, qd is the set of first time-derivatives of DOFs, qdd, is the set of second time-derivatives of DOFs, NDOF is the number of DOFs, and F_t are the terms of F that are not directly proportional to acceleration of each DOF (qdd_r).

Likewise, ElastoDyn uses “partial velocities” (v_r) defined as:

v(qd,q,t) = SUM( v_r(q,t)*qd_r, r=1,NDOF ) + v_t(q,t) = SUM( v_r(q,t)*qd_r, r=1,NDOF )

(v_t is zero for all velocities).

The resulting acceleration is:

a(qd,qd,q,t) = SUM( v_r(q,t)*qdd_r, r=1,NDOF ) + SUM( d/dt( v_r(q,t) )*qd_r, r=1,NDOF )

Thus, a partial velocity (v_r) is not itself a velocity, but the vector direction associated with the velocity or acceleration of each DOF.

In the ElastoDyn code snippet you attached, PFrcS0B is F_r for the blade-root loads and FrcS0Bt is the associated F_t. PLinVelES is v_r for points along the blade.

More information is given in the “unofficial FAST theory manual” discussed here: http://forums.nrel.gov/t/fast-theory-manual/1322/253.

I hope that helps.

Best regards,