This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
docs:utils:continuefields [2009/02/26 08:52] 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 ====== | ||
- | -dv --divergence project field onto div-free subspace | + | <code> |
- | -e --epsilon <real> default == 1e-13 don't interpolate Lx,Lz,a,b if |diffs| < eps | + | continuesoln : |
- | mu1 (trailing arg 8) parameter for u1 | + | (ALPHA VERSION!) continue invariant solution of plane Couette flow in Reynolds number |
- | <flowfield> (trailing arg 7) input field u1 | + | |
- | mu2 (trailing arg 6) parameter for u2 | + | |
- | <flowfield> (trailing arg 5) input field u2 | + | |
- | mu3 (trailing arg 4) parameter for u3 | + | |
- | <flowfield> (trailing arg 3) input field u3 | + | |
- | mu (trailing arg 2) parameter for output field | + | |
- | <flowfield> (trailing arg 1) output field | + | |
- | ====== usage ====== | + | |
+ | options : | ||
+ | -r --restart start from three previously computed solutions | ||
+ | -eqb --equilibrium search for equilibrium or relative equilibrium (trav wave) | ||
+ | -orb --periodicorbit search for periodic orbit or relative periodic orbit | ||
+ | -poinc --poincare (relative) periodic orbit search constrained to I-D=0 Poincare section | ||
+ | -xrel --xrelative search over x phase shift for relative orbit or eqb | ||
+ | -zrel --zrelative search over z phase shift for relative orbit or eqb | ||
+ | -contRe --continueRe continue solution in Reynolds number | ||
+ | -contdPdx --continuedPdx continue solution in imposed pressure gradient | ||
+ | -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 with const aspect ratio Lx/Lz | ||
+ | -contLtarg --continueLtarget continue solution towards a target Lx,Lz | ||
+ | -up --upwards for non-restart searches, search in dir of increasing free parameter | ||
+ | -Lxtarg --LxTarget <real> default == 6.28319 aim for this value of Lx | ||
+ | -Lztarg --LzTarget <real> default == 3.14159 aim for this value of Lz | ||
+ | -T --maptime <real> default == 20 initial guess for orbit period or time of eqb/reqb map f^T(u) | ||
+ | -R --Reynolds <real> default == 400 Reynolds number | ||
+ | -dPdx --dPdx <real> default == 0 imposed mean pressure gradient | ||
+ | -s0 --s0 <real> default == 0 start value for arclength (arbitrary) | ||
+ | -ds --ds <real> default == 0.0001 initial arclength increment for quadratic extrapolation | ||
+ | -adt --adjustDt adjust dt between continuation steps to keep CFL in bounds | ||
+ | -dsmin --dsmin <real> default == 1e-08 minimum 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 | ||
+ | -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 | ||
+ | -log --logfile <string> default == findsoln.logoutput log (filename or "stdout") | ||
+ | -dg --digits <int> default == 8 number of digits for ReD.asc | ||
+ | <flowfield> (trailing arg 1) initial guess for Newton search | ||
+ | </code> | ||
+ | ====== Usage ====== | ||
+ | ===== start-up mode ===== | ||
- | Suppose you have an equilibrium velocity field at three different Reynolds numbers | + | 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 |
- | 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 -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. | ||
- | The last two arguments are the desired parameter value and the output filename. Previous | + | Starting from a previous continuation looks like this |
- | arguments are inputs in parameter, flowfield pairs. | + | |
- | The -dv option assures that the output field is divergence-free. This is especially | + | continuesoln -eqb -contRe --restart ../contRe0/search-14 ../contRe0/search-15 ../contRe0/search-16 |
- | 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, | + | |
- | EQ1Lz22.ff, and EQ1Lz23.ff at Lz=2.1, 2.2, and 2.3. To produce a quadratic extrapolation | + | |
- | to Lz=2.4, you would run | + | |
- | continuefields -dv 2.1 EQ1Lz21 2.2 EQ1Lz22 2.3 EQ1Lz23 2.4 EQ1Lz24 | + | 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. |
+ | ===== continuation parameter ===== | ||
- | The continuefields utility is especially useful for continuation around bifurcations. | + | ''continuesoln'' will continue solutions in one of seven parameters: |
- | For example, you're tracking an equilibrium solution in a D vs Re plot (dissipation vs | + | |
- | Reynolds number), and you notice that as Re approaches a fixed value (say Re=220), D | + | -contRe --continueRe continue solution in Reynolds number |
- | starts to shoot up very rapidly. You suspect that the continuation is approaching a | + | -contdPdx --continuedPdx continue solution in imposed pressure gradient |
- | saddle-node bifurcation and that your solution is on the lower branch, and you want | + | -contLx --continueLx continue solution in streamwise width Lx |
- | to "turn the corner" and get the upper branch solution. Suppose you have EQ1Re222, | + | -contLz --continueLz continue solution in spanwise width Lz |
- | EQ1Re221, and EQ1Re220. Then run | + | -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 | ||
- | fieldprops -e EQ1Re222 | + | The target //Lx,Lz// for ''-contLtarg'' is specified by these options |
- | 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 | + | -Lxtarg --LxTarget <real> default == 6.28319 aim for this value of Lx |
- | respectively. Then //to be continued...// | + | -Lztarg --LzTarget <real> default == 3.14159 aim for this value of Lz |
+ | Two other options related to the continuation type are | ||
+ | -up --upwards continue upwards in parameter (default is downwards) | ||
+ | -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. |