Questions about the HydroDyn Module

Dear jonkman,
Please reply for my above post.
Thanking you.

I am running FAST 7.01.

FAST crashed. I have traced the error back to a call to the function Catenary in which the allocatable array LNodesX was not allocated and therefore could not be indexed. This was because the integer variable LineNodes was set to zero by default in FAST_Mods. There is also a duplicate local definition of the variable LineNodes in FloatingPlatform. LineNodes is not defined anywhere in FltngPtfmLd but is passed to Catenary as the 12th argument. LineNodes is enumerated (equal to LineNodesIn) in InitFltngPtfmLd but I cannot find where it is declared. Is this in a module which has been included by calling a USE statement?

Where does LineNodes get passed from or initialized?

Is it intended as a future user-defined variable?

I can see the sense of offering output at a user-specified number of locations along mooring lines and setting up a default number of zero until implemented in the future. I can also see that it ought to be possible to compute the mooring forces with LineNodes = 0. So why is it not possible to run HydroCalc in debug mode?

Kind Regards,

Mark

Hi, Mark.

I assume the problem you’re having is this one: http://forums.nrel.gov/t/compiling-fast/411/12

Using the array syntax (:slight_smile: to indicate “use the entire array” causes an issue with the array bounds checking (a feature enabled in debug mode) when the array is allocated to length 0 (you say it’s not allocated, but I think it is allocated to size zero). I don’t have the source code in front of me now, but I believe if you remove the “(:)” on the arrays sent to the Catenary routine, you should be able to run the code in debug mode. I fixed that problem in FAST v7.02.00d-bjj, so you might want to see how that differs from the version you’re using.

Dear Jonkman,

I am making the comparison of 1st and 2nd order wave excitation for the Hywind spar-buoy.
I read the article “Assessment of First and Second-Order Wave Excitation Load Models for Cylindrical Substructures” and I would ask you why you compute the wave forces " by setting the drag coefficient to zero and by disabling all structural degrees of freedom."?
Is this the way to compute the wave forces in FAST?

Thank you.

Best Regards,
Gabriele

Dear Gabrielle,

Those simplifications were made for that paper purely for comparing the first- and second-order wave-excitation loads between the strip theory and potential-flow solutions.

In general, FAST can model the hybrid combination of strip theory and potential flow, including structural degrees of freedom.

Best regards,

Dear Jason,

As you mentioned above, HydroDyn is able to model Flooded and ballasted members. We normally know how to model flooded members (ballasted with water). But is it possible to model dry ballast other than fluid? Is the way the same to flooded members?

In addition, when a fluid or dry ballast is added to the floating platform, will the center of gravity be automatically updated in the FAST calculation?

Finally, I could not find where to define the rotor mass and inertia, are they included in HubMass and HubIner?

Thanks a lot.

Best regards,
Yingyi Liu

Dear Yingyi Liu,

Yes, the flooded/ballasted members feature of HydroDyn can also be used to model dry ballasting using the same approach (HydroDyn does not model the sloshing of these members anyway). The center of gravity is automatically updated within the FAST calculation when including flooded/ballasted members.

The rotor mass and inertia are not directly specified within FAST, but are calculated from the specified hub mass, hub inertia, and distributed mass of each blade (and are written to the ElastoDyn summary file).

Best regards,

Dear Jason,

Thanks for your prompt response. Forgive me to add one more question since I forgot to ask.

Although the center of gravity is updated automatically, but from another post (Question regarding HydroDyn Strip Theory Implementation - #3 by Daniel.Walia)
and the HydroDyn manual (page 36) it looks that we need to add the hydrostatic
restoring matrix associated with ballasted members manually.

Let’s look at the following equation, if we are using a hybrid potential-flow and strip-theory model for all the members (including ballasted members), Can I say that only the terms mfgxf, mfgyf, -mfgzf in AddCLin(4,4), AddCLin(4,6), AddCLin(5,5) and AddCLin(5,6) are necessary to be defined in the AddCLin matrix of the HydroDyn input file, when ballasted members are added to an existing platform? Because the other terms associated with the undisplaced platform have already been defined by potential-flow theory in the Wamit file *.hst. Is my understanding correct?

Can the center of mass of ballasting (xf, yf, zf) and the ballasting mass mf be output by FAST?

In addition to AddCLin matrix and change of gravity center, will the ballasted members bring other effects to the floating wind turbine system that we need to input information to some other place of the HydroDyn or ElastoDyn file?

Is it possible to directly output from FAST or calculate from the output of a FAST simulation, the buoyancy center, the gravity center and the metacenter height of a platform, at each time instant? I found these are three important parameters when analyzing the hydrostatic stability of a floating system. If not, just asking by the way that will you/your team have a plan to include them in future development of the code?

Thank you so much.
Best Regards,
Yingyi Liu

Dear Jason,

I would like to know how FAST calculates the Blade mass and tower mass. In this post (http://forums.nrel.gov/t/results-comparison-fast-and-bladed/206/16)
you mentioned that “In the Modes, BModes, and FAST codes, the tower mass is defined as a distributed mass per unit length (varying along the length), which gets integrated along the tower in order to find the overall mass.”
Could you give a formula to show how the mass distribution is integrated?

The blade-section spans used for the integration are defined in the file, e.g, “NRELOffshrBsline5MW_AeroDyn_blade.dat”, am I correct? But how about the file that defines the tower-section spans? Are the tower-section spans defined in the AeroDyn15 input file (which is also used for tower aerodynamics)?

Another related problem is: should the locations of the span sections in one file be exactly the same as the section locations of mass distribution in another file?

Thanks a lot.
Best Regards,
Yingyi Liu

Dear Yingyi Liu,

The integration to find the total blade and tower masses in ElastoDyn is quite simple. I’ll explain for the blade; the tower is similar. First, the mass distribution from the blade file (BMassDen) is linearly interpolated to the analysis nodes, which are located in the centers of the analysis elements. When using AeroDyn v14 (CompElast = 1), the blade discretization specified in AeroDyn v14 will be used for discretization of the blade structural model of ElastoDyn (in this case, input BldNodes in ElastoDyn is unused). When using AeroDyn v15 (CompElast = 2), ElastoDyn will use equally spaced elements/nodes (defined by BldNodes) and the the aerodynamic blade discretization is independent of the structural discretizations in ElastoDyn. ElastoDyn then uses a simple rectangular integration by summing the mass/length times the element length for all elements. The location of the blade analysis nodes, the element lengths, and the interpolated mass/length are written to the ElastoDyn summary file for convenience.

I hope that helps.

Best regards,

Dear Jason,

I’m not sure about the above-quoted contents.
Could you confirm that is my understanding (above quoted) correct?

Thanks a lot.
Best Regards,
Yingyi Liu

Dear Yingyi Liu,

Yes, your understanding is correct.

The total integrated force and moment from the ballasted members are written to the HydroDyn summary file, but the center of buoyancy is not. From this information, you can manually calculate the transverse offset of the center of buoyancy of the ballasted members (xf and yf), but not the vertical center of buoyancy (zf), as discussed recently in the following forum topic: http://forums.nrel.gov/t/hydrodynamic-analysis-of-oc3-hywind-spar-buoy/1103/42. However, for simple cylindrical geometries, it may not be difficult to calculate the center of buoyancy manually yourself. In addition to defining the ballasted members in HydroDyn, the only additionally thing you need to do is to modify AddCLin.

We do not currently have funding to extend HydroDyn to output the center of buoyancy etc. from HydroDyn. Of course, the source code is open, so, you or others could make these changes yourself, if needed.

Best regards,

Dear Jason,

thanks for pointing me to this post.

I have some questions:

Blade:

  1. When I got it right the above definition means, that the first part of the blade between the blade root and the first equally spaced node is neglected.

  2. The blade definitions assumes, that a blade element has the BMassDen of the inner node of the element.

  3. The distance between the last blade node and the blade tip is treated the same way as the other elements assuming BMassDen is defined by the last node.

Tower:
4) The tower definitions assumes, that a tower element has the TMassDen arithmetically averaged between the inner and the outer node. Also the distance between the Tower base at HNodes = 0 and the first node is assumed to have the TMassDen of the first node.

  1. The distance between the last tower node and the tower top is assumend to have the TMassDen of the last node.

Can you confirm these findings?

Best regards,
Simon

Dear Simon,

I’m not really sure I understand your questions. But again, the values of BMassDen specified in the ElastoDyn blade input file and the values of TMassDen specified in the ElastoDyn tower input file are linearly interpolated to the blade and tower structural analysis nodes, which are then used in the analysis (to calculate the total mass, center of mass, generalized mass, inertia loads, etc.). The approach is identical for the blade and tower. Regarding (1), nothing is neglected, but the mass density (BMassDen) specified at the root is used in the interpolation to calculate the mass density at the first blade structural analysis node i.e. center of the first blade structural element (unless additional values of BMassDen are specified further inboard of the first blade structural analysis node).

Best regards,

Dear Jason,

thanks for the explanation.

I try to calculate the mass for blade and tower. I take all values from the ElastoDyn summary. So the interpolation from the input to the analysis nodes already took place. I take the values given for the analysis nodes and want to calculate the given masses.

Blade:
I found out, that I get the best agreement when calculating (RNodes_i+1 - RNodes_i)*(BMassDen_i). The sum of all elements fits the values given in the summary.

Tower:
(HNodes_i+1 - HNodes_i)*(BMassDen_i+1 + BMassDen_i)/2 gave the best result. Additionally I calculated (HNodes_first * TMassDen_first) and (TowerTop - HNodes_last) * TMassDen_last) to account for the parts under the first node and over the last node.

Is my understanding on how the masses are internally calculated correct?

Thank you and best regards,

Simon

Dear Simon,

No, those equations are not correct.

Because ElastoDyn uses a simple rectangular integration, the equations for the total mass using data from the ElastoDyn summary file are:

Blade:
Total mass = SUM( DRNodes(J)*BMassDen(J), J=1,BldNodes )

Tower:
Total mass = SUM( DHNodes(J)*TMassDen(J), J=1,TwrNodes )

Best regards,

Dear all,

I have a question regarding the marine growth in HydroDyn. When I tried to edit the HydroDyn input, the result is identical to the result without marine growth. I am using FAST v8.16 and the marine growth input is:
---------------------- MARINE GROWTH -------------------------------------------
3 NMGDepths - Number of marine-growth depths specified (-)
MGDpth MGThck MGDens
(m) (m) (kg/m^3)
0 0.1 1325
-40 0.1 1325
-80 0.05 1325

Besides, I also tried to set SimplCdMG to nonzero in ‘SIMPLE HYDRODYNAMIC COEFFICIENTS (model 1)’. The result is still the same as the one without marine growth and the output summary of HydroDyn also shows no marine growth at all.

                             MGFxi                 MGFyi                 MGFzi                 MGMxi                 MGMyi                 MGMzi  
                              (N)                   (N)                   (N)                  (N-m)                 (N-m)                 (N-m)  

Marine Growth: 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00

Is there something wrong with the setting in HydroDyn?

Best regards,
Xiaosen

Dear Xiaosen.Xu,

Can you share your full HydroDyn input file?

Best regards,

Dear Jason,

Sure, I am using OC3 Hywind model. I had a hard time uploading the HydroDyn input text file. The only changes I made in HydrDyn are marine growth parts. The bold part are the changes that I made.

---------------------- SIMPLE HYDRODYNAMIC COEFFICIENTS (model 1) --------------
SimplCd SimplCdMG SimplCa SimplCaMG SimplCp SimplCpMG SimplAxCa SimplAxCaMG SimplAxCp SimplAxCpMG
(-) (-) (-) (-) (-) (-) (-) (-) (-) (-)
0.60 1.05 0.00 0.00 1.00 1.00 1.00 1.00 1.00 1.00

0 NFillGroups - Number of filled member groups (-) [If FillDens = DEFAULT, then FillDens = WtrDens; FillFSLoc is related to MSL2SWL]
FillNumM FillMList FillFSLoc FillDens
(-) (-) (m) (kg/m^3)
---------------------- MARINE GROWTH -------------------------------------------
3 NMGDepths - Number of marine-growth depths specified (-)
MGDpth MGThck MGDens
(m) (m) (kg/m^3)
0 0.1 1325
-40 0.1 1325
-80 0.05 1325

---------------------- MEMBER OUTPUT LIST --------------------------------------
0 NMOutputs - Number of member outputs (-) [must be < 10]

Thank you.

Best regards,
Xiaosen Xu

Dear Xiaosen.Xu,

In the HydroDyn input file for the OC3-Hywind spar, PropPot = True for all members. According to the draft HydroDyn User’s Guide and Theory Manual (wind.nrel.gov/nwtc/docs/HydroDyn_Manual.pdf), when PropPot = True for a member, only viscous-drag loads and ballasting loads will be computed for that member. That is, your marine growth settings are being ignored. To incorporate marine growth for a member, you must disable the potential-flow solution (not use WAMIT) for that member.

Best regards,