1 / 21

Computational Fluid Dynamics

Computational Fluid Dynamics. Real-time animation of low-Reynolds-number flow using Smoothed Particle Hydrodynamics presentation by 薛德 明 Dominik Seifert B97902122. Visualization of my results. http://csie.ntu.edu.tw/~b97122/archive/fluid_dynamics/capture.mp4. My code.

aaralyn
Download Presentation

Computational Fluid Dynamics

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computational Fluid Dynamics Real-time animation of low-Reynolds-number flow using Smoothed Particle Hydrodynamics presentation by 薛德明 Dominik Seifert B97902122

  2. Visualization of my results http://csie.ntu.edu.tw/~b97122/archive/fluid_dynamics/capture.mp4 My code http://csie.ntu.edu.tw/~b97122/archive/fluid_dynamics/OpenTissue_backup.rar My motivation: From Dust http://www.youtube.com/watch?v=CfKQCAxizrA

  3. The frameworkOpenTissue • OpenTissue is an open source simulation framework with a simple, working SPH implementation • I added some features to their implementation • Their original implementation is described in this 88 page document: • “Lagrangian Fluid Dynamics Using Smoothed Particle Hydrodynamics”

  4. Smoothed Particle HydrodynamicsQuick review • Note: SPH particles are not actual particles! • They are really fluid samples of constant mass • Particles are placedinside a container to represent a fluid • Every particle is then assigned a set of initial properties • After every time step (a few milliseconds), update the properties of all particles • Use interpolation methods to solve the Navier-Stokes equation to find force contributions, then integrate to find new velocity and position

  5. SPHParticle Properties • Support Radius (constant) • Minimum interaction distance between particles • Mass (constant; ensures Conservation of Mass explicitly) • Position (varying) • Surface normal (varying) • Velocity (varying) • Acceleration (varying) • Sum of external forces (varying) • Density (varying due to constant mass and varying volume) • Pressure (varying) • Viscosity (constant)

  6. Smoothed Particle HydrodynamicsSolver pseudocode

  7. Smoothed Particle HydrodynamicsThe pressure problem • Fluids cannot be accurately incompressible • Pressure value approximated by Ideal Gas Law: • k called “gas-stiffness” • Entails assumptions of gas in steady state • Does not consider weight pressure • Causes “pulsing” because of lagging interplay between gravity and pressure force • Large gas-stiffness can reduce/eliminate the lag and the pulsing • Alternatively, take density to the power of heat capacity ratio • But high pressure requires a smaller time-step and thus makes the simulation more expensive

  8. My contributions IFluid-fluid interactions • In OpenTissue, a system can be comprised of only a single fluid • I changed the code to support more than one fluid at a time • The math and physics are mostly the same, except for: • Viscosity • Kernel support radius • Still missing: • Surface tension interfaces between fluids of different polarity • But I still spent three days on changing the framework due to heavily templatedC++ code

  9. My contributions IIFluid-solid interactions • In OpenTissue only supports static (immovable) objects • I wanted to add the ability to add objects that interact with the fluid, objects that can float, sink etc. • Solid dynamics are very complicated! What are… • Tensile Strength? • Compressive Strength? • Young’s modulus? • I came up with an intuitive but not quite correct approach

  10. My contributions IIRestoring force • Place an invisible spring between every two particles that are close to each other initially • Store the initial distance between every two “neighboring” particles • Add a new spring force component that contributes: k * abs(current_distance – original_distance) • Works for very few particles, but not for many

  11. My contributions IIIControl Volumes - Overview • Control volumes are used in the analysis of fluid flow phenomena • They are used to represent the conservation laws in integral form • Conservation of mass over a given (control) volume c.v. with surface area c.s.: • = density; u = velocity; n = surface normal

  12. My contributions IIIControl Volumes in SPH • Volume integrators are easy: Simply accumulate all contributions of all particles in volume • Area integrators are trickier • Time derivative can be obtained via difference quotients: for any property • Fluid properties at some point in the field can be obtained by interpolation

  13. My contributions IIIField evaluator function ValueTypeevaluate(vector pos, real radius, ParticleProperty A): ParticleContainer particles; search(pos, radius, particles); ValueTyperes = ValueType(0); foreach particle p in particles: real W = DefaultKernel.evaluate(pos - p.position); res += (p.*A)() * p.mass/p.density * W; return res; • This required me to change the spatial partioning grid to support queries at arbitrary locations • After that, I only had to implement the famous SPH field evaluation template for some property A: • Translates to:

  14. My contributions IIIArea Integrator • Goal: Find average of property at discretely sampled points • I went for an evenly distributing sampler • Aliasing is not an issue, don’t need random sampling • # of samples ns should be proportional to # of particles that can fit into the surface: • So we get:

  15. My contributions IIIDisk Integrator • In this approach, every kind of surface needs their own integrator • I only have to consider disks in my pipe flow example • The disk integrator iterates over the cells of an imaginary grid that we lay over the disk to find the average of fluid property f real integrateDiskXZ(real ns, vector2 p_center, real r, field_evalutorf): real q_total = 0 real ds = sqrt(PI / ns) * r // intsamples_in_diameter = sqrt(ns * 4/PI) // vector2 min = p_center – r for (inti = 0; i < samples_in_diameter; i++) for (int j = 0; j < samples_in_diameter; j++) vector2 pos = (min.x + i * ds, min.z + j * ds) if (length(pos - p_center) > r) continue q_total += f(pos) return q_total / ns

  16. My contributions IIIArea Integrator - Considerations • No need to sample over an already sampledset • Can use spatial selection instead: • Find all particles in distance d from the surface • Use scaled smoothing kernel to add up contributions • I was not quite sure how to mathematically scale the kernel, so I went for the sampling approach • I also used the integrator to place the cylindrically-shaped fluid inside the pipe

  17. My contributions IIIConservation of mass • The integral form: • Becomes: • The first term is the time derivative of Mass inside the c.v. • The second term is the mass flux through the c.v.’s surface area

  18. Particle boundary deficiency,Holes in the fluid andControl Volume - Correctness • Boundary deficiency: • Since atmosphere and structure are not represented in this model, computations have to cope with a pseudo-vacuum (真空) • Governing equations are adjusted to cope with the deficiency • e.g. Level set function for surface tension considers: • Inside fluid = 1 • Outside fluid = 0 • C.v.’s must always be completely filled! • Fluid volume is never correct which causes “holes” in the fluid • Think: What is the space between the particles/samples? • C.v. computations can also never be 100% correct!

  19. Bibliography • [1] OpenTissue @ http://www.opentissue.org/“OpenTissueis a collection of generic algorithms and data structures for rapid development of interactive modeling and simulation.” • [2] Smoothed Particle Hydrodynamics – A Meshfree Particle Method (book) • [3] Lagrangian Fluid Dynamics Using Smoothed Particle Hydrodynamics • [4] Particle-Based Fluid-Fluid Interaction

  20. Summary • Given high enough gas stiffness, SPH model is OK to simulate visually appealing real-time flow but is quite inaccurate • OpenTissue SPH implementation is not very mature, lacks a lot of features • I really miss: • Accurate pressure values • Correct fluid-solid interaction • Arbitrary geometry • I still cannot create real-time interactive applications involving fluid flow but it was still an insightful endeavour.

  21. What’s next? • Surface rendering until next week • Then choose one from the list… • Improve SPH implementation • Add generic surfaces(currentlyonlysupportsimplicitprimitives) • Make it adaptive (choose sample size dynamically) • Learn solid dynamics and work on Fluid-Structure interaction • More work on surface rendering • OptimizedOpenGL/DX/XNA implementation that runs on the GPU • Work on Computational Galactic Dynamics (計算星系動力學) • with professor 闕志鴻 from the Institute of Astronomy(天文所) • Simulation of dark matter & fluid during galaxy formation • Work on level sets and the level set method in CFD • with professor Yi-Ju 周 from the Institute of Applied Mechanics (應力所)

More Related