Kernels

SPH kernel functions and their gradients for isotropic and anisotropic smoothing.

class smudgy.core.kernels.BaseKernelClass(dim: int, support: float)[source]

Bases: object

Base class for SPH kernels.

evaluate(r_ij, h, mode)[source]

Evaluate the kernel function for given relative positions, smoothing lengths, and mode.

evaluate_gradient(r_ij, h, mode)[source]

Evaluate the gradient of the kernel function for given relative positions, smoothing lengths, and mode.

class smudgy.core.kernels.TophatKernel(dim)[source]

Bases: BaseKernelClass

Spherically symmetric Tophat kernel.

class smudgy.core.kernels.TophatSepKernel(dim)[source]

Bases: BaseKernelClass

Rectangular Tophat kernel (Product of 1D Tophats).

class smudgy.core.kernels.TSCKernel(dim)[source]

Bases: BaseKernelClass

Spherically symmetric triangular (tent) kernel in radius.

class smudgy.core.kernels.TSCSepKernel(dim)[source]

Bases: BaseKernelClass

Separable triangle (tent) kernel with support 1.5 (not B-spline TSC).

class smudgy.core.kernels.GaussianKernel(dim: int)[source]

Bases: BaseKernelClass

Gaussian kernel implementation for SPH.

class smudgy.core.kernels.GaussianSepKernel(dim: int)[source]

Bases: BaseKernelClass

Gaussian kernel implementation for SPH.

class smudgy.core.kernels.LucyKernel(dim: int)[source]

Bases: BaseKernelClass

Lucy kernel implementation for SPH.

class smudgy.core.kernels.CubicSplineKernel(dim: int)[source]

Bases: BaseKernelClass

Cubic spline kernel implementation for SPH.

class smudgy.core.kernels.QuinticSplineKernel(dim: int)[source]

Bases: BaseKernelClass

Quintic spline kernel implementation for SPH.

class smudgy.core.kernels.WendlandC2Kernel(dim: int)[source]

Bases: BaseKernelClass

Wendland C2 kernel implementation for SPH.

class smudgy.core.kernels.WendlandC4Kernel(dim: int)[source]

Bases: BaseKernelClass

Wendland C4 kernel implementation for SPH.

class smudgy.core.kernels.WendlandC6Kernel(dim: int)[source]

Bases: BaseKernelClass

Wendland C6 kernel implementation for SPH.

smudgy.core.kernels.get_kernel(kernel_name: str, dim: int) BaseKernelClass[source]

Return a kernel instance for the given kernel name and spatial dimension.

Parameters:
  • kernel_name (str) – Name of the kernel to create.

  • dim (int) – Spatial dimension (1, 2, or 3).

Returns:

An instance of the specified kernel class.

Return type:

BaseKernelClass

Raises:

If kernel_name is not recognized or if dim is not valid.