User Tools

Site Tools


docs:classes:dns

This is an old revision of the document!


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

====== DNS and DNSFlags ====== The DNS((Direct Numerical Simulation)) class advances velocity fields under the Navier-Stokes equations, with a variety of times-stepping algorithms, boundary conditions, and external constraints. There are quite a few options to the DNS class, so many that there is a special DNSFlags class to group them all together. DNSFLags and DNS work together like this. You construct a DNSFlags object and set its member variables to values that define the flow you want to integrate. Then you construct a FlowField, which defines the grid and cell sizes. Lastly you construct a DNS object combining the DNSFlags, the velocity field, the kinematic viscosity, and the time step. In C++ code it looks like this <code c++> DNSFlags flags; flags.baseflow = PlaneCouette; flags.timestepping = SBDF3; // 3rd order semi-implicit backwards differentiation flags.initstepping = SMRK2; // 2nd order spalart-moser runge-kutta flags.nonlinearity = Rotational; flags.dealiasing = DealiasXZ; flags.constraint = PressureGradient; // enforce constant pressure gradient flags.dPdx = 0.0; // hold mean pressure gradient at zero FlowField u(Nx,Ny,Nz,3,Lx,Lz,a,b); // velocity FlowField p(Nx,Ny,Nz,1,Lx,Lz,a,b); // pressure DNS dns(u, nu, dt, flags); for (Real t=T0; t<=T1; t += N*dt) { dns.advance(u,p,N); // advance u,p forward N steps of length dt ... } </code> Sections to be written... ===== DNSFlags ===== ===== Time-stepping algorithms ===== ===== Nonlinearity ===== ===== Base flow ===== ===== Mean constraint =====

docs/classes/dns.1234888773.txt.gz · Last modified: 2009/02/17 08:39 by gibson