I wonder if there is any parameters in the input files about adjusting the position of the tower centerline? For example, if I want to put the tower on one of the three columns of a Semi, what should I do? Or FAST only permits that the tower is put on the center of the platform?

You are correct; in the current version of FAST, the platform center of mass (CM) and center of buoyancy (CB) are assumed to lie along the centerline of the undeflected tower. However, adding these offsets is not very difficult (although it will require a recompile of FAST). Here are instructions for adding a horizontal offset of the platform CM and CB from the tower centerline:

Center of Mass: Near the top of SUBROUTINE FAST.f90/RtHS is this logic: “rZY = rZYzt a2”. The variable rZY is the position vector from the platform reference (point Z) to the platform mass center (point Y). The variable rZYzt is calculated as PtfmRef - PtfmCM earlier in the code, which is the distance separating point Z from point Y along the zt-axis (see the FAST User’s Guide for a definition of the xt/yt/zt coordinate system). The variable a2 is the unit vector directed along the tower centerline (along the zt-axis). All you will have to do is modify the equation defining rZY to include the horizontal offset. If the offsets are PtfmCMxt and PtfmCMyt along the xt- and yt-axes, respectively, the proper equation would be: “rZY = rZYzt a2 + PtfmCMxta1 – PtfmCMyta3”. As you can here, the internal unit vectors are related to the tower-base coordinate as follows: a1 = xt, a2 = zt, a3 = -yt.
*Of course, you could also modify the input routines so that PtfmCMxt and PtfmCMyt are read-in from the platform input file. To do this, search the source code for how input parameter PtfmCM is currently processed. Of course, you could also change input PtfmCM to PtfmCMzt such that PtfmCMzt = -PtfmCM to make the three inputs more consistent.

Center of Buoyancy: Near the top of SUBROUTINE HydroCalc.f90/FltngPtfmLd is the logic: “F_HS(3) = RhoXgPtfmVol0”. This is the hydrostatic buoyancy force (directly vertically upward) when the support platform is in its undisplaced position. In addition to this force, you’ll need to add the static moments created by this force applied offset to the platform reference point. If the offsets are PtfmCBxt and PtfmCByt along the xt- and and yt-axes, respectively, the additional equations would be: “F_HS(4) = RhoXgPtfmVol0PtfmCByt” and “F_HS(5) = -RhoXgPtfmVol0*PtfmCBxt”. Add these equations after the calculation of F_HS(3).
*Of course, you could also modify the input routines so that PtfmCBxt and PtfmCByt are read-in from the platform input file.

We actually plan to include all of these changes in the next release of FAST.