This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
docs:utils:continuefields [2009/02/26 08:52] gibson created |
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 ===== | ||
+ | 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 | ||
- | Suppose you have an equilibrium velocity field at three different Reynolds numbers | + | continuesoln -eqb -contRe -R 350 uRe350.h5 |
- | 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 | + | 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. |
- | a quadratic extrapolation to Re=380 by running | + | |
- | continuefields -dv 350 EQ1Re350 360 EQ1Re360 370 EQ1Re370 380 EQ1Re380 | + | Starting from a previous continuation looks like this |
- | The last two arguments are the desired parameter value and the output filename. Previous | + | continuesoln -eqb -contRe --restart ../contRe0/search-14 ../contRe0/search-15 ../contRe0/search-16 |
- | arguments are inputs in parameter, flowfield pairs. | + | |
- | The -dv option assures that the output field is divergence-free. This is especially | + | 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. |
- | useful when the extrapolation changes the cellsize (Lx,Lz). For example, suppose | + | ===== continuation parameter ===== |
- | 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 | + | ''continuesoln'' will continue solutions in one of seven parameters: |
+ | |||
+ | -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 in Lx,Lz with const aspect ratio Lx/Lz | ||
+ | -contLtarg --continueLtarget continue solution towards a specified Lx,Lz pair | ||
- | The continuefields utility is especially useful for continuation around bifurcations. | + | The target //Lx,Lz// for ''-contLtarg'' is specified by these options |
- | 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 | + | |
- | 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 | + | -Lxtarg --LxTarget <real> default == 6.28319 aim for this value of Lx |
- | fieldprops -e EQ1Re221 | + | -Lztarg --LzTarget <real> default == 3.14159 aim for this value of Lz |
- | fieldprops -e EQ1Re220 | + | |
- | + | ||
- | etc. to get the value of D for each field. Let the values be 2.56, 2.60, and 2.65 | + | |
- | respectively. Then ///to be continued// | + | |
+ | 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. |