uvisbox.Datasets.flow3d
Module Contents
- uvisbox.Datasets.flow3d.create_swirl_ensemble(center_line_start, center_line_end, num_curves=10, num_points=100, major_axis_length=1.0, minor_axis_length=0.3, swirl_frequency=2.0, distribution='uniform', noise_level=0.0, interior_fraction=0.5, expansion_factor=1.0)[source]
Create an ensemble of curves that form elliptical cross-sections that swirl around a straight line in 3D.
- Parameters:
center_line_start (array-like, shape (3,)) – Starting point of the central straight line [x, y, z]
center_line_end (array-like, shape (3,)) – Ending point of the central straight line [x, y, z]
num_curves (int) – Number of curves to generate
num_points (int) – Number of points per curve
major_axis_length (float) – Length of the major axis of the ellipse
minor_axis_length (float) – Length of the minor axis of the ellipse
swirl_frequency (float) – How many times the ellipse rotates along the straight line
distribution (str) – ‘uniform’ for uniform distribution along ellipse perimeter, ‘interior’ for uniform distribution within ellipse interior, ‘mixed’ for combination of both
noise_level (float) – Amount of random noise to add to positions
interior_fraction (float) – For ‘mixed’ distribution, fraction of curves in interior (0-1)
expansion_factor (float) – Controls how much the ellipse expands. 0=no expansion, 1=linear expansion
- Returns:
curves (list) – List of curves, each curve is an array of shape (num_points, 3)
center_line (array, shape (num_points, 3)) – The central straight line