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) {