Skip to content

Noaa build#984

Draft
K20shores wants to merge 14 commits into
mainfrom
noaa_build
Draft

Noaa build#984
K20shores wants to merge 14 commits into
mainfrom
noaa_build

Conversation

@K20shores
Copy link
Copy Markdown
Collaborator

Addressing compile errors for noaa

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented May 13, 2026

Codecov Report

❌ Patch coverage is 95.45455% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 94.48%. Comparing base (fab5fff) to head (3b7ab03).

Files with missing lines Patch % Lines
...cess/transfer_coefficient/transfer_coefficient.hpp 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #984      +/-   ##
==========================================
- Coverage   94.49%   94.48%   -0.01%     
==========================================
  Files          57       57              
  Lines        4485     4478       -7     
==========================================
- Hits         4238     4231       -7     
  Misses        247      247              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

K20shores and others added 7 commits May 13, 2026 11:01
Resolves every warning surfaced by MICM_COMPILE_WARNING_AS_ERROR=ON
across production headers and test files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Reorder member initializers to match declaration order so the
initializer list doesn't mislead readers (and avoids -Wreorder).
Members are always initialized in declaration order regardless, but
the mismatch triggers -Werror=reorder when Solver is instantiated
with concrete policy types.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Propagate -Werror (and /WX on MSVC) via target_compile_options INTERFACE
  so all test targets inherit warnings-as-errors from the micm target
- Fix unused parameter 'c' in test_system.cpp
- Re-enable commented-out EXPECT_EQ/EXPECT_NEAR assertions in regression
  dforce_dy test
- Add missing braces around if-body in test_process.cpp
- Remove stale TODO comment block from chapman_ode_solver.hpp

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The hard-coded Chapman solver stores dF/dy in a 23-element CSC array
while the modern solver stores -dF/dy in a 27-element CSR sparse matrix.
The 4 extra entries arise because MICM includes structural non-zeros for
species with net-zero stoichiometry (M in r4, N2 in r1, O2 in r2), which
are always mathematically zero. Additionally, the modern solver always
includes all diagonal entries via BuildJacobian.

The fix maps each of the 23 hard-coded CSC positions to (row, col) pairs
and looks them up in the modern Jacobian via the sparse matrix proxy API,
accounting for the sign difference (SubtractJacobianTerms stores -J).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
K20shores and others added 2 commits May 13, 2026 15:35
Four issues fixed:

1. MSVC/clang-cl: [[gnu::always_inline]] triggers C5030. Switch to
   CXX_COMPILER_FRONTEND_VARIANT:MSVC and add /wd5030 /wd4456. Also
   add GCC 12 -Wno-restrict workaround for false positive in
   bits/char_traits.h (fixed in GCC 13).

2. clang-cl: _USE_MATH_DEFINES in rate_constant_functions.hpp triggers
   -Wreserved-macro-identifier. Removed from header; added as CMake
   compile definition for MSVC targets instead.

3. OpenMP/GCC: sign-compare between int loop variables and size_t in
   test_openmp.cpp. Changed loop variables to std::size_t.

4. Coverage build: GCC 16 rejects Fortran-only flags in C++ compilation.
   Split COVERAGE_COMPILER_FLAGS into COVERAGE_CXX_FLAGS (C++/C) and
   kept the Fortran-only flags only in CMAKE_Fortran_FLAGS_COVERAGE.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
-Wall -Werror on the micm interface is now guarded with
$<COMPILE_LANGUAGE:CXX> so nvcc does not receive GCC/Clang flags.
micm_cuda gets its own -Werror all-warnings for CUDA files when
MICM_COMPILE_WARNING_AS_ERROR is enabled.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
K20shores and others added 3 commits May 13, 2026 16:17
- CodeCoverage.cmake: use COVERAGE_CXX_FLAGS (not COVERAGE_COMPILER_FLAGS)
  in append_coverage_compiler_flags() to avoid Fortran-only flags in C/CXX
- CMakeLists.txt: suppress MSVC C4244/4267/4127/4101/4459/4100 narrowing
  and template-instantiation warnings that fire at /W4 /WX
- Remove #define _USE_MATH_DEFINES from source/test files; CMake compile
  definition handles MSVC, #ifndef M_PI fallback covers other cases
- henrys_law_constant.hpp: add using TransferCoefficient::Calculate to
  fully override both Calculate overloads (fixes nvc++ partial_override)
- lu_decomposition_mozart: remove uncallable 3-template constructor
  (LMatrixPolicy/UMatrixPolicy not deducible from ctor args; Create() is
  the correct API) to fix nvc++ not_used_in_template_function_params

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add = 0 default initializers to all std::size_t members in
LuDecomposeMozartInPlaceParam, LinearSolverInPlaceParam, CudaMatrixParam,
CudaErrorParam, and CudaJacobianDiagonalElementsParam. The pointer
members already had = nullptr defaults; the integer members did not,
causing GCC 13 to warn about potential uninitialized use during move.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- sparse_matrix_vector_ordering_compressed_sparse_column.hpp: make
  ColumnIdsVector/ColumnStartVector static to fix GCC maybe-uninitialized
  false-positive from calling non-static const member in initializer list
- chapman_ode_solver.hpp: move [[nodiscard]] from SolverResult struct to
  Solve() function; nvc++ fires nodiscard_return_type on struct-level
  [[nodiscard]] even when the value is assigned
- test_cuda_dense_matrix.cpp: remove unused h_data variable
- test_phase.cpp: use (const Conditions&) in lambdas to fix -Wunused-parameter
- test_rate_constants_{user,no_user}_defined_by_hand.cpp: include branch_
  in designated initializer to fix -Wmissing-designated-field-initializers

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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