Add native Windows CI build and remove unused allocations in CGNS surface reader by mohanakatari119-bit · Pull Request #2739 · su2code/SU2

Proposed Changes

Adds a native Windows GitHub Actions workflow that builds SU2 on a windows-latest runner using MSYS2/MinGW64, replacing the cross-compiled Windows binaries that were previously built on Linux. Also removes four unused vector allocations (connElemCGNS, elemTypes, nPoinPerElem, elemGlobalID) in CCGNSMeshReaderFVM::ReadCGNSSurfaceSection that were allocated based on a stale nElems[val_section] value (always zero at that point in the call sequence) and were never read, left over from a prior refactoring.

Related Work

Resolves #2737 (SU2_DEF Windows binaries segfaulting when converting CGNS meshes). The root cause is that the existing release workflow cross-compiles Windows binaries on Linux, which prevents H5detect from running natively during the HDF5 build. This means type-detection falls back to a generic H5T_init.cross file that may not match the actual Windows runtime, causing memory corruption and segfaults in the CGNS reader. Building natively on Windows eliminates this mismatch. Related to issue #1468.

PR Checklist

  • I am submitting my contribution to the develop branch.
  • My contribution generates no new compiler warnings (try with --warnlevel=3 when using meson).
  • My contribution is commented and consistent with SU2 style (https://su2code.github.io/docs_v7/Style-Guide/).
  • I used the pre-commit hook to prevent dirty commits and used pre-commit run --all to format old commits.
  • I have added a test case that demonstrates my contribution, if necessary.
  • I have updated appropriate documentation (Tutorials, Docs Page, config_template.cpp), if necessary.