bsplyne 1.0.0__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.
@@ -0,0 +1,70 @@
1
+
2
+ CeCILL FREE SOFTWARE LICENSE AGREEMENT
3
+
4
+ Version 2.1 dated 2013-06-21
5
+
6
+
7
+ Notice
8
+
9
+ This Agreement is a Free Software license agreement that is the result
10
+ of discussions between its authors in order to ensure compliance with
11
+ the two main principles guiding its drafting:
12
+
13
+ * firstly, compliance with the principles governing the distribution
14
+ of Free Software: access to source code, broad rights granted to users,
15
+ * secondly, the election of a governing law, French law, with which it
16
+ is conformant, both as regards the law of torts and intellectual
17
+ property law, and the protection that it offers to both authors and
18
+ holders of the economic rights over software.
19
+
20
+ The authors of the CeCILL (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre])
21
+ license are:
22
+
23
+ Commissariat à l'énergie atomique et aux énergies alternatives - CEA, a
24
+ public scientific, technical and industrial research establishment,
25
+ having its principal place of business at 25 rue Leblanc, immeuble Le
26
+ Ponant D, 75015 Paris, France.
27
+
28
+ Centre National de la Recherche Scientifique - CNRS, a public scientific
29
+ and technological establishment, having its principal place of business
30
+ at 3 rue Michel-Ange, 75794 Paris cedex 16, France.
31
+
32
+ Institut National de Recherche en Informatique et en Automatique -
33
+ Inria, a public scientific and technological establishment, having its
34
+ principal place of business at Domaine de Voluceau, Rocquencourt, BP
35
+ 105, 78153 Le Chesnay cedex, France.
36
+
37
+
38
+ Preamble
39
+
40
+ The purpose of this Free Software license agreement is to grant users
41
+ the right to modify and redistribute the software governed by this
42
+ license within the framework of an open source distribution model.
43
+
44
+ The exercising of this right is conditional upon certain obligations for
45
+ users so as to preserve this status for all subsequent redistributions.
46
+
47
+ In consideration of access to the source code and the rights to copy,
48
+ modify and redistribute granted by the license, users are provided only
49
+ with a limited warranty and the software's author, the holder of the
50
+ economic rights, and the successive licensors only have limited liability.
51
+
52
+ In this respect, the risks associated with loading, using, modifying
53
+ and/or developing or reproducing the software by the user are brought to
54
+ the user's attention, given its Free Software status, which may make it
55
+ complicated to use, with the result that its use is reserved for
56
+ developers and experienced professionals having in-depth computer
57
+ knowledge. Users are therefore encouraged to load and test the
58
+ suitability of the software as regards their requirements in conditions
59
+ enabling the security of their systems and/or data to be ensured and,
60
+ more generally, to use and operate it in the same conditions of
61
+ security. This Agreement may be freely reproduced and published,
62
+ provided it is not altered, and that no provisions are either added or
63
+ removed herefrom.
64
+
65
+ This Agreement may apply to any or all software for which the holder of
66
+ the economic rights decides to submit the use thereof to its provisions.
67
+
68
+ Frequently asked questions can be found on the official website of the
69
+ CeCILL licenses family (http://www.cecill.info/index.en.html) for any
70
+ necessary clarification.
@@ -0,0 +1,3 @@
1
+ include *.jpg
2
+ include *.txt
3
+ recursive-include tests *.py
bsplyne-1.0.0/PKG-INFO ADDED
@@ -0,0 +1,91 @@
1
+ Metadata-Version: 2.4
2
+ Name: bsplyne
3
+ Version: 1.0.0
4
+ Summary: A package for N dimensions B-splines.
5
+ Home-page: https://github.com/Dorian210/bsplyne
6
+ Author: Dorian Bichet
7
+ Author-email: dbichet@insa-toulouse.fr
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Operating System :: OS Independent
10
+ Classifier: License :: OSI Approved :: CEA CNRS Inria Logiciel Libre License, version 2.1 (CeCILL-2.1)
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE.txt
13
+ Requires-Dist: numpy
14
+ Requires-Dist: numba
15
+ Requires-Dist: scipy
16
+ Requires-Dist: matplotlib
17
+ Requires-Dist: meshio
18
+ Requires-Dist: tqdm
19
+ Dynamic: author
20
+ Dynamic: author-email
21
+ Dynamic: classifier
22
+ Dynamic: description
23
+ Dynamic: description-content-type
24
+ Dynamic: home-page
25
+ Dynamic: license-file
26
+ Dynamic: requires-dist
27
+ Dynamic: summary
28
+
29
+ # bsplyne
30
+
31
+ <p align="center">
32
+ <img src=docs/logo.png width="500" />
33
+ </p>
34
+
35
+ **bsplyne** is a Python library for working with N-dimensional B-splines. It implements the Cox-de Boor algorithm for basis evaluation, order elevation, knot insertion, and provides a connectivity class for multi-patch structures. Additionally, it includes visualization tools with export capabilities to Paraview.
36
+
37
+ ## Installation
38
+
39
+ Since **bsplyne** is not yet on PyPI, you can install it locally as follows:
40
+
41
+ ```bash
42
+ git clone https://github.com/Dorian210/bsplyne
43
+ cd bsplyne
44
+ pip install -e .
45
+ ```
46
+
47
+ ### Dependencies
48
+ Make sure you have the following dependencies installed:
49
+ - `numpy`
50
+ - `numba`
51
+ - `scipy`
52
+ - `matplotlib`
53
+ - `meshio`
54
+ - `tqdm`
55
+
56
+ ## Main Modules
57
+
58
+ - **BSplineBasis**
59
+ Implements B-spline basis function evaluation using the Cox-de Boor recursion formula.
60
+
61
+ - **BSpline**
62
+ Provides methods for creating and manipulating N-dimensional B-splines, including order elevation and knot insertion.
63
+
64
+ - **MultiPatchBSplineConnectivity**
65
+ Manages the connectivity between multiple N-dimensional B-spline patches.
66
+
67
+ - **CouplesBSplineBorder** (less documented)
68
+ Handles coupling between B-spline borders.
69
+
70
+ ## Examples
71
+
72
+ Several example scripts demonstrating the usage of **bsplyne** can be found in the `examples/` directory. These scripts cover:
73
+ - Basis evaluation on a curved line
74
+ - Plotting with Matplotlib
75
+ - Order elevation
76
+ - Knot insertion
77
+ - Surface examples
78
+ - Exporting to Paraview
79
+
80
+ ## Documentation
81
+
82
+ The full API documentation is available in the `docs/` directory of the project or via the [online documentation portal](https://dorian210.github.io/bsplyne/).
83
+
84
+ ## Contributions
85
+
86
+ At the moment, I am not actively reviewing contributions. However, if you encounter issues or have suggestions, feel free to open an issue.
87
+
88
+ ## License
89
+
90
+ This project is licensed under the [CeCILL License](LICENSE.txt).
91
+
@@ -0,0 +1,63 @@
1
+ # bsplyne
2
+
3
+ <p align="center">
4
+ <img src=docs/logo.png width="500" />
5
+ </p>
6
+
7
+ **bsplyne** is a Python library for working with N-dimensional B-splines. It implements the Cox-de Boor algorithm for basis evaluation, order elevation, knot insertion, and provides a connectivity class for multi-patch structures. Additionally, it includes visualization tools with export capabilities to Paraview.
8
+
9
+ ## Installation
10
+
11
+ Since **bsplyne** is not yet on PyPI, you can install it locally as follows:
12
+
13
+ ```bash
14
+ git clone https://github.com/Dorian210/bsplyne
15
+ cd bsplyne
16
+ pip install -e .
17
+ ```
18
+
19
+ ### Dependencies
20
+ Make sure you have the following dependencies installed:
21
+ - `numpy`
22
+ - `numba`
23
+ - `scipy`
24
+ - `matplotlib`
25
+ - `meshio`
26
+ - `tqdm`
27
+
28
+ ## Main Modules
29
+
30
+ - **BSplineBasis**
31
+ Implements B-spline basis function evaluation using the Cox-de Boor recursion formula.
32
+
33
+ - **BSpline**
34
+ Provides methods for creating and manipulating N-dimensional B-splines, including order elevation and knot insertion.
35
+
36
+ - **MultiPatchBSplineConnectivity**
37
+ Manages the connectivity between multiple N-dimensional B-spline patches.
38
+
39
+ - **CouplesBSplineBorder** (less documented)
40
+ Handles coupling between B-spline borders.
41
+
42
+ ## Examples
43
+
44
+ Several example scripts demonstrating the usage of **bsplyne** can be found in the `examples/` directory. These scripts cover:
45
+ - Basis evaluation on a curved line
46
+ - Plotting with Matplotlib
47
+ - Order elevation
48
+ - Knot insertion
49
+ - Surface examples
50
+ - Exporting to Paraview
51
+
52
+ ## Documentation
53
+
54
+ The full API documentation is available in the `docs/` directory of the project or via the [online documentation portal](https://dorian210.github.io/bsplyne/).
55
+
56
+ ## Contributions
57
+
58
+ At the moment, I am not actively reviewing contributions. However, if you encounter issues or have suggestions, feel free to open an issue.
59
+
60
+ ## License
61
+
62
+ This project is licensed under the [CeCILL License](LICENSE.txt).
63
+
@@ -0,0 +1,55 @@
1
+ """
2
+ .. include:: ../README.md
3
+ """
4
+
5
+ from bsplyne.b_spline_basis import BSplineBasis
6
+
7
+ # BSplineBasis.__module__ = "bsplyne.b_spline_basis"
8
+ from bsplyne.b_spline import BSpline
9
+
10
+ # BSpline.__module__ = "bsplyne.b_spline"
11
+ from bsplyne.multi_patch_b_spline import (
12
+ MultiPatchBSplineConnectivity,
13
+ CouplesBSplineBorder,
14
+ )
15
+
16
+ # MultiPatchBSplineConnectivity.__module__ = "bsplyne.multi_patch_b_spline"
17
+ # CouplesBSplineBorder.__module__ = "bsplyne.multi_patch_b_spline"
18
+ from bsplyne.geometries_in_3D import (
19
+ scale_rotate_translate,
20
+ new_quarter_circle,
21
+ new_circle,
22
+ new_disk,
23
+ new_degenerated_disk,
24
+ new_quarter_pipe,
25
+ new_pipe,
26
+ new_quarter_cylinder,
27
+ new_cylinder,
28
+ new_degenerated_cylinder,
29
+ new_closed_circle,
30
+ new_closed_disk,
31
+ new_closed_pipe,
32
+ new_closed_cylinder,
33
+ new_quarter_strut,
34
+ new_cube,
35
+ )
36
+
37
+ # scale_rotate_translate.__module__ = "bsplyne.geometries_in_3D"
38
+ # new_quarter_circle.__module__ = "bsplyne.geometries_in_3D"
39
+ # new_circle.__module__ = "bsplyne.geometries_in_3D"
40
+ # new_disk.__module__ = "bsplyne.geometries_in_3D"
41
+ # new_degenerated_disk.__module__ = "bsplyne.geometries_in_3D"
42
+ # new_quarter_pipe.__module__ = "bsplyne.geometries_in_3D"
43
+ # new_pipe.__module__ = "bsplyne.geometries_in_3D"
44
+ # new_quarter_cylinder.__module__ = "bsplyne.geometries_in_3D"
45
+ # new_cylinder.__module__ = "bsplyne.geometries_in_3D"
46
+ # new_degenerated_cylinder.__module__ = "bsplyne.geometries_in_3D"
47
+ # new_closed_circle.__module__ = "bsplyne.geometries_in_3D"
48
+ # new_closed_disk.__module__ = "bsplyne.geometries_in_3D"
49
+ # new_closed_pipe.__module__ = "bsplyne.geometries_in_3D"
50
+ # new_closed_cylinder.__module__ = "bsplyne.geometries_in_3D"
51
+ # new_quarter_strut.__module__ = "bsplyne.geometries_in_3D"
52
+ # new_cube.__module__ = "bsplyne.geometries_in_3D"
53
+ from bsplyne.parallel_utils import parallel_blocks
54
+
55
+ # parallel_blocks.__module__ = "bsplyne.parallel_utils"