Skip to content

Commit

Permalink
Merge pull request #180 from tataratat/clean-up-dates
Browse files Browse the repository at this point in the history
  • Loading branch information
j042 committed Jun 29, 2023
2 parents e6cb5d2 + 3c680cb commit 807b7dc
Show file tree
Hide file tree
Showing 56 changed files with 876 additions and 615 deletions.
1 change: 1 addition & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ jobs:
- name: build docs
run: |
pip install -r ./docs/requirements.txt
python docs/source/handle_markdown.py
sphinx-build -W -b html docs/source docs/build -j auto
- name: deploy docs only if it is pushed to main
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Ignore build directories
**/build/
docs/md
docs/source/_generated

# Ignore python specific file and directories
**/*.egg-info/
Expand Down
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
[submodule "third_party/napf"]
path = third_party/napf
url = git@github.com:tataratat/napf.git
[submodule "third_party/SplineLib"]
path = third_party/SplineLib
url = git@github.com:tataratat/SplineLib.git
[submodule "third_party/BSplineLib"]
path = third_party/BSplineLib
url = git@github.com:tataratat/BSplineLib.git
[submodule "third_party/bezman"]
path = third_party/bezman
url = git@github.com:tataratat/bezman.git
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.12.0)
project(splinepy VERSION 0.0.2 LANGUAGES CXX)

# build options
option(SPLINEPY_COMPILE_SPLINELIB "Compile splinelib together." ON)
option(SPLINEPY_COMPILE_BSPLINELIB "Compile bsplinelib together." ON)
option(SPLINEPY_VERBOSE_MAKE
"Verbose `make` output. Alias to CMAKE_VERBOSE_MAKEFILE" OFF)
option(SPLINEPY_MORE "Compile a full set of splines." OFF)
Expand Down
39 changes: 16 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,11 @@ The library supports Bezier, Rational Bezier, BSpline and NURBS with fast and ea
## Install guide
splinepy wheels are available for python3.6+ for MacOS, Linux, and Windows:
```bash
pip install --upgrade pip
pip install splinepy
```
pip install splinepy[all] # this installs gustaf[all]

It is also possible to install current development version using `pip`. It requires a compiler that supports C++17 or higher (C++20 for debug mode - tested with gcc-10.3 and clang-12). Here are two variants:
1) Fast build - minimal and debug mode
```bash
SPLINEPY_MINIMAL_DEBUG_BUILD=True pip install git+https://github.com/tataratat/splinepy.git@main -vvv
```
# or

2) Same build as in PyPI - full set of splines and optimized build
```bash
pip install git+https://github.com/tataratat/splinepy.git@main -vvv
pip install splinepy
```
`-vvv` is not necessary, but we suggest using it, since you can see the build progress. Full build (the second option) may take a while.

Expand All @@ -31,9 +23,8 @@ In addition to aforementioned compilers, this requires a cmake3.16+. If you don'
git clone git@github.com:tataratat/splinepy.git
cd splinepy
git submodule update --init --recursive
python3 setup.py install
python3 setup.py develop
```
For visualization and extended functionalities, please take a look at [gustaf](https://github.com/tataratat/gustaf)!

## Quick start
```python
Expand Down Expand Up @@ -99,12 +90,13 @@ Most of the functions are vectorized and capable of multithread executions.
### Splines
__Any type of spline is capable of:__
- computing spline mappings, derivatives, partial derivatives, jacobian, basis functions, basis function derivatives, basis function partial derivatives, and proximity (point inversion, nearest mapping search),
- degree evalation, and
- extracting boundary splines.
- degree elevation,
- extracting boundary splines, and
- visualization (see [visualizing with splinepy](docs/markdown/spline_plotting.md)).

In addition to the common features, __Bezier and Rational Bezier__ can:
- add / multiply two splines,
- split itself into multiple pathces,
- add/multiply two splines,
- split itself into multiple patches,
- create derivative splines, and
- compose an inner spline into an outer spline and compute its composition derivative

Expand All @@ -113,15 +105,15 @@ and __BSpline and NURBS__ can:
- insert and remove knots, and
- extract bezier patches.

Some __BSpline fitting__ routines from the [The NURBS Book](https://link.springer.com/book/10.1007/978-3-642-97385-7):
- curve interpolation / approximation
- surface interpolation / approximation
Some __BSpline fitting__ routines from [The NURBS Book](https://link.springer.com/book/10.1007/978-3-642-97385-7):
- curve interpolation/approximation
- surface interpolation/approximation

### Multipatch
Splinepy offers a common interface for multipatch geometries, i.e., geometries consisting of multiple, individual splines of arbitrary types. This concept is both used for complex geometries as for Isogeometric Analysis. __Multipatch__ objects have the following functionalities:
Splinepy offers a common interface for multipatch geometries, i.e., geometries consisting of multiple, individual splines of arbitrary types. This concept is used for complex geometries and for Isogeometric Analysis. __Multipatch__ objects have the following functionalities:
- determine patch-interfaces automatically
- identification of boundary faces
- boundary assignement using different techniques, relying either on the boundary position or on the continuity inbetween patches
- boundary assignment using different techniques, relying either on the boundary position or on the continuity in between patches
- Boundary extraction

### IO
Expand All @@ -139,7 +131,7 @@ Available in `splinepy.io`.


## Dependencies
Followings are direct dependencies for splinepy. Please feel free to check out the repositories linked in the following.
The following are direct dependencies for splinepy. Please feel free to check out the repositories linked.

| Package | Description | python | c++ |
| ------- | ------------------------------------------------------- | ------ | --- |
Expand All @@ -148,6 +140,7 @@ Followings are direct dependencies for splinepy. Please feel free to check out t
| [bezman](https://github.com/tataratat/bezman) | Main functionalities for Beziers and rational Beziers | | X |
| [napf](https://github.com/tataratat/napf) | Creates k-d trees that provides initial guess for proximity search. Wraps [nanoflann](https://github.com/jlblancoc/nanoflann) | | X |
| [numpy](https://numpy.org) | Fast array data storage and manipulation | X | |
| [gustaf](https://github.com/tataratat/gustaf) | Conversion to mesh representation, visualization, and helpers | X | |
| [scipy](https://scipy.org) | (Optional) Creates sparse matrices, where applicable | X | |
| [cmake](https://cmake.org) | Platform independent build system for c++ implementations | | X |
| [setuptools](https://setuptools.pypa.io/en/latest/) | Build python package | X | |
Expand Down
4 changes: 2 additions & 2 deletions cpp/splinepy/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@ target_link_libraries(splinepy
fitting
bezman
napf
SplineLib::splines
SplineLib::input_output)
BSplineLib::splines
BSplineLib::input_output)

# explicit?
if (SPLINEPY_BUILD_EXPLICIT)
Expand Down
2 changes: 1 addition & 1 deletion cpp/splinepy/explicit/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ target_include_directories(explicit
target_link_libraries(explicit
PRIVATE
bezman
SplineLib::splines
BSplineLib::splines
napf)

# flags
Expand Down
22 changes: 11 additions & 11 deletions cpp/splinepy/explicit/splinelib/b_spline_explicit1.cpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#include "Sources/Splines/b_spline.hpp"
template class splinelib::sources::splines::BSpline<1, 1>;
template class splinelib::sources::splines::BSpline<1, 2>;
template class splinelib::sources::splines::BSpline<1, 3>;
#include "BSplineLib/Splines/b_spline.hpp"
template class bsplinelib::splines::BSpline<1, 1>;
template class bsplinelib::splines::BSpline<1, 2>;
template class bsplinelib::splines::BSpline<1, 3>;
#ifdef SPLINEPY_MORE
template class splinelib::sources::splines::BSpline<1, 4>;
template class splinelib::sources::splines::BSpline<1, 5>;
template class splinelib::sources::splines::BSpline<1, 6>;
template class splinelib::sources::splines::BSpline<1, 7>;
template class splinelib::sources::splines::BSpline<1, 8>;
template class splinelib::sources::splines::BSpline<1, 9>;
template class splinelib::sources::splines::BSpline<1, 10>;
template class bsplinelib::splines::BSpline<1, 4>;
template class bsplinelib::splines::BSpline<1, 5>;
template class bsplinelib::splines::BSpline<1, 6>;
template class bsplinelib::splines::BSpline<1, 7>;
template class bsplinelib::splines::BSpline<1, 8>;
template class bsplinelib::splines::BSpline<1, 9>;
template class bsplinelib::splines::BSpline<1, 10>;
#endif
22 changes: 11 additions & 11 deletions cpp/splinepy/explicit/splinelib/b_spline_explicit10.cpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#include "Sources/Splines/b_spline.hpp"
#include "BSplineLib/Splines/b_spline.hpp"
#ifdef SPLINEPY_MORE
template class splinelib::sources::splines::BSpline<10, 1>;
template class splinelib::sources::splines::BSpline<10, 2>;
template class splinelib::sources::splines::BSpline<10, 3>;
template class splinelib::sources::splines::BSpline<10, 4>;
template class splinelib::sources::splines::BSpline<10, 5>;
template class splinelib::sources::splines::BSpline<10, 6>;
template class splinelib::sources::splines::BSpline<10, 7>;
template class splinelib::sources::splines::BSpline<10, 8>;
template class splinelib::sources::splines::BSpline<10, 9>;
template class splinelib::sources::splines::BSpline<10, 10>;
template class bsplinelib::splines::BSpline<10, 1>;
template class bsplinelib::splines::BSpline<10, 2>;
template class bsplinelib::splines::BSpline<10, 3>;
template class bsplinelib::splines::BSpline<10, 4>;
template class bsplinelib::splines::BSpline<10, 5>;
template class bsplinelib::splines::BSpline<10, 6>;
template class bsplinelib::splines::BSpline<10, 7>;
template class bsplinelib::splines::BSpline<10, 8>;
template class bsplinelib::splines::BSpline<10, 9>;
template class bsplinelib::splines::BSpline<10, 10>;
#endif
22 changes: 11 additions & 11 deletions cpp/splinepy/explicit/splinelib/b_spline_explicit2.cpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#include "Sources/Splines/b_spline.hpp"
template class splinelib::sources::splines::BSpline<2, 1>;
template class splinelib::sources::splines::BSpline<2, 2>;
template class splinelib::sources::splines::BSpline<2, 3>;
#include "BSplineLib/Splines/b_spline.hpp"
template class bsplinelib::splines::BSpline<2, 1>;
template class bsplinelib::splines::BSpline<2, 2>;
template class bsplinelib::splines::BSpline<2, 3>;
#ifdef SPLINEPY_MORE
template class splinelib::sources::splines::BSpline<2, 4>;
template class splinelib::sources::splines::BSpline<2, 5>;
template class splinelib::sources::splines::BSpline<2, 6>;
template class splinelib::sources::splines::BSpline<2, 7>;
template class splinelib::sources::splines::BSpline<2, 8>;
template class splinelib::sources::splines::BSpline<2, 9>;
template class splinelib::sources::splines::BSpline<2, 10>;
template class bsplinelib::splines::BSpline<2, 4>;
template class bsplinelib::splines::BSpline<2, 5>;
template class bsplinelib::splines::BSpline<2, 6>;
template class bsplinelib::splines::BSpline<2, 7>;
template class bsplinelib::splines::BSpline<2, 8>;
template class bsplinelib::splines::BSpline<2, 9>;
template class bsplinelib::splines::BSpline<2, 10>;
#endif
22 changes: 11 additions & 11 deletions cpp/splinepy/explicit/splinelib/b_spline_explicit3.cpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#include "Sources/Splines/b_spline.hpp"
template class splinelib::sources::splines::BSpline<3, 1>;
template class splinelib::sources::splines::BSpline<3, 2>;
template class splinelib::sources::splines::BSpline<3, 3>;
#include "BSplineLib/Splines/b_spline.hpp"
template class bsplinelib::splines::BSpline<3, 1>;
template class bsplinelib::splines::BSpline<3, 2>;
template class bsplinelib::splines::BSpline<3, 3>;
#ifdef SPLINEPY_MORE
template class splinelib::sources::splines::BSpline<3, 4>;
template class splinelib::sources::splines::BSpline<3, 5>;
template class splinelib::sources::splines::BSpline<3, 6>;
template class splinelib::sources::splines::BSpline<3, 7>;
template class splinelib::sources::splines::BSpline<3, 8>;
template class splinelib::sources::splines::BSpline<3, 9>;
template class splinelib::sources::splines::BSpline<3, 10>;
template class bsplinelib::splines::BSpline<3, 4>;
template class bsplinelib::splines::BSpline<3, 5>;
template class bsplinelib::splines::BSpline<3, 6>;
template class bsplinelib::splines::BSpline<3, 7>;
template class bsplinelib::splines::BSpline<3, 8>;
template class bsplinelib::splines::BSpline<3, 9>;
template class bsplinelib::splines::BSpline<3, 10>;
#endif
22 changes: 11 additions & 11 deletions cpp/splinepy/explicit/splinelib/b_spline_explicit4.cpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#include "Sources/Splines/b_spline.hpp"
#include "BSplineLib/Splines/b_spline.hpp"
#ifdef SPLINEPY_MORE
template class splinelib::sources::splines::BSpline<4, 1>;
template class splinelib::sources::splines::BSpline<4, 2>;
template class splinelib::sources::splines::BSpline<4, 3>;
template class splinelib::sources::splines::BSpline<4, 4>;
template class splinelib::sources::splines::BSpline<4, 5>;
template class splinelib::sources::splines::BSpline<4, 6>;
template class splinelib::sources::splines::BSpline<4, 7>;
template class splinelib::sources::splines::BSpline<4, 8>;
template class splinelib::sources::splines::BSpline<4, 9>;
template class splinelib::sources::splines::BSpline<4, 10>;
template class bsplinelib::splines::BSpline<4, 1>;
template class bsplinelib::splines::BSpline<4, 2>;
template class bsplinelib::splines::BSpline<4, 3>;
template class bsplinelib::splines::BSpline<4, 4>;
template class bsplinelib::splines::BSpline<4, 5>;
template class bsplinelib::splines::BSpline<4, 6>;
template class bsplinelib::splines::BSpline<4, 7>;
template class bsplinelib::splines::BSpline<4, 8>;
template class bsplinelib::splines::BSpline<4, 9>;
template class bsplinelib::splines::BSpline<4, 10>;
#endif
22 changes: 11 additions & 11 deletions cpp/splinepy/explicit/splinelib/b_spline_explicit5.cpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#include "Sources/Splines/b_spline.hpp"
#include "BSplineLib/Splines/b_spline.hpp"
#ifdef SPLINEPY_MORE
template class splinelib::sources::splines::BSpline<5, 1>;
template class splinelib::sources::splines::BSpline<5, 2>;
template class splinelib::sources::splines::BSpline<5, 3>;
template class splinelib::sources::splines::BSpline<5, 4>;
template class splinelib::sources::splines::BSpline<5, 5>;
template class splinelib::sources::splines::BSpline<5, 6>;
template class splinelib::sources::splines::BSpline<5, 7>;
template class splinelib::sources::splines::BSpline<5, 8>;
template class splinelib::sources::splines::BSpline<5, 9>;
template class splinelib::sources::splines::BSpline<5, 10>;
template class bsplinelib::splines::BSpline<5, 1>;
template class bsplinelib::splines::BSpline<5, 2>;
template class bsplinelib::splines::BSpline<5, 3>;
template class bsplinelib::splines::BSpline<5, 4>;
template class bsplinelib::splines::BSpline<5, 5>;
template class bsplinelib::splines::BSpline<5, 6>;
template class bsplinelib::splines::BSpline<5, 7>;
template class bsplinelib::splines::BSpline<5, 8>;
template class bsplinelib::splines::BSpline<5, 9>;
template class bsplinelib::splines::BSpline<5, 10>;
#endif
22 changes: 11 additions & 11 deletions cpp/splinepy/explicit/splinelib/b_spline_explicit6.cpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#include "Sources/Splines/b_spline.hpp"
#include "BSplineLib/Splines/b_spline.hpp"
#ifdef SPLINEPY_MORE
template class splinelib::sources::splines::BSpline<6, 1>;
template class splinelib::sources::splines::BSpline<6, 2>;
template class splinelib::sources::splines::BSpline<6, 3>;
template class splinelib::sources::splines::BSpline<6, 4>;
template class splinelib::sources::splines::BSpline<6, 5>;
template class splinelib::sources::splines::BSpline<6, 6>;
template class splinelib::sources::splines::BSpline<6, 7>;
template class splinelib::sources::splines::BSpline<6, 8>;
template class splinelib::sources::splines::BSpline<6, 9>;
template class splinelib::sources::splines::BSpline<6, 10>;
template class bsplinelib::splines::BSpline<6, 1>;
template class bsplinelib::splines::BSpline<6, 2>;
template class bsplinelib::splines::BSpline<6, 3>;
template class bsplinelib::splines::BSpline<6, 4>;
template class bsplinelib::splines::BSpline<6, 5>;
template class bsplinelib::splines::BSpline<6, 6>;
template class bsplinelib::splines::BSpline<6, 7>;
template class bsplinelib::splines::BSpline<6, 8>;
template class bsplinelib::splines::BSpline<6, 9>;
template class bsplinelib::splines::BSpline<6, 10>;
#endif
22 changes: 11 additions & 11 deletions cpp/splinepy/explicit/splinelib/b_spline_explicit7.cpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#include "Sources/Splines/b_spline.hpp"
#include "BSplineLib/Splines/b_spline.hpp"
#ifdef SPLINEPY_MORE
template class splinelib::sources::splines::BSpline<7, 1>;
template class splinelib::sources::splines::BSpline<7, 2>;
template class splinelib::sources::splines::BSpline<7, 3>;
template class splinelib::sources::splines::BSpline<7, 4>;
template class splinelib::sources::splines::BSpline<7, 5>;
template class splinelib::sources::splines::BSpline<7, 6>;
template class splinelib::sources::splines::BSpline<7, 7>;
template class splinelib::sources::splines::BSpline<7, 8>;
template class splinelib::sources::splines::BSpline<7, 9>;
template class splinelib::sources::splines::BSpline<7, 10>;
template class bsplinelib::splines::BSpline<7, 1>;
template class bsplinelib::splines::BSpline<7, 2>;
template class bsplinelib::splines::BSpline<7, 3>;
template class bsplinelib::splines::BSpline<7, 4>;
template class bsplinelib::splines::BSpline<7, 5>;
template class bsplinelib::splines::BSpline<7, 6>;
template class bsplinelib::splines::BSpline<7, 7>;
template class bsplinelib::splines::BSpline<7, 8>;
template class bsplinelib::splines::BSpline<7, 9>;
template class bsplinelib::splines::BSpline<7, 10>;
#endif
22 changes: 11 additions & 11 deletions cpp/splinepy/explicit/splinelib/b_spline_explicit8.cpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#include "Sources/Splines/b_spline.hpp"
#include "BSplineLib/Splines/b_spline.hpp"
#ifdef SPLINEPY_MORE
template class splinelib::sources::splines::BSpline<8, 1>;
template class splinelib::sources::splines::BSpline<8, 2>;
template class splinelib::sources::splines::BSpline<8, 3>;
template class splinelib::sources::splines::BSpline<8, 4>;
template class splinelib::sources::splines::BSpline<8, 5>;
template class splinelib::sources::splines::BSpline<8, 6>;
template class splinelib::sources::splines::BSpline<8, 7>;
template class splinelib::sources::splines::BSpline<8, 8>;
template class splinelib::sources::splines::BSpline<8, 9>;
template class splinelib::sources::splines::BSpline<8, 10>;
template class bsplinelib::splines::BSpline<8, 1>;
template class bsplinelib::splines::BSpline<8, 2>;
template class bsplinelib::splines::BSpline<8, 3>;
template class bsplinelib::splines::BSpline<8, 4>;
template class bsplinelib::splines::BSpline<8, 5>;
template class bsplinelib::splines::BSpline<8, 6>;
template class bsplinelib::splines::BSpline<8, 7>;
template class bsplinelib::splines::BSpline<8, 8>;
template class bsplinelib::splines::BSpline<8, 9>;
template class bsplinelib::splines::BSpline<8, 10>;
#endif
22 changes: 11 additions & 11 deletions cpp/splinepy/explicit/splinelib/b_spline_explicit9.cpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#include "Sources/Splines/b_spline.hpp"
#include "BSplineLib/Splines/b_spline.hpp"
#ifdef SPLINEPY_MORE
template class splinelib::sources::splines::BSpline<9, 1>;
template class splinelib::sources::splines::BSpline<9, 2>;
template class splinelib::sources::splines::BSpline<9, 3>;
template class splinelib::sources::splines::BSpline<9, 4>;
template class splinelib::sources::splines::BSpline<9, 5>;
template class splinelib::sources::splines::BSpline<9, 6>;
template class splinelib::sources::splines::BSpline<9, 7>;
template class splinelib::sources::splines::BSpline<9, 8>;
template class splinelib::sources::splines::BSpline<9, 9>;
template class splinelib::sources::splines::BSpline<9, 10>;
template class bsplinelib::splines::BSpline<9, 1>;
template class bsplinelib::splines::BSpline<9, 2>;
template class bsplinelib::splines::BSpline<9, 3>;
template class bsplinelib::splines::BSpline<9, 4>;
template class bsplinelib::splines::BSpline<9, 5>;
template class bsplinelib::splines::BSpline<9, 6>;
template class bsplinelib::splines::BSpline<9, 7>;
template class bsplinelib::splines::BSpline<9, 8>;
template class bsplinelib::splines::BSpline<9, 9>;
template class bsplinelib::splines::BSpline<9, 10>;
#endif
Loading

0 comments on commit 807b7dc

Please sign in to comment.