User Tools

Site Tools


This is an old revision of the document!


The FlowField class represents vector-valued fields of the form

{\bf u}({\bf x}) &= \sum_{k_x,k_y,k_z,j}  \hat{u}_{k_x k_y k_z j}\bar{T}_{k_y}(y) \; e^{2 \pi i (k_x x/L_x + k_z z/L_z)} {\bf e}_j

and also scalar and tensor fields with appropriate changes in the dimensionality of the coefficients. The barred T function is a Chebyshev polynomial scaled to fit the domain y ∈ [a,b]. 1)

In channelflow programming, fields such as velocity, pressure, stress tensors, vorticity, etc. are stored as variables of type FlowField. The main functionality of the FlowField class is

  • algebraic and differential operations, +/-, +=, ∇, ∇2, etc.
  • transforming back and forth between spectral coefficients  \hat{u}_{k_x k_y k_z j} and gridpoint values {\bf u}(x_j, y_k, z_{\ell})
  • serving as input to DNS algorithms, which map velocity fields forward in time: u(x,t) → u(x, t+Δt)

FlowFields are initialized with gridsize and cellsize parameters, read from disk, or assigned from computations

   FlowField f;                                   // null value, 0-d field on 0x0x0 grid 
   FlowField u(Nx, Ny, Nz, Nd, Lx, Lz, a, b);     // Nd-dim field on Nx x Ny x Nz grid, [0,Lz]x[a,b]x[0,Lz]
   FlowField g(Nx, Ny, Nz, Nd, 2, Lx, Lz, a, b);  // Nd-dim 2-tensor  
   FlowField h("h");                              // read from file "h.ff"
   FlogField omega = curl(u);
docs/classes/flowfield.1234810300.txt.gz · Last modified: 2009/02/16 10:51 by gibson