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

Tight-Coupling Algorithm for OpenFAST 5.0 #2439

Draft
wants to merge 269 commits into
base: dev
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
269 commits
Select commit Hold shift + click to select a range
d570445
Disable FAST_Linear, FAST_CalcSteady, and FAST_RunSteadyStateDriver
deslaughter Feb 9, 2024
964e0f5
Changed function signature of Input/Output Mesh Names function
deslaughter Feb 14, 2024
aacc6c4
Add missing error return initialization
deslaughter Feb 14, 2024
46a9259
Expand mesh mapping data structure
deslaughter Feb 14, 2024
d5d9d24
Add HydroDyn and MAP to MV_AddModule in FAST_Subs
deslaughter Feb 14, 2024
a7cdf92
Initialize variable linearization index in ModLin
deslaughter Feb 14, 2024
761bbde
Change how extended linearization variables are handled in ElastoDyn
deslaughter Feb 14, 2024
86c7fca
Add Hydrodyn module variables
deslaughter Feb 14, 2024
f448bf5
Add MAP Module Variables
deslaughter Feb 14, 2024
2783349
ModVar: don't add variables with zero number
deslaughter Feb 14, 2024
78a0f55
Remove duplicate registry generation in MAP
deslaughter Feb 14, 2024
1d111c4
Add missing routines to FAST_Funcs
deslaughter Feb 14, 2024
1f96ede
Completely rework FAST_Mesh
deslaughter Feb 14, 2024
69cdcc9
Fixing types for single-precision compile
deslaughter Feb 14, 2024
613c5c0
Update simulink CMakeLists with new FAST modules
deslaughter Feb 14, 2024
69e4fb9
Added HD mappings in FAST_Mesh.f90
deslaughter Feb 15, 2024
a11ceb3
Fix bug in map.f90 jacobian routine
deslaughter Feb 15, 2024
51d77a8
Add guard on HD WAMITObj when creating vars
deslaughter Feb 15, 2024
fb9ab9c
Add iVar guards on ModVar pack/unpack routines
deslaughter Feb 15, 2024
b0614cb
Fix variable linearization names in ServoDyn.f90
deslaughter Feb 15, 2024
13e641b
Rename FAST_Mesh.f90 to FAST_Mapping.f90
deslaughter Feb 16, 2024
cf7fa65
Added mapping for non-mesh variables in FAST_Mapping
deslaughter Feb 16, 2024
9c82411
Updating AeroDyn Linearization
deslaughter Feb 20, 2024
b9853c5
Update test list and r-test pointer
deslaughter Feb 20, 2024
09c3cec
Merge remote-tracking branch 'andy/f/AD15_IfW_Linearization' into f/t…
deslaughter Feb 20, 2024
c8a94fe
5MW_Land_Linear_Aero mostly working
deslaughter Feb 22, 2024
a8bea4a
Add AD extended inputs as standard inputs
deslaughter Feb 22, 2024
1bd9b50
Merge remote-tracking branch 'andy/f/AD15_IfW_Linearization' into f/t…
deslaughter Feb 22, 2024
d7c3d59
Change OP type in InflowWind_GetOP to R8Ki
deslaughter Feb 22, 2024
a40ed60
Fix bug in AD WriteOutput Variable creation
deslaughter Feb 22, 2024
d9ed815
Add docs to FAST_LinearizeMappings, minor cleanup
deslaughter Feb 22, 2024
04ac77a
Update r-test pointer
deslaughter Feb 22, 2024
a2e9cb7
Fixed UA State variables and packing, use RotInflow_perturb in functions
deslaughter Feb 22, 2024
febda0d
FAST_Mapping: added comments, fixed load mesh linearization for non-s…
deslaughter Feb 22, 2024
f8fc2e7
Merge remote-tracking branch 'andy/f/AD15_IfW_Linearization' into f/t…
deslaughter Feb 22, 2024
6cdf30c
Create AD_SetOP routine, standardize OP pack/unpack routines
deslaughter Feb 23, 2024
4e62b3f
Restore AD Compute_dY which is used by JacobianPConstrState
deslaughter Feb 23, 2024
93e06be
Add module instance to AD_GetOP as the rotor index
deslaughter Feb 23, 2024
63f9d2b
FAST_Mapping: Added more mesh and variable mappings
deslaughter Feb 27, 2024
b269c58
Added Custom mapping type for direct transfers not used in linearization
deslaughter Feb 27, 2024
205b412
Use MV_Pack in SrvD GetOP, add variables indices
deslaughter Feb 27, 2024
9e688d8
Add MD to modules list in FAST_Subs
deslaughter Feb 27, 2024
70328c2
Change GetOP order in FAST_ModLin
deslaughter Feb 27, 2024
4482c5e
Modify MoorDyn to use module variables
deslaughter Feb 27, 2024
7a022ed
Standardize names of module pack/unpack routines
deslaughter Feb 27, 2024
d881246
Added SubDyn Linearization
deslaughter Feb 27, 2024
8c78841
Fix single precision compilation
deslaughter Feb 27, 2024
956eccb
Remove mapping to unused SrvD%u%PtfmMotionMesh
deslaughter Feb 27, 2024
af70cf2
Fix blade structural controller indexing
deslaughter Feb 27, 2024
1a1e4c6
Disable AeroMap
deslaughter Feb 27, 2024
bd9b914
Update r-test pointer
deslaughter Feb 29, 2024
85230ef
Merge remote-tracking branch 'andy/f/AD15_IfW_Linearization' into f/t…
deslaughter Feb 29, 2024
f6bdbd3
Fix bad merge of ElastoDyn_Registry.txt
deslaughter Feb 29, 2024
2487ea7
Specify linearization modules in FAST_Mods.f90
deslaughter Feb 29, 2024
f2c0f5a
Update r-test pointer
deslaughter Feb 29, 2024
6cd6258
Disable allocation of ModGlue linearization matrices unless lineariza…
deslaughter Feb 29, 2024
eb206a6
Fix rotate states in BD
deslaughter Mar 1, 2024
bca1758
Remove AeroMap from AD, BD, ED
deslaughter Mar 5, 2024
cb5b25e
InflowWind_IO: Add function to init SteadyFlowField from RefHt, HWind…
deslaughter Mar 5, 2024
ff89859
Rename FAST_ModLin to FAST_ModGlue
deslaughter Mar 5, 2024
f27e629
Move some types/funcs out of ModVar and into glue code
deslaughter Mar 5, 2024
0cd04a2
FAST_Funcs add subroutine for copying inputs
deslaughter Mar 5, 2024
446b0c1
Add header to FAST_Mapping
deslaughter Mar 5, 2024
933ff11
Change FAST_ModLin to FAST_ModGlue in FAST_Subs
deslaughter Mar 5, 2024
0a5433d
Add guard around WriteOutput in Servodyn in GetOP function
deslaughter Mar 5, 2024
3d477df
Remove indexing for linearization, handle it inline
deslaughter Mar 5, 2024
f96090a
Merge remote-tracking branch 'andy/f/AD15_IfW_Linearization' into f/t…
deslaughter Mar 5, 2024
df1bc2a
Change FAST_ModLin to FAST_ModGlue in Simulink CMakeLists.txt
deslaughter Mar 5, 2024
878ee64
Update r-test pointer
deslaughter Mar 5, 2024
98801a4
Update r-test pointer for reg_test changes
deslaughter Mar 6, 2024
e7dc2a7
Started re-adding AeroMap
deslaughter May 17, 2024
e299b6a
Merge remote-tracking branch 'upstream/dev' into f/tight-coupling
deslaughter May 17, 2024
31f68dd
Switch to dev r-test branch
deslaughter May 17, 2024
a5dd7b3
Add FAST_Idx.f90 to simulink/CMakeLists.txt
deslaughter May 17, 2024
da4e4d8
Disable 5MW_Land_AeroMap test temporarily
deslaughter May 17, 2024
8cf4a36
Switch to quaternions from WM params in ModVar
deslaughter May 21, 2024
bc3da89
Attempt to get linearization test cases to work again
deslaughter May 21, 2024
f906d9b
Add missing flag on SubDyn WriteOutput variable
deslaughter May 23, 2024
d20489e
Added SeaState to module system
deslaughter May 23, 2024
ecc8605
Revised quaternion handling in BeamDyn
deslaughter May 23, 2024
c232ec4
Fix bug where SeaState variables weren't being initialized
deslaughter May 23, 2024
48d7df1
Variable Perturb was wrong type in SeaState
deslaughter May 23, 2024
c32d196
Attempt to remove uninitialized variables from FAST_Mapping and FAST_…
deslaughter May 23, 2024
76a0bba
Fix extending WaveElev0 input/output name in SeaState
deslaughter May 24, 2024
ab1ad26
Fix indexing in dXdu in HydroDyn for new extended inputs
deslaughter May 24, 2024
b8f2c6b
Reduce memory usage in fast_linearization_file.py when reading matrices
deslaughter May 24, 2024
f9d9241
Add Glue_Registry.txt to store new glue code structures, change FAST …
deslaughter May 28, 2024
a0c46c7
Add ModGlue_CalcSteady
deslaughter May 31, 2024
c603aef
Add MV_ExtrapInterp function to ModVar
deslaughter Jun 3, 2024
1e4bc9a
Rename ModVar variables fields to better differentiate from Flags. Ad…
deslaughter Jun 3, 2024
1621b8a
Add proper angle interpolation on [0,2PI] to MV_ExtrapInterp
deslaughter Jun 3, 2024
25a7742
Add FEAM and Orca to Module System
deslaughter Jun 3, 2024
5c1d034
Update r-test pointer
deslaughter Jun 3, 2024
e347f85
Add OrcaFlex, ExtInfw, ExtLd to module system. Fix spelling in InitVa…
deslaughter Jun 3, 2024
b5fe903
Update r-test pointer
deslaughter Jun 3, 2024
0cb0072
Remove unused linearization routines in MAP, BeamDyn, SubDyn
deslaughter Jun 3, 2024
7ac2d84
Merge remote-tracking branch 'upstream/dev' into f/tight-coupling
deslaughter Jun 3, 2024
9917249
Update r-test pointer
deslaughter Jun 6, 2024
b543b77
Making progress on AeroMap, update indexing
deslaughter Jun 15, 2024
7182ff8
Change FAST_Idx.f90 to FAST_ModData.90 in simulink CMakeLists.txt
deslaughter Jun 15, 2024
c465160
AeroMap working for ElastoDyn
deslaughter Jun 18, 2024
ffa7098
Get AeroMap reset working, re-enable AeroMap test for ED
deslaughter Jun 18, 2024
d0d19f4
Minor cleanup in AeroMap
deslaughter Jun 20, 2024
98b0e9a
Add parsing of J matrix to FASTLinearizationFile
deslaughter Jun 20, 2024
f2996f7
Partially working revision of module vars
deslaughter Jul 8, 2024
49fec4e
Refactoring module variables again
deslaughter Jul 22, 2024
ceda2b5
Merge remote-tracking branch 'upstream/dev' into f/tight-coupling
deslaughter Jul 22, 2024
35c64b2
Fix merge issues
deslaughter Jul 22, 2024
8dc5ebb
Linearization changes
deslaughter Jul 24, 2024
a59fa0a
Majority of linearization regression tests working
deslaughter Jul 25, 2024
6c3eabc
Merge remote-tracking branch 'upstream/dev' into f/tight-coupling
deslaughter Jul 25, 2024
14cf9e6
Remove Glue_ModData from simulink CMakeLists.txt
deslaughter Jul 26, 2024
f0b3a77
Regenerate Types files
deslaughter Jul 26, 2024
653b976
fix typo in fast_linearization_file.py
deslaughter Jul 26, 2024
7ab1028
Change dxdt_jac to dxdt_lin
deslaughter Jul 26, 2024
5f0d9a0
Reenable AeroMap
deslaughter Jul 26, 2024
72017b5
Restore iSrcMaps and iDstMaps zero allocation
deslaughter Jul 27, 2024
2695d5f
Fix 5MW_OC4Semi_MD_Linear test case, generate field name functions
deslaughter Jul 29, 2024
fe88291
Tight coupling appears to be working for at least some regression tes…
deslaughter Aug 9, 2024
0111789
Don't clear load mesh if mapping isn't ready
deslaughter Aug 9, 2024
819d504
BeamDyn, ModMesh, NWTC_Num performance improvements
deslaughter Aug 16, 2024
b57c17e
Tight coupling appears to be working for the IEA15
deslaughter Aug 16, 2024
0f67063
Fix bug in BeamDyn performance commit
deslaughter Aug 19, 2024
d18c96d
Set SrvD hub wind speed from IfW hub speed
deslaughter Aug 19, 2024
f664cc5
Add commented option for performance profiling in OpenfastFortranOpti…
deslaughter Aug 19, 2024
dd7e4f4
Use small rotation angles in ModVar
deslaughter Aug 20, 2024
56d830b
Make SolverTC work with no states
deslaughter Aug 20, 2024
427af96
Add error in SrvD to exit if HSSBrMode is not 0. The brake doesn't cu…
deslaughter Aug 20, 2024
e36a35c
Change errorPlotting.py and pass_fail.py to ignore TC channels (ConvE…
deslaughter Aug 20, 2024
12b0d8d
Set mapping from SeaSt_y_WaveElev0 to HydroDyn_u_WaveElev0 to only be…
deslaughter Aug 20, 2024
e460460
Remove duplicate array allocation in AeroMap
deslaughter Aug 20, 2024
625ba1e
Change Vars used in Option 1 in SolverTC
deslaughter Aug 20, 2024
0b4894f
Fix beamdyn_utest incorrect size of m%qp%upp
deslaughter Aug 20, 2024
37b6f34
Fix more bugs in BeamDyn performance improvements
deslaughter Aug 22, 2024
4c93cf7
Update executePythonRegressionCase.py for TC outputs
deslaughter Aug 22, 2024
699bcb0
Reworked TC Solver initialization method
deslaughter Aug 22, 2024
07ae8bb
FAST_Func: Add SeaSt CalcOutput, fix MAP_UpdateStates
deslaughter Aug 22, 2024
04f488a
Specify name in Glue_CombineModules
deslaughter Aug 22, 2024
3e171d4
Rename some vars in Glue_Registry.txt
deslaughter Aug 22, 2024
ab1ce23
Merge remote-tracking branch 'upstream/dev' into f/tight-coupling
deslaughter Aug 22, 2024
b34e327
Fix simulink CMakeLists.txt
deslaughter Aug 22, 2024
0f5a5a9
Point to r-test-5 in submodule
deslaughter Aug 23, 2024
f9f31c2
Update r-test pointer
deslaughter Aug 23, 2024
9fc8246
Allow reg_tests to use .out or .outb files
deslaughter Aug 26, 2024
f8a952f
Fix step0 system initialization in FAST_SolverTC
deslaughter Aug 26, 2024
d1d3f61
Disable use of small rotation angles in ModVar
deslaughter Aug 26, 2024
33ca6dc
Align SolverTC with FAST_Subs
deslaughter Aug 26, 2024
cd6b4fc
Fix bug in Calculate_C_alpha (AirfoilInfo.f90)
deslaughter Aug 27, 2024
d4e7c7c
Rename functions in FAST_SolverTC
deslaughter Aug 27, 2024
f49fc9a
Allow .out and .outb files in regression test scripts
deslaughter Aug 27, 2024
4b703bc
Update r-test pointer
deslaughter Aug 27, 2024
c06f0bb
Remove GetOP from IfW and ExtPtfm
deslaughter Aug 27, 2024
724593f
Reduce linearization size by keeping only necessary variables
deslaughter Aug 27, 2024
5912006
Add name argument to Glue_CombineModules
deslaughter Aug 27, 2024
c624cb4
Update r-test pointer, disable 5MW_OC4Jckt_DLL_WTurb_WavesIrr_MGrowth
deslaughter Aug 27, 2024
1a128c4
Read solver parameters from input file
deslaughter Aug 27, 2024
fe73405
Update FAST_Types.f90
deslaughter Aug 28, 2024
b67fb62
Update r-test pointer
deslaughter Aug 28, 2024
2f7b2f8
Update r-test pointer
deslaughter Aug 28, 2024
467bb85
Update r-test pointer
deslaughter Aug 28, 2024
4040fba
Update r-test pointer
deslaughter Aug 28, 2024
435d084
Add checks in linearization for when dUdu and dUdy aren't allocated
deslaughter Aug 28, 2024
25a5dcd
Update r-test pointer
deslaughter Aug 29, 2024
4c139fd
Rework initialization again
deslaughter Aug 29, 2024
1cf4f63
Rework initialization, attempt 3
deslaughter Aug 29, 2024
4013962
Update r-test pointer
deslaughter Aug 29, 2024
45be70a
Skip Solver_Step0 convergence if no inputs
deslaughter Aug 29, 2024
ff50e97
Update r-test pointer
deslaughter Aug 29, 2024
ef0e277
Move NacelleDrag and BuoyantLoads calc into RotCalcOutput to be inclu…
deslaughter Aug 29, 2024
78c1282
Update r-test pointer
deslaughter Aug 29, 2024
75f46da
Add MHK_RM1_Floating_Linear regression test
deslaughter Aug 29, 2024
a644cad
Disable MHK_RM1_Floating_Linear, reset flag in ModGlue
deslaughter Aug 29, 2024
0c05514
Get AeroMap working again
deslaughter Aug 29, 2024
17818c2
Integrate ExtLoads
deslaughter Aug 31, 2024
8f512df
Fix blade structural control in FAST_Mapping
deslaughter Aug 31, 2024
639b0a5
Update r-test pointer
deslaughter Aug 31, 2024
410d516
Fix FAST_Mapping again
deslaughter Aug 31, 2024
36c73bc
Update remap flat reset function to use mesh pointers
deslaughter Sep 4, 2024
bc551ce
improve flag usage in elastodyn
deslaughter Sep 4, 2024
1bef93f
Improve method for select vars used in TC solve
deslaughter Sep 4, 2024
8669b9a
Update r-test pointer
deslaughter Sep 4, 2024
3023d8e
Update r-test pointer
deslaughter Sep 4, 2024
711df68
Change field strings in ModVar.f90
deslaughter Sep 7, 2024
ffc4cdb
Fix SD->HD mapping with Y2Mesh in FAST_Mapping
deslaughter Sep 7, 2024
373a523
Cleanup in FAST_Mapping
deslaughter Sep 7, 2024
2634482
Add solve debug output in FAST_SolverTC
deslaughter Sep 7, 2024
0b59134
Perf improvements to Conv_Radiation and SeaSt_WaveField
deslaughter Sep 9, 2024
7bff0dc
Mark several NWTC Lib functions as PURE
deslaughter Sep 10, 2024
cf89895
Minor performance improvements in SeaState (reorganize indexing to mi…
deslaughter Sep 10, 2024
208db9d
Small performance improvements in Morison.f90
deslaughter Sep 10, 2024
640acba
Minor performance improvements in SubDyn
deslaughter Sep 10, 2024
74f77e6
Use LAPACK_GEMV in SubDyn
deslaughter Sep 10, 2024
2ebd615
Fully initialize Mesh%ElemTable in MeshCreate
deslaughter Sep 11, 2024
89238f4
SubDyn: fix single precision compile
deslaughter Sep 11, 2024
41649b2
SeaSt_WaveField: remove unused WaveElev functions
deslaughter Sep 11, 2024
ea17262
Fix crashes with Intel compiler
deslaughter Sep 11, 2024
deaff44
Merge remote-tracking branch 'upstream/dev' into f/tight-coupling
deslaughter Sep 11, 2024
622b60b
Everything builds after merge
deslaughter Sep 11, 2024
e611250
FAST_Subs: Fix duplicate array allocation
deslaughter Sep 12, 2024
bc3ebe5
Add IceDyn and IceFloe to modules system
deslaughter Sep 12, 2024
5a17a69
Integrate SED and AeroDisk into new glue code
deslaughter Sep 12, 2024
10fecd5
Get SED working, missing mappings
deslaughter Sep 13, 2024
6156ee1
Copy .outb file when doing linear regression test
deslaughter Sep 13, 2024
345db2e
Update r-test pointer
deslaughter Sep 13, 2024
8205fce
SubDyn: fix single precision build
deslaughter Sep 13, 2024
7257fd4
FAST_SolverTC: Disable AD in Option 1
deslaughter Sep 13, 2024
99390be
Update r-test pointer
deslaughter Sep 13, 2024
f68f85f
FAST_SolverTC: disable Jacobian debug output
deslaughter Sep 13, 2024
6d50fd4
Add MHK floating test case
deslaughter Sep 13, 2024
4460bef
FAST_Subs: fix bug in InputAryLB calc
deslaughter Sep 13, 2024
796423c
Update r-test pointer
deslaughter Sep 13, 2024
7f85499
HydroDyn: fix output of WAMIT%Conv_Rdtn%RdtnKrnl
deslaughter Sep 13, 2024
b5394f4
FAST_SolverTC: Enable switching of AeroDyn between Opt1 and Opt2 if M…
deslaughter Sep 13, 2024
94c6bcf
AeroDyn: disable first tower node depth check in RotCalcBuoyantLoads …
deslaughter Sep 13, 2024
d977fb7
CTestList: Add highpass filter for MHK_RM1_Floating_Linear case
deslaughter Sep 13, 2024
c55c291
Print more failed errors for linearization regression tests
deslaughter Sep 13, 2024
348921d
CTestList: Disable MHK_RM1_Floating_Linear and update r-test pointer
deslaughter Sep 13, 2024
500f0d8
Merge remote-tracking branch 'upstream/dev' into f/tight-coupling
deslaughter Sep 13, 2024
1d5b0d1
ExtLoads: update to match dev behavior
deslaughter Sep 14, 2024
83bed31
Update r-test pointer
deslaughter Sep 14, 2024
58f5aad
FAST_Subs: fix bad merge
deslaughter Sep 14, 2024
e9d007d
openfast_io: update reader & writer for tight-coupling inputs
deslaughter Sep 14, 2024
c68d693
Update r-test pointer
deslaughter Sep 14, 2024
7c5633f
Allow NLinTimes=1 when using CalcSteady
deslaughter Sep 17, 2024
ae12bdc
Allow DBEMT_Mod=-1 (frozen wake) for linearization
deslaughter Sep 17, 2024
e1a28e1
FAST_ModGlue: better way to prevent CalcSteady from converging premat…
deslaughter Sep 17, 2024
2723c20
FAST_Mapping: remove ExtLd -> SrvD
deslaughter Sep 18, 2024
0845870
Use at least 2 azimuth positions for CalcSteady
deslaughter Sep 18, 2024
09cc223
Merge remote-tracking branch 'upstream/dev' into f/tight-coupling
deslaughter Sep 18, 2024
efc9d5a
FAST_Mapping: reimplement tower and blade damping for CalcSteady
deslaughter Sep 19, 2024
b3541f5
ExtLoads: fix bad merge from dev
deslaughter Sep 20, 2024
fdffbe4
Update r-test pointer
deslaughter Sep 20, 2024
3f0e899
Fix MV_ExtrapInterp and its use in FAST_ModGlue
deslaughter Sep 26, 2024
0bd39f9
Update convergence failure message
deslaughter Oct 22, 2024
5ee4ac1
Merge %Input_Saved into %Input for modules
deslaughter Nov 5, 2024
eb179da
Remove unused LinStateSave
deslaughter Nov 5, 2024
bdf9b8b
Remove unnecessary u input in FAST_Types
deslaughter Nov 5, 2024
c45661f
Remove unused members of module data structures
deslaughter Nov 5, 2024
a96dbbe
Add Visual Studio Solution which uses IFX
deslaughter Nov 14, 2024
74d6f66
Remvoe Visual Studio temporary files from repo
deslaughter Nov 15, 2024
6b3c85e
Adding missing features and modules to vs-build-ifx
deslaughter Nov 15, 2024
4adeb57
Updating VS projects
deslaughter Nov 18, 2024
7ae7a45
Update all the projects
deslaughter Nov 19, 2024
c6fc177
Moved driver projects, fixed SuperController
deslaughter Nov 19, 2024
f4ef8ab
Fix build in VS2019
deslaughter Nov 20, 2024
1217146
Resolve stack overflow in using ifx
deslaughter Nov 25, 2024
ff98846
More work on Visual Studio projects
deslaughter Nov 25, 2024
429b01a
Merge 'dev' into f/tight-coupling
deslaughter Dec 10, 2024
a866b34
Fix single precision compile
deslaughter Dec 10, 2024
8e79b8f
Fix duplicated allocation in BeamDyn
deslaughter Dec 10, 2024
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
3 changes: 2 additions & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
[submodule "reg_tests/r-test"]
path = reg_tests/r-test
url = https://github.com/OpenFAST/r-test.git
url = https://github.com/OpenFAST/r-test.git
shallow = true
12 changes: 10 additions & 2 deletions cmake/OpenfastFortranOptions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,10 @@ macro(set_fast_gfortran)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS},--stack,${stack_size}")
endif()

# Profiling
# set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -pg")
# set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg")

check_f2008_features()
endmacro(set_fast_gfortran)

Expand All @@ -158,7 +162,9 @@ endmacro(set_fast_intel_fortran)
# arch
#
macro(set_fast_intel_fortran_posix)
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fpic -fpp")
# Set size where temporary are stored on heap instead of stack
# 1000: size in kB (1 MB)
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fpic -fpp -heap-arrays 1000")

# debug flags
if(CMAKE_BUILD_TYPE MATCHES Debug)
Expand Down Expand Up @@ -201,7 +207,9 @@ macro(set_fast_intel_fortran_windows)
# Turn off specific warnings
# - 5199: too many continuation lines
# - 5268: 132 column limit
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} /Qdiag-disable:5199,5268 /fpp")
# Set size where temporary are stored on heap instead of stack
# 1000: size in kB (1 MB)
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} /Qdiag-disable:5199,5268 /fpp /heap-arrays:1000")

# If double precision, make constants double precision
if (DOUBLE_PRECISION)
Expand Down
96 changes: 96 additions & 0 deletions docs/changelogs/v3.5.4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
**Feature or improvement description**
Pull request to merge `rc-3.5.4` into `main` and create a tagged release for v3.5.4.

See the milestone and project pages for additional information

https://github.com/OpenFAST/openfast/milestone/14

Test results, if applicable
See GitHub Actions

### Release checklist:
- [ ] Update the documentation version in docs/conf.py
- [ ] Update the versions in docs/source/user/api_change.rst
- [ ] Verify readthedocs builds correctly
- [ ] Create a tag in OpenFAST
- [ ] Create a merge commit in r-test and add a corresponding annotated tag
- [ ] Compile executables for Windows builds
- [ ] AeroDyn_Driver_x64.exe
- [ ] AeroDyn_Driver_x64_OpenMP.exe
- [ ] AeroDyn_Inflow_C_Binding_x64.dll
- [ ] AeroDyn_Inflow_C_Binding_x64_OpenMP.dll
- [ ] BeamDyn_Driver_x64.exe
- [ ] DISCON.dll (x64)
- [ ] DISCON_ITIBarge.dll (x64)
- [ ] DISCON_OC3Hywind.dll (x64)
- [ ] DISCON_SC.dll (x64)
- [ ] FAST.Farm_x64.exe
- [ ] FAST.Farm_x64_OMP.exe
- [ ] FAST_SFunc.mexw64
- [ ] HydroDynDriver_x64.exe
- [ ] HydroDyn_C_Binding_x64.dll
- [ ] IfW_C_Binding_x64.dll
- [ ] InflowWind_Driver_x64.exe
- [ ] InflowWind_Driver_x64_OpenMP.exe
- [ ] MoorDyn_Driver_x64.exe
- [ ] MoorDyn_C_Binding_x64.dll
- [ ] OpenFAST-Simulink_x64.dll
- [ ] openfast_x64.exe
- [ ] Turbsim_x64.exe

# Changelog

## Overview

This release includes performance improvements for BeamDyn (up to 30% speed increase), python file readers and writers from WEIS, and a fix for stack overflows with FAST.Farm (Intel compilation). A few other minor updates are included as outlined below.

Anyone using BeamDyn will want to update to this version.


## General

### Build systems

#2311 Always build `openfastcpplib` as shared. Use `BUILD_OPENFAST_CPP_DRIVER` to disable `openfastcpp` executable (@deslaughter)
#2173 Fix crash in `MAP_End` when using Intel's new icx compiler and disable caching in setup-python GH action (@deslaughter)


### Python file readers/writers

#2188 Add WEIS file readers and writers (@cortadocodes and @mayankchetan)


## Solvers

### FAST.Farm

#2452 Fix for some stack overflow issues with FAST.Farm when copying large amounts of wind data (closes #2053) (@andrew-platt)
#2340 Add `!$ OMP critical` around file opening for VTK to prevent file collision (@andrew-platt)


## Module changes

### BeamDyn

#2399 BeamDyn performance improvements (@deslaughter)


### ElastoDyn

#2321 Backport of #2317: Explicitly initialize `ED` `RtHS` to zero -- corrects issue with inccorect linearization results (@andrew-platt)


### HydroDyn
#2397 HD bug fix: prevent array index out-of-bound error in `HDOut_MapOutputs` when more than 9 potential-flow bodies are present (@luwang00)

### NWTC-Library
#2389 FileInfoType: increase line length allowed (@andrew-platt)

## Input file changes

No input files change with this release, as this only includes minor bugfixes.

Full list of changes: https://openfast.readthedocs.io/en/main/source/user/api_change.html

Full input file sets: https://github.com/OpenFAST/r-test/tree/v3.5.4 (example input files from the regression testing)

2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ def runDoxygen(sourcfile, doxyfileIn, doxyfileOut):
# The short X.Y version.
version = u'3.5'
# The full version, including alpha/beta/rc tags.
release = u'v3.5.3'
release = u'v3.5.4'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
2 changes: 1 addition & 1 deletion docs/source/install/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ containing the executables, and running a simple test command:

Running OpenFAST with docker
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OpenFAST is avilable to be run on docker starting with version 3.5.3. Three approaches are shared below.
OpenFAST is available to be run on docker starting with version 3.5.3. Three approaches are shared below.

Using a docker image from Docker hub
------------------------------------
Expand Down
4 changes: 2 additions & 2 deletions docs/source/user/aerodyn-aeroacoustics/02-noise-models.rst
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,8 @@ The formulations of :math:`{\overline{D}}_{h}\ `\ and
:math:`{\overline{D}}_{l}` are presented in :numref:`aa-directivity`.

The current implementation offers two approaches to estimate
:math:`I_{1}`. The first one is through a user-defined grid of
:math:`I_{1}`; see :numref:`aa-sec-TIgrid`. The second option is to have the code
:math:`I_{1}`. The first one is through a user-defined :math:`I_{1}`.
The second option is to have the code
reconstructing :math:`I_{1}` from the turbulent wind grid, where the
code computes the airfoil relative position of each blade section,
:math:`i`, at every time instant and, given the rotor speed,
Expand Down
39 changes: 7 additions & 32 deletions docs/source/user/aerodyn-aeroacoustics/App-usage.rst
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,14 @@ models:

- **TICalcMeth** – Integer 1/2: flag to set the calculation method for the
incident turbulence intensity. When set to 1, incident turbulence intensity is
defined in a user-defined grid; see :numref:`aa-sec-TIgrid`. When set to
2, incident turbulence intensity is estimated from the time history of the
incident flow.
user-defined. When set to 2, incident turbulence intensity is
estimated from the time history of the incident flow.

- **TICalcTabFile** – String: name of the text file with the user-defined
turbulence intensity grid; see :numref:`aa-sec-TIgrid`.
- **TI** – Float: user-defined value of :math:`TI`, which is the rotor-incident
turbulence intensity used in the Amiet model.

- **avgV** – Float: value of the average wind speed used to scale :math:`TI`
and convert it to a blade section incident turbulence intensity.

- **Lturb** – Float: value of :math:`L_{turb}` used to estimate the turbulent
lengthscale used in the Amiet model.
Expand Down Expand Up @@ -255,32 +257,5 @@ is shown here:
:language: none


.. _aa-sec-TIgrid:

Turbulence Grid
---------------

When the flag **TICalcMeth** is set equal to 1, the grid of turbulence
intensity of the wind :math:`TI` must be defined by the user. This is
done by creating a file called **TIGrid_In.txt**, which mimics a TurbSim
output file and contains a grid of turbulence intensity, which is
defined as a fraction value. The file defines a grid centered at hub
height and oriented with the OpenFAST global inertial frame coordinate
system; see :numref:`aa-fig:ObsRefSys`. A user-defined number of lateral and vertical
points equally spaced by a user-defined number of meters must be
specified. Note that an average wind speed must be defined to convert
the turbulence intensity of the wind to the incident turbulent intensity :math:`I_{1}`.
An example file for a 160 (lateral) by 180 (vertical) meters
grid looks like the following:


.. container::
:name: aa-tab:TIgrid

.. literalinclude:: example/TIGrid.txt
:linenos:
:language: none


.. [4]
https://github.com/OpenFAST/python-toolbox
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ False Echo - Echo the input to "<rootname>.AD.NN.ech"? (flag)
====== Aeroacoustic Models ============================================================================
2 TIMod - Turbulent Inflow noise model {0: none, 1: Amiet 2: Amiet + Simplified Guidati} (switch)
1 TICalcMeth - Method to estimate turbulence intensity incident to the profile {1: given table, 2: computed on the fly} (switch) [Only used if TIMod!=0]
"TIGrid_InVerify.txt" TICalcTabFile - Name of the file containing the table for incident turbulence intensity (-) [Only used if TiCalcMeth == 1]
0.5 SurfRoughness- Surface roughness value used to estimate the turbulent length scale in Amiet model (m)
0.1 TI - Rotor-incident wind turbulence intensity (-) [Only used if TiCalcMeth == 1]
8 avgV - Average wind speed used to compute the section-incident turbulence intensity (m/s) [Only used if TiCalcMeth == 1]
40 Lturb - Turbulent length scale in Amiet model (m) [Only used if TIMod!=0]
1 TBLTEMod - Turbulent Boundary Layer-Trailing Edge noise calculation {0: none, 1:BPM, 2: TNO} (switch)
1 BLMod - Calculation method for boundary layer properties, {1: BPM, 2: Pretabulated} (switch)
1 TripMod - Boundary layer trip model {0:no trip, 1: heavy trip, 2: light trip} (switch) [Only used if BLMod=1]
Expand All @@ -18,9 +19,6 @@ False Echo - Echo the input to "<rootname>.AD.NN.ech"? (flag)
True RoundedTip - Logical indicating rounded tip (flag) [Only used if TipMod=1]
1.0 Alprat - Tip lift curve slope (Default = 1.0) [Only used if TipMod=1]
0 BluntMod - Trailing-edge-bluntness – Vortex-shedding model {0:none, 1: BPM} (switch)
"AABlade1.dat" AABlFile(1) - Name of file containing distributed aerodynamic properties for Blade #1 (-)
"AABlade1.dat" AABlFile(2) - Name of file containing distributed aerodynamic properties for Blade #2 (-)
"AABlade1.dat" AABlFile(3) - Name of file containing distributed aerodynamic properties for Blade #3 (-)
====== Observer Input ===================================================================
"AA_ObserverLocations.dat" ObserverLocations - Name of file containing all observer locations X Y Z (-)
====== Outputs ====================================================================================
Expand Down
13 changes: 0 additions & 13 deletions docs/source/user/aerodyn-aeroacoustics/example/TIGrid.txt

This file was deleted.

8 changes: 7 additions & 1 deletion docs/source/user/api_change.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Thus, be sure to implement each in order so that subsequent line numbers are cor



OpenFAST v3.5.3 to OpenFAST dev
OpenFAST v3.5.4 to OpenFAST dev
----------------------------------

The HydroDyn module was split into HydroDyn and SeaState. This results in a
Expand All @@ -29,6 +29,8 @@ OpenFAST 15 CompAero\** 2 C
OpenFAST 13 CompElast 3 CompElast - Compute structural dynamics (switch) {1=ElastoDyn; 2=ElastoDyn + BeamDyn for blades; 3=Simplified ElastoDyn}
AeroDyn 40 IntegrationMethod 3 IntegrationMethod - Switch to indicate which integration method UA uses (1=RK4, 2=AB4, 3=ABM4, 4=BDF2)
AeroDyn 140\* BldNd_BlOutNd "All" BldNd_BlOutNd - Specify a portion of the nodes to output. {"ALL", "Tip", "Root", or a list of node numbers} (-)
AeroDyn Aeroacoustics 11\* TI 0.1 TI - Rotor-incident wind turbulence intensity (-) [Only used if TiCalcMeth == 1]
AeroDyn Aeroacoustics 12\* avgV 8 avgV - Average wind speed used to compute the section-incident turbulence intensity (m/s) [Only used if TiCalcMeth == 1]
ElastoDyn blade file 15 Removal of the `PitchAxis` input column
HydroDyn all Complete restructuring of input file
SeaState all New module (split from HydroDyn, so contains some inputs previously found in HydroDyn)
Expand Down Expand Up @@ -104,6 +106,10 @@ Old inputs Corresponding new inputs



OpenFAST v3.5.3 to OpenFAST v3.5.4
----------------------------------

No input file changes were made.


OpenFAST v3.5.2 to OpenFAST v3.5.3
Expand Down
Loading