Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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: 1 addition & 8 deletions .github/workflows/pycompadre_sdist.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
- name: Setup python
uses: actions/setup-python@v2
with:
python-version: '3.9'
python-version: '3.10'
architecture: x64

- name: Install Python dependencies
Expand All @@ -36,17 +36,10 @@ jobs:
pip install numpy build

- name: Generate Python package (parallel)
if: ${{ matrix.pycompadre-type == 'pycompadre' }}
run: |
cd ${{github.workspace}}/pycompadre
echo "./install.sh -p"
./install.sh -p
- name: Generate Python package (serial)
if: ${{ matrix.pycompadre-type == 'pycompadre-serial' }}
run: |
cd ${{github.workspace}}/pycompadre
echo "./install.sh -p -s"
./install.sh -p -s

- uses: actions/upload-artifact@v4
with:
Expand Down
105 changes: 0 additions & 105 deletions .github/workflows/pycompadre_sdist_serial.yml

This file was deleted.

46 changes: 19 additions & 27 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -103,15 +103,17 @@ else() # Raw CMake Project
bob_option(Compadre_USE_MPI "Use MPI (not needed for Compadre toolkit)" OFF)
set(PYTHON_LIBRARY_PREFIX "..") # relative to examples folder
bob_input(PYTHON_EXECUTABLE "" PATH "Python executable location")
IF(NOT(PYTHON_EXECUTABLE))
MESSAGE(STATUS "Python executable location PYTHON_EXECUTABLE not given. Search made using 'which python'")
EXECUTE_PROCESS(
COMMAND which "python"
OUTPUT_VARIABLE PYTHON_EXECUTABLE
OUTPUT_STRIP_TRAILING_WHITESPACE )
ENDIF()
MESSAGE(STATUS "PYTHON_EXECUTABLE: ${PYTHON_EXECUTABLE}")
if (Compadre_USE_PYTHON)
IF(PYTHON_EXECUTABLE)
set(Python_EXECUTABLE "${PYTHON_EXECUTABLE}")
ENDIF()
find_package(Python REQUIRED COMPONENTS Interpreter Development)
if (${Python_VERSION} VERSION_LESS "3.10")
MESSAGE(FATAL_ERROR "
Compadre_USE_PYTHON:BOOL=ON but Python version <3.10 is not supported.
")
endif()
MESSAGE(STATUS "Python_EXECUTABLE: ${Python_EXECUTABLE}")
# change RPATH for a flat directory structure
# when installing pycompadre as Python package
if (PYTHON_CALLING_BUILD)
Expand Down Expand Up @@ -516,25 +518,15 @@ else() # Raw CMake Project
endif()

if(Compadre_USE_PYTHON)
set(CMAKE_POLICY_DEFAULT_CMP0127 OLD)
if (CMAKE_CXX_COMPILER_ID STREQUAL "XL")
MESSAGE(FATAL_ERROR "
IBM XL compiler not supported for pybind11.
Set Compadre_USE_PYTHON:BOOL=OFF or switch compilers.
")
endif()
if (PYTHON_CALLING_BUILD)
find_package(pybind11 REQUIRED)
else()
add_subdirectory(pycompadre/pybind11)
endif()
if (${PYTHON_VERSION} VERSION_LESS "3.10")
MESSAGE(FATAL_ERROR "
Compadre_USE_PYTHON:BOOL=ON but Python version <3.10 is not supported.
")
endif()
pybind11_add_module(_pycompadre pycompadre/pycompadre.cpp)
target_link_libraries(_pycompadre PUBLIC compadre)
execute_process(
COMMAND "${Python_EXECUTABLE}" -m nanobind --cmake_dir
OUTPUT_STRIP_TRAILING_WHITESPACE
OUTPUT_VARIABLE nanobind_DIR
)
find_package(nanobind CONFIG REQUIRED)
nanobind_add_module(_pycompadre NB_DOMAIN "pycompadre_domain" pycompadre/pycompadre.cpp)
target_link_libraries(_pycompadre PRIVATE compadre)

if (PYTHON_CALLING_BUILD)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pycompadre/__init__.py" "${CMAKE_CURRENT_BINARY_DIR}/__init__.py" COPYONLY)
else()
Expand Down
2 changes: 1 addition & 1 deletion cmake/Compadre_Version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.6.7
1.7.0
22 changes: 11 additions & 11 deletions examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -129,18 +129,18 @@ if (Compadre_EXAMPLES)
# Multisite manifold test for GMLS
#ADD_TEST(NAME GMLS_Manifold_MultiSite COMMAND ${CMAKE_CURRENT_BINARY_DIR}/GMLS_Manifold_MultiSite_Test "3" "4" "${KOKKOS_THREADS_ARG}=2")
#SET_TESTS_PROPERTIES(GMLS_Manifold_MultiSite PROPERTIES LABELS "IntegrationTest;integration;kokkos;multi;manifold" TIMEOUT 10)
if (PYTHON_EXECUTABLE)
if (Python_EXECUTABLE)
# Python driven test of a C++ executable (Python changes command line arguments given to executable)
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/GMLS_Manifold_Multiple_Evaluation_Sites.py.in" "${CMAKE_CURRENT_BINARY_DIR}/GMLS_Manifold_Multiple_Evaluation_Sites.py" @ONLY)
ADD_TEST(NAME GMLS_Manifold_MultiSite_Refinement_Study COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/GMLS_Manifold_Multiple_Evaluation_Sites.py" "--porder=3" "--grids=3")
ADD_TEST(NAME GMLS_Manifold_MultiSite_Refinement_Study COMMAND ${Python_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/GMLS_Manifold_Multiple_Evaluation_Sites.py" "--porder=3" "--grids=3")
SET_TESTS_PROPERTIES(GMLS_Manifold_MultiSite_Refinement_Study
PROPERTIES
LABELS "ConvergenceTest;convergence;manifold"
TIMEOUT 60
REQUIRED_FILES
$<TARGET_FILE:GMLS_Manifold_MultiSite_Test>
)
endif() # PYTHON_EXECUTABLE
endif() # Python_EXECUTABLE

# Divergence-free basis test for GMLS on non-manifold
ADD_TEST(NAME GMLS_DivergenceFree_Dim3_P3_QR COMMAND ${CMAKE_CURRENT_BINARY_DIR}/GMLS_Divergence_Test "--p" "3" "--nt" "200" "--d" "3" "${KOKKOS_THREADS_ARG}=2")
Expand All @@ -158,10 +158,10 @@ if (Compadre_EXAMPLES)
# ADD_TEST(NAME GMLS_Manifold_Dim3 COMMAND ${CMAKE_CURRENT_BINARY_DIR}/GMLS_Manifold_Test "4" "200" "3" "1" "0" "0" "${KOKKOS_THREADS_ARG}=2")
# SET_TESTS_PROPERTIES(GMLS_Manifold_Dim3 PROPERTIES LABELS "IntegrationTest;integration;kokkos" TIMEOUT 10)

if (PYTHON_EXECUTABLE)
if (Python_EXECUTABLE)
# Python driven test of a C++ executable (Python changes command line arguments given to executable) - calling QR solver
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/GMLS_Manifold.py.in" "${CMAKE_CURRENT_BINARY_DIR}/GMLS_Manifold.py" @ONLY)
ADD_TEST(NAME GMLS_Manifold_Refinement_Study_QR COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/GMLS_Manifold.py" "--porder=3" "--grids=4" "--solver-type=QR")
ADD_TEST(NAME GMLS_Manifold_Refinement_Study_QR COMMAND ${Python_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/GMLS_Manifold.py" "--porder=3" "--grids=4" "--solver-type=QR")
SET_TESTS_PROPERTIES(GMLS_Manifold_Refinement_Study_QR
PROPERTIES
LABELS "ConvergenceTest;convergence;manifold"
Expand All @@ -171,7 +171,7 @@ if (Compadre_EXAMPLES)
)

# Python driven test of a C++ executable (Python changes command line arguments given to executable) - calling LU solver
ADD_TEST(NAME GMLS_Manifold_Refinement_Study_LU COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/GMLS_Manifold.py" "--porder=3" "--grids=4" "--solver-type=LU")
ADD_TEST(NAME GMLS_Manifold_Refinement_Study_LU COMMAND ${Python_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/GMLS_Manifold.py" "--porder=3" "--grids=4" "--solver-type=LU")
SET_TESTS_PROPERTIES(GMLS_Manifold_Refinement_Study_LU
PROPERTIES
LABELS "ConvergenceTest;convergence;manifold"
Expand All @@ -182,15 +182,15 @@ if (Compadre_EXAMPLES)

# Python driven test of a C++ executable (Python changes command line arguments given to executable)
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/GMLS_Staggered_Manifold.py.in" "${CMAKE_CURRENT_BINARY_DIR}/GMLS_Staggered_Manifold.py" @ONLY)
ADD_TEST(NAME GMLS_Staggered_Manifold_Refinement_Study COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/GMLS_Staggered_Manifold.py" "--porder=3" "--grids=4")
ADD_TEST(NAME GMLS_Staggered_Manifold_Refinement_Study COMMAND ${Python_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/GMLS_Staggered_Manifold.py" "--porder=3" "--grids=4")
SET_TESTS_PROPERTIES(GMLS_Staggered_Manifold_Refinement_Study
PROPERTIES
LABELS "ConvergenceTest;convergence;manifold;staggered"
TIMEOUT 20
REQUIRED_FILES
$<TARGET_FILE:GMLS_Staggered_Manifold_Test>
)
endif() # PYTHON_EXECUTABLE
endif() # Python_EXECUTABLE

# Utility test - Filter By ID
ADD_TEST(NAME Test_Utilities COMMAND ${CMAKE_CURRENT_BINARY_DIR}/TestUtility "200" "${KOKKOS_THREADS_ARG}=2")
Expand Down Expand Up @@ -229,21 +229,21 @@ if (Compadre_EXAMPLES)
#SET_TESTS_PROPERTIES(NeighborKNNSearch3DTest_3 PROPERTIES LABELS "kdtree;nanoflann;" TIMEOUT 5)

# WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH} )
if (Compadre_USE_PYTHON AND PYTHON_EXECUTABLE)
if (Compadre_USE_PYTHON AND Python_EXECUTABLE)
FILE(COPY "${CMAKE_CURRENT_SOURCE_DIR}/../pycompadre/examples/test_pycompadre.py" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/../pycompadre/examples")
FILE(COPY "${CMAKE_CURRENT_SOURCE_DIR}/../pycompadre/examples/test_pycompadre_manifold.py" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/../pycompadre/examples")
FILE(COPY "${CMAKE_CURRENT_SOURCE_DIR}/../pycompadre/examples/test_tangent_planes_manifold.py" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/../pycompadre/examples")
FILE(COPY "${CMAKE_CURRENT_SOURCE_DIR}/../pycompadre/examples/kokkos_test_case.py" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/../pycompadre/examples")
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/Python_3D_Convergence.py.in" "${CMAKE_CURRENT_BINARY_DIR}/Python_3D_Convergence.py" @ONLY)
ADD_TEST(NAME GMLS_Python_Convergence_Test_3d_Point_Reconstruction COMMAND "${PYTHON_EXECUTABLE}" "${CMAKE_CURRENT_BINARY_DIR}/Python_3D_Convergence.py" "${KOKKOS_THREADS_ARG}=4")
ADD_TEST(NAME GMLS_Python_Convergence_Test_3d_Point_Reconstruction COMMAND "${Python_EXECUTABLE}" "${CMAKE_CURRENT_BINARY_DIR}/Python_3D_Convergence.py" "${KOKKOS_THREADS_ARG}=4")
SET_TESTS_PROPERTIES(GMLS_Python_Convergence_Test_3d_Point_Reconstruction PROPERTIES LABELS "IntegrationTest;integration;python;kokkos" TIMEOUT 10)

if (Compadre_USE_MATLAB)
ADD_TEST(NAME GMLS_Matlab_Python_Interface_1d_Point_Reconstruction COMMAND "matlab" "-nodisplay" "-nojvm" "-nosplash" "-nodesktop" "-r \"try, run('${SWIG_PREFIX}/Matlab_1D_Using_Python_Interface.m'), catch, exit(1), end, exit(0);\"")
SET_TESTS_PROPERTIES(GMLS_Matlab_Python_Interface_1d_Point_Reconstruction PROPERTIES LABELS "IntegrationTest;integration;python;kokkos;matlab" TIMEOUT 10)
endif()

ADD_TEST(NAME PyCOMPADRE_Tests COMMAND "${PYTHON_EXECUTABLE}" "-m" "unittest" "discover" "-s" "${PYTHON_LIBRARY_PREFIX}/pycompadre/examples")
ADD_TEST(NAME PyCOMPADRE_Tests COMMAND "${Python_EXECUTABLE}" "-m" "unittest" "discover" "-s" "${PYTHON_LIBRARY_PREFIX}/pycompadre/examples")
SET_TESTS_PROPERTIES(PyCOMPADRE_Tests PROPERTIES ENVIRONMENT PYTHONPATH=${PYTHON_LIBRARY_PREFIX})
SET_TESTS_PROPERTIES(PyCOMPADRE_Tests PROPERTIES LABELS "pycompadre" TIMEOUT 30)

Expand Down
File renamed without changes.
Loading