Quick Start

Welcome to the smudgy documentation!

smudgy is a python package with a C++ backend and optional OpenMP acceleration for point cloud smoothing, interpolation and grid deposition – lightning fast, scalable and memory-efficient.

A typical workflow may look like this:

import numpy as np
import smudgy as sm

N = 1000
boxsize = 1.0
num_fields = 3

positions       = np.random.uniform(0, boxsize, (N, 3))
field_values    = np.random.normal(0, 1, (N, num_fields))
weights         = np.ones(N)

points = sm.PointCloud(positions=positions, weights=weights, boxsize=boxsize)

grid = points.deposit_to_grid(
    fields=field_values,
    averaged=True,
    gridnums=64,

    # e.g. perform cloud-in-cell deposition
    kernel_name='tophat',
    structure='separable'
    )

print(grid.shape)  # (64, 64, 64, num_fields)