uvisbox.Datasets.flow3d ======================= .. py:module:: uvisbox.Datasets.flow3d Module Contents --------------- .. py:function:: abc_flow(t, x, a=1.0, b=1.0, c=1.0) Arnold Beltrami Childress flow .. py:function:: flowmap_3d(seed, t0, t1, n_steps, scale=1.0, xy_scale=1.0) .. py:function:: 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) Create an ensemble of curves that form elliptical cross-sections that swirl around a straight line in 3D. :param center_line_start: Starting point of the central straight line [x, y, z] :type center_line_start: array-like, shape (3,) :param center_line_end: Ending point of the central straight line [x, y, z] :type center_line_end: array-like, shape (3,) :param num_curves: Number of curves to generate :type num_curves: int :param num_points: Number of points per curve :type num_points: int :param major_axis_length: Length of the major axis of the ellipse :type major_axis_length: float :param minor_axis_length: Length of the minor axis of the ellipse :type minor_axis_length: float :param swirl_frequency: How many times the ellipse rotates along the straight line :type swirl_frequency: float :param distribution: 'uniform' for uniform distribution along ellipse perimeter, 'interior' for uniform distribution within ellipse interior, 'mixed' for combination of both :type distribution: str :param noise_level: Amount of random noise to add to positions :type noise_level: float :param interior_fraction: For 'mixed' distribution, fraction of curves in interior (0-1) :type interior_fraction: float :param expansion_factor: Controls how much the ellipse expands. 0=no expansion, 1=linear expansion :type expansion_factor: float :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