Coder Social home page Coder Social logo

gridliquid2d's People

Contributors

jklae avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

gridliquid2d's Issues

Normalizing the coordinates

Description
Currently, the drawing coordinates and the simulation coordinates are the same. It is not good because the smaller the grid scale, the larger the calculation error. Also, some coordinates are negative to center the grid position. These coordinates are very cumbersome in simulation calculations, especially when interpolating particle variables. Therefore, the simulation calculations will be more efficient by having the drawing coordinates and the simulation coordinates separately.

Todo

  • Do not equate simulation coordinates with drawing coordinates.
  • Normalize the simulation coordinates [0, N+2]. These coordinates make simulation calculations convenient.
  • Remove variables like stride and offset. As long as the coordinates are normalized, these variables are not needed.
  • Modify the interpolation function. In the interpolation function, the offset and stride of the particle are calculated. Since the coordinate system has changed, these must also be corrected.

Note
A method for compensating for the difference between the two coordinate systems is presented in jklae/DXViewer#25.
This issue is derived from #3.

Implementing hybrid method

Description
Hybrid methods PIC and FLIP are implemented.

Todo

  • Implement PIC and FLIP.
  • Modify iWMCreate() to support PIC/FLIP.

Note
PIC is already implemented in commit ab9ea96.

DXViewer GUI support

Description
Further implementations are underway to support the DXViewer GUI.

Todo

  • Create a parent fluid simulation class.
  • Respond to various functions added to DXViewer GUI.

Note
This issue is related to jklae/DXViewer/issues/27.

Implement MAC grid

Description
Currently, center-type velocity storage is being used. Although this method is easy to implement, it is outdated and causes problems with boundary conditions. Therefore, MAC grid is adopted.

Todo

  • Implement MAC grid. It should provide various functions using classes. (ex. getHalfVelocity())

Invalid particle creation

Describe the bug
I just found a terrible bug. The particle creation location was wrong. (Rows and columns are reversed)
This will probably cause problems everywhere index function is used.

Screenshots

Liquid simulation doesn't seem plausible.

Description
Liquid simulation doesn't seem plausible, especially when falling due to gravity. It moves like gas.
The cause is probably because the gas method is being used as it is. Additional work is required for liquid simulation.

Comments
A few doubts are, first, that additional methods such as volume conservation or surface tension need to be implemented.
Second, I think that it is not necessary to update the entire velocity vector field, but only the vector field near the liquid.

The image on the right is the result of https://github.com/kbladin/Fluid_Simulation.

Implement marker particles

Description
A marker particles technique is implemented for Eulerian simulations.

Todo

  • Define marker particle-related variables.
  • Implement abstract methods so that DXViewer can use the above variables.

Note
This issue is related to jklae/DXViewer#21.

ISimulation object was nullptr during initialization with subWndProc

Describe the bug
A problem occurred while implementing subWndProc in ISimulation. ISimulation object was nullptr during initialization with subWndProc.

Screenshots
image

Comments on the bug
This problem occurs because the initialization of subWndProc precedes the initialization of the ISimulation object.
The initialization order of Win32App needs to be changed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.