Skip to content

Add SfcCoupling class as an interface layer to the coupler #458

Open
andrewdnolan wants to merge 19 commits into
E3SM-Project:developfrom
andrewdnolan:omega/surface-coupling
Open

Add SfcCoupling class as an interface layer to the coupler #458
andrewdnolan wants to merge 19 commits into
E3SM-Project:developfrom
andrewdnolan:omega/surface-coupling

Conversation

@andrewdnolan

@andrewdnolan andrewdnolan commented Jul 2, 2026

Copy link
Copy Markdown

Adds SfcCoupling, which manages the variables exchanged to (o2x) and from (x2o) the coupler for a sub-domain of the global mesh.

Changes

  • New SfcCoupling class supporting both MCT and MOAB coupling layouts
  • CouplingLayout Enum allows for CTesting of MCT (column major) and MOAB (row major) layouts.
  • Import/export of raw coupler data via unmanaged Kokkos views
  • applyImportFields() to push imported fields into Forcing
  • updateExportFields() to accumulate running averages of export fields on-device

Known limitations

  • Exported velocities use a placeholder constant pending vector reconstruction
    • A small non-zero value is used to prevent infinite fluxes in the coupler

Checklist

  • Documentation:
  • Linting
  • Building
    • CMake build does not produce any new warnings from changes in this PR
  • Testing
    • Add a comment to the PR titled Testing with the following:
      • Which machines CTest unit tests
        have been run on and indicate that are all passing.
      • The Polaris omega_pr test suite
        has passed, using the Polaris e3sm_submodules/Omega baseline
      • Document machine(s), compiler(s), and the build path(s) used for -p for both the baseline (Polaris e3sm_submodules/Omega) and the PR build
      • Indicate "All tests passed" or document failing tests
      • Document testing used to verify the changes including any tests that are added/modified/impacted.
      • Performance related PRs: Please include a relevant PACE experiment link documenting performance before and after.
    • New tests:
      • CTest unit tests for new features have been added per the approved design.
      • Polaris tests for new features have been added per the approved design (and included in a test suite)
  • Stealth Features
    • If any stealth features are included in the PR, please confirm that they have been documented.

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.

1 participant