User Tools

Site Tools


gtspring2009:schedule:chflow1

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
gtspring2009:schedule:chflow1 [2009/01/27 07:32]
gibson
gtspring2009:schedule:chflow1 [2009/01/29 12:44]
gibson
Line 78: Line 78:
 scripts add the laminar flow back on by default. scripts add the laminar flow back on by default.
  
- +**NoteI moved the rest of this class tutorial ​into the ** [[doc:tutorial|channelflow ​tutorial]]. //John Gibson 2009-01-29//
-==== Channelflow utilities ==== +
- +
-FlowFields are binary file representations of velocity fields. +
- +
-Channelflow utilities are programs that operate on FlowField files or directories +
-of FlowField files saved at regular intervals. +
- +
-Examples: +
-^ utility ^ action ^ +
-| fieldprops ​   | print out properties of field: norms, symmetries, etc. | +
-| fieldplots ​   | extract 2D slices of a velocity field for plotting ​    | +
-| addfields ​    | compute u' = sum a_n u_n and save to disk              | +
-| couette ​      | integrate an initial condition, save results to disk   ​| ​  +
-| seriesprops ​  | compute statistics of saved fields ​                    | +
-| makebasis ​    | Gram-Schmidt orthogonalize a set of fields ​            | +
-| projectseries | project saved data onto basis set                      | +
-| findorbit ​    | compute equilibria, traveling waves, periodic orbits ​  | +
-| arnoldi ​      | compute eigenvalues of solutions via Arnoldi iteration | +
- +
-The utilities are stand-alone command-line programs that are run from +
-the Unix shell. You can get brief built-in help information on each +
-utility by running it with a -h or --help option. For example, running +
-"​couette --help"​ produces +
- +
-  gibson@akbar$ couette --help +
-  couette : +
-        integrate an initial condition and save velocity fields to disk. +
- +
-  options : +
-    -T0       ​--T0 ​          <​real> ​  ​default == 0       start time +
-    -T1       ​--T1 ​          <​real> ​  ​default == 100     end time +
-    -vdt      --variabledt ​                              ​adjust dt for CFL +
-    -dt       ​--dt ​          <​real> ​  ​default == 0.03125 timestep +
-    -dtmin ​   --dtmin ​       <​real> ​  ​default == 0.001   ​minimum time step +
-    -dtmax ​   --dtmax ​       <​real> ​  ​default == 0.05    maximum time step +
-    -dT       ​--dT ​          <​real> ​  ​default == 1       save interval +
-    -CFLmin ​  ​--CFLmin ​      <​real> ​  ​default == 0.4     ​minimum CFL number +
-    -CFLmax ​  ​--CFLmax ​      <​real> ​  ​default == 0.6     ​maximum CFL number +
-    -ts       ​--timestepping <​string>​ default == sbdf3   ​timestepping algorithm +
-    ... +
-     ​-p ​       --pressure ​                               print pressure grad +
-    <​flowfield> ​     (trailing arg 1)                    initial condition +
- +
-The built-in help gives a brief description ​of each utility'​s purpose +
-and a list of its command-line options and arguments. Channelflow +
-utilities are invoked at the command line with syntax like +
- +
-   ​utility -opt1 value -opt2 value -flag1 arg3 arg2 arg1 +
- +
-or concretely +
- +
-   ​couette -T0 0 -T1 400 -vdt -dt 0.02 -ts sbdf4 u0.ff +
- +
-Utilities often store data at regular intervals dT into a output directory, specified with  +
--T0, -T1, and -dT, and -o options. E.g.  +
- +
-   ​couette -T0 0 -T1 400 -dt 0.02 -dT 2.0 -o data/ u0.ff +
- +
-integrates ​the flow from t=T0 to t=T1 with timestep dt=0.02 and stores a time series of  +
-velocity fields at intervals dT=2.0 in the ''​data/''​ directory. The velocity fields have  +
-filenames  +
- +
-  data/​u0.ff +
-  data/​u1.ff +
-  etc. +
- +
-where the label is the time t = T0 + n dT. If T0 or dT is not an integer, the label is rounded  +
-to three decimal places. +
- +
-For utilities that //read// time series of velocity fields, you need to specify the same  +
-(or compatible) time intervals. For the most part, the default dT=1 is a good, simple interval.  +
- +
-Most utilities echo the command-line arguments into a file //​utilityname//​.args,​ to help you keep  +
-track of what you've done. +
- +
-Reynolds number defaults to 400. +
- +
- +
-===== Example calculations ===== +
-==== Computing a 1d unstable manifold ==== +
-    +
-The Nagata (1990) "​lower-branch"​ equilibrium has a one-dimensional unstable manifold. +
-Here we compute the unstable manifold by integrating two 1d trajectories  +
- +
-<​latex>​ +
-u_{\pm}(x,​t) = f^t(u_{LB} \pm v_{LB}), t \in [0, \infty] +
-</​latex>​ +
- +
-using several channelflow utilities:  +
- +
-  ​''​fieldprops''​ +
-  ​''​arnoldi''​ +
-  * ''​addfields''​ +
-  * ''​couette''​ +
-  * ''​seriesprops''​ +
-  * ''​makebasis''​ +
-  * ''​projectseries''​ +
-\\ +
-\\ +
-1. Download the solution from the [[http://​www.channelflow.org/​database|channelflow ​database]]  +
- +
-   wget http://​channelflow.org/database/a1.14_g2.5_Re400/​LB.ff +
-\\ +
-\\ +
-2. Examine the properties of the lower-branch solution with ''​fieldprops''​ +
- +
-   ​fieldprops -g uLB +
-\\ +
-\\ +
-3. Plot the LB with "​fieldplots"​ and matlab script "​plotbox"​ (bad  +
- +
-   ​fieldplots -o plot uLB +
-    +
-then within Matlab, ''​plotbox('​LB'​)''​. +
-\\ +
-\\ +
-\\ +
-4. Compute the eigenfunctions with ''​arnoldi''​ (skip this?) +
- +
-   ​arnoldi --flow LB.ff +
- +
-This produces a set of (approximate) eigenfunctions ''​ef1.ff,​ ef2.ff, ...''​ and a  +
-file of eigenvalues ''​lambda.asc''​.  +
-\\ +
-\\ +
-\\ +
-5. Perturb along the unstable eigenfunction with ''​addfields''​ +
- +
-  addfields 1 LB  0.01 ef1  LBp01ef1 +
-  addfields 1 LB -0.01 ef1  LBm01ef1 +
-\\ +
-=) I think that both instances of "​LB"​ here should be replaced by "​LB.ff"​ and similarly +
-both instances of "​ef1"​ should be replaced with "​ef1.ff" ​- //Dustin// \\ +
-8-O Channelflow automatically adds the "​.ff"​ extension if it's not there. - //John G.// +
- +
-\\ +
-6. Integrate the perturbations with ''​couette''​ +
- +
-  couette -T0 0 -T1 400 -o data-LBp01 LBp01ef1 +
-  couette -T1 0 -T1 400 -o data-LBm01 LBm01ef1 +
-\\ +
- +
-\\ +
-7. Produce input vs dissipation curves for perturbations with ''​seriesprops''​ +
- +
-   ​seriesprops -T0 0 -T1 400 -d data-LBp01ef1 -o props-LBp01ef1  +
-   ​seriesprops -T0 0 -T1 400 -d data-LBm01ef1 -o props-LBm01ef1  +
-\\ +
- +
- +
- +
-\\ +
-8. Make movies of the two flows with ''​movieframes''​ +
-\\ +
-\\ +
-   ​movieframes -T0 0 -T1 100 -d data-LBp01ef1 -o frames-LBp01ef1 +
-   ​movieframes -T0 0 -T1 100 -d data-LBm01ef1 -o frames-LBm01ef1+
gtspring2009/schedule/chflow1.txt · Last modified: 2010/02/02 07:55 (external edit)