From 4a8ea994ede30072f81d00b202c6619a35c74efc Mon Sep 17 00:00:00 2001 From: andrew-platt Date: Tue, 12 Jul 2022 18:11:28 -0600 Subject: [PATCH 1/3] Apply small angle perturbations for tower (in AD15, TStC) and substructure (SStc) This now aligns with the 3D rotation implementation plan (in docs/OtherSupporting). --- modules/aerodyn/src/AeroDyn.f90 | 2 +- modules/servodyn/src/ServoDyn.f90 | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/aerodyn/src/AeroDyn.f90 b/modules/aerodyn/src/AeroDyn.f90 index 339a2841e..6085c38ae 100644 --- a/modules/aerodyn/src/AeroDyn.f90 +++ b/modules/aerodyn/src/AeroDyn.f90 @@ -5482,7 +5482,7 @@ SUBROUTINE Perturb_u( p, n, perturb_sign, u, du ) CASE ( 1) !Module/Mesh/Field: u%TowerMotion%TranslationDisp = 1; u%TowerMotion%TranslationDisp( fieldIndx,node) = u%TowerMotion%TranslationDisp( fieldIndx,node) + du * perturb_sign CASE ( 2) !Module/Mesh/Field: u%TowerMotion%Orientation = 2; - CALL PerturbOrientationMatrix( u%TowerMotion%Orientation(:,:,node), du * perturb_sign, fieldIndx ) + CALL PerturbOrientationMatrix( u%TowerMotion%Orientation(:,:,node), du * perturb_sign, fieldIndx, UseSmlAngle=.true ) CASE ( 3) !Module/Mesh/Field: u%TowerMotion%TranslationVel = 3; u%TowerMotion%TranslationVel( fieldIndx,node ) = u%TowerMotion%TranslationVel( fieldIndx,node) + du * perturb_sign diff --git a/modules/servodyn/src/ServoDyn.f90 b/modules/servodyn/src/ServoDyn.f90 index dfd644251..b3266d860 100644 --- a/modules/servodyn/src/ServoDyn.f90 +++ b/modules/servodyn/src/ServoDyn.f90 @@ -3300,7 +3300,7 @@ subroutine SrvD_Perturb_u( p, n, perturb_sign, u, du ) case (13) ! TranslationDisp = 1; u%TStCMotionMesh(instance)%TranslationDisp(fieldIndx,1) = u%TStCMotionMesh(instance)%TranslationDisp(fieldIndx,1) + du * perturb_sign case (14) ! Orientation = 2; - CALL PerturbOrientationMatrix( u%TStCMotionMesh(instance)%Orientation(:,:,1), du * perturb_sign, fieldIndx ) + CALL PerturbOrientationMatrix( u%TStCMotionMesh(instance)%Orientation(:,:,1), du * perturb_sign, fieldIndx, UseSmlAngle=.true ) case (15) ! TranslationVel = 3; u%TStCMotionMesh(instance)%TranslationVel( fieldIndx,1) = u%TStCMotionMesh(instance)%TranslationVel( fieldIndx,1) + du * perturb_sign case (16) ! RotationVel = 4; @@ -3314,7 +3314,7 @@ subroutine SrvD_Perturb_u( p, n, perturb_sign, u, du ) case (19) ! TranslationDisp = 1; u%SStCMotionMesh(instance)%TranslationDisp(fieldIndx,1) = u%SStCMotionMesh(instance)%TranslationDisp(fieldIndx,1) + du * perturb_sign case (20) ! Orientation = 2; - CALL PerturbOrientationMatrix( u%SStCMotionMesh(instance)%Orientation(:,:,1), du * perturb_sign, fieldIndx ) + CALL PerturbOrientationMatrix( u%SStCMotionMesh(instance)%Orientation(:,:,1), du * perturb_sign, fieldIndx, UseSmlAngle=.true ) case (21) ! TranslationVel = 3; u%SStCMotionMesh(instance)%TranslationVel( fieldIndx,1) = u%SStCMotionMesh(instance)%TranslationVel( fieldIndx,1) + du * perturb_sign case (22) ! RotationVel = 4; From 679997914f0664480c96bbffe470e989f268e9c6 Mon Sep 17 00:00:00 2001 From: andrew-platt Date: Tue, 12 Jul 2022 18:16:55 -0600 Subject: [PATCH 2/3] Minor corrections to api_change.rst, and remove extra sentence from fast.farm docs. --- docs/source/user/api_change.rst | 12 ++++++++++-- docs/source/user/fast.farm/index.rst | 3 +-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/docs/source/user/api_change.rst b/docs/source/user/api_change.rst index 00cc19a5f..2e39de856 100644 --- a/docs/source/user/api_change.rst +++ b/docs/source/user/api_change.rst @@ -19,8 +19,17 @@ None OpenFAST v3.1.0 to OpenFAST v3.2.0 ---------------------------------- + +============================================= ==== =============== ======================================================================================================================================================================================================== +Added in OpenFAST v3.2.0 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Module Line Flag Name Example Value +============================================= ==== =============== ======================================================================================================================================================================================================== +TurbSim 13 WrHAWCFF False WrHAWCFF - Output full-field time-series data in HAWC form? (Generates RootName-u.bin, RootName-v.bin, RootName-w.bin, RootName.hawc) +============================================= ==== =============== ======================================================================================================================================================================================================== + ============================================= ==== =============== ======================================================================================================================================================================================================== -Removed in OpenFAST dev +Removed in OpenFAST v3.2.0 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Module Line Flag Name Example Value ============================================= ==== =============== ======================================================================================================================================================================================================== @@ -58,7 +67,6 @@ 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] -TurbSim 13 WrHAWCFF False WrHAWCFF - Output full-field time-series data in HAWC form? (Generates RootName-u.bin, RootName-v.bin, RootName-w.bin, RootName.hawc) 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) diff --git a/docs/source/user/fast.farm/index.rst b/docs/source/user/fast.farm/index.rst index 87d565bef..1263a6414 100644 --- a/docs/source/user/fast.farm/index.rst +++ b/docs/source/user/fast.farm/index.rst @@ -2,8 +2,7 @@ FAST.Farm User's Guide and Theory Manual ======================================== -This document offers a quick reference guide for the FAST.Farm driver for -OpenFAST. The FAST.Farm implementation plan is also available for download: +The FAST.Farm implementation plan is also available for download: :download:`FAST.Farm Development Plan <../../../OtherSupporting/FAST.Farm_Plan_Rev25.doc>`. The documentation here was derived from the FAST.Farm User's Guide and Theory Manual by Jason From efb64c429a7aa5756ffc20bb8d6b4747dc181c85 Mon Sep 17 00:00:00 2001 From: andrew-platt Date: Tue, 12 Jul 2022 18:45:56 -0600 Subject: [PATCH 3/3] typo in commit to fix orientation perturbations in AD15 and SrvD --- modules/aerodyn/src/AeroDyn.f90 | 2 +- modules/servodyn/src/ServoDyn.f90 | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/aerodyn/src/AeroDyn.f90 b/modules/aerodyn/src/AeroDyn.f90 index 6085c38ae..14c1705cd 100644 --- a/modules/aerodyn/src/AeroDyn.f90 +++ b/modules/aerodyn/src/AeroDyn.f90 @@ -5482,7 +5482,7 @@ SUBROUTINE Perturb_u( p, n, perturb_sign, u, du ) CASE ( 1) !Module/Mesh/Field: u%TowerMotion%TranslationDisp = 1; u%TowerMotion%TranslationDisp( fieldIndx,node) = u%TowerMotion%TranslationDisp( fieldIndx,node) + du * perturb_sign CASE ( 2) !Module/Mesh/Field: u%TowerMotion%Orientation = 2; - CALL PerturbOrientationMatrix( u%TowerMotion%Orientation(:,:,node), du * perturb_sign, fieldIndx, UseSmlAngle=.true ) + CALL PerturbOrientationMatrix( u%TowerMotion%Orientation(:,:,node), du * perturb_sign, fieldIndx, UseSmlAngle=.true. ) CASE ( 3) !Module/Mesh/Field: u%TowerMotion%TranslationVel = 3; u%TowerMotion%TranslationVel( fieldIndx,node ) = u%TowerMotion%TranslationVel( fieldIndx,node) + du * perturb_sign diff --git a/modules/servodyn/src/ServoDyn.f90 b/modules/servodyn/src/ServoDyn.f90 index b3266d860..fd544611c 100644 --- a/modules/servodyn/src/ServoDyn.f90 +++ b/modules/servodyn/src/ServoDyn.f90 @@ -3300,7 +3300,7 @@ subroutine SrvD_Perturb_u( p, n, perturb_sign, u, du ) case (13) ! TranslationDisp = 1; u%TStCMotionMesh(instance)%TranslationDisp(fieldIndx,1) = u%TStCMotionMesh(instance)%TranslationDisp(fieldIndx,1) + du * perturb_sign case (14) ! Orientation = 2; - CALL PerturbOrientationMatrix( u%TStCMotionMesh(instance)%Orientation(:,:,1), du * perturb_sign, fieldIndx, UseSmlAngle=.true ) + CALL PerturbOrientationMatrix( u%TStCMotionMesh(instance)%Orientation(:,:,1), du * perturb_sign, fieldIndx, UseSmlAngle=.true. ) case (15) ! TranslationVel = 3; u%TStCMotionMesh(instance)%TranslationVel( fieldIndx,1) = u%TStCMotionMesh(instance)%TranslationVel( fieldIndx,1) + du * perturb_sign case (16) ! RotationVel = 4; @@ -3314,7 +3314,7 @@ subroutine SrvD_Perturb_u( p, n, perturb_sign, u, du ) case (19) ! TranslationDisp = 1; u%SStCMotionMesh(instance)%TranslationDisp(fieldIndx,1) = u%SStCMotionMesh(instance)%TranslationDisp(fieldIndx,1) + du * perturb_sign case (20) ! Orientation = 2; - CALL PerturbOrientationMatrix( u%SStCMotionMesh(instance)%Orientation(:,:,1), du * perturb_sign, fieldIndx, UseSmlAngle=.true ) + CALL PerturbOrientationMatrix( u%SStCMotionMesh(instance)%Orientation(:,:,1), du * perturb_sign, fieldIndx, UseSmlAngle=.true. ) case (21) ! TranslationVel = 3; u%SStCMotionMesh(instance)%TranslationVel( fieldIndx,1) = u%SStCMotionMesh(instance)%TranslationVel( fieldIndx,1) + du * perturb_sign case (22) ! RotationVel = 4;