Tendon failure in FAST modeling

Provide feedback, request enhancements, and get help with wind-turbine computer-aided engineering tools.

Moderators: Bonnie.Jonkman, Jason.Jonkman

Jason.Jonkman
Posts: 4952
Joined: Thu Nov 03, 2005 4:38 pm
Location: Boulder, CO
Contact:

Re: Tendon failure in FAST modeling

Postby Jason.Jonkman » Wed Aug 07, 2019 6:55 am

Dear Yajun,

When you zeroed out the fairlead load by customizing the source code, you didn't actually modify how the mooring line was modeled in MAP++, correct? Thus, while FAST does not feel the tension of the mooring line that has failed, the tension in the line as calculated by MAP++ is not actually zero, correct?

Best regards,
Jason Jonkman, Ph.D.
Senior Engineer | National Wind Technology Center (NWTC)

National Renewable Energy Laboratory (NREL)
15013 Denver West Parkway | Golden, CO 80401
+1 (303) 384 – 7026 | Fax: +1 (303) 384 – 6901
nwtc.nrel.gov

Bertrand.Canetti
Posts: 23
Joined: Thu Oct 31, 2019 6:35 pm
Organization: University College of Cork
Location: Ireland

Re: Tendon failure in FAST modeling

Postby Bertrand.Canetti » Wed Nov 27, 2019 10:37 am

Dear Jason,

I have never recompiled, but I saw some help about it on the forum.

But I wonder, is it simply possible to directly edit FASTv8\Source\dependencies\MAP\MAP.f90 with a text editor (Notepad++)?

Also, the tension of the line (between the platform and the fairlead) is actually the tension of the fairlead, is that right?

In the MAP++ input file, what is fix, connect, and vessel exactly for the nodes?

Thank you for your help,

Best regards,
Bertrand

Jason.Jonkman
Posts: 4952
Joined: Thu Nov 03, 2005 4:38 pm
Location: Boulder, CO
Contact:

Re: Tendon failure in FAST modeling

Postby Jason.Jonkman » Wed Nov 27, 2019 2:02 pm

Dear Bertrand,

Yes, you can edit the source files with any text editor. Of course, you will need a compiler to compiler.

Yes, the line tension at the fairlead is the tension of the fairlead.

In MAP++, "fix", "vessel", and "connect represent the boundary conditions at the end of a line:
  • "fix" can be considered an anchor (fixed to the inertial frame);
  • "vessel" can be considered a fairlead (where the line connects to the platform/vessel);
  • "connect represents a line-to-line interconnection.
I hope that helps.

Best regards,
Jason Jonkman, Ph.D.
Senior Engineer | National Wind Technology Center (NWTC)

National Renewable Energy Laboratory (NREL)
15013 Denver West Parkway | Golden, CO 80401
+1 (303) 384 – 7026 | Fax: +1 (303) 384 – 6901
nwtc.nrel.gov

Bertrand.Canetti
Posts: 23
Joined: Thu Oct 31, 2019 6:35 pm
Organization: University College of Cork
Location: Ireland

Re: Tendon failure in FAST modeling

Postby Bertrand.Canetti » Thu Nov 28, 2019 1:24 am

Dear Jason,

Thank you for your answer.

So to do load case 3.7, I did edit the MAP.F90 source file lie the following:

Code: Select all

DO i = 1,2
   IF (t<100) THEN
   y%ptFairleadLoad%Force(1,i) = -y%FX(i)
   y%ptFairleadLoad%Force(2,i) = -y%FY(i)
   y%ptFairleadLoad%Force(3,i) = -y%FZ(i)
   ELSE
   y%ptFairleadLoad%Force(1,i) = 0
   y%ptFairleadLoad%Force(2,i) = 0
   y%ptFairleadLoad%Force(3,i) = 0
   END IF
   END DO
   DO i = 3,y%ptFairleadLoad%NNodes
   y%ptFairleadLoad%Force(1,i) = -y%FX(i)
   y%ptFairleadLoad%Force(2,i) = -y%FY(i)
   y%ptFairleadLoad%Force(3,i) = -y%FZ(i)
   END DO
       


with this MAP input file:

---------------------- LINE DICTIONARY ---------------------------------------
LineType Diam MassDenInAir EA CB CIntDamp Ca Cdn Cdt
(-) (m) (kg/m) (N) (-) (Pa-s) (-) (-) (-)
Material 0.0766 113.35 7.536E8 1.0 0 0 0 0
---------------------- NODE PROPERTIES ---------------------------------------
Node Type X Y Z M B FX FY FZ
(-) (-) (m) (m) (m) (kg) (mˆ3) (N) (N) (N)
1 fix 837.6 0 depth 0 0 # # #
2 Vessel 40 0 -14.0 0 0 # # #
---------------------- LINE PROPERTIES ---------------------------------------
Line LineType UnstrLen NodeAnch NodeFair Flags
(-) (-) (m) (-) (-) (-)
1 Material 835.35 1 2 tension_fair tension_anch
---------------------- SOLVER OPTIONS-----------------------------------------
Option
(-)
repeat 240 120

and I obtain this Surge (x-axis) Sway (y-axis) chart, which seems totally wrong:

Image

with the fairlead tension of line 1 never equal to zero (T1 y-axis, time x-axis):

Image


It is like the source code modification was not taken into account.

Do you have an idea why? Probably because I did not "compile" it. I am not familiar at all with this.

Thank you for your help,

Bertrand

Jason.Jonkman
Posts: 4952
Joined: Thu Nov 03, 2005 4:38 pm
Location: Boulder, CO
Contact:

Re: Tendon failure in FAST modeling

Postby Jason.Jonkman » Fri Nov 29, 2019 8:57 am

Dear Bertrand,

When you change the source code, you'll need to recompile for the changes to take effect.

Best regards,
Jason Jonkman, Ph.D.
Senior Engineer | National Wind Technology Center (NWTC)

National Renewable Energy Laboratory (NREL)
15013 Denver West Parkway | Golden, CO 80401
+1 (303) 384 – 7026 | Fax: +1 (303) 384 – 6901
nwtc.nrel.gov

Abhinay.Goga
Posts: 21
Joined: Tue Oct 25, 2016 8:12 am
Organization: Hochschule Flensburg
Location: Germany

Re: Tendon failure in FAST modeling

Postby Abhinay.Goga » Fri Jun 12, 2020 3:41 am

Dear Jason and all,

I am trying to implement a transitional event of mooring line loss for DTU 10MW floating model. Based on the inputs from this discussion I have tried to modify the source code for MoorDyn but the result is not as expected. Could anyone correct me where I am going wrong?
P.S. Relatively I have zero skills in coding.

"DO I = 1, p%NFairs
DO J = 1,3
IF (t>=100) THEN
m%ConnectList(m%FairIdList(I))%r(J) = 0%PtFairleadDisplacement%Position(J,I) + 0%PtFairleadDisplacement%TranslationDisp(J,I)
m%ConnectList(m%FairIdList(I))%rd(J) = 0%PtFairleadDisplacement%TranslationVel(J,I) ! is this right? <<<
ELSE
m%ConnectList(m%FairIdList(I))%r(J) = u%PtFairleadDisplacement%Position(J,I) + u%PtFairleadDisplacement%TranslationDisp(J,I)
m%ConnectList(m%FairIdList(I))%rd(J) = u%PtFairleadDisplacement%TranslationVel(J,I) ! is this right? <<<
ELSE IF
DO I = 2,3, p%NFairs
DO J = 1,3
m%ConnectList(m%FairIdList(I))%r(J) = u%PtFairleadDisplacement%Position(J,I) + u%PtFairleadDisplacement%TranslationDisp(J,I)
m%ConnectList(m%FairIdList(I))%rd(J) = u%PtFairleadDisplacement%TranslationVel(J,I) ! is this right? <<<
END DO
END DO"

Thanks and regards
Abhinay Goga

Matt.Hall
Posts: 26
Joined: Tue Apr 05, 2011 2:41 pm
Organization: NREL
Location: Boulder, CO

Re: Tendon failure in FAST modeling

Postby Matt.Hall » Fri Jun 12, 2020 9:19 am

Dear Abhinay,

You're on the right track, but I think you'll need to study more about FORTRAN coding, and figure out more about the MoorDyn code, before you'll be able to succeed.

Here are a couple tips:
- To set a value to zero, you can use "=0.0_ReKi", for example: m%ConnectList(m%FairIdList(I))%r(J) = 0.0_ReKi,
- The values your code would set to zero are the fairlead displacements, but I think what you want to do is set the fairlead forces to zero.

There is a bit of discussion about the idea of simulating failures in MoorDyn in this thread, in case it's helpful to you: viewtopic.php?f=7&t=1441

Best,
Matt

Abhinay.Goga
Posts: 21
Joined: Tue Oct 25, 2016 8:12 am
Organization: Hochschule Flensburg
Location: Germany

Re: Tendon failure in FAST modeling

Postby Abhinay.Goga » Sun Jun 14, 2020 3:39 am

Dear Matt,

Yes. The main objective is to call zero tension on one fairlead after certain run time to make it perform like line loss. After going through the thread that you have attached, now I understood that Fairlead nodal positions and loads are called from subroutine DoLineRHS. With my limited knowledge in coding I tried to change the inputs for final loads in the following way.

" ! add force and mass of end nodes to the Connects they correspond to
DO J = 1,3
IF (t>=100) THEN
FairFtot(1) = 0.0_ReKi
AnchFtot(1) = 0.0_ReKi
FairFtot(2) = FairFtot(2) + Line%F(2,N)
AnchFtot(2) = AnchFtot(2) + Line%F(2,0)
FairFtot(3) = FairFtot(3) + Line%F(3,N)
AnchFtot(3) = AnchFtot(3) + Line%F(3,0)
ELSE
FairFtot(J) = FairFtot(J) + Line%F(J,N)
AnchFtot(J) = AnchFtot(J) + Line%F(J,0
DO K = 1,3
FairMtot(K,J) = FairMtot(K,J) + Line%M(K,J,N)
AnchMtot(K,J) = AnchMtot(K,J) + Line%M(K,J,0)
END DO
END DO "

Yet it is still not performing in the expected manner. Could you please guide me where I am making wrong this time.

Thanks and regards
Abhinay Goga

Matt.Hall
Posts: 26
Joined: Tue Apr 05, 2011 2:41 pm
Organization: NREL
Location: Boulder, CO

Re: Tendon failure in FAST modeling

Postby Matt.Hall » Fri Jun 19, 2020 9:27 am

Dear Abhinay,

It looks like your code is zeroing out the X-component force for the fairleads and anchors of all lines. DoLineRHS is called separately for each line, and the three entries of the FairFtot array correspond to the X, Y, and Z force components. FairFtot corresponds to forces at the fairlead, AnchFtot corresponds to forces at the anchor. The current mooring line number can be found in DoLineRHS with the variable Line%IdNum.

If you want to simulate the failure of one line at the fairlead, I would suggest the following:
- expand your "if" condition to include both the failure time (t>=100) and which line fails (Line%IdNum==1 for example)
- if the condition is true, zero out all components (X,Y,Z) of the fairlead force vector and mass matrix

I've included an (untested) example below. Let me know how it goes.

Matt

IF ((t>=100) .and. (Line%IdNum==1)) then
DO J = 1,3
FairFtot(J) = 0.0_Reki
AnchFtot(J) = AnchFtot(J) + Line%F(J,0)
DO K = 1,3
FairMtot(K,J) = 0.0_ReKi
AnchMtot(K,J) = AnchMtot(K,J) + Line%M(K,J,0)
END DO
END DO
else
DO J = 1,3
FairFtot(J) = FairFtot(J) + Line%F(J,N)
AnchFtot(J) = AnchFtot(J) + Line%F(J,0)
DO K = 1,3
FairMtot(K,J) = FairMtot(K,J) + Line%M(K,J,N)
AnchMtot(K,J) = AnchMtot(K,J) + Line%M(K,J,0)
END DO
END DO
end if

Abhinay.Goga
Posts: 21
Joined: Tue Oct 25, 2016 8:12 am
Organization: Hochschule Flensburg
Location: Germany

Re: Tendon failure in FAST modeling

Postby Abhinay.Goga » Sun Jun 21, 2020 6:10 am

Dear Matt and Jason,

Thanks for the assistance. While recompiling FAST v8 using Visual studio there are errors and few warnings .
I just changed the source code as suggested in dependencies/MoorDyn.
Any assistance with resolving these would be appreciated.

Thanks and reagards
Abhinay Goga
Attachments
Recompiling issues.txt
(19.68 KiB) Downloaded 13 times

Bonnie.Jonkman
Posts: 566
Joined: Thu Nov 10, 2005 10:51 am
Organization: Envision Energy USA
Location: Colorado
Location: Boulder, CO
Contact:

Re: Tendon failure in FAST modeling

Postby Bonnie.Jonkman » Mon Jun 22, 2020 9:44 am

I think if you remove the key word "ABSTRACT" from the specification of the three interface statements in OrcaFlexInterface.f90 (reported on lines 114, 127, and 145, the first 3 errors in your attachment), that will solve your issue.

This was fixed in OpenFAST a while ago. Older Fortran compilers allowed this syntax (with the ABSTRACT key word), though it is technically not correct.
Bonnie Jonkman

Envision Energy USA, 2016-
National Renewable Energy Laboratory, 2003-2016

Abhinay.Goga
Posts: 21
Joined: Tue Oct 25, 2016 8:12 am
Organization: Hochschule Flensburg
Location: Germany

Re: Tendon failure in FAST modeling

Postby Abhinay.Goga » Wed Jun 24, 2020 1:55 am

Dear Bonnie,

Thanks for the input. Based on the suggestion, I have removed the word ABSTRACT from line 106. The errors changed into somewhat different this time. Any guidance would be helpful.
P.S. Facing an http error to attach text document.

"Severity Code Description Project File Line Suppression State
Error fatal error LNK1169: one or more multiply defined symbols found ..\..\bin\\FAST_dev_Debug_Win32.exe
Error error LNK2005: _powf already defined in libmmt.lib(powf_iface_c99.obj) mkl_core.lib(dlarfgn.obj)"

Thanks and regards
Abhinay Goga

Bonnie.Jonkman
Posts: 566
Joined: Thu Nov 10, 2005 10:51 am
Organization: Envision Energy USA
Location: Colorado
Location: Boulder, CO
Contact:

Re: Tendon failure in FAST modeling

Postby Bonnie.Jonkman » Wed Jun 24, 2020 8:47 am

The linking error you show is typically caused by a mismatch between libraries used to link the final executable. I don't recall the details of FAST8 builds, but make sure you are using consistent libraries and compile settings in all the files and projects. The first place I would check is under "properties", "Configuration properties->Fortran->Libraries->Runtime library". Those settings should be the same for all projects. Another thing to check is that the settings under "Configuration properties->Fortran->Floating point" are the same in all projects in the solution.

With one version of the compiler, I recall the OrcaFlex interface files couldn't be optimized, so that might be causing trouble, too. (right-click on the OrcaFlexInterface.F90 file, select "properties" and then set "Configuration Properties->Fortran->Optimization->Optimization" to "Disable (/Od)"). Though, in debug mode it's probably already turned off optimizations.
Bonnie Jonkman

Envision Energy USA, 2016-
National Renewable Energy Laboratory, 2003-2016

Abhinay.Goga
Posts: 21
Joined: Tue Oct 25, 2016 8:12 am
Organization: Hochschule Flensburg
Location: Germany

Re: Tendon failure in FAST modeling

Postby Abhinay.Goga » Thu Jun 25, 2020 6:39 am

Dear Bonnie and Matt,

Thanks for guidance. With configuring the properties to release,the recompilation is successful.
The Fairlead tension for line 1 after 50 sec reaches zero, yet there are are no significant rise in the loads for remaining lines. And in the mooring file, I have designed 9 lines (with 2 connections for each). Anchor 7 tension for line 1 is not resulted as zero. Could you please make a comment about this behavior?

Thanks and regards
Abhinay Goga
Attachments
Tranient lineloss.jpg
Tranient lineloss.jpg (64.35 KiB) Viewed 323 times

Jason.Jonkman
Posts: 4952
Joined: Thu Nov 03, 2005 4:38 pm
Location: Boulder, CO
Contact:

Re: Tendon failure in FAST modeling

Postby Jason.Jonkman » Thu Jun 25, 2020 6:47 am

Dear Abhinay,

I'm glad that you've now successfully compiled your updated source code.

I'm not sure what type of floater this is (a semisubmersible?), and perhaps Matt can comment further, but assuming the mooring lines are centenaries, I would imagine the mean tensions in the remaining lines after the loss of line 1 would go down because the tension from line 1 is no longer pulling on them. I would suggest that you start by running simple tests (e.g. no wind and still water) to ensure that platform response is what you expect after the line loss.

Best regards,
Jason Jonkman, Ph.D.
Senior Engineer | National Wind Technology Center (NWTC)

National Renewable Energy Laboratory (NREL)
15013 Denver West Parkway | Golden, CO 80401
+1 (303) 384 – 7026 | Fax: +1 (303) 384 – 6901
nwtc.nrel.gov


Return to “Computer-Aided Engineering Software Tools”

Who is online

Users browsing this forum: No registered users and 1 guest