moody: a dynamic mooring library used for station-keeping...

18
MooDy: a dynamic mooring library used for station-keeping simulations in OpenFOAM Associate Professor Senior Researcher Dep of Civil Engineering Safety and Transport Aalborg University, Denmark RISE Research Institutes of Sweden [email protected] [email protected] Johannes Palm, Claes Eskilsson and Lars Bergdahl

Upload: others

Post on 17-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MooDy: a dynamic mooring library used for station-keeping ...hani/OFGBG17/Eskilsson_OFUG17_v2.pdf · 11/15/17 5 • Smoothsolutions • Verifiedon linearisedstandingwave • Exponentialconvergence:

MooDy:adynamicmooringlibraryusedforstation-keepingsimulationsin OpenFOAM

Associate Professor SeniorResearcherDep of CivilEngineering Safety andTransportAalborgUniversity,Denmark RISEResearchInstitutes of [email protected] [email protected]

JohannesPalm,Claes Eskilsson andLarsBergdahl

Page 2: MooDy: a dynamic mooring library used for station-keeping ...hani/OFGBG17/Eskilsson_OFUG17_v2.pdf · 11/15/17 5 • Smoothsolutions • Verifiedon linearisedstandingwave • Exponentialconvergence:

Floatingwaveenergyconverters…

Wave Dragon

CorPower

Simpleforms

Page 3: MooDy: a dynamic mooring library used for station-keeping ...hani/OFGBG17/Eskilsson_OFUG17_v2.pdf · 11/15/17 5 • Smoothsolutions • Verifiedon linearisedstandingwave • Exponentialconvergence:

3

Survival Resonance Control

Girogi Ringwood2016YuandLi2013Chenetal2016

Page 4: MooDy: a dynamic mooring library used for station-keeping ...hani/OFGBG17/Eskilsson_OFUG17_v2.pdf · 11/15/17 5 • Smoothsolutions • Verifiedon linearisedstandingwave • Exponentialconvergence:

11/15/17 4

WEC-SIM (and FAST)

MooDy isasolver formooring cable dynamics• Designed tohandle snap loads

• Equations forre-written inconservative form• High-orderdiscontinuous Galerkin method• hp-adaptivesolution• Explicittime-steppers

• Cableswith neglible bending stiffness• Written inC++with nodependencies (except std lib)• Coupled toOpenFOAM andWEC-SIM/FAST• Released aspre-compiled lib

OpenFOAM

Page 5: MooDy: a dynamic mooring library used for station-keeping ...hani/OFGBG17/Eskilsson_OFUG17_v2.pdf · 11/15/17 5 • Smoothsolutions • Verifiedon linearisedstandingwave • Exponentialconvergence:

11/15/17 5

• Smooth solutions• Verified onlinearised standing wave• Exponential convergence:hp+1/2

Usehigh-orderelements!

Convergence for smooth solutions

h:Elementalresolutionp:Polynomialorderofbasis

100 101 102 10310-14

10-12

10-10

10-8

10-6

10-4

10-2

100

N=2N=3p=1p=2p=3p=4

Page 6: MooDy: a dynamic mooring library used for station-keeping ...hani/OFGBG17/Eskilsson_OFUG17_v2.pdf · 11/15/17 5 • Smoothsolutions • Verifiedon linearisedstandingwave • Exponentialconvergence:

11/15/17 6

Validation with snap loads

• Validation case• Excellentmatchwith experimentaldata• Snap load fromcable slack

Moody

0 5 10 150

10

20

30

40

50

60

70

exp num

9.5 10 10.5 11 11.50

10

20

30

40

50

60

70

exp num

1

2

3

4

5

0 5 10 15 20 25 300

10

20

30

40

50

60

70

num

1

2

3

4

5

Page 7: MooDy: a dynamic mooring library used for station-keeping ...hani/OFGBG17/Eskilsson_OFUG17_v2.pdf · 11/15/17 5 • Smoothsolutions • Verifiedon linearisedstandingwave • Exponentialconvergence:

Station-keeping approaches used

• Heave only à sixDoFRigidBodyMotionConstraints:line/axis

• Linear springà sixDoFRigidBodyMotionRestraints::linearSpring

• Quasi-static approachà sixDoFRigidBodyMotionRestraints::mooringLine (waves2Foam)

• Dynamic approachà sixDoFRigidBodyMotionRestraints::moodyR

Page 8: MooDy: a dynamic mooring library used for station-keeping ...hani/OFGBG17/Eskilsson_OFUG17_v2.pdf · 11/15/17 5 • Smoothsolutions • Verifiedon linearisedstandingwave • Exponentialconvergence:

/*-------------------------------------------------*\Class moodyR Declaration

\*-------------------------------------------------*/

class moodyR:

public sixDoFRigidBodyMotionRestraint{

// Private data

// Reference points of attachment to the solid body //List<point> attachPts_;

// Word containing the filename of the input file for the mooring system //

string mooringSystemFilename_;

// The number of attachment points //int noOfAttachments_;

// The ramp time of the mooring force (not invoked in moody, but before force is returned to motion_ ) //

scalar mooringRampTime_;

// Last call time of function //scalar startTime_;

// If moored or notbool moored_;

// Switch to ensure that moody is only intialised oncebool moodyStarted_;

public:

//- Runtime type informationTypeName("moodyR");

// Constructors

//- Construct from componentsmoodyR(

const word& name,const dictionary& sDoFRBMRDict

);

//- Construct and return a clonevirtual autoPtr<sixDoFRigidBodyMotionRestraint> clone()

const{

return autoPtr<sixDoFRigidBodyMotionRestraint>(

new moodyR(*this));

}

//- Destructorvirtual ~moodyR();

// Member Functions

//- Calculate the restraint position, force and moment.// Global reference frame vectors.void restrain(

const sixDoFRigidBodyMotion& motion,vector& restraintPosition,vector& restraintForce,vector& restraintMoment

);

//- Update properties from given dictionarybool read(const dictionary& sDoFRBMRCoeff);

//- Writevoid write(Ostream&) const;

};

Page 9: MooDy: a dynamic mooring library used for station-keeping ...hani/OFGBG17/Eskilsson_OFUG17_v2.pdf · 11/15/17 5 • Smoothsolutions • Verifiedon linearisedstandingwave • Exponentialconvergence:

void Foam::sixDoFRigidBodyMotionRestraints::moodyR::restrain(

const sixDoFRigidBodyMotion& motion,vector& restraintPosition,vector& restraintForce,vector& restraintMoment

){

...

if ( moored_ ){

// Compute values at present motion statedouble attachInfo[3*noOfAttachments_]; // Always 3D

List<point> currentPositions(attachPts_);

for ( int ii = 0; ii<noOfAttachments_; ++ii){

// Transform the starting points to present motion state

currentPositions[ii] = motion.transform(attachPts_[ii]);

// Fill attachInfo with transformed valuesattachInfo[ii*3] = currentPositions[ii].x();attachInfo[ii*3+1] = currentPositions[ii].y();attachInfo[ii*3+2] = currentPositions[ii].z();

}

// Send info to moodydouble allForces[3*noOfAttachments_];

moodySolve( attachInfo , allForces , motion.state0().time() , motion.state().time());

// Compute moment and total forcevector tmpVector(vector::zero);

for ( int ii = 0; ii<noOfAttachments_; ++ii){

tmpVector[0] = -allForces[ii*3];tmpVector[1] = -allForces[ii*3+1];tmpVector[2] = -allForces[ii*3+2];

restraintForce += tmpVector;

restraintMoment += (currentPositions[ii] -motion.centreOfRotation())^tmpVector;

Info<< " Mooring force at point " << ii << ", position: " << currentPositions[ii] << " is : " << tmpVector

<< " Total force: " << restraintForce<< " Total moment: " << restraintMoment<< endl;

}

// End mooring loop with assigning rP as centreOrRotation. No added moment should be computed //

restraintPosition = motion.centreOfRotation();}

} // end of restrain member

Page 10: MooDy: a dynamic mooring library used for station-keeping ...hani/OFGBG17/Eskilsson_OFUG17_v2.pdf · 11/15/17 5 • Smoothsolutions • Verifiedon linearisedstandingwave • Exponentialconvergence:

restraints {

mooring {

sixDoFRigidBodyMotionRestraint moodyR;

attachmentPoints ( (0.6 0.6 0.3)(0.6 0.4 0.3) (0.4 0.4 0.3)(0.4 0.6 0.3)

);

mooringSystemFilename "moodyInput.txt";

} }

Page 11: MooDy: a dynamic mooring library used for station-keeping ...hani/OFGBG17/Eskilsson_OFUG17_v2.pdf · 11/15/17 5 • Smoothsolutions • Verifiedon linearisedstandingwave • Exponentialconvergence:
Page 12: MooDy: a dynamic mooring library used for station-keeping ...hani/OFGBG17/Eskilsson_OFUG17_v2.pdf · 11/15/17 5 • Smoothsolutions • Verifiedon linearisedstandingwave • Exponentialconvergence:

12

Twotimescales.Boundaryconditioninterpolationrequired

Validation

70PhysicalModellingofMooringConfigurations

(a)Configuration2.

(b)Catenary.

Figure3.16:Photographsofthetestedconfigurationsassembledinthewavetank.

0.25 0.5 0.75-3.605e-13 1.000e+00alpha.water

MooringpositionM

oorin

gforce

Moodyinterpolation

PortotestParedesetal2016

Page 13: MooDy: a dynamic mooring library used for station-keeping ...hani/OFGBG17/Eskilsson_OFUG17_v2.pdf · 11/15/17 5 • Smoothsolutions • Verifiedon linearisedstandingwave • Exponentialconvergence:

11/15/17 13

Decay tests

• Surge(horizontal)• Very good agreement• Allstiffness comes fromthemoorings• Coupled mooring validated!

Validation

Time (s)0 5 10 15 20 25 30 35

Moo

red

surg

e de

cay,

2

s (m)

-0.1

-0.05

0

0.05

0.1

cfd exp

70PhysicalModellingofMooringConfigurations

(a)Configuration2.

(b)Catenary.

Figure3.16:Photographsofthetestedconfigurationsassembledinthewavetank.

Page 14: MooDy: a dynamic mooring library used for station-keeping ...hani/OFGBG17/Eskilsson_OFUG17_v2.pdf · 11/15/17 5 • Smoothsolutions • Verifiedon linearisedstandingwave • Exponentialconvergence:

11/15/17 14

Decay tests

• Heave(vertical)• Very good agreement both with andwithout

moorings• Slightly more damping incfd

Validation

70PhysicalModellingofMooringConfigurations

(a)Configuration2.

(b)Catenary.

Figure3.16:Photographsofthetestedconfigurationsassembledinthewavetank.

Time (s)0 1 2 3 4

Free

hea

ve d

ecay

, 2

h (m)

-0.08

-0.06

-0.04

-0.02

0

0.02

0.04

0.06

0.08

cfd exp

Time (s)0 1 2 3 4

Moo

red

heav

e de

cay,

2

h (m)

-0.08

-0.06

-0.04

-0.02

0

0.02

0.04

0.06

0.08

cfd exp

Page 15: MooDy: a dynamic mooring library used for station-keeping ...hani/OFGBG17/Eskilsson_OFUG17_v2.pdf · 11/15/17 5 • Smoothsolutions • Verifiedon linearisedstandingwave • Exponentialconvergence:

11/15/17 15

Regular wavesValidation

• Motionresponse• Threewave periods,two wave heights• Good agreement inheave andmooring

force• RAOisstrongly nonlinear• Pitchisunderpredicted,but influence of

nonlinearity iscorrect

Period time, T [s]0.8 1 1.2 1.4 1.6 1.8 2

Hea

veR

AO

,2

h=1̂

[-]

0

0.5

1

1.5

2

2.5

CFDH4 EXPH4 CFDH8 EXPH8

Period time, T [s]0.8 1 1.2 1.4 1.6 1.8 2

Pitch

RAO

,2

p=k1̂

[-]

0

0.5

1

1.5

2

2.5

3

3.5

4

CFDH4 EXPH4 CFDH8 EXPH8

RAO:ResponseAmplitudeOperatorMotionamplitude/waveamplitude.

Constantforeachfrequencyinlineartheory

Page 16: MooDy: a dynamic mooring library used for station-keeping ...hani/OFGBG17/Eskilsson_OFUG17_v2.pdf · 11/15/17 5 • Smoothsolutions • Verifiedon linearisedstandingwave • Exponentialconvergence:

11/15/17 16

Regular wavesValidation

• Mooring forces• Good agreement inmooring forces• Overalldynamic behaviour captured• Some discrepancies inamplitude

Time [s]33 34 35 36 37 38 39

Ten

sion

forc

e,= 1

,= 2

[N]

0

1

2

3

4

5

6

7

8

cfd, =1 exp, =1 cfd, =2 exp, =2

T=1.2s,H=8cm

Time [s]23 24 25 26 27 28 29

Ten

sion

forc

e,= 1

,= 2

[N]

0

1

2

3

4

5

6

7

8

cfd, =1 exp, =1 cfd, =2 exp, =2

T=1.2s,H=4cm

70PhysicalModellingofMooringConfigurations

(a)Configuration2.

(b)Catenary.

Figure3.16:Photographsofthetestedconfigurationsassembledinthewavetank.

Page 17: MooDy: a dynamic mooring library used for station-keeping ...hani/OFGBG17/Eskilsson_OFUG17_v2.pdf · 11/15/17 5 • Smoothsolutions • Verifiedon linearisedstandingwave • Exponentialconvergence:

Detailed infocan befound inthefollowing publications(open-access)

www.sdwed.civil.aau.dk/digitalAssets/97/97522_d2.4.pdf

http://www.sciencedirect.com/science/article/pii/S2214166916300327

publications.lib.chalmers.se/records/fulltext/248879/248879.pdf

http://publications.lib.chalmers.se/records/fulltext/183127/local_183127.pdf

http://publications.lib.chalmers.se/records/fulltext/183127/local_183127.pdf

Page 18: MooDy: a dynamic mooring library used for station-keeping ...hani/OFGBG17/Eskilsson_OFUG17_v2.pdf · 11/15/17 5 • Smoothsolutions • Verifiedon linearisedstandingwave • Exponentialconvergence:

sixDOFRigidBodyRestraint::moodyR andlibmoodyWrap.socanbedownloadedfrom:

https:://github.com/johannep/moodyAPI