Skip to content

Commit

Permalink
Order API reference (#67)
Browse files Browse the repository at this point in the history
* order API reference

* add some links to API reference

* fix name in ref

* add docstring for module

* list files instead of all names

* fix filenames
  • Loading branch information
JoshuaLampert authored Jul 20, 2024
1 parent 4fd33da commit d71e87b
Show file tree
Hide file tree
Showing 7 changed files with 171 additions and 61 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

**KernelInterpolation.jl** is a [Julia](https://julialang.org/) package that
implements methods for multivariate interpolation in arbitrary dimension based on symmetric (conditionally) positive-definite kernels
with a focus on radial-basis functions. It can be used for classical interpolation of scattered data, as well as for generalized
with a focus on radial basis functions. It can be used for classical interpolation of scattered data, as well as for generalized
(Hermite-Birkhoff) interpolation by using a meshfree collocation approach. This can be used to solve partial differential equations both
stationary ones and time-dependent ones by using some time integration method from [OrdinaryDiffEq.jl](https://github.com/SciML/OrdinaryDiffEq.jl).

Expand Down
2 changes: 1 addition & 1 deletion docs/src/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

[**KernelInterpolation.jl**](https://github.com/JoshuaLampert/KernelInterpolation.jl) is a [Julia](https://julialang.org/) package that
implements methods for multivariate interpolation in arbitrary dimension based on symmetric (conditionally) positive-definite kernels
with a focus on radial-basis functions. It can be used for classical interpolation of scattered data, as well as for generalized
with a focus on radial basis functions. It can be used for classical interpolation of scattered data, as well as for generalized
(Hermite-Birkhoff) interpolation by using a meshfree collocation approach. This can be used to solve partial differential equations both
stationary ones and time-dependent ones by using some time integration method from [OrdinaryDiffEq.jl](https://github.com/SciML/OrdinaryDiffEq.jl).

Expand Down
5 changes: 3 additions & 2 deletions docs/src/interpolation.md
Original file line number Diff line number Diff line change
Expand Up @@ -233,8 +233,9 @@ to visualize the interpolant are the `Delaunay2D` filter to create a surface plo

## Overview of kernels and adding a custom kernel

In the previous example, we used the [`ThinPlateSplineKernel`](@ref), which is a predefined kernel in KernelInterpolation.jl. There are a number of different
kernels already defined, which can be used in an analogous way. For an overview of the existing radial-symmetric kernels, see the following table.
In the previous example, we used the [`ThinPlateSplineKernel`](@ref), which is a predefined kernel in KernelInterpolation.jl.
There is a number of different [kernels already defined](@ref api-kernels), which can be used in an analogous way. For an
overview of the existing radial-symmetric kernels, see the following table.

| Kernel name | Formula | Order | Smoothness
| --- | --- | --- | ---
Expand Down
136 changes: 81 additions & 55 deletions docs/src/pdes.md

Large diffs are not rendered by default.

71 changes: 71 additions & 0 deletions docs/src/ref.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,75 @@ CurrentModule = KernelInterpolation

```@autodocs
Modules = [KernelInterpolation]
Pages = ["KernelInterpolation.jl"]
```

## [Kernel functions](@id api-kernels)

```@autodocs
Modules = [KernelInterpolation]
Pages = [joinpath("kernels", "kernels.jl"), joinpath("kernels", "radialsymmetric_kernel.jl"), joinpath("kernels", "special_kernel.jl")]
```

## Node sets

```@autodocs
Modules = [KernelInterpolation]
Pages = ["nodes.jl"]
```

## Interpolation

```@autodocs
Modules = [KernelInterpolation]
Pages = ["interpolation.jl"]
```

## [Differential Operators](@id api-diffops)

```@autodocs
Modules = [KernelInterpolation]
Pages = ["differential_operators.jl"]
```

## [Partial differential equations](@id api-equations)

```@autodocs
Modules = [KernelInterpolation]
Pages = ["equations.jl"]
```

## Discretization

```@autodocs
Modules = [KernelInterpolation]
Pages = ["discretization.jl"]
```

## Kernel matrices

```@autodocs
Modules = [KernelInterpolation]
Pages = ["kernel_matrices.jl"]
```

## [Callbacks](@id api-callbacks)

```@autodocs
Modules = [KernelInterpolation]
Pages = [joinpath("callbacks_step", "alive.jl"), joinpath("callbacks_step", "summary.jl"), joinpath("callbacks_step", "save_solution.jl")]
```

## Input/Output

```@autodocs
Modules = [KernelInterpolation]
Pages = ["io.jl"]
```

## Utilities

```@autodocs
Modules = [KernelInterpolation]
Pages = ["util.jl"]
```
5 changes: 3 additions & 2 deletions docs/src/tutorial_differentiating_interpolation.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,8 +112,9 @@ derivative in the ``i``-th direction, ``i\in\{1,\ldots,d\}``, of the interpolati
differentiation (AD) by using [ForwardDiff.jl](https://github.com/JuliaDiff/ForwardDiff.jl). This allows for flexibility,
simplicity, and easier extension, but it might be slower than computing the derivatives analytically.

KernelInterpolation.jl already provides some common differential operators. For example, we can compute the first derivative
of the interpolation `itp` at a specific point `x` by using the [`PartialDerivative`](@ref) operator.
KernelInterpolation.jl already provides some [common differential operators](@ref api-diffops). For example,
we can compute the first derivative of the interpolation `itp` at a specific point `x` by using the
[`PartialDerivative`](@ref) operator.

```@example diff-itp
d1 = PartialDerivative(1)
Expand Down
11 changes: 11 additions & 0 deletions src/KernelInterpolation.jl
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
"""
KernelInterpolation
**KernelInterpolation.jl** is a Julia package that implements methods for multivariate interpolation in arbitrary
dimension based on symmetric (conditionally) positive-definite kernels with a focus on radial basis functions.
It can be used for classical interpolation of scattered data, as well as for generalized (Hermite-Birkhoff)
interpolation by using a meshfree collocation approach. This can be used to solve partial differential equations
both stationary ones and time-dependent ones by using some time integration method from OrdinaryDiffEq.jl.
See also: [KernelInterpolation.jl](https://github.com/JoshuaLampert/KernelInterpolation.jl)
"""
module KernelInterpolation

using DiffEqCallbacks: PeriodicCallback, PeriodicCallbackAffect
Expand Down

0 comments on commit d71e87b

Please sign in to comment.