Skip to content

Conversation

@fmormer
Copy link
Collaborator

@fmormer fmormer commented Jul 24, 2025

This pull request includes a number of upgrades and new features developed under FAModel_anchors, focused on the anchor module and its integration with the overall FAModel workflow. Key additions include:

  • New anchor examples for anchor methods covering all anchor types and soil stored in examples/05_Anchors
  • Enhancements to all capacity models and support functions - Improved plotting and soil-handling functions
  • New anchor installation models for most anchor concept - ongoing process
  • Anchor class modifications - ongoing process
  • Alternatives for the getSizeAnchor methods within the Anchor class
  • New exception handling load limitation when soil capacity exceeds applied mooring loads
  • Extensive refactoring and cleanup across multiple modules

These updates are intended to improve the flexibility and reliability of anchor design workflows. All changes have been tested locally using the available test suite but there might be some incompatibilities under the radar that might raise with users feedback.

commit 0c3ef44
Author: Matt Hall 5151457+mattEhall@users.noreply.github.com
Date: Wed Jul 23 11:41:24 2025 -0600

Removing HAMS BEM files and what causes them:

- removing examples 03 BEM folder created by RAFT runs.
- changing RAFT YAML PotMods from True to False to avoid issue in future.

commit 7828a9f
Author: Moreno fmoreno@nrel.gov
Date: Fri Jul 18 09:50:56 2025 -0600

Depreciated function trapz needs to be reused due to uncompatibility with CI tests

commit 33edd4b
Author: Moreno fmoreno@nrel.gov
Date: Fri Jul 18 09:40:11 2025 -0600

support_soils linked connected

commit 0941863
Author: Moreno fmoreno@nrel.gov
Date: Fri Jul 18 09:36:12 2025 -0600

Depreciated function trapz needs to be reused due to uncompatibility with CI tests

commit b4dea97
Author: Moreno fmoreno@nrel.gov
Date: Thu Jul 17 16:16:45 2025 -0600

Change order of the CI tests: pytest + example_driver.py

commit 30b2ca5
Author: Moreno fmoreno@nrel.gov
Date: Thu Jul 17 15:37:25 2025 -0600

Changes on the yaml file to include new soil structure

commit 4e0866e
Author: Moreno fmoreno@nrel.gov
Date: Thu Jul 17 11:42:37 2025 -0600

Removed anchor tension limit exception

commit 7de4650
Author: Moreno fmoreno@nrel.gov
Date: Wed Jul 16 11:26:31 2025 -0600

Update FAModel_anchors: new anchor scripts, updated RAFT BEM inputs, suction pile improvements

commit 0d75993
Author: Moreno fmoreno@nrel.gov
Date: Tue Jul 8 13:05:36 2025 -0600

Remove outdated 04_Anchors examples after migrating to 05_Anchors

commit b8dbd3f
Merge: 4383c4c 831d651
Author: Moreno fmoreno@nrel.gov
Date: Tue Jul 8 13:04:43 2025 -0600

Merge upstream changes; keep local anchor.py, store upstream version as backup

commit 4383c4c
Author: Moreno fmoreno@nrel.gov
Date: Tue Jul 8 12:16:53 2025 -0600

WIP: Local development progress before merging upstream FAModel

commit 834999b
Author: Moreno fmoreno@nrel.gov
Date: Mon Jun 23 11:15:04 2025 -0600

Merge upstream/main into FAModel_anchors with local enhancements, including update to capacity_suction.py

commit f149d96
Merge: 6030d1c 12ce2a3
Author: Moreno fmoreno@nrel.gov
Date: Mon Jun 23 11:09:12 2025 -0600

Merge remote-tracking branch 'upstream/main' into sync/upstream-2025-06-23

commit 6030d1c
Author: Moreno fmoreno@nrel.gov
Date: Mon Jun 23 10:59:03 2025 -0600

WIP: custom changes before upstream sync

commit 883b024
Author: Moreno fmoreno@nrel.gov
Date: Wed Jun 18 16:30:20 2025 -0600

Major refactor of anchor module: removed legacy map files, added new anchor types and updated capacities

commit 66e4bc0
Author: Moreno fmoreno@nrel.gov
Date: Fri Jun 13 16:00:51 2025 -0600

feat: update anchor capacity scripts and add suction example notebook

mattEhall and others added 5 commits July 23, 2025 14:10
commit 0c3ef44
Author: Matt Hall <5151457+mattEhall@users.noreply.github.com>
Date:   Wed Jul 23 11:41:24 2025 -0600

    Removing HAMS BEM files and what causes them:

    - removing examples 03 BEM folder created by RAFT runs.
    - changing RAFT YAML PotMods from True to False to avoid issue in future.

commit 7828a9f
Author: Moreno <fmoreno@nrel.gov>
Date:   Fri Jul 18 09:50:56 2025 -0600

    Depreciated function trapz needs to be reused due to uncompatibility with CI tests

commit 33edd4b
Author: Moreno <fmoreno@nrel.gov>
Date:   Fri Jul 18 09:40:11 2025 -0600

    support_soils linked connected

commit 0941863
Author: Moreno <fmoreno@nrel.gov>
Date:   Fri Jul 18 09:36:12 2025 -0600

    Depreciated function trapz needs to be reused due to uncompatibility with CI tests

commit b4dea97
Author: Moreno <fmoreno@nrel.gov>
Date:   Thu Jul 17 16:16:45 2025 -0600

    Change order of the CI tests: pytest + example_driver.py

commit 30b2ca5
Author: Moreno <fmoreno@nrel.gov>
Date:   Thu Jul 17 15:37:25 2025 -0600

    Changes on the yaml file to include new soil structure

commit 4e0866e
Author: Moreno <fmoreno@nrel.gov>
Date:   Thu Jul 17 11:42:37 2025 -0600

    Removed anchor tension limit exception

commit 7de4650
Author: Moreno <fmoreno@nrel.gov>
Date:   Wed Jul 16 11:26:31 2025 -0600

    Update FAModel_anchors: new anchor scripts, updated RAFT BEM inputs, suction pile improvements

commit 0d75993
Author: Moreno <fmoreno@nrel.gov>
Date:   Tue Jul 8 13:05:36 2025 -0600

    Remove outdated 04_Anchors examples after migrating to 05_Anchors

commit b8dbd3f
Merge: 4383c4c 831d651
Author: Moreno <fmoreno@nrel.gov>
Date:   Tue Jul 8 13:04:43 2025 -0600

    Merge upstream changes; keep local anchor.py, store upstream version as backup

commit 4383c4c
Author: Moreno <fmoreno@nrel.gov>
Date:   Tue Jul 8 12:16:53 2025 -0600

    WIP: Local development progress before merging upstream FAModel

commit 834999b
Author: Moreno <fmoreno@nrel.gov>
Date:   Mon Jun 23 11:15:04 2025 -0600

    Merge upstream/main into FAModel_anchors with local enhancements, including update to capacity_suction.py

commit f149d96
Merge: 6030d1c 12ce2a3
Author: Moreno <fmoreno@nrel.gov>
Date:   Mon Jun 23 11:09:12 2025 -0600

    Merge remote-tracking branch 'upstream/main' into sync/upstream-2025-06-23

commit 6030d1c
Author: Moreno <fmoreno@nrel.gov>
Date:   Mon Jun 23 10:59:03 2025 -0600

    WIP: custom changes before upstream sync

commit 883b024
Author: Moreno <fmoreno@nrel.gov>
Date:   Wed Jun 18 16:30:20 2025 -0600

    Major refactor of anchor module: removed legacy map files, added new anchor types and updated capacities

commit 66e4bc0
Author: Moreno <fmoreno@nrel.gov>
Date:   Fri Jun 13 16:00:51 2025 -0600

    feat: update anchor capacity scripts and add suction example notebook
To start, I created a new "display" variable that can toggle on/off print statements--in anchor.py and capacity function files--to make the output file clear to read
- NOTE: This was only done for suction piles and dandg piles. The display parameter will have to be called from the other anchor type capacity function scripts, which I did not prioritize right now
Second, I ran into problems with anchor.dd['type'] values not being exact strings of 'suction', 'dandg', etc.
- I corrected the type values in my Project on my front-end, but also added a check in Anchor.__init__ to make sure the type values are exactly what they should be
- In makeMoorPyAnchor, it references MoorPy.getPointProps['AnchorProps'], which contain cost information for certain types of anchors. If the anchor type does not exist in getPointProps (e.g., 'dandg'), then it defaults to a suction pile
getSizeAnchor
- Implemented functionality to support safety factors on different components (includes Hm, Vm, and UC right now)
- Updated a lot of if statements to check for the anchType just in case the string is something different but includes the main anchor type name
- Added a constraint function for the design variable bounds, since COBYLA does not recognize bounds
- Moved the code that updated the anchor design dictionary and recalculated the capacity to the first constraint function, since with COBYLA, the constraints are evaluated first, and this led to UC's that didn't correspond
- Added a check to the dandg (and driven/helical) sections to ensure the L/D constraints were being met
- - However, the UC constraints weren't being met; this may require a reevaluation of the methods that we're using for design, since we're not using COBYLA for these anymore
Updated getSizeAnchor2 to work with what I had too

capacity_suction bounds upgrade for design iterations that have a L/D greater than 6
@mattEhall mattEhall changed the base branch from main to dev September 30, 2025 20:56
mattEhall and others added 12 commits September 30, 2025 15:55
examples/example_anchors.py
- should this file remain?

famodel/anchors/anchor.py
- does this work
- is there unused code to clear out after the merge?

famodel/geography.py
- does this work after the merge?
- may need to update input file directories

tests/test_anchors.py
- merge conflicts left that need resolution
GitHub CI should run example.
-- no major changes to functionality
-- tests and examples will not work at this time, this is a WIP for the merge
…up!!!!

-- WIP merge
-- !!!! geography.py still has unresolved conflicts because this needs to be discussed with team (Felipe and Stein) to ensure this is done properly !!!!
-- added small change to anchor.py to make anchor names not case-sensitive and print out anchor type name in error message if not part of anchor
-- small change to examples/OntologySample200m.yaml to make anchor type names match new system (suction_pile -> suction)
-- pushing this now so we can track progress towards final merge.
-- remove extra getSizeAnchor functions into temp storage in AnchorDesign_temp.py (new file, could eventually turn into a full anchor design script)
-- small bug fixes in examples
-- resolve remaining conflicts in geography.py
-- removed MBL and unit_cost from anchor.cost dictionary to match methodology of other component cost dicts.
- plus remove extraneous example_anchors.py, update readme
@lsirkis lsirkis merged commit c1d470e into dev Nov 7, 2025
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants