Skip to content

Releases: mountaindust/Planktos

Efficiency upgrade, critical bug fix, color options

19 Jul 02:34
Compare
Choose a tag to compare

The IB collision algorithm is now more efficient thanks to an improved search radius. This in turn exposed a critical bug where long recursive sliding could result in tunneling through mesh elements that were not originally considered at the initial point of intersection. This has now been fixed. Finally, both swarm and ibmesh colors can be specified as an attribute for plotting.

Other more minor bug fixes and improvements are included as well, including a fix for 3D plotting which was broken in some installations.

Temporal interpolation replaces flow, bug fixes

20 Oct 19:05
Compare
Choose a tag to compare

This release includes some important bug fixes along with a few documentation updates and some minor quality of life improvements. Highlights are:

  • Important corrections to the equations for inertial particles and massive particles with drag
  • Some cleaning up of vtk import methods
  • Important bug fix for temporally varying fluid velocities and the extend environment method
  • Adds a method for calculating the material derivative
  • Vicsek example updates

Temporal interpolation replaces flow, bug fixes

28 Apr 17:10
Compare
Choose a tag to compare

This release saves memory in time-varying flows by replacing the original flow data with the cubic spline objects. This is accomplished through a new class in the environment module called fCubicSpline which subclasses scipy.interpolate.CubicSpline, providing natural indexing into the original data time points along with methods for returning information about the original data (e.g. shape).

The boilerplate at the beginning of each example adding planktos to the path has now been removed. Henceforth, it will be expected that the end user has installed Planktos as outlined in the README and documentation.

Various bugs have also been squashed.

Adds rectilinear-safe code, proper regridding, bug fixes

22 Apr 18:54
Compare
Choose a tag to compare

The main new feature of this code is proper regridding of fluid velocity data. There are two main parts of this:

  • IB2d data is now automatically extended. No need to call wrap_flow
  • Comsol data is now regridded to include the boundaries using extrapolation or, in the case of periodic BC, interpolation.

Because Comsol specifies data on the center of mesh cells, the second of these required Planktos to allow rectilinear mesh grids. The entire code base has now been made safe for this.

Bug fixes include Gaussian KDE plotting, save_pos_to_csv saving, and a few changes based on depreciations in the supporting libraries.

Periodic boundary cond., setup.cfg, new examples

11 Apr 16:29
Compare
Choose a tag to compare

This release includes a number of important new features, including:

  • Periodic boundary condition option for agents at each edge of the domain
  • Re-worked boundary condition method to include recursive checking for immersed boundary collision and multiple contacts with domain edges
  • Fluid velocity fields can now be loaded from NetCDF files (using the netcdf4 library)
  • Planktos can now be installed using pip
  • Documentation surrounding dependencies and installation has been updated
  • The example scripts now include an instance of more complex agent-to-agent interactions (e.g. Vicsek model)
  • Improvements to plotting, particularly for Gaussian KDE plots and an added option to set the 3D camera angle

This release also includes numerous bug fixes and quality-of-life improvements for the typical research workflow.

Important bug fixes in FTLE and _project_and_slide

27 Oct 21:24
Compare
Choose a tag to compare

This release includes a couple of key bug fixes in parts of the algorithm that arose with more involved usage of the FTLE and _project_and_slide algorithms.

readthedocs compatible docs

23 Aug 22:44
Compare
Choose a tag to compare
Pre-release

This release mainly updates the documentation requirements so that the readthedocs environment is properly set up and can load planktos, and therefore properly create the html files using autodoc.

Sphinx documentation and bug fixes

08 Jul 01:03
Compare
Choose a tag to compare
Pre-release

The main feature of this release is sphinx documentation, which will be hosted somewhere shortly. Sticky boundary conditions are also now an option, and there have been various bug fixes here and there.

Major refactor, FTLE, more

23 Jun 02:44
Compare
Choose a tag to compare
Pre-release

The code has been refactored so that all key functionality is in a new "planktos" package and can be imported with a single line. All examples have been rewritten as tutorials with far more explanation and transparency as to what is going on. New examples have been added. Planktos is now capable of generating FTLE data from arbitrary deterministic motion models. Gaussian kernel density estimation has been added to plots, largely replacing histograms. Plots are now capable of displaying fluid info in the background in 2D, and the environment class has built-in plotting for sanity checking and FTLE. We are now solving SDE by default instead of ad hoc drift plus jitter; this is being done using a new Euler-Maruyama solver. A built-in Runge-Kutta Dormand-Prince solver is available for fully deterministic motion models. The doc strings of most methods have been converted to numpydoc format with far more detail and explanation about syntax, and work is ongoing to convert the rest. Finally, there are more options for VTK output and numerous bugs have been squashed throughout the code base.

Immersed boundaries

02 Dec 00:17
Compare
Choose a tag to compare
Immersed boundaries Pre-release
Pre-release

Adds immersed boundaries in both 2D and 3D that are respected by swarms, as well as a multitude of ways of importing data on these boundaries. Two examples go along with this release, example_ib2d_ibmesh.py and example_IBAMR_ibmesh.py, which produce video files that automatically display the immersed boundaries using new functionality in the plot setup. The method has been made rather efficient. Some more testing is warranted (bouncing off boundary in 2D video?), especially for cases of a concave boundary in 2D and 3D, which is completely untested, and importing of stl files.