Instruction for the Seismic fast version

Dear Sir,

I wish to implement the seismic scenario in FAST v7 but with distributed springs. I understand that this cannot be done without modifying the source code of FAST v7. I can see that subroutines for FAST v7 DS and Seismic are available on the forum. Is there a way I can combine the two? I would really like your help and guidance in changing the source code for the same. I request you to help me get started with it.
I have explored your options for seismic implementation in openfast using extptfm but, I am not at the disposal of using new software at this stage to generate superelements though it really sounds more promising. I am only left with the option to change the source code.

What I understand related to the code is as follows:

  1. The foundation elements along with their properties need to be added to the structural model.
  2. At each soil layer, I need to define a soil curve that as well interpolates the forces if the nonlinear behavior of the soil has to be simulated.
  3. The ground motion has to be taken input at the base of the pile.
  4. The superstructure force (above the seabed) will allow for deformations of the soil springs.
  5. Using the soil curve, the reaction forces at each pile-spring interface need to be added to the equation of motion.

Please correct me if I am wrong. In addition, though I know the procedure somehow, I am unaware of the subroutines to be changed to bring about these changes. Kindly advise.

Thanks
Subham

Dear @Kashyap.Subham,

At one point we developed a customized version of FAST v7 that supported distributed springs (DS) modeling of the foundation. This is discussed in the following forum topic: Turbine-soil interaction. Influence on the mode shapes., especially my post dated Feb 01, 2013, where I share an example UserTwrLd_DS.f90 file.

This routine has not been developed to include seismic excitation, but should hopefully be a good start to that. Because I have not done what you want myself, I cannot provide detailed guidance, but to answer your specific questions:

  1. Agreed. The FAST v7 model that makes use of UserTwrLd_DS.f90 places the platform reference point at the bottom of the pile (where 6 DOF motion is available), and the entire pile + tower is modeled via the tower element in FAST v7.
  2. The UserTwrLd_DS.f90 file implements linear springs at each node along the pile, but this could be changed to model nonlinear springs.
  3. I would not expect to that you’d apply ground motion only at the base of pile. Rather, I would expect that the deflection of each spring distributed along the pile would be the difference between the actual deformation of the pile and the position defined by the seismic event.
  4. I’m not sure what you mean, but I would not expect that anything in the source code would need to be changed apart from the UserTwrLd_DS.f90 file.
  5. This will be done automatically by FAST v7. It is just up to you define the loads to be applied distributed along the pile in the UserTwrLd_DS.f90 file.

Best regards,

For a general MDOF system, the equation of motion with base excitation can be given as follows:

[M]{xddot} + [C]{xdot} + [K]{x} = -[M]{xgddot}[U]

where x represents the relative structural displacement, and [U] is a column vector consisting of 1 or 0 as per the dofs in translation with the earthquake.

The above equation of motion is a general representation of seismic simulation as in textbooks.

As per my understanding, there will be additional resisting forces due to the flexible soil foundation. These forces as well need to be added to the above equation of motion at the nodes where the soil springs are introduced.

With the above background to start with:

  1. How do I identify these nodes in the DS subroutine? Let’s assume I just want to implement the seismic load case with the linear springs, to begin with.

  2. How do I estimate the right-hand side of the equation in FAST v7 DS routine?

  3. The soil reaction forces shall be added as an external force at each time step to evaluate the net deformations. What parameters shall I be looking at?

These are some basic queries. I hope I am making some sense of this. Request you to clarify and advise.

Subham

Subham

Dear @Kashyap.Subham,

If I understand your equation, this is equivalent to the following (changing notation a bit):

[M]{xsdd} + [C]{xsd} + [K]{xs} = [C]{xgd} + [K]{xg}

where xs is the structural displacement and xg is the ground motion. This is the equation used by the Seismic module of FAST v7. Given the equation [M]{xsdd} = {f}, The user-defined platform (UserPtfmLd) and tower loading routines (UserTwrLd) in FAST v7 expect that you’ll provide a force {f} applied to the platform reference point for UserPtfmLd or each tower analysis node for UserTwrLd. Rearranging the equation above, this implies that:

{f} = [C]{xgd-xsd} + [K]{xg-xs}

Now, to answer your questions:

  1. See above. The UserTwrLd routine in FAST v7 will be called once for each tower analysis node. There is logic already within UserTwrLd_DS.f90 to ensure that loads are only applied to nodes below the seabed.
  2. See above.
  3. I’m not sure I understand what you are asking, but assessing the motions of the tower analysis nodes and structural reactions at the tower analysis nodes sounds important.

Best regards,

1 Like

Dear Sir,

It seems the most important line of the code in UserTwrLd for distributed spring is the following:
TwrFt(K) = TwrFt(K) - Stff(JNode)*X(K)*DZFract

I believe this corresponds to the force calculation you wrote as:
{f} = [C]{xgd-xsd} + [K]{xg-xs},

but, obviously without the earthquake-related variables. If my understanding is correct; I need to add the following extra terms in the first equation for the damping and stiffness terms as:

TwrFt(K) = TwrFt(K) - Stff(JNode)X(K)DZFract + (Dmp(JNode){xgd} + Stff(JNode){xg})

Is this legit? I believe the major task would be to establish ground motions at each spring location describing its velocity and displacement time series. (i.e., for a linear stiffness as already implemented).

Does this all sound valid?

Thanks
Subham

Dear @Kashyap.Subham,

I agree, except that:

  • You should also subtract Dmp(JNode)*XD(K) from the right-hand side
  • You should multiply all stiffness and damping terms (not just Stff(JNode)*X(K)) by DZFract

Best regards,

1 Like

Dear Sir,

I would request you to link all the source code files and associated libraries required to recompile FAST v7 for the tentative completion of this conversation. It would be great if you can also, attach the document guidance on the compilation of FAST v7. It shall serve as a good checkpoint for me.

Thanks
Subham

Dear @Kashyap.Subham,

Compiling instructions for FAST v7.01 are available from here: CompilingInstructions_FASTv7.pdf - Google Drive. FAST v7.02 is slightly newer, but the compiling instructions were not updated. But to compile FAST v7.02, you’ll need the source files from:

To compile with the distributed springs (DS) foundation, you can use the UserTwrLd_DS.f90 source file that I shared in the post dated Feb 01, 2013 in the following forum topic: Turbine-soil interaction. Influence on the mode shapes.. Simply use this in place of the generic UserTwrLd() SUBROUTINE available in the FAST v7.02 archive.

Best regards,