capytaine 2.2.1__tar.gz → 2.3.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.
- {capytaine-2.2.1 → capytaine-2.3.1}/.github/workflows/build_docs.yml +11 -7
- capytaine-2.3.1/.github/workflows/build_wheels.yaml +107 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/.github/workflows/test_new_commits.yaml +20 -13
- capytaine-2.3.1/.github/workflows/test_with_latest_dependencies.yaml +48 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/.gitignore +1 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/.pre-commit-config.yaml +1 -1
- capytaine-2.3.1/CONTRIBUTING.md +18 -0
- capytaine-2.3.1/Justfile +154 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/PKG-INFO +6 -10
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/Makefile +1 -1
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/changelog.rst +149 -6
- capytaine-2.3.1/docs/citing.rst +127 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/conf.py +2 -1
- capytaine-2.2.1/CONTRIBUTING.md → capytaine-2.3.1/docs/developer_manual/contributing.rst +14 -24
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/developer_manual/index.rst +3 -0
- capytaine-2.3.1/docs/developer_manual/installation.rst +195 -0
- capytaine-2.3.1/docs/developer_manual/making_a_release.rst +106 -0
- capytaine-2.3.1/docs/developer_manual/testing.rst +136 -0
- capytaine-2.3.1/docs/examples/A_beginners_cookbook.rst +84 -0
- capytaine-2.3.1/docs/examples/B_intermediate_cookbook.rst +93 -0
- capytaine-2.3.1/docs/examples/C_advanced_cookbook.rst +87 -0
- capytaine-2.3.1/docs/examples/index.rst +12 -0
- capytaine-2.2.1/docs/user_manual/examples/radiation_cylinder.py → capytaine-2.3.1/docs/examples/src/A1_radiation_cylinder.py +13 -11
- capytaine-2.2.1/docs/user_manual/examples/multibody.py → capytaine-2.3.1/docs/examples/src/A2_multibody.py +0 -3
- capytaine-2.3.1/docs/examples/src/A3_finite_depth_cylinder.py +46 -0
- capytaine-2.2.1/docs/user_manual/examples/custom_dofs.py → capytaine-2.3.1/docs/examples/src/A4_custom_dofs.py +0 -2
- capytaine-2.2.1/docs/user_manual/examples/elasticity_of_beam.py → capytaine-2.3.1/docs/examples/src/A7_elasticity_of_beam.py +0 -3
- capytaine-2.3.1/docs/examples/src/A8_export_dataset.py +45 -0
- capytaine-2.2.1/docs/user_manual/examples/pressure_on_hull.py → capytaine-2.3.1/docs/examples/src/B1_pressure_on_hull.py +4 -1
- capytaine-2.2.1/docs/user_manual/examples/haskind.py → capytaine-2.3.1/docs/examples/src/B2_haskind.py +1 -5
- capytaine-2.2.1/docs/user_manual/examples/free_surface_elevation.py → capytaine-2.3.1/docs/examples/src/B3_free_surface_elevation.py +0 -2
- capytaine-2.2.1/docs/user_manual/examples/kochin.py → capytaine-2.3.1/docs/examples/src/B4_kochin.py +1 -1
- capytaine-2.2.1/docs/user_manual/examples/plot_velocity_in_domain.py → capytaine-2.3.1/docs/examples/src/B5_plot_velocity_in_domain.py +4 -4
- capytaine-2.2.1/docs/user_manual/examples/animate_free_surface.py → capytaine-2.3.1/docs/examples/src/B6_animate_free_surface.py +0 -2
- capytaine-2.3.1/docs/examples/src/B8_pressure_infinite_frequency.py +26 -0
- capytaine-2.3.1/docs/examples/src/C10_custom_linear_solver_on_gpu.py +90 -0
- capytaine-2.2.1/docs/user_manual/examples/plot_influence_matrix.py → capytaine-2.3.1/docs/examples/src/C5_plot_influence_matrix.py +0 -2
- capytaine-2.2.1/docs/user_manual/examples/axisymmetric_buoy.py → capytaine-2.3.1/docs/examples/src/C6_axisymmetric_buoy.py +1 -3
- capytaine-2.2.1/docs/user_manual/examples/preconditioner.py → capytaine-2.3.1/docs/examples/src/C7_h_matrices_with_preconditionner.py +0 -2
- capytaine-2.3.1/docs/examples/src/C8_compare_Green_functions.py +41 -0
- capytaine-2.3.1/docs/examples/src/C9_custom_Green_function.py +106 -0
- {capytaine-2.2.1/docs/user_manual/examples → capytaine-2.3.1/docs/examples/src}/quickstart.py +12 -10
- capytaine-2.3.1/docs/examples/validation.rst +17 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/index.rst +7 -2
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/theory_manual/theory.rst +49 -8
- capytaine-2.3.1/docs/user_manual/Panel_convention.svg +187 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/user_manual/body.rst +2 -2
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/user_manual/conventions.rst +1 -1
- capytaine-2.3.1/docs/user_manual/export_output.rst +166 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/user_manual/index.rst +1 -2
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/user_manual/installation.rst +60 -36
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/user_manual/mesh.rst +10 -3
- capytaine-2.3.1/docs/user_manual/post_pro.rst +256 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/user_manual/problem_setup.rst +46 -4
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/user_manual/quickstart.rst +2 -4
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/user_manual/resolution.rst +121 -23
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/user_manual/tutorial.rst +50 -34
- {capytaine-2.2.1 → capytaine-2.3.1}/meson.build +26 -18
- capytaine-2.3.1/pyproject.toml +84 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/envs/2023-08-01-py3.8.txt +13 -1
- capytaine-2.3.1/pytest/envs/2025-04-18-py3.12.txt +93 -0
- capytaine-2.2.1/pytest/test_bem_engines.py → capytaine-2.3.1/pytest/test_bem_engines_basic_matric_engine.py +24 -4
- capytaine-2.2.1/pytest/test_bem_hierarchical_toeplitz_matrices.py → capytaine-2.3.1/pytest/test_bem_engines_hierarchical_toeplitz_matrices.py +16 -16
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_bem_irregular_frequencies_removal.py +47 -4
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_bem_linear_combination_of_dofs.py +4 -4
- capytaine-2.3.1/pytest/test_bem_no_free_surface.py +27 -0
- capytaine-2.3.1/pytest/test_bem_problems_and_results.py +329 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_bem_solver.py +39 -12
- capytaine-2.3.1/pytest/test_bem_zero_and_infinite_freq.py +212 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_bodies.py +63 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_bodies_predefined.py +11 -0
- capytaine-2.3.1/pytest/test_consistency_with_HAMS.py +55 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_consistency_with_Nemoh_2.py +2 -0
- capytaine-2.3.1/pytest/test_consistency_with_analytical_solutions.py +31 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_forward_speed.py +3 -3
- capytaine-2.3.1/pytest/test_green_functions_finite_depth.py +202 -0
- capytaine-2.2.1/pytest/test_bem_green_function_fortran_core.py → capytaine-2.3.1/pytest/test_green_functions_fortran_core.py +61 -71
- capytaine-2.3.1/pytest/test_green_functions_tabulation_caching.py +40 -0
- capytaine-2.3.1/pytest/test_io_bemio.py +26 -0
- capytaine-2.2.1/pytest/test_io.py → capytaine-2.3.1/pytest/test_io_legacy.py +3 -64
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_io_meshes.py +1 -1
- capytaine-2.3.1/pytest/test_io_wamit.py +313 -0
- capytaine-2.3.1/pytest/test_io_xarray.py +333 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_meshes.py +31 -79
- capytaine-2.3.1/pytest/test_meshes_clipping.py +102 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_meshes_collections_and_symmetries.py +58 -0
- capytaine-2.3.1/pytest/test_meshes_interface.py +92 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_meshes_lid_generation.py +48 -1
- capytaine-2.3.1/pytest/test_tool_symbolic_multiplication.py +76 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/__about__.py +1 -1
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/__init__.py +2 -1
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/bem/airy_waves.py +7 -2
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/bem/problems_and_results.py +91 -39
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/bem/solver.py +128 -40
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/bodies/bodies.py +46 -18
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/bodies/predefined/rectangles.py +2 -0
- capytaine-2.3.1/src/capytaine/green_functions/FinGreen3D/.gitignore +1 -0
- capytaine-2.3.1/src/capytaine/green_functions/FinGreen3D/FinGreen3D.f90 +3589 -0
- capytaine-2.3.1/src/capytaine/green_functions/FinGreen3D/LICENSE +165 -0
- capytaine-2.3.1/src/capytaine/green_functions/FinGreen3D/Makefile +16 -0
- capytaine-2.3.1/src/capytaine/green_functions/FinGreen3D/README.md +24 -0
- capytaine-2.3.1/src/capytaine/green_functions/FinGreen3D/test_program.f90 +39 -0
- capytaine-2.3.1/src/capytaine/green_functions/LiangWuNoblesse/.gitignore +1 -0
- capytaine-2.3.1/src/capytaine/green_functions/LiangWuNoblesse/LICENSE +504 -0
- capytaine-2.3.1/src/capytaine/green_functions/LiangWuNoblesse/LiangWuNoblesseWaveTerm.f90 +751 -0
- capytaine-2.3.1/src/capytaine/green_functions/LiangWuNoblesse/Makefile +16 -0
- capytaine-2.3.1/src/capytaine/green_functions/LiangWuNoblesse/README.md +2 -0
- capytaine-2.3.1/src/capytaine/green_functions/LiangWuNoblesse/test_program.f90 +28 -0
- capytaine-2.3.1/src/capytaine/green_functions/abstract_green_function.py +64 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/green_functions/delhommeau.py +205 -130
- capytaine-2.3.1/src/capytaine/green_functions/hams.py +204 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/green_functions/libDelhommeau/Makefile +17 -4
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/green_functions/libDelhommeau/benchmarks/openmp/benchmark_omp.f90 +7 -53
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/green_functions/libDelhommeau/benchmarks/profiling/benchmark_profiling.f90 +6 -51
- capytaine-2.3.1/src/capytaine/green_functions/libDelhommeau/benchmarks/rankine/benchmark_rankine.f90 +71 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/green_functions/libDelhommeau/benchmarks/tabulations/benchmark_tabulation.f90 +1 -1
- capytaine-2.3.1/src/capytaine/green_functions/libDelhommeau/benchmarks/waves/benchmark_waves.f90 +186 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/green_functions/libDelhommeau/examples/minimal/minimal_example.f90 +25 -40
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/green_functions/libDelhommeau/examples/minimal/minimal_example.py +5 -5
- capytaine-2.3.1/src/capytaine/green_functions/libDelhommeau/src/FinGreen3D.f90 +3589 -0
- capytaine-2.3.1/src/capytaine/green_functions/libDelhommeau/src/Green_Rankine.f90 +331 -0
- capytaine-2.3.1/src/capytaine/green_functions/libDelhommeau/src/Green_wave.f90 +604 -0
- capytaine-2.3.1/src/capytaine/green_functions/libDelhommeau/src/LiangWuNoblesseWaveTerm.f90 +751 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/green_functions/libDelhommeau/src/constants.f90 +8 -1
- capytaine-2.3.1/src/capytaine/green_functions/libDelhommeau/src/interface.f90 +59 -0
- capytaine-2.3.1/src/capytaine/green_functions/libDelhommeau/src/matrices.f90 +421 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/green_functions/libDelhommeau/src/old_Prony_decomposition.f90 +15 -14
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/io/bemio.py +14 -2
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/io/mesh_loaders.py +1 -1
- capytaine-2.3.1/src/capytaine/io/wamit.py +479 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/io/xarray.py +261 -117
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/matrices/linear_solvers.py +1 -1
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/meshes/clipper.py +1 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/meshes/collections.py +19 -1
- capytaine-2.3.1/src/capytaine/meshes/mesh_like_protocol.py +37 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/meshes/meshes.py +28 -8
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/meshes/symmetric.py +89 -10
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/post_pro/kochin.py +4 -4
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/tools/lists_of_points.py +3 -3
- capytaine-2.3.1/src/capytaine/tools/prony_decomposition.py +150 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/tools/symbolic_multiplication.py +30 -4
- capytaine-2.3.1/src/capytaine/tools/timer.py +66 -0
- capytaine-2.2.1/.github/workflows/build_wheels.yaml +0 -64
- capytaine-2.2.1/.github/workflows/test_with_latest_dependencies.yaml +0 -35
- capytaine-2.2.1/Makefile +0 -30
- capytaine-2.2.1/capytaine/green_functions/abstract_green_function.py +0 -12
- capytaine-2.2.1/capytaine/green_functions/libDelhommeau/src/Green_Rankine.f90 +0 -148
- capytaine-2.2.1/capytaine/green_functions/libDelhommeau/src/Green_wave.f90 +0 -402
- capytaine-2.2.1/capytaine/green_functions/libDelhommeau/src/matrices.f90 +0 -302
- capytaine-2.2.1/capytaine/tools/prony_decomposition.py +0 -94
- capytaine-2.2.1/docs/citing.rst +0 -61
- capytaine-2.2.1/docs/developer_manual/installation.rst +0 -193
- capytaine-2.2.1/docs/user_manual/cookbook.rst +0 -161
- capytaine-2.2.1/docs/user_manual/examples/compare_Green_functions.py +0 -33
- capytaine-2.2.1/docs/user_manual/examples/custom_Green_function.py +0 -62
- capytaine-2.2.1/docs/user_manual/examples/finite_depth_cylinder.py +0 -52
- capytaine-2.2.1/docs/user_manual/outputs.rst +0 -289
- capytaine-2.2.1/docs/user_manual/post_pro.rst +0 -120
- capytaine-2.2.1/editable_install_requirements.txt +0 -12
- capytaine-2.2.1/noxfile.py +0 -104
- capytaine-2.2.1/pyproject.toml +0 -55
- capytaine-2.2.1/pytest/Nemoh_verification_cases/Nemoh.m +0 -121
- capytaine-2.2.1/pytest/test_bem_problems_and_results.py +0 -349
- capytaine-2.2.1/pytest/test_bem_zero_and_infinite_freq.py +0 -99
- capytaine-2.2.1/pytest/test_tool_symbolic_multiplication.py +0 -106
- {capytaine-2.2.1 → capytaine-2.3.1}/.zenodo.json +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/LICENSE +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/README.md +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/code_of_conduct.md +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/_static/custom.css +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/_static/proof.css +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/_static/proof.js +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/_templates/layout.html +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/developer_manual/overview.rst +0 -0
- /capytaine-2.2.1/docs/user_manual/examples/convergence_study.py → /capytaine-2.3.1/docs/examples/src/A5_convergence_study.py +0 -0
- /capytaine-2.2.1/docs/user_manual/examples/irregular_frequency_removal.py → /capytaine-2.3.1/docs/examples/src/A6_irregular_frequency_removal.py +0 -0
- /capytaine-2.2.1/docs/user_manual/examples/boat_animation.py → /capytaine-2.3.1/docs/examples/src/B7_boat_animation.py +0 -0
- /capytaine-2.2.1/docs/user_manual/examples/Malenica_forward_speed.py → /capytaine-2.3.1/docs/examples/src/V_Malenica_forward_speed.py +0 -0
- /capytaine-2.2.1/docs/user_manual/examples/hydrostatics.py → /capytaine-2.3.1/docs/examples/src/V_hydrostatics.py +0 -0
- {capytaine-2.2.1/docs/user_manual/examples → capytaine-2.3.1/docs/examples/src}/boat_200.mar +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/features.rst +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/theory_manual/bibliography.rst +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/theory_manual/index.rst +0 -0
- {capytaine-2.2.1/docs/user_manual/examples → capytaine-2.3.1/docs/user_manual}/Nemoh.cal +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/docs/user_manual/hydrostatics.rst +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/Bemio_verification_cases/sphere.out +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/Hydrostatics_cases/sphere__hor_cyl__ver_cyl.pkl.json +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/Nemoh_verification_cases/Cylinder/Cylinder.dat +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/Nemoh_verification_cases/Cylinder/Nemoh.cal +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/Nemoh_verification_cases/Cylinder/Nemoh_v3.cal +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/Nemoh_verification_cases/Cylinder/reference_results/DiffractionForce.tec +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/Nemoh_verification_cases/Cylinder/reference_results/ExcitationForce.tec +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/Nemoh_verification_cases/Cylinder/reference_results/RadiationCoefficients.tec +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/Nemoh_verification_cases/NonSymmetrical/Nemoh.cal +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/Nemoh_verification_cases/NonSymmetrical/Nemoh_v3.cal +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/Nemoh_verification_cases/NonSymmetrical/NonSymmetrical.dat +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/Nemoh_verification_cases/NonSymmetrical/reference_results/DiffractionForce.tec +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/Nemoh_verification_cases/NonSymmetrical/reference_results/ExcitationForce.tec +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/Nemoh_verification_cases/NonSymmetrical/reference_results/RadiationCoefficients.tec +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/envs/2024-04-08-py3.12.txt +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/envs/2024-10-22-py3.12.txt +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/io_legacy_cases/reference_data/single_body/Hydrostatics.dat +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/io_legacy_cases/reference_data/single_body/KH.dat +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/io_legacy_cases/reference_data/single_body_list/Hydrostatics.dat +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/io_legacy_cases/reference_data/single_body_list/KH.dat +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/io_legacy_cases/reference_data/two_bodies_list/Hydrostatics_0.dat +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/io_legacy_cases/reference_data/two_bodies_list/Hydrostatics_1.dat +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/io_legacy_cases/reference_data/two_bodies_list/KH_0.dat +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/io_legacy_cases/reference_data/two_bodies_list/KH_1.dat +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/mesh_files_examples/barge.med +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/mesh_files_examples/cylinder2.msh +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/mesh_files_examples/cylinder4.msh +0 -0
- /capytaine-2.2.1/pytest/test_airy_waves.py → /capytaine-2.3.1/pytest/test_bem_airy_waves.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_bem_potential_velocity_and_free_surface_elevation.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_bem_with_quadratures.py +0 -0
- /capytaine-2.2.1/pytest/test_bem_green_function_matrix_shape.py → /capytaine-2.3.1/pytest/test_green_functions_matrix_shape.py +0 -0
- /capytaine-2.2.1/pytest/test_bem_green_function_table_density.py → /capytaine-2.3.1/pytest/test_green_functions_table_density.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_hydrostatics.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_io_meshes_gdf.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_io_meshes_hst.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_io_meshes_mar.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_io_meshes_pnl.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_linear_solvers.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_matrices.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_meshes_geometry.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_meshes_predefined.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_post_pro_kochin.py +0 -0
- /capytaine-2.2.1/pytest/test_post_pro.py → /capytaine-2.3.1/pytest/test_post_pro_rao.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_tool_lru_cache.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_ui_matplotlib.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1}/pytest/test_ui_vtk.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/bem/__init__.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/bem/engines.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/bodies/__init__.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/bodies/dofs.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/bodies/predefined/__init__.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/bodies/predefined/cylinders.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/bodies/predefined/spheres.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/green_functions/__init__.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/green_functions/libDelhommeau/.gitignore +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/green_functions/libDelhommeau/LICENSE +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/green_functions/libDelhommeau/README.md +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/green_functions/libDelhommeau/benchmarks/openmp/display_mesh.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/green_functions/libDelhommeau/benchmarks/openmp/read_output.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/green_functions/libDelhommeau/src/Delhommeau_integrals.f90 +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/green_functions/libDelhommeau/src/float32.f90 +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/green_functions/libDelhommeau/src/float64.f90 +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/green_functions/libs/__init__.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/io/__init__.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/io/legacy.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/io/mesh_writers.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/io/meshio.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/matrices/__init__.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/matrices/block.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/matrices/block_toeplitz.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/matrices/builders.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/matrices/low_rank.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/meshes/__init__.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/meshes/geometry.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/meshes/predefined/__init__.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/meshes/predefined/cylinders.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/meshes/predefined/rectangles.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/meshes/predefined/spheres.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/meshes/properties.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/meshes/quadratures.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/meshes/quality.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/meshes/surface_integrals.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/post_pro/__init__.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/post_pro/free_surfaces.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/post_pro/impedance.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/post_pro/rao.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/tools/__init__.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/tools/cache_on_disk.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/tools/deprecation_handling.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/tools/lru_cache.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/tools/optional_imports.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/ui/__init__.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/ui/cli.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/ui/rich.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/ui/vtk/__init__.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/ui/vtk/animation.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/ui/vtk/body_viewer.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/ui/vtk/helpers.py +0 -0
- {capytaine-2.2.1 → capytaine-2.3.1/src}/capytaine/ui/vtk/mesh_viewer.py +0 -0
|
@@ -31,18 +31,22 @@ jobs:
|
|
|
31
31
|
- name: Checkout
|
|
32
32
|
uses: actions/checkout@v4
|
|
33
33
|
|
|
34
|
-
-
|
|
35
|
-
|
|
36
|
-
python-version: '3.12'
|
|
34
|
+
- name: Set up Just
|
|
35
|
+
run: sudo apt install -y just
|
|
37
36
|
|
|
38
|
-
- name:
|
|
39
|
-
|
|
37
|
+
- name: Set up UV
|
|
38
|
+
uses: astral-sh/setup-uv@v5
|
|
39
|
+
with:
|
|
40
|
+
enable-cache: true
|
|
40
41
|
|
|
41
42
|
- name: Build documentation
|
|
42
|
-
run:
|
|
43
|
+
run: just build_docs
|
|
43
44
|
|
|
44
45
|
- name: Deploy pages
|
|
45
|
-
if:
|
|
46
|
+
if: |
|
|
47
|
+
github.repository_owner == 'capytaine' &&
|
|
48
|
+
github.ref == 'refs/heads/master'
|
|
49
|
+
# Only deploy the version merged into the master branch of capytaine/capytaine
|
|
46
50
|
uses: JamesIves/github-pages-deploy-action@releases/v4
|
|
47
51
|
with:
|
|
48
52
|
folder: ./docs/_build/html/
|
|
@@ -0,0 +1,107 @@
|
|
|
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_on_windows":
|
|
14
|
+
name: Build wheels on Windows
|
|
15
|
+
runs-on: windows-2025
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- uses: fortran-lang/setup-fortran@v1
|
|
21
|
+
with:
|
|
22
|
+
compiler: 'gcc'
|
|
23
|
+
version: '13'
|
|
24
|
+
|
|
25
|
+
- name: Build wheels
|
|
26
|
+
uses: pypa/cibuildwheel@v3.2.0
|
|
27
|
+
env:
|
|
28
|
+
CIBW_SKIP: "*win32* cp314t*"
|
|
29
|
+
CIBW_BEFORE_BUILD_WINDOWS: pip install delvewheel
|
|
30
|
+
CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel show {wheel} && delvewheel repair -w {dest_dir} {wheel} --no-mangle-all"
|
|
31
|
+
# Package the DLL dependencies in the wheel for windows (done by default for the other platforms).
|
|
32
|
+
# delvewheel cannot mangle the libraries, stripping does not work.
|
|
33
|
+
|
|
34
|
+
- uses: actions/upload-artifact@v4
|
|
35
|
+
with:
|
|
36
|
+
name: wheels-windows
|
|
37
|
+
path: ./wheelhouse/*.whl
|
|
38
|
+
|
|
39
|
+
"build_wheels_on_ubuntu":
|
|
40
|
+
name: Build wheels on Ubuntu
|
|
41
|
+
runs-on: ubuntu-22.04
|
|
42
|
+
|
|
43
|
+
steps:
|
|
44
|
+
- uses: actions/checkout@v4
|
|
45
|
+
|
|
46
|
+
- uses: fortran-lang/setup-fortran@v1
|
|
47
|
+
with:
|
|
48
|
+
compiler: 'gcc'
|
|
49
|
+
version: '13'
|
|
50
|
+
|
|
51
|
+
- name: Build wheels on Ubuntu
|
|
52
|
+
uses: pypa/cibuildwheel@v3.2.0
|
|
53
|
+
env:
|
|
54
|
+
CIBW_SKIP: "*i686* *musllinux*"
|
|
55
|
+
|
|
56
|
+
- uses: actions/upload-artifact@v4
|
|
57
|
+
with:
|
|
58
|
+
name: wheels-ubuntu
|
|
59
|
+
path: ./wheelhouse/*.whl
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
"build_wheels_on_macos_intel":
|
|
63
|
+
name: Build wheels on MacOS Intel
|
|
64
|
+
runs-on: macos-13
|
|
65
|
+
# Should be replaced by macos-15-intel soon, but it does not seem to be
|
|
66
|
+
# supported by setup-fortran?
|
|
67
|
+
|
|
68
|
+
steps:
|
|
69
|
+
- uses: actions/checkout@v4
|
|
70
|
+
|
|
71
|
+
- uses: fortran-lang/setup-fortran@v1
|
|
72
|
+
with:
|
|
73
|
+
compiler: 'gcc'
|
|
74
|
+
version: '13'
|
|
75
|
+
|
|
76
|
+
- name: Build wheels
|
|
77
|
+
uses: pypa/cibuildwheel@v3.2.0
|
|
78
|
+
env:
|
|
79
|
+
CIBW_ENVIRONMENT: MACOSX_DEPLOYMENT_TARGET=13.0
|
|
80
|
+
|
|
81
|
+
- uses: actions/upload-artifact@v4
|
|
82
|
+
with:
|
|
83
|
+
name: wheels-macos-intel
|
|
84
|
+
path: ./wheelhouse/*.whl
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
"build_wheels_on_macos_arm":
|
|
88
|
+
name: Build wheels on MacOS ARM
|
|
89
|
+
runs-on: macos-14
|
|
90
|
+
|
|
91
|
+
steps:
|
|
92
|
+
- uses: actions/checkout@v4
|
|
93
|
+
|
|
94
|
+
- uses: fortran-lang/setup-fortran@v1
|
|
95
|
+
with:
|
|
96
|
+
compiler: 'gcc'
|
|
97
|
+
version: '13'
|
|
98
|
+
|
|
99
|
+
- name: Build wheels
|
|
100
|
+
uses: pypa/cibuildwheel@v3.2.0
|
|
101
|
+
env:
|
|
102
|
+
CIBW_ENVIRONMENT: MACOSX_DEPLOYMENT_TARGET=14.0
|
|
103
|
+
|
|
104
|
+
- uses: actions/upload-artifact@v4
|
|
105
|
+
with:
|
|
106
|
+
name: wheels-macos-arm
|
|
107
|
+
path: ./wheelhouse/*.whl
|
|
@@ -16,7 +16,6 @@ on:
|
|
|
16
16
|
|
|
17
17
|
env:
|
|
18
18
|
FORCE_COLOR: 3
|
|
19
|
-
# Colors for nox
|
|
20
19
|
|
|
21
20
|
# The following block is meant to cancel the workflow if a newer commit is pushed on the pull request
|
|
22
21
|
# From https://stackoverflow.com/questions/66335225/how-to-cancel-previous-runs-in-the-pr-when-you-push-new-commitsupdate-the-curre
|
|
@@ -25,31 +24,35 @@ concurrency:
|
|
|
25
24
|
cancel-in-progress: true
|
|
26
25
|
|
|
27
26
|
jobs:
|
|
28
|
-
build_and_test:
|
|
27
|
+
"build_and_test":
|
|
29
28
|
|
|
30
29
|
runs-on: ubuntu-latest
|
|
31
30
|
|
|
32
31
|
strategy:
|
|
33
32
|
matrix:
|
|
34
|
-
python-version: ['
|
|
33
|
+
python-version: ['38', '312']
|
|
35
34
|
|
|
36
35
|
steps:
|
|
37
36
|
|
|
38
37
|
- name: Checkout repository
|
|
39
38
|
uses: actions/checkout@v4
|
|
40
39
|
|
|
41
|
-
- name: Set up
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
# - name: Set up Just
|
|
41
|
+
# uses: extractions/setup-just@v3
|
|
42
|
+
# with:
|
|
43
|
+
# just-version: 1.40
|
|
44
|
+
- name: Set up Just
|
|
45
|
+
run: sudo apt install -y just
|
|
45
46
|
|
|
46
|
-
- name: Set up
|
|
47
|
-
uses:
|
|
47
|
+
- name: Set up UV
|
|
48
|
+
uses: astral-sh/setup-uv@v5
|
|
49
|
+
with:
|
|
50
|
+
enable-cache: true
|
|
48
51
|
|
|
49
|
-
- name: Run
|
|
50
|
-
run:
|
|
52
|
+
- name: Run tests
|
|
53
|
+
run: just test_in_py${{ matrix.python-version }}_reference_env
|
|
51
54
|
|
|
52
|
-
compile_fortran:
|
|
55
|
+
"compile_fortran":
|
|
53
56
|
|
|
54
57
|
runs-on: ubuntu-latest
|
|
55
58
|
|
|
@@ -69,7 +72,11 @@ jobs:
|
|
|
69
72
|
# version: '13'
|
|
70
73
|
|
|
71
74
|
- name: Compile and run example
|
|
72
|
-
working-directory: capytaine/green_functions/libDelhommeau/
|
|
75
|
+
working-directory: src/capytaine/green_functions/libDelhommeau/
|
|
73
76
|
run: make example && examples/minimal/minimal_example.bin
|
|
74
77
|
# Soundness of the results is not tested, only that the compiling and
|
|
75
78
|
# execution are succeeding.
|
|
79
|
+
|
|
80
|
+
- name: Run simple benchmark
|
|
81
|
+
working-directory: src/capytaine/green_functions/libDelhommeau/
|
|
82
|
+
run: make run_bench_rankine && make run_bench_waves
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
name: Build and test using latest available dependencies
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
schedule:
|
|
6
|
+
- cron: '5 5 5/15 * *' # On the 5th and 20th of each month at 5:05
|
|
7
|
+
|
|
8
|
+
env:
|
|
9
|
+
FORCE_COLOR: 3
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
"test_in_latest_env":
|
|
13
|
+
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
|
|
16
|
+
steps:
|
|
17
|
+
- name: Checkout repository
|
|
18
|
+
uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- name: Set up UV
|
|
21
|
+
uses: astral-sh/setup-uv@v5
|
|
22
|
+
with:
|
|
23
|
+
enable-cache: true
|
|
24
|
+
|
|
25
|
+
- name: Set up Just
|
|
26
|
+
run: sudo apt install -y just
|
|
27
|
+
|
|
28
|
+
- name: Run tests
|
|
29
|
+
run: just test_in_latest_env
|
|
30
|
+
|
|
31
|
+
"test_in_nightly_env":
|
|
32
|
+
|
|
33
|
+
runs-on: ubuntu-latest
|
|
34
|
+
|
|
35
|
+
steps:
|
|
36
|
+
- name: Checkout repository
|
|
37
|
+
uses: actions/checkout@v4
|
|
38
|
+
|
|
39
|
+
- name: Set up UV
|
|
40
|
+
uses: astral-sh/setup-uv@v5
|
|
41
|
+
with:
|
|
42
|
+
enable-cache: true
|
|
43
|
+
|
|
44
|
+
- name: Set up Just
|
|
45
|
+
run: sudo apt install -y just
|
|
46
|
+
|
|
47
|
+
- name: Run tests
|
|
48
|
+
run: just test_in_nightly_env
|
|
@@ -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", "src/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.
|
capytaine-2.3.1/Justfile
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
set shell := ["bash", "-c"]
|
|
2
|
+
set windows-shell := ["powershell.exe", "-c"]
|
|
3
|
+
|
|
4
|
+
default:
|
|
5
|
+
just --list
|
|
6
|
+
|
|
7
|
+
editable_install:
|
|
8
|
+
uv pip install -r pyproject.toml \
|
|
9
|
+
--group editable_install \
|
|
10
|
+
--group dev
|
|
11
|
+
pip install --no-build-isolation --editable .
|
|
12
|
+
# Meson-backed editable install is not (yet?) supported by uv (https://github.com/astral-sh/uv/issues/10214)
|
|
13
|
+
|
|
14
|
+
# Define the temporary directory differently based on OS
|
|
15
|
+
TEMP_DIR := if os_family() == 'windows' {
|
|
16
|
+
`$temp = Join-Path $env:TEMP ('capytainedev-' + [System.IO.Path]::GetRandomFileName()); New-Item -ItemType Directory -Path $temp -Force | Out-Null; Write-Output $temp`
|
|
17
|
+
} else {
|
|
18
|
+
`mktemp --directory --tmpdir capytainedev-XXXXX`
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
ENV := "MPLBACKEND=pdf CAPYTAINE_PROGRESS_BAR=False CAPYTAINE_CACHE_DIR=" + TEMP_DIR + "/cache/"
|
|
22
|
+
|
|
23
|
+
TEST_DIR := justfile_directory() / 'pytest'
|
|
24
|
+
NEMOH_CASES := TEST_DIR / 'Nemoh_verification_cases' / 'Cylinder'
|
|
25
|
+
|
|
26
|
+
EXAMPLES_DIR := justfile_directory() / 'docs' / 'examples' / 'src'
|
|
27
|
+
EXAMPLES_FILES := ' \
|
|
28
|
+
A1_radiation_cylinder.py \
|
|
29
|
+
A2_multibody.py \
|
|
30
|
+
A3_finite_depth_cylinder.py \
|
|
31
|
+
A4_custom_dofs.py \
|
|
32
|
+
A5_convergence_study.py \
|
|
33
|
+
A7_elasticity_of_beam.py \
|
|
34
|
+
A8_export_dataset.py \
|
|
35
|
+
B1_pressure_on_hull.py \
|
|
36
|
+
B2_haskind.py \
|
|
37
|
+
B3_free_surface_elevation.py \
|
|
38
|
+
B4_kochin.py \
|
|
39
|
+
B5_plot_velocity_in_domain.py \
|
|
40
|
+
B8_pressure_infinite_frequency.py \
|
|
41
|
+
C5_plot_influence_matrix.py \
|
|
42
|
+
C8_compare_Green_functions.py \
|
|
43
|
+
C9_custom_Green_function.py \
|
|
44
|
+
'
|
|
45
|
+
|
|
46
|
+
## Reason for skipping some example files:
|
|
47
|
+
# A6_irregular_frequency_removal.py \ # Slow
|
|
48
|
+
# B6_animate_free_surface.py \ # Requires VTK
|
|
49
|
+
# B7_boat_animation.py \ # Requires VTK
|
|
50
|
+
# C6_axisymmetric_buoy.py \ # Requires VTK
|
|
51
|
+
# C7_h_matrices_with_preconditionner.py \ # Slow
|
|
52
|
+
# C10_custom_linear_solver_on_gpu.py \ # Requires torch
|
|
53
|
+
|
|
54
|
+
# Run the test suite and the example files assuming a virtual environment has been activated
|
|
55
|
+
[unix]
|
|
56
|
+
_test:
|
|
57
|
+
#!/usr/bin/env bash
|
|
58
|
+
set -euxo pipefail
|
|
59
|
+
uv pip list | grep -Ei "numpy|xarray|capytaine" || true
|
|
60
|
+
cd {{TEMP_DIR}}
|
|
61
|
+
export {{ENV}}
|
|
62
|
+
python -c "import capytaine; print(capytaine.__version__)"
|
|
63
|
+
python -m pytest {{TEST_DIR}}
|
|
64
|
+
capytaine --help
|
|
65
|
+
capytaine {{NEMOH_CASES}}/Nemoh.cal
|
|
66
|
+
capytaine {{NEMOH_CASES}}/Nemoh_v3.cal
|
|
67
|
+
set +x # Stop displaying commands
|
|
68
|
+
for f in {{EXAMPLES_FILES}}; do
|
|
69
|
+
echo -e "\n---> Running $f";
|
|
70
|
+
python {{EXAMPLES_DIR}}/$f;
|
|
71
|
+
done
|
|
72
|
+
|
|
73
|
+
# Simplified version of the above, working on Windows
|
|
74
|
+
[windows]
|
|
75
|
+
_test:
|
|
76
|
+
#! powershell
|
|
77
|
+
cd {{TEMP_DIR}}
|
|
78
|
+
python -c "import capytaine; print(capytaine.__version__)"
|
|
79
|
+
python -m pytest {{TEST_DIR}}
|
|
80
|
+
capytaine --help
|
|
81
|
+
capytaine {{NEMOH_CASES}}/Nemoh.cal
|
|
82
|
+
capytaine {{NEMOH_CASES}}/Nemoh_v3.cal
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
test_in_latest_env:
|
|
86
|
+
uv run \
|
|
87
|
+
--isolated --no-editable \
|
|
88
|
+
--only-group test \
|
|
89
|
+
just _test
|
|
90
|
+
|
|
91
|
+
test_in_py38_reference_env:
|
|
92
|
+
uv run \
|
|
93
|
+
--isolated --no-editable \
|
|
94
|
+
--only-group test \
|
|
95
|
+
--python 3.8 \
|
|
96
|
+
--with-requirements {{TEST_DIR}}/envs/2023-08-01-py3.8.txt \
|
|
97
|
+
just _test
|
|
98
|
+
# TODO: Also build Capytaine in this environment?
|
|
99
|
+
|
|
100
|
+
test_in_py312_reference_env:
|
|
101
|
+
uv run \
|
|
102
|
+
--isolated --no-editable \
|
|
103
|
+
--only-group test \
|
|
104
|
+
--python 3.12 \
|
|
105
|
+
--with-requirements {{TEST_DIR}}/envs/2025-04-18-py3.12.txt \
|
|
106
|
+
just _test
|
|
107
|
+
# TODO: Also build Capytaine in this environment?
|
|
108
|
+
|
|
109
|
+
test_in_nightly_env:
|
|
110
|
+
uv run \
|
|
111
|
+
--isolated --no-editable \
|
|
112
|
+
--pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple \
|
|
113
|
+
--index-strategy unsafe-best-match \
|
|
114
|
+
--python 3.13 \
|
|
115
|
+
--only-group test \
|
|
116
|
+
just _test
|
|
117
|
+
# "--index-strategy unsafe-best-match" means uv should not ignore wheels
|
|
118
|
+
# from PyPI during universal resolution
|
|
119
|
+
# TODO: Also build Capytaine in this environment?
|
|
120
|
+
|
|
121
|
+
# How the requirements files from the above recipes where generated.
|
|
122
|
+
create_test_env_file python="3.8" date="2023-08-01":
|
|
123
|
+
uv pip compile \
|
|
124
|
+
pyproject.toml editable_install_requirements.txt \
|
|
125
|
+
--python-version {{python}} \
|
|
126
|
+
--exclude-newer {{date}} \
|
|
127
|
+
--extra optional --extra test \
|
|
128
|
+
-o {{TEST_DIR}}/envs/{{date}}-py{{python}}.txt
|
|
129
|
+
|
|
130
|
+
# Compile the Fortran code without parallelism for easier reading of the errors.
|
|
131
|
+
test_fortran_compilation:
|
|
132
|
+
# It is assumed that meson and ninja are already installed (e.g. with editable_install).
|
|
133
|
+
meson setup --wipe {{TEMP_DIR}}/build && meson compile -C {{TEMP_DIR}}/build -j 1
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
build_docs:
|
|
137
|
+
uv run \
|
|
138
|
+
--isolated --no-editable \
|
|
139
|
+
--only-group docs \
|
|
140
|
+
-- \
|
|
141
|
+
make --directory="./docs/"
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
clean:
|
|
145
|
+
rm -f src/capytaine/green_functions/libs/*.so
|
|
146
|
+
rm -rf build/
|
|
147
|
+
rm -rf dist/
|
|
148
|
+
rm -rf src/capytaine.egg-info/
|
|
149
|
+
rm -rf docs/_build
|
|
150
|
+
rm -rf .pytest_cache/
|
|
151
|
+
rm -rf .venv/
|
|
152
|
+
rm -rf __pycache__ */__pycache__ */*/__pycache__ */*/*/__pycache__
|
|
153
|
+
rm -rf $HOME/.cache/capytaine/*
|
|
154
|
+
rm -rf /tmp/capytainedev-*/
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: capytaine
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.1
|
|
4
4
|
Summary: Python BEM solver for linear potential flow, based on Nemoh
|
|
5
|
-
Author-Email: Matthieu Ancellin <matthieu.ancellin@
|
|
5
|
+
Author-Email: Matthieu Ancellin <matthieu.ancellin@mews-labs.com>
|
|
6
6
|
License: GNU GENERAL PUBLIC LICENSE
|
|
7
7
|
Version 3, 29 June 2007
|
|
8
8
|
|
|
@@ -683,25 +683,21 @@ Classifier: Programming Language :: Fortran
|
|
|
683
683
|
Classifier: Intended Audience :: Science/Research
|
|
684
684
|
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
|
685
685
|
Classifier: Topic :: Scientific/Engineering
|
|
686
|
+
Project-URL: homepage, https://capytaine.org
|
|
686
687
|
Project-URL: repository, https://github.com/capytaine/capytaine
|
|
687
688
|
Requires-Python: >=3.8
|
|
688
689
|
Requires-Dist: numpy>=1.20; python_version >= "3.9"
|
|
689
690
|
Requires-Dist: numpy>=1.24; python_version == "3.8"
|
|
690
691
|
Requires-Dist: scipy
|
|
691
|
-
Requires-Dist: pandas
|
|
692
|
+
Requires-Dist: pandas<3,>=1.3
|
|
692
693
|
Requires-Dist: xarray
|
|
693
694
|
Requires-Dist: rich
|
|
694
695
|
Provides-Extra: optional
|
|
695
696
|
Requires-Dist: matplotlib; extra == "optional"
|
|
696
697
|
Requires-Dist: joblib>=1.3; extra == "optional"
|
|
697
698
|
Requires-Dist: meshio; extra == "optional"
|
|
698
|
-
|
|
699
|
-
Requires-Dist:
|
|
700
|
-
Provides-Extra: docs
|
|
701
|
-
Requires-Dist: sphinx; extra == "docs"
|
|
702
|
-
Requires-Dist: sphinx-toolbox; extra == "docs"
|
|
703
|
-
Requires-Dist: sphinxcontrib-proof; extra == "docs"
|
|
704
|
-
Requires-Dist: sphinxcontrib-mermaid; extra == "docs"
|
|
699
|
+
Requires-Dist: netcdf4; extra == "optional"
|
|
700
|
+
Requires-Dist: vtk; extra == "optional"
|
|
705
701
|
Description-Content-Type: text/markdown
|
|
706
702
|
|
|
707
703
|
# Capytaine: a linear potential flow BEM solver with Python.
|
|
@@ -28,4 +28,4 @@ test: show
|
|
|
28
28
|
|
|
29
29
|
autodoc:
|
|
30
30
|
rm -rf developer_manual/api/capytaine*.rst
|
|
31
|
-
sphinx-apidoc -o developer_manual/api/ ../capytaine --separate --doc-project "API documentation"
|
|
31
|
+
sphinx-apidoc -o developer_manual/api/ ../src/capytaine --separate --doc-project "API documentation"
|