Mode shapes

Good morning,
I have a quick question regarding mode shapes for a fixed bottom offshore wind turbine. Is it possible with Openfast using appropriate probes to get the mode shape of a system considering tower+substructure.
For the tower in Elastodyn I thought about using the probes TwHtiTDx and TwHtiTDy with i from 1 to 9.
I don’t know what probe can be used for Subdyn module : maybe it is included in the data :
SSqm01-SSqm99 (-) C-B modal variables (up to first 99)
What is please given in this output?

Thanks in advance.
Best regards.
Florence Haudin.

Dear Florence,

The local tower position in global coordinates can be output from ElastoDyn via outputs TwHt*TPxi/yi/zi.

The equivalent output from SubDyn are the nodal displacement outputs, MNTDxss/yss/zss. (The SubDyn outputs SSqm* are the actual displacements of the Craig-Bampton DOFs, which require an understanding of the Craig-Bampton mode shapes to be interpreted properly.)

With the recent merge of into OpenFAST-dev, new capability has been added for full-system linearization of OpenFAST including for models with SubDyn enabled. This allows you to directly analyze the full system mode shapes through an eigenalysis (again, based on interpretation of the structural DOFs in ElastoDyn and SubDyn).

Best regards,

Hi Jason,
Many thanks for your reply. I guess you mean TwHtTDx in your answer when refering to TwHtTPxi ?

I have a bit naïve question about getting the mode shapes from the deflection in different nodes (combining outputs from Elastodyn and Subdyn).
To get the mode shapes (let’s say fore-aft modes 1 and 2) what type of excitation (loads in x-direction) do I have to apply? A constant one ? With a free decay test, the amplitude of each mode will be dependant on time window we focus on, with this amplitude decaying.

Once I have the deflection in one node (temporal variation), I guess I have to band filter to extract the amplitude of the choosen mode, isn’t ? The operation has then to be redone for each mode and node (both for the tower and the foundation to finally get the amplitude in z along the whole structure)? Does it make sense ?

Regarding the linearization, I would be interested to use it but I am currently using the openFast version (running on windows) including Soildyn module (the one provided for OC6 phase 2) and I think that the linearization is not yet available for this Openfast version. Apart for OC6 phase 2, I was using Openfast on Linux. Could you please briefly describe me if it is possible how using git I can pull and merge the new development on my OpenFast version ? I guess some compilation has to be done after adding new developments.

Many thanks in advance.
Best regards.
Florence Haudin.

Hi Florence,

Actually, I did mean TwHtTPxi/yi/zi, which are the position outputs of ElastoDyn relative to the inertial frame. The TwHtTDxt/yt/zt outputs of ElastoDyn are tower deflections relative to the tower-base coordinate system, which will move with the top of the substructure in SubDyn. So the former (positions) are likely easier to interpret for support structures modeled with a combination of ElastoDyn plus SubDyn.

You could use either a free-decay test, stochastic excitation from wind or waves (white noise spectra preferred), or similar simulations to get the mode shapes out of time-domain simulations, although the results are not always easy to interpret for complicated multiple DOF models. The free-decay test would tend to excite the first mode; the second mode may be hard to excite or minimally excited through free decay. Wind/wave excitation with a white noise spectra would be an easier way to excite the second mode.

The changing “amplitude” of motion is not really a problem because all mode shapes involve normalizing the deflection in some way. It is the relative deflection between different DOFs or nodes that matters.

The version of OpenFAST with SoilDyn that was supplied to OC6 Phase II participates does not support the linearization of models with SubDyn enabled. The linearization of OpenFAST models with both ElastoDyn and SubDyn enabled was introduced with the recent merge of into OpenFAST-dev. We do have plans to merge the SoilDyn branch into OpenFAST-dev in the future, which will bring both capabilities together in one code base, but this is not available yet. You can compile the dev branch of OpenFAST on linux just like you do with the main branch. Simply select the dev branch instead of the main branch.

Best regards,

Hi Jason,
Thanks for you reply.
For Elastodyn, if NTwGages is set different to 1 I can’t run simulations (there is an error message : “Invalid numerical input for file
“ElastoDyn.dat” occurred while trying to read TwrGagNd”.).
I want to use the maximum number of probes (i.e. 9 it seems) and TwrNodes is set to 19. I don’t know how to proceed correctly to get TwjHtTPxi and their equivalent in side-side and torsion dof.

Concerning Subdyn outputs, I have zero-value signal for MiNjTDXss for i,j>1 even if I have well specified the number of probes, the node and member for which I want an output.
If you have any idea of what could be responsible for this type of output, I would be grateful.
Many thanks in advance.
Best regards.
Florence Haudin.

Dear Florence,

I’m not sure.

The ElastoDyn error sounds like there is a problem with the format of your input file. I would enable the Echo option to debug.

Regarding the zero-valued outputs from SubDyn, have you set NMOutputs, MemberID, NOutCnt, and NodeCnt correctly in the MEMBER OUTPUT LIST section of the SubDyn input file? Do you have SttcSolve = TRUE and/or Nmodes > 0 to ensure that the SubDyn model is actually deflecting?

Best regards,

Hi Jason,

Thanks for your answer

For Elastodyn I think that my format for TwrGagNd was indeed not correct. In my previous not working file, only gave 1 node number forTwrGagNd (I thought it was a number of elements and not a list of nodes). Nevertheless I am not very sure of the format of the list of tower nodes and if Openfast is sensitive to the spacing between them. At leas I guess it is ok because in .out file, now the data for nodes in the list are dimensioned and non zero. Here is the test I performed :

      3   NTwGages    - Number of tower nodes that have strain gages for output [0 to 9] (-)
     1 2 3   TwrGagNd    - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0]

But there is still a thing that I don’t understand : where are the tower nodes (coordinate and numbering) and members defined. It doesn’t seem to be in Elastodyn_tower.dat.
Is there any correspondance to ensure between NTwInpSt (Number of input stations to specify tower geometry) and TwrNodes (Number of tower nodes used for analysis) in Elastodyn.dat ? Or between others parameters set in Elastodyn_tower.dat and Elastodyn.dat ?

For Subdyn, I have checked what you suggested : SttcSolve is well set to TRUE and Nmodes > 0
For NMOutputs, MemberID, NOutCnt, and NodeCnt, here is the way they are set :
------------------------- MEMBER OUTPUT LIST ------------------------------------------
7 NMOutputs - Number of members whose forces/displacements/velocities/accelerations will be output (-) [Must be <= 9].
MemberID NOutCnt NodeCnt
(-) (-) (-)
1 1 1
2 1 1
5 1 1
8 1 1
13 1 1
18 1 1
22 1 2

I have 22 members with 2 nodes in each.
And my corresponding outputs are : “M1N1TDXss,M2N2TDXss,M3N3TDXss,M4N4TDXss,M5N5TDXss,M6N6TDXss,M7N7TDXss”

Many thanks for any help.
Best regards.
Florence Haudin.

Hi Jason,
Sorry just after sending my post I realized that having b different from 1 in MaNbTDXss is a non-sense when NoutCnt is 1.
So now I can get the outputs from Subdyn. Sorry for that confusion.
Best regards.
Florence Haudin.

Hi Florence,

I’m glad you figured out the problem with the SubDyn output.

NTwInpSt is independent from the number of tower nodes (TwrNodes), as discussed, e.g., in the following forum topic:

The tower analysis nodes are located at the centers of the tower elements, all of which have the same length. The tower nodes locations are also written to the ElastoDyn summary file. The definitions of TwrGagNd, etc. have been discussed several times on this forum, e.g., see:

Best regards,