diff --git a/CMake/freud-macros.cmake b/CMake/freud-macros.cmake index 148591a69..bb16e9a0f 100644 --- a/CMake/freud-macros.cmake +++ b/CMake/freud-macros.cmake @@ -14,11 +14,3 @@ macro(find_package_config_first package) endif() endif() endmacro() - -# set the rpath for installing python extension modules -function(target_set_install_rpath _target) - if(_using_conda) - set_target_properties(${_target} PROPERTIES INSTALL_RPATH_USE_LINK_PATH - True) - endif() -endfunction() diff --git a/CMakeLists.txt b/CMakeLists.txt index 54319088c..2dc50622b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,13 +47,6 @@ if(nanobind_FOUND) "[${nanobind_DIR},${nanobind_VERSION}]") endif() -# shared nanobind linking seems broken on windows for unknown reasons -if(WIN32) - set(freud_nanobind_linking "NB_STATIC") -else() - set(freud_nanobind_linking "NB_STATIC") -endif() - # Fail fast if users have not cloned submodules. if(NOT WIN32) string(ASCII 27 Esc) @@ -81,9 +74,27 @@ if(WIN32) add_compile_options(/DNOMINMAX) endif() +# Detect when building against a conda environment set the _using_conda variable +# for use both in this file and in the parent +get_filename_component(_python_bin_dir ${Python_EXECUTABLE} DIRECTORY) +if(EXISTS "${_python_bin_dir}/../conda-meta") + message(STATUS "Detected conda environment, setting INSTALL_RPATH_USE_LINK_PATH") + set(_using_conda On) +else() + set(_using_conda Off) +endif() + include_directories( - ${PROJECT_SOURCE_DIR}/cpp/util ${PROJECT_SOURCE_DIR}/cpp/locality - ${PROJECT_SOURCE_DIR}/cpp/box) + ${PROJECT_SOURCE_DIR}/freud/box + ${PROJECT_SOURCE_DIR}/freud/cluster + ${PROJECT_SOURCE_DIR}/freud/density + ${PROJECT_SOURCE_DIR}/freud/diffraction + ${PROJECT_SOURCE_DIR}/freud/environment + ${PROJECT_SOURCE_DIR}/freud/locality + ${PROJECT_SOURCE_DIR}/freud/order + ${PROJECT_SOURCE_DIR}/freud/parallel + ${PROJECT_SOURCE_DIR}/freud/pmft + ${PROJECT_SOURCE_DIR}/freud/util + ) -add_subdirectory(cpp) add_subdirectory(freud) diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt deleted file mode 100644 index 4cca2d59e..000000000 --- a/cpp/CMakeLists.txt +++ /dev/null @@ -1,52 +0,0 @@ -if(WIN32) - # Use add_compile_definitions when dropping support for CMake < 3.12 Force - # Windows to define M_PI in - add_compile_options(/D_USE_MATH_DEFINES) - # Prevent Windows from defining min/max as macros - add_compile_options(/DNOMINMAX) -endif() - -# Detect when building against a conda environment set the _using_conda variable -# for use both in this file and in the parent -get_filename_component(_python_bin_dir ${Python_EXECUTABLE} DIRECTORY) -if(EXISTS "${_python_bin_dir}/../conda-meta") - message("-- Detected conda environment, setting INSTALL_RPATH_USE_LINK_PATH") - set(_using_conda On) - set(_using_conda - On - PARENT_SCOPE) -else() - set(_using_conda Off) - set(_using_conda - Off - PARENT_SCOPE) -endif() - -include(box/box-files.cmake) -include(locality/locality-files.cmake) -include(parallel/parallel-files.cmake) -include(pmft/pmft-files.cmake) -include(util/util-files.cmake) - -# Use a static library for the main code. A Dynamic library would be more -# disk space efficient, but I was unable to resolve a RPATH issue where -# any use of `INSTALL_RPATH` would result in "terminated by signal SIGKILL" -# the moment Python attempts to load the library. -add_library(freud STATIC ${box_sources} ${locality_sources} - ${parallel_sources} ${pmft_sources} ${util_sources}) -set_target_properties(freud PROPERTIES POSITION_INDEPENDENT_CODE ON) -target_link_libraries(freud PUBLIC TBB::tbb) - -target_include_directories(freud SYSTEM PUBLIC ${PROJECT_SOURCE_DIR}/extern/) - -# now build the python extension modules -add_subdirectory(box) -add_subdirectory(locality) -add_subdirectory(parallel) -add_subdirectory(pmft) -add_subdirectory(util) - -# commented out for now, uncomment them as the conversion to pybind11 progresses -# add_subdirectory(cluster) add_subdirectory(density) -# add_subdirectory(diffraction) add_subdirectory(environment) -# add_subdirectory(order) add_subdirectory(pmft) diff --git a/cpp/box/CMakeLists.txt b/cpp/box/CMakeLists.txt deleted file mode 100644 index 67f3fd8c6..000000000 --- a/cpp/box/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -# create the target and add the needed properties -nanobind_add_module(_box module-box.cc export_Box.cc) -target_link_libraries(_box PUBLIC TBB::tbb) - -target_set_install_rpath(_box) - -# install -install(TARGETS _box DESTINATION freud) diff --git a/cpp/box/box-files.cmake b/cpp/box/box-files.cmake deleted file mode 100644 index 4dd15630a..000000000 --- a/cpp/box/box-files.cmake +++ /dev/null @@ -1,2 +0,0 @@ -set(box_headers box/Box.h) -set(box_sources "") diff --git a/cpp/cluster/CMakeLists.txt b/cpp/cluster/CMakeLists.txt deleted file mode 100644 index 72fd07691..000000000 --- a/cpp/cluster/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -add_library(_cluster OBJECT Cluster.h Cluster.cc ClusterProperties.h - ClusterProperties.cc) - -target_link_libraries(_cluster PUBLIC TBB::tbb) - -# We treat the extern folder as a SYSTEM library to avoid getting any diagnostic -# information from it. In particular, this avoids clang-tidy throwing errors due -# to any issues in external code. -target_include_directories(_cluster SYSTEM PUBLIC ${PROJECT_SOURCE_DIR}/extern/) diff --git a/cpp/density/CMakeLists.txt b/cpp/density/CMakeLists.txt deleted file mode 100644 index a2a314e45..000000000 --- a/cpp/density/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -add_library( - _density OBJECT - CorrelationFunction.h - CorrelationFunction.cc - GaussianDensity.h - GaussianDensity.cc - LocalDensity.h - LocalDensity.cc - RDF.h - RDF.cc - SphereVoxelization.h - SphereVoxelization.cc) - -target_link_libraries(_density PUBLIC TBB::tbb) diff --git a/cpp/diffraction/CMakeLists.txt b/cpp/diffraction/CMakeLists.txt deleted file mode 100644 index 03e43b439..000000000 --- a/cpp/diffraction/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -add_library( - _diffraction OBJECT - StaticStructureFactor.h StaticStructureFactor.cc StaticStructureFactorDebye.h - StaticStructureFactorDebye.cc StaticStructureFactorDirect.h - StaticStructureFactorDirect.cc) - -target_link_libraries(_diffraction PUBLIC TBB::tbb) - -target_include_directories(_diffraction PUBLIC ${PROJECT_SOURCE_DIR}/extern/) diff --git a/cpp/environment/CMakeLists.txt b/cpp/environment/CMakeLists.txt deleted file mode 100644 index 0a6ecf96a..000000000 --- a/cpp/environment/CMakeLists.txt +++ /dev/null @@ -1,21 +0,0 @@ -add_library( - _environment OBJECT - AngularSeparation.h - AngularSeparation.cc - BondOrder.h - BondOrder.cc - LocalBondProjection.h - LocalBondProjection.cc - LocalDescriptors.h - LocalDescriptors.cc - MatchEnv.h - MatchEnv.cc - Registration.h) - -target_link_libraries(_environment PUBLIC TBB::tbb) - -# We treat the extern folder as a SYSTEM library to avoid getting any diagnostic -# information from it. In particular, this avoids clang-tidy throwing errors due -# to any issues in external code. -target_include_directories(_environment SYSTEM - PUBLIC ${PROJECT_SOURCE_DIR}/extern/) diff --git a/cpp/locality/CMakeLists.txt b/cpp/locality/CMakeLists.txt deleted file mode 100644 index 072f84427..000000000 --- a/cpp/locality/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -set(locality_extension_sources - export_BondHistogramCompute.cc export_NeighborQuery.cc - export_NeighborList.cc export_Filter.cc export_PeriodicBuffer.cc - export_Voronoi.cc) - -# create the target and add the needed properties -nanobind_add_module(_locality module-locality.cc - ${locality_extension_sources}) -target_link_libraries(_locality PUBLIC freud TBB::tbb) - -target_set_install_rpath(_locality) - -# install -install(TARGETS _locality DESTINATION freud) diff --git a/cpp/locality/locality-files.cmake b/cpp/locality/locality-files.cmake deleted file mode 100644 index d0ab23f40..000000000 --- a/cpp/locality/locality-files.cmake +++ /dev/null @@ -1,39 +0,0 @@ -set(VOROPP_SOURCE_DIR "${PROJECT_SOURCE_DIR}/extern/voro++/src") - -set(locality_sources - locality/AABBQuery.cc - locality/FilterRAD.cc - locality/FilterSANN.cc - locality/LinkCell.cc - locality/NeighborComputeFunctional.cc - locality/NeighborList.cc - locality/PeriodicBuffer.cc - locality/Voronoi.cc - # Compile voro++ object in directly. - ${VOROPP_SOURCE_DIR}/cell.cc - ${VOROPP_SOURCE_DIR}/common.cc - ${VOROPP_SOURCE_DIR}/container.cc - ${VOROPP_SOURCE_DIR}/unitcell.cc - ${VOROPP_SOURCE_DIR}/v_compute.cc - ${VOROPP_SOURCE_DIR}/c_loops.cc - ${VOROPP_SOURCE_DIR}/v_base.cc - ${VOROPP_SOURCE_DIR}/wall.cc - ${VOROPP_SOURCE_DIR}/pre_container.cc - ${VOROPP_SOURCE_DIR}/container_prd.cc) - -set(locality_headers - locality/AABB.h - locality/AABBQuery.h - locality/AABBTree.h - locality/BondHistogramCompute.h - locality/Filter.h - locality/FilterRAD.h - locality/FilterSANN.h - locality/LinkCell.h - locality/NeighborBond.h - locality/NeighborList.h - localty/NeighborPerPointIterator.h - locality/NeighborQuery.h - locality/PeriodicBuffer.h - locality/RawPoints.h - locality/Voronoi.h) diff --git a/cpp/order/CMakeLists.txt b/cpp/order/CMakeLists.txt deleted file mode 100644 index 540882291..000000000 --- a/cpp/order/CMakeLists.txt +++ /dev/null @@ -1,27 +0,0 @@ -add_library( - _order OBJECT - ContinuousCoordination.h - ContinuousCoordination.cc - Cubatic.cc - Cubatic.h - HexaticTranslational.cc - HexaticTranslational.h - Nematic.cc - Nematic.h - RotationalAutocorrelation.cc - RotationalAutocorrelation.h - SolidLiquid.cc - SolidLiquid.h - Steinhardt.cc - Steinhardt.h - Wigner3j.cc - Wigner3j.h) - -target_link_libraries(_order PUBLIC TBB::tbb) - -# We treat the extern folder as a SYSTEM library to avoid getting any diagnostic -# information from it. In particular, this avoids clang-tidy throwing errors due -# to any issues in external code. -target_include_directories(_order SYSTEM PUBLIC ${PROJECT_SOURCE_DIR}/extern/) - -target_include_directories(_order PUBLIC ${PROJECT_SOURCE_DIR}/cpp/cluster) diff --git a/cpp/parallel/CMakeLists.txt b/cpp/parallel/CMakeLists.txt deleted file mode 100644 index bb84c1b94..000000000 --- a/cpp/parallel/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -nanobind_add_module(_parallel module-parallel.cc) -target_link_libraries(_parallel PUBLIC freud TBB::tbb) - -target_set_install_rpath(_parallel) - -# install -install(TARGETS _parallel DESTINATION freud) diff --git a/cpp/parallel/parallel-files.cmake b/cpp/parallel/parallel-files.cmake deleted file mode 100644 index 48386e611..000000000 --- a/cpp/parallel/parallel-files.cmake +++ /dev/null @@ -1,2 +0,0 @@ -set(parallel_sources parallel/tbb_config.cc) -set(parallel_headers parallel/tbb_config.h) diff --git a/cpp/pmft/CMakeLists.txt b/cpp/pmft/CMakeLists.txt deleted file mode 100644 index e41a4d613..000000000 --- a/cpp/pmft/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -nanobind_add_module( - _pmft - module-pmft.cc - export-PMFTXY.cc - export-PMFTXYZ.cc - export-PMFTR12.cc - export-PMFTXYT.cc) -target_link_libraries(_pmft PUBLIC freud) - -target_set_install_rpath(_pmft) - -install(TARGETS _pmft DESTINATION freud) diff --git a/cpp/pmft/pmft-files.cmake b/cpp/pmft/pmft-files.cmake deleted file mode 100644 index c579a8627..000000000 --- a/cpp/pmft/pmft-files.cmake +++ /dev/null @@ -1,4 +0,0 @@ -set(pmft_sources pmft/PMFTXY.cc pmft/PMFTXYZ.cc pmft/PMFTR12.cc pmft/PMFTXYT.cc) - -set(pmft_headers pmft/PMFT.h pmft/PMFTXY.h pmft/PMFTXYZ.h pmft/PMFTR12.h - pmft/PMFTXYT.h) diff --git a/cpp/util/CMakeLists.txt b/cpp/util/CMakeLists.txt deleted file mode 100644 index 9d0991e0c..000000000 --- a/cpp/util/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -set(util_extension_headers export_ManagedArray.h export_Vector.h) - -nanobind_add_module(_util module-util.cc - ${util_extension_headers}) -target_link_libraries(_util PUBLIC freud) - -target_set_install_rpath(_util) - -# install -install(TARGETS _util DESTINATION freud) diff --git a/cpp/util/util-files.cmake b/cpp/util/util-files.cmake deleted file mode 100644 index 03c9b4dac..000000000 --- a/cpp/util/util-files.cmake +++ /dev/null @@ -1,10 +0,0 @@ -set(util_sources util/diagonalize.cc) - -set(util_headers - util/BiMap.h - util/Histogram.h - util/ManagedArray.h - util/ThreadStorage.h - util/VectorMath.h - util/utils.h - util/diagonalize.h) diff --git a/freud/CMakeLists.txt b/freud/CMakeLists.txt index a32c68196..5c17db16e 100644 --- a/freud/CMakeLists.txt +++ b/freud/CMakeLists.txt @@ -1,3 +1,214 @@ +############### +# C++ component + +# set the rpath for installing python extension modules +function(target_set_install_rpath _target) + if(_using_conda) + set_target_properties(${_target} PROPERTIES INSTALL_RPATH_USE_LINK_PATH + True) + endif() +endfunction() + +set(VOROPP_SOURCE_DIR "${PROJECT_SOURCE_DIR}/extern/voro++/src") + +# Use a static library for the main code. A Dynamic library would be more +# disk space efficient, but I was unable to resolve a RPATH issue where +# any use of `INSTALL_RPATH` would result in "terminated by signal SIGKILL" +# the moment Python attempts to load the library. +add_library(freud STATIC + # box + box/Box.h + + # cluster + # cluster/Cluster.h + # cluster/Cluster.cc + # cluster/ClusterProperties.h + # cluster/ClusterProperties.cc + + # density + # density/CorrelationFunction.h + # density/CorrelationFunction.cc + # density/GaussianDensity.h + # density/GaussianDensity.cc + # density/LocalDensity.h + # density/LocalDensity.cc + # density/RDF.h + # density/RDF.cc + # density/SphereVoxelization.h + # density/SphereVoxelization.cc + + # diffraction + # diffraction/StaticStructureFactor.h + # diffraction/StaticStructureFactor.cc + # diffraction/StaticStructureFactorDebye.h + # diffraction/StaticStructureFactorDebye.cc + # diffraction/StaticStructureFactorDirect.h + # diffraction/StaticStructureFactorDirect.cc + + # environment + # environment/AngularSeparation.h + # environment/AngularSeparation.cc + # environment/BondOrder.h + # environment/BondOrder.cc + # environment/LocalBondProjection.h + # environment/LocalBondProjection.cc + # environment/LocalDescriptors.h + # environment/LocalDescriptors.cc + # environment/MatchEnv.h + # environment/MatchEnv.cc + # environment/Registration.h + + # locality + locality/AABB.h + locality/AABBQuery.cc + locality/AABBQuery.h + locality/AABBTree.h + locality/BondHistogramCompute.h + locality/Filter.h + locality/FilterRAD.h + locality/FilterRAD.cc + locality/FilterSANN.h + locality/FilterSANN.cc + locality/LinkCell.h + locality/LinkCell.cc + locality/NeighborBond.h + locality/NeighborList.h + locality/NeighborPerPointIterator.h + locality/NeighborComputeFunctional.cc + locality/NeighborList.cc + locality/NeighborQuery.h + locality/PeriodicBuffer.h + locality/PeriodicBuffer.cc + locality/RawPoints.h + locality/Voronoi.h + locality/Voronoi.cc + # Compile voro++ object in directly. + ${VOROPP_SOURCE_DIR}/cell.cc + ${VOROPP_SOURCE_DIR}/common.cc + ${VOROPP_SOURCE_DIR}/container.cc + ${VOROPP_SOURCE_DIR}/unitcell.cc + ${VOROPP_SOURCE_DIR}/v_compute.cc + ${VOROPP_SOURCE_DIR}/c_loops.cc + ${VOROPP_SOURCE_DIR}/v_base.cc + ${VOROPP_SOURCE_DIR}/wall.cc + ${VOROPP_SOURCE_DIR}/pre_container.cc + ${VOROPP_SOURCE_DIR}/container_prd.cc + + # order + # order/ContinuousCoordination.h + # order/ContinuousCoordination.cc + # order/Cubatic.cc + # order/Cubatic.h + # order/HexaticTranslational.cc + # order/HexaticTranslational.h + # order/Nematic.cc + # order/Nematic.h + # order/RotationalAutocorrelation.cc + # order/RotationalAutocorrelation.h + # order/SolidLiquid.cc + # order/SolidLiquid.h + # order/Steinhardt.cc + # order/Steinhardt.h + # order/Wigner3j.cc + # order/Wigner3j.h + + # parallel + parallel/tbb_config.h + parallel/tbb_config.cc + + # pmft + pmft/PMFT.h + pmft/PMFTXY.h + pmft/PMFTXYZ.h + pmft/PMFTR12.h + pmft/PMFTXYT.h + pmft/PMFTXY.cc + pmft/PMFTXYZ.cc + pmft/PMFTR12.cc + pmft/PMFTXYT.cc + + # util + util/BiMap.h + util/Histogram.h + util/ManagedArray.h + util/ThreadStorage.h + util/VectorMath.h + util/utils.h + util/diagonalize.h + util/diagonalize.cc +) + +set_target_properties(freud PROPERTIES POSITION_INDEPENDENT_CODE ON) +target_link_libraries(freud PUBLIC TBB::tbb) +target_include_directories(freud SYSTEM PUBLIC ${PROJECT_SOURCE_DIR}/extern/) + +# cluster +# nanobind_add_module(_cluster cluster/...) +# target_link_libraries(_cluster PUBLIC freud TBB::tbb) +# target_set_install_rpath(_cluster) + +# density +# nanobind_add_module(_density density/...) +# target_link_libraries(_density PUBLIC freud TBB::tbb) +# target_set_install_rpath(_density) + +# diffraction +# nanobind_add_module(_diffraction diffraction/...) +# target_link_libraries(_diffraction PUBLIC freud TBB::tbb) +# target_set_install_rpath(_diffraction) + +# environment +# nanobind_add_module(_environment environment/...) +# target_link_libraries(_environment PUBLIC freud TBB::tbb) +# target_set_install_rpath(_environment) + +# box +nanobind_add_module(_box box/module-box.cc box/export_Box.cc) +target_link_libraries(_box PUBLIC TBB::tbb) +target_set_install_rpath(_box) + +# locality +nanobind_add_module(_locality locality/module-locality.cc + locality/export_BondHistogramCompute.cc + locality/export_NeighborQuery.cc + locality/export_NeighborList.cc + locality/export_Filter.cc + locality/export_PeriodicBuffer.cc + locality/export_Voronoi.cc + ) +target_link_libraries(_locality PUBLIC freud TBB::tbb) +target_set_install_rpath(_locality) + +# order +# nanobind_add_module(_order order/...) +# target_link_libraries(_order PUBLIC freud TBB::tbb) +# target_set_install_rpath(_order) + +# parallel +nanobind_add_module(_parallel parallel/module-parallel.cc) +target_link_libraries(_parallel PUBLIC freud TBB::tbb) +target_set_install_rpath(_parallel) + +# pmft +nanobind_add_module( + _pmft + pmft/module-pmft.cc + pmft/export-PMFTXY.cc + pmft/export-PMFTXYZ.cc + pmft/export-PMFTR12.cc + pmft/export-PMFTXYT.cc) +target_link_libraries(_pmft PUBLIC freud) +target_set_install_rpath(_pmft) + +# util +nanobind_add_module(_util util/module-util.cc + util/export_ManagedArray.h + util/export_Vector.h) +target_link_libraries(_util PUBLIC freud) +target_set_install_rpath(_util) + +################ +# Python module set(python_files __init__.py box.py @@ -8,6 +219,19 @@ set(python_files pmft.py plot.py util.py) -# cluster.py density.py diffraction.py environment.py order.py) +# cluster.py density.py diffraction.py environment.py order.py interface.py msd.py) +# install +if (SKBUILD) install(FILES ${python_files} DESTINATION freud) +install(TARGETS _box DESTINATION freud) +#install(TARGETS _cluster DESTINATION freud) +#install(TARGETS _density DESTINATION freud) +#install(TARGETS _diffraction DESTINATION freud) +#install(TARGETS _environment DESTINATION freud) +install(TARGETS _locality DESTINATION freud) +#install(TARGETS _order DESTINATION freud) +install(TARGETS _parallel DESTINATION freud) +install(TARGETS _pmft DESTINATION freud) +install(TARGETS _util DESTINATION freud) +endif() diff --git a/cpp/box/Box.h b/freud/box/Box.h similarity index 100% rename from cpp/box/Box.h rename to freud/box/Box.h diff --git a/cpp/box/export_Box.cc b/freud/box/export_Box.cc similarity index 100% rename from cpp/box/export_Box.cc rename to freud/box/export_Box.cc diff --git a/cpp/box/export_Box.h b/freud/box/export_Box.h similarity index 100% rename from cpp/box/export_Box.h rename to freud/box/export_Box.h diff --git a/cpp/box/module-box.cc b/freud/box/module-box.cc similarity index 100% rename from cpp/box/module-box.cc rename to freud/box/module-box.cc diff --git a/cpp/cluster/Cluster.cc b/freud/cluster/Cluster.cc similarity index 100% rename from cpp/cluster/Cluster.cc rename to freud/cluster/Cluster.cc diff --git a/cpp/cluster/Cluster.h b/freud/cluster/Cluster.h similarity index 100% rename from cpp/cluster/Cluster.h rename to freud/cluster/Cluster.h diff --git a/cpp/cluster/ClusterProperties.cc b/freud/cluster/ClusterProperties.cc similarity index 100% rename from cpp/cluster/ClusterProperties.cc rename to freud/cluster/ClusterProperties.cc diff --git a/cpp/cluster/ClusterProperties.h b/freud/cluster/ClusterProperties.h similarity index 100% rename from cpp/cluster/ClusterProperties.h rename to freud/cluster/ClusterProperties.h diff --git a/cpp/density/CorrelationFunction.cc b/freud/density/CorrelationFunction.cc similarity index 100% rename from cpp/density/CorrelationFunction.cc rename to freud/density/CorrelationFunction.cc diff --git a/cpp/density/CorrelationFunction.h b/freud/density/CorrelationFunction.h similarity index 100% rename from cpp/density/CorrelationFunction.h rename to freud/density/CorrelationFunction.h diff --git a/cpp/density/GaussianDensity.cc b/freud/density/GaussianDensity.cc similarity index 100% rename from cpp/density/GaussianDensity.cc rename to freud/density/GaussianDensity.cc diff --git a/cpp/density/GaussianDensity.h b/freud/density/GaussianDensity.h similarity index 100% rename from cpp/density/GaussianDensity.h rename to freud/density/GaussianDensity.h diff --git a/cpp/density/LocalDensity.cc b/freud/density/LocalDensity.cc similarity index 100% rename from cpp/density/LocalDensity.cc rename to freud/density/LocalDensity.cc diff --git a/cpp/density/LocalDensity.h b/freud/density/LocalDensity.h similarity index 100% rename from cpp/density/LocalDensity.h rename to freud/density/LocalDensity.h diff --git a/cpp/density/RDF.cc b/freud/density/RDF.cc similarity index 100% rename from cpp/density/RDF.cc rename to freud/density/RDF.cc diff --git a/cpp/density/RDF.h b/freud/density/RDF.h similarity index 100% rename from cpp/density/RDF.h rename to freud/density/RDF.h diff --git a/cpp/density/SphereVoxelization.cc b/freud/density/SphereVoxelization.cc similarity index 100% rename from cpp/density/SphereVoxelization.cc rename to freud/density/SphereVoxelization.cc diff --git a/cpp/density/SphereVoxelization.h b/freud/density/SphereVoxelization.h similarity index 100% rename from cpp/density/SphereVoxelization.h rename to freud/density/SphereVoxelization.h diff --git a/cpp/diffraction/StaticStructureFactor.cc b/freud/diffraction/StaticStructureFactor.cc similarity index 100% rename from cpp/diffraction/StaticStructureFactor.cc rename to freud/diffraction/StaticStructureFactor.cc diff --git a/cpp/diffraction/StaticStructureFactor.h b/freud/diffraction/StaticStructureFactor.h similarity index 100% rename from cpp/diffraction/StaticStructureFactor.h rename to freud/diffraction/StaticStructureFactor.h diff --git a/cpp/diffraction/StaticStructureFactorDebye.cc b/freud/diffraction/StaticStructureFactorDebye.cc similarity index 100% rename from cpp/diffraction/StaticStructureFactorDebye.cc rename to freud/diffraction/StaticStructureFactorDebye.cc diff --git a/cpp/diffraction/StaticStructureFactorDebye.h b/freud/diffraction/StaticStructureFactorDebye.h similarity index 100% rename from cpp/diffraction/StaticStructureFactorDebye.h rename to freud/diffraction/StaticStructureFactorDebye.h diff --git a/cpp/diffraction/StaticStructureFactorDirect.cc b/freud/diffraction/StaticStructureFactorDirect.cc similarity index 100% rename from cpp/diffraction/StaticStructureFactorDirect.cc rename to freud/diffraction/StaticStructureFactorDirect.cc diff --git a/cpp/diffraction/StaticStructureFactorDirect.h b/freud/diffraction/StaticStructureFactorDirect.h similarity index 100% rename from cpp/diffraction/StaticStructureFactorDirect.h rename to freud/diffraction/StaticStructureFactorDirect.h diff --git a/cpp/environment/AngularSeparation.cc b/freud/environment/AngularSeparation.cc similarity index 100% rename from cpp/environment/AngularSeparation.cc rename to freud/environment/AngularSeparation.cc diff --git a/cpp/environment/AngularSeparation.h b/freud/environment/AngularSeparation.h similarity index 100% rename from cpp/environment/AngularSeparation.h rename to freud/environment/AngularSeparation.h diff --git a/cpp/environment/BondOrder.cc b/freud/environment/BondOrder.cc similarity index 100% rename from cpp/environment/BondOrder.cc rename to freud/environment/BondOrder.cc diff --git a/cpp/environment/BondOrder.h b/freud/environment/BondOrder.h similarity index 100% rename from cpp/environment/BondOrder.h rename to freud/environment/BondOrder.h diff --git a/cpp/environment/LocalBondProjection.cc b/freud/environment/LocalBondProjection.cc similarity index 100% rename from cpp/environment/LocalBondProjection.cc rename to freud/environment/LocalBondProjection.cc diff --git a/cpp/environment/LocalBondProjection.h b/freud/environment/LocalBondProjection.h similarity index 100% rename from cpp/environment/LocalBondProjection.h rename to freud/environment/LocalBondProjection.h diff --git a/cpp/environment/LocalDescriptors.cc b/freud/environment/LocalDescriptors.cc similarity index 100% rename from cpp/environment/LocalDescriptors.cc rename to freud/environment/LocalDescriptors.cc diff --git a/cpp/environment/LocalDescriptors.h b/freud/environment/LocalDescriptors.h similarity index 100% rename from cpp/environment/LocalDescriptors.h rename to freud/environment/LocalDescriptors.h diff --git a/cpp/environment/MatchEnv.cc b/freud/environment/MatchEnv.cc similarity index 100% rename from cpp/environment/MatchEnv.cc rename to freud/environment/MatchEnv.cc diff --git a/cpp/environment/MatchEnv.h b/freud/environment/MatchEnv.h similarity index 100% rename from cpp/environment/MatchEnv.h rename to freud/environment/MatchEnv.h diff --git a/cpp/environment/Registration.h b/freud/environment/Registration.h similarity index 100% rename from cpp/environment/Registration.h rename to freud/environment/Registration.h diff --git a/cpp/locality/AABB.h b/freud/locality/AABB.h similarity index 100% rename from cpp/locality/AABB.h rename to freud/locality/AABB.h diff --git a/cpp/locality/AABBQuery.cc b/freud/locality/AABBQuery.cc similarity index 100% rename from cpp/locality/AABBQuery.cc rename to freud/locality/AABBQuery.cc diff --git a/cpp/locality/AABBQuery.h b/freud/locality/AABBQuery.h similarity index 100% rename from cpp/locality/AABBQuery.h rename to freud/locality/AABBQuery.h diff --git a/cpp/locality/AABBTree.h b/freud/locality/AABBTree.h similarity index 100% rename from cpp/locality/AABBTree.h rename to freud/locality/AABBTree.h diff --git a/cpp/locality/BondHistogramCompute.h b/freud/locality/BondHistogramCompute.h similarity index 100% rename from cpp/locality/BondHistogramCompute.h rename to freud/locality/BondHistogramCompute.h diff --git a/cpp/locality/Filter.h b/freud/locality/Filter.h similarity index 100% rename from cpp/locality/Filter.h rename to freud/locality/Filter.h diff --git a/cpp/locality/FilterRAD.cc b/freud/locality/FilterRAD.cc similarity index 100% rename from cpp/locality/FilterRAD.cc rename to freud/locality/FilterRAD.cc diff --git a/cpp/locality/FilterRAD.h b/freud/locality/FilterRAD.h similarity index 100% rename from cpp/locality/FilterRAD.h rename to freud/locality/FilterRAD.h diff --git a/cpp/locality/FilterSANN.cc b/freud/locality/FilterSANN.cc similarity index 100% rename from cpp/locality/FilterSANN.cc rename to freud/locality/FilterSANN.cc diff --git a/cpp/locality/FilterSANN.h b/freud/locality/FilterSANN.h similarity index 100% rename from cpp/locality/FilterSANN.h rename to freud/locality/FilterSANN.h diff --git a/cpp/locality/LinkCell.cc b/freud/locality/LinkCell.cc similarity index 100% rename from cpp/locality/LinkCell.cc rename to freud/locality/LinkCell.cc diff --git a/cpp/locality/LinkCell.h b/freud/locality/LinkCell.h similarity index 100% rename from cpp/locality/LinkCell.h rename to freud/locality/LinkCell.h diff --git a/cpp/locality/NeighborBond.h b/freud/locality/NeighborBond.h similarity index 100% rename from cpp/locality/NeighborBond.h rename to freud/locality/NeighborBond.h diff --git a/cpp/locality/NeighborComputeFunctional.cc b/freud/locality/NeighborComputeFunctional.cc similarity index 100% rename from cpp/locality/NeighborComputeFunctional.cc rename to freud/locality/NeighborComputeFunctional.cc diff --git a/cpp/locality/NeighborComputeFunctional.h b/freud/locality/NeighborComputeFunctional.h similarity index 100% rename from cpp/locality/NeighborComputeFunctional.h rename to freud/locality/NeighborComputeFunctional.h diff --git a/cpp/locality/NeighborList.cc b/freud/locality/NeighborList.cc similarity index 100% rename from cpp/locality/NeighborList.cc rename to freud/locality/NeighborList.cc diff --git a/cpp/locality/NeighborList.h b/freud/locality/NeighborList.h similarity index 100% rename from cpp/locality/NeighborList.h rename to freud/locality/NeighborList.h diff --git a/cpp/locality/NeighborPerPointIterator.h b/freud/locality/NeighborPerPointIterator.h similarity index 100% rename from cpp/locality/NeighborPerPointIterator.h rename to freud/locality/NeighborPerPointIterator.h diff --git a/cpp/locality/NeighborQuery.h b/freud/locality/NeighborQuery.h similarity index 100% rename from cpp/locality/NeighborQuery.h rename to freud/locality/NeighborQuery.h diff --git a/cpp/locality/PeriodicBuffer.cc b/freud/locality/PeriodicBuffer.cc similarity index 100% rename from cpp/locality/PeriodicBuffer.cc rename to freud/locality/PeriodicBuffer.cc diff --git a/cpp/locality/PeriodicBuffer.h b/freud/locality/PeriodicBuffer.h similarity index 100% rename from cpp/locality/PeriodicBuffer.h rename to freud/locality/PeriodicBuffer.h diff --git a/cpp/locality/RawPoints.h b/freud/locality/RawPoints.h similarity index 100% rename from cpp/locality/RawPoints.h rename to freud/locality/RawPoints.h diff --git a/cpp/locality/Voronoi.cc b/freud/locality/Voronoi.cc similarity index 100% rename from cpp/locality/Voronoi.cc rename to freud/locality/Voronoi.cc diff --git a/cpp/locality/Voronoi.h b/freud/locality/Voronoi.h similarity index 100% rename from cpp/locality/Voronoi.h rename to freud/locality/Voronoi.h diff --git a/cpp/locality/export_BondHistogramCompute.cc b/freud/locality/export_BondHistogramCompute.cc similarity index 100% rename from cpp/locality/export_BondHistogramCompute.cc rename to freud/locality/export_BondHistogramCompute.cc diff --git a/cpp/locality/export_BondHistogramCompute.h b/freud/locality/export_BondHistogramCompute.h similarity index 100% rename from cpp/locality/export_BondHistogramCompute.h rename to freud/locality/export_BondHistogramCompute.h diff --git a/cpp/locality/export_Filter.cc b/freud/locality/export_Filter.cc similarity index 100% rename from cpp/locality/export_Filter.cc rename to freud/locality/export_Filter.cc diff --git a/cpp/locality/export_Filter.h b/freud/locality/export_Filter.h similarity index 100% rename from cpp/locality/export_Filter.h rename to freud/locality/export_Filter.h diff --git a/cpp/locality/export_NeighborList.cc b/freud/locality/export_NeighborList.cc similarity index 100% rename from cpp/locality/export_NeighborList.cc rename to freud/locality/export_NeighborList.cc diff --git a/cpp/locality/export_NeighborList.h b/freud/locality/export_NeighborList.h similarity index 100% rename from cpp/locality/export_NeighborList.h rename to freud/locality/export_NeighborList.h diff --git a/cpp/locality/export_NeighborQuery.cc b/freud/locality/export_NeighborQuery.cc similarity index 100% rename from cpp/locality/export_NeighborQuery.cc rename to freud/locality/export_NeighborQuery.cc diff --git a/cpp/locality/export_NeighborQuery.h b/freud/locality/export_NeighborQuery.h similarity index 100% rename from cpp/locality/export_NeighborQuery.h rename to freud/locality/export_NeighborQuery.h diff --git a/cpp/locality/export_PeriodicBuffer.cc b/freud/locality/export_PeriodicBuffer.cc similarity index 100% rename from cpp/locality/export_PeriodicBuffer.cc rename to freud/locality/export_PeriodicBuffer.cc diff --git a/cpp/locality/export_PeriodicBuffer.h b/freud/locality/export_PeriodicBuffer.h similarity index 100% rename from cpp/locality/export_PeriodicBuffer.h rename to freud/locality/export_PeriodicBuffer.h diff --git a/cpp/locality/export_Voronoi.cc b/freud/locality/export_Voronoi.cc similarity index 100% rename from cpp/locality/export_Voronoi.cc rename to freud/locality/export_Voronoi.cc diff --git a/cpp/locality/export_Voronoi.h b/freud/locality/export_Voronoi.h similarity index 100% rename from cpp/locality/export_Voronoi.h rename to freud/locality/export_Voronoi.h diff --git a/cpp/locality/module-locality.cc b/freud/locality/module-locality.cc similarity index 100% rename from cpp/locality/module-locality.cc rename to freud/locality/module-locality.cc diff --git a/cpp/order/ContinuousCoordination.cc b/freud/order/ContinuousCoordination.cc similarity index 100% rename from cpp/order/ContinuousCoordination.cc rename to freud/order/ContinuousCoordination.cc diff --git a/cpp/order/ContinuousCoordination.h b/freud/order/ContinuousCoordination.h similarity index 100% rename from cpp/order/ContinuousCoordination.h rename to freud/order/ContinuousCoordination.h diff --git a/cpp/order/Cubatic.cc b/freud/order/Cubatic.cc similarity index 100% rename from cpp/order/Cubatic.cc rename to freud/order/Cubatic.cc diff --git a/cpp/order/Cubatic.h b/freud/order/Cubatic.h similarity index 100% rename from cpp/order/Cubatic.h rename to freud/order/Cubatic.h diff --git a/cpp/order/HexaticTranslational.cc b/freud/order/HexaticTranslational.cc similarity index 100% rename from cpp/order/HexaticTranslational.cc rename to freud/order/HexaticTranslational.cc diff --git a/cpp/order/HexaticTranslational.h b/freud/order/HexaticTranslational.h similarity index 100% rename from cpp/order/HexaticTranslational.h rename to freud/order/HexaticTranslational.h diff --git a/cpp/order/Nematic.cc b/freud/order/Nematic.cc similarity index 100% rename from cpp/order/Nematic.cc rename to freud/order/Nematic.cc diff --git a/cpp/order/Nematic.h b/freud/order/Nematic.h similarity index 100% rename from cpp/order/Nematic.h rename to freud/order/Nematic.h diff --git a/cpp/order/RotationalAutocorrelation.cc b/freud/order/RotationalAutocorrelation.cc similarity index 100% rename from cpp/order/RotationalAutocorrelation.cc rename to freud/order/RotationalAutocorrelation.cc diff --git a/cpp/order/RotationalAutocorrelation.h b/freud/order/RotationalAutocorrelation.h similarity index 100% rename from cpp/order/RotationalAutocorrelation.h rename to freud/order/RotationalAutocorrelation.h diff --git a/cpp/order/SolidLiquid.cc b/freud/order/SolidLiquid.cc similarity index 100% rename from cpp/order/SolidLiquid.cc rename to freud/order/SolidLiquid.cc diff --git a/cpp/order/SolidLiquid.h b/freud/order/SolidLiquid.h similarity index 100% rename from cpp/order/SolidLiquid.h rename to freud/order/SolidLiquid.h diff --git a/cpp/order/Steinhardt.cc b/freud/order/Steinhardt.cc similarity index 100% rename from cpp/order/Steinhardt.cc rename to freud/order/Steinhardt.cc diff --git a/cpp/order/Steinhardt.h b/freud/order/Steinhardt.h similarity index 100% rename from cpp/order/Steinhardt.h rename to freud/order/Steinhardt.h diff --git a/cpp/order/Wigner3j.cc b/freud/order/Wigner3j.cc similarity index 100% rename from cpp/order/Wigner3j.cc rename to freud/order/Wigner3j.cc diff --git a/cpp/order/Wigner3j.h b/freud/order/Wigner3j.h similarity index 100% rename from cpp/order/Wigner3j.h rename to freud/order/Wigner3j.h diff --git a/cpp/parallel/module-parallel.cc b/freud/parallel/module-parallel.cc similarity index 100% rename from cpp/parallel/module-parallel.cc rename to freud/parallel/module-parallel.cc diff --git a/cpp/parallel/tbb_config.cc b/freud/parallel/tbb_config.cc similarity index 100% rename from cpp/parallel/tbb_config.cc rename to freud/parallel/tbb_config.cc diff --git a/cpp/parallel/tbb_config.h b/freud/parallel/tbb_config.h similarity index 100% rename from cpp/parallel/tbb_config.h rename to freud/parallel/tbb_config.h diff --git a/cpp/pmft/PMFT.h b/freud/pmft/PMFT.h similarity index 100% rename from cpp/pmft/PMFT.h rename to freud/pmft/PMFT.h diff --git a/cpp/pmft/PMFTR12.cc b/freud/pmft/PMFTR12.cc similarity index 100% rename from cpp/pmft/PMFTR12.cc rename to freud/pmft/PMFTR12.cc diff --git a/cpp/pmft/PMFTR12.h b/freud/pmft/PMFTR12.h similarity index 100% rename from cpp/pmft/PMFTR12.h rename to freud/pmft/PMFTR12.h diff --git a/cpp/pmft/PMFTXY.cc b/freud/pmft/PMFTXY.cc similarity index 100% rename from cpp/pmft/PMFTXY.cc rename to freud/pmft/PMFTXY.cc diff --git a/cpp/pmft/PMFTXY.h b/freud/pmft/PMFTXY.h similarity index 100% rename from cpp/pmft/PMFTXY.h rename to freud/pmft/PMFTXY.h diff --git a/cpp/pmft/PMFTXYT.cc b/freud/pmft/PMFTXYT.cc similarity index 100% rename from cpp/pmft/PMFTXYT.cc rename to freud/pmft/PMFTXYT.cc diff --git a/cpp/pmft/PMFTXYT.h b/freud/pmft/PMFTXYT.h similarity index 100% rename from cpp/pmft/PMFTXYT.h rename to freud/pmft/PMFTXYT.h diff --git a/cpp/pmft/PMFTXYZ.cc b/freud/pmft/PMFTXYZ.cc similarity index 100% rename from cpp/pmft/PMFTXYZ.cc rename to freud/pmft/PMFTXYZ.cc diff --git a/cpp/pmft/PMFTXYZ.h b/freud/pmft/PMFTXYZ.h similarity index 100% rename from cpp/pmft/PMFTXYZ.h rename to freud/pmft/PMFTXYZ.h diff --git a/cpp/pmft/export-PMFTR12.cc b/freud/pmft/export-PMFTR12.cc similarity index 100% rename from cpp/pmft/export-PMFTR12.cc rename to freud/pmft/export-PMFTR12.cc diff --git a/cpp/pmft/export-PMFTXY.cc b/freud/pmft/export-PMFTXY.cc similarity index 100% rename from cpp/pmft/export-PMFTXY.cc rename to freud/pmft/export-PMFTXY.cc diff --git a/cpp/pmft/export-PMFTXYT.cc b/freud/pmft/export-PMFTXYT.cc similarity index 100% rename from cpp/pmft/export-PMFTXYT.cc rename to freud/pmft/export-PMFTXYT.cc diff --git a/cpp/pmft/export-PMFTXYZ.cc b/freud/pmft/export-PMFTXYZ.cc similarity index 100% rename from cpp/pmft/export-PMFTXYZ.cc rename to freud/pmft/export-PMFTXYZ.cc diff --git a/cpp/pmft/module-pmft.cc b/freud/pmft/module-pmft.cc similarity index 100% rename from cpp/pmft/module-pmft.cc rename to freud/pmft/module-pmft.cc diff --git a/cpp/util/BiMap.h b/freud/util/BiMap.h similarity index 100% rename from cpp/util/BiMap.h rename to freud/util/BiMap.h diff --git a/cpp/util/Histogram.h b/freud/util/Histogram.h similarity index 100% rename from cpp/util/Histogram.h rename to freud/util/Histogram.h diff --git a/cpp/util/ManagedArray.h b/freud/util/ManagedArray.h similarity index 100% rename from cpp/util/ManagedArray.h rename to freud/util/ManagedArray.h diff --git a/cpp/util/ThreadStorage.h b/freud/util/ThreadStorage.h similarity index 100% rename from cpp/util/ThreadStorage.h rename to freud/util/ThreadStorage.h diff --git a/cpp/util/VectorMath.h b/freud/util/VectorMath.h similarity index 100% rename from cpp/util/VectorMath.h rename to freud/util/VectorMath.h diff --git a/cpp/util/diagonalize.cc b/freud/util/diagonalize.cc similarity index 100% rename from cpp/util/diagonalize.cc rename to freud/util/diagonalize.cc diff --git a/cpp/util/diagonalize.h b/freud/util/diagonalize.h similarity index 100% rename from cpp/util/diagonalize.h rename to freud/util/diagonalize.h diff --git a/cpp/util/export_ManagedArray.h b/freud/util/export_ManagedArray.h similarity index 100% rename from cpp/util/export_ManagedArray.h rename to freud/util/export_ManagedArray.h diff --git a/cpp/util/export_Vector.h b/freud/util/export_Vector.h similarity index 100% rename from cpp/util/export_Vector.h rename to freud/util/export_Vector.h diff --git a/cpp/util/module-util.cc b/freud/util/module-util.cc similarity index 100% rename from cpp/util/module-util.cc rename to freud/util/module-util.cc diff --git a/cpp/util/utils.h b/freud/util/utils.h similarity index 100% rename from cpp/util/utils.h rename to freud/util/utils.h