From 85e93955bcc117050b7333ae742abc354713c940 Mon Sep 17 00:00:00 2001 From: Max Luebke Date: Wed, 29 Jan 2025 15:53:32 +0100 Subject: [PATCH] Add option to toggle tug numerical solver approach --- src/CMakeLists.txt | 9 +++++++++ src/Transport/DiffusionModule.cpp | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4b07f355a..f5947088e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -18,6 +18,15 @@ target_sources(POETLib Chemistry/SurrogateModels/ProximityHashTable.cpp ) +set(POET_TUG_APPROACH "Implicit" CACHE STRING "tug numerical approach to use") +set_property(CACHE POET_TUG_APPROACH PROPERTY STRINGS "Implicit" "Explicit") + +if (POET_TUG_APPROACH STREQUAL "Implicit") + target_compile_definitions(POETLib PRIVATE POET_TUG_BTCS) +elseif (POET_TUG_APPROACH STREQUAL "Explicit") + target_compile_definitions(POETLib PRIVATE POET_TUG_FTCS) +endif() + target_include_directories(POETLib PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") target_link_libraries( POETLib diff --git a/src/Transport/DiffusionModule.cpp b/src/Transport/DiffusionModule.cpp index 754d135c9..d7f1df5f3 100644 --- a/src/Transport/DiffusionModule.cpp +++ b/src/Transport/DiffusionModule.cpp @@ -81,7 +81,14 @@ void DiffusionModule::simulate(double requested_dt) { grid.setDomain(param_list.s_rows, param_list.s_cols); +#if defined(POET_TUG_BTCS) tug::Simulation sim(grid, boundary); +#elif defined(POET_TUG_FTCS) + tug::Simulation sim(grid, boundary); +#else +#error "No valid approach defined" +#endif + sim.setIterations(1); for (const auto &sol_name : this->param_list.transport_names) {