Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add additional integrators #3

Closed
lilyvelour opened this issue Jan 7, 2019 · 2 comments
Closed

Add additional integrators #3

lilyvelour opened this issue Jan 7, 2019 · 2 comments
Assignees
Labels
enhancement New feature or request
Projects
Milestone

Comments

@lilyvelour
Copy link
Contributor

lilyvelour commented Jan 7, 2019

A while back, we had a focused effort with Fluvio on improving solver stability by utilizing different integration methods. These never shipped to Asset Store users. During our research process, we implemented the following integrators:

  • Semi-Implicit Euler (implemented)
    - Forward Euler
  • Verlet
  • Velocity Verlet
    - Parker–Sochacki (experimental)

Let's look into implementing these integrators into FluvioFX as well.

@lilyvelour lilyvelour added this to the 1.x.x milestone Jan 7, 2019
@lilyvelour lilyvelour added the enhancement New feature or request label Jan 8, 2019
@lilyvelour lilyvelour self-assigned this Jan 14, 2019
@lilyvelour
Copy link
Contributor Author

lilyvelour commented Jan 14, 2019

Updated the list of integrators (we were actually using semi-implicit Euler without a position update for historical reasons). Removed forward Euler as I'm not sure it's worth it...ever.

This is in the works (Verlet and Velocity Verlet are both completed so far, with Verlet as a new default). Still on the fence about even including Velocity Verlet, however...

@lilyvelour
Copy link
Contributor Author

Also going to cut P-S for now. While a promising numerical method, the current implementation would likely slow performance down too much with an additional neighbor search.

lilyvelour added a commit that referenced this issue Jan 15, 2019
Breaking changes/removals:

*NOTE: Make sure to back up all VFX graphs prior to install!* Graphs will probably break, and likely need to be fully rebuilt.

- Refactored all blocks and nodes. Instead of many different properties among the different steps, Fluid and SolverData VFX types are sent instead. This helps to reduce node clutter substantially
- Properties are no longer exposed by default. Instead, they are easily editable within the graph. Users can still expose individual properties, or entire fluids
- Simulation scale has been removed (fixed at 1.0, likely to be fully deleted later). This is no longer needed due to the VFX graph's improved handling of transforms
- Verlet integration is now the new default (see below). Physical properties for fluids will likely need to be adjusted slightly, but this change should help overall stability

Additions:

- Added additional integration methods–Stormer-Verlet and Velocity Verlet (#3). Also tweaked the Semi-implcit Euler integration to also integrate positons
- Implemented optional external force solvers, and built-in gravity (#2)
- The default FluvioFX graph now has a bunch of helpful sticky notes to help get started

Fixes:

- Particles no longer require a lifetime/alive attribute in order to be compatible with FluvioFX

Misc. changes:

- Updated solver to use the built-in mass attribute in preparation for multi-fluid simulation (#8)
- Added FluvioFX templates as a part of the install process
- Moved ReflectionHelpers to its own assembly to get rid of duplicate code
- Minor README updates
@lilyvelour lilyvelour added this to Needs review in FluvioFX Jan 15, 2019
FluvioFX automation moved this from Needs review to Done Jan 17, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
FluvioFX
  
Done
Development

No branches or pull requests

1 participant