capytaine 2.2.1__cp39-cp39-win_amd64.whl → 2.3__cp39-cp39-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.
Files changed (49) hide show
  1. capytaine/__about__.py +1 -1
  2. capytaine/__init__.py +7 -6
  3. capytaine/bem/airy_waves.py +7 -2
  4. capytaine/bem/problems_and_results.py +78 -34
  5. capytaine/bem/solver.py +127 -39
  6. capytaine/bodies/bodies.py +30 -10
  7. capytaine/bodies/predefined/rectangles.py +2 -0
  8. capytaine/green_functions/FinGreen3D/.gitignore +1 -0
  9. capytaine/green_functions/FinGreen3D/FinGreen3D.f90 +3589 -0
  10. capytaine/green_functions/FinGreen3D/LICENSE +165 -0
  11. capytaine/green_functions/FinGreen3D/Makefile +16 -0
  12. capytaine/green_functions/FinGreen3D/README.md +24 -0
  13. capytaine/green_functions/FinGreen3D/test_program.f90 +39 -0
  14. capytaine/green_functions/LiangWuNoblesse/.gitignore +1 -0
  15. capytaine/green_functions/LiangWuNoblesse/LICENSE +504 -0
  16. capytaine/green_functions/LiangWuNoblesse/LiangWuNoblesseWaveTerm.f90 +751 -0
  17. capytaine/green_functions/LiangWuNoblesse/Makefile +18 -0
  18. capytaine/green_functions/LiangWuNoblesse/README.md +2 -0
  19. capytaine/green_functions/LiangWuNoblesse/test_program.f90 +28 -0
  20. capytaine/green_functions/abstract_green_function.py +55 -3
  21. capytaine/green_functions/delhommeau.py +186 -115
  22. capytaine/green_functions/hams.py +204 -0
  23. capytaine/green_functions/libs/Delhommeau_float32.cp39-win_amd64.dll.a +0 -0
  24. capytaine/green_functions/libs/Delhommeau_float32.cp39-win_amd64.pyd +0 -0
  25. capytaine/green_functions/libs/Delhommeau_float64.cp39-win_amd64.dll.a +0 -0
  26. capytaine/green_functions/libs/Delhommeau_float64.cp39-win_amd64.pyd +0 -0
  27. capytaine/io/bemio.py +14 -2
  28. capytaine/io/mesh_loaders.py +1 -1
  29. capytaine/io/wamit.py +479 -0
  30. capytaine/io/xarray.py +257 -113
  31. capytaine/matrices/linear_solvers.py +1 -1
  32. capytaine/meshes/clipper.py +1 -0
  33. capytaine/meshes/collections.py +11 -1
  34. capytaine/meshes/mesh_like_protocol.py +37 -0
  35. capytaine/meshes/meshes.py +17 -6
  36. capytaine/meshes/symmetric.py +11 -2
  37. capytaine/post_pro/kochin.py +4 -4
  38. capytaine/tools/lists_of_points.py +3 -3
  39. capytaine/tools/prony_decomposition.py +60 -4
  40. capytaine/tools/symbolic_multiplication.py +12 -0
  41. capytaine/tools/timer.py +64 -0
  42. capytaine-2.3.dist-info/DELVEWHEEL +2 -0
  43. {capytaine-2.2.1.dist-info → capytaine-2.3.dist-info}/METADATA +9 -2
  44. {capytaine-2.2.1.dist-info → capytaine-2.3.dist-info}/RECORD +48 -32
  45. capytaine-2.2.1.dist-info/DELVEWHEEL +0 -2
  46. {capytaine-2.2.1.dist-info → capytaine-2.3.dist-info}/LICENSE +0 -0
  47. {capytaine-2.2.1.dist-info → capytaine-2.3.dist-info}/WHEEL +0 -0
  48. {capytaine-2.2.1.dist-info → capytaine-2.3.dist-info}/entry_points.txt +0 -0
  49. capytaine.libs/{.load-order-capytaine-2.2.1 → .load-order-capytaine-2.3} +2 -2
@@ -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 = CollectionOfMeshes([mesh.half for mesh in meshes], name=f"half_of_{name}" if name is not None else None)
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.
@@ -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/mancellin/capytaine>
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 Exception(f"""The values of the sources of {result} cannot been found.
33
- They probably have not been stored by the solver because the option keep_details=True have not been set.
34
- Please re-run the resolution with this option.""")
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 Mesh, CollectionOfMeshes
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, (Mesh, CollectionOfMeshes)):
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, (Mesh, CollectionOfMeshes)):
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-2019 Matthieu Ancellin
5
- # See LICENSE file at <https://github.com/mancellin/capytaine>
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
- """Compare exponential decomposition defined by the coefficients a and lamda to the reference
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
  """
@@ -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\\cp39-win_amd64\\build\\venv\\Scripts\\delvewheel', 'repair', '-w', 'C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-9rerwt60\\cp39-win_amd64\\repaired_wheel', 'C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-9rerwt60\\cp39-win_amd64\\built_wheel\\capytaine-2.3-cp39-cp39-win_amd64.whl', '--no-mangle-all']
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: capytaine
3
- Version: 2.2.1
3
+ Version: 2.3
4
4
  Summary: Python BEM solver for linear potential flow, based on Nemoh
5
- Author-Email: Matthieu Ancellin <matthieu.ancellin@eurobios.com>
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=A_iYEaTk1goTmFlptUh4-Naic0CqJQ74o3SdkxXxnwQ,431
2
- capytaine/__init__.py,sha256=BZuF9wctJBUiqP_rBgnWpH67G7JDYtwFy44a4ih8xQQ,3287
3
- capytaine/bem/airy_waves.py,sha256=mKDInIK-qUxcy2HNZ4YfwtstLoVzr3qdTNdeKOdEBCw,3358
1
+ capytaine/__about__.py,sha256=LRZ6r4hFLAiFQOnekKww3qXw0AwGCtRHyfduv0eZKcc,429
2
+ capytaine/__init__.py,sha256=AjYBXd-lK4_TfdaLbp26X3w9WBvMUEpwmRK9J5Xz3nU,3424
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=EL9Ma__vAgUzeyz95DlVdHo5VYi_yrZopTdwbIvc1E4,25748
6
- capytaine/bem/solver.py,sha256=V4RTj8SLiYZX1RpD2ihM6ehmKk09ehybTHRXwOpb_bo,24419
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=5V2klT4Lryk819F3fGuWoYYo3Q6fk7upHHlwxeC2PI4,52665
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=-hkD_cjOKnoxbypthj_La1jgiCNrnV-YeoEe6tjQAdk,4544
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=SybRCQcn4pbIep5z_2MHZ5UVHqHfWXSKF0CWNiL2Kdc,430
16
- capytaine/green_functions/delhommeau.py,sha256=-joIR_07lusaidlWepbHawJMR02NDBusIeZU5TCaErg,20850
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/libs/Delhommeau_float32.cp39-win_amd64.dll.a,sha256=6jxqiUd9C78G4H1kWTXR7btQi9sJVgGTjg-KujC8sYs,1876
19
- capytaine/green_functions/libs/Delhommeau_float32.cp39-win_amd64.pyd,sha256=w4VcqtpgnZT_iF1GHPxqWgi6eF-T66HsnFmphl-KQmQ,274654
20
- capytaine/green_functions/libs/Delhommeau_float64.cp39-win_amd64.dll.a,sha256=-ividw3F_rFCWkyKGypWKYTrbE9Z5wkS81bgR5JCzg8,1876
21
- capytaine/green_functions/libs/Delhommeau_float64.cp39-win_amd64.pyd,sha256=3XPZQ95RfS5w4Fo_No0z3GV-aNar_vNz46_HFXaGsNA,279970
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.cp39-win_amd64.dll.a,sha256=eEb_e5lUj-z9iKqe-S0kP9nR0rhINeIc5xs0D6knjJA,1876
32
+ capytaine/green_functions/libs/Delhommeau_float32.cp39-win_amd64.pyd,sha256=ItK5Gt3WPNcRS_cjTUJdbWAt4YeNWS-n-gA3W0UUgOs,415802
33
+ capytaine/green_functions/libs/Delhommeau_float64.cp39-win_amd64.dll.a,sha256=sY3-tJ_nTlk1aFFtbOX3PscZlx8hWfDsUboBW6HQaX8,1876
34
+ capytaine/green_functions/libs/Delhommeau_float64.cp39-win_amd64.pyd,sha256=cuOEGcfSNN6bUGH5xKr7nNUJul04c9mHLJfNPGWIJAs,474217
22
35
  capytaine/green_functions/libs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
- capytaine/io/bemio.py,sha256=zi4p1AJgXhoaBsQ_JAIIEFBRy2Ty0NetKsoEFIKoC_c,6795
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=V1hD71cxN_wgmvU3Z5THtcOY9lbLeDmmVr6FiyeZtf0,32860
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/xarray.py,sha256=CEDOIsfLrBXTx8pIFo0skNbCdpseHFcXzc4iyn29UEQ,23964
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=XSTxOmeMzYYmitmCAFscOnEXGjO_naPj1EkdPmTr6Ps,9144
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=Xq1SYNFTuw_9oi9qFMaudRn2YnXyuM_Lxe6I_umKrT0,19097
37
- capytaine/meshes/collections.py,sha256=yIFmip3Dt3UUT4jGZtTuzKmlGitxhyClkbf2R3SZW3c,11081
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=237COlvNonY-zv_y5smvrkMWaLXuBxvOHmnjIZVZvdw,32750
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=9A5HDqbcIq3r0Gkgzgzo9lvAcppCL7fi5rlgyrLYjQg,15611
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=My3bdBOanWzCYeEM4jY6vJofQIFjt68NWMv6JycbonQ,1915
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=S0nB3pA_LSxIpDALPDAI9b-bfiaNWlCEADZe9aTRfVY,1913
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=p7xdG8Ky3VVe7YbNr9UkC0JA_v8iDVenFfkCnFP-QQA,2786
61
- capytaine/tools/symbolic_multiplication.py,sha256=WRreeWbtANlZGxrFkqMc5b0Vp-TReGOtdzfhN5j2vwQ,4139
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,13 +84,13 @@ 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.2.1.dist-info/DELVEWHEEL,sha256=jyJZ8RHzSZabqn80y8fle5rfhZ5i82yae3AMyGAWpO0,415
72
- capytaine-2.2.1.dist-info/entry_points.txt,sha256=R72-je8lc6ELm8ftt7lJ7f1aalnQs5BWYrGDBMexHII,53
73
- capytaine-2.2.1.dist-info/LICENSE,sha256=Czg9WmPaZE9ijZnDOXbqZIftiaqlnwsyV5kt6sEXHms,35821
74
- capytaine-2.2.1.dist-info/METADATA,sha256=mntdNUvFCH4TIl63JhG2wWpWawEFM3EUy0haUPlIyCw,45212
75
- capytaine-2.2.1.dist-info/RECORD,,
76
- capytaine-2.2.1.dist-info/WHEEL,sha256=8AdrFzOtKQ6LLJ-VyqCU3y1iN8N--fMXYqrdkeTKDn0,83
77
- capytaine.libs/.load-order-capytaine-2.2.1,sha256=GAsTsgRkHGMz8jIw1tqU1-FXOdyTmahlPtPnfkRAJOc,89
87
+ capytaine-2.3.dist-info/DELVEWHEEL,sha256=_bZsGPyy8YBTzDYdjxkK2J_t4wi58f8_8qko4gwAdng,414
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=8AdrFzOtKQ6LLJ-VyqCU3y1iN8N--fMXYqrdkeTKDn0,83
93
+ capytaine.libs/.load-order-capytaine-2.3,sha256=1ekdUP0Ux3u3Da1tlcpgxxB3LcBoQ6M-ATaNPXVQ_zc,89
78
94
  capytaine.libs/libgcc_s_seh-1.dll,sha256=q2m46g2pAq7jvn1d0qbVW6WqyOpxQ6KtnAdh5r3gCxY,111616
79
95
  capytaine.libs/libgfortran-5.dll,sha256=wLLASxjhj_hbogJghmWeKSyi6w4L9h8xR04-iS1Ejq4,3118080
80
96
  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\\cp39-win_amd64\\build\\venv\\Scripts\\delvewheel', 'repair', '-w', 'C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-qolinjw3\\cp39-win_amd64\\repaired_wheel', 'C:\\Users\\runneradmin\\AppData\\Local\\Temp\\cibw-run-qolinjw3\\cp39-win_amd64\\built_wheel\\capytaine-2.2.1-cp39-cp39-win_amd64.whl', '--no-mangle-all']
@@ -1,5 +1,5 @@
1
- libgomp-1.dll
1
+ libquadmath-0.dll
2
2
  libgfortran-5.dll
3
+ libgomp-1.dll
3
4
  libgcc_s_seh-1.dll
4
5
  libwinpthread-1.dll
5
- libquadmath-0.dll