capytaine 2.2__tar.gz → 2.3__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 (284) hide show
  1. {capytaine-2.2 → capytaine-2.3}/.github/workflows/build_docs.yml +4 -1
  2. capytaine-2.3/.github/workflows/build_wheels.yaml +64 -0
  3. {capytaine-2.2 → capytaine-2.3}/.github/workflows/test_new_commits.yaml +17 -12
  4. {capytaine-2.2 → capytaine-2.3}/.github/workflows/test_with_latest_dependencies.yaml +5 -8
  5. {capytaine-2.2 → capytaine-2.3}/.gitignore +1 -0
  6. {capytaine-2.2 → capytaine-2.3}/.pre-commit-config.yaml +1 -1
  7. capytaine-2.3/CONTRIBUTING.md +18 -0
  8. {capytaine-2.2 → capytaine-2.3}/Makefile +4 -2
  9. capytaine-2.3/PKG-INFO +761 -0
  10. {capytaine-2.2 → capytaine-2.3}/README.md +2 -0
  11. {capytaine-2.2 → capytaine-2.3}/capytaine/__about__.py +1 -1
  12. {capytaine-2.2 → capytaine-2.3}/capytaine/__init__.py +2 -1
  13. {capytaine-2.2 → capytaine-2.3}/capytaine/bem/airy_waves.py +7 -2
  14. {capytaine-2.2 → capytaine-2.3}/capytaine/bem/engines.py +2 -2
  15. {capytaine-2.2 → capytaine-2.3}/capytaine/bem/problems_and_results.py +82 -35
  16. {capytaine-2.2 → capytaine-2.3}/capytaine/bem/solver.py +138 -41
  17. {capytaine-2.2 → capytaine-2.3}/capytaine/bodies/bodies.py +40 -12
  18. {capytaine-2.2 → capytaine-2.3}/capytaine/bodies/predefined/rectangles.py +2 -0
  19. capytaine-2.3/capytaine/green_functions/FinGreen3D/.gitignore +1 -0
  20. capytaine-2.3/capytaine/green_functions/FinGreen3D/FinGreen3D.f90 +3589 -0
  21. capytaine-2.3/capytaine/green_functions/FinGreen3D/LICENSE +165 -0
  22. capytaine-2.3/capytaine/green_functions/FinGreen3D/Makefile +16 -0
  23. capytaine-2.3/capytaine/green_functions/FinGreen3D/README.md +24 -0
  24. capytaine-2.3/capytaine/green_functions/FinGreen3D/test_program.f90 +39 -0
  25. capytaine-2.3/capytaine/green_functions/LiangWuNoblesse/.gitignore +1 -0
  26. capytaine-2.3/capytaine/green_functions/LiangWuNoblesse/LICENSE +504 -0
  27. capytaine-2.3/capytaine/green_functions/LiangWuNoblesse/LiangWuNoblesseWaveTerm.f90 +751 -0
  28. capytaine-2.3/capytaine/green_functions/LiangWuNoblesse/Makefile +18 -0
  29. capytaine-2.3/capytaine/green_functions/LiangWuNoblesse/README.md +2 -0
  30. capytaine-2.3/capytaine/green_functions/LiangWuNoblesse/test_program.f90 +28 -0
  31. capytaine-2.3/capytaine/green_functions/abstract_green_function.py +64 -0
  32. {capytaine-2.2 → capytaine-2.3}/capytaine/green_functions/delhommeau.py +186 -115
  33. capytaine-2.3/capytaine/green_functions/hams.py +204 -0
  34. {capytaine-2.2 → capytaine-2.3}/capytaine/green_functions/libDelhommeau/Makefile +17 -4
  35. {capytaine-2.2 → capytaine-2.3}/capytaine/green_functions/libDelhommeau/benchmarks/openmp/benchmark_omp.f90 +7 -53
  36. {capytaine-2.2 → capytaine-2.3}/capytaine/green_functions/libDelhommeau/benchmarks/profiling/benchmark_profiling.f90 +6 -51
  37. capytaine-2.3/capytaine/green_functions/libDelhommeau/benchmarks/rankine/benchmark_rankine.f90 +71 -0
  38. {capytaine-2.2 → capytaine-2.3}/capytaine/green_functions/libDelhommeau/benchmarks/tabulations/benchmark_tabulation.f90 +1 -1
  39. capytaine-2.3/capytaine/green_functions/libDelhommeau/benchmarks/waves/benchmark_waves.f90 +186 -0
  40. {capytaine-2.2 → capytaine-2.3}/capytaine/green_functions/libDelhommeau/examples/minimal/minimal_example.f90 +25 -40
  41. {capytaine-2.2 → capytaine-2.3}/capytaine/green_functions/libDelhommeau/examples/minimal/minimal_example.py +5 -5
  42. {capytaine-2.2 → capytaine-2.3}/capytaine/green_functions/libDelhommeau/src/Delhommeau_integrals.f90 +95 -89
  43. capytaine-2.3/capytaine/green_functions/libDelhommeau/src/FinGreen3D.f90 +3589 -0
  44. capytaine-2.3/capytaine/green_functions/libDelhommeau/src/Green_Rankine.f90 +331 -0
  45. capytaine-2.3/capytaine/green_functions/libDelhommeau/src/Green_wave.f90 +604 -0
  46. capytaine-2.3/capytaine/green_functions/libDelhommeau/src/LiangWuNoblesseWaveTerm.f90 +751 -0
  47. {capytaine-2.2 → capytaine-2.3}/capytaine/green_functions/libDelhommeau/src/constants.f90 +8 -1
  48. capytaine-2.3/capytaine/green_functions/libDelhommeau/src/interface.f90 +59 -0
  49. capytaine-2.3/capytaine/green_functions/libDelhommeau/src/matrices.f90 +421 -0
  50. {capytaine-2.2 → capytaine-2.3}/capytaine/green_functions/libDelhommeau/src/old_Prony_decomposition.f90 +15 -14
  51. {capytaine-2.2 → capytaine-2.3}/capytaine/io/bemio.py +14 -2
  52. {capytaine-2.2 → capytaine-2.3}/capytaine/io/mesh_loaders.py +2 -1
  53. capytaine-2.3/capytaine/io/wamit.py +479 -0
  54. {capytaine-2.2 → capytaine-2.3}/capytaine/io/xarray.py +252 -100
  55. {capytaine-2.2 → capytaine-2.3}/capytaine/matrices/block.py +4 -2
  56. {capytaine-2.2 → capytaine-2.3}/capytaine/matrices/linear_solvers.py +1 -1
  57. {capytaine-2.2 → capytaine-2.3}/capytaine/matrices/low_rank.py +3 -1
  58. {capytaine-2.2 → capytaine-2.3}/capytaine/meshes/clipper.py +4 -3
  59. {capytaine-2.2 → capytaine-2.3}/capytaine/meshes/collections.py +11 -1
  60. capytaine-2.3/capytaine/meshes/mesh_like_protocol.py +37 -0
  61. {capytaine-2.2 → capytaine-2.3}/capytaine/meshes/meshes.py +22 -9
  62. {capytaine-2.2 → capytaine-2.3}/capytaine/meshes/properties.py +58 -24
  63. {capytaine-2.2 → capytaine-2.3}/capytaine/meshes/symmetric.py +11 -2
  64. {capytaine-2.2 → capytaine-2.3}/capytaine/post_pro/kochin.py +4 -4
  65. {capytaine-2.2 → capytaine-2.3}/capytaine/tools/lists_of_points.py +3 -3
  66. capytaine-2.3/capytaine/tools/prony_decomposition.py +150 -0
  67. {capytaine-2.2 → capytaine-2.3}/capytaine/tools/symbolic_multiplication.py +30 -2
  68. capytaine-2.3/capytaine/tools/timer.py +64 -0
  69. {capytaine-2.2 → capytaine-2.3}/docs/changelog.rst +151 -1
  70. capytaine-2.3/docs/citing.rst +127 -0
  71. capytaine-2.2/CONTRIBUTING.md → capytaine-2.3/docs/developer_manual/contributing.rst +14 -24
  72. {capytaine-2.2 → capytaine-2.3}/docs/developer_manual/index.rst +3 -0
  73. {capytaine-2.2 → capytaine-2.3}/docs/developer_manual/installation.rst +98 -80
  74. capytaine-2.3/docs/developer_manual/making_a_release.rst +104 -0
  75. capytaine-2.3/docs/developer_manual/testing.rst +141 -0
  76. capytaine-2.3/docs/examples/A_beginners_cookbook.rst +84 -0
  77. capytaine-2.3/docs/examples/B_intermediate_cookbook.rst +93 -0
  78. capytaine-2.3/docs/examples/C_advanced_cookbook.rst +87 -0
  79. capytaine-2.3/docs/examples/index.rst +12 -0
  80. capytaine-2.2/docs/user_manual/examples/radiation_cylinder.py → capytaine-2.3/docs/examples/src/A1_radiation_cylinder.py +13 -11
  81. capytaine-2.2/docs/user_manual/examples/multibody.py → capytaine-2.3/docs/examples/src/A2_multibody.py +0 -3
  82. capytaine-2.3/docs/examples/src/A3_finite_depth_cylinder.py +46 -0
  83. capytaine-2.2/docs/user_manual/examples/custom_dofs.py → capytaine-2.3/docs/examples/src/A4_custom_dofs.py +0 -2
  84. capytaine-2.2/docs/user_manual/examples/elasticity_of_beam.py → capytaine-2.3/docs/examples/src/A7_elasticity_of_beam.py +0 -3
  85. capytaine-2.3/docs/examples/src/A8_export_dataset.py +45 -0
  86. capytaine-2.2/docs/user_manual/examples/pressure_on_hull.py → capytaine-2.3/docs/examples/src/B1_pressure_on_hull.py +4 -1
  87. capytaine-2.2/docs/user_manual/examples/haskind.py → capytaine-2.3/docs/examples/src/B2_haskind.py +1 -5
  88. capytaine-2.2/docs/user_manual/examples/free_surface_elevation.py → capytaine-2.3/docs/examples/src/B3_free_surface_elevation.py +0 -2
  89. capytaine-2.2/docs/user_manual/examples/kochin.py → capytaine-2.3/docs/examples/src/B4_kochin.py +1 -1
  90. capytaine-2.2/docs/user_manual/examples/plot_velocity_in_domain.py → capytaine-2.3/docs/examples/src/B5_plot_velocity_in_domain.py +4 -4
  91. capytaine-2.2/docs/user_manual/examples/animate_free_surface.py → capytaine-2.3/docs/examples/src/B6_animate_free_surface.py +0 -2
  92. capytaine-2.3/docs/examples/src/B8_pressure_infinite_frequency.py +26 -0
  93. capytaine-2.3/docs/examples/src/C10_custom_linear_solver_on_gpu.py +90 -0
  94. capytaine-2.2/docs/user_manual/examples/plot_influence_matrix.py → capytaine-2.3/docs/examples/src/C5_plot_influence_matrix.py +0 -2
  95. capytaine-2.2/docs/user_manual/examples/axisymmetric_buoy.py → capytaine-2.3/docs/examples/src/C6_axisymmetric_buoy.py +1 -3
  96. capytaine-2.2/docs/user_manual/examples/preconditioner.py → capytaine-2.3/docs/examples/src/C7_h_matrices_with_preconditionner.py +0 -2
  97. capytaine-2.3/docs/examples/src/C8_compare_Green_functions.py +41 -0
  98. capytaine-2.3/docs/examples/src/C9_custom_Green_function.py +106 -0
  99. {capytaine-2.2/docs/user_manual/examples → capytaine-2.3/docs/examples/src}/quickstart.py +2 -2
  100. capytaine-2.3/docs/examples/validation.rst +17 -0
  101. {capytaine-2.2 → capytaine-2.3}/docs/index.rst +7 -2
  102. {capytaine-2.2 → capytaine-2.3}/docs/theory_manual/theory.rst +41 -1
  103. capytaine-2.3/docs/user_manual/Panel_convention.svg +187 -0
  104. {capytaine-2.2 → capytaine-2.3}/docs/user_manual/body.rst +3 -10
  105. {capytaine-2.2 → capytaine-2.3}/docs/user_manual/conventions.rst +1 -1
  106. capytaine-2.3/docs/user_manual/export_output.rst +166 -0
  107. {capytaine-2.2 → capytaine-2.3}/docs/user_manual/index.rst +1 -2
  108. capytaine-2.3/docs/user_manual/installation.rst +156 -0
  109. {capytaine-2.2 → capytaine-2.3}/docs/user_manual/mesh.rst +69 -36
  110. capytaine-2.3/docs/user_manual/post_pro.rst +256 -0
  111. {capytaine-2.2 → capytaine-2.3}/docs/user_manual/problem_setup.rst +46 -4
  112. {capytaine-2.2 → capytaine-2.3}/docs/user_manual/quickstart.rst +2 -4
  113. {capytaine-2.2 → capytaine-2.3}/docs/user_manual/resolution.rst +120 -21
  114. {capytaine-2.2 → capytaine-2.3}/docs/user_manual/tutorial.rst +1 -1
  115. {capytaine-2.2 → capytaine-2.3}/editable_install_requirements.txt +4 -3
  116. {capytaine-2.2 → capytaine-2.3}/meson.build +15 -8
  117. {capytaine-2.2 → capytaine-2.3}/noxfile.py +34 -21
  118. {capytaine-2.2 → capytaine-2.3}/pyproject.toml +17 -6
  119. {capytaine-2.2 → capytaine-2.3}/pytest/envs/2023-08-01-py3.8.txt +13 -1
  120. capytaine-2.3/pytest/envs/2024-10-22-py3.12.txt +81 -0
  121. capytaine-2.3/pytest/envs/2025-04-18-py3.12.txt +93 -0
  122. capytaine-2.2/pytest/test_bem_engines.py → capytaine-2.3/pytest/test_bem_engines_basic_matric_engine.py +24 -4
  123. capytaine-2.2/pytest/test_bem_hierarchical_toeplitz_matrices.py → capytaine-2.3/pytest/test_bem_engines_hierarchical_toeplitz_matrices.py +16 -16
  124. {capytaine-2.2 → capytaine-2.3}/pytest/test_bem_irregular_frequencies_removal.py +40 -4
  125. {capytaine-2.2 → capytaine-2.3}/pytest/test_bem_linear_combination_of_dofs.py +4 -4
  126. capytaine-2.3/pytest/test_bem_no_free_surface.py +27 -0
  127. capytaine-2.3/pytest/test_bem_problems_and_results.py +329 -0
  128. {capytaine-2.2 → capytaine-2.3}/pytest/test_bem_solver.py +48 -17
  129. capytaine-2.3/pytest/test_bem_zero_and_infinite_freq.py +212 -0
  130. {capytaine-2.2 → capytaine-2.3}/pytest/test_bodies.py +53 -0
  131. {capytaine-2.2 → capytaine-2.3}/pytest/test_bodies_predefined.py +11 -0
  132. capytaine-2.3/pytest/test_consistency_with_HAMS.py +55 -0
  133. {capytaine-2.2 → capytaine-2.3}/pytest/test_consistency_with_Nemoh_2.py +2 -0
  134. capytaine-2.3/pytest/test_consistency_with_analytical_solutions.py +31 -0
  135. {capytaine-2.2 → capytaine-2.3}/pytest/test_forward_speed.py +7 -7
  136. capytaine-2.3/pytest/test_green_functions_finite_depth.py +202 -0
  137. capytaine-2.2/pytest/test_bem_green_function_fortran_core.py → capytaine-2.3/pytest/test_green_functions_fortran_core.py +61 -71
  138. capytaine-2.3/pytest/test_green_functions_table_density.py +140 -0
  139. capytaine-2.3/pytest/test_io_bemio.py +26 -0
  140. capytaine-2.2/pytest/test_io.py → capytaine-2.3/pytest/test_io_legacy.py +3 -64
  141. {capytaine-2.2 → capytaine-2.3}/pytest/test_io_meshes.py +1 -1
  142. {capytaine-2.2 → capytaine-2.3}/pytest/test_io_meshes_gdf.py +0 -1
  143. capytaine-2.3/pytest/test_io_wamit.py +313 -0
  144. capytaine-2.3/pytest/test_io_xarray.py +333 -0
  145. {capytaine-2.2 → capytaine-2.3}/pytest/test_meshes.py +47 -79
  146. capytaine-2.3/pytest/test_meshes_clipping.py +102 -0
  147. {capytaine-2.2 → capytaine-2.3}/pytest/test_meshes_collections_and_symmetries.py +15 -0
  148. capytaine-2.3/pytest/test_meshes_interface.py +81 -0
  149. {capytaine-2.2 → capytaine-2.3}/pytest/test_meshes_lid_generation.py +70 -1
  150. capytaine-2.3/pytest/test_tool_symbolic_multiplication.py +67 -0
  151. capytaine-2.2/.github/workflows/build_wheels.yaml +0 -46
  152. capytaine-2.2/Dockerfile +0 -13
  153. capytaine-2.2/PKG-INFO +0 -751
  154. capytaine-2.2/capytaine/green_functions/abstract_green_function.py +0 -12
  155. capytaine-2.2/capytaine/green_functions/libDelhommeau/src/Green_Rankine.f90 +0 -148
  156. capytaine-2.2/capytaine/green_functions/libDelhommeau/src/Green_wave.f90 +0 -402
  157. capytaine-2.2/capytaine/green_functions/libDelhommeau/src/matrices.f90 +0 -302
  158. capytaine-2.2/capytaine/tools/prony_decomposition.py +0 -94
  159. capytaine-2.2/capytaine.scm +0 -61
  160. capytaine-2.2/docs/citing.rst +0 -61
  161. capytaine-2.2/docs/user_manual/cookbook.rst +0 -161
  162. capytaine-2.2/docs/user_manual/examples/compare_Green_functions.py +0 -33
  163. capytaine-2.2/docs/user_manual/examples/custom_Green_function.py +0 -62
  164. capytaine-2.2/docs/user_manual/examples/finite_depth_cylinder.py +0 -52
  165. capytaine-2.2/docs/user_manual/installation.rst +0 -149
  166. capytaine-2.2/docs/user_manual/outputs.rst +0 -289
  167. capytaine-2.2/docs/user_manual/post_pro.rst +0 -120
  168. capytaine-2.2/pytest/Nemoh_verification_cases/Nemoh.m +0 -121
  169. capytaine-2.2/pytest/test_bem_green_function_table_density.py +0 -107
  170. capytaine-2.2/pytest/test_bem_problems_and_results.py +0 -349
  171. capytaine-2.2/pytest/test_bem_zero_and_infinite_freq.py +0 -58
  172. capytaine-2.2/pytest/test_tool_symbolic_multiplication.py +0 -102
  173. {capytaine-2.2 → capytaine-2.3}/.zenodo.json +0 -0
  174. {capytaine-2.2 → capytaine-2.3}/LICENSE +0 -0
  175. {capytaine-2.2 → capytaine-2.3}/capytaine/bem/__init__.py +0 -0
  176. {capytaine-2.2 → capytaine-2.3}/capytaine/bodies/__init__.py +0 -0
  177. {capytaine-2.2 → capytaine-2.3}/capytaine/bodies/dofs.py +0 -0
  178. {capytaine-2.2 → capytaine-2.3}/capytaine/bodies/predefined/__init__.py +0 -0
  179. {capytaine-2.2 → capytaine-2.3}/capytaine/bodies/predefined/cylinders.py +0 -0
  180. {capytaine-2.2 → capytaine-2.3}/capytaine/bodies/predefined/spheres.py +0 -0
  181. {capytaine-2.2 → capytaine-2.3}/capytaine/green_functions/__init__.py +0 -0
  182. {capytaine-2.2 → capytaine-2.3}/capytaine/green_functions/libDelhommeau/.gitignore +0 -0
  183. {capytaine-2.2 → capytaine-2.3}/capytaine/green_functions/libDelhommeau/LICENSE +0 -0
  184. {capytaine-2.2 → capytaine-2.3}/capytaine/green_functions/libDelhommeau/README.md +0 -0
  185. {capytaine-2.2 → capytaine-2.3}/capytaine/green_functions/libDelhommeau/benchmarks/openmp/display_mesh.py +0 -0
  186. {capytaine-2.2 → capytaine-2.3}/capytaine/green_functions/libDelhommeau/benchmarks/openmp/read_output.py +0 -0
  187. {capytaine-2.2 → capytaine-2.3}/capytaine/green_functions/libDelhommeau/src/float32.f90 +0 -0
  188. {capytaine-2.2 → capytaine-2.3}/capytaine/green_functions/libDelhommeau/src/float64.f90 +0 -0
  189. {capytaine-2.2 → capytaine-2.3}/capytaine/green_functions/libs/__init__.py +0 -0
  190. {capytaine-2.2 → capytaine-2.3}/capytaine/io/__init__.py +0 -0
  191. {capytaine-2.2 → capytaine-2.3}/capytaine/io/legacy.py +0 -0
  192. {capytaine-2.2 → capytaine-2.3}/capytaine/io/mesh_writers.py +0 -0
  193. {capytaine-2.2 → capytaine-2.3}/capytaine/io/meshio.py +0 -0
  194. {capytaine-2.2 → capytaine-2.3}/capytaine/matrices/__init__.py +0 -0
  195. {capytaine-2.2 → capytaine-2.3}/capytaine/matrices/block_toeplitz.py +0 -0
  196. {capytaine-2.2 → capytaine-2.3}/capytaine/matrices/builders.py +0 -0
  197. {capytaine-2.2 → capytaine-2.3}/capytaine/meshes/__init__.py +0 -0
  198. {capytaine-2.2 → capytaine-2.3}/capytaine/meshes/geometry.py +0 -0
  199. {capytaine-2.2 → capytaine-2.3}/capytaine/meshes/predefined/__init__.py +0 -0
  200. {capytaine-2.2 → capytaine-2.3}/capytaine/meshes/predefined/cylinders.py +0 -0
  201. {capytaine-2.2 → capytaine-2.3}/capytaine/meshes/predefined/rectangles.py +0 -0
  202. {capytaine-2.2 → capytaine-2.3}/capytaine/meshes/predefined/spheres.py +0 -0
  203. {capytaine-2.2 → capytaine-2.3}/capytaine/meshes/quadratures.py +0 -0
  204. {capytaine-2.2 → capytaine-2.3}/capytaine/meshes/quality.py +0 -0
  205. {capytaine-2.2 → capytaine-2.3}/capytaine/meshes/surface_integrals.py +0 -0
  206. {capytaine-2.2 → capytaine-2.3}/capytaine/post_pro/__init__.py +0 -0
  207. {capytaine-2.2 → capytaine-2.3}/capytaine/post_pro/free_surfaces.py +0 -0
  208. {capytaine-2.2 → capytaine-2.3}/capytaine/post_pro/impedance.py +0 -0
  209. {capytaine-2.2 → capytaine-2.3}/capytaine/post_pro/rao.py +0 -0
  210. {capytaine-2.2 → capytaine-2.3}/capytaine/tools/__init__.py +0 -0
  211. {capytaine-2.2 → capytaine-2.3}/capytaine/tools/cache_on_disk.py +0 -0
  212. {capytaine-2.2 → capytaine-2.3}/capytaine/tools/deprecation_handling.py +0 -0
  213. {capytaine-2.2 → capytaine-2.3}/capytaine/tools/lru_cache.py +0 -0
  214. {capytaine-2.2 → capytaine-2.3}/capytaine/tools/optional_imports.py +0 -0
  215. {capytaine-2.2 → capytaine-2.3}/capytaine/ui/__init__.py +0 -0
  216. {capytaine-2.2 → capytaine-2.3}/capytaine/ui/cli.py +0 -0
  217. {capytaine-2.2 → capytaine-2.3}/capytaine/ui/rich.py +0 -0
  218. {capytaine-2.2 → capytaine-2.3}/capytaine/ui/vtk/__init__.py +0 -0
  219. {capytaine-2.2 → capytaine-2.3}/capytaine/ui/vtk/animation.py +0 -0
  220. {capytaine-2.2 → capytaine-2.3}/capytaine/ui/vtk/body_viewer.py +0 -0
  221. {capytaine-2.2 → capytaine-2.3}/capytaine/ui/vtk/helpers.py +0 -0
  222. {capytaine-2.2 → capytaine-2.3}/capytaine/ui/vtk/mesh_viewer.py +0 -0
  223. {capytaine-2.2 → capytaine-2.3}/code_of_conduct.md +0 -0
  224. {capytaine-2.2 → capytaine-2.3}/docs/Makefile +0 -0
  225. {capytaine-2.2 → capytaine-2.3}/docs/_static/custom.css +0 -0
  226. {capytaine-2.2 → capytaine-2.3}/docs/_static/proof.css +0 -0
  227. {capytaine-2.2 → capytaine-2.3}/docs/_static/proof.js +0 -0
  228. {capytaine-2.2 → capytaine-2.3}/docs/_templates/layout.html +0 -0
  229. {capytaine-2.2 → capytaine-2.3}/docs/conf.py +0 -0
  230. {capytaine-2.2 → capytaine-2.3}/docs/developer_manual/overview.rst +0 -0
  231. /capytaine-2.2/docs/user_manual/examples/convergence_study.py → /capytaine-2.3/docs/examples/src/A5_convergence_study.py +0 -0
  232. /capytaine-2.2/docs/user_manual/examples/irregular_frequency_removal.py → /capytaine-2.3/docs/examples/src/A6_irregular_frequency_removal.py +0 -0
  233. /capytaine-2.2/docs/user_manual/examples/boat_animation.py → /capytaine-2.3/docs/examples/src/B7_boat_animation.py +0 -0
  234. /capytaine-2.2/docs/user_manual/examples/Malenica_forward_speed.py → /capytaine-2.3/docs/examples/src/V_Malenica_forward_speed.py +0 -0
  235. /capytaine-2.2/docs/user_manual/examples/hydrostatics.py → /capytaine-2.3/docs/examples/src/V_hydrostatics.py +0 -0
  236. {capytaine-2.2/docs/user_manual/examples → capytaine-2.3/docs/examples/src}/boat_200.mar +0 -0
  237. {capytaine-2.2 → capytaine-2.3}/docs/features.rst +0 -0
  238. {capytaine-2.2 → capytaine-2.3}/docs/theory_manual/bibliography.rst +0 -0
  239. {capytaine-2.2 → capytaine-2.3}/docs/theory_manual/index.rst +0 -0
  240. {capytaine-2.2/docs/user_manual/examples → capytaine-2.3/docs/user_manual}/Nemoh.cal +0 -0
  241. {capytaine-2.2 → capytaine-2.3}/docs/user_manual/hydrostatics.rst +0 -0
  242. {capytaine-2.2 → capytaine-2.3}/pytest/Bemio_verification_cases/sphere.out +0 -0
  243. {capytaine-2.2 → capytaine-2.3}/pytest/Hydrostatics_cases/sphere__hor_cyl__ver_cyl.pkl.json +0 -0
  244. {capytaine-2.2 → capytaine-2.3}/pytest/Nemoh_verification_cases/Cylinder/Cylinder.dat +0 -0
  245. {capytaine-2.2 → capytaine-2.3}/pytest/Nemoh_verification_cases/Cylinder/Nemoh.cal +0 -0
  246. {capytaine-2.2 → capytaine-2.3}/pytest/Nemoh_verification_cases/Cylinder/Nemoh_v3.cal +0 -0
  247. {capytaine-2.2 → capytaine-2.3}/pytest/Nemoh_verification_cases/Cylinder/reference_results/DiffractionForce.tec +0 -0
  248. {capytaine-2.2 → capytaine-2.3}/pytest/Nemoh_verification_cases/Cylinder/reference_results/ExcitationForce.tec +0 -0
  249. {capytaine-2.2 → capytaine-2.3}/pytest/Nemoh_verification_cases/Cylinder/reference_results/RadiationCoefficients.tec +0 -0
  250. {capytaine-2.2 → capytaine-2.3}/pytest/Nemoh_verification_cases/NonSymmetrical/Nemoh.cal +0 -0
  251. {capytaine-2.2 → capytaine-2.3}/pytest/Nemoh_verification_cases/NonSymmetrical/Nemoh_v3.cal +0 -0
  252. {capytaine-2.2 → capytaine-2.3}/pytest/Nemoh_verification_cases/NonSymmetrical/NonSymmetrical.dat +0 -0
  253. {capytaine-2.2 → capytaine-2.3}/pytest/Nemoh_verification_cases/NonSymmetrical/reference_results/DiffractionForce.tec +0 -0
  254. {capytaine-2.2 → capytaine-2.3}/pytest/Nemoh_verification_cases/NonSymmetrical/reference_results/ExcitationForce.tec +0 -0
  255. {capytaine-2.2 → capytaine-2.3}/pytest/Nemoh_verification_cases/NonSymmetrical/reference_results/RadiationCoefficients.tec +0 -0
  256. {capytaine-2.2 → capytaine-2.3}/pytest/envs/2024-04-08-py3.12.txt +0 -0
  257. {capytaine-2.2 → capytaine-2.3}/pytest/io_legacy_cases/reference_data/single_body/Hydrostatics.dat +0 -0
  258. {capytaine-2.2 → capytaine-2.3}/pytest/io_legacy_cases/reference_data/single_body/KH.dat +0 -0
  259. {capytaine-2.2 → capytaine-2.3}/pytest/io_legacy_cases/reference_data/single_body_list/Hydrostatics.dat +0 -0
  260. {capytaine-2.2 → capytaine-2.3}/pytest/io_legacy_cases/reference_data/single_body_list/KH.dat +0 -0
  261. {capytaine-2.2 → capytaine-2.3}/pytest/io_legacy_cases/reference_data/two_bodies_list/Hydrostatics_0.dat +0 -0
  262. {capytaine-2.2 → capytaine-2.3}/pytest/io_legacy_cases/reference_data/two_bodies_list/Hydrostatics_1.dat +0 -0
  263. {capytaine-2.2 → capytaine-2.3}/pytest/io_legacy_cases/reference_data/two_bodies_list/KH_0.dat +0 -0
  264. {capytaine-2.2 → capytaine-2.3}/pytest/io_legacy_cases/reference_data/two_bodies_list/KH_1.dat +0 -0
  265. {capytaine-2.2 → capytaine-2.3}/pytest/mesh_files_examples/barge.med +0 -0
  266. {capytaine-2.2 → capytaine-2.3}/pytest/mesh_files_examples/cylinder2.msh +0 -0
  267. {capytaine-2.2 → capytaine-2.3}/pytest/mesh_files_examples/cylinder4.msh +0 -0
  268. /capytaine-2.2/pytest/test_airy_waves.py → /capytaine-2.3/pytest/test_bem_airy_waves.py +0 -0
  269. {capytaine-2.2 → capytaine-2.3}/pytest/test_bem_potential_velocity_and_free_surface_elevation.py +0 -0
  270. {capytaine-2.2 → capytaine-2.3}/pytest/test_bem_with_quadratures.py +0 -0
  271. /capytaine-2.2/pytest/test_bem_green_function_matrix_shape.py → /capytaine-2.3/pytest/test_green_functions_matrix_shape.py +0 -0
  272. {capytaine-2.2 → capytaine-2.3}/pytest/test_hydrostatics.py +0 -0
  273. {capytaine-2.2 → capytaine-2.3}/pytest/test_io_meshes_hst.py +0 -0
  274. /capytaine-2.2/pytest/test_io_mehses_mar.py → /capytaine-2.3/pytest/test_io_meshes_mar.py +0 -0
  275. {capytaine-2.2 → capytaine-2.3}/pytest/test_io_meshes_pnl.py +0 -0
  276. {capytaine-2.2 → capytaine-2.3}/pytest/test_linear_solvers.py +0 -0
  277. {capytaine-2.2 → capytaine-2.3}/pytest/test_matrices.py +0 -0
  278. {capytaine-2.2 → capytaine-2.3}/pytest/test_meshes_geometry.py +0 -0
  279. {capytaine-2.2 → capytaine-2.3}/pytest/test_meshes_predefined.py +0 -0
  280. {capytaine-2.2 → capytaine-2.3}/pytest/test_post_pro_kochin.py +0 -0
  281. /capytaine-2.2/pytest/test_post_pro.py → /capytaine-2.3/pytest/test_post_pro_rao.py +0 -0
  282. {capytaine-2.2 → capytaine-2.3}/pytest/test_tool_lru_cache.py +0 -0
  283. {capytaine-2.2 → capytaine-2.3}/pytest/test_ui_matplotlib.py +0 -0
  284. {capytaine-2.2 → capytaine-2.3}/pytest/test_ui_vtk.py +0 -0
@@ -42,7 +42,10 @@ jobs:
42
42
  run: cd docs && make
43
43
 
44
44
  - name: Deploy pages
45
- if: github.ref == 'refs/heads/master' # Only deploy the version merged into the master branch
45
+ if: |
46
+ github.repository_owner == 'capytaine' &&
47
+ github.ref == 'refs/heads/master'
48
+ # Only deploy the version merged into the master branch of capytaine/capytaine
46
49
  uses: JamesIves/github-pages-deploy-action@releases/v4
47
50
  with:
48
51
  folder: ./docs/_build/html/
@@ -0,0 +1,64 @@
1
+ name: Build wheels
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ push:
6
+ tags:
7
+ - v*
8
+ schedule:
9
+ - cron: '6 6 6/16 * *' # On the 6th and 22nd of each month at 6:06
10
+
11
+
12
+ jobs:
13
+ build_wheels:
14
+ name: Build wheels on ${{ matrix.os }}
15
+ runs-on: ${{ matrix.os }}
16
+ strategy:
17
+ matrix:
18
+ os: [ubuntu-22.04, macos-13, macos-14, windows-2025]
19
+ # MacOS<=13 are Intel, while MacOS 14 is Apple Silicon
20
+
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+
24
+ - uses: fortran-lang/setup-fortran@v1
25
+ id: setup-fortran
26
+ with:
27
+ compiler: 'gcc'
28
+ version: '13'
29
+
30
+ - name: Build wheels on Ubuntu
31
+ if: matrix.os == 'ubuntu-22.04'
32
+ uses: pypa/cibuildwheel@v2.21.3
33
+ env:
34
+ CIBW_SKIP: "pp* *i686* *musllinux*"
35
+ # As of Sept 2024, Python 3.13 is troublesome because of lack of Pandas for Python 3.13.
36
+
37
+ - name: Build wheels on MacOS Intal
38
+ if: matrix.os == 'macos-13'
39
+ uses: pypa/cibuildwheel@v2.21.3
40
+ env:
41
+ CIBW_SKIP: "pp*"
42
+ CIBW_ENVIRONMENT: MACOSX_DEPLOYMENT_TARGET=13.0
43
+
44
+ - name: Build wheels on MacOS ARM
45
+ if: matrix.os == 'macos-14'
46
+ uses: pypa/cibuildwheel@v2.21.3
47
+ env:
48
+ CIBW_SKIP: "pp*"
49
+ CIBW_ENVIRONMENT: MACOSX_DEPLOYMENT_TARGET=14.0
50
+
51
+ - name: Build wheels on Windows
52
+ if: matrix.os == 'windows-2025'
53
+ uses: pypa/cibuildwheel@v2.21.3
54
+ env:
55
+ CIBW_SKIP: "pp* *win32*"
56
+ CIBW_BEFORE_BUILD_WINDOWS: pip install delvewheel
57
+ CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel show {wheel} && delvewheel repair -w {dest_dir} {wheel} --no-mangle-all"
58
+ # Package the DLL dependencies in the wheel for windows (done by default for the other platforms).
59
+ # delvewheel cannot mangle the libraries, stripping does not work.
60
+
61
+ - uses: actions/upload-artifact@v4
62
+ with:
63
+ name: wheels-${{ matrix.os }}
64
+ path: ./wheelhouse/*.whl
@@ -38,16 +38,13 @@ jobs:
38
38
  - name: Checkout repository
39
39
  uses: actions/checkout@v4
40
40
 
41
- - name: Set up Python ${{ matrix.python-version }}
42
- uses: actions/setup-python@v5
41
+ - name: Set up UV
42
+ uses: astral-sh/setup-uv@v5
43
43
  with:
44
- python-version: ${{ matrix.python-version }}
45
-
46
- - name: Set up nox
47
- uses: wntrblm/nox@2024.03.02
44
+ enable-cache: true
48
45
 
49
46
  - name: Run nox session
50
- run: nox -s build_and_test_on_locked_env
47
+ run: uvx nox --force-python ${{ matrix.python-version }} -s build_and_test_on_locked_env
51
48
 
52
49
  compile_fortran:
53
50
 
@@ -58,14 +55,22 @@ jobs:
58
55
  - name: Checkout repository
59
56
  uses: actions/checkout@v4
60
57
 
61
- - name: Set up Fortran
62
- uses: fortran-lang/setup-fortran@v1
63
- with:
64
- compiler: 'gcc'
65
- version: '13'
58
+ # # 2024-10-22: disabling this step because it takes a few minutes to
59
+ # download a specific version of GCC, but it is not really required as GCC
60
+ # is already installed on the Ubuntu runner.
61
+ #
62
+ # - name: Set up Fortran
63
+ # uses: fortran-lang/setup-fortran@v1
64
+ # with:
65
+ # compiler: 'gcc'
66
+ # version: '13'
66
67
 
67
68
  - name: Compile and run example
68
69
  working-directory: capytaine/green_functions/libDelhommeau/
69
70
  run: make example && examples/minimal/minimal_example.bin
70
71
  # Soundness of the results is not tested, only that the compiling and
71
72
  # execution are succeeding.
73
+
74
+ - name: Run simple benchmark
75
+ working-directory: capytaine/green_functions/libDelhommeau/
76
+ run: make run_bench_rankine && make run_bench_waves
@@ -16,20 +16,17 @@ jobs:
16
16
 
17
17
  strategy:
18
18
  matrix:
19
- python-version: ['3.8', '3.12']
19
+ python-version: ['3.8', '3.13']
20
20
 
21
21
  steps:
22
22
 
23
23
  - name: Checkout repository and submodules
24
24
  uses: actions/checkout@v4
25
25
 
26
- - name: Set up Python ${{ matrix.python-version }}
27
- uses: actions/setup-python@v5
26
+ - name: Set up UV
27
+ uses: astral-sh/setup-uv@v5
28
28
  with:
29
- python-version: ${{ matrix.python-version }}
30
-
31
- - name: Set up nox
32
- uses: wntrblm/nox@2024.03.02
29
+ enable-cache: true
33
30
 
34
31
  - name: Run nox session
35
- run: nox -s build_and_test_on_latest_env editable_build_and_test_on_latest_env
32
+ run: uvx nox --force-python ${{ matrix.python-version }} -s build_and_test_on_latest_env editable_build_and_test_on_latest_env
@@ -1,3 +1,4 @@
1
+ uv.lock
1
2
  .idea/
2
3
  pytest/Nemoh_verification_cases/*/results/
3
4
  docs/_static/
@@ -37,4 +37,4 @@ repos:
37
37
  rev: "v2.2.5"
38
38
  hooks:
39
39
  - id: codespell
40
- args: ["-L", "ba,informations,inout,ist,lamda,ment,noe,periode,sur", "--skip", "capytaine/green_functions/libDelhommeau/src/old_Prony_decomposition.f90"]
40
+ args: ["-L", "ans,ba,informations,inout,ist,lamda,ment,noe,periode,sur", "--skip", "capytaine/green_functions/libDelhommeau/src/old_Prony_decomposition.f90"]
@@ -0,0 +1,18 @@
1
+ # How to contribute
2
+
3
+ Thank you for your interest into Capytaine.
4
+
5
+ ## Contact
6
+
7
+ The best place to report a bug or to propose an enhancement is the [issue
8
+ tracker](https://github.com/mancellin/capytaine/issues) of Capytaine's Github
9
+ repository.
10
+
11
+ The [discussion page](https://github.com/mancellin/capytaine/discussions) can
12
+ also be used to ask questions and submit ideas.
13
+
14
+ ## Submitting changes
15
+
16
+ Pull requests are welcome.
17
+ See the [developer manual](https://capytaine.org/master/developer_manual) for
18
+ instructions.
@@ -2,8 +2,10 @@ install:
2
2
  pip install .
3
3
 
4
4
  develop:
5
- pip install -r editable_install_requirements.txt
5
+ uv pip install -r editable_install_requirements.txt
6
+ uv pip install .[test,optional,more_optional]
6
7
  pip install --no-build-isolation --editable .
8
+ # The last line is not support by uv
7
9
 
8
10
  TEMP_DIR := $(shell mktemp -d)
9
11
  test_fortran_compilation:
@@ -13,7 +15,7 @@ test_fortran_compilation:
13
15
 
14
16
  test:
15
17
  # Build and test the current repository in a fixed environment.
16
- nox -s build_and_test_on_locked_env
18
+ uvx nox --python 3.12 --session build_and_test_on_locked_env
17
19
 
18
20
  clean:
19
21
  rm -f capytaine/green_functions/libs/*.so