User Tools

Site Tools


docs:utils:poincare

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== poincare ====== Compute crossings of a Poincare section in a pre-computed trajectory. The Poincare condition is %%(u(t) - ueqb, e) == 0%%, i.e. the displacement from a given point %%ueqb%% is orthogonal to a direction %%e%%. The program checks for changes in sign in the inner product in the stored trajectory (with large %%dT%%, and when it finds one, goes back and reintegrates with small %%dt%%, and then does quadratic interpolation when the fine-scale trajectory recrosses the section. ===== usage ===== <code> poincare -T0 0 -T1 400 -d datadir ueqb.ff e.ff </code> reads a trajectory u0, u1, ..., u400 stored in %%datadir%%, computes the crossings of the Poincare section %%(u(t)-ueqb, e) == 0%%, and saves them in a %%poincare/%% directory. ===== options ===== <code> options : -T0 --T0 <real> default == 0 start time -T1 --T1 <real> default == 100 end time -dT --dT <real> default == 1 save interval -d --datadir <string> default == data/ flowfield series directory -o --poindir <string> default == poincare/ output dir for Poincare crossings -vdt --variabledt adjust dt to keep CFLmin<=CFL<CFLmax -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 -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 -nl --nonlinearity <string> default == rot method of calculating nonlinearity -R --Reynolds <real> default == 400 Reynolds number -c --channel channelflow instead of plane Couette -b --bulkvelocity hold bulk velocity fixed, not pressure gradient -P --dPdx <real> default == 0 value for fixed pressure gradient -U --Ubulk <real> default == 0 value for fixed bulk velocity <flowfield> (trailing arg 2) fixed pt of poincare map <flowfield> (trailing arg 1) e, for poincare condition (u(t)-u*, e) = 0 </code> ===== Usage example ===== Here is the basic idea of usage. Suppose you have an equilibrium ueqb with an unstable complex eigenvalue pair whose eigenfunctions are ef1 and ef2. Integrate a trajectory with initial condition %%u(0) = ueqb + 0.001 ef1%% as follows <code> addfields 1 ueqb 0.001 ef1 ueqb_001ef1 couette -T0 0 -T1 1000 -o data-ueqb_0001ef1 ueqb_001ef1 </code> Then you can define a Poincare section as, say, %%(u-ueqb, ef2) = 0%%, that is, the displacement from the equilibrium is orthogonal to the ef2 eigenfunction. To compute crossings of the Poincare section within the previously integrated trajectory, run <code> poincare -T0 0 -T1 1000 -d data-ueqb_0001ef1 ueqb ef2 </code> ===== Hiccups ===== :-) Hey John, I was wondering if there was any particular reason you put the cfpause() line in your code other than it was helpful in writing the code. --- //[[dustin.spieker@gatech.edu|Dustin Spieker]] 2009-03-02 10:24//

docs/utils/poincare.1236021232.txt.gz · Last modified: 2009/03/02 11:13 by dspieker