User Tools

Site Tools


gtspring2009:schedule:chflow1

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

gtspring2009:schedule:chflow1 [2009/02/04 10:52]
gibson
gtspring2009:schedule:chflow1 [2010/02/02 07:55]
Line 1: Line 1:
-====== Channelflow tutorial: using utility programs ====== 
  
-===== Background ===== 
- 
-==== What is channelflow?​ ==== 
-   * set of C++ libraries for high-level programming 
-   * set of command-line utility programs 
-   * set of matlab scripts for visualization 
-   * database of invariant solutions 
-   * website with documentation,​ discussion forums ​   
- 
-==== Why is CFD a hassle? ==== 
-   * Navier-Stokes is a stiff, 3D, nonlinear, constrained PDE 
-   * Integration algorithms are complex, tailored to geometry 
-   * Turbulence has multiple scales, requires fine resolution 
-   * > 10^5-d state space, > 1 MB for each data point 
-   * Integration is computationally expensive 
-\\ 
-\\ 
- //​this changes your workflow...// ​ 
-   * integrate a flow and save velocity field to disk at regular intervals 
-   * read saved data from disk for visualization,​ statistics, etc. 
-   * run jobs on number crunchers (PACE), transfer files via scp, ... 
-\\ 
-\\ 
-//...and changes your analytic framework// 
-   * can't represent du/dt = F(u) simply 
-   * can't compute a 10^5 x 10^5 Jacobian matrix (even with sparse structure) 
-   * hard to choose projections for state-space portraits 
-\\ 
-\\ 
-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: 
-   * in C++ classes, for writing your own fluids codes 
-   * in predefined utility programs, for common calculations 
-\\ 
-\\ 
-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 
- 
-<​latex>​ 
-  {\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)} 
-</​latex>​ 
- 
-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** 
- 
-<​latex>​ 
-{\bf u}_{total}({\bx x}, t) = {\bf u}({\bx x}, t) + y {\bf e}_x 
-</​latex>​ 
- 
-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 ** [[docs:​tutorial|channelflow tutorial]]. //John Gibson 2009-01-29//​ 
gtspring2009/schedule/chflow1.txt ยท Last modified: 2010/02/02 07:55 (external edit)