capytaine 2.2.1__cp313-cp313-win_amd64.whl → 2.3__cp313-cp313-win_amd64.whl
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/__about__.py +1 -1
- capytaine/__init__.py +5 -4
- capytaine/bem/airy_waves.py +7 -2
- capytaine/bem/problems_and_results.py +78 -34
- capytaine/bem/solver.py +127 -39
- capytaine/bodies/bodies.py +30 -10
- capytaine/bodies/predefined/rectangles.py +2 -0
- capytaine/green_functions/FinGreen3D/.gitignore +1 -0
- capytaine/green_functions/FinGreen3D/FinGreen3D.f90 +3589 -0
- capytaine/green_functions/FinGreen3D/LICENSE +165 -0
- capytaine/green_functions/FinGreen3D/Makefile +16 -0
- capytaine/green_functions/FinGreen3D/README.md +24 -0
- capytaine/green_functions/FinGreen3D/test_program.f90 +39 -0
- capytaine/green_functions/LiangWuNoblesse/.gitignore +1 -0
- capytaine/green_functions/LiangWuNoblesse/LICENSE +504 -0
- capytaine/green_functions/LiangWuNoblesse/LiangWuNoblesseWaveTerm.f90 +751 -0
- capytaine/green_functions/LiangWuNoblesse/Makefile +18 -0
- capytaine/green_functions/LiangWuNoblesse/README.md +2 -0
- capytaine/green_functions/LiangWuNoblesse/test_program.f90 +28 -0
- capytaine/green_functions/abstract_green_function.py +55 -3
- capytaine/green_functions/delhommeau.py +186 -115
- capytaine/green_functions/hams.py +204 -0
- capytaine/green_functions/libs/Delhommeau_float32.cp313-win_amd64.dll.a +0 -0
- capytaine/green_functions/libs/Delhommeau_float32.cp313-win_amd64.pyd +0 -0
- capytaine/green_functions/libs/Delhommeau_float64.cp313-win_amd64.dll.a +0 -0
- capytaine/green_functions/libs/Delhommeau_float64.cp313-win_amd64.pyd +0 -0
- capytaine/io/bemio.py +14 -2
- capytaine/io/mesh_loaders.py +1 -1
- capytaine/io/wamit.py +479 -0
- capytaine/io/xarray.py +257 -113
- capytaine/matrices/linear_solvers.py +1 -1
- capytaine/meshes/clipper.py +1 -0
- capytaine/meshes/collections.py +11 -1
- capytaine/meshes/mesh_like_protocol.py +37 -0
- capytaine/meshes/meshes.py +17 -6
- capytaine/meshes/symmetric.py +11 -2
- capytaine/post_pro/kochin.py +4 -4
- capytaine/tools/lists_of_points.py +3 -3
- capytaine/tools/prony_decomposition.py +60 -4
- capytaine/tools/symbolic_multiplication.py +12 -0
- capytaine/tools/timer.py +64 -0
- capytaine-2.3.dist-info/DELVEWHEEL +2 -0
- {capytaine-2.2.1.dist-info → capytaine-2.3.dist-info}/METADATA +9 -2
- {capytaine-2.2.1.dist-info → capytaine-2.3.dist-info}/RECORD +47 -31
- capytaine-2.2.1.dist-info/DELVEWHEEL +0 -2
- {capytaine-2.2.1.dist-info → capytaine-2.3.dist-info}/LICENSE +0 -0
- {capytaine-2.2.1.dist-info → capytaine-2.3.dist-info}/WHEEL +0 -0
- {capytaine-2.2.1.dist-info → capytaine-2.3.dist-info}/entry_points.txt +0 -0
capytaine/meshes/symmetric.py
CHANGED
|
@@ -10,7 +10,7 @@ import numpy as np
|
|
|
10
10
|
|
|
11
11
|
from capytaine.meshes.meshes import Mesh
|
|
12
12
|
from capytaine.meshes.collections import CollectionOfMeshes
|
|
13
|
-
from capytaine.meshes.geometry import Axis, Plane, Oz_axis, inplace_transformation
|
|
13
|
+
from capytaine.meshes.geometry import Axis, Plane, xOy_Plane, Oz_axis, inplace_transformation
|
|
14
14
|
|
|
15
15
|
LOG = logging.getLogger(__name__)
|
|
16
16
|
|
|
@@ -89,7 +89,7 @@ class ReflectionSymmetricMesh(SymmetricMesh):
|
|
|
89
89
|
"Only meshes with the same symmetry can be joined together."
|
|
90
90
|
assert all(meshes[0].plane == mesh.plane for mesh in meshes), \
|
|
91
91
|
"Only reflection symmetric meshes with the same reflection plane can be joined together."
|
|
92
|
-
half_mesh =
|
|
92
|
+
half_mesh = meshes[0].half.join_meshes(*(mesh.half for mesh in meshes[1:]), name=f"half_of_{name}" if name is not None else None)
|
|
93
93
|
return ReflectionSymmetricMesh(half_mesh, plane=meshes[0].plane, name=name)
|
|
94
94
|
|
|
95
95
|
@inplace_transformation
|
|
@@ -110,6 +110,15 @@ class ReflectionSymmetricMesh(SymmetricMesh):
|
|
|
110
110
|
CollectionOfMeshes.mirror(self, plane)
|
|
111
111
|
return self
|
|
112
112
|
|
|
113
|
+
def generate_lid(self, z=0.0, faces_max_radius=None, name=None):
|
|
114
|
+
if name is None:
|
|
115
|
+
name = "lid for {}".format(self.name)
|
|
116
|
+
return ReflectionSymmetricMesh(self.half.generate_lid(z, faces_max_radius), self.plane, name=name)
|
|
117
|
+
|
|
118
|
+
def extract_lid(self, plane=xOy_Plane):
|
|
119
|
+
hull, lid = self.half.extract_lid(plane)
|
|
120
|
+
return ReflectionSymmetricMesh(hull, self.plane), ReflectionSymmetricMesh(lid, self.plane)
|
|
121
|
+
|
|
113
122
|
|
|
114
123
|
class TranslationalSymmetricMesh(SymmetricMesh):
|
|
115
124
|
"""A mesh with a repeating pattern by translation.
|
capytaine/post_pro/kochin.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""Computation of the Kochin function."""
|
|
2
2
|
# Copyright (C) 2017-2019 Matthieu Ancellin
|
|
3
|
-
# See LICENSE file at <https://github.com/
|
|
3
|
+
# See LICENSE file at <https://github.com/capytaine/capytaine>
|
|
4
4
|
|
|
5
5
|
import logging
|
|
6
6
|
import numpy as np
|
|
@@ -29,9 +29,9 @@ def compute_kochin(result, theta, ref_point=(0.0, 0.0)):
|
|
|
29
29
|
LOG.warning("Kochin functions with forward speed have never been validated.")
|
|
30
30
|
|
|
31
31
|
if result.sources is None:
|
|
32
|
-
raise
|
|
33
|
-
They
|
|
34
|
-
Please re-run the resolution with
|
|
32
|
+
raise ValueError(f"""The values of the sources of {result} cannot been found.
|
|
33
|
+
They have not been stored by the solver either because the direct method has been used or the option keep_details=True have not been set.
|
|
34
|
+
Please re-run the resolution with `method='indirect'` and `keep_details=True`.""")
|
|
35
35
|
|
|
36
36
|
k = result.wavenumber
|
|
37
37
|
h = result.water_depth
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import numpy as np
|
|
2
2
|
from capytaine.bodies import FloatingBody
|
|
3
3
|
from capytaine.post_pro.free_surfaces import FreeSurface
|
|
4
|
-
from capytaine.meshes import
|
|
4
|
+
from capytaine.meshes.mesh_like_protocol import MeshLike
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
def _normalize_points(points, keep_mesh=False):
|
|
@@ -11,7 +11,7 @@ def _normalize_points(points, keep_mesh=False):
|
|
|
11
11
|
else:
|
|
12
12
|
return points.mesh.faces_centers, (points.mesh.nb_faces,)
|
|
13
13
|
|
|
14
|
-
if isinstance(points,
|
|
14
|
+
if isinstance(points, MeshLike):
|
|
15
15
|
if keep_mesh:
|
|
16
16
|
return points, (points.nb_faces,)
|
|
17
17
|
else:
|
|
@@ -41,7 +41,7 @@ def _normalize_free_surface_points(points, keep_mesh=False):
|
|
|
41
41
|
if keep_mesh and isinstance(points, (FloatingBody, FreeSurface)):
|
|
42
42
|
return points.mesh, (points.mesh.nb_faces,)
|
|
43
43
|
|
|
44
|
-
if keep_mesh and isinstance(points,
|
|
44
|
+
if keep_mesh and isinstance(points, MeshLike):
|
|
45
45
|
return points, (points.nb_faces,)
|
|
46
46
|
|
|
47
47
|
points, output_shape = _normalize_points(points, keep_mesh)
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"""Prony decomposition: tool to approximate a function as a sum of exponentials.
|
|
2
2
|
Used in particular in the finite depth Green function.
|
|
3
3
|
"""
|
|
4
|
-
# Copyright (C) 2017-
|
|
5
|
-
# See LICENSE file at <https://github.com/
|
|
4
|
+
# Copyright (C) 2017-2024 Matthieu Ancellin
|
|
5
|
+
# See LICENSE file at <https://github.com/capytaine/capytaine>
|
|
6
6
|
|
|
7
7
|
import logging
|
|
8
8
|
|
|
@@ -12,6 +12,7 @@ from scipy.optimize import curve_fit
|
|
|
12
12
|
from scipy.linalg import toeplitz
|
|
13
13
|
|
|
14
14
|
LOG = logging.getLogger(__name__)
|
|
15
|
+
RNG = np.random.default_rng()
|
|
15
16
|
|
|
16
17
|
|
|
17
18
|
def exponential_decomposition(X, F, m):
|
|
@@ -66,8 +67,8 @@ def exponential_decomposition(X, F, m):
|
|
|
66
67
|
|
|
67
68
|
|
|
68
69
|
def error_exponential_decomposition(X, F, a, lamda):
|
|
69
|
-
"""
|
|
70
|
-
values in F.
|
|
70
|
+
"""Mean square error of the exponential decomposition defined by the
|
|
71
|
+
coefficients a and lamda with respect to the reference values in F.
|
|
71
72
|
|
|
72
73
|
Parameters
|
|
73
74
|
----------
|
|
@@ -92,3 +93,58 @@ def error_exponential_decomposition(X, F, a, lamda):
|
|
|
92
93
|
return np.sum(a * np.exp(lamda*x), axis=0)
|
|
93
94
|
|
|
94
95
|
return np.square(f(X) - F).mean()
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
class PronyDecompositionFailure(Exception):
|
|
99
|
+
pass
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def find_best_exponential_decomposition(f, x_min, x_max, n_exp_range, *, tol=1e-4, noise_on_domain_points_std=0.01):
|
|
103
|
+
"""Tries to construct an exponential decompositoin of the function f on the
|
|
104
|
+
domain [x_min, x_max] by testing the number of exponentials in n_exp_range.
|
|
105
|
+
|
|
106
|
+
Parameters
|
|
107
|
+
----------
|
|
108
|
+
f: callable
|
|
109
|
+
The function ℝ→ℝ to be approximated.
|
|
110
|
+
Should support vectorized calls (that is passing a vector of inputs
|
|
111
|
+
and get the vector of corresponding outputs)
|
|
112
|
+
x_min, x_max: floats
|
|
113
|
+
The bounds of the domain of input in which f should be approximated
|
|
114
|
+
n_exp_range: iterable of ints
|
|
115
|
+
The decomposition sizes that will be tested
|
|
116
|
+
tol: float, optional
|
|
117
|
+
The target mean square error.
|
|
118
|
+
noise_on_domain_points_std: float, optional
|
|
119
|
+
Introduces some random variability on the points where the function is evaluated.
|
|
120
|
+
Set this parameter to zero to disable randomness.
|
|
121
|
+
|
|
122
|
+
"""
|
|
123
|
+
# Try different range of evaluation points to construct the decomposition.
|
|
124
|
+
for n_exp in n_exp_range:
|
|
125
|
+
|
|
126
|
+
# f might be ill-defined at some single specific values
|
|
127
|
+
# (for the use-case of delhommeau.py, it is when x = kh exactly).
|
|
128
|
+
# Thus we slightly randomize the range of evaluation points for the Prony decomposition.
|
|
129
|
+
# This way, if one of the evaluation points hits the singular point, it will most likely not hit it again at the next iteration.
|
|
130
|
+
x_max_iter = (1 + noise_on_domain_points_std*RNG.uniform())*x_max
|
|
131
|
+
|
|
132
|
+
try:
|
|
133
|
+
# The coefficients are computed on a resolution of 4*n_exp+1 ...
|
|
134
|
+
X = np.linspace(x_min, x_max_iter, 4*n_exp+1)
|
|
135
|
+
a, lamda = exponential_decomposition(X, f(X), n_exp)
|
|
136
|
+
|
|
137
|
+
# ... and they are evaluated on a finer discretization.
|
|
138
|
+
X = np.linspace(x_min, x_max_iter, 8*n_exp+1)
|
|
139
|
+
if error_exponential_decomposition(X, f(X), a, lamda) < tol:
|
|
140
|
+
return a, lamda
|
|
141
|
+
except Exception:
|
|
142
|
+
# If something bad happened while computing the decomposition, try
|
|
143
|
+
# the next one.
|
|
144
|
+
continue
|
|
145
|
+
|
|
146
|
+
raise PronyDecompositionFailure(
|
|
147
|
+
"No suitable Prony decomposition has been found in "
|
|
148
|
+
f"[{x_min}, {x_max}] for tol={tol} "
|
|
149
|
+
f"using a number of terms in {n_exp_range}."
|
|
150
|
+
)
|
|
@@ -16,6 +16,8 @@ class SymbolicMultiplication:
|
|
|
16
16
|
def __init__(self, symbol, value=1.0):
|
|
17
17
|
self.symbol = symbol
|
|
18
18
|
self.value = value
|
|
19
|
+
if hasattr(value, "shape"):
|
|
20
|
+
self.shape = value.shape # When wrapping Numpy arrays
|
|
19
21
|
|
|
20
22
|
def __format__(self, format_spec):
|
|
21
23
|
return f"{self.symbol}×{self.value.__format__(format_spec)}"
|
|
@@ -40,6 +42,9 @@ class SymbolicMultiplication:
|
|
|
40
42
|
def __radd__(self, x):
|
|
41
43
|
return x + self._concretize()
|
|
42
44
|
|
|
45
|
+
def __neg__(self):
|
|
46
|
+
return SymbolicMultiplication(self.symbol, -self.value)
|
|
47
|
+
|
|
43
48
|
def __mul__(self, x):
|
|
44
49
|
return SymbolicMultiplication(self.symbol, self.value * x)
|
|
45
50
|
|
|
@@ -106,6 +111,13 @@ class SymbolicMultiplication:
|
|
|
106
111
|
def reshape(self, *args):
|
|
107
112
|
return SymbolicMultiplication(self.symbol, self.value.reshape(*args))
|
|
108
113
|
|
|
114
|
+
def sum(self, *args, **kwargs):
|
|
115
|
+
return SymbolicMultiplication(self.symbol, self.value.sum(*args, **kwargs))
|
|
116
|
+
|
|
117
|
+
@property
|
|
118
|
+
def T(self):
|
|
119
|
+
return SymbolicMultiplication(self.symbol, self.value.T)
|
|
120
|
+
|
|
109
121
|
|
|
110
122
|
def supporting_symbolic_multiplication(f):
|
|
111
123
|
"""
|
capytaine/tools/timer.py
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"""A simple timer class used to measure the time spent in various parts of the BEM solver."""
|
|
2
|
+
|
|
3
|
+
from functools import wraps
|
|
4
|
+
import time
|
|
5
|
+
|
|
6
|
+
class Timer:
|
|
7
|
+
"""A simple timer class that can be used as context manager or as decorator using `wraps_function` method
|
|
8
|
+
|
|
9
|
+
Example
|
|
10
|
+
-------
|
|
11
|
+
timer = Timer()
|
|
12
|
+
with timer:
|
|
13
|
+
sleep(1.0)
|
|
14
|
+
|
|
15
|
+
print(timer.total) # 1.0...
|
|
16
|
+
|
|
17
|
+
@timer.wraps_function
|
|
18
|
+
def my_function():
|
|
19
|
+
sleep(0.5)
|
|
20
|
+
|
|
21
|
+
my_function()
|
|
22
|
+
print(timer.total) # 1.5...
|
|
23
|
+
my_function()
|
|
24
|
+
print(timer.total) # 2.0...
|
|
25
|
+
|
|
26
|
+
print(timer.timings) # [1.0, 0.5, 0.5]
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
def __init__(self, timings=None):
|
|
30
|
+
if timings is None:
|
|
31
|
+
self.timings = []
|
|
32
|
+
else:
|
|
33
|
+
self.timings = timings
|
|
34
|
+
|
|
35
|
+
def __repr__(self):
|
|
36
|
+
return f"Timer({self.timings})"
|
|
37
|
+
|
|
38
|
+
@property
|
|
39
|
+
def nb_timings(self):
|
|
40
|
+
return len(self.timings)
|
|
41
|
+
|
|
42
|
+
@property
|
|
43
|
+
def total(self):
|
|
44
|
+
return sum(self.timings)
|
|
45
|
+
|
|
46
|
+
@property
|
|
47
|
+
def mean(self):
|
|
48
|
+
if self.nb_timings == 0:
|
|
49
|
+
return float('nan')
|
|
50
|
+
else:
|
|
51
|
+
return self.total/self.nb_timings
|
|
52
|
+
|
|
53
|
+
def __enter__(self):
|
|
54
|
+
self.start_time = time.perf_counter()
|
|
55
|
+
|
|
56
|
+
def __exit__(self, *exc):
|
|
57
|
+
self.timings.append(time.perf_counter() - self.start_time)
|
|
58
|
+
|
|
59
|
+
def wraps_function(self, f):
|
|
60
|
+
@wraps(f)
|
|
61
|
+
def wrapped_f(*args, **kwargs):
|
|
62
|
+
with self:
|
|
63
|
+
return f(*args, **kwargs)
|
|
64
|
+
return wrapped_f
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
Version: 1.10.1
|
|
2
|
+
Arguments: ['C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-9rerwt60\\cp313-win_amd64\\build\\venv\\Scripts\\delvewheel', 'repair', '-w', 'C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-9rerwt60\\cp313-win_amd64\\repaired_wheel', 'C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-9rerwt60\\cp313-win_amd64\\built_wheel\\capytaine-2.3-cp313-cp313-win_amd64.whl', '--no-mangle-all']
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: capytaine
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3
|
|
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,6 +683,7 @@ 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"
|
|
@@ -695,8 +696,14 @@ 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"
|
|
699
|
+
Requires-Dist: netcdf4; extra == "optional"
|
|
700
|
+
Requires-Dist: vtk; extra == "optional"
|
|
701
|
+
Provides-Extra: more-optional
|
|
702
|
+
Requires-Dist: pygmsh; extra == "more-optional"
|
|
703
|
+
Requires-Dist: gmsh; extra == "more-optional"
|
|
698
704
|
Provides-Extra: test
|
|
699
705
|
Requires-Dist: pytest; extra == "test"
|
|
706
|
+
Requires-Dist: capytaine[optional]; extra == "test"
|
|
700
707
|
Provides-Extra: docs
|
|
701
708
|
Requires-Dist: sphinx; extra == "docs"
|
|
702
709
|
Requires-Dist: sphinx-toolbox; extra == "docs"
|
|
@@ -1,47 +1,62 @@
|
|
|
1
|
-
capytaine/__about__.py,sha256=
|
|
2
|
-
capytaine/__init__.py,sha256=
|
|
3
|
-
capytaine/bem/airy_waves.py,sha256=
|
|
1
|
+
capytaine/__about__.py,sha256=LRZ6r4hFLAiFQOnekKww3qXw0AwGCtRHyfduv0eZKcc,429
|
|
2
|
+
capytaine/__init__.py,sha256=BHnatA7zRAuTQpRuNgHp9cx0WwXmHV1qkT9ev98eUzk,2184
|
|
3
|
+
capytaine/bem/airy_waves.py,sha256=vap1Qmdo-m1lZ-WLj_5TJY2v3_bNJNtJ_04OkJX83fA,3609
|
|
4
4
|
capytaine/bem/engines.py,sha256=8ShZTaYTYUKSQwt_sHwWH8BfBlt1G0RkDM3mSfuyeE4,18511
|
|
5
|
-
capytaine/bem/problems_and_results.py,sha256=
|
|
6
|
-
capytaine/bem/solver.py,sha256=
|
|
5
|
+
capytaine/bem/problems_and_results.py,sha256=j3xdiKZ77fvTMQ8l_JyArTPtcZ284IX1dxgciVbuDZg,27632
|
|
6
|
+
capytaine/bem/solver.py,sha256=e1oHAC8c6paOMpeClg34zA3II90Ao_Rzdx-uHIozr1E,29389
|
|
7
7
|
capytaine/bem/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
-
capytaine/bodies/bodies.py,sha256=
|
|
8
|
+
capytaine/bodies/bodies.py,sha256=kTPL3cyk47erZXaVAi9Z1Oqfz0Cfv_GjS9vZO0KqplI,53456
|
|
9
9
|
capytaine/bodies/dofs.py,sha256=CCGNYqilJE6eppyKxiF_712Vc5iCkbbbrRFCZwvKLdY,617
|
|
10
10
|
capytaine/bodies/__init__.py,sha256=1157LRyNMo7TFZOMvlsC7NPPSMflsZVPfMxeLyNUQkU,161
|
|
11
11
|
capytaine/bodies/predefined/cylinders.py,sha256=1F9aLXp5ZzUcdo0_xncIliNIK3KAIFMc2XspjfWPh-k,5747
|
|
12
|
-
capytaine/bodies/predefined/rectangles.py,sha256
|
|
12
|
+
capytaine/bodies/predefined/rectangles.py,sha256=4iHUNJO_5oX8Xfhj2zTg4mIbOu7Myab7owd7FQREPb4,4611
|
|
13
13
|
capytaine/bodies/predefined/spheres.py,sha256=vHCuB9wq7Fkgx62tYSSpxqo8mgNna49nAQ_bS4GcfAI,2668
|
|
14
14
|
capytaine/bodies/predefined/__init__.py,sha256=oXMF4lq-wIWO5IWtUt4ZywVAGIi926zYTUz2j_iogT4,344
|
|
15
|
-
capytaine/green_functions/abstract_green_function.py,sha256=
|
|
16
|
-
capytaine/green_functions/delhommeau.py,sha256
|
|
15
|
+
capytaine/green_functions/abstract_green_function.py,sha256=PjV2qANb71JEK1YI1GPCF4_2UmBZLN7YCKllvMP6ELY,2898
|
|
16
|
+
capytaine/green_functions/delhommeau.py,sha256=CwLaP2r-qaEZeAr0LaLJL7Hdt4cCGLF_QITsQ27jjcA,23860
|
|
17
|
+
capytaine/green_functions/hams.py,sha256=MS04A6ucbxk7tqGcgrihthbz1Uj4jpL1B4LvdN0C-jc,8456
|
|
17
18
|
capytaine/green_functions/__init__.py,sha256=Rvl4Xv0MbD9NOpcnYkiSpeD097l_SQX8C5r-9CvdIZs,109
|
|
18
|
-
capytaine/green_functions/
|
|
19
|
-
capytaine/green_functions/
|
|
20
|
-
capytaine/green_functions/
|
|
21
|
-
capytaine/green_functions/
|
|
19
|
+
capytaine/green_functions/FinGreen3D/.gitignore,sha256=IxYDvaMqbeEuzSKLq9nRgJIH2AtjPp-ugUuPMhlNirE,8
|
|
20
|
+
capytaine/green_functions/FinGreen3D/FinGreen3D.f90,sha256=tBsSc6BfQJpaFQ6j6tEYWG25u_SixJnooiCfQ1Uu9MI,119957
|
|
21
|
+
capytaine/green_functions/FinGreen3D/LICENSE,sha256=6n0EnHcF3BOvwgLdGOGCfzSE-CEv0_p7gvxKDDY0Msk,7816
|
|
22
|
+
capytaine/green_functions/FinGreen3D/Makefile,sha256=GncBNZbtwwyR3MsuXTydppLxzAzSpC6_NKdgEFZiirQ,370
|
|
23
|
+
capytaine/green_functions/FinGreen3D/README.md,sha256=DshpH31IvMrxmF0qhYoW5GlK32s_jM8kacBKjW_K_y4,2004
|
|
24
|
+
capytaine/green_functions/FinGreen3D/test_program.f90,sha256=JYDnew3326C_hCZISpWDS_3Xk5SGEJW-p48hE22XwQY,965
|
|
25
|
+
capytaine/green_functions/LiangWuNoblesse/.gitignore,sha256=IxYDvaMqbeEuzSKLq9nRgJIH2AtjPp-ugUuPMhlNirE,8
|
|
26
|
+
capytaine/green_functions/LiangWuNoblesse/LiangWuNoblesseWaveTerm.f90,sha256=BYaVrslAbglcI-7-kOz7qH3AQKLY4rvCmXaa7zfDCaM,22552
|
|
27
|
+
capytaine/green_functions/LiangWuNoblesse/LICENSE,sha256=f_4ZVFh8d9-6HPjrmy6nQ2cfpuY_nnovJYEZ1C4U7v4,27030
|
|
28
|
+
capytaine/green_functions/LiangWuNoblesse/Makefile,sha256=25uL3q1VNE9ladcJf9CWMHJ1j2nm8klpKQ-uFEUWctQ,431
|
|
29
|
+
capytaine/green_functions/LiangWuNoblesse/README.md,sha256=mrO9uR0UcNbDOXRjNwahU7AIto-DXHXmNiA5gJ1jKpk,104
|
|
30
|
+
capytaine/green_functions/LiangWuNoblesse/test_program.f90,sha256=xBkCHsS17Mik7IKgTKRTZNz4EwQcPgnJM1WSmopEWqQ,522
|
|
31
|
+
capytaine/green_functions/libs/Delhommeau_float32.cp313-win_amd64.dll.a,sha256=Emr3ouZcH8McHHKHZRWVE3oByzF_cOly2H70nCW0auE,1886
|
|
32
|
+
capytaine/green_functions/libs/Delhommeau_float32.cp313-win_amd64.pyd,sha256=mFdxDy_oFQYYbyb9P7iQm_0Ixf8ZjhZeiQfmtORmKYQ,424854
|
|
33
|
+
capytaine/green_functions/libs/Delhommeau_float64.cp313-win_amd64.dll.a,sha256=l-VNH4ISCULV8sZ-BCibSsVPbNIiDD41a0rf5F0O_z4,1886
|
|
34
|
+
capytaine/green_functions/libs/Delhommeau_float64.cp313-win_amd64.pyd,sha256=Z8EMJnyzAHBmx3lTJqbYj2fB5z-pnWs8zQIqFF3XFLg,483269
|
|
22
35
|
capytaine/green_functions/libs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
|
-
capytaine/io/bemio.py,sha256=
|
|
36
|
+
capytaine/io/bemio.py,sha256=_UKSNaI-uuT3ICSEpBRSHhWqN3cFjuBab2t-EJLRtxU,7487
|
|
24
37
|
capytaine/io/legacy.py,sha256=YwVxJKzofVyTshOcb84wr1l0Q2W4USeJNKau5PSBx5o,15058
|
|
25
38
|
capytaine/io/meshio.py,sha256=bu575xBYbl_7VOUwJz7cvtEPe1twYud2hZDWlbX3jjg,1507
|
|
26
|
-
capytaine/io/mesh_loaders.py,sha256=
|
|
39
|
+
capytaine/io/mesh_loaders.py,sha256=5Zb33dgfEZ2B-3SzbMML__N8yGfpbXDDgwuh6Fd561M,32857
|
|
27
40
|
capytaine/io/mesh_writers.py,sha256=pk88khE-8uXFJj1jmy80C6-saVn8-B7GohSmCWtco9k,21776
|
|
28
|
-
capytaine/io/
|
|
41
|
+
capytaine/io/wamit.py,sha256=ZCYQBPa2vBWLadtZP9Gkvrq_GpYdhxs4ekPLFDHTHRQ,16507
|
|
42
|
+
capytaine/io/xarray.py,sha256=g0wNvPqvfP6ZqPscKmqDCmyafBdZg5HapXsfEMa67MA,27577
|
|
29
43
|
capytaine/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
44
|
capytaine/matrices/block.py,sha256=Kqsyx1NkFyvwGuNB5Ws-UW5tcMa6pAYDfs6BfiVO0Tw,26078
|
|
31
45
|
capytaine/matrices/block_toeplitz.py,sha256=2G6Hg3cY6nhAsGPpz84utaXKPd0rALdRtGH9MQyd7LQ,13255
|
|
32
46
|
capytaine/matrices/builders.py,sha256=gAV7nDKaC-vwZNieJeOjdErUG19fJHyOA8VCU69-0Rc,3242
|
|
33
|
-
capytaine/matrices/linear_solvers.py,sha256=
|
|
47
|
+
capytaine/matrices/linear_solvers.py,sha256=yobnf7afu7a5Sgby9z8ZcHAjSRlQxVQj7a4Qprvc-qY,9169
|
|
34
48
|
capytaine/matrices/low_rank.py,sha256=ftWVq35dP-9fNZcqMU6FOXyQcrg_3-0u3ba7g1oW0Oo,16391
|
|
35
49
|
capytaine/matrices/__init__.py,sha256=BYCiuVbu4sp3Z6mdbK5uTphUTalvaLhHX1aPLljlsRA,720
|
|
36
|
-
capytaine/meshes/clipper.py,sha256=
|
|
37
|
-
capytaine/meshes/collections.py,sha256=
|
|
50
|
+
capytaine/meshes/clipper.py,sha256=3C1vxe6mlAYdv0uvtvc3ZA_Lb43ks7UZmDZ1mE9ImRc,19142
|
|
51
|
+
capytaine/meshes/collections.py,sha256=8El0zPaUIWbGu_hoqo_CNIv_rbuLfO77AaxNmTr3R7c,11423
|
|
38
52
|
capytaine/meshes/geometry.py,sha256=QSowVTd4dva0pe4osfFZj0giaL-7Dj-T3wdVZ4k-Clg,14516
|
|
39
|
-
capytaine/meshes/meshes.py,sha256
|
|
53
|
+
capytaine/meshes/meshes.py,sha256=-avX1RpGhCp2rLyNtuC7kSBSivjpaguV_K_9x4LfUN8,33165
|
|
54
|
+
capytaine/meshes/mesh_like_protocol.py,sha256=ACIwdvJO_qK6wwvbXUT8s5EoHAIUWWJNoBpDrR_3WCY,1066
|
|
40
55
|
capytaine/meshes/properties.py,sha256=zNnQCTAMReiJDMguU9pPwca_Zj_NDTTRqT-uVgABI0E,11066
|
|
41
56
|
capytaine/meshes/quadratures.py,sha256=j6waiQlEoRfzUsnTL2dQg9Ynq5WYkwZT7vV8KOCwN4E,3307
|
|
42
57
|
capytaine/meshes/quality.py,sha256=YVS294DJCTEyB9qGXEP56h9yqxjWIl6hg8P0QI2msIo,14831
|
|
43
58
|
capytaine/meshes/surface_integrals.py,sha256=7s_LOtyz2I1SFFsUE1YMoeSR-02MsocRb8AJS6hTEjc,2326
|
|
44
|
-
capytaine/meshes/symmetric.py,sha256=
|
|
59
|
+
capytaine/meshes/symmetric.py,sha256=_yQ8iRiCooFtvH6ryoOUYv0nIbutYiz5atU2rD8USIM,16089
|
|
45
60
|
capytaine/meshes/__init__.py,sha256=FKeQT_I3TAb9iHNqJi0qf9HPo_O001P4fXhZQZ8Oj50,367
|
|
46
61
|
capytaine/meshes/predefined/cylinders.py,sha256=r2UC8uMb60QyyUBaMEvCEkJ9EmazZvDnO-p0GsS2Us8,15160
|
|
47
62
|
capytaine/meshes/predefined/rectangles.py,sha256=wX0vtY8YLMmJ3UZk2oi7q5eKakDnULCXxMhO1KC8eC8,12555
|
|
@@ -49,16 +64,17 @@ capytaine/meshes/predefined/spheres.py,sha256=1_fwCvK2sdv3VPdH8xzMeLasbIb-ZYQkT5
|
|
|
49
64
|
capytaine/meshes/predefined/__init__.py,sha256=BQJOD_GolXloY8Lww0Orhhi0F5m838urQl_-MbsfKLI,371
|
|
50
65
|
capytaine/post_pro/free_surfaces.py,sha256=QwkBHU3si7TlXu3reWFDAuWQb_HrlkeMZwDmArJpzM0,3205
|
|
51
66
|
capytaine/post_pro/impedance.py,sha256=Or2rzFQDewXc0aeO1_Q_B3Sy0sR_hK6afW1VcVe6zT4,3584
|
|
52
|
-
capytaine/post_pro/kochin.py,sha256=
|
|
67
|
+
capytaine/post_pro/kochin.py,sha256=xM--OknA8T9zp9m_zgSuUYyJw6tlqIMOeCEB6d375nA,1981
|
|
53
68
|
capytaine/post_pro/rao.py,sha256=vyrNCCInAAsVZHsM3agsk35-PLelcMLAV25LsAUJwlQ,2353
|
|
54
69
|
capytaine/post_pro/__init__.py,sha256=Q5cAAosHI_X24h6mALZvfJWGUobCxWyB4lSMHFMDX4M,280
|
|
55
70
|
capytaine/tools/cache_on_disk.py,sha256=LwUaMkvd-Z46EXeVyYhGQpeNve5PVpM2qj0ESUHXYRs,938
|
|
56
71
|
capytaine/tools/deprecation_handling.py,sha256=oewPgemWDwbZ9of3uPS5k_RZ4kBldHtHYvjbX2PgerY,827
|
|
57
|
-
capytaine/tools/lists_of_points.py,sha256=
|
|
72
|
+
capytaine/tools/lists_of_points.py,sha256=OOCZkFBsPZj25KGYAvX2BhVLNnxbR-1lT3BSoEDq5YQ,1880
|
|
58
73
|
capytaine/tools/lru_cache.py,sha256=OH1J6XhXyKQGKfDhngBne_D_C2Jub3g92Y5JWWcN4ik,1758
|
|
59
74
|
capytaine/tools/optional_imports.py,sha256=L2_6h1My2jjl7GHL0_hmHsjOE8hRWFrs0eiq_OIDTH8,887
|
|
60
|
-
capytaine/tools/prony_decomposition.py,sha256=
|
|
61
|
-
capytaine/tools/symbolic_multiplication.py,sha256=
|
|
75
|
+
capytaine/tools/prony_decomposition.py,sha256=_iqHEhop8oBREz0zY35WXV-UkPw1QHbQhP6L_BrtCQM,5297
|
|
76
|
+
capytaine/tools/symbolic_multiplication.py,sha256=MQLsbAfQcWEn7YgcSNRhBmHMRRXY_8wA9Okt4IGaDmI,4560
|
|
77
|
+
capytaine/tools/timer.py,sha256=Ch47sRiDcOF-EcVrdM7Eyv4Lch2wqf2eQpIXNgHENMY,1528
|
|
62
78
|
capytaine/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
63
79
|
capytaine/ui/cli.py,sha256=DLgsJdmMASM70BqN7bbNQxBkiHKReJDJqgf4E9mr_yk,825
|
|
64
80
|
capytaine/ui/rich.py,sha256=kxI4CVa4ycJBloEHvLpLqrEArkLT4wAdcPKhbEw2hcY,238
|
|
@@ -68,12 +84,12 @@ capytaine/ui/vtk/body_viewer.py,sha256=1WGMjHBRhyGkCFxgvJKs_dY-eL2YCCKhqqehKgIww
|
|
|
68
84
|
capytaine/ui/vtk/helpers.py,sha256=V1_DeB6svtTlzdNzdcL7-GGj5QvCW6wpVzhXVmpVlwI,2722
|
|
69
85
|
capytaine/ui/vtk/mesh_viewer.py,sha256=V6ReLbsArkVAZRX6QZdqHhyo1dStT2ql8T2AzpP8HbA,15211
|
|
70
86
|
capytaine/ui/vtk/__init__.py,sha256=mtXE0si8Fc8QGneQIQNdGPPzhRLNwi4bPMUmQ9Vs1io,164
|
|
71
|
-
capytaine-2.
|
|
72
|
-
capytaine-2.
|
|
73
|
-
capytaine-2.
|
|
74
|
-
capytaine-2.
|
|
75
|
-
capytaine-2.
|
|
76
|
-
capytaine-2.
|
|
87
|
+
capytaine-2.3.dist-info/DELVEWHEEL,sha256=7FWfRr2tqcKSv-MRbq8x8fUFpvG0ZZ3y2zZSoqzl0_k,419
|
|
88
|
+
capytaine-2.3.dist-info/entry_points.txt,sha256=R72-je8lc6ELm8ftt7lJ7f1aalnQs5BWYrGDBMexHII,53
|
|
89
|
+
capytaine-2.3.dist-info/LICENSE,sha256=Czg9WmPaZE9ijZnDOXbqZIftiaqlnwsyV5kt6sEXHms,35821
|
|
90
|
+
capytaine-2.3.dist-info/METADATA,sha256=NSFNwYHZoOfMqn7if-xXY-r9qOLAGrlbUSG8qtlahy8,45516
|
|
91
|
+
capytaine-2.3.dist-info/RECORD,,
|
|
92
|
+
capytaine-2.3.dist-info/WHEEL,sha256=suq8ARrxbiI7iLH3BgK-82uzxQ-4Hm-m8w01oCokrtA,85
|
|
77
93
|
capytaine.libs/libgcc_s_seh-1.dll,sha256=q2m46g2pAq7jvn1d0qbVW6WqyOpxQ6KtnAdh5r3gCxY,111616
|
|
78
94
|
capytaine.libs/libgfortran-5.dll,sha256=wLLASxjhj_hbogJghmWeKSyi6w4L9h8xR04-iS1Ejq4,3118080
|
|
79
95
|
capytaine.libs/libgomp-1.dll,sha256=yCJD_z8GQ7Hi7iXgwG2hkjFAOqf-KeE45YnavaKCpf8,280576
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
Version: 1.9.0
|
|
2
|
-
Arguments: ['C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-qolinjw3\\cp313-win_amd64\\build\\venv\\Scripts\\delvewheel', 'repair', '-w', 'C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-qolinjw3\\cp313-win_amd64\\repaired_wheel', 'C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-qolinjw3\\cp313-win_amd64\\built_wheel\\capytaine-2.2.1-cp313-cp313-win_amd64.whl', '--no-mangle-all']
|
|
File without changes
|
|
File without changes
|
|
File without changes
|