EAMxx: 3D Turbulence Finisher (bug fixes, enhancements, numerical stability improvements) - #8630
EAMxx: 3D Turbulence Finisher (bug fixes, enhancements, numerical stability improvements)#8630bogensch wants to merge 11 commits into
Conversation
|
|
@bogensch could we add some light technical/user docs while at it? goal: tell users the technical methods (technical docs) and how to enable/disalbe/etc (user docs) |
Great idea, will do! |
There was a problem hiding this comment.
Pull request overview
Refines EAMxx 3-D SGS turbulence coupling, stability, and tracer diffusion.
Changes:
- Adds independent SGS subcycling and CFL clipping.
- Applies horizontal diffusion to all tracers.
- Introduces horizontal SHOC diffusivities and corrects HOMME coupling.
Reviewed changes
Copilot reviewed 24 out of 24 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
components/homme/src/theta-l_kokkos/theta_f2c_mod.F90 |
Extends the Fortran/C++ parameter interface. |
components/homme/src/theta-l_kokkos/prim_driver_mod.F90 |
Passes horizontal subcycling to C++. |
components/homme/src/theta-l_kokkos/cxx/HyperviscosityFunctorImpl.hpp |
Stores separate SGS timestep data. |
components/homme/src/theta-l_kokkos/cxx/HyperviscosityFunctorImpl.cpp |
Revises SGS diffusion, clipping, and state updates. |
components/homme/src/theta-l_kokkos/cxx/cxx_f90_interface_theta.cpp |
Validates and stores the new parameter. |
components/homme/src/share/sl_advection.F90 |
Exposes tracer SGS subcycling. |
components/homme/src/share/namelist_mod.F90 |
Reads and broadcasts new namelist controls. |
components/homme/src/share/cxx/SimulationParams.hpp |
Adds horizontal turbulence subcycling state. |
components/homme/src/share/cxx/ComposeTransportImplHorizTurb.cpp |
Diffuses all tracers with CFL clipping. |
components/homme/src/share/cxx/ComposeTransportImplGeneral.cpp |
Configures tracer SGS exchanges and execution. |
components/homme/src/share/cxx/ComposeTransportImpl.hpp |
Adds tracer SGS data and exchanges. |
components/homme/src/share/control_mod.F90 |
Defines new namelist variables. |
components/eamxx/tests/single-process/shoc/input.yaml |
Supplies horizontal SHOC coefficients. |
components/eamxx/src/physics/shoc/shoc_functions.hpp |
Declares horizontal diffusivity support. |
components/eamxx/src/physics/shoc/impl/shoc_eddy_diffusivities_impl.hpp |
Implements horizontal diffusivities. |
components/eamxx/src/physics/shoc/eamxx_shoc_process_interface.hpp |
Extends SHOC process state. |
components/eamxx/src/physics/shoc/eamxx_shoc_process_interface.cpp |
Produces horizontal diffusivity fields. |
components/eamxx/src/physics/shoc/disp/shoc_tke_disp.cpp |
Updates the small-kernel strain input. |
components/eamxx/src/dynamics/homme/eamxx_homme_process_interface.cpp |
Couples horizontal diffusivities to HOMME. |
components/eamxx/src/dynamics/homme/eamxx_homme_fv_phys.cpp |
Remaps horizontal diffusivities for FV physics. |
components/eamxx/src/control/atmosphere_driver.cpp |
Synchronizes the HOMME and SHOC feature flag. |
components/eamxx/docs/user/model_configuration.md |
Documents the new controls. |
components/eamxx/cime_config/namelist_defaults_eamxx.xml |
Adds defaults and process parameters. |
components/eamxx/cime_config/eamxx_buildnml.py |
Synchronizes flags and fallback subcycling values. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
All copilot revisions have been addressed. This PR is ready for a human review. |
…ntal diffusivity definition, various bug fixes, and numerical stability enhancements
…ntal diffusivities
remove unneeded team barrier Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
make get_lambda_vis a KOKKOS_INLINE_FUNCTION. Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Fix the way guarded view of shear_strain_3d_components_s is passed. This was a bug that resulted from a poor conflict resolution. Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…very much out of place
0549ef5 to
3b1bd3a
Compare
|
NLFAILs expected due to the addition of several new namelist variables. |
|
I'll merge on Mon and submit bless req |
This PR puts the finishing touches on the implementation of 3D turbulence and addresses several issues identified during rigorous scientific validation and numerical stress testing. These changes include bug fixes, corrections to the implementation, new namelist controls, and several improvements to the numerical and scientific formulation.
Specific changes include:
Since 3D turbulence is a stealth feature, it is expected this PR will be B4B.