Skip to content

FATES API refactor - BC to patch "direct"#17

Draft
glemieux wants to merge 963 commits intoNGEET:masterfrom
glemieux:lnd/fates-bc-refactor-patch-direct
Draft

FATES API refactor - BC to patch "direct"#17
glemieux wants to merge 963 commits intoNGEET:masterfrom
glemieux:lnd/fates-bc-refactor-patch-direct

Conversation

@glemieux
Copy link
Copy Markdown

No description provided.

@glemieux glemieux force-pushed the lnd/fates-bc-refactor-patch-direct branch from 1a338a0 to c6c5b78 Compare July 2, 2025 16:37
@glemieux glemieux force-pushed the lnd/fates-bc-refactor-patch-direct branch 2 times, most recently from 46dd1ae to 7e99bd1 Compare September 2, 2025 17:23
@glemieux glemieux force-pushed the lnd/fates-bc-refactor-patch-direct branch from cdb63c5 to b391bcf Compare October 31, 2025 22:44
@glemieux glemieux force-pushed the lnd/fates-bc-refactor-patch-direct branch from dfcf8fd to 4a81700 Compare November 25, 2025 01:01
jgfouca and others added 25 commits February 11, 2026 14:37
…oject#8063)

CIME emergency update

Fixes bad-looking logger.info printing.

[BFB]
Disabling HDF5 compression filters on pm-cpu. The compression
filters need HDF5 1,14+, however HDF5 module available on pm-cpu,
for version 1.14.3.1, has a bug that causes floating point
exceptions during initialization (HDF5 type initialization) for
E3SM debug builds.
Implement comprehensive property testing for cloud water autoconversion
(Khairoutdinov & Kogan 2000) verifying:
- Monotonicity: dR/dQc > 0, dR/dNc < 0
- Consistency: Mass/number conservation and rain embryo size (25μm)
- Physical limits: Small droplet and haze regime thresholds
- Subgrid variance: Detection and validation logic

Includes detailed technical documentation of the testing strategy
and tolerance rationale.
…#8057)

Port zm transport

Change list:
1. Major change: port zm_transport_tracer to C++ using the established process
2. Add support for ZM f90 to use bfb math layer
3. Remove unused arguments and variables from fortran
4. Tell gen_boiler that ZM uses pcols as the ncol dim name

[BFB]
User can toggle the timers from IO remappers via yaml files.
We also allow to toggle this option for ALL streams via an
global eamxx XML option
…8052)

Fixes for NaNs in the test SMS_Ly1.ne4pg2_oQU480.F2010-EAMxx-MAM4xx-MPASSI.compy_intel.eamxx-L72.
See mam4xx PR E3SM-Project#489 for details.

Changes results for the test REP_D_Ln5.ne4pg2_oQU480.F2010-EAMxx-MAM4xx.ghci-snl-cpu_gnu.eamxx-L72.
Passes validation tests for MAM4xx.

[non-BFB]
Add timers inside remappers to better track where time is spent.
Also, allow IO to set a name in the remappers,
so that we can differentiate remap times for different streams

[BFB]
4to40km + IcoswISC30E3r5 mesh. Testing and confirmed working
on as expected Chrysalis.
- Extract monolithic run_physics() into individual check methods
- Add AutoconversionTestData struct to hold test results
- Organize TEST_CASE with SECTION clauses for selective execution
- Update documentation with section usage examples
- Use runtime parameters instead of hardcoded values
- Add sanity bounds for parameter validation

Enables running individual test sections:
  ./p3_tests "p3_cloud_water_autoconversion_test" -c monotonicity

Addresses reviewer feedback on test organization.
)

Motivation to update: bring in fix for deprecation errors in Kokkos 5.

Also changes the submodule to be based on the new branch https://github.com/E3SM-Project/rte-rrtmgp/tree/e3sm_submodule_version

[BFB]
P3 Autoconversion: Physics Property Tests and Technical Documentation
    
    Description:
    This PR introduces a new "Physics Property Test" strategy for the P3 microphysics scheme, starting with the cloud water to rain autoconversion process. Unlike traditional BFB regression tests which only detect changes from a baseline, these tests validate that the implementation adheres to the fundamental physical principles of the parameterization (Khairoutdinov and Kogan, 2000).
    
    In addition, this PR establishes a new section in the Technical Guide for detailed physics documentation.
    
    Key Changes:
    
      1. Enhanced Unit Tests (p3_autoconversion_unit_tests.cpp):
          - Phase Space Sweep: Tests cover a wide range of regimes ( q c from 5 × 10 − 9 to 10 − 2 kg/kg, N c from 10 6 to 10 9 #/m³).
          - Physical Properties Validated:
              - Thresholds: Verifies rate is zero below q c = 10 − 8 kg/kg.
              - Monotonicity: Checks correct sensitivity to inputs ( ∂ R / ∂ q c > 0 and ∂ R / ∂ N c < 0 ).
              - Conservation: Verifies specific mass loss equals specific number loss ( N l o s s = R ⋅ N c / q c ).
              - Limits: Verifies autoconversion is negligible in the "Haze Limit" ( r < 1 μ m ).
              - Self-Consistency: Verifies the implicit mass of new raindrops corresponds to the characteristic radius ( r a u t o ≈ 25 μ m ).
          - Parameter Validation: Ensures runtime configuration matches KK2000 constants.
    
      2. New Documentation (docs/technical/physics/p3/autoconversion.md):
          - Documents the mathematical formulation of the autoconversion rate and number tendencies.
          - Explains the implementation details (thresholds, variance scaling status).
          - Details the test strategy and the specific physical properties being verified.
    
      3. Documentation Structure:
          - Updated components/eamxx/mkdocs.yml to include a new Physics section under the Technical Guide.
    
    Testing:
    
      - Ran p3_autoconversion_unit_tests on pm-cpu (GNU).
      - All property checks pass.
      - The test correctly identifies that subgrid variance scaling is currently disabled in the implementation.
    
    [BFB]
…026 (PR E3SM-Project#8069)

Changes to update module versions on muller/alvarez
- Replace BFB-only test with full property-test suite (3375-case sweep)
- Add checks for process mapping, bounds, and cloud fraction logic
- Preserve existing BFB regression behavior
- Add technical documentation in back_to_cell_average.md
- Update mkdocs.yml and p3_unit_tests_common.hpp
glemieux added 28 commits March 1, 2026 21:38
These have moved into fates
… can/should take place during init_coldstart instead of init

This will mostly be the non-global data type variables
Since we pass vert_soilc namelist tag, we can replace this init_soil_depths logic on the fates side
@glemieux glemieux force-pushed the lnd/fates-bc-refactor-patch-direct branch from bfbd7fb to 3932407 Compare April 8, 2026 16:30
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.