Table of Contents

Channelflow tutorial: using utility programs

Background

What is channelflow?

Why is CFD a hassle?



this changes your workflow…



…and changes your analytic framework



All this makes numerical analysis of fluid dynamics a hassle, compared to low-dimensional ODE systems.

Channelflow tries to lower the hassle factor by giving packaging important data structures and algorithms and giving them simple, flexible, high-level interfaces:



We will discuss programming in channelflow another day.

Today is about using predefined channelflow utility programs to do calculations.

The utilities plus Matlab form a crude interactive system for CFD.

Important concepts

FlowField

FlowField : C++ class representing spectral expansion of scalar, vector, tensor fields


  {\bf u}({\bf x},t) = \sum_{k_x k_y k_z} a_{k_x k_y k_z} T_{k_y}(y) \; e^{2 \pi i (k_x x / L_x + k_z z / L_z)}

FlowField class has a platform-independent binary file format that retains coefficients, geometrical parameters, and other state information. We will discuss FlowField as a C++ class later, when we cover programming with channelflow. For, now, just think of a FlowField as a velocity field stored as a binary file (file extension .ff).

Why not ASCII? Binary floating-point IO is exact and much more efficient than ASCII. Gives efficient, exactly invertible IO. Plus the ordering of multidimensional spectral coefficients with complex symmetries is tricky enough that ASCII is incomprehensible, too. However, if you want ASCII values of velocity at each gridpoint, there's a utility for conversion (field2ascii).

In channelflow utilities, velocity fields u(x,t) are differences from the laminar flow


{\bf u}_{total}({\bx x}, t) = {\bf u}({\bx x}, t) + y {\bf e}_x

so that they have Dirichlet boundary conditions and form a vector space. The Matlab visualization scripts add the laminar flow back on by default.

Note: I moved the rest of this class tutorial into the channelflow tutorial. John Gibson 2009-01-29