Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SoilDyn -- soil dynamics module #986

Draft
wants to merge 176 commits into
base: dev
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
176 commits
Select commit Hold shift + click to select a range
a18de70
DirtDyn: initial commit with rough skeleton code
andrew-platt Jan 29, 2020
311a253
DirtDyn: minor fixes for compiling with ifort
Jan 30, 2020
a4e774e
DirtDyn: add VS project
andrew-platt Jan 30, 2020
b3f8c07
DirtDyn: fix version info on solution file
andrew-platt Jan 30, 2020
3d2b9de
DirtDyn: DLL loading/unloading working
andrew-platt Jan 31, 2020
d7fa8f3
DirtDyn: input files in registry
andrew-platt Feb 4, 2020
62c9503
DirtDyn: successful initializing of DLL
andrew-platt Feb 4, 2020
b4cf83e
DirtDyn: update so static linking is possible
andrew-platt Feb 4, 2020
e74522c
DirtDyn: remove unused file
andrew-platt Feb 5, 2020
bbd565e
Merge branch 'f/DirtDyn' of https://github.nrel.gov/aplatt/openfast-p…
andrew-platt Feb 5, 2020
7000de6
DirtDyn: add preproc command for quicker development work.
andrew-platt Feb 5, 2020
037092e
SoilDyn: name change
andrew-platt Feb 5, 2020
e5b1ea6
SoilDyn: add skeleton IO module
andrew-platt Feb 5, 2020
81eca80
SoilDyn: allow multiple DLL calls
andrew-platt Feb 7, 2020
e922d28
SoilDyn: more input file reading
andrew-platt Feb 7, 2020
b38dd98
SoilDyn: add SoilDyn_IO.f90 to VS project
andrew-platt Feb 7, 2020
6f5f728
SoilDyn: convert to 6x6 matrix reads
andrew-platt Feb 7, 2020
4ebf105
SoilDyn: Input file parsing complete (I think)
andrew-platt Feb 7, 2020
4be8c0b
SoilDyn: add some echo file info on points used
andrew-platt Feb 7, 2020
af22092
SoilDyn: DLL input file handling
andrew-platt Feb 10, 2020
393f1d7
SoilDyn: error handling on the DLL and its input files
andrew-platt Feb 10, 2020
7d7f4c3
SoilDyn: error handling on the DLL and its input files
andrew-platt Feb 10, 2020
5bc3947
Merge branch 'f/SoilDyn' of https://github.nrel.gov/aplatt/openfast-p…
andrew-platt Feb 10, 2020
f41dcfe
SoilDyn: more input file location checking for DLL's
andrew-platt Feb 10, 2020
2bf2dcc
SoilDyn: error handling on DLL input files
andrew-platt Feb 10, 2020
c7160d8
Merge branch 'f/SoilDyn' of https://github.nrel.gov/aplatt/openfast-p…
andrew-platt Feb 10, 2020
bcd73ab
SoilDyn: add input file and parsing to driver
andrew-platt Feb 10, 2020
c597595
SlD: minor cleanup
andrew-platt Feb 18, 2020
0ea575a
SlD: add error trapping to REDWIN interface
andrew-platt Feb 18, 2020
0d9399c
SlD: move error checking routines to end of file
andrew-platt Feb 19, 2020
b2274bb
SlD: update vs build.
andrew-platt Feb 19, 2020
802e343
SlD: update registry bat file for VS builds
andrew-platt Feb 19, 2020
a494312
SlD: move checks on DLL input files
andrew-platt Feb 19, 2020
8b63225
SlD: remove SlD types from REDWINinterface.f90
andrew-platt Feb 19, 2020
eb24883
SlD: simplify driver
andrew-platt Feb 19, 2020
a624c2b
SlD: coordinate transforms between OpenFAST and REDWIN
andrew-platt Feb 19, 2020
b40c967
SlD: basic driver input file roughed in
andrew-platt Feb 25, 2020
f37ca39
SlD: notes on runmode for REDWIN DLL
andrew-platt Feb 25, 2020
1eb0c83
SlD: add parsing of time series input displacements
andrew-platt Feb 25, 2020
668b171
SoilDyn: change precision in the REDWIN interface for displacement
andrew-platt Mar 2, 2020
68db17f
SlD: Add meshes for input / output
andrew-platt Mar 2, 2020
84b3c0c
SlD: update driver to loop through displacements from input file
andrew-platt Mar 2, 2020
98363bd
SlD: update VS project
andrew-platt Mar 2, 2020
93bad67
Merge branch 'f/SoilDyn' of https://github.nrel.gov/aplatt/openfast-p…
andrew-platt Mar 2, 2020
8671cdd
SlD: add interpolation of input displacement file to driver
andrew-platt Mar 2, 2020
67c5787
Merge branch 'f/SoilDyn' of https://github.nrel.gov/aplatt/openfast-p…
andrew-platt Mar 2, 2020
7e52b0a
SlD: add error checking on Calc routine
andrew-platt Mar 2, 2020
06ca67a
SlD: change angles to degrees in REDWIN
andrew-platt Mar 3, 2020
bcd04ee
SlD: multiple instances use different DLL's
andrew-platt Mar 3, 2020
deaa679
SlD: fix units. Radians for anges to REDWIN dll
andrew-platt Mar 3, 2020
cf5b2f8
SlD: update for one DLL and paths
andrew-platt Mar 4, 2020
e4596c6
SlD: fix for Get_CWD for platform specific
andrew-platt Mar 5, 2020
a6accb3
SlD: minor updates to get it running on windows again
andrew-platt Mar 11, 2020
37837f0
SlD: change all force and stiffness in REDWIN module to R8Ki
andrew-platt Mar 11, 2020
7d63780
SlD: add output channels and output file to driver
andrew-platt Mar 13, 2020
5875122
SlD: add WriteOutput routine
andrew-platt Mar 13, 2020
7ddb24e
SlD: remove unneeded.
andrew-platt Mar 17, 2020
881bf54
SlD: update the output format from driver
andrew-platt Mar 19, 2020
ac32f35
Merge branch 'f/SoilDyn' of https://github.nrel.gov/aplatt/openfast-p…
andrew-platt Mar 19, 2020
de9b080
SlD: minor changes for integrating with FAST_Solver
andrew-platt Mar 19, 2020
f029b1c
Merge remote-tracking branch 'upstream/dev' into f/SoilDyn
andrew-platt Mar 19, 2020
53f2640
Merge remote-tracking branch 'ebranlard/f/flexsub2' into f/SoilDyn
andrew-platt Mar 19, 2020
2b74a2f
Merge branch 'f/flexsub2' into f/SoilDyn-SDmerge
andrew-platt Mar 19, 2020
447097d
SlD: hooks in glue code and input file changes.
andrew-platt Mar 24, 2020
4d0efd0
Merge remote-tracking branch 'upstream/dev' into f/SoilDyn-SDmerge
andrew-platt Mar 24, 2020
210f53f
Merge remote-tracking branch 'upstream/dev' into f/SoilDyn-SDmerge
andrew-platt Mar 25, 2020
c4b8a63
SlD: renaming of routines to match OpenFAST glue-code better
andrew-platt Mar 25, 2020
13dd7d5
SlD: minor updates to glue code.
andrew-platt Mar 25, 2020
35715f9
SlD: rename meshes for consistency, add to glue code
andrew-platt Mar 26, 2020
8493b54
SlD: update VS project
andrew-platt Mar 26, 2020
707b767
SlD: change routine for small angles
andrew-platt Mar 27, 2020
e6d6468
SlD: add some more of the SlD mesh transfers
andrew-platt Mar 27, 2020
8730da8
SlD: plumbing for outputs in glue code
andrew-platt Mar 30, 2020
251358e
SD: Comment out unused routine
andrew-platt Mar 30, 2020
a003e28
SlD: case select around DLL bits, fix errors in last commit
andrew-platt Mar 30, 2020
acd5515
Merge branch 'f/SoilDyn-SDmerge' of https://github.com/andrew-platt/O…
andrew-platt Mar 31, 2020
bf75103
SlD: update units, fix reaction signs
andrew-platt Apr 7, 2020
f23e811
Merge remote-tracking branch 'ebranlard/f/flexsub2' into f/SoilDyn-SD…
andrew-platt Apr 7, 2020
2e061a3
SlD: initial orientaion incorrect
andrew-platt Apr 7, 2020
f282137
Merge remote-tracking branch 'upstream/dev' into f/SoilDyn-SDmerge
andrew-platt Apr 9, 2020
33b9fc5
SlD: move soildyn call
andrew-platt Apr 9, 2020
890db2a
Merge branch 'f/SoilDyn-SDmerge' of github.com:andrew-platt/openfast …
andrew-platt Apr 9, 2020
c64bbc6
SlD: modify solver with soildyn
andrew-platt Apr 9, 2020
15d6348
SlD: update types file for ED (from merge)
andrew-platt Apr 9, 2020
012ca26
SlD: add stiffness matrix option
andrew-platt Apr 13, 2020
83139cd
SlD: add soilDyn to jacobian
andrew-platt Apr 14, 2020
70b60c7
SlD: modify glue code solver logic so don't need correction steps
andrew-platt Apr 14, 2020
87f6bb4
SlD: add optional flag on SlD_CalcOutput for perturb calcs
andrew-platt Apr 14, 2020
25d313a
SlD: updates to solver -- currently stable
andrew-platt Apr 14, 2020
fd4f45f
SlD: add ability to handle large angle calculations at start
andrew-platt Apr 14, 2020
36b28af
SlD: cleanup the option1 solve slightly (commented out test stuff rem…
andrew-platt Apr 14, 2020
a57755c
WIN_DLL_LOAD option (renamed from ORCA_DLL_LOAD)
andrew-platt Apr 14, 2020
8482212
SlD: fix coorinate transform issue in REDWINinterface
andrew-platt Apr 15, 2020
718e0e8
SlD: some updates in the call to redwin. Work in progress
andrew-platt Apr 15, 2020
07ec0a9
Merge branch 'f/SlD_Opt1_jac' of https://github.com/andrew-platt/Open…
andrew-platt Apr 15, 2020
1fcab72
SlD: allow for using only DLL stiffness matrices in the response calcs
andrew-platt Apr 16, 2020
9eff353
SlD: update on the stiff only DLL calcs
andrew-platt Apr 16, 2020
7ea2d52
SlD: fix typos in previous commit
andrew-platt Apr 16, 2020
7c72370
Merge remote-tracking branch 'origin/f/DocUpdate_Solver' into f/SlD_O…
andrew-platt Apr 17, 2020
bdc09a5
Docs: update OpenFAST solve documentation
andrew-platt Apr 17, 2020
26e5e90
SlD: update the OpenFAST Algorithms doc for SlD
andrew-platt Apr 17, 2020
0a44146
SlD: move SlD input setting to more logical location
andrew-platt Apr 17, 2020
8d0ece3
Fixed How SoilDyn is Called in the Glue Code
jjonkman Apr 18, 2020
4d64b4b
Merge pull request #2 from jjonkman/f/SlD_Opt1_jac
andrew-platt Apr 20, 2020
88989bf
SlD: minor typo in Alogorithms.tex
andrew-platt Apr 20, 2020
1a15eb6
SlD: remove SlD from Jacobian in FAST_Solver
andrew-platt Apr 20, 2020
a895b84
SlD: update glue code for Jacobian if no HD
andrew-platt Apr 22, 2020
c77c90a
SlD: remove extra mesh from the registry
andrew-platt Apr 22, 2020
a76c0e3
SlD: remove extra logic from the SlD_CalcOutput
andrew-platt Apr 22, 2020
4218d8c
SlD: update of algorithm to match documentation better
andrew-platt Apr 22, 2020
e28b644
SlD: missed a bit of logic in a76c0e30
andrew-platt Apr 22, 2020
f5bf3e7
SlD: allow heave/yaw in the reaction on Model 2
andrew-platt May 5, 2020
feeceab
TMD: add tower top time-series force input file
andrew-platt May 5, 2020
612bb7a
TMD: fix error in force
andrew-platt May 6, 2020
5167a7c
SlD: fix an issue with error handling
andrew-platt May 7, 2020
d13a6e4
SlD: bugfix -- DLL input file checking incorrect
May 20, 2020
cc7e34c
Merge remote-tracking branch 'ebranlard/f/flexsub2' into f/SlD_NoJaco…
andrew-platt May 21, 2020
ede2f2a
SlD: move DLL state info to xd, cleanup of REDWIN interface
andrew-platt May 20, 2020
0985888
SlD: attempt to fix fortlll crash at end without SlD.
andrew-platt May 27, 2020
c6b0bb7
Merge remote-tracking branch 'upstream/dev' into f/SoilDyn
andrew-platt Jun 3, 2020
f50d81b
Merge remote-tracking branch 'ebranlard/f/flexsub2' into f/SoilDyn
andrew-platt Jun 3, 2020
125540f
SlD: add check on WtrDpth (passed from HD)
andrew-platt Jun 3, 2020
491b3d3
Merge remote-tracking branch 'OpenFAST/dev' into f/SoilDyn
andrew-platt Jun 10, 2020
76864b3
Merge remote-tracking branch 'ebranlard/f/flexsub2' into f/SoilDyn
andrew-platt Jun 16, 2020
60558c1
Merge remote-tracking branch 'OpenFAST/dev' into f/SoilDyn_SubDynStiff
andrew-platt Jun 16, 2020
a6cd85b
SlD: rearrange so stiffness matrices can easily be passed out at init.
andrew-platt Jun 16, 2020
a12e053
SlD: remove SubRotateZ from soildyn
andrew-platt Jun 16, 2020
71a8082
SlD: remove StVarPrint from discretestates (it isn't used by REDWIN D…
andrew-platt Jun 16, 2020
45d0598
SoilDyn+SubDyn: Passing of stiffness and mesh nodes to SD
andrew-platt Jun 16, 2020
210b06f
SlD: add option for only returning non-linear portion of reaction forces
andrew-platt Jun 16, 2020
00d4424
SoilDyn: set SlD_Init flag for non-linear portion
andrew-platt Jun 16, 2020
63771d6
SlD: Output node forces include linear terms
andrew-platt Jun 16, 2020
9789ef7
FlexSub: adding Soil stiffness
ebranlard Jun 17, 2020
7a7b37e
FlexSub: activating NonLinear SoilDyn part
ebranlard Jun 18, 2020
1acb67e
FlexSub: Bug fix: count of internal DOF was wrong since introduction …
ebranlard Jun 18, 2020
282277d
FlexSub: removing some print statements
ebranlard Jun 18, 2020
df696ea
FlexSub: input/output meshes now same as subdyn mesh
ebranlard Jun 18, 2020
44ae34f
Merge remote-tracking branch 'ebra/f/flexsub2' into f/SoilDyn_SubDynS…
ebranlard Jun 18, 2020
36a266f
SubDyn: missing logic on deallocate
andrew-platt Jun 19, 2020
c39d11d
SlD: remove confusing comment in FAST_Solver
andrew-platt Jun 24, 2020
59c57d7
SlD driver: stiffness matrix is from init
andrew-platt Jun 24, 2020
5568539
SlD: remove unused variables and routines
andrew-platt Jun 24, 2020
f080fb5
SlD: add documentation for tower top force and SD matrix boundar cond…
andrew-platt Jun 26, 2020
ab5f071
SlD: remove stale TODO.txt
andrew-platt Jun 29, 2020
04f9883
Merge remote-tracking branch 'ebranlard/f/flexsub2' into f/SoilDyn
andrew-platt Jul 6, 2020
0527a6d
Merge remote-tracking branch 'OpenFAST/dev' into f/SoilDyn
andrew-platt Jul 7, 2020
d0abb07
Merge remote-tracking branch 'OpenFAST/dev' into f/SoilDyn
andrew-platt Jul 8, 2020
2011efd
Merge remote-tracking branch 'ebranlard/f/flexsub2' into f/SoilDyn
andrew-platt Jul 9, 2020
8cfb320
SlD: [BugFix] bug in the FindClosestNodes routine
andrew-platt Aug 18, 2020
53e8c06
Merge remote-tracking branch 'OpenFAST/dev' into f/SoilDyn
andrew-platt Aug 18, 2020
ae92aa2
SoilDyn: update regression test .fst files
andrew-platt Aug 19, 2020
8da25d9
Merge remote-tracking branch 'ebranlard/f/flexsub2' into f/SoilDyn
andrew-platt Aug 19, 2020
02c1e68
SoilDyn: Update .fst regression test files
andrew-platt Aug 19, 2020
147034c
Merge remote-tracking branch 'origin/dev' into f/SoilDyn
andrew-platt Sep 22, 2020
91bfa82
SoilDyn: add message that damping matrix in CalcOption 1 not supporte…
andrew-platt Sep 22, 2020
ce03900
Merge remote-tracking branch 'ebranlard/f/flexsub2' into f/SoilDyn
andrew-platt Sep 22, 2020
4a4d5ff
SlD: missing source file in SubDyn VS project
andrew-platt Sep 23, 2020
bd9fafa
OpenFAST_Algorithm: fix error in AdvanceStates description, and updea…
andrew-platt Oct 8, 2020
9e6cbd0
Merge tag 'v2.5.0' into f/SoilDyn
andrew-platt Mar 26, 2021
e163ab7
Merge remote-tracking branch 'OpenFAST/dev' into f/SoilDyn
andrew-platt Nov 4, 2021
7342237
Merge remote-tracking branch 'OpenFAST/dev' into f/SoilDyn
andrew-platt Jan 27, 2022
7618542
SlD: fix typos in driver _Types.f90 file
andrew-platt Mar 9, 2022
8060c6c
Merge remote-tracking branch 'OpenFAST/dev' into f/SoilDyn
andrew-platt Mar 9, 2022
d2990d4
Merge remote-tracking branch 'OpenFAST/dev' into f/SoilDyn
andrew-platt Aug 3, 2022
82a40d9
FAST_Registry: SoilDyn to SubDyn use y3Mesh
deslaughter Aug 22, 2022
9dff305
SoilDyn: Fix header in REDWINinterface.f90
deslaughter Aug 22, 2022
e8bb4eb
SubDyn: If Soil_K from SoilDyn, isFloating=false
deslaughter Aug 22, 2022
078f344
Added OC6_phaseII regression test
deslaughter Aug 22, 2022
493af4f
Update r-test to latest SoilDyn commit
deslaughter Aug 23, 2022
d418e0d
Merge branch 'dev' into f/SoilDyn
deslaughter Aug 23, 2022
b65dea7
Rework reg_test CMakeLists.txt to copy test data
deslaughter Aug 24, 2022
3d35641
reg_test/CMakeLists.txt fixed missing target
deslaughter Aug 24, 2022
8224f85
SoilDyn: updated version info
deslaughter Aug 24, 2022
7387f6e
reg_tests/CMakeLists.txt: reverted debug changes
deslaughter Aug 24, 2022
9d11e4e
Merge remote-tracking branch 'main/dev' into f/SoilDyn
deslaughter Aug 24, 2022
b916b49
FAST_Solver: transfer of ED outputs to SD inputs
deslaughter Aug 24, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ vs-build/
# backup files
*.asv
~$*.xlsx
.*swp

# LaTeX compiling files
*.aux
Expand Down
3 changes: 2 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ option(BUILD_SHARED_LIBS "Enable building shared libraries" off)
option(DOUBLE_PRECISION "Treat REAL as double precision" on)
option(USE_DLL_INTERFACE "Enable runtime loading of dynamic libraries" on)
option(FPE_TRAP_ENABLED "Enable FPE trap in compiler options" off)
option(ORCA_DLL_LOAD "Enable OrcaFlex Library Load" on)
option(WIN_DLL_LOAD "Enable loading of Windows only DLL's (OrcaFlex, SoilDyn)" on) # This is mostly for testing purposes
option(BUILD_OPENFAST_CPP_API "Enable building OpenFAST - C++ API" off)
option(BUILD_FASTFARM "Enable building FAST.Farm" off)
option(OPENMP "Enable OpenMP support" off)
Expand Down Expand Up @@ -131,6 +131,7 @@ set(OPENFAST_MODULES
aerodyn
aerodyn14
servodyn
soildyn
elastodyn
beamdyn
subdyn
Expand Down
Binary file modified docs/OtherSupporting/OpenFAST_Algorithms/OpenFAST_Algorithms.pdf
Binary file not shown.
27 changes: 23 additions & 4 deletions docs/OtherSupporting/OpenFAST_Algorithms/OpenFAST_Algorithms.tex
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
\title{Solve Algorithms in OpenFAST}
\author{Bonnie Jonkman}
%\begin{abstract}
%This document is used to describe the algorithms implemented in FAST v8.
%This document is used to describe the algorithms implemented in OpenFAST v3.x
%\end{abstract}
\maketitle

Expand Down Expand Up @@ -54,8 +54,9 @@ \section{Definitions and Nomenclature}
InflowWind & IfW & IfW \\
IceFloe & IceFloe & IceF \\
IceDyn & IceD & IceD \\
SoilDyn & SlD & SlD \\
\end{tabular}
\caption{Abbreviations for modules in FAST v8}
\caption{Abbreviations for modules in OpenFAST v3.0.x}
\label{tab:Abbrev}
\end{table}

Expand Down Expand Up @@ -126,6 +127,10 @@ \section{Input-Output Relationships}
\State $\mathit{u\_FEAM} \gets \Call{TransferMeshMotions}{\mathit{y\_ED}}$
\State $\mathit{u\_MD} \gets \Call{TransferMeshMotions}{\mathit{y\_ED}}$
\State $\mathit{u\_Orca} \gets \Call{TransferMeshMotions}{\mathit{y\_ED}}$

\State
\State $\mathit{y\_SD} \gets \Call{SD\_CalcOutput}{\mathit{p\_SD},\mathit{u\_SD},\mathit{x\_SD},\mathit{xd\_SD},\mathit{z\_SD}}$
\State $\mathit{u\_SlD} \gets \Call{TransferMeshPosition}{\mathit{y\_SD}}$
\State $\mathit{u\_SrvD\%PtfmStC} \gets \Call{TransferMeshMotions}{\mathit{y\_ED}}$\footnote{Only if using ServoDyn Structural control with platform TMD.}
% \end Transfer_ED_to_HD_SD_BD_Mooring
%%%%
Expand All @@ -152,11 +157,11 @@ \section{Input-Output Relationships}


%\pagebreak %break here for now so that it doesn't look so strange
\subsection {Input-Output Solve for \textit{HydroDyn}, \textit{SubDyn}, \textit{OrcaFlexInterface}, \textit{BeamDyn}, \textit{ExtPtfm}, \textit{MAP}, \textit{FEAMooring}, \textit{MoorDyn},
\subsection {Input-Output Solve for \textit{HydroDyn}, \textit{SubDyn}, \textit{OrcaFlexInterface}, \textit{BeamDyn}, \textit{SoilDyn}, \textit{ExtPtfm}, \textit{MAP}, \textit{FEAMooring}, \textit{MoorDyn},
\textit{FEAMooring}, \textit{IceFloe}, \textit{IceDyn}, and the Platform Reference Point Mesh in \textit{ElastoDyn}}

This procedure implements Solve Option 1 for the accelerations and loads in
\emph{HydroDyn},\emph{SubDyn},\emph{MAP},\emph{FEAMooring},\emph{OrcaFlexInterface},\emph{MoorDyn}, \emph{BeamDyn}, \emph{ExtPtfm}, \emph{IceFloe}, \emph{IceDyn}, and \emph{ElastoDyn} (at its platform reference point mesh).
\emph{HydroDyn},\emph{SubDyn},\emph{MAP},\emph{FEAMooring},\emph{OrcaFlexInterface},\emph{MoorDyn},\emph{SoilDyn}, \emph{BeamDyn}, \emph{ExtPtfm}, \emph{IceFloe}, \emph{IceDyn}, and \emph{ElastoDyn} (at its platform reference point mesh).
The other input-output relationships for these modules are solved using Solve Option 2.

%\begin{algorithm}[ht]
Expand All @@ -171,6 +176,7 @@ \section{Input-Output Relationships}
\State $\mathit{y\_FEAM} \gets \Call{CalcOutput}{\mathit{p\_FEAM},\mathit{u\_FEAM},\mathit{x\_FEAM},\mathit{xd\_FEAM},\mathit{z\_FEAM}}$
\State $\mathit{y\_IceF} \gets \Call{CalcOutput}{\mathit{p\_IceF},\mathit{u\_IceF},\mathit{x\_IceF},\mathit{xd\_IceF},\mathit{z\_IceF}}$
\State $\mathit{y\_IceD(:)} \gets \Call{CalcOutput}{\mathit{p\_IceD(:)},\mathit{u\_IceD(:)},\mathit{x\_IceD(:)},\mathit{xd\_IceD(:)},\mathit{z\_IceD(:)}}$
\State $\mathit{y\_SlD} \gets \Call{CalcOutput}{\mathit{p\_SlD},\mathit{u\_SlD},\mathit{x\_SlD},\mathit{xd\_SlD},\mathit{z\_SlD}}$
\State $\mathit{y\_SrvD} \gets \Call{CalcOutput}{\mathit{p\_SrvD},\mathit{u\_SrvD},\mathit{x\_SrvD},\mathit{xd\_SrvD},\mathit{z\_SrvD}}$\footnote{Only if using ServoDyn Structural control with platform TMD.}
\State
\State\Comment{Form $u$ vector using loads and accelerations from $\mathit{u\_HD}$, $\mathit{u\_BD}$, $\mathit{u\_SD}$, $\mathit{u\_Orca}$, $\mathit{u\_ExtPtfm}$, $\mathit{u\_SrvD}$\footnote{Only if using ServoDyn Structural control with platform TMD and SubDyn.} and platform reference input from $\mathit{u\_ED}$}
Expand All @@ -196,6 +202,7 @@ \section{Input-Output Relationships}
\State$\mathit{u\_MD\_tmp} \gets \Call{TransferMeshMotions}{y\_ED}$
\State$\mathit{u\_IceF\_tmp} \gets \Call{TransferMeshMotions}{y\_SD}$
\State$\mathit{u\_IceD\_tmp(:)} \gets \Call{TransferMeshMotions}{y\_SD}$
\State$\mathit{u\_SlD\_tmp} \gets \Call{TransferMeshMotions}{y\_SD}$
\State$\mathit{u\_HD\_tmp} \gets \Call{TransferMeshMotions}{y\_ED,y\_SD}$
\State$\mathit{u\_SrvD\_tmp} \gets \Call{TransferMeshMotions}{y\_BD,y\_ED,y\_SD}$\footnote{Only if using ServoDyn Structural control.}
\State$\mathit{u\_SD\_tmp} \gets \!
Expand All @@ -207,6 +214,7 @@ \section{Input-Output Relationships}
& \mathit{y\_HD}, \mathit{u\_HD\_tmp}, \\
& \mathit{y\_IceF}, \mathit{u\_IceF\_tmp}, \\
& \mathit{y\_IceD(:)}, \mathit{u\_IceD\_tmp(:)}, \\
& \mathit{y\_SlD}, \mathit{u\_SlD\_tmp}) \\
\end{aligned}
\end{aligned}$
\State$\mathit{u\_ED\_tmp} \gets \Call{TransferMeshLoads}{}( \!
Expand Down Expand Up @@ -267,6 +275,7 @@ \section{Input-Output Relationships}
\State $\mathit{u\_FEAM} \gets \Call{TransferMeshMotions}{\mathit{y\_ED}}$
\State $\mathit{u\_IceF} \gets \Call{TransferMeshMotions}{\mathit{y\_SD}}$
\State $\mathit{u\_IceD(:)} \gets \Call{TransferMeshMotions}{\mathit{y\_SD}}$
\State $\mathit{u\_SlD} \gets \Call{TransferMeshPosition}{\mathit{y\_SD}}$
\State $\mathit{u\_SrvD} \gets \Call{TransferMeshMotions}{\mathit{y\_BD,y\_ED,y\_SD}}$\footnote{Only if using ServoDyn Structural control.} % For SrvD%PtfmStC

\EndProcedure
Expand Down Expand Up @@ -356,9 +365,19 @@ \section{Solve Option 2 Improvements}
\State $\Call{AD\_UpdateStates}{\mathit{p\_AD},\mathit{u\_AD},\mathit{x\_AD},\mathit{xd\_AD},\mathit{z\_AD}}$
\State $\Call{SrvD\_UpdateStates}{\mathit{p\_SrvD},\mathit{u\_SrvD},\mathit{x\_SrvD},\mathit{xd\_SrvD},\mathit{z\_SrvD}}$
\State
\State $\mathit{u\_SD} \gets \Call{TransferMeshMotions}{\mathit{y\_ED}}$
\State $\Call{SD\_UpdateStates}{\mathit{p\_SD},\mathit{u\_SD},\mathit{x\_SD},\mathit{xd\_SD},\mathit{z\_SD}}$
\State
\If{CompSoil}
\State $\mathit{y\_SD} \gets \Call{SD\_CalcOutput}{\mathit{p\_SD},\mathit{u\_SD},\mathit{x\_SD},\mathit{xd\_SD},\mathit{z\_SD}}$
\State $\mathit{u\_SlD} \gets \Call{TransferMeshPosition}{\mathit{y\_SD}}$
\State $\Call{SlD\_UpdateStates}{\mathit{p\_SlD},\mathit{u\_SlD},\mathit{x\_SlD},\mathit{xd\_SlD},\mathit{z\_SlD}}$
\EndIf
\State
\State All other modules (used in Solve Option 1) advance their states
\EndProcedure
\end{algorithmic}
Note that SoilDyn is very sensitive to the motion of SubDyn, thus calculations of SubDyn are performed before the SoilDyn extrapolation.

Note that AeroDyn and ServoDyn outputs get calculated inside the ${CalcOutputs\_And\_SolveForInputs}$ routine. ElastoDyn, BeamDyn, and
InflowWind outputs do not get recalculated in ${CalcOutputs\_And\_SolveForInputs}$ except for the first time the routine is called
Expand Down
Binary file not shown.
Binary file not shown.
Binary file modified docs/OtherSupporting/OutListParameters.xlsx
Binary file not shown.
2 changes: 1 addition & 1 deletion docs/source/install/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -381,7 +381,7 @@ The CMake options specific to OpenFAST and their default settings are:
FPE_TRAP_ENABLED - Enable Floating Point Exception (FPE) trap in compiler options (Default: OFF)
GENERATE_TYPES - Use the openfast-registry to autogenerate types modules (Default: OFF)
OPENMP - Enable OpenMP support (Default: OFF)
ORCA_DLL_LOAD - Enable OrcaFlex library load (Default: OFF)
WIN_DLL_LOAD - Enable loading of Windows DLLs for OrcaFlex and SoilDyn (Default: ON)
USE_DLL_INTERFACE - Enable runtime loading of dynamic libraries (Default: ON)

Additional system-specific options may exist for a given system, but those
Expand Down
2 changes: 2 additions & 0 deletions docs/source/user/api_change.rst
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ ServoDyn 75 CCmode 0
HydroDyn driver 6 WtrDens 1025 WtrDens - Water density (kg/m^3)
HydroDyn driver 7 WtrDpth 200 WtrDpth - Water depth (m)
HydroDyn driver 8 MSL2SWL 0 MSL2SWL - Offset between still-water level and mean sea level (m) [positive upward]
OpenFAST 20 CompSoil 0 CompSoil - Compute soil-structural dynamics (switch) {0=None; 1=with SubDyn mesh}
OpenFAST 21 MHK 0 MHK - MHK turbine type (switch) {0=Not an MHK turbine; 1=Fixed MHK turbine; 2=Floating MHK turbine}
OpenFAST 22 N/A ---------------------- ENVIRONMENTAL CONDITIONS --------------------------------
OpenFAST 23 Gravity 9.80665 Gravity - Gravitational acceleration (m/s^2)
Expand All @@ -74,6 +75,7 @@ OpenFAST 28 Patm 103500 Pa
OpenFAST 29 Pvap 1700 Pvap - Vapour pressure of working fluid (Pa) [used only for an MHK turbine cavitation check]
OpenFAST 30 WtrDpth 50 WtrDpth - Water depth (m)
OpenFAST 31 MSL2SWL 0 MSL2SWL - Offset between still-water level and mean sea level (m) [positive upward]
OpenFAST 45 SoilFile "unused" SoilFile - Name of the file containing the SoilDyn input parameters (quoted string)
AeroDyn 15 40 UAStartRad 0.25 UAStartRad - Starting radius for dynamic stall (fraction of rotor radius) [used only when AFAeroMod=2; if line is missing UAStartRad=0]
AeroDyn 15 41 UAEndRad 0.95 UAEndRad - Ending radius for dynamic stall (fraction of rotor radius) [used only when AFAeroMod=2; if line is missing UAEndRad=1]
AeroDyn driver 34 Twr2Shft 3.09343 Twr2Shft - Vertical distance from the tower-top to the rotor shaft (m)
Expand Down
1 change: 1 addition & 0 deletions modules/openfast-library/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ target_link_libraries(openfast_prelib
elastodynlib
beamdynlib
subdynlib
soildynlib
hydrodynlib
orcaflexlib
extptfm_mckflib
Expand Down
26 changes: 24 additions & 2 deletions modules/openfast-library/src/FAST_Registry.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ usefrom ServoDyn_Registry.txt
usefrom Registry-AD14.txt
usefrom AeroDyn_Registry.txt
usefrom SubDyn_Registry.txt
usefrom SoilDyn_Registry.txt
usefrom HydroDyn.txt
usefrom IceFloe_FASTRegistry.inp
usefrom InflowWind.txt
Expand Down Expand Up @@ -53,7 +54,8 @@ param ^ - INTEGER Module_MD - 14 - "MoorDyn" -
param ^ - INTEGER Module_Orca - 15 - "OrcaFlex integration (HD/Mooring)" -
param ^ - INTEGER Module_IceF - 16 - "IceFloe" -
param ^ - INTEGER Module_IceD - 17 - "IceDyn" -
param ^ - INTEGER NumModules - 17 - "The number of modules available in FAST" -
param ^ - INTEGER Module_SlD - 18 - "SoilDyn" -
param ^ - INTEGER NumModules - 18 - "The number of modules available in FAST" -
# Other Constants
param ^ - INTEGER MaxNBlades - 3 - "Maximum number of blades allowed on a turbine" -
param ^ - INTEGER IceD_MaxLegs - 4 - "because I don't know how many legs there are before calling IceD_Init and I don't want to copy the data because of sibling mesh issues, I'm going to allocate IceD based on this number" -
Expand Down Expand Up @@ -112,9 +114,10 @@ typedef ^ FAST_ParameterType IntKi CompInflow - - - "Compute inflow wind conditi
typedef ^ FAST_ParameterType IntKi CompAero - - - "Compute aerodynamic loads (switch) {Module_None; Module_AD14; Module_AD}" -
typedef ^ FAST_ParameterType IntKi CompServo - - - "Compute control and electrical-drive dynamics (switch) {Module_None; Module_SrvD}" -
typedef ^ FAST_ParameterType IntKi CompHydro - - - "Compute hydrodynamic loads (switch) {Module_None; Module_HD}" -
typedef ^ FAST_ParameterType IntKi CompSub - - - "Compute sub-structural dynamics (switch) {Module_None; Module_HD}" -
typedef ^ FAST_ParameterType IntKi CompSub - - - "Compute sub-structural dynamics (switch) {Module_None; Module_SD}" -
typedef ^ FAST_ParameterType IntKi CompMooring - - - "Compute mooring system (switch) {Module_None; Module_MAP; Module_FEAM; Module_MD; Module_Orca}" -
typedef ^ FAST_ParameterType IntKi CompIce - - - "Compute ice loading (switch) {Module_None; Module_IceF, Module_IceD}" -
typedef ^ FAST_ParameterType IntKi CompSoil - - - "Compute soil-structural dynamics (switch) {Module_None; Module_SlD}" -
typedef ^ FAST_ParameterType IntKi MHK - - - "MHK turbine type (switch) {0=Not an MHK turbine; 1=Fixed MHK turbine; 2=Floating MHK turbine}" -
typedef ^ FAST_ParameterType LOGICAL UseDWM - - - "Use the DWM module in AeroDyn" -
typedef ^ FAST_ParameterType LOGICAL Linearize - - - "Linearization analysis (flag)" -
Expand All @@ -138,6 +141,7 @@ typedef ^ FAST_ParameterType CHARACTER(1024) HydroFile - - - "Name of file conta
typedef ^ FAST_ParameterType CHARACTER(1024) SubFile - - - "Name of file containing sub-structural input parameters" -
typedef ^ FAST_ParameterType CHARACTER(1024) MooringFile - - - "Name of file containing mooring system input parameters" -
typedef ^ FAST_ParameterType CHARACTER(1024) IceFile - - - "Name of file containing ice loading input parameters" -
typedef ^ FAST_ParameterType CHARACTER(1024) SoilFile - - - "Name of file containing soil-structure input parameters" -
# Parameters for file/screen output
#typedef ^ FAST_ParameterType DbKi SttsTime - - - "Amount of time between screen status messages" s
typedef ^ FAST_ParameterType DbKi TStart - - - "Time to begin tabular output" s
Expand Down Expand Up @@ -485,6 +489,18 @@ typedef ^ ^ SD_OutputType Output {:} - - "Array of outputs associated with CalcS
typedef ^ ^ SD_OutputType y_interp - - - "interpolated system outputs for CalcSteady"
typedef ^ ^ DbKi InputTimes {:} - - "Array of times associated with Input Array"

# ..... SoilDyn data .......................................................................................................
typedef FAST SoilDyn_Data SlD_ContinuousStateType x {2} - - "Continuous states"
typedef ^ ^ SlD_DiscreteStateType xd {2} - - "Discrete states"
typedef ^ ^ SlD_ConstraintStateType z {2} - - "Constraint states"
typedef ^ ^ SlD_OtherStateType OtherSt {2} - - "Other states"
typedef ^ ^ SlD_ParameterType p - - - "Parameters"
typedef ^ ^ SlD_InputType u - - - "System inputs"
typedef ^ ^ SlD_OutputType y - - - "System outputs"
typedef ^ ^ SlD_MiscVarType m - - - "Misc/optimization variables"
typedef ^ ^ SlD_InputType Input {:} - - "Array of inputs associated with InputTimes"
typedef ^ ^ DbKi InputTimes {:} - - "Array of times associated with Input Array"

# ..... ExtPtfm data .......................................................................................................
typedef FAST ExtPtfm_Data ExtPtfm_ContinuousStateType x {2} - - "Continuous states"
typedef ^ ^ ExtPtfm_DiscreteStateType xd {2} - - "Discrete states"
Expand Down Expand Up @@ -632,6 +648,9 @@ typedef ^ FAST_ModuleMapType MeshMapType SDy3_P_2_IceF_P - - - "Map SubDyn y3Mes
# IceD <-> SD
typedef ^ FAST_ModuleMapType MeshMapType IceD_P_2_SD_P {:} - - "Map IceDyn point mesh to SubDyn LMesh point mesh"
typedef ^ FAST_ModuleMapType MeshMapType SDy3_P_2_IceD_P {:} - - "Map SubDyn y3Mesh point mesh to IceDyn point mesh"
# SlD <-> SD
typedef ^ FAST_ModuleMapType MeshMapType SlD_P_3_SD_P - - - "Map SoilDyn point mesh to SubDyn y3Mesh point mesh"
typedef ^ FAST_ModuleMapType MeshMapType SD_P_3_SlD_P - - - "Map SubDyn y3Mesh point mesh to SoilDyn point mesh"
# Stored Jacobians:
typedef ^ FAST_ModuleMapType ReKi Jacobian_Opt1 {:}{:} - - "Stored Jacobian in ED_HD_InputOutputSolve or FullOpt1_InputOutputSolve"
typedef ^ FAST_ModuleMapType Integer Jacobian_pivot {:} - - "Pivot array used for LU decomposition of Jacobian_Opt1"
Expand Down Expand Up @@ -716,6 +735,8 @@ typedef ^ FAST_InitData IceFloe_InitInputType InData_IceF - -
typedef ^ FAST_InitData IceFloe_InitOutputType OutData_IceF - - - "IceF Initialization output data"
typedef ^ FAST_InitData IceD_InitInputType InData_IceD - - - "IceD Initialization input data"
typedef ^ FAST_InitData IceD_InitOutputType OutData_IceD - - - "IceD Initialization output data (each instance will have the same output channels)"
typedef ^ FAST_InitData SlD_InitInputType InData_SlD - - - "SlD Initialization input data"
typedef ^ FAST_InitData SlD_InitOutputType OutData_SlD - - - "SlD Initialization output data"


# ..... FAST External Initialization Input data .......................................................................................................
Expand Down Expand Up @@ -754,6 +775,7 @@ typedef ^ FAST_TurbineType OpenFOAM_Data OpFM - - - "Data for OpenFOAM integrati
typedef ^ FAST_TurbineType SCDataEx_Data SC_DX - - - "Data for SuperController integration module" -
typedef ^ FAST_TurbineType HydroDyn_Data HD - - - "Data for the HydroDyn module" -
typedef ^ FAST_TurbineType SubDyn_Data SD - - - "Data for the SubDyn module" -
typedef ^ FAST_TurbineType SoilDyn_Data SlD - - - "Data for the SoilDyn module" -
typedef ^ FAST_TurbineType MAP_Data MAP - - - "Data for the MAP (Mooring Analysis Program) module" -
typedef ^ FAST_TurbineType FEAMooring_Data FEAM - - - "Data for the FEAMooring module" -
typedef ^ FAST_TurbineType MoorDyn_Data MD - - - "Data for the MoorDyn module" -
Expand Down
Loading