Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
be580e2
Integrate convergent staggered-grid cavity solver
Kandil2001 Jul 23, 2026
197fafe
Build and test the production cavity solver
Kandil2001 Jul 23, 2026
9302794
Run the converged canonical case by default
Kandil2001 Jul 23, 2026
48258e0
Add the verified grid-study runner
Kandil2001 Jul 23, 2026
7f4cd9f
Add a converged Reynolds 1000 runner
Kandil2001 Jul 23, 2026
80609d1
Update the quick convergence study
Kandil2001 Jul 23, 2026
77c193a
Update the medium convergence study
Kandil2001 Jul 23, 2026
61b5462
Use strict convergence in the full study
Kandil2001 Jul 23, 2026
ccd2ab9
Document the verified Phase 2 solver
Kandil2001 Jul 23, 2026
a00c922
Update the numerical methodology for the staggered solver
Kandil2001 Jul 23, 2026
f97e441
Complete the Phase 2 verification record
Kandil2001 Jul 23, 2026
78563ab
Add a standalone canonical regression runner
Kandil2001 Jul 23, 2026
919d122
Enforce the canonical numerical regression in CI
Kandil2001 Jul 23, 2026
14592fe
Record the Phase 2 regression results
Kandil2001 Jul 23, 2026
c3d45af
Make regression runner portable across checkouts
Kandil2001 Jul 23, 2026
02eb5f1
Make single-case runner portable
Kandil2001 Jul 23, 2026
b1af652
Make quick-study runner portable
Kandil2001 Jul 23, 2026
202fd5a
Make medium-study runner portable
Kandil2001 Jul 23, 2026
f395ab4
Make full-study runner portable
Kandil2001 Jul 23, 2026
cf8bf4e
Make grid-study runner portable
Kandil2001 Jul 23, 2026
aa415ec
Make Reynolds-1000 runner portable
Kandil2001 Jul 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/workflows/verification.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,12 @@ jobs:

- name: Test
run: ctest --test-dir build/verification --output-on-failure

canonical-regression:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Run canonical converged case
run: bash scripts/run_canonical_regression.sh
44 changes: 29 additions & 15 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,41 +1,55 @@
cmake_minimum_required(VERSION 3.16)
project(LidCavityCPPVerification LANGUAGES CXX)
project(LidCavityCPP LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

option(LIDCAVITY_ENABLE_SANITIZERS "Enable AddressSanitizer and UndefinedBehaviorSanitizer" OFF)

function(lidcavity_apply_warnings target)
target_compile_options(${target} PRIVATE
-Wall -Wextra -Wpedantic -Wconversion -Wshadow
)
if(LIDCAVITY_ENABLE_SANITIZERS AND CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
target_compile_options(${target} PRIVATE -fsanitize=address,undefined -fno-omit-frame-pointer)
target_link_options(${target} PRIVATE -fsanitize=address,undefined)
endif()
endfunction()

add_executable(lid_cavity src/lid_cavity.cpp)
lidcavity_apply_warnings(lid_cavity)

add_library(lidcavity_verification
src/verification/operators.cpp
src/verification/poisson.cpp
src/verification/convergence.cpp
)

target_include_directories(lidcavity_verification PUBLIC include)
target_compile_options(lidcavity_verification PRIVATE
-Wall -Wextra -Wpedantic -Wconversion -Wshadow
)

if(LIDCAVITY_ENABLE_SANITIZERS AND CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
target_compile_options(lidcavity_verification PRIVATE -fsanitize=address,undefined -fno-omit-frame-pointer)
target_link_options(lidcavity_verification PRIVATE -fsanitize=address,undefined)
endif()
lidcavity_apply_warnings(lidcavity_verification)

enable_testing()

function(add_lidcavity_test target source)
add_executable(${target} ${source})
target_link_libraries(${target} PRIVATE lidcavity_verification)
target_compile_options(${target} PRIVATE -Wall -Wextra -Wpedantic -Wconversion -Wshadow)
if(LIDCAVITY_ENABLE_SANITIZERS AND CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
target_compile_options(${target} PRIVATE -fsanitize=address,undefined -fno-omit-frame-pointer)
target_link_options(${target} PRIVATE -fsanitize=address,undefined)
endif()
lidcavity_apply_warnings(${target})
add_test(NAME ${target} COMMAND ${target})
endfunction()

add_lidcavity_test(test_operators tests/test_operators.cpp)
add_lidcavity_test(test_poisson tests/test_poisson.cpp)
add_lidcavity_test(test_convergence tests/test_convergence.cpp)

add_test(
NAME canonical_cavity_regression
COMMAND lid_cavity
--single
--N 32
--Re 100
--scheme upwind
--pressure RBSOR
--strict
--no-fields
)
set_tests_properties(canonical_cavity_regression PROPERTIES TIMEOUT 120)
Loading
Loading