How to output ptfmFx/Fy/Fz/Mx/My/Mz

Dear forumers,

I am doing linearization to get the mooring stiffness matrix and hydrodynamic stiffness matrix for OC4 floating platform.

From my understanding, if I can set the OutputList for platform Fx/Fy/Fz/Mx/My/Mz, then OpenFAST linearization will automatically output the relationship between platform Fx/Fy/Fz/Mx/My/Mz and platform DOFs. Thus, I will get the sum of mooring stiffness matrix and hydrodynamic stiffness matrix.

However, I can not find out what keywords can be used to output platform Fx/Fy/Fz/Mx/My/Mz. Could anyone kindly please tell me how to output platform Fx/Fy/Fz/Mx/My/Mz?

My OpenFAST version is the latest main version in July.


After a search, I found that latest main version of OpenFAST might be unable to output platform Fx/Fy/Fz/Mx/My/Mz. If so, I have to output Fairlead force when doing linearization. However, the results is the force on each mooring line. In order to get the mooring stiffness matrix, I have to manually add up all results with regards to force and platform DOF. It is inconvenient. Could anyone share me an convenient way to get the mooring stiffness matrix?

Dear @Ran.Tu,

We recently derived how the linearized matrices computed by OpenFAST for the HydroDyn and MAP++ loads computed at many analysis nodes can be transformed to a single reference node, assuming rigid-body relationships. Please find the derivation and result here: MappingToPoint_Rev4.pdf - Google Drive.

Alternatively, you can run MAP++ standalone through its python driver, uncoupled from OpenFAST, to derive the 6x6 stiffness matrix of the mooring system. This is documented in the online MAP++ documentation: MAP++ — MAP++ 1.15 documentation (

Best regards,

Thank you Dr Jason. :heart:

Dear @Ran.Tu

As Jason mentioned, we have recently looked into the topic of extracting 6x6 matrices from the linearization outputs of OpenFAST. I’m enclosing an alternative document that derives the relationships between the Jacobians at a source node and destination node: MappingLoadJacobians

There are two ways to obtain the 6x6 matrix from MAP at the ElastoDyn reference point:

  1. using MAP++ (note that to transfer from the origin to the reference point of elastodyn, one needs the value of the force at the operating point. This was added very recently to MAP++. I therefore recommend using the dev branch of pyMAP. Look for instance in example 1 or 3 here

  2. by extracting the outputs from a linearization analysis with OpenFAST (requires LinInputs = 2, LinOutputs = 2, LinOutJac = True), and applying the relationship between load jacobians. A example of implementation is provided here

A (non-running) example of both approaches is available here

I hope that helps,


Thank you, @Emmanuel.Branlard .

For approach 1:
After looking into pyMAP example 1 and 3, I feel that that pyMAP can conveniently output the mooring stiffness.
For approach 2:
There is also a function extractMAPStiffnessFromLinFile which can output the mooring stiffness from OpenFAST linearized results.
I still have three questions:
For approach 1, do I need to install pyMAP?
For approach 2, do I need to install welib?
Can OpenFAST directly output mooring stiffness without other software? Or is there any python code or Matlab code can help us output mooring stiffness from OpenFAST results in python-toolbox or Matlab-toolbox.
It would be great if OpenFAST/MAP can directly output moorings stiffness like pyMAP.


Hi Ran.Tu,

You are correct, you’ll have to install pyMAP for approach 1 and welib for approach 2 (I didn’t have the time to port this to the python-toolbox yet).

I agree that these features will be useful as direct outputs of OpenFAST but unfortunately these are not available yet.

Thank you Emmanuel :grinning: