User Tools

Site Tools


docs:classes:flowfield

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== FlowField ====== The FlowField class represents vector-valued fields of the form <latex> {\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 </latex> 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]. ((<latex> \bar{T}_{k_y}(y) = T_{k_y}\left(\frac{2}{b-a}(y - \frac{b+a}{2})\right)</latex>)) 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, +/-, +=, ∇, ∇<sup>2</sup>, etc. * transforming back and forth between spectral coefficients <latex> \hat{u}_{k_x k_y k_z j}</latex> and gridpoint values <latex>{\bf u}(x_j, y_k, z_{\ell})</latex> * 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. Examples: <code c++> 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); </code>

docs/classes/flowfield.1234810322.txt.gz · Last modified: 2009/02/16 10:52 by gibson