Steady Advection-Diffusion Around Finite Absorbers
in Two-Dimensional Potential Flows


Jaehyuk Choi, Dionisios Margetis, Todd M. Squires, and Martin Z. Bazant
J. Fluid Mech. 536, 155 (2005), cond-mat/0403740


Copyright 2005 by Jaehyuk Choi
All of the codes in this page were written by Jaehyuk Choi. Please refer the JFM article above when you use or modify the codes. This paper provides the theory and algorithm behind the codes.
Exact solutions of the Navier--Stokes equations having steady vortex structures J. Fluid Mech. 541, 55 (2005)

Overview

This web page provides numerical solutions of steady advection-diffusion around the unit disk (Fig. 1 a):

The system is conformally invariant, thus the solution for any arbitrary geometry (Fig. 1 b-c) can be mapped from this canonical solution. The Peclet number Pe is the speed of the background flow far away and the solution c depends on Pe as well as the spacial coordinate.

A quantitiy of interest is the normal flux on the boundary of the disk which causes growth in the quasi-linear system:

For stochastic growth, the probability measure is proportional to the flux with normalization by Nussel number Nu(Pe):

Fig. 1 (a) (b) (c)

Fig. 2 (a) (b) (c)

Fig. 3 (a) (b)

Matlab Codes and Data

Download all m-files ( .mat not included )

ConcSpectral.m

Calculates c(r,θ; Pe) using (regular) spectral method as described in Sec. 3.1-3. The PDE is solved inside the unit disk (Fig. 4 a) in polar coordinates (Fig. 4 b).

Fig. 4 (a) (b)

ConcAdpmesh.m

Calculates c(r,θ; Pe) using adeptive grid as described in Sec. 3.4. When Pe is very low or high, the boundary layers appear (Fig. 5 a). Using adeptive mesh for r and θ, the layers can be stretched out (Fig. 5 b) so that the bevavoir is smooth. Subfunctions, AdpmeshR.m and AdpmeshTH.m, which generate the adeptive mesh, are used in this function.

Fig. 5 (a) (b)

FluxAsymH.m

Calculates σ(θ, Pe) using exact high-Pe asymptotic expansions as described in Sec. 4. Subfunctions: expbesselk.m and experfc.m

FluxAsymL.m

Calculates σ(θ, Pe) from the leading order term of the low-Pe asymptotic expansions as described in Sec. 5.

Nussel.m

Calculates Nu(Pe) from FluxAsymH.m and FluxAsymL.m.

RefSoln.mat

Stores solutios for a range of Pe.

Other Subfunctions

Visualization Examples


Recommended Uses of m-functions According to Pe

σ(θ, Pe) or Nu(Pe)

If you only need the flux σ, not the concentratoin c, FluxAsymH.m or FluxAsymL.m are exact and fast. ConcSpectral.m or ConcSpectral.m requires solving a very large linear system of equations. The ranges of Pe suitable for the functions are as follows: At Pe = 0.001, FluxAsymL.m is very accurate although it's only the leading order. FluxAsymH.m is also good below Pe = 0.001, but more and more terms are required. Nussel.m gives Nu(Pe) using the above criteria.

c(r,θ; Pe)

Use ConcAdpmesh.m rather than ConcSpectral.m when Pe is very low or high; However, use GetRefSoln.m. It's very fast since it fetchs and interpolates the stored solutions. If you need more accurate solutions, you can calculate solutions for more dense values of Pe and more grid points (Nr and Nth) in advance and save to RefSoln.mat. You can also use ConcAdpmesh.m for low and high Pe, but be aware that, in that case, the grid points r and th are different for each Pe. So you'll have to write a new GetRefSoln.m with a more sophiscated interpolation algorithm. I didn't try that.

Contact Us