Dear Community,
I’m currently working with WISDEM and I’d like to know if there is a simple way to extract the generalized stiffness matrix. While looking into this, I found that pyFrame3DD might be able to handle this, but I’m not completely sure.
Has anyone successfully accessed or exported the global stiffness matrix from WISDEM or pyFrame3DD directly?
Thanks in advance for your help!
Best regards,
Adele
Hi Adele,
It is possible to accomplish this, but it is not a smooth workflow as Frame3DD does not naturally expose the underlying mass or stiffness matrices to pyFrame3DD. This will require a tiny bit of comfort with the WISDEM source and familiarity with Frame3DD as a standalone tool. The steps are:
- Make sure you install WISDEM in “editable” mode
- Uncomment the “debug” line near the pyFrame3DD call relevant to you. You didn’t mention if you need the stiffness matrix of the blade or tower or offshore foundation. The applicable tower code line is here. The blade one is here.
- Run WISDEM and let it write out the Frame3DD input file.
- You will likely have to modify the Reactions section of the Frame3DD file to use 1s or 0s, as opposed to the alternative method that pyFrame3DD uses.
- Download and install/compile Frame3DD from here.
- Run Frame3DD with the input file generated by WISDEM using the
-w
flag to write out mass and stiffness matrices. See this section of the Frame3DD docs.
Good luck and I hope it works for you!
Garrett
Dear @Garrett.Barter,
Thank you so much for your reply. I forgot to mention that I wanted to find the monopile global stiffness matrix. I successfully generated the .3dd
file and was able to extract the Ks
, Kd
, and Md
files — that was extremely helpful. This helped so much. Now, I’m trying to find the mode shape deformation vectors associated with each natural frequency. From what I understand, each mode should be represented by a vector of length equal to the number of degrees of freedom (i.e., 6 times the number of nodes, matching the size of the Ks
matrix rows).
However, I’m not sure where to locate those vectors. Are they available through the Frame3DD output when using the -w
flag?
The purpose of this work is to find the generalized stiffness for the entire structure (meaning monopile + tower). I was intending to compute it thanks to matrix multiplication of the global stiffness matrix and the mode shape vector. There is maybe an eaisier way? The Frame3dd manual mentions a procedure for the condensation of this matrix, but I’m unsure how this works.
Any help would be appreciated!
WISDEM computes the mode shapes based on the Frame3DD output for use in OpenFAST’s ElastoDyn module for the tower and/or the blades. This can be found here for the monopile. It is not a general solution as it is truly intended for the unique needs of ElastoDyn (polynomial order 2-6, only for the tower and not the monopile, etc).
In general, Frame3DD outputs the modal displacements and mode participation factors, which you would use to identify your mode numbers and mode shapes. This tends to be equal amounts art and logic. You could follow the WISDEM approach here, if it helps.
1 Like