Skip to content

Add Rayleigh damping - #587

Open
xylar wants to merge 4 commits into
E3SM-Project:developfrom
xylar:omega/add-rayleigh-damping
Open

xylar wants to merge 4 commits into
E3SM-Project:developfrom
xylar:omega/add-rayleigh-damping

Conversation

@xylar

@xylar xylar commented Oct 3, 2026 •

Copy link
Copy Markdown

Add Rayleigh damping, a linear drag on normal velocity used to spin up initial conditions through dynamic adjustment, following the design in #496. A new RayleighDamping config group, off by default, adds the damping implicitly to the existing velocity vertical-mixing solve, so it is stable for any time step.

This branch includes the design commit from #496, which should be merged first.

Fixes #495

Checklist

  • Documentation:

  • Linting

  • Building

    • CMake build does not produce any new warnings from changes in this PR
  • Testing

    aurora, oneapi-ifx, mpich

    • CTests Pass
    • Polaris omega_pr Pass

    chrysalis, oneapi-ifx, openmpi

    • CTests Pass
    • Polaris omega_pr Pass

    frontier, craygnu, mpich

    • CTests Pass
    • Polaris omega_pr Pass

    frontier, craygnu-mphipcc, mpich

    • CTests Pass
    • Polaris omega_pr Pass

    pm-cpu, gnu, mpich

    • CTests Pass
    • Polaris omega_pr Pass

    pm-gpu, gnugpu, mpich

    • CTests Pass
    • Polaris omega_pr Pass
  • Provide relevant details in a comment to the PR titled Testing

  • 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)

Posted by Claude Code on @xylar's behalf. The testing, analysis and wording above are AI-authored; please check them accordingly.

🤖 Generated with Claude Code

@xylar

xylar commented Oct 3, 2026

Copy link
Copy Markdown
Author

Testing

CTests pass (50/50) on Chrysalis with Intel and OpenMPI, building this branch in:

/lcrc/group/e3sm/ac.xylar/polaris_1.1/chrysalis/test_20261003/rayleigh_damping/undamped/ocean_build

I also ran ocean/spherical/realistic_global/QU.240km/analysis_members_test (5 days from rest, dt 2 h) with and without DampingCoeff: 1.0e-4, in undamped/ and damped/ next to that build. Daily max normal velocity (m/s):

day 1 3 5
undamped 1.91 3.37 2.92
damped 0.275 0.250 0.230

Neither run is stable at dt 6 h, so this setup does not show the larger-time-step benefit in design section 5.6.


Posted by Claude Code on @xylar's behalf. The testing, analysis and wording above are AI-authored; please check them accordingly.

@xylar

xylar commented Oct 4, 2026

Copy link
Copy Markdown
Author

Likely will replace #496 so the design is next to the implementation.

@xylar
xylar force-pushed the omega/add-rayleigh-damping branch from baa0fc2 to b0b3883 Compare October 6, 2026 20:32
xylar added a commit to xylar/E3SM that referenced this pull request Oct 7, 2026
xylar added a commit to xylar/E3SM that referenced this pull request Oct 7, 2026
Temporary.  Testers build the parent of this commit.
xylar added a commit to xylar/E3SM that referenced this pull request Oct 7, 2026
xylar added a commit to xylar/E3SM that referenced this pull request Oct 7, 2026
Temporary.  Testers build the parent of this commit.
@xylar

xylar commented Oct 7, 2026

Copy link
Copy Markdown
Author

Testing: aurora, oneapi-ifx, mpich

CTests: 57 of 57 passed. omega_pr: 29 of 29 tasks passed.

Tested the merge of #587 (b0b3883643) into develop (b42d508382) as 0ba261cde1, against develop (b42d508382) rather than the Polaris submodule, because Polaris' Omega submodule is behind develop, which has since merged answer-changing PRs (#512, #575, #405) that would obscure this PR's effect.

Polaris omega_pr suite

  • Baseline workdir: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/baselines/aurora_oneapi-ifx_polaris-f7fdd1b_omega-b42d508/omega_pr
  • Baseline build: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/baselines/aurora_oneapi-ifx_polaris-f7fdd1b_omega-b42d508/build
  • PR build: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/pr587-b0b3883/aurora_oneapi-ifx/build
  • PR workdir: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/pr587-b0b3883/aurora_oneapi-ifx/omega_pr
  • Polaris: f7fdd1bba53fc79ae40785f7c9b4cfc2f9195a5f (1.0.0-947-gf7fdd1bba)
  • Baseline Omega: b42d50838270e278587d00491cdfbf7c2e4ae4a6 (bp_maint3.2-2918-gb42d508382)
  • PR Omega: fe739396ba9c05edaa0a15e3093fcaace6d0aa4d (bp_maint3.2-2923-gfe739396ba)
  • Machine: aurora
  • Compiler: oneapi-ifx
  • Build type: Release
  • Log: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/pr587-b0b3883/aurora_oneapi-ifx/omega_pr/polaris_omega_pr.o8908257
  • Result: All tests passed
Recent commits

Polaris:

f7fdd1bba Make one agent testing over ssh the default for Omega PR testing
b591226fc Read the machines an Omega PR tester reaches over ssh from the config
7a601bab1 Offer init's prompt for an agent testing on a machine itself
5873cb0d4 List each machine's rows in Omega PR testing status off the machines
cd0b93aa2 Add a post command to the Omega PR testing utility

Baseline Omega:

b42d508382 Merge pull request #512 from vanroekel/vanroekel/omega/kpp-final
e6fec7fe3e Merge pull request #575 from overfelt/overfelt/InitTotalVerticalTransportPseudoVelocity
fc9eaef2bf Merge pull request #405 from mwarusz/omega/cxx20
73469eb9ed Merge pull request #524 from philipwjones/omega/stop-time-changes
de99dc44f5 Merge pull request #584 from brian-oneill/omega/fix-tracerHorzAdv-timer

PR Omega:

fe739396ba Test merge of E3SM-Project/Omega#587 (b0b3883643) into develop (b42d508382)
b42d508382 Merge pull request #512 from vanroekel/vanroekel/omega/kpp-final
e6fec7fe3e Merge pull request #575 from overfelt/overfelt/InitTotalVerticalTransportPseudoVelocity
fc9eaef2bf Merge pull request #405 from mwarusz/omega/cxx20
73469eb9ed Merge pull request #524 from philipwjones/omega/stop-time-changes

CTest unit tests:

  • Machine: aurora
  • Compiler: oneapi-ifx
  • Build type: Release
  • Build: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/pr587-b0b3883/aurora_oneapi-ifx/build
  • Omega: fe739396ba9c05edaa0a15e3093fcaace6d0aa4d (bp_maint3.2-2923-gfe739396ba)
  • Result: All tests passed
  • Log: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/pr587-b0b3883/aurora_oneapi-ifx/build/ctests.log

Build warnings

No new warnings (8 in the PR build, 8 in the baseline build).

  • Baseline build log: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/baselines/aurora_oneapi-ifx_polaris-f7fdd1b_omega-b42d508/build/build_omega.log
  • PR build log: /lus/flare/projects/E3SM_Dec/xylar/polaris_1.1/aurora/omega_pr_test/pr587-b0b3883/aurora_oneapi-ifx/build/build_omega.log

Notes

This replaces the earlier comment for this row, which compared against Polaris' Omega submodule. The PR build and CTests are reused from that run: they were built from fe739396ba, which has the same tree as 0ba261cde1 (both merge b0b3883643 into b42d508382), so only the omega_pr baseline comparison was rerun.


Posted by Claude Code on @xylar's behalf. The testing, analysis and wording above are AI-authored; please check them accordingly.

@xylar

xylar commented Oct 7, 2026

Copy link
Copy Markdown
Author

Testing: pm-cpu, gnu, mpich

CTests: 57 of 57 passed. omega_pr: 29 of 29 tasks passed.

Tested the merge of #587 (b0b3883643) into develop (b42d508382) as 0ba261cde1, against develop (b42d508382) rather than the Polaris submodule, because Polaris' Omega submodule is behind develop, which has since merged answer-changing PRs (#512, #575, #405) that would obscure this PR's effect.

Polaris omega_pr suite

  • Baseline workdir: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/baselines/pm-cpu_gnu_polaris-f7fdd1b_omega-b42d508/omega_pr
  • Baseline build: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/baselines/pm-cpu_gnu_polaris-f7fdd1b_omega-b42d508/build
  • PR build: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr587-b0b3883/pm-cpu_gnu/build
  • PR workdir: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr587-b0b3883/pm-cpu_gnu/omega_pr
  • Polaris: f7fdd1bba53fc79ae40785f7c9b4cfc2f9195a5f (1.0.0-947-gf7fdd1bba)
  • Baseline Omega: b42d50838270e278587d00491cdfbf7c2e4ae4a6 (bp_maint3.2-2918-gb42d508382)
  • PR Omega: fe739396ba9c05edaa0a15e3093fcaace6d0aa4d (bp_maint3.2-2923-gfe739396ba)
  • Machine: pm-cpu
  • Compiler: gnu
  • Build type: Release
  • Log: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr587-b0b3883/pm-cpu_gnu/omega_pr/polaris_omega_pr.o59471907
  • Result: All tests passed
Recent commits

Polaris:

f7fdd1bba Make one agent testing over ssh the default for Omega PR testing
b591226fc Read the machines an Omega PR tester reaches over ssh from the config
7a601bab1 Offer init's prompt for an agent testing on a machine itself
5873cb0d4 List each machine's rows in Omega PR testing status off the machines
cd0b93aa2 Add a post command to the Omega PR testing utility

Baseline Omega:

b42d508382 Merge pull request #512 from vanroekel/vanroekel/omega/kpp-final
e6fec7fe3e Merge pull request #575 from overfelt/overfelt/InitTotalVerticalTransportPseudoVelocity
fc9eaef2bf Merge pull request #405 from mwarusz/omega/cxx20
73469eb9ed Merge pull request #524 from philipwjones/omega/stop-time-changes
de99dc44f5 Merge pull request #584 from brian-oneill/omega/fix-tracerHorzAdv-timer

PR Omega:

fe739396ba Test merge of E3SM-Project/Omega#587 (b0b3883643) into develop (b42d508382)
b42d508382 Merge pull request #512 from vanroekel/vanroekel/omega/kpp-final
e6fec7fe3e Merge pull request #575 from overfelt/overfelt/InitTotalVerticalTransportPseudoVelocity
fc9eaef2bf Merge pull request #405 from mwarusz/omega/cxx20
73469eb9ed Merge pull request #524 from philipwjones/omega/stop-time-changes

CTest unit tests:

  • Machine: pm-cpu
  • Compiler: gnu
  • Build type: Release
  • Build: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr587-b0b3883/pm-cpu_gnu/build
  • Omega: fe739396ba9c05edaa0a15e3093fcaace6d0aa4d (bp_maint3.2-2923-gfe739396ba)
  • Result: All tests passed
  • Log: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr587-b0b3883/pm-cpu_gnu/build/ctests.log

Build warnings

No new warnings (4 in the PR build, 4 in the baseline build).

  • Baseline build log: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/baselines/pm-cpu_gnu_polaris-f7fdd1b_omega-b42d508/build/build_omega.log
  • PR build log: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr587-b0b3883/pm-cpu_gnu/build/build_omega.log

Notes

This replaces the earlier comment for this row, which compared against Polaris' Omega submodule. The PR build and CTests are reused from that run: they were built from fe739396ba, which has the same tree as 0ba261cde1 (both merge b0b3883643 into b42d508382), so only the omega_pr baseline comparison was rerun.


Posted by Claude Code on @xylar's behalf. The testing, analysis and wording above are AI-authored; please check them accordingly.

@xylar

xylar commented Oct 7, 2026

Copy link
Copy Markdown
Author

Testing: chrysalis, oneapi-ifx, openmpi (Polaris intel)

CTests: 57 of 57 passed. omega_pr: 29 of 29 tasks passed.

Tested the merge of #587 (b0b3883643) into develop (b42d508382) as 0ba261cde1, against develop (b42d508382) rather than the Polaris submodule, because Polaris' Omega submodule is behind develop, which has since merged answer-changing PRs (#512, #575, #405) that would obscure this PR's effect.

Polaris omega_pr suite

  • Baseline workdir: /lcrc/group/e3sm/ac.xylar/polaris_1.1/chrysalis/omega_pr_test/baselines/chrysalis_intel_polaris-f7fdd1b_omega-b42d508/omega_pr
  • Baseline build: /lcrc/group/e3sm/ac.xylar/polaris_1.1/chrysalis/omega_pr_test/baselines/chrysalis_intel_polaris-f7fdd1b_omega-b42d508/build
  • PR build: /lcrc/group/e3sm/ac.xylar/polaris_1.1/chrysalis/omega_pr_test/pr587-b0b3883/chrysalis_intel/build
  • PR workdir: /lcrc/group/e3sm/ac.xylar/polaris_1.1/chrysalis/omega_pr_test/pr587-b0b3883/chrysalis_intel/omega_pr
  • Polaris: f7fdd1bba53fc79ae40785f7c9b4cfc2f9195a5f (1.0.0-947-gf7fdd1bba)
  • Baseline Omega: b42d50838270e278587d00491cdfbf7c2e4ae4a6 (bp_maint3.2-2918-gb42d508382)
  • PR Omega: fe739396ba9c05edaa0a15e3093fcaace6d0aa4d (bp_maint3.2-2923-gfe739396ba)
  • Machine: chrysalis
  • Partition: debug
  • Compiler: intel
  • Build type: Release
  • Log: /lcrc/group/e3sm/ac.xylar/polaris_1.1/chrysalis/omega_pr_test/pr587-b0b3883/chrysalis_intel/omega_pr/polaris_omega_pr.o1303239
  • Result: All tests passed
Recent commits

Polaris:

f7fdd1bba Make one agent testing over ssh the default for Omega PR testing
b591226fc Read the machines an Omega PR tester reaches over ssh from the config
7a601bab1 Offer init's prompt for an agent testing on a machine itself
5873cb0d4 List each machine's rows in Omega PR testing status off the machines
cd0b93aa2 Add a post command to the Omega PR testing utility

Baseline Omega:

b42d508382 Merge pull request #512 from vanroekel/vanroekel/omega/kpp-final
e6fec7fe3e Merge pull request #575 from overfelt/overfelt/InitTotalVerticalTransportPseudoVelocity
fc9eaef2bf Merge pull request #405 from mwarusz/omega/cxx20
73469eb9ed Merge pull request #524 from philipwjones/omega/stop-time-changes
de99dc44f5 Merge pull request #584 from brian-oneill/omega/fix-tracerHorzAdv-timer

PR Omega:

fe739396ba Test merge of E3SM-Project/Omega#587 (b0b3883643) into develop (b42d508382)
b42d508382 Merge pull request #512 from vanroekel/vanroekel/omega/kpp-final
e6fec7fe3e Merge pull request #575 from overfelt/overfelt/InitTotalVerticalTransportPseudoVelocity
fc9eaef2bf Merge pull request #405 from mwarusz/omega/cxx20
73469eb9ed Merge pull request #524 from philipwjones/omega/stop-time-changes

CTest unit tests:

  • Machine: chrysalis
  • Compiler: intel
  • Build type: Release
  • Build: /lcrc/group/e3sm/ac.xylar/polaris_1.1/chrysalis/omega_pr_test/pr587-b0b3883/chrysalis_intel/build
  • Omega: fe739396ba9c05edaa0a15e3093fcaace6d0aa4d (bp_maint3.2-2923-gfe739396ba)
  • Result: All tests passed
  • Log: /lcrc/group/e3sm/ac.xylar/polaris_1.1/chrysalis/omega_pr_test/pr587-b0b3883/chrysalis_intel/build/ctests.log

Build warnings

1 new warnings, 0 in files this PR changes (37 in the PR build, 36 in the baseline build). Those in files the PR changes are marked *.

New warnings
  externals/scorpio/src/gptl/gptl.h: [-Wmacro-redefined] 'THREADED_OMP' macro redefined (4 -> 5)
  • Baseline build log: /lcrc/group/e3sm/ac.xylar/polaris_1.1/chrysalis/omega_pr_test/baselines/chrysalis_intel_polaris-f7fdd1b_omega-b42d508/build/build_omega.log
  • PR build log: /lcrc/group/e3sm/ac.xylar/polaris_1.1/chrysalis/omega_pr_test/pr587-b0b3883/chrysalis_intel/build/build_omega.log

Notes

This replaces the earlier comment for this row, which compared against Polaris' Omega submodule. The PR build and CTests are reused from that run: they were built from fe739396ba, which has the same tree as 0ba261cde1 (both merge b0b3883643 into b42d508382), so only the omega_pr baseline comparison was rerun.

The new THREADED_OMP warning is not new: both builds give it for the same five scorpio gptl files, but in the baseline build log one of the five is garbled by interleaved output from the parallel build, so it was not counted.


Posted by Claude Code on @xylar's behalf. The testing, analysis and wording above are AI-authored; please check them accordingly.

@xylar

xylar commented Oct 7, 2026

Copy link
Copy Markdown
Author

Testing: pm-gpu, gnugpu, mpich

CTests: 57 of 57 passed. omega_pr: 29 of 29 tasks passed.

Tested the merge of #587 (b0b3883643) into develop (b42d508382) as 0ba261cde1, against develop (b42d508382) rather than the Polaris submodule, because Polaris' Omega submodule is behind develop, which has since merged answer-changing PRs (#512, #575, #405) that would obscure this PR's effect.

Polaris omega_pr suite

  • Baseline workdir: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/baselines/pm-gpu_gnugpu_polaris-f7fdd1b_omega-b42d508/omega_pr
  • Baseline build: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/baselines/pm-gpu_gnugpu_polaris-f7fdd1b_omega-b42d508/build
  • PR build: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr587-b0b3883/pm-gpu_gnugpu/build
  • PR workdir: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr587-b0b3883/pm-gpu_gnugpu/omega_pr
  • Polaris: f7fdd1bba53fc79ae40785f7c9b4cfc2f9195a5f (1.0.0-947-gf7fdd1bba)
  • Baseline Omega: b42d50838270e278587d00491cdfbf7c2e4ae4a6 (bp_maint3.2-2918-gb42d508382)
  • PR Omega: fe739396ba9c05edaa0a15e3093fcaace6d0aa4d (bp_maint3.2-2923-gfe739396ba)
  • Machine: pm-gpu
  • Compiler: gnugpu
  • Build type: Release
  • Log: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr587-b0b3883/pm-gpu_gnugpu/omega_pr/polaris_omega_pr.o59472111
  • Result: All tests passed
Recent commits

Polaris:

f7fdd1bba Make one agent testing over ssh the default for Omega PR testing
b591226fc Read the machines an Omega PR tester reaches over ssh from the config
7a601bab1 Offer init's prompt for an agent testing on a machine itself
5873cb0d4 List each machine's rows in Omega PR testing status off the machines
cd0b93aa2 Add a post command to the Omega PR testing utility

Baseline Omega:

b42d508382 Merge pull request #512 from vanroekel/vanroekel/omega/kpp-final
e6fec7fe3e Merge pull request #575 from overfelt/overfelt/InitTotalVerticalTransportPseudoVelocity
fc9eaef2bf Merge pull request #405 from mwarusz/omega/cxx20
73469eb9ed Merge pull request #524 from philipwjones/omega/stop-time-changes
de99dc44f5 Merge pull request #584 from brian-oneill/omega/fix-tracerHorzAdv-timer

PR Omega:

fe739396ba Test merge of E3SM-Project/Omega#587 (b0b3883643) into develop (b42d508382)
b42d508382 Merge pull request #512 from vanroekel/vanroekel/omega/kpp-final
e6fec7fe3e Merge pull request #575 from overfelt/overfelt/InitTotalVerticalTransportPseudoVelocity
fc9eaef2bf Merge pull request #405 from mwarusz/omega/cxx20
73469eb9ed Merge pull request #524 from philipwjones/omega/stop-time-changes

CTest unit tests:

  • Machine: pm-gpu
  • Compiler: gnugpu
  • Build type: Release
  • Build: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr587-b0b3883/pm-gpu_gnugpu/build
  • Omega: fe739396ba9c05edaa0a15e3093fcaace6d0aa4d (bp_maint3.2-2923-gfe739396ba)
  • Result: All tests passed
  • Log: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr587-b0b3883/pm-gpu_gnugpu/build/ctests.log

Build warnings

No new warnings (826 in the PR build, 826 in the baseline build).

  • Baseline build log: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/baselines/pm-gpu_gnugpu_polaris-f7fdd1b_omega-b42d508/build/build_omega.log
  • PR build log: /pscratch/sd/x/xylar/polaris_1.1/omega_pr_test/pr587-b0b3883/pm-gpu_gnugpu/build/build_omega.log

Notes

This replaces the earlier comment for this row, which compared against Polaris' Omega submodule. The PR build and CTests are reused from that run: they were built from fe739396ba, which has the same tree as 0ba261cde1 (both merge b0b3883643 into b42d508382), so only the omega_pr baseline comparison was rerun.


Posted by Claude Code on @xylar's behalf. The testing, analysis and wording above are AI-authored; please check them accordingly.

@xylar

xylar commented Oct 7, 2026

Copy link
Copy Markdown
Author

Testing: frontier, craygnu, mpich

CTests: 57 of 57 passed. omega_pr: 29 of 29 tasks passed.

Tested the merge of #587 (b0b3883643) into develop (b42d508382) as 0ba261cde1, against develop (b42d508382) rather than the Polaris submodule, because Polaris' Omega submodule is behind develop, which has since merged answer-changing PRs (#512, #575, #405) that would obscure this PR's effect.

Polaris omega_pr suite

  • Baseline workdir: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/baselines/frontier_craygnu_polaris-f7fdd1b_omega-b42d508/omega_pr
  • Baseline build: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/baselines/frontier_craygnu_polaris-f7fdd1b_omega-b42d508/build
  • PR build: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr587-b0b3883/frontier_craygnu/build
  • PR workdir: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr587-b0b3883/frontier_craygnu/omega_pr
  • Polaris: f7fdd1bba53fc79ae40785f7c9b4cfc2f9195a5f (1.0.0-947-gf7fdd1bba)
  • Baseline Omega: b42d50838270e278587d00491cdfbf7c2e4ae4a6 (bp_maint3.2-2918-gb42d508382)
  • PR Omega: 0ba261cde183065806df2f69df649ff959258490 (bp_maint3.2-2923-g0ba261cde1)
  • Machine: frontier
  • Partition: batch
  • Compiler: craygnu
  • Build type: Release
  • Log: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr587-b0b3883/frontier_craygnu/omega_pr/polaris_omega_pr.o5630118
  • Result: All tests passed
Recent commits

Polaris:

f7fdd1bba Make one agent testing over ssh the default for Omega PR testing
b591226fc Read the machines an Omega PR tester reaches over ssh from the config
7a601bab1 Offer init's prompt for an agent testing on a machine itself
5873cb0d4 List each machine's rows in Omega PR testing status off the machines
cd0b93aa2 Add a post command to the Omega PR testing utility

Baseline Omega:

b42d508382 Merge pull request #512 from vanroekel/vanroekel/omega/kpp-final
e6fec7fe3e Merge pull request #575 from overfelt/overfelt/InitTotalVerticalTransportPseudoVelocity
fc9eaef2bf Merge pull request #405 from mwarusz/omega/cxx20
73469eb9ed Merge pull request #524 from philipwjones/omega/stop-time-changes
de99dc44f5 Merge pull request #584 from brian-oneill/omega/fix-tracerHorzAdv-timer

PR Omega:

0ba261cde1 Test merge of E3SM-Project/Omega#587 (b0b3883643) into develop (b42d508382)
b42d508382 Merge pull request #512 from vanroekel/vanroekel/omega/kpp-final
e6fec7fe3e Merge pull request #575 from overfelt/overfelt/InitTotalVerticalTransportPseudoVelocity
fc9eaef2bf Merge pull request #405 from mwarusz/omega/cxx20
73469eb9ed Merge pull request #524 from philipwjones/omega/stop-time-changes

CTest unit tests:

  • Machine: frontier
  • Compiler: craygnu
  • Build type: Release
  • Build: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr587-b0b3883/frontier_craygnu/build
  • Omega: 0ba261cde183065806df2f69df649ff959258490 (bp_maint3.2-2923-g0ba261cde1)
  • Result: All tests passed
  • Log: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr587-b0b3883/frontier_craygnu/build/ctests.log

Build warnings

No new warnings (3 in the PR build, 3 in the baseline build).

  • Baseline build log: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/baselines/frontier_craygnu_polaris-f7fdd1b_omega-b42d508/build/build_omega.log
  • PR build log: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr587-b0b3883/frontier_craygnu/build/build_omega.log

Posted by Claude Code on @xylar's behalf. The testing, analysis and wording above are AI-authored; please check them accordingly.

@xylar

xylar commented Oct 7, 2026 •

Copy link
Copy Markdown
Author

Testing: frontier, craygnu-mphipcc, mpich

CTests: 54 of 57 passed. omega_pr: 29 of 29 tasks passed.

Tested the merge of #587 (b0b3883643) into develop (b42d508382) as 0ba261cde1, against develop (b42d508382) rather than the Polaris submodule, because Polaris' Omega submodule is behind develop, which has since merged answer-changing PRs (#512, #575, #405) that would obscure this PR's effect.

Polaris omega_pr suite

  • Baseline workdir: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/baselines/frontier_craygnu-mphipcc_polaris-f7fdd1b_omega-b42d508/omega_pr
  • Baseline build: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/baselines/frontier_craygnu-mphipcc_polaris-f7fdd1b_omega-b42d508/build
  • PR build: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr587-b0b3883/frontier_craygnu-mphipcc/build
  • PR workdir: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr587-b0b3883/frontier_craygnu-mphipcc/omega_pr
  • Polaris: f7fdd1bba53fc79ae40785f7c9b4cfc2f9195a5f (1.0.0-947-gf7fdd1bba)
  • Baseline Omega: b42d50838270e278587d00491cdfbf7c2e4ae4a6 (bp_maint3.2-2918-gb42d508382)
  • PR Omega: 0ba261cde183065806df2f69df649ff959258490 (bp_maint3.2-2923-g0ba261cde1)
  • Machine: frontier
  • Partition: batch
  • Compiler: craygnu-mphipcc
  • Build type: Release
  • Log: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr587-b0b3883/frontier_craygnu-mphipcc/omega_pr/polaris_omega_pr.o5630143
  • Result: All tests passed
Recent commits

Polaris:

f7fdd1bba Make one agent testing over ssh the default for Omega PR testing
b591226fc Read the machines an Omega PR tester reaches over ssh from the config
7a601bab1 Offer init's prompt for an agent testing on a machine itself
5873cb0d4 List each machine's rows in Omega PR testing status off the machines
cd0b93aa2 Add a post command to the Omega PR testing utility

Baseline Omega:

b42d508382 Merge pull request #512 from vanroekel/vanroekel/omega/kpp-final
e6fec7fe3e Merge pull request #575 from overfelt/overfelt/InitTotalVerticalTransportPseudoVelocity
fc9eaef2bf Merge pull request #405 from mwarusz/omega/cxx20
73469eb9ed Merge pull request #524 from philipwjones/omega/stop-time-changes
de99dc44f5 Merge pull request #584 from brian-oneill/omega/fix-tracerHorzAdv-timer

PR Omega:

0ba261cde1 Test merge of E3SM-Project/Omega#587 (b0b3883643) into develop (b42d508382)
b42d508382 Merge pull request #512 from vanroekel/vanroekel/omega/kpp-final
e6fec7fe3e Merge pull request #575 from overfelt/overfelt/InitTotalVerticalTransportPseudoVelocity
fc9eaef2bf Merge pull request #405 from mwarusz/omega/cxx20
73469eb9ed Merge pull request #524 from philipwjones/omega/stop-time-changes

CTest unit tests:

  • Machine: frontier
  • Compiler: craygnu-mphipcc
  • Build type: Release
  • Build: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr587-b0b3883/frontier_craygnu-mphipcc/build
  • Omega: 0ba261cde183065806df2f69df649ff959258490 (bp_maint3.2-2923-g0ba261cde1)
  • Failures (3 of 57):
    • TEND_PLANE_TEST
    • TEND_PLANE_SINGLE_PRECISION_TEST
    • TEND_SPHERE_TEST
  • Log: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr587-b0b3883/frontier_craygnu-mphipcc/build/ctests.log

Build warnings

No new warnings (6 in the PR build, 6 in the baseline build).

  • Baseline build log: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/baselines/frontier_craygnu-mphipcc_polaris-f7fdd1b_omega-b42d508/build/build_omega.log
  • PR build log: /lustre/orion/cli115/scratch/xylar/polaris_1.1/frontier/omega_pr_test/pr587-b0b3883/frontier_craygnu-mphipcc/build/build_omega.log

Notes

The 3 CTest failures are not from this PR. develop (b42d508) fails the same 3 tests on Frontier GPUs, on the same check, FCTAccumulateHighOrderFlux_0, and passes all 57 with #591 merged in (see #591 (comment)).


Posted by Claude Code on @xylar's behalf. The testing, analysis and wording above are AI-authored; please check them accordingly.

@xylar xylar mentioned this pull request Oct 9, 2026
4 tasks done
@xylar
xylar force-pushed the omega/add-rayleigh-damping branch from b0b3883 to eecc52e Compare October 9, 2026 09:36
@mark-petersen
mark-petersen self-requested a review October 19, 2026 21:13

@mark-petersen mark-petersen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! This looks great, and it is good to have an implicit Rayleigh drag to avoid time step problems.

I read the documentation and reviewed the code. I ran cTests on perlmutter and frontier for good measure merged into today's develop 1feac2f even though you tested it above.

I ran polaris on perlmutter cpu with omega_pr with default settings (RayleighDamping:Enable: false) and all tests pass. I reran with RayleighDamping:Enable: true and most tests passed. Single term and convergence tests fail, which would be expected. All decomp, restart, and thread tests pass, which is important. Tests with all terms on pass: baroclinic_channel, overflow, sea mount, and realistic_global.

Polaris results with Rayleigh Damping on:

polaris suite -c ocean -t omega_pr --model omega -p ${PSCRATCH}/omega-builds/opr-cpu/build -w ${PSCRATCH}/nightly/opr-cpu-RaleighDrag

/pscratch/sd/m/mpeterse/nightly/opr-cpu-RaleighDrag

Task Runtimes:
0:00:15 FAIL ocean/column/horiz_press_grad/salinity_gradient
0:00:28 PASS ocean/column/vmix_stable
0:00:28 PASS ocean/column/vmix_unstable
0:00:08 FAIL ocean/column/thermo
0:00:05 PASS ocean/planar/baroclinic_channel/split_explicit/10km/decomp
0:00:02 PASS ocean/planar/baroclinic_channel/split_explicit/10km/restart
0:00:02 PASS ocean/planar/baroclinic_channel/split_explicit/10km/threads
0:00:05 PASS ocean/planar/baroclinic_channel/rk4/10km/decomp
0:00:03 PASS ocean/planar/baroclinic_channel/rk4/10km/restart
0:00:02 PASS ocean/planar/baroclinic_channel/rk4/10km/threads
0:00:05 PASS ocean/planar/barotropic_channel/short
0:00:06 FAIL ocean/planar/barotropic_gyre/munk/free-slip
0:00:03 FAIL ocean/planar/manufactured_solution/convergence_both/default
0:00:01 FAIL ocean/planar/manufactured_solution/convergence_both/del2
0:00:01 FAIL ocean/planar/manufactured_solution/convergence_both/del4
0:00:01 FAIL ocean/planar/manufactured_solution/rk4/convergence_both/default
0:00:02 FAIL ocean/planar/merry_go_round/default
0:00:04 PASS ocean/planar/overflow/linear/zstar/smoke_test_horiz_adv_order_2_del4
0:00:03 PASS ocean/planar/overflow/linear/zstar/smoke_test_horiz_adv_order_3
0:00:03 PASS ocean/planar/overflow/linear/zstar/smoke_test_horiz_adv_order_4
0:00:05 PASS ocean/planar/overflow/nonlinear/pstar/smoke_test_horiz_adv_order_4_del4
0:00:03 PASS ocean/planar/overflow/nonlinear/pstar/smoke_test_horiz_adv_order_3_nofct
0:00:04 PASS ocean/planar/seamount/linear/zstar/short
0:00:04 PASS ocean/planar/seamount/nonlinear/sigma/short
0:00:11 FAIL ocean/spherical/icos/cosine_bell/decomp
0:00:03 FAIL ocean/spherical/icos/cosine_bell/restart
0:00:24 PASS ocean/spherical/realistic_global/QU.240km/analysis_members/short
0:00:15 PASS ocean/spherical/realistic_global/QU.240km/restart
0:00:06 PASS ocean/column/ekman
0:00:15 FAIL ocean/column/inertial
0:00:21 PASS ocean/column/kpp_combined
0:00:22 PASS ocean/column/kpp_cooling_with_mixedlayer

@xylar

xylar commented Oct 20, 2026

Copy link
Copy Markdown
Author

Thanks @mark-petersen!

@xylar
xylar marked this pull request as ready for review October 20, 2026 20:57
@xylar

xylar commented Oct 20, 2026

Copy link
Copy Markdown
Author

@sbrus89, this needs a rebase to resolve a conflict. I'll do that ASAP.

xylar and others added 4 commits October 20, 2026 15:58
Rayleigh damping is a linear drag on momentum used during dynamic
adjustment to remove the large-amplitude barotropic and inertia-gravity
transients radiated by an initial condition that is not in dynamical
balance. Omega has no such capability, which blocks generation of E3SM
ocean initial conditions (Omega issue E3SM-Project#495).

The design applies the damping implicitly, as an additional diagonal
contribution to the existing implicit velocity vertical mixing solve in
VelVertMixSetupOnEdge, so it is unconditionally stable for any product
of the coefficient and the time step. It adds a single, spatially
uniform coefficient in a new top-level RayleighDamping config group and
introduces no new class or field. The depth-variable and bottom-only
variants in MPAS-Ocean are deliberately not carried over.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Add a RayleighDamping config group (Enable, DampingCoeff) that applies a
linear drag on normal velocity in every active layer. The damping is
treated implicitly as an additional diagonal contribution,
DT * DampingCoeff * PseudoThickness, in the velocity vertical mixing
tridiagonal system, so it is stable for any DT * DampingCoeff.

VertMix::init() reads the new group and aborts on a negative
coefficient, and Tendencies aborts if damping is enabled without
VelVertMixTendencyEnable. Damping is off by default.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Call VertMix::applyVelVertMixImplicit on a test state and check:
analytic decay by 1 / (1 + DT * Coeff) with no viscosity or drag, for a
typical and a very large coefficient; bit-for-bit agreement between
disabled damping and a zero coefficient; and agreement with a host
Thomas-algorithm solve when viscosity, implicit bottom drag and damping
are all enabled.

The test now initializes the default time stepper, tracers, auxiliary
state and equation of state needed by the implicit solve.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@xylar
xylar force-pushed the omega/add-rayleigh-damping branch from eecc52e to 871ade1 Compare October 20, 2026 21:00
@xylar

xylar commented Oct 20, 2026

Copy link
Copy Markdown
Author

Done!

@xylar xylar added enhancement New feature or request Omega labels Oct 21, 2026
@vanroekel vanroekel added this to the Feature Freeze milestone Oct 24, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request Omega

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Rayleigh damping

4 participants