op3.anchors.optimal_padeye_from_dissipation

op3.anchors.optimal_padeye_from_dissipation(anchor: SuctionAnchor, dissipation_csv: str | Path) float[source]

Centroid of the plastic-dissipation field at collapse.

This is the novel Op^3 method: apply the mooring load at the depth z* which minimises the rotational component of the failure mechanism by definition, because that is where the plastic energy is most effectively mobilised.

z* = integral_0^L z * psi(z) dz / integral_0^L psi(z) dz

where psi(z) is the depth-distributed plastic dissipation weight from OptumGX Mode D.

Parameters:
  • anchor (SuctionAnchor) – Used only to clip the centroid to (0, L).

  • dissipation_csv (str | Path) – Absolute path to an OptumGX Mode D dissipation CSV with columns depth_m, w_z, D_total_kJ.

Returns:

Optimal padeye depth [m].

Return type:

float

Raises:

FileNotFoundError – If the CSV is absent. The message names the driver script (optumgx_anchor_run.py) so a future session can regenerate the data on demand.

Notes

This is the single novel theoretical contribution of the Op^3 anchor module; it is NOT in DNV-RP-E303 or API RP 2SK. Op^3 ships it as a research extension. Validation against a brute- force FE padeye sweep is performed by the test_padeye_novel_method_matches_fe_sweep test, which requires a real OptumGX dataset.