From bd8b03ed23561786e1221251b9558bb33634e041 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Wed, 8 Jul 2026 13:02:38 +0200 Subject: [PATCH 1/3] Modernise, used Claude Sonnet 4.6 --- src/CMakeLists.txt | 64 +++++++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 27 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2f3f360..b300725 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,53 +1,63 @@ cmake_minimum_required(VERSION 3.16) -set(PROJECT_NAME dolfinx-scaling-test) -project(${PROJECT_NAME}) +project(dolfinx-scaling-test) include(GNUInstallDirs) -set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) -# Use C++20 -set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_CXX_EXTENSIONS OFF) - -# Get DOLFIN configuration data (DOLFINConfig.cmake must be in -# DOLFIN_CMAKE_CONFIG_PATH) find_package(DOLFINX REQUIRED) - -set(CMAKE_CXX_FLAGS "-O3 -ffast-math ${CMAKE_CXX_FLAGS} -g -Wall") -set(CMAKE_C_FLAGS "-O3 -ffast-math ${CMAKE_C_FLAGS} -g -Wall") +find_package(Threads REQUIRED) # Compile UFL files add_custom_command( OUTPUT Poisson.c COMMAND ffcx ${CMAKE_CURRENT_SOURCE_DIR}/Poisson.py - DEPENDS Poisson.py + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Poisson.py + VERBATIM ) add_custom_command( OUTPUT Elasticity.c COMMAND ffcx ${CMAKE_CURRENT_SOURCE_DIR}/Elasticity.py - DEPENDS Elasticity.py + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Elasticity.py + VERBATIM ) -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -# Executable -add_executable(${PROJECT_NAME} main.cpp mesh.cpp elasticity_problem.cpp cgpoisson_problem.cpp poisson_problem.cpp mem.cpp -${CMAKE_CURRENT_BINARY_DIR}/Elasticity.c -${CMAKE_CURRENT_BINARY_DIR}/Poisson.c) - # Find Boost program_options if(DEFINED ENV{BOOST_ROOT} OR DEFINED BOOST_ROOT) - set(Boost_NO_SYSTEM_PATHS on) + set(Boost_NO_SYSTEM_PATHS ON) endif() -# set(Boost_USE_MULTITHREADED $ENV{BOOST_USE_MULTITHREADED}) set(Boost_VERBOSE TRUE) find_package(Boost 1.70 REQUIRED program_options) -# Target libraries -target_link_libraries(${PROJECT_NAME} dolfinx Boost::program_options pthread) +add_executable(${PROJECT_NAME} + main.cpp + mesh.cpp + elasticity_problem.cpp + cgpoisson_problem.cpp + poisson_problem.cpp + mem.cpp + ${CMAKE_CURRENT_BINARY_DIR}/Elasticity.c + ${CMAKE_CURRENT_BINARY_DIR}/Poisson.c +) + +set_target_properties(${PROJECT_NAME} PROPERTIES + CXX_STANDARD 20 + CXX_STANDARD_REQUIRED ON + CXX_EXTENSIONS OFF + INSTALL_RPATH_USE_LINK_PATH TRUE +) + +set(COMPILE_FLAGS -O3 -ffast-math -g -Wall) +target_compile_options(${PROJECT_NAME} PRIVATE ${COMPILE_FLAGS}) + +target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) + +target_link_libraries(${PROJECT_NAME} + dolfinx::dolfinx + Boost::program_options + Threads::Threads +) + +message(STATUS "Compile flags: ${COMPILE_FLAGS}") -message(STATUS ${CMAKE_CXX_FLAGS}) install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) From daf0b08fd195d9a793b52214017880e1072523dc Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Wed, 8 Jul 2026 13:03:30 +0200 Subject: [PATCH 2/3] Run gersemi --- .gersemirc | 1 + src/CMakeLists.txt | 18 +++++++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 .gersemirc diff --git a/.gersemirc b/.gersemirc new file mode 100644 index 0000000..bfa2d92 --- /dev/null +++ b/.gersemirc @@ -0,0 +1 @@ +indent: 2 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b300725..936434d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -29,7 +29,8 @@ endif() set(Boost_VERBOSE TRUE) find_package(Boost 1.70 REQUIRED program_options) -add_executable(${PROJECT_NAME} +add_executable( + ${PROJECT_NAME} main.cpp mesh.cpp elasticity_problem.cpp @@ -40,11 +41,13 @@ add_executable(${PROJECT_NAME} ${CMAKE_CURRENT_BINARY_DIR}/Poisson.c ) -set_target_properties(${PROJECT_NAME} PROPERTIES - CXX_STANDARD 20 - CXX_STANDARD_REQUIRED ON - CXX_EXTENSIONS OFF - INSTALL_RPATH_USE_LINK_PATH TRUE +set_target_properties( + ${PROJECT_NAME} + PROPERTIES + CXX_STANDARD 20 + CXX_STANDARD_REQUIRED ON + CXX_EXTENSIONS OFF + INSTALL_RPATH_USE_LINK_PATH TRUE ) set(COMPILE_FLAGS -O3 -ffast-math -g -Wall) @@ -52,7 +55,8 @@ target_compile_options(${PROJECT_NAME} PRIVATE ${COMPILE_FLAGS}) target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) -target_link_libraries(${PROJECT_NAME} +target_link_libraries( + ${PROJECT_NAME} dolfinx::dolfinx Boost::program_options Threads::Threads From b9209031a8de7fbc60045f29180aa85bdf310121 Mon Sep 17 00:00:00 2001 From: "Jack S. Hale" Date: Wed, 8 Jul 2026 13:14:27 +0200 Subject: [PATCH 3/3] Use cxx_std20 --- src/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 936434d..629b4ef 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -41,11 +41,11 @@ add_executable( ${CMAKE_CURRENT_BINARY_DIR}/Poisson.c ) +target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20) + set_target_properties( ${PROJECT_NAME} PROPERTIES - CXX_STANDARD 20 - CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS OFF INSTALL_RPATH_USE_LINK_PATH TRUE )