This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
docs:utils:continuefields [2010/03/04 07:00] gibson |
docs:utils:continuefields [2010/03/04 17:35] (current) gibson |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== continuefields ====== | ====== continuefields ====== | ||
- | Quadratic extrapolation of FlowField u(mu) as function of parameter mu | + | Quadratic extrapolation of FlowField u(mu) as function of parameter mu, where mu is one of Reynolds number, //dP/dx, Lx, Lz, Lx/Lz, sqrt(Lx^2 + Lz^2),// or the length between the starting //(Lx,Lz)// and a target value of //(Lx,Lz)//. |
====== options ====== | ====== options ====== | ||
Line 34: | Line 35: | ||
-dsmax --dsmax <real> default == 0.05 maximum arclength increment (in normalized D,Re space) | -dsmax --dsmax <real> default == 0.05 maximum arclength increment (in normalized D,Re space) | ||
-errmin --errmin <real> default == 1e-05 minimum error for extrapolated guesses | -errmin --errmin <real> default == 1e-05 minimum error for extrapolated guesses | ||
- | -errmax --errmax <real> default == 0.0001 maximum error for extrapolated guesses | + | -errmax --errmax <real> default == 0.0001 maximum error for extrapolated guesses |
+ | -sigma --sigma <string> file containing sigma of sigma f^T(u) - u = 0 (default == identity) | ||
+ | -symms --symmetries <string> file containing generators of isotropy group for symmetry-constrained search | ||
... | ... | ||
-o --outdir <string> default == ./ output directory | -o --outdir <string> default == ./ output directory | ||
Line 41: | Line 44: | ||
<flowfield> (trailing arg 1) initial guess for Newton search | <flowfield> (trailing arg 1) initial guess for Newton search | ||
</code> | </code> | ||
+ | ====== Usage ====== | ||
+ | ===== start-up mode ===== | ||
- | ====== usage ====== | + | There are two basic modes for starting a continuation: from scratch (a single previous solution), or from a previous continuation (using three successive steps). Starting from scratch looks like this |
+ | continuesoln -eqb -contRe -R 350 uRe350.h5 | ||
+ | | ||
+ | The trailing argument here is a FlowField which is assumed to be a solution of the specified type at the specified parameters (or a good guess for a solution). The continuation will begin by making very small +/- perturbations in the continuation parameter (here Reynolds number) and finding new solutions at that value using the input field as an initial guess. By default the continuation goes down in the parameter. If you want to go up, use the ''-up'' option. | ||
- | Suppose you have an equilibrium velocity field at three different Reynolds numbers | + | Starting from a previous continuation looks like this |
- | and you want to extrapolate to a new Reynolds number. Let the fields be EQ1Re350.ff, | + | |
- | EQ1Re360.ff, EQ1Re370.ff at Re=350, 360, and 370. Then you can produce | + | |
- | a quadratic extrapolation to Re=380 by running | + | |
- | continuefields -dv 350 EQ1Re350 360 EQ1Re360 370 EQ1Re370 380 EQ1Re380 | + | continuesoln -eqb -contRe --restart ../contRe0/search-14 ../contRe0/search-15 ../contRe0/search-16 |
- | The last two arguments are the desired parameter value and the output filename. Previous | + | The trailing three arguments are directories containing results from a previous run of ''continuesoln''. The direction of continuation is determined by the order of the three previous solutions. |
- | arguments are inputs in parameter, flowfield pairs. | + | ===== continuation parameter ===== |
- | The -dv option assures that the output field is divergence-free. This is especially | + | ''continuesoln'' will continue solutions in one of seven parameters: |
- | useful when the extrapolation changes the cellsize (Lx,Lz). For example, suppose | + | |
- | you have three equilibrium fields with slightly different cell sizes, say EQ1Lz21.ff, | + | -contRe --continueRe continue solution in Reynolds number |
- | EQ1Lz22.ff, and EQ1Lz23.ff at Lz=2.1, 2.2, and 2.3. To produce a quadratic extrapolation | + | -contdPdx --continuedPdx continue solution in imposed pressure gradient |
- | to Lz=2.4, you would run | + | -contLx --continueLx continue solution in streamwise width Lx |
+ | -contLz --continueLz continue solution in spanwise width Lz | ||
+ | -contAsp --continueAspect continue solution in aspect ratio Lx/Lz | ||
+ | -contDiag --continueDiagonal continue solution along diagonal in Lx,Lz with const aspect ratio Lx/Lz | ||
+ | -contLtarg --continueLtarget continue solution towards a specified Lx,Lz pair | ||
- | continuefields -dv 2.1 EQ1Lz21 2.2 EQ1Lz22 2.3 EQ1Lz23 2.4 EQ1Lz24 | + | The target //Lx,Lz// for ''-contLtarg'' is specified by these options |
- | The continuefields utility is especially useful for continuation around bifurcations. | + | -Lxtarg --LxTarget <real> default == 6.28319 aim for this value of Lx |
- | For example, you're tracking an equilibrium solution in a D vs Re plot (dissipation vs | + | -Lztarg --LzTarget <real> default == 3.14159 aim for this value of Lz |
- | Reynolds number), and you notice that as Re approaches a fixed value (say Re=220), D | + | |
- | starts to shoot up very rapidly. You suspect that the continuation is approaching a | + | |
- | saddle-node bifurcation and that your solution is on the lower branch, and you want | + | |
- | to "turn the corner" and get the upper branch solution. Suppose you have EQ1Re222, | + | |
- | EQ1Re221, and EQ1Re220. Then run | + | |
- | fieldprops -e EQ1Re222 | + | Two other options related to the continuation type are |
- | fieldprops -e EQ1Re221 | + | |
- | fieldprops -e EQ1Re220 | + | |
- | etc. to get the value of D for each field. Let the values be 2.56, 2.60, and 2.65 | + | -up --upwards continue upwards in parameter (default is downwards) |
- | respectively. Then //to be continued...// | + | -adt --adjustDt adjust dt between continuation steps to keep CFL in bounds |
+ | |||
+ | The ''-up'' option is self-explanatory. The ''-adt'' option is most important when the continuation changes //Lx//, since this will change the //x// gridspacing and consequently the CFL number. It should be safe to use ''-adt'' in other cases, too. |