# Fluid Simulation on Surfaces

## Maria Andrade, Leonardo Carvalho, Dalia Bonilla

In this work, we show how to calculate the Navier-Stokes equations on a smooth surface, where we want to simulate a fluid flow. We used a parametrization of a Catmull-Clark surface, from which we calculate a metric that depends on its tangent vectors and use this metric to get the necessary differential operators to solve the problem. The Navier-Stokes equations are solved on a discretization of the surface, dealing with the transition of the fluid between the patches that form the surface. This work is based in the work of Jos Stam.  Example: Simulation of fluid on a closed surface.

To simulate fluid we need to get a parametrization of some surface, one good candidate is a Catmull-Clark surface, which is smooth almost everywhere. Moreover, it is necessary to compare vectors in different points on the surface for fluid simulators, for example, velocity, force, etc.

The Navier-Stokes equations on a smooth surface are where

• is the fluid's velocity;
• is the viscosity;
• are external forces;
• is the fluid's density;
• is a diffusion rate;
• are sources of density.
We used a parametrization of the Catmull-Clark subdivision surface, as described by Jos Stam, 1998, where the surface is divided into patches, as you can see in this example: Surface divided into patches. The colors indicate the coordinate system of each patch.
From this parametrization we calculate the metric matrix defined by The inverse of the metric matrix is And we denote the determinant of the metric matrix The equations are solved in four steps: First, we solve this equation which is discretized by So we just sum the values of the external forces to the current velocity. Forces added to a velocity field on the surface.
Diffusion

Now, we solve the diffusion equation which is discretized by where the Laplacian operator is given by  Result of a diffusion step.

The advection equation is given by where the gradient operator is given by which is solved using a semi-Lagrangian technique, where we calculate the trajectory of each point of the grid to get its velocity in the previous time. Projection

The result of the last step is projected such that where the divergent is given by To find this projection we solve the Poisson equation followed by  These steps are summarized in the following picture: For the density field, we first solve this equation which is discretized by So we just sum the values from the sources to the current density.  From the initial density (on the left), we add sources (on the right).
Diffusion of density field

Next, we solve the diffusion which is discretized by   