CliMA / SurfaceFluxes.jl

A package for computing surface fluxes between the atmosphere, ocean and land models.
https://clima.github.io/SurfaceFluxes.jl/dev/
Apache License 2.0
16 stars 3 forks source link

O1.5.2b Testing / QA overview issue #83

Closed akshaysridhar closed 11 months ago

akshaysridhar commented 1 year ago

Purpose

Organise the development of the SurfaceFluxes.jl package (specifically with respect to quality assurance) - resolving all existing and issues into reasonable groupings that can be addressed over (at most) a sprint cycle.

Cost/Benefits/Risks

(1) Requires input from multiple users / package developers to ensure that the workflow is acceptable. (2) Benefits: More structured development for this package given upcoming changes related to canopy / land-surface interactions, and increased model complexity through roughness sub-layers. This should also help clarify where certain physical components are handled

People and Personnel

(@ the personnel required/requested to implement the software solution)

Inputs

(1) Documentation review: Assessment of equations that inform the algorithm / code implementation. (2) Increasing complexity in implemented equations - requires clear definition of tests before algorithm implementation. (2) Testing: Version upgrades require (in addition to unit tests), verification across multiple packages (TurbulenceConvection.jl and ClimaAtmos.jl)

Results and deliverables

Key Results: (1) Documented, CPU compatible toolbox for surface flux calculations for use within ClimaAtmos.jl. Clarity in default configurations for universal functions and solver options (e.g. solver tolerances and neutral boundary layer thresholds). (2) Continued testing, and edge-case verification for root-solver convergence in iterative solutions for Monin-Obukhov length. (e.g. template for this has been applied in Thermodynamics.jl for saturation adjustment calculations.) (3) Outcomes of surface flux calculations verified against reanalysis data. Assessment of coverage over combinations of input parameters.

Task Breakdown

Testing / Robustness / QA (There is some overlap in the scope of the issues listed here)

Proposed Delivery Date

Revision

9/11/2023: Moves GPU specific items into tracking SDI #113. 9/11/2023: Roughness sub-layer models have been moved to #84 following SURF projects. 10/23/2023: RSL tracking removed from this issue. 10/23/2023: Remove allocation test issue (Standalone issue is still open) cc @szy21

bischtob commented 1 year ago

@szy21 , can you review?

szy21 commented 1 year ago

Looks good to me! @akshaysridhar Could you open an issue on the roughness sublayer and link it to this SDI?

szy21 commented 11 months ago

SurfaceFluxes has been refactored and updated in ClimaAtmos (https://github.com/CliMA/ClimaAtmos.jl/pull/2261). We don't see the non-convergence issue anymore, and the surface flux diagnostics look good. I think we can close this issue and milestone. Thanks @akshaysridhar!