User Tools

Site Tools



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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
docs:classes:dns [2009/02/16 19:17]
docs:classes:dns [2010/02/02 07:55] (current)
Line 28: Line 28:
   for (Real t=T0; t<=T1; t += N*dt) {   for (Real t=T0; t<=T1; t += N*dt) {
-     ​dns.advance(u,​p,​N);​+     ​dns.advance(u,​p,​N); ​                // advance u,p forward N steps of length dt
      ...      ...
   }   }
Line 36: Line 36:
 ===== DNSFlags ===== ===== DNSFlags =====
 +The differents DNS flags are :
 +  * baseflow
 +  * timestepping
 +  * initstepping
 +  * nonlinearity
 +  * dealiasing
 +  * taucorrection
 +  * constraint
 +  * verbosity
 ===== Time-stepping algorithms ===== ===== Time-stepping algorithms =====
 +The DNS class implements seven different time-stepping algorithms. (The default is SBDF3.)
 +  * **CNFE1 or SBDF1**: 1st-order Crank-Nicolson,​ Foward-Euler or 1st-order Semi-implicit Back-
 +ward Differentiation Formula –two names for the same algorithm. This algorithms is extremely
 +simple and needs no initialization need, but its 1st-order error scaling makes it practically worth-
 +less, except for initializing other algorithms.
 +  * **CNAB2** 2nd-order Crank-Nicolson,​ Adams-Bashforth. A popular algorithm, but higher-frequency
 +modes are poorly damped. Requires one initialization step. Zang warns against us-
 +ing CNAB2 in combination with Rotational nonlinearity unless the high-frequency modes are
 +dealiased. CNAB2 enforces zero-divergence at successive timesteps and momentum equa-
 +tions halfway between successive time steps, which can lead to slowly decaying period-2dt os-
 +cillation in the pressure field, unless pressure and velocity are initialized accurately.
 +  * **CNRK2**: a three-substep,​ 2nd-order semi-implicit Crank-Nicolson,​ Runge-Kutta algorithm, devel-
 +oped by Zang and Hussaini and but implemented in Channelflow from the Peyret’s exposition
 +. According to Peyret, Zang and Hussaini observed 3rd-order scaling for this algorithm applied
 +to low-viscosity flows, even though it is theoretically 2nd-order. Numerical tests in Channelflow
 +show 2nd-order scaling for velocity fields at Re = 103 − 104 , and 1st-order scaling for pressure,
 +due to a phase error in the pressure field. CNRK2 requires no initialization.
 +  * **SMRK2**: a three-substep,​ 2nd-order semi-implicit Runge-Kutta developed by Spalart, Moser, and
 +Rogers. Identical characteristics as CNRK2, including observed 2nd-order scaling consistent
 +with theory, contrary to authors’ claim of 3rd-order scaling, and 1st-order phase error in pressure.
 +Requires no initialization.
 +  *** SBDF2, SBDF3, SBDF4**: 2nd, 3rd, and 4th-order Semi-implicit Backward Differentiation
 +Formulae, requiring 1,2, and 3 initialization steps. I have found the SBDF schemes to be the
 +best-behaved of the lot. When solving un+1 and pn+1 , SBDF schemes enforce divergence and
 +momentum equations at tn+1 . This strongly implicit formulation poduces strong damping for
 +high-frequency modes and results in pressure field as accurate as the velocity field. SBDF3 is par-
 +ticularly good: it has the strongest asympotitc decay of all 3rd-order implicit-explicit linear multi-
 +step schemes. For these reasons, SBDF3 is the default value of flags.timestepping. Peyret
 +terms these algorithms AB/BDEk (kth-order Adams-Bashforth Backward-Differentiation).
 +To summerize : **CNFE1, CNAB2, CNKR2, SMRK2, SBDF1, SBDF2, SBDF3, SBDF4** ​
 ===== Nonlinearity ===== ===== Nonlinearity =====
-===== Base flow =====+The nonlinear term in the Navier-Stokes calculation can be computed in a 
 +number of forms that are equivalent in continuous mathematics but slightly different when computed 
 +with spectral expansions and collocation. The default is SkewSymmetric.
-===== Mean constraint =====+  * **Rotational:​** Fast but generates high-frequency errors unless dealiased 
 +  * **SkewSymmetric:​** Comparatively expensive to compute compared to Rotational 
 +  * **Convective** 
 +  * **Divergence** 
 +  * **Alternating** convection/​divergence an alternating time steps. A cheap approximation to SkewSymmetric,​ which is an average of the convective and divergence forms. Not yet analyzed how the alternating nonlinearity method interacts with multistepping algorithms.
 +  * **Linearized** about the base flow.
 +===== Base flow =====
 +  * **Zeros**
 +  * **PlaneCouette** : plane Couette mean velocity profile <​latex>​ y </​latex>​
 +  * **Parabolic** : plane Poiseuille mean velocity profile <​latex>​ 1-y^2 </​latex>​
 +===== Mean constraint =====
 +Periodic channel flows satisfy the Navier-Stokes equations with either the **bulk velocity** or the **spatial-mean pressure gradient** set as an external constraint. This flag sets which constraint is to be enforced. DNS’s default behavior determines the spatial-mean pressure gradient or bulk velocity from the fluctuation’s initial condition u and matches this as a fixed constraint at each time step. DNS can match time-varying constraints as well.
docs/classes/dns.txt · Last modified: 2010/02/02 07:55 (external edit)