SuiteSplines
SuiteSplines is a collection of Julia packages designed for applications in isogeometric analysis.
The SuiteSplines.jl
package is intended for registration in the General repository and bundles stable and compatible versions of core packages in the SuiteSplines framework:
- IgaBase.jl
- SortedSequences.jl
- CartesianProducts.jl
- KroneckerProducts.jl
- AbstractMappings.jl
- UnivariateSplines.jl
- TensorProductBsplines.jl
- NURBS.jl
- IgaFormation.jl
- ImmersedSplines.jl
- BezierBernsteinMethods.jl
- SpecialSpaces.jl
The documentation of SuiteSplines.jl
includes tutorials and example usage for each of the core packages.
Reexporting submodules
SuiteSplines.jl
groups core packages into submodules, such as SuiteSplines.UnivariateSplines
. By default, to avoid polluting the namespace, SuiteSplines.jl
does not expose any functionality directly. The submodules are only accessible through SuiteSplines.UnivariateSplines
, SuiteSplines.SortedSequences
, etc.
To conveniently access functionality from specific submodules, you can use the @suitesplines_reexport
macro.
For example, to reexport UnivariateSplines
and SortedSequences
, you can write:
julia> using SuiteSplines
julia> @suitesplines_reexport SortedSequences UnivariateSplines
julia> I = Interval(0.0, 2.0);
julia> S = SplineSpace(2, I, 5)
SplineSpace(degree = 2, interval = [0.0, 2.0], dimension = 7)
If called without arguments, @suitesplines_reexport
will reexport all submodules (see SUITESPLINES_PKGS
).
julia> @suitesplines_reexport
julia> BezierSimplex <: BezierBernsteinMethods.AbstractSimplex
true
As indicated by the previous prompt, only the names originally exported by a submodule are reexported when calling @suitesplines_reexport
.
Local registry
The latest versions of core packages are registered in SuiteSplinesRegistry.
To use the core SuiteSplines packages independently, you can add SuiteSplines registry to your depot
(@v1.10) pkg> registry add https://github.com/SuiteSplines/SuiteSplinesRegistry.git
This will make all packages in our local registry available in the package manager just like the packages in the General Julia registry. To add TensorProductBsplines.jl
to the active environment you can call
(@v1.10) pkg> add TensorProductBsplines
Alternatively, if you already have SuiteSplines.jl
added to your environment and prefer not to look up the URL of the local registry, you can simply call
julia> using SuiteSplines; SuiteSplines.add_registry()
Contributing
If you wish to contribute to SuiteSplines, please do so directly in one of the core packages. All SuiteSplines packages are listed here. For more specialized, comprehensive contributions consider contributing a new package like TruncatedHierarchicalBsplines.jl
.