Skip to content

Conversation

@brian-oneill
Copy link

This PR allows Omega to properly run on meshes with boundary edges.

Updates the initialization of the HorzMesh member array EdgeMask to set values on boundary edges equal to 0, and adds EdgeMask to tendency terms and auxiliary variables to nullify computations on boundary edges. Some of these changes will likely be temporary, to be replaced by setting KMin and KMax ranges to skip over computations on boundary edges similar to how many boundaries are handled in MPAS.

Ran ctest successfully on pm-cpu (intel), pm-gpu (gnu), frontier cpu (craycray), and frontier gpu (craycray-mphipcc). Changes introduced in this PR produced successful results for the barotropic gyre and global wind-forced tests in the comments of #219

Checklist

  • Testing
    • Unit tests have passed. Please provide a relevant CDash build entry for verification.

@brian-oneill brian-oneill changed the title Omega/boundary edge masks Use EdgeMask to handle boundary edges Jun 12, 2025
@mark-petersen
Copy link

Passes ctests on frontier CPU compiler=craycray, frontier GPU compiler=craycray-mphipcc, perlmutter CPU compiler=gnu and perlmutter GPU compiler=gnugpu.

@mark-petersen
Copy link

Retested with head. Results for barotropic gyre and global wind-driven are identical to previous PR comments.
image
image

@mark-petersen mark-petersen self-assigned this Jun 16, 2025
@mark-petersen mark-petersen merged commit 9442043 into E3SM-Project:develop Jun 16, 2025
3 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.

2 participants