Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
d94bc19
Merge branch 'dev' into struct_dev
lucas-carmo May 28, 2025
dd439da
Added Node class
lucas-carmo May 29, 2025
a74f372
Update GA to use MoorPy dev for any RAFT branch with dev in the name
lucas-carmo May 30, 2025
04d53e2
Changed member type to 'rigid' in all files
lucas-carmo May 31, 2025
cb8a5ad
Uniformization of variable names with other parts of the code
lucas-carmo May 31, 2025
404bdd6
Merge branch 'rc1.4.1' into struct_dev
lucas-carmo Jun 2, 2025
baa7d61
Include some of the structural code to the Member class
lucas-carmo Jun 3, 2025
b048056
Uniformization with notation used in other parts of the code
lucas-carmo Jun 6, 2025
43d9f16
Changes to FOWT class to include nodes, joints, more dofs, and whatnot
lucas-carmo Jun 9, 2025
af58b12
Merge branch 'dev' into struct_dev
lucas-carmo Jun 9, 2025
b80f645
Bug fix. Typo when copying from the prototype code
lucas-carmo Jun 9, 2025
c428440
Included a structural Node in the Rotor class
lucas-carmo Jun 10, 2025
10714af
Merge branch 'rc1.4.1' into struct_dev
lucas-carmo Jun 11, 2025
b9a2cdf
Had forgotten to include the Rotor Node into the FOWT's list of nodes
lucas-carmo Jun 11, 2025
befbde8
Code adaptation to inertia and hydrostatics
lucas-carmo Jun 12, 2025
30a2846
Included new functions to get weight effects in fowt.calcStatics()
lucas-carmo Jun 12, 2025
2e28ea6
Minor fix in variable name
lucas-carmo Jun 12, 2025
7bd2d5d
Fixes to member.getHydrostatics() and mem.getWeight()
lucas-carmo Jun 13, 2025
7ef10aa
Modified fowt.calcStatics to work with multiple bodies
lucas-carmo Jun 24, 2025
0bbabe1
Update calculation of MBase quantities to account for new inertia refs
lucas-carmo Jun 24, 2025
1094ef2
Merge branch 'dev' into struct_dev
lucas-carmo Jun 24, 2025
8ffd681
Bug fixes to assembly algorithm
lucas-carmo Jun 25, 2025
2fc969d
Adapting calculation of inertial summary quantities for nDOF>6
lucas-carmo Jun 25, 2025
11faa7d
Compute hydro excitation in the full dofs then transform to reducedDOF
lucas-carmo Jun 25, 2025
4aa94d2
Compute current loads in the full dofs then transform to reduceDOF
lucas-carmo Jun 30, 2025
0680062
Bug fix in setPosition()
lucas-carmo Jun 30, 2025
a0910ac
Typo fixes
lucas-carmo Jun 30, 2025
c9ee595
Modified rotor.calcAero() and fowt.calcTurbineConstants()
lucas-carmo Jun 30, 2025
7934a36
Bug fix to update position of connected node
lucas-carmo Jul 1, 2025
8c766c5
solveStatics() and analyzeUnloaded for multiple rigid bodies
lucas-carmo Jul 1, 2025
0a533b6
Merge branch 'master' into struct_dev
lucas-carmo Jul 7, 2025
a37ba93
Only compute the derivative of the transformation for selected dofs
lucas-carmo Jul 7, 2025
21cc973
Bug fix in the assembly function
lucas-carmo Jul 7, 2025
3a237a9
Merge branch 'rc1.5.0' into struct_dev
lucas-carmo Jul 8, 2025
ee8a69c
Inertia matrix of beam members
lucas-carmo Jul 8, 2025
686e255
Another bug fix in the assembly function
lucas-carmo Jul 8, 2025
a8df62c
Moved inertia helper functions to helper.py
lucas-carmo Jul 9, 2025
31e7313
member.getInertia() now works with flexible members
lucas-carmo Jul 9, 2025
624f332
Implemented rectangular beams in the finite element matrices
lucas-carmo Jul 10, 2025
1b31d56
Lumping additional_effects (loads and inertia) at nearest node
lucas-carmo Jul 10, 2025
7fd0629
Compute total mass of the FOWT for an arbitrary number of dofs
lucas-carmo Jul 10, 2025
1a6d4cd
Bug fix in shear of Timoshenko beam + using member vectors now
lucas-carmo Jul 11, 2025
133d564
Deal with flexible members in member.getWeight()
lucas-carmo Jul 11, 2025
91ed8e4
Bug fix. We were assigning wrong diameter at the nodes
lucas-carmo Jul 14, 2025
ac1050d
Implemented function getWeight() for flexible members
lucas-carmo Jul 14, 2025
e2a2c2d
Included dry flexibility in solveStatics()
lucas-carmo Jul 14, 2025
5c798d1
Added BEM mass to fowt.solveEigen()
lucas-carmo Jul 15, 2025
ae6f856
Merge branch 'rc1.5.0' into struct_dev
lucas-carmo Jul 15, 2025
037e935
solveEigen for flexible FOWTs
lucas-carmo Jul 15, 2025
8b86aaa
Make sure that the internal diameter is not negative
lucas-carmo Jul 21, 2025
891c46c
Mooring and BEM quantities in FOWT now have nDOF
lucas-carmo Jul 22, 2025
1dc24da
mem.getHydrostatics() for flexible members
lucas-carmo Jul 22, 2025
8a4f3e7
Modified geometric stiffness
lucas-carmo Jul 23, 2025
4fb2f36
Modified drag functions to suport flexible members
lucas-carmo Jul 25, 2025
2cafae7
Modified model.solveDynamics() to work with multibody/flexible FOWTs
lucas-carmo Jul 28, 2025
5b91dbe
Removed some stuff that isn't used anymore
lucas-carmo Jul 29, 2025
265412a
Bug fix in fowt.computeDerivativeTransformationMatrix()
lucas-carmo Jul 30, 2025
2bd3089
Included elasticity stiffness in solveDynamics()
lucas-carmo Jul 30, 2025
9536244
Tower base loads for flexible towers
lucas-carmo Jul 30, 2025
9730895
Bug fixes in 2nd order wave loads
lucas-carmo Aug 18, 2025
c8b1f3a
Bug fixes in the Rotor class
lucas-carmo Aug 19, 2025
daed113
Merge branch 'rc1.5.0' into struct_dev
lucas-carmo Aug 19, 2025
4189e5e
Workaround/bugfix in model.adjustBallast()
lucas-carmo Aug 21, 2025
6da1848
Added tests using pre-computed potential flow coefficients
lucas-carmo Aug 21, 2025
a34b9ef
Reduced frequency discretization of the tests using BEM coefficients
lucas-carmo Aug 22, 2025
af0d496
Merge branch 'rc1.5.0' into struct_dev
lucas-carmo Aug 22, 2025
8b9c4f3
Added test for flexible members
lucas-carmo Aug 26, 2025
ca19a03
Bug fixes + model.solveEigen() for multibody/flexibility
lucas-carmo Aug 28, 2025
665df37
Added tests for flexible FOWTs + updated logic of existing tests
lucas-carmo Aug 28, 2025
4088421
Removing temp code + moving plotting stuff into main plotting functions
lucas-carmo Sep 2, 2025
8d90eb7
Adopting a larger tolerance for wave static tests
lucas-carmo Sep 2, 2025
e61274b
Included example with flexible members + updated test with flexibility
lucas-carmo Sep 2, 2025
7ed3ac7
Merge branch 'dev' into struct_dev
lucas-carmo Sep 5, 2025
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
4 changes: 2 additions & 2 deletions .github/workflows/CI_RAFT.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ jobs:
run: |
pip install -e .

- name: Overwrite MoorPy if on dev branch
- name: Overwrite MoorPy if on a branch with 'dev' in its name
run: |
if [ "${{ github.ref }}" == "refs/heads/dev" ]; then
if [[ "${GITHUB_REF}" == *"_dev"* ]]; then
pip install git+https://github.com/NREL/MoorPy@dev
fi

Expand Down
6 changes: 3 additions & 3 deletions designs/FOCTT_example.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1063,7 +1063,7 @@ turbine:
dlsMax : 5.0 # maximum node splitting section amount; can't be 0

name : tower # [-] an identifier (no longer has to be number)
type : 1 # [-]
type : rigid # [-]
rA : [ 0, 0, -33.5] # [m] end A coordinates
rB : [ 0, 0, -2.5] # [m] and B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -1089,7 +1089,7 @@ platform:
members: # list all members here

- name : upper_column # [-] an identifier (no longer has to be number)
type : 2 # [-]
type : rigid # [-]
rA : [ 0, 0, -2.5] # [m] end A coordinates
rB : [ 0, 0, 9] # [m] and B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -1111,7 +1111,7 @@ platform:


- name : mooring_fins # [-] an identifier (no longer has to be number)
type : 2 # [-]
type : rigid # [-]
rA : [ 0, 10, -2.15] # [m] end A coordinates
rB : [ 0, -10, -2.15] # [m] and B coordinates
shape : circ # [-] circular or rectangular
Expand Down
4 changes: 2 additions & 2 deletions designs/OC3spar.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1033,7 +1033,7 @@ turbine:

tower: # (could remove some entries that don't apply for the tower)
name : tower # [-] an identifier (no longer has to be number)
type : 1 # [-]
type : rigid # [-]
rA : [ 0, 0, 10] # [m] end A coordinates
rB : [ 0, 0, 87.6] # [m] and B coordinates
shape : circ # [-] circular or rectangular
Expand Down Expand Up @@ -1074,7 +1074,7 @@ platform:
members: # list all members here

- name : center_spar # [-] an identifier (no longer has to be number)
type : 2 # [-]
type : rigid # [-]
rA : [ 0, 0, -120] # [m] end A coordinates
rB : [ 0, 0, 10] # [m] and B coordinates
shape : circ # [-] circular or rectangular
Expand Down
2 changes: 1 addition & 1 deletion designs/OC4semi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1030,7 +1030,7 @@ turbine:

tower: # (could remove some entries that don't apply for the tower)
name : tower # [-] an identifier (no longer has to be number)
type : 1 # [-]
type : rigid # [-]
rA : [ 0, 0, 10] # [m] end A coordinates
rB : [ 0, 0, 87.6] # [m] and B coordinates
shape : circ # [-] circular or rectangular
Expand Down
44 changes: 22 additions & 22 deletions designs/RM1_Floating.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -685,7 +685,7 @@ turbine:
nacelle:
dlsMax : 2.0 # maximum node splitting section amount; can't be 0
name : nacelle # [-] an identifier (no longer has to be number)
type : 1 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [4.5478, 0, -25.2] # [m] end A coordinates
rB : [-3.6878, 0, -25.2] # [m] end B coordinates
shape : rect # [-] circular or rectangular
Expand All @@ -703,7 +703,7 @@ turbine:
tower:
dlsMax : 2.0 # maximum node splitting section amount; can't be 0
name : tower # [-] an identifier (no longer has to be number)
type : 1 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [ 0, 0, -24.0] # [m] end A coordinates
rB : [ 0, 0, -9.0] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -728,7 +728,7 @@ platform:
members: # list all members here

- name : column-E # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [ 28.0, 0.0, -10.0] # [m] end A coordinates
rB : [ 28.0, 0.0, 6.0] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -749,7 +749,7 @@ platform:
cap_d_in : [0] # [m] the diameter of the "cut-out" circle (0 means it's continuous)

- name : column-W # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [ -28.0, 0.0, -10.0] # [m] end A coordinates
rB : [ -28.0, 0.0, 6.0] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -770,7 +770,7 @@ platform:
cap_d_in : [0] # [m] the diameter of the "cut-out" circle (0 means it's continuous)

- name : column-S # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [ 0.0, -12.0, -10.0] # [m] end A coordinates
rB : [ 0.0, -12.0, 6.0] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -791,7 +791,7 @@ platform:
cap_d_in : [0] # [m] the diameter of the "cut-out" circle (0 means it's continuous)

- name : column-N # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [ 0.0, 12.0, -10.0] # [m] end A coordinates
rB : [ 0.0, 12.0, 6.0] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -815,7 +815,7 @@ platform:


- name : upper_brace-NE # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [ 3.67658, 10.4243, 4.5] # [m] end A coordinates
rB : [ 24.3234, 1.57568, 4.5] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -831,7 +831,7 @@ platform:
rho_shell : 7850 # [kg/m^3] the material density of the shell

- name : upper_brace-SE # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [ 3.67658, -10.4243, 4.5] # [m] end A coordinates
rB : [ 24.3234, -1.57568, 4.5] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -847,7 +847,7 @@ platform:
rho_shell : 7850 # [kg/m^3] the material density of the shell

- name : upper_brace-SW # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [-3.67658, -10.4243, 4.5] # [m] end A coordinates
rB : [-24.3234, -1.57568, 4.5] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -863,7 +863,7 @@ platform:
rho_shell : 7850 # [kg/m^3] the material density of the shell

- name : upper_brace-NW # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [-3.67658, 10.4243, 4.5] # [m] end A coordinates
rB : [-24.3234, 1.57568, 4.5] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -882,7 +882,7 @@ platform:


- name : lower_brace-NE # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [ 3.67658, 10.4243, -8.5] # [m] end A coordinates
rB : [ 24.3234, 1.57568, -8.5] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -898,7 +898,7 @@ platform:
rho_shell : 7850 # [kg/m^3] the material density of the shell

- name : lower_brace-SE # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [ 3.67658,-10.4243, -8.5] # [m] end A coordinates
rB : [ 24.3234,-1.57568, -8.5] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -914,7 +914,7 @@ platform:
rho_shell : 7850 # [kg/m^3] the material density of the shell

- name : lower_brace-SW # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [-3.67658,-10.4243, -8.5] # [m] end A coordinates
rB : [-24.3234,-1.57568, -8.5] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -930,7 +930,7 @@ platform:
rho_shell : 7850 # [kg/m^3] the material density of the shell

- name : lower_brace-NW # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [-3.67658, 10.4243, -8.5] # [m] end A coordinates
rB : [-24.3234, 1.57568, -8.5] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -949,7 +949,7 @@ platform:


- name : upper_tower_brace # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [ 0.0, -8.0, 4.5] # [m] end A coordinates
rB : [ 0.0, 8.0, 4.5] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -965,7 +965,7 @@ platform:
rho_shell : 7850 # [kg/m^3] the material density of the shell

- name : lower_tower_brace # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [ 0.0, -8.0, -8.5] # [m] end A coordinates
rB : [ 0.0, 8.0, -8.5] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -981,7 +981,7 @@ platform:
rho_shell : 7850 # [kg/m^3] the material density of the shell

- name : diag_tower_brace-S # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [ 0.0, -8.0, 4.5] # [m] end A coordinates
rB : [ 0.0, 0.0, -8.5] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -997,7 +997,7 @@ platform:
rho_shell : 7850 # [kg/m^3] the material density of the shell

- name : diag_tower_brace-N # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [ 0.0, 8.0, 4.5] # [m] end A coordinates
rB : [ 0.0, 0.0, -8.5] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -1016,7 +1016,7 @@ platform:


- name : heave_plate-E # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [ 28.0, 0.0, -10.5] # [m] end A coordinates
rB : [ 28.0, 0.0, -10.0] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -1035,7 +1035,7 @@ platform:
cap_d_in : [0] # [m] the diameter of the "cut-out" circle (0 means it's continuous)

- name : heave_plate-W # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [ -28.0, 0.0, -10.5] # [m] end A coordinates
rB : [ -28.0, 0.0, -10.0] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -1054,7 +1054,7 @@ platform:
cap_d_in : [0] # [m] the diameter of the "cut-out" circle (0 means it's continuous)

- name : heave_plate-S # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [ 0.0, -12.0, -10.5] # [m] end A coordinates
rB : [ 0.0, -12.0, -10.0] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand All @@ -1073,7 +1073,7 @@ platform:
cap_d_in : [0] # [m] the diameter of the "cut-out" circle (0 means it's continuous)

- name : heave_plate-N # [-] an identifier (no longer has to be number)
type : 2 # [-] type (used for platform members vs. other members)
type : rigid # [-] type (used for platform members vs. other members)
rA : [ 0.0, 12.0, -10.5] # [m] end A coordinates
rB : [ 0.0, 12.0, -10.0] # [m] end B coordinates
shape : circ # [-] circular or rectangular
Expand Down
2 changes: 1 addition & 1 deletion designs/Vertical_cylinder.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ platform:
members: # list all members here

- name : vertical_cylinder # [-] an identifier (no longer has to be number)
type : 2 # [-]
type : rigid # [-]
rA : [0,0,-1] # [m] end A coordinates
rB : [0,0,1] # [m] and B coordinates
shape : circ # [-] circular or rectangular
Expand Down
Loading
Loading