Skip to content

Commit a8b3b7e

Browse files
committed
Merge remote-tracking branch 'OpenFAST/dev' into f/underrelaxation
2 parents 0a8984c + 90b1ba8 commit a8b3b7e

File tree

5 files changed

+21
-9
lines changed

5 files changed

+21
-9
lines changed

modules/subdyn/src/SubDyn.f90

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -869,7 +869,7 @@ SUBROUTINE SD_CalcOutput( t, u, p, x, xd, z, OtherState, y, m, ErrStat, ErrMsg )
869869
! --- Rigid body displacements for hydrodyn
870870
y%Y2mesh%Orientation (:,:,iSDNode) = Rg2b
871871
y%Y2mesh%TranslationDisp (:,iSDNode) = duP(1:3) ! Y2: NOTE: only the rigid-body displacements for floating
872-
! --- Full elastic displacements for others (moordyn)
872+
! --- Elastic displacements without SIM for others (Moordyn)
873873
y%Y3mesh%Orientation (:,:,iSDNode) = EulerConstructZYX(m%U_full_NS(DOFList(4:6)))
874874
y%Y3mesh%TranslationDisp (:,iSDNode) = m%U_full_NS (DOFList(1:3)) ! Y3: Guyan+CB (but no SIM) displacements
875875
! --- Elastic velocities and accelerations
@@ -880,7 +880,9 @@ SUBROUTINE SD_CalcOutput( t, u, p, x, xd, z, OtherState, y, m, ErrStat, ErrMsg )
880880
end associate
881881
enddo
882882
else
883-
! --- Fixed bottom - Y3 and Y2 meshes are identical in this case
883+
! --- Fixed bottom
884+
! Y2: Guyan+CB displacements without SIM
885+
! Y3 = Y2 for all nodes (Guyan+CB, no SIM), then overwrite reaction node(s) with SIM correction for SoilDyn
884886
do iSDNode = 1,p%nNodes
885887
associate(DOFList => p%NodesDOF(iSDNode)%List) ! Alias to shorten notations
886888
! TODO TODO which orientation to give for joints with more than 6 dofs?
@@ -894,8 +896,18 @@ SUBROUTINE SD_CalcOutput( t, u, p, x, xd, z, OtherState, y, m, ErrStat, ErrMsg )
894896
y%Y2mesh%RotationAcc (:,iSDNode) = m%U_full_dotdot (DOFList(4:6))
895897
end associate
896898
enddo
899+
! Y3 = Y2 for all nodes (Guyan+CB, no SIM)
897900
y%Y3mesh%TranslationDisp = y%Y2mesh%TranslationDisp
898901
y%Y3mesh%Orientation = y%Y2mesh%Orientation
902+
! Overwrite reaction node(s) in Y3 mesh with full elastic displacements including SIM (for SoilDyn)
903+
do i = 1, p%nNodes_C
904+
iSDNode = p%Nodes_C(i,1)
905+
associate(DOFList => p%NodesDOF(iSDNode)%List) ! Alias to shorten notations
906+
CALL SmllRotTrans( 'UR_bar input angles', m%U_full(DOFList(4)), m%U_full(DOFList(5)), m%U_full(DOFList(6)), DCM, '', ErrStat2, ErrMsg2); if(Failed()) return
907+
y%Y3mesh%Orientation (:,:,iSDNode) = DCM
908+
y%Y3mesh%TranslationDisp (:,iSDNode) = m%U_full (DOFList(1:3)) ! Y3: Guyan+CB+SIM displacements
909+
end associate
910+
enddo
899911
endif
900912
! --- Y3 mesh and Y2 mesh both have elastic (Guyan+CB) velocities and accelerations
901913
y%Y3mesh%TranslationVel = y%Y2mesh%TranslationVel

openfast_io/openfast_io/FAST_writer.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -290,10 +290,10 @@ def write_MainInput(self):
290290
f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['DT'], 'DT', '- Recommended module time step (s)\n'))
291291
f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['ModCoupling'], 'ModCoupling', '- Module coupling method (switch) {1=loose; 2=tight with fixed Jacobian updates (DT_UJac); 3=tight with automatic Jacobian updates}\n'))
292292
f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['InterpOrder'], 'InterpOrder', '- Interpolation order for input/output time history (-) {1=linear, 2=quadratic}\n'))
293-
f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['NumCrctn'], 'NumCrctn', '- Numerical damping parameter for tight coupling generalized-alpha integrator (-) [0.0 to 1.0]\n'))
294-
f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['RhoInf'], 'RhoInf', '- Convergence iteration error tolerance for tight coupling generalized alpha integrator (-)\n'))
295-
f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['ConvTol'], 'ConvTol', '- Maximum number of convergence iterations for tight coupling generalized alpha integrator (-)\n'))
296-
f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['MaxConvIter'], 'MaxConvIter', '- Number of correction iterations (-) {0=explicit calculation, i.e., no corrections}\n'))
293+
f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['NumCrctn'], 'NumCrctn', '- Number of correction iterations (-) {0=explicit calculation, i.e., no corrections}\n'))
294+
f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['RhoInf'], 'RhoInf', '- Numerical damping parameter for tight coupling generalized-alpha integrator (-) [0.0 to 1.0]\n'))
295+
f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['ConvTol'], 'ConvTol', '- Convergence iteration error tolerance for tight coupling generalized alpha integrator (-)\n'))
296+
f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['MaxConvIter'], 'MaxConvIter', '- Maximum number of convergence iterations for tight coupling generalized alpha integrator (-)\n'))
297297
f.write('{!s:<22} {:<11} {:}'.format(self.fst_vt['Fst']['AutoRelax'], 'AutoRelax', '- Adaptive under-relaxation for the tight-coupling iterative solver (flag) [default=true]\n'))
298298
f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['RelaxFactor'], 'RelaxFactor', '- Constant or initial (if AutoRelax) under-relaxation factor for the tight-coupling iterative solver (-) [>0 and <=1; default=0.7 if AutoRelax=false; default=0.3 if AutoRelax=true]\n'))
299299
f.write('{:<22} {:<11} {:}'.format(self.fst_vt['Fst']['DT_UJac'], 'DT_UJac', '- Time between calls to get Jacobians (s)\n'))

openfast_io/openfast_io/StC_defaults.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def default_StC_vt():
2929
StC['StC_X_M'] = 0 # - StC X mass (kg) [must equal StC_Y_M for StC_DOF_MODE = 2]
3030
StC['StC_Y_M'] = 0 # - StC Y mass (kg) [must equal StC_X_M for StC_DOF_MODE = 2]
3131
StC['StC_Z_M'] = 0 # - StC Z mass (kg) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
32-
StC['StC_XY_M'] = 0 # - StC Z mass (kg) [used only when StC_DOF_MODE=2]
32+
StC['StC_Omni_M'] = 0 # - StC omni mass (kg) [used only when StC_DOF_MODE=2 or 3]
3333
StC['StC_X_K'] = 0 # - StC X stiffness (N/m)
3434
StC['StC_Y_K'] = 0 # - StC Y stiffness (N/m)
3535
StC['StC_Z_K'] = 0 # - StC Z stiffness (N/m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]

reg_tests/r-test

vs-build/glue-codes/OpenFAST-Simulink.vfproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<Tool Name="VFPostBuildEventTool"/>
1616
<Tool Name="VFManifestTool" SuppressStartupBanner="true"/>
1717
</Configuration>
18-
<Configuration Name="Matlab_Release|x64" UseCompiler="ifxCompiler" OutputDirectory="..\..\build\bin\" IntermediateDirectory="..\..\build\$(Configuration)_$(Platform)\$(ProjectName)\" TargetName="$(ProjectName)_$(Configuration)" ConfigurationType="typeDynamicLibrary" WholeProgramOptimization="true">
18+
<Configuration Name="Matlab_Release|x64" UseCompiler="ifxCompiler" OutputDirectory="..\..\build\bin\" IntermediateDirectory="..\..\build\$(Configuration)_$(Platform)\$(ProjectName)\" TargetName="$(ProjectName)" ConfigurationType="typeDynamicLibrary" WholeProgramOptimization="true">
1919
<Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" MultiProcessorCompilation="true" Preprocess="preprocessYes" PreprocessorDefinitions="COMPILE_SIMULINK" StandardWarnings="standardWarningsF03" DisableSpecificDiagnostics="5268,5199"/>
2020
<Tool Name="VFLinkerTool" SuppressStartupBanner="true" GenerateManifest="false" SubSystem="subSystemWindows" LinkDLL="true" AdditionalDependencies="&quot;$(MATLAB_ROOT)\extern\lib\win64\microsoft\libmex.lib&quot;"/>
2121
<Tool Name="VFResourceCompilerTool"/>

0 commit comments

Comments
 (0)