Noaa build#984
Draft
K20shores wants to merge 14 commits into
Draft
Conversation
Codecov Report❌ Patch coverage is
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. 🚀 New features to boost your workflow:
|
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>
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>
- 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Addressing compile errors for noaa