deme 2.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (443) hide show
  1. deme-2.0.1/CMakeLists.txt +348 -0
  2. deme-2.0.1/LICENSE.md +21 -0
  3. deme-2.0.1/MANIFEST.in +6 -0
  4. deme-2.0.1/PKG-INFO +15 -0
  5. deme-2.0.1/README.md +319 -0
  6. deme-2.0.1/cmake/CudaSupportedArchitectures.cmake +68 -0
  7. deme-2.0.1/cmake/CxxStdAutodetect.cmake +61 -0
  8. deme-2.0.1/cmake/DEMEConfig.cmake.in +36 -0
  9. deme-2.0.1/cmake/FixNinjaColors.cmake +52 -0
  10. deme-2.0.1/data/clumps/3_clump.csv +7 -0
  11. deme-2.0.1/data/clumps/6_clump.csv +10 -0
  12. deme-2.0.1/data/clumps/ContactChain_initial.csv +910 -0
  13. deme-2.0.1/data/clumps/TeddyBear.csv +19 -0
  14. deme-2.0.1/data/clumps/ViperWheelSimple.csv +32542 -0
  15. deme-2.0.1/data/clumps/ellipsoid_2_1_1.csv +6 -0
  16. deme-2.0.1/data/clumps/molecule.csv +4 -0
  17. deme-2.0.1/data/clumps/spiky_sphere.csv +7 -0
  18. deme-2.0.1/data/clumps/triangular_flat.csv +7 -0
  19. deme-2.0.1/data/clumps/triangular_flat_6comp.csv +10 -0
  20. deme-2.0.1/data/mesh/GPBR_Vessel_Fine.obj +9364 -0
  21. deme-2.0.1/data/mesh/cone.obj +437 -0
  22. deme-2.0.1/data/mesh/cube.obj +62 -0
  23. deme-2.0.1/data/mesh/cyl_r1_h2.obj +1836 -0
  24. deme-2.0.1/data/mesh/excavator.obj +27626 -0
  25. deme-2.0.1/data/mesh/funnel.obj +1220 -0
  26. deme-2.0.1/data/mesh/funnel_left.obj +30 -0
  27. deme-2.0.1/data/mesh/hourglass.obj +2924 -0
  28. deme-2.0.1/data/mesh/hourglass_cap.obj +304 -0
  29. deme-2.0.1/data/mesh/internal_mixer.obj +4482 -0
  30. deme-2.0.1/data/mesh/plane_20by20.obj +18 -0
  31. deme-2.0.1/data/mesh/rover_wheels/curiosity_wheel.obj +257326 -0
  32. deme-2.0.1/data/mesh/rover_wheels/curiosity_wheel_surface.obj +149134 -0
  33. deme-2.0.1/data/mesh/rover_wheels/viper_wheel_right.obj +157474 -0
  34. deme-2.0.1/data/mesh/silo.obj +2239 -0
  35. deme-2.0.1/data/mesh/sphere.obj +808 -0
  36. deme-2.0.1/data/mesh/thin_plate.obj +2304 -0
  37. deme-2.0.1/data/sim_data/example_cnt_pairs.csv +3 -0
  38. deme-2.0.1/deme.egg-info/PKG-INFO +15 -0
  39. deme-2.0.1/deme.egg-info/SOURCES.txt +441 -0
  40. deme-2.0.1/deme.egg-info/dependency_links.txt +1 -0
  41. deme-2.0.1/deme.egg-info/not-zip-safe +1 -0
  42. deme-2.0.1/deme.egg-info/requires.txt +8 -0
  43. deme-2.0.1/deme.egg-info/top_level.txt +1 -0
  44. deme-2.0.1/packaging_instructions.txt +28 -0
  45. deme-2.0.1/pyproject.toml +2 -0
  46. deme-2.0.1/setup.cfg +4 -0
  47. deme-2.0.1/setup.py +163 -0
  48. deme-2.0.1/src/.format_all +14 -0
  49. deme-2.0.1/src/DEM/API.h +1876 -0
  50. deme-2.0.1/src/DEM/APIPrivate.cpp +2118 -0
  51. deme-2.0.1/src/DEM/APIPublic.cpp +2419 -0
  52. deme-2.0.1/src/DEM/AuxClasses.cpp +963 -0
  53. deme-2.0.1/src/DEM/AuxClasses.h +486 -0
  54. deme-2.0.1/src/DEM/BdrsAndObjs.h +670 -0
  55. deme-2.0.1/src/DEM/CMakeLists.txt +147 -0
  56. deme-2.0.1/src/DEM/Defines.h +457 -0
  57. deme-2.0.1/src/DEM/HostSideHelpers.hpp +739 -0
  58. deme-2.0.1/src/DEM/MeshUtils.cpp +186 -0
  59. deme-2.0.1/src/DEM/Models.h +382 -0
  60. deme-2.0.1/src/DEM/PyDEME.cpp +1348 -0
  61. deme-2.0.1/src/DEM/Structs.h +957 -0
  62. deme-2.0.1/src/DEM/VariableTypes.h +67 -0
  63. deme-2.0.1/src/DEM/dT.cpp +3084 -0
  64. deme-2.0.1/src/DEM/dT.h +767 -0
  65. deme-2.0.1/src/DEM/kT.cpp +960 -0
  66. deme-2.0.1/src/DEM/kT.h +468 -0
  67. deme-2.0.1/src/DEM/utils/Samplers.hpp +697 -0
  68. deme-2.0.1/src/algorithms/CMakeLists.txt +79 -0
  69. deme-2.0.1/src/algorithms/DEMCubContactDetection.cu +1192 -0
  70. deme-2.0.1/src/algorithms/DEMCubForceCollection.cu +172 -0
  71. deme-2.0.1/src/algorithms/DEMCubInstantiations.cu +208 -0
  72. deme-2.0.1/src/algorithms/DEMCubWrappers.cu +196 -0
  73. deme-2.0.1/src/algorithms/DEMDynamicMisc.cu +121 -0
  74. deme-2.0.1/src/algorithms/DEMStaticDeviceSubroutines.h +137 -0
  75. deme-2.0.1/src/algorithms/DEMStaticDeviceUtilities.cuh +43 -0
  76. deme-2.0.1/src/core/ApiVersion.h.in +40 -0
  77. deme-2.0.1/src/core/CMakeLists.txt +240 -0
  78. deme-2.0.1/src/core/DebugInfo.cpp +22 -0
  79. deme-2.0.1/src/core/utils/CudaAllocator.hpp +273 -0
  80. deme-2.0.1/src/core/utils/DEMEPaths.cpp +44 -0
  81. deme-2.0.1/src/core/utils/DEMEPaths.h +42 -0
  82. deme-2.0.1/src/core/utils/DataMigrationHelper.hpp +965 -0
  83. deme-2.0.1/src/core/utils/GpuError.h +69 -0
  84. deme-2.0.1/src/core/utils/GpuManager.cpp +108 -0
  85. deme-2.0.1/src/core/utils/GpuManager.h +52 -0
  86. deme-2.0.1/src/core/utils/HeaderGenerator.h +28 -0
  87. deme-2.0.1/src/core/utils/JitHelper.cpp +60 -0
  88. deme-2.0.1/src/core/utils/JitHelper.h +64 -0
  89. deme-2.0.1/src/core/utils/ManagedMemory.hpp +94 -0
  90. deme-2.0.1/src/core/utils/RuntimeData.cpp.in +23 -0
  91. deme-2.0.1/src/core/utils/RuntimeData.h +30 -0
  92. deme-2.0.1/src/core/utils/ThreadManager.h +107 -0
  93. deme-2.0.1/src/core/utils/Timer.hpp +104 -0
  94. deme-2.0.1/src/core/utils/WavefrontMeshLoader.hpp +713 -0
  95. deme-2.0.1/src/core/utils/csv.hpp +1167 -0
  96. deme-2.0.1/src/demo/CMakeLists.txt +101 -0
  97. deme-2.0.1/src/demo/DEMdemo_BallDrop.cpp +240 -0
  98. deme-2.0.1/src/demo/DEMdemo_BallDrop2D.cpp +201 -0
  99. deme-2.0.1/src/demo/DEMdemo_Centrifuge.cpp +197 -0
  100. deme-2.0.1/src/demo/DEMdemo_ConePenetration.cpp +274 -0
  101. deme-2.0.1/src/demo/DEMdemo_ContactChain.cpp +169 -0
  102. deme-2.0.1/src/demo/DEMdemo_Electrostatic.cpp +401 -0
  103. deme-2.0.1/src/demo/DEMdemo_FlexibleMesh.cpp +303 -0
  104. deme-2.0.1/src/demo/DEMdemo_Fracture_Box.cpp +222 -0
  105. deme-2.0.1/src/demo/DEMdemo_GRCPrep_Part1.cpp +192 -0
  106. deme-2.0.1/src/demo/DEMdemo_GRCPrep_Part2.cpp +282 -0
  107. deme-2.0.1/src/demo/DEMdemo_GRCPrep_Part3.cpp +256 -0
  108. deme-2.0.1/src/demo/DEMdemo_GameOfLife.cpp +155 -0
  109. deme-2.0.1/src/demo/DEMdemo_Hopper_Sphere_Cylinder.cpp +454 -0
  110. deme-2.0.1/src/demo/DEMdemo_Indentation.cpp +250 -0
  111. deme-2.0.1/src/demo/DEMdemo_Mixer.cpp +164 -0
  112. deme-2.0.1/src/demo/DEMdemo_Plow.cpp +179 -0
  113. deme-2.0.1/src/demo/DEMdemo_Repose.cpp +180 -0
  114. deme-2.0.1/src/demo/DEMdemo_Repose2D.cpp +179 -0
  115. deme-2.0.1/src/demo/DEMdemo_RotatingDrum.cpp +194 -0
  116. deme-2.0.1/src/demo/DEMdemo_Shake.cpp +175 -0
  117. deme-2.0.1/src/demo/DEMdemo_Sieve.cpp +193 -0
  118. deme-2.0.1/src/demo/DEMdemo_SingleSphereCollide.cpp +210 -0
  119. deme-2.0.1/src/demo/DEMdemo_SolarSystem.cpp +195 -0
  120. deme-2.0.1/src/demo/DEMdemo_TestPack.cpp +298 -0
  121. deme-2.0.1/src/demo/DEMdemo_WheelDP.cpp +303 -0
  122. deme-2.0.1/src/demo/DEMdemo_WheelDPSimplified.cpp +226 -0
  123. deme-2.0.1/src/demo/DEMdemo_WheelSlopeSlip.cpp +304 -0
  124. deme-2.0.1/src/demo/pyDEME_BallDrop.py +129 -0
  125. deme-2.0.1/src/demo/pyDEME_BallDrop2D.py +328 -0
  126. deme-2.0.1/src/demo/pyDEME_Centrifuge.py +186 -0
  127. deme-2.0.1/src/demo/pyDEME_ConePenetration.py +270 -0
  128. deme-2.0.1/src/demo/pyDEME_Electrostatic.py +395 -0
  129. deme-2.0.1/src/demo/pyDEME_FlexibleMesh.py +275 -0
  130. deme-2.0.1/src/demo/pyDEME_GRCPrep_Part1.py +166 -0
  131. deme-2.0.1/src/demo/pyDEME_GameOfLife.py +126 -0
  132. deme-2.0.1/src/demo/pyDEME_Mixer.py +147 -0
  133. deme-2.0.1/src/demo/pyDEME_WheelDPSimplified.py +223 -0
  134. deme-2.0.1/src/kernel/CUDAMathHelpers.cuh +1415 -0
  135. deme-2.0.1/src/kernel/DEMBinSphereKernels.cu +278 -0
  136. deme-2.0.1/src/kernel/DEMBinTriangleKernels.cu +221 -0
  137. deme-2.0.1/src/kernel/DEMCalcForceKernels.cu +265 -0
  138. deme-2.0.1/src/kernel/DEMCollectForceKernels.cu +137 -0
  139. deme-2.0.1/src/kernel/DEMCollectForceKernels_Compact.cu +102 -0
  140. deme-2.0.1/src/kernel/DEMCollisionKernels.cu +236 -0
  141. deme-2.0.1/src/kernel/DEMContactKernels_SphereSphere.cu +437 -0
  142. deme-2.0.1/src/kernel/DEMContactKernels_SphereTriangle.cu +427 -0
  143. deme-2.0.1/src/kernel/DEMCustomizablePolicies/AnalyticalCompDefJitify.cu +15 -0
  144. deme-2.0.1/src/kernel/DEMCustomizablePolicies/ClumpCompAcqStratAllFlatten.cu +4 -0
  145. deme-2.0.1/src/kernel/DEMCustomizablePolicies/ClumpCompAcqStratAllJitify.cu +5 -0
  146. deme-2.0.1/src/kernel/DEMCustomizablePolicies/ClumpCompAcqStratPartialJitify.cu +14 -0
  147. deme-2.0.1/src/kernel/DEMCustomizablePolicies/ClumpCompDefJitify.cu +5 -0
  148. deme-2.0.1/src/kernel/DEMCustomizablePolicies/ContactInfoWriteBack.cu +4 -0
  149. deme-2.0.1/src/kernel/DEMCustomizablePolicies/ForceInKernelReductionStrat.cu +33 -0
  150. deme-2.0.1/src/kernel/DEMCustomizablePolicies/FrictionlessHertzianForceModel.cu +42 -0
  151. deme-2.0.1/src/kernel/DEMCustomizablePolicies/FullHertzianForceModel.cu +136 -0
  152. deme-2.0.1/src/kernel/DEMCustomizablePolicies/IntegrationVelPassOnCenteredDiff.cu +3 -0
  153. deme-2.0.1/src/kernel/DEMCustomizablePolicies/IntegrationVelPassOnExtendedTaylor.cu +3 -0
  154. deme-2.0.1/src/kernel/DEMCustomizablePolicies/IntegrationVelPassOnForwardEuler.cu +3 -0
  155. deme-2.0.1/src/kernel/DEMCustomizablePolicies/MOIAcqStratFlatten.cu +3 -0
  156. deme-2.0.1/src/kernel/DEMCustomizablePolicies/MOIAcqStratJitify.cu +3 -0
  157. deme-2.0.1/src/kernel/DEMCustomizablePolicies/MOIDefJitify.cu +4 -0
  158. deme-2.0.1/src/kernel/DEMCustomizablePolicies/MassAcqStratFlatten.cu +1 -0
  159. deme-2.0.1/src/kernel/DEMCustomizablePolicies/MassAcqStratJitify.cu +1 -0
  160. deme-2.0.1/src/kernel/DEMCustomizablePolicies/MassDefJitify.cu +2 -0
  161. deme-2.0.1/src/kernel/DEMHelperKernels.cuh +607 -0
  162. deme-2.0.1/src/kernel/DEMHistoryMappingKernels.cu +158 -0
  163. deme-2.0.1/src/kernel/DEMIntegrationKernels.cu +264 -0
  164. deme-2.0.1/src/kernel/DEMMiscKernels.cu +63 -0
  165. deme-2.0.1/src/kernel/DEMModeratorKernels.cu +57 -0
  166. deme-2.0.1/src/kernel/DEMOwnerQueryKernels.cu +56 -0
  167. deme-2.0.1/src/kernel/DEMPrepForceKernels.cu +81 -0
  168. deme-2.0.1/src/kernel/DEMSphereQueryKernels.cu +51 -0
  169. deme-2.0.1/src/kernel/DEMTriangleBoxIntersect.cu +374 -0
  170. deme-2.0.1/src/kernel/DEMUserScripts/ForceModel2D.cu +131 -0
  171. deme-2.0.1/src/kernel/DEMUserScripts/ForceModelMooring.cu +190 -0
  172. deme-2.0.1/src/kernel/DEMUserScripts/ForceModelMooringPosition.cu +203 -0
  173. deme-2.0.1/src/kernel/DEMUserScripts/ForceModelWithCohesion.cu +144 -0
  174. deme-2.0.1/src/kernel/DEMUserScripts/ForceModelWithElectrostatic.cu +165 -0
  175. deme-2.0.1/src/kernel/DEMUserScripts/ForceModelWithFractureModel.cu +238 -0
  176. deme-2.0.1/src/kernel/DEMUserScripts/ForceModelWithGravity.cu +56 -0
  177. deme-2.0.1/src/kernel/hello.cu +6 -0
  178. deme-2.0.1/thirdparty/jitify/.clang-format +149 -0
  179. deme-2.0.1/thirdparty/jitify/.git +1 -0
  180. deme-2.0.1/thirdparty/jitify/.gitignore +10 -0
  181. deme-2.0.1/thirdparty/jitify/Doxyfile +2427 -0
  182. deme-2.0.1/thirdparty/jitify/LICENSE +29 -0
  183. deme-2.0.1/thirdparty/jitify/Makefile +110 -0
  184. deme-2.0.1/thirdparty/jitify/README.md +116 -0
  185. deme-2.0.1/thirdparty/jitify/example_headers/class_arg_kernel.cuh +69 -0
  186. deme-2.0.1/thirdparty/jitify/example_headers/constant_header.cuh +43 -0
  187. deme-2.0.1/thirdparty/jitify/example_headers/my_header1.cuh +34 -0
  188. deme-2.0.1/thirdparty/jitify/example_headers/my_header2.cuh +34 -0
  189. deme-2.0.1/thirdparty/jitify/example_headers/my_header3.cuh +34 -0
  190. deme-2.0.1/thirdparty/jitify/jitify.hpp +4544 -0
  191. deme-2.0.1/thirdparty/jitify/jitify_example.cpp +359 -0
  192. deme-2.0.1/thirdparty/jitify/jitify_test.cu +1153 -0
  193. deme-2.0.1/thirdparty/jitify/nvrtc_cli.cpp +586 -0
  194. deme-2.0.1/thirdparty/jitify/nvrtc_cli_test.sh +58 -0
  195. deme-2.0.1/thirdparty/jitify/stringify.cpp +86 -0
  196. deme-2.0.1/thirdparty/pybind11/.appveyor.yml +35 -0
  197. deme-2.0.1/thirdparty/pybind11/.clang-format +38 -0
  198. deme-2.0.1/thirdparty/pybind11/.clang-tidy +77 -0
  199. deme-2.0.1/thirdparty/pybind11/.cmake-format.yaml +73 -0
  200. deme-2.0.1/thirdparty/pybind11/.codespell-ignore-lines +24 -0
  201. deme-2.0.1/thirdparty/pybind11/.git +1 -0
  202. deme-2.0.1/thirdparty/pybind11/.gitattributes +1 -0
  203. deme-2.0.1/thirdparty/pybind11/.github/CODEOWNERS +9 -0
  204. deme-2.0.1/thirdparty/pybind11/.github/CONTRIBUTING.md +388 -0
  205. deme-2.0.1/thirdparty/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +61 -0
  206. deme-2.0.1/thirdparty/pybind11/.github/ISSUE_TEMPLATE/config.yml +8 -0
  207. deme-2.0.1/thirdparty/pybind11/.github/dependabot.yml +7 -0
  208. deme-2.0.1/thirdparty/pybind11/.github/labeler.yml +8 -0
  209. deme-2.0.1/thirdparty/pybind11/.github/labeler_merged.yml +3 -0
  210. deme-2.0.1/thirdparty/pybind11/.github/matchers/pylint.json +32 -0
  211. deme-2.0.1/thirdparty/pybind11/.github/pull_request_template.md +19 -0
  212. deme-2.0.1/thirdparty/pybind11/.github/workflows/ci.yml +1109 -0
  213. deme-2.0.1/thirdparty/pybind11/.github/workflows/configure.yml +84 -0
  214. deme-2.0.1/thirdparty/pybind11/.github/workflows/format.yml +57 -0
  215. deme-2.0.1/thirdparty/pybind11/.github/workflows/labeler.yml +20 -0
  216. deme-2.0.1/thirdparty/pybind11/.github/workflows/pip.yml +110 -0
  217. deme-2.0.1/thirdparty/pybind11/.github/workflows/upstream.yml +114 -0
  218. deme-2.0.1/thirdparty/pybind11/.gitignore +46 -0
  219. deme-2.0.1/thirdparty/pybind11/.pre-commit-config.yaml +181 -0
  220. deme-2.0.1/thirdparty/pybind11/.readthedocs.yml +3 -0
  221. deme-2.0.1/thirdparty/pybind11/CMakeLists.txt +320 -0
  222. deme-2.0.1/thirdparty/pybind11/LICENSE +29 -0
  223. deme-2.0.1/thirdparty/pybind11/MANIFEST.in +6 -0
  224. deme-2.0.1/thirdparty/pybind11/README.rst +180 -0
  225. deme-2.0.1/thirdparty/pybind11/docs/Doxyfile +21 -0
  226. deme-2.0.1/thirdparty/pybind11/docs/Makefile +192 -0
  227. deme-2.0.1/thirdparty/pybind11/docs/_static/css/custom.css +3 -0
  228. deme-2.0.1/thirdparty/pybind11/docs/advanced/cast/chrono.rst +81 -0
  229. deme-2.0.1/thirdparty/pybind11/docs/advanced/cast/custom.rst +93 -0
  230. deme-2.0.1/thirdparty/pybind11/docs/advanced/cast/eigen.rst +310 -0
  231. deme-2.0.1/thirdparty/pybind11/docs/advanced/cast/functional.rst +109 -0
  232. deme-2.0.1/thirdparty/pybind11/docs/advanced/cast/index.rst +43 -0
  233. deme-2.0.1/thirdparty/pybind11/docs/advanced/cast/overview.rst +170 -0
  234. deme-2.0.1/thirdparty/pybind11/docs/advanced/cast/stl.rst +249 -0
  235. deme-2.0.1/thirdparty/pybind11/docs/advanced/cast/strings.rst +292 -0
  236. deme-2.0.1/thirdparty/pybind11/docs/advanced/classes.rst +1335 -0
  237. deme-2.0.1/thirdparty/pybind11/docs/advanced/embedding.rst +262 -0
  238. deme-2.0.1/thirdparty/pybind11/docs/advanced/exceptions.rst +401 -0
  239. deme-2.0.1/thirdparty/pybind11/docs/advanced/functions.rst +614 -0
  240. deme-2.0.1/thirdparty/pybind11/docs/advanced/misc.rst +400 -0
  241. deme-2.0.1/thirdparty/pybind11/docs/advanced/pycpp/index.rst +13 -0
  242. deme-2.0.1/thirdparty/pybind11/docs/advanced/pycpp/numpy.rst +455 -0
  243. deme-2.0.1/thirdparty/pybind11/docs/advanced/pycpp/object.rst +286 -0
  244. deme-2.0.1/thirdparty/pybind11/docs/advanced/pycpp/utilities.rst +155 -0
  245. deme-2.0.1/thirdparty/pybind11/docs/advanced/smart_ptrs.rst +174 -0
  246. deme-2.0.1/thirdparty/pybind11/docs/basics.rst +307 -0
  247. deme-2.0.1/thirdparty/pybind11/docs/benchmark.py +87 -0
  248. deme-2.0.1/thirdparty/pybind11/docs/benchmark.rst +95 -0
  249. deme-2.0.1/thirdparty/pybind11/docs/changelog.rst +2732 -0
  250. deme-2.0.1/thirdparty/pybind11/docs/classes.rst +541 -0
  251. deme-2.0.1/thirdparty/pybind11/docs/cmake/index.rst +8 -0
  252. deme-2.0.1/thirdparty/pybind11/docs/compiling.rst +638 -0
  253. deme-2.0.1/thirdparty/pybind11/docs/conf.py +368 -0
  254. deme-2.0.1/thirdparty/pybind11/docs/faq.rst +307 -0
  255. deme-2.0.1/thirdparty/pybind11/docs/index.rst +48 -0
  256. deme-2.0.1/thirdparty/pybind11/docs/installing.rst +105 -0
  257. deme-2.0.1/thirdparty/pybind11/docs/limitations.rst +72 -0
  258. deme-2.0.1/thirdparty/pybind11/docs/pybind11-logo.png +0 -0
  259. deme-2.0.1/thirdparty/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
  260. deme-2.0.1/thirdparty/pybind11/docs/pybind11_vs_boost_python1.svg +427 -0
  261. deme-2.0.1/thirdparty/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
  262. deme-2.0.1/thirdparty/pybind11/docs/pybind11_vs_boost_python2.svg +427 -0
  263. deme-2.0.1/thirdparty/pybind11/docs/reference.rst +130 -0
  264. deme-2.0.1/thirdparty/pybind11/docs/release.rst +97 -0
  265. deme-2.0.1/thirdparty/pybind11/docs/requirements.txt +6 -0
  266. deme-2.0.1/thirdparty/pybind11/docs/upgrade.rst +552 -0
  267. deme-2.0.1/thirdparty/pybind11/include/pybind11/attr.h +678 -0
  268. deme-2.0.1/thirdparty/pybind11/include/pybind11/buffer_info.h +193 -0
  269. deme-2.0.1/thirdparty/pybind11/include/pybind11/cast.h +1667 -0
  270. deme-2.0.1/thirdparty/pybind11/include/pybind11/chrono.h +225 -0
  271. deme-2.0.1/thirdparty/pybind11/include/pybind11/common.h +2 -0
  272. deme-2.0.1/thirdparty/pybind11/include/pybind11/complex.h +74 -0
  273. deme-2.0.1/thirdparty/pybind11/include/pybind11/detail/class.h +743 -0
  274. deme-2.0.1/thirdparty/pybind11/include/pybind11/detail/common.h +1236 -0
  275. deme-2.0.1/thirdparty/pybind11/include/pybind11/detail/descr.h +158 -0
  276. deme-2.0.1/thirdparty/pybind11/include/pybind11/detail/init.h +434 -0
  277. deme-2.0.1/thirdparty/pybind11/include/pybind11/detail/internals.h +611 -0
  278. deme-2.0.1/thirdparty/pybind11/include/pybind11/detail/type_caster_base.h +1019 -0
  279. deme-2.0.1/thirdparty/pybind11/include/pybind11/detail/typeid.h +65 -0
  280. deme-2.0.1/thirdparty/pybind11/include/pybind11/eigen/matrix.h +701 -0
  281. deme-2.0.1/thirdparty/pybind11/include/pybind11/eigen/tensor.h +511 -0
  282. deme-2.0.1/thirdparty/pybind11/include/pybind11/eigen.h +12 -0
  283. deme-2.0.1/thirdparty/pybind11/include/pybind11/embed.h +317 -0
  284. deme-2.0.1/thirdparty/pybind11/include/pybind11/eval.h +156 -0
  285. deme-2.0.1/thirdparty/pybind11/include/pybind11/functional.h +137 -0
  286. deme-2.0.1/thirdparty/pybind11/include/pybind11/gil.h +239 -0
  287. deme-2.0.1/thirdparty/pybind11/include/pybind11/iostream.h +265 -0
  288. deme-2.0.1/thirdparty/pybind11/include/pybind11/numpy.h +1992 -0
  289. deme-2.0.1/thirdparty/pybind11/include/pybind11/operators.h +202 -0
  290. deme-2.0.1/thirdparty/pybind11/include/pybind11/options.h +92 -0
  291. deme-2.0.1/thirdparty/pybind11/include/pybind11/pybind11.h +2882 -0
  292. deme-2.0.1/thirdparty/pybind11/include/pybind11/pytypes.h +2487 -0
  293. deme-2.0.1/thirdparty/pybind11/include/pybind11/stl/filesystem.h +116 -0
  294. deme-2.0.1/thirdparty/pybind11/include/pybind11/stl.h +446 -0
  295. deme-2.0.1/thirdparty/pybind11/include/pybind11/stl_bind.h +845 -0
  296. deme-2.0.1/thirdparty/pybind11/noxfile.py +107 -0
  297. deme-2.0.1/thirdparty/pybind11/pybind11/__init__.py +17 -0
  298. deme-2.0.1/thirdparty/pybind11/pybind11/__main__.py +62 -0
  299. deme-2.0.1/thirdparty/pybind11/pybind11/_version.py +12 -0
  300. deme-2.0.1/thirdparty/pybind11/pybind11/commands.py +37 -0
  301. deme-2.0.1/thirdparty/pybind11/pybind11/py.typed +0 -0
  302. deme-2.0.1/thirdparty/pybind11/pybind11/setup_helpers.py +503 -0
  303. deme-2.0.1/thirdparty/pybind11/pyproject.toml +61 -0
  304. deme-2.0.1/thirdparty/pybind11/setup.cfg +50 -0
  305. deme-2.0.1/thirdparty/pybind11/setup.py +150 -0
  306. deme-2.0.1/thirdparty/pybind11/tests/CMakeLists.txt +583 -0
  307. deme-2.0.1/thirdparty/pybind11/tests/conftest.py +238 -0
  308. deme-2.0.1/thirdparty/pybind11/tests/constructor_stats.h +322 -0
  309. deme-2.0.1/thirdparty/pybind11/tests/cross_module_gil_utils.cpp +108 -0
  310. deme-2.0.1/thirdparty/pybind11/tests/cross_module_interleaved_error_already_set.cpp +51 -0
  311. deme-2.0.1/thirdparty/pybind11/tests/eigen_tensor_avoid_stl_array.cpp +14 -0
  312. deme-2.0.1/thirdparty/pybind11/tests/env.py +28 -0
  313. deme-2.0.1/thirdparty/pybind11/tests/extra_python_package/pytest.ini +0 -0
  314. deme-2.0.1/thirdparty/pybind11/tests/extra_python_package/test_files.py +288 -0
  315. deme-2.0.1/thirdparty/pybind11/tests/extra_setuptools/pytest.ini +0 -0
  316. deme-2.0.1/thirdparty/pybind11/tests/extra_setuptools/test_setuphelper.py +151 -0
  317. deme-2.0.1/thirdparty/pybind11/tests/local_bindings.h +92 -0
  318. deme-2.0.1/thirdparty/pybind11/tests/object.h +205 -0
  319. deme-2.0.1/thirdparty/pybind11/tests/pybind11_cross_module_tests.cpp +149 -0
  320. deme-2.0.1/thirdparty/pybind11/tests/pybind11_tests.cpp +123 -0
  321. deme-2.0.1/thirdparty/pybind11/tests/pybind11_tests.h +85 -0
  322. deme-2.0.1/thirdparty/pybind11/tests/pytest.ini +22 -0
  323. deme-2.0.1/thirdparty/pybind11/tests/requirements.txt +9 -0
  324. deme-2.0.1/thirdparty/pybind11/tests/test_async.cpp +25 -0
  325. deme-2.0.1/thirdparty/pybind11/tests/test_async.py +24 -0
  326. deme-2.0.1/thirdparty/pybind11/tests/test_buffers.cpp +224 -0
  327. deme-2.0.1/thirdparty/pybind11/tests/test_buffers.py +163 -0
  328. deme-2.0.1/thirdparty/pybind11/tests/test_builtin_casters.cpp +392 -0
  329. deme-2.0.1/thirdparty/pybind11/tests/test_builtin_casters.py +526 -0
  330. deme-2.0.1/thirdparty/pybind11/tests/test_call_policies.cpp +115 -0
  331. deme-2.0.1/thirdparty/pybind11/tests/test_call_policies.py +247 -0
  332. deme-2.0.1/thirdparty/pybind11/tests/test_callbacks.cpp +280 -0
  333. deme-2.0.1/thirdparty/pybind11/tests/test_callbacks.py +208 -0
  334. deme-2.0.1/thirdparty/pybind11/tests/test_chrono.cpp +81 -0
  335. deme-2.0.1/thirdparty/pybind11/tests/test_chrono.py +205 -0
  336. deme-2.0.1/thirdparty/pybind11/tests/test_class.cpp +657 -0
  337. deme-2.0.1/thirdparty/pybind11/tests/test_class.py +488 -0
  338. deme-2.0.1/thirdparty/pybind11/tests/test_cmake_build/CMakeLists.txt +84 -0
  339. deme-2.0.1/thirdparty/pybind11/tests/test_cmake_build/embed.cpp +23 -0
  340. deme-2.0.1/thirdparty/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +28 -0
  341. deme-2.0.1/thirdparty/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +39 -0
  342. deme-2.0.1/thirdparty/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +46 -0
  343. deme-2.0.1/thirdparty/pybind11/tests/test_cmake_build/main.cpp +6 -0
  344. deme-2.0.1/thirdparty/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +41 -0
  345. deme-2.0.1/thirdparty/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +35 -0
  346. deme-2.0.1/thirdparty/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +41 -0
  347. deme-2.0.1/thirdparty/pybind11/tests/test_cmake_build/test.py +8 -0
  348. deme-2.0.1/thirdparty/pybind11/tests/test_const_name.cpp +55 -0
  349. deme-2.0.1/thirdparty/pybind11/tests/test_const_name.py +29 -0
  350. deme-2.0.1/thirdparty/pybind11/tests/test_constants_and_functions.cpp +151 -0
  351. deme-2.0.1/thirdparty/pybind11/tests/test_constants_and_functions.py +52 -0
  352. deme-2.0.1/thirdparty/pybind11/tests/test_copy_move.cpp +295 -0
  353. deme-2.0.1/thirdparty/pybind11/tests/test_copy_move.py +132 -0
  354. deme-2.0.1/thirdparty/pybind11/tests/test_custom_type_casters.cpp +209 -0
  355. deme-2.0.1/thirdparty/pybind11/tests/test_custom_type_casters.py +121 -0
  356. deme-2.0.1/thirdparty/pybind11/tests/test_custom_type_setup.cpp +41 -0
  357. deme-2.0.1/thirdparty/pybind11/tests/test_custom_type_setup.py +48 -0
  358. deme-2.0.1/thirdparty/pybind11/tests/test_docstring_options.cpp +141 -0
  359. deme-2.0.1/thirdparty/pybind11/tests/test_docstring_options.py +64 -0
  360. deme-2.0.1/thirdparty/pybind11/tests/test_eigen_matrix.cpp +428 -0
  361. deme-2.0.1/thirdparty/pybind11/tests/test_eigen_matrix.py +784 -0
  362. deme-2.0.1/thirdparty/pybind11/tests/test_eigen_tensor.cpp +18 -0
  363. deme-2.0.1/thirdparty/pybind11/tests/test_eigen_tensor.inl +333 -0
  364. deme-2.0.1/thirdparty/pybind11/tests/test_eigen_tensor.py +290 -0
  365. deme-2.0.1/thirdparty/pybind11/tests/test_embed/CMakeLists.txt +47 -0
  366. deme-2.0.1/thirdparty/pybind11/tests/test_embed/catch.cpp +43 -0
  367. deme-2.0.1/thirdparty/pybind11/tests/test_embed/external_module.cpp +20 -0
  368. deme-2.0.1/thirdparty/pybind11/tests/test_embed/test_interpreter.cpp +468 -0
  369. deme-2.0.1/thirdparty/pybind11/tests/test_embed/test_interpreter.py +14 -0
  370. deme-2.0.1/thirdparty/pybind11/tests/test_embed/test_trampoline.py +16 -0
  371. deme-2.0.1/thirdparty/pybind11/tests/test_enum.cpp +133 -0
  372. deme-2.0.1/thirdparty/pybind11/tests/test_enum.py +264 -0
  373. deme-2.0.1/thirdparty/pybind11/tests/test_eval.cpp +118 -0
  374. deme-2.0.1/thirdparty/pybind11/tests/test_eval.py +50 -0
  375. deme-2.0.1/thirdparty/pybind11/tests/test_eval_call.py +4 -0
  376. deme-2.0.1/thirdparty/pybind11/tests/test_exceptions.cpp +342 -0
  377. deme-2.0.1/thirdparty/pybind11/tests/test_exceptions.h +13 -0
  378. deme-2.0.1/thirdparty/pybind11/tests/test_exceptions.py +383 -0
  379. deme-2.0.1/thirdparty/pybind11/tests/test_factory_constructors.cpp +430 -0
  380. deme-2.0.1/thirdparty/pybind11/tests/test_factory_constructors.py +516 -0
  381. deme-2.0.1/thirdparty/pybind11/tests/test_gil_scoped.cpp +144 -0
  382. deme-2.0.1/thirdparty/pybind11/tests/test_gil_scoped.py +244 -0
  383. deme-2.0.1/thirdparty/pybind11/tests/test_iostream.cpp +126 -0
  384. deme-2.0.1/thirdparty/pybind11/tests/test_iostream.py +295 -0
  385. deme-2.0.1/thirdparty/pybind11/tests/test_kwargs_and_defaults.cpp +281 -0
  386. deme-2.0.1/thirdparty/pybind11/tests/test_kwargs_and_defaults.py +390 -0
  387. deme-2.0.1/thirdparty/pybind11/tests/test_local_bindings.cpp +106 -0
  388. deme-2.0.1/thirdparty/pybind11/tests/test_local_bindings.py +257 -0
  389. deme-2.0.1/thirdparty/pybind11/tests/test_methods_and_attributes.cpp +459 -0
  390. deme-2.0.1/thirdparty/pybind11/tests/test_methods_and_attributes.py +527 -0
  391. deme-2.0.1/thirdparty/pybind11/tests/test_modules.cpp +125 -0
  392. deme-2.0.1/thirdparty/pybind11/tests/test_modules.py +120 -0
  393. deme-2.0.1/thirdparty/pybind11/tests/test_multiple_inheritance.cpp +341 -0
  394. deme-2.0.1/thirdparty/pybind11/tests/test_multiple_inheritance.py +493 -0
  395. deme-2.0.1/thirdparty/pybind11/tests/test_numpy_array.cpp +526 -0
  396. deme-2.0.1/thirdparty/pybind11/tests/test_numpy_array.py +593 -0
  397. deme-2.0.1/thirdparty/pybind11/tests/test_numpy_dtypes.cpp +614 -0
  398. deme-2.0.1/thirdparty/pybind11/tests/test_numpy_dtypes.py +446 -0
  399. deme-2.0.1/thirdparty/pybind11/tests/test_numpy_vectorize.cpp +107 -0
  400. deme-2.0.1/thirdparty/pybind11/tests/test_numpy_vectorize.py +266 -0
  401. deme-2.0.1/thirdparty/pybind11/tests/test_opaque_types.cpp +77 -0
  402. deme-2.0.1/thirdparty/pybind11/tests/test_opaque_types.py +58 -0
  403. deme-2.0.1/thirdparty/pybind11/tests/test_operator_overloading.cpp +281 -0
  404. deme-2.0.1/thirdparty/pybind11/tests/test_operator_overloading.py +151 -0
  405. deme-2.0.1/thirdparty/pybind11/tests/test_pickling.cpp +194 -0
  406. deme-2.0.1/thirdparty/pybind11/tests/test_pickling.py +93 -0
  407. deme-2.0.1/thirdparty/pybind11/tests/test_pytypes.cpp +814 -0
  408. deme-2.0.1/thirdparty/pybind11/tests/test_pytypes.py +885 -0
  409. deme-2.0.1/thirdparty/pybind11/tests/test_sequences_and_iterators.cpp +581 -0
  410. deme-2.0.1/thirdparty/pybind11/tests/test_sequences_and_iterators.py +251 -0
  411. deme-2.0.1/thirdparty/pybind11/tests/test_smart_ptr.cpp +470 -0
  412. deme-2.0.1/thirdparty/pybind11/tests/test_smart_ptr.py +315 -0
  413. deme-2.0.1/thirdparty/pybind11/tests/test_stl.cpp +551 -0
  414. deme-2.0.1/thirdparty/pybind11/tests/test_stl.py +377 -0
  415. deme-2.0.1/thirdparty/pybind11/tests/test_stl_binders.cpp +152 -0
  416. deme-2.0.1/thirdparty/pybind11/tests/test_stl_binders.py +337 -0
  417. deme-2.0.1/thirdparty/pybind11/tests/test_tagbased_polymorphic.cpp +147 -0
  418. deme-2.0.1/thirdparty/pybind11/tests/test_tagbased_polymorphic.py +28 -0
  419. deme-2.0.1/thirdparty/pybind11/tests/test_thread.cpp +66 -0
  420. deme-2.0.1/thirdparty/pybind11/tests/test_thread.py +42 -0
  421. deme-2.0.1/thirdparty/pybind11/tests/test_union.cpp +22 -0
  422. deme-2.0.1/thirdparty/pybind11/tests/test_union.py +8 -0
  423. deme-2.0.1/thirdparty/pybind11/tests/test_virtual_functions.cpp +592 -0
  424. deme-2.0.1/thirdparty/pybind11/tests/test_virtual_functions.py +459 -0
  425. deme-2.0.1/thirdparty/pybind11/tests/valgrind-numpy-scipy.supp +140 -0
  426. deme-2.0.1/thirdparty/pybind11/tests/valgrind-python.supp +117 -0
  427. deme-2.0.1/thirdparty/pybind11/tools/FindCatch.cmake +72 -0
  428. deme-2.0.1/thirdparty/pybind11/tools/FindEigen3.cmake +86 -0
  429. deme-2.0.1/thirdparty/pybind11/tools/FindPythonLibsNew.cmake +287 -0
  430. deme-2.0.1/thirdparty/pybind11/tools/JoinPaths.cmake +23 -0
  431. deme-2.0.1/thirdparty/pybind11/tools/check-style.sh +44 -0
  432. deme-2.0.1/thirdparty/pybind11/tools/cmake_uninstall.cmake.in +23 -0
  433. deme-2.0.1/thirdparty/pybind11/tools/codespell_ignore_lines_from_errors.py +35 -0
  434. deme-2.0.1/thirdparty/pybind11/tools/libsize.py +36 -0
  435. deme-2.0.1/thirdparty/pybind11/tools/make_changelog.py +62 -0
  436. deme-2.0.1/thirdparty/pybind11/tools/pybind11.pc.in +7 -0
  437. deme-2.0.1/thirdparty/pybind11/tools/pybind11Common.cmake +395 -0
  438. deme-2.0.1/thirdparty/pybind11/tools/pybind11Config.cmake.in +231 -0
  439. deme-2.0.1/thirdparty/pybind11/tools/pybind11NewTools.cmake +256 -0
  440. deme-2.0.1/thirdparty/pybind11/tools/pybind11Tools.cmake +233 -0
  441. deme-2.0.1/thirdparty/pybind11/tools/pyproject.toml +3 -0
  442. deme-2.0.1/thirdparty/pybind11/tools/setup_global.py.in +63 -0
  443. deme-2.0.1/thirdparty/pybind11/tools/setup_main.py.in +44 -0
@@ -0,0 +1,348 @@
1
+ # Copyright (c) 2021, SBEL GPU Development Team
2
+ # Copyright (c) 2021, University of Wisconsin - Madison
3
+ #
4
+ # SPDX-License-Identifier: BSD-3-Clause
5
+
6
+ # ---------------------------------------------------------------------------- #
7
+ # CMake Project Settings
8
+ # ---------------------------------------------------------------------------- #
9
+
10
+ cmake_minimum_required(VERSION 3.18)
11
+
12
+ # Version information
13
+ set(DEME_VERSION_MAJOR 2)
14
+ set(DEME_VERSION_MINOR 0)
15
+ set(DEME_VERSION_PATCH 0)
16
+
17
+ project(
18
+ Chrono-DEM-Engine
19
+ VERSION ${DEME_VERSION_MAJOR}.${DEME_VERSION_MINOR}.${DEME_VERSION_PATCH}
20
+ LANGUAGES CXX CUDA
21
+ )
22
+
23
+ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
24
+ message(STATUS "Setting CMAKE_BUILD_TYPE to 'Release' (default)")
25
+ set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build." FORCE)
26
+ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "RelWithDebInfo" "MinSizeRel")
27
+ endif()
28
+
29
+ add_compile_options(-fno-lto)
30
+
31
+ set(CMAKE_CXX_STANDARD 14)
32
+ set(CMAKE_THREAD_LIBS_INIT "-lpthread")
33
+ set(CMAKE_HAVE_THREADS_LIBRARY 1)
34
+ set(CMAKE_USE_WIN32_THREADS_INIT 0)
35
+ set(CMAKE_USE_PTHREADS_INIT 1)
36
+ set(THREADS_PREFER_PTHREAD_FLAG ON)
37
+
38
+
39
+ # ---------------------------------------------------------------------------- #
40
+ # Additional Packages
41
+ # ---------------------------------------------------------------------------- #
42
+
43
+ include(GNUInstallDirs)
44
+ include(CMakePackageConfigHelpers)
45
+ include(FetchContent)
46
+
47
+
48
+ find_package(CUDAToolkit REQUIRED)
49
+ find_package(Python COMPONENTS Interpreter Development)
50
+
51
+ add_subdirectory(thirdparty/pybind11)
52
+
53
+ set(CMAKE_SKIP_BUILD_RPATH FALSE)
54
+ set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
55
+
56
+ set(CMAKE_INSTALL_RPATH "$ENV{CONDA_PREFIX}/lib/python3.10/site-packages/lib")
57
+ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
58
+
59
+ # Find CUB library (this might need to be done in source-level config)
60
+ find_package(
61
+ CUB REQUIRED
62
+ HINTS ${CUDAToolkit_ROOT}/lib64/cmake/cub
63
+ )
64
+
65
+ # Find NVIDIA's Jitify library
66
+ find_path(
67
+ NVIDIAJitifyPath
68
+ NAMES jitify.hpp
69
+ PATHS "${CMAKE_CURRENT_LIST_DIR}/thirdparty/jitify"
70
+ )
71
+
72
+ set(NVIDIAJitifyPath "${CMAKE_CURRENT_LIST_DIR}/thirdparty/jitify")
73
+
74
+ # Include pyBind11 library
75
+ include_directories(${PYTHON_INCLUDE_DIRS})
76
+
77
+ # Let the user decide if they want to use ChPF
78
+ option(USE_CHPF "Toggle the use of ChPF for outputting" OFF)
79
+
80
+ if(USE_CHPF)
81
+ # Find ChPF, else fetch it
82
+ find_package(ChPF 3.0 QUIET)
83
+ if (NOT ChPF_FOUND)
84
+ FetchContent_Declare(
85
+ ChPF
86
+ GIT_REPOSITORY https://gitlab.com/uwsbel/chpf.git
87
+ GIT_TAG 0699f01e720cecf58719a1651ab797c6a62a1897
88
+ )
89
+ FetchContent_MakeAvailable(ChPF)
90
+ endif()
91
+
92
+ # Based on whether ChPF was found or fetched, set the target name CMake can use to find it
93
+ if (ChPF_FOUND)
94
+ set(ChPF_IMPORTED_NAME "ChPF::ChPF")
95
+ elseif (chpf_POPULATED)
96
+ set(ChPF_IMPORTED_NAME "ChPF")
97
+ endif()
98
+ endif()
99
+
100
+ # Let the user decide if they want to use managed arrays, rather than default cudaMalloc and cudaMallocHost memory.
101
+ # Note that turning this on gives no performance benefits, and it's considered legacy.
102
+ set(USE_MANAGED_ARRAYS_DESC
103
+ "Use managed CUDA arrays (instead of manual CUDA host and device memory) to store data"
104
+ "Switching it on makes the project operable on a Linux platform (excluding WSL) only."
105
+ )
106
+ option(USE_MANAGED_ARRAYS "${USE_MANAGED_ARRAYS_DESC}" OFF)
107
+
108
+ # ---------------------------------------------------------------------------- #
109
+ # Global Configuration
110
+ # ---------------------------------------------------------------------------- #
111
+
112
+ include(cmake/CxxStdAutodetect.cmake)
113
+
114
+ # The compiler will build against this C++ standard, if available.
115
+ set(TargetCXXStandard "STD_AUTODETECT" CACHE STRING "The C++ standard used by the compiler")
116
+ set_property(
117
+ CACHE TargetCXXStandard
118
+ PROPERTY
119
+ STRINGS STD_AUTODETECT STD_CXX11 STD_CXX14 STD_CXX17 STD_CXX20
120
+ )
121
+
122
+ # Defining option to build PyDEME wrapper
123
+
124
+ option(PYTHON_BUILD "Sets the build process for Python wrapper around DEME" OFF)
125
+ mark_as_advanced(PYTHON_BUILD)
126
+
127
+ # Convert the standard into something CMake will understand
128
+ if(TargetCXXStandard STREQUAL STD_CXX11)
129
+ set(CXXSTD_MAX 11)
130
+ elseif(TargetCXXStandard STREQUAL STD_CXX14)
131
+ set(CXXSTD_MAX 14)
132
+ elseif(TargetCXXStandard STREQUAL STD_CXX17)
133
+ set(CXXSTD_MAX 17)
134
+ elseif(TargetCXXStandard STREQUAL STD_CXX20)
135
+ set(CXXSTD_MAX 20)
136
+ else()
137
+ set(CXXSTD_MAX 17)
138
+ endif()
139
+ cxx_std_autodetect()
140
+
141
+ # Allow the use of #include <> for project headers (allowing cleaner better relative pathing)
142
+ set(ProjectIncludeSource "${CMAKE_CURRENT_SOURCE_DIR}/src")
143
+ set(ProjectIncludeGenerated "${CMAKE_BINARY_DIR}/src")
144
+
145
+ # Global fix for CUDA language bug
146
+ include_directories(${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
147
+
148
+
149
+ #------------------------------------------------------------
150
+ # Install destinations for data and demo programs
151
+ #------------------------------------------------------------
152
+
153
+ set(DEME_INSTALL_DEMO "bin")
154
+
155
+ # ---------------------------------------------------------------------------- #
156
+ # Source-level configuration
157
+ # ---------------------------------------------------------------------------- #
158
+
159
+ add_subdirectory(src/core)
160
+ add_subdirectory(src/DEM)
161
+ add_subdirectory(src/algorithms)
162
+
163
+ # ---------------------------------------------------------------------------- #
164
+ # Final Library Generation
165
+ # ---------------------------------------------------------------------------- #
166
+
167
+ add_library(
168
+ simulator_multi_gpu
169
+ STATIC
170
+ $<TARGET_OBJECTS:core>
171
+ $<TARGET_OBJECTS:DEM>
172
+ $<TARGET_OBJECTS:algorithms>
173
+ )
174
+
175
+ # Extract include directories from the object bundles
176
+ get_target_property(CORE_INTERFACE core INTERFACE_INCLUDE_DIRECTORIES)
177
+ get_target_property(DEM_INTERFACE DEM INTERFACE_INCLUDE_DIRECTORIES)
178
+ get_target_property(ALGORITHMS_INTERFACE algorithms INTERFACE_INCLUDE_DIRECTORIES)
179
+
180
+ # All targets use the same include directories, so we can cheat and just export one of them
181
+ target_include_directories(simulator_multi_gpu
182
+ PUBLIC ${CORE_INTERFACE}
183
+ )
184
+
185
+ if(NOT PYTHON_BUILD)
186
+ # If use ChPF, inform the source
187
+ if(USE_CHPF)
188
+ target_compile_definitions(simulator_multi_gpu PUBLIC DEME_USE_CHPF)
189
+ set(USE_CHPF_STR "ON")
190
+
191
+ target_link_libraries(simulator_multi_gpu
192
+ PUBLIC CUDA::cudart
193
+ PUBLIC CUDA::nvrtc
194
+ PUBLIC CUDA::cuda_driver
195
+ PUBLIC ${ChPF_IMPORTED_NAME}
196
+ PUBLIC DEMERuntimeDataHelper
197
+ )
198
+ else()
199
+ set(USE_CHPF_STR "OFF")
200
+
201
+ target_link_libraries(simulator_multi_gpu
202
+ PUBLIC CUDA::cudart
203
+ PUBLIC CUDA::nvrtc
204
+ PUBLIC CUDA::cuda_driver
205
+ PUBLIC DEMERuntimeDataHelper
206
+ )
207
+ endif()
208
+ else()
209
+ # py version does not use ChPF
210
+ set(USE_CHPF_STR "OFF")
211
+
212
+ target_link_libraries(simulator_multi_gpu
213
+ PUBLIC CUDA::cudart
214
+ PUBLIC CUDA::nvrtc
215
+ PUBLIC CUDA::cuda_driver
216
+ PUBLIC DEMERuntimeDataHelper_python
217
+ PUBLIC ${PYTHON_LIBRARIES}
218
+ )
219
+ endif()
220
+
221
+ # If use managed arrays, define a macro
222
+ if(USE_MANAGED_ARRAYS)
223
+ target_compile_definitions(simulator_multi_gpu PUBLIC DEME_USE_MANAGED_ARRAYS)
224
+ endif()
225
+
226
+ # Specific to Windows...
227
+ if(WIN32)
228
+ target_link_libraries(simulator_multi_gpu
229
+ PUBLIC dbghelp)
230
+ endif()
231
+
232
+ # Attach include directories to the top-level library target
233
+ set_target_properties(simulator_multi_gpu
234
+ PROPERTIES
235
+ LINKER_LANGUAGE CUDA
236
+ )
237
+
238
+ # ---------------------------------------------------------------------------- #
239
+ # Export and Install The Generated Targets
240
+ # ---------------------------------------------------------------------------- #
241
+
242
+ set(config_directory ${CMAKE_INSTALL_LIBDIR}/cmake/DEME)
243
+
244
+
245
+ # Install the library, creating an export target for it as well
246
+ if(NOT PYTHON_BUILD)
247
+ install(
248
+ TARGETS simulator_multi_gpu DEMERuntimeDataHelper
249
+ EXPORT DEMETargets
250
+ LIBRARY
251
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}
252
+ )
253
+ else()
254
+ install(
255
+ TARGETS simulator_multi_gpu DEMERuntimeDataHelper_python
256
+ EXPORT DEMETargets
257
+ LIBRARY
258
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}
259
+ )
260
+ endif()
261
+
262
+ install(CODE "message(\"Removing build-tree libraries from installation target...\")")
263
+ install(CODE "file(REMOVE \"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/libDEMERuntimeDataHelper.so\")")
264
+
265
+ if(NOT PYTHON_BUILD)
266
+ install(
267
+ TARGETS DEMERuntimeDataHelper_install
268
+ EXPORT DEMETargets
269
+ LIBRARY
270
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}
271
+ )
272
+ endif()
273
+
274
+ # Export the generated library target
275
+ export(EXPORT DEMETargets
276
+ FILE "${CMAKE_CURRENT_BINARY_DIR}/DEME/DEMETargets.cmake"
277
+ NAMESPACE DEME::
278
+ )
279
+
280
+ # Set the install location for the exported target file
281
+ install(
282
+ EXPORT DEMETargets
283
+ DESTINATION
284
+ ${config_directory}
285
+ NAMESPACE DEME::
286
+ )
287
+
288
+
289
+ # These macros aid in the generation of the installable config files
290
+
291
+
292
+ # Generate the **Build Tree** version of DEMEConfig.cmake from the base file
293
+ set(CONF_INCLUDE_DIRS "${ProjectIncludeSource}" "${ProjectIncludeGenerated}")
294
+
295
+ configure_file(cmake/DEMEConfig.cmake.in
296
+ "${CMAKE_CURRENT_BINARY_DIR}/DEME/DEMEConfig.cmake"
297
+ @ONLY
298
+ )
299
+
300
+
301
+ # Generate the _Install Tree_ version of DEMEConfig.cmake from the base file
302
+ file(RELATIVE_PATH REL_INCLUDE_DIR ${CMAKE_INSTALL_PREFIX}/${config_directory} ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR})
303
+ set(CONF_INCLUDE_DIRS "\${DEMECMakeDir}/${REL_INCLUDE_DIR}")
304
+ set(CONF_SHARE_DATA_DIRS "\${DEMECMakeDir}/${REL_INCLUDE_DIR}/../share/DEME/data")
305
+
306
+ # NOTE: This is placed in CMAKE_FILES_DIRECTORY to keep it out of the build tree
307
+ configure_file(cmake/DEMEConfig.cmake.in
308
+ "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/DEMEConfig.cmake"
309
+ @ONLY
310
+ )
311
+
312
+
313
+ # Automatically generate a DEMEConfigVersion.cmake file
314
+
315
+ write_basic_package_version_file(
316
+ ${CMAKE_CURRENT_BINARY_DIR}/DEME/DEMEConfigVersion.cmake
317
+ VERSION ${DEME_VERSION_MAJOR}.${DEME_VERSION_MINOR}.${DEME_VERSION_PATCH}
318
+ COMPATIBILITY AnyNewerVersion
319
+ )
320
+
321
+ # Install the generated config files
322
+ install(
323
+ FILES
324
+ "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/DEMEConfig.cmake"
325
+ "${CMAKE_CURRENT_BINARY_DIR}/DEME/DEMEConfigVersion.cmake"
326
+ DESTINATION
327
+ ${config_directory}
328
+ )
329
+
330
+ # ---------------------------------------------------------------------------- #
331
+ # Copy data directory over
332
+ # ---------------------------------------------------------------------------- #
333
+ file(COPY ${CMAKE_CURRENT_LIST_DIR}/data/ DESTINATION ${CMAKE_BINARY_DIR}/data/)
334
+ install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/data/ DESTINATION ${CMAKE_INSTALL_DATADIR}/DEME/data/)
335
+
336
+ # ---------------------------------------------------------------------------- #
337
+ # Copy kernels over
338
+ # ---------------------------------------------------------------------------- #
339
+ file(COPY ${CMAKE_CURRENT_LIST_DIR}/src/kernel/ DESTINATION ${CMAKE_BINARY_DIR}/kernel/)
340
+ file(COPY ${CMAKE_CURRENT_LIST_DIR}/src/DEM/Defines.h DESTINATION ${CMAKE_BINARY_DIR}/DEM)
341
+ file(COPY ${CMAKE_CURRENT_LIST_DIR}/src/DEM/VariableTypes.h DESTINATION ${CMAKE_BINARY_DIR}/DEM)
342
+ install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/src/kernel/ DESTINATION ${CMAKE_INSTALL_DATADIR}/DEME/kernel/)
343
+
344
+ # ---------------------------------------------------------------------------- #
345
+ # Build embedded demos
346
+ # ---------------------------------------------------------------------------- #
347
+ add_subdirectory(src/demo)
348
+
deme-2.0.1/LICENSE.md ADDED
@@ -0,0 +1,21 @@
1
+
2
+ Copyright (c) 2021, SBEL GPU Development Team.
3
+ Copyright (c) 2021, University of Wisconsin - Madison
4
+
5
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
6
+
7
+ 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
8
+ 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
9
+ 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
10
+
11
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
12
+
13
+
14
+ > See CONTRIBUTORS.md for a list of project authors by name and date.
15
+
16
+ ### NOTICE OF THIRDPARTY LICENSES
17
+
18
+ This project depends on certain third party software which is governed by its own licensing and distribution guidelines. Project files in the `thirdparty/` directory may contain their own `LICENSE` or `COPYING`` notices which should be consulted before the use or distribution of this software.
19
+
20
+ Software components obtained and modified from external (compatibly-licensed) sources may be found in the project's main source tree (`src/`) and should be clearly marked as modifications of the original work.
21
+
deme-2.0.1/MANIFEST.in ADDED
@@ -0,0 +1,6 @@
1
+ graft src
2
+ graft cmake
3
+ graft thirdparty
4
+ graft data
5
+
6
+ include *.txt
deme-2.0.1/PKG-INFO ADDED
@@ -0,0 +1,15 @@
1
+ Metadata-Version: 2.1
2
+ Name: deme
3
+ Version: 2.0.1
4
+ Summary: PyBind Wrapper Library for DEM-Engine
5
+ Home-page: UNKNOWN
6
+ Author: Ruochun Zhang
7
+ Author-email: ruochunz@gmail.com
8
+ License: UNKNOWN
9
+ Platform: UNKNOWN
10
+ Provides-Extra: dev
11
+ Provides-Extra: test
12
+ License-File: LICENSE.md
13
+
14
+ UNKNOWN
15
+