Wednesday, February 2, 2011

Particle Attributes

As I continue to read about current implementations of multi-phase flow and phase changing materials using SPH, there are a few things which I need to iron out with the approach I am going to take in tackling SPH.

The first are what kinds of things I am planning on simulating in materials, in order to make the simulation as applicable as possible to different types of materials, as there are a lot of different phenomena I need to consider. I do not plan on implementing or utilizing all of these, but there are a few which are extremely important.


Phenomena
  • Particles
    • SPH!
  • Heat Transfer
    • How heat is transferred from particle to particle
  • Phase Changes 
    • Particles of Different Types: Solids, Liquids, Gases
  • Viscosity 
    • Closely Associated with Heat/Deformation
  • Multi-Phase Flow 
    • Interaction Between Particles of Different Types
  • Buoyancy 
    • As you get particles of varying densities or different materials, the less dense material rises according to the buoyancy equation, bubbles IE
  • Surface-Tension
    • Cohesion of particles near the surface interface.
    • Fluid-Air Interface
  • Inter-Facial Tension
    • Cohesion/Repulsion interactions of particles between different phases or different materials
    • Fluid-Fluid,Fluid-Solid Interface
  • Spatial Hashing / Uniform Grid
    • Speed Up search for Neighbors/Collisions between Particles, optimized for/on GPU)
  • SPH Simulation for Deformable Solids
    • Elasticity and Rotation of Deformable Solids during Simulation
    • Based on "Corrated SPH for deformable solids", to allow for better rigid body dynamics using SPH
  • Adaptive Sampling 
    • Larger Particles for Less Detailed Areas, Smaller Particles for More Detailed Areas during Sim
  • Surface Extraction
    • Creating a mesh from particle data.
  • Marching Cubes, Blobbies, Screen Space Meshes, etc.
Keyword: SPH is a particle based method for fluid simulation (has other applications), in which each particle is 
updated by a neighborhood of other particles based on a kernel function which is usually applies a Gaussian 
weight by distance from other particles surrounding it. Most if not all particle attributes discussed would be 
updated this method, including velocity/acceleration, heat transfer, etc.


Particle Structure
  • Basic Particle Attributes
    • Position
    • Velocity
    • Acceleration
    • Area
    • Mass
    • Radius (Uniform or Adaptive Size?)
  • Advanced Particle Attributes
    • Temperature
    • Viscosity
    • Density
    • Pressure
    • Stress Tensor
    • Phase (Solid/Liquid/Gas/Oobleck?)
Additional Forces
  • Temperature of the Air
  • Gravity
  • Immovable (SOLID) Particles
    • Containers for more Interesting Fluid Flow
I have found a lot of methods for simulating these different phenomena in various related papers, some which seem more physically correct than others, but most of them produced extremely interesting and believable results.

There are two interesting points which I have found through reading and observation. The first is that there have been few attempts to apply SPH to rigid body dynamics apart from a paper called "Corrated SPH for deformable solids", which uses additional attributes to account for dynamics such as rotation and shear, which I think will be extremely useful.

The other is that surface tension (and perhaps other cohesive forces) play an extremely large part in determining the shape and structure of flow in things such as lava and highly viscous materials. There is only one method I could find for defining surface tension for SPH which is described here: http://portal.acm.org/citation.cfm?id=846298 but the original paper describing the method is here: http://onlinelibrary.wiley.com/doi/10.1002/1097-0363(20000615)33:3%3C333::AID-FLD11%3E3.0.CO;2-7/abstract

However I can't access the latter paper...do we have access to this library? Either way I am unsure if this surface tension force will work well for what I am trying to accomplish, given that it is for extremely small scale surface tension effects for low viscosity flows.

3 comments:

  1. It looks like you have an ambitious plan - I can't wait to see the results!

    Are you planning on modeling the expansion and contraction of matter based on the phase? For example, water expands when it freezes. It looks like you already are planning on implementing repulsive forces between the particles. It would be neat if you could have water in an ice cube tray freezing and expanding out of the mold (or something more creative :) )

    ReplyDelete
  2. This was a very nice list Terry, well thought out.

    Scan and put up your Sphere sketches too that will make a great addition of what you already have.

    Here is another SPH GPU example.
    http://www.rchoetzlein.com/eng/graphics/fluids.htm
    that is pretty good and stable.


    Under basic particle attributes:
    color, transparency and age/lifetime.
    The age I was relating somehow to evaporation?

    Particle size is interesting based on material properties. Trapping air pockets may be approximated this way, but something to think about integrating in this.

    http://www.cs.cmu.edu/~baraff/sigcourse/notesc.pdf
    glancing at this again might be helpful.


    I sent you a PDF of the later source from the bottom of this post.
    The library does have access to
    International Journal of Numerical Methods for Heat & Fluid Flow
    and
    International Journal for Numerical Methods in Fluids
    so it was pretty easy to track down.


    As for more surface tension
    Matching Fluid Simulation Elements to Surface Geometry and Topology
    http://www.cs.ubc.ca/~tbrochu/bbb2010.pdf
    A Multiscale Approach to Mesh-based Surface Tension Flows
    http://www.cc.gatech.edu/~wojtan/surface_tension/surface_tension.html

    ReplyDelete
  3. Well explained; I understood your goals!
    Nice work.

    ReplyDelete