$Author: gibson $ $Date: 2009-06-11 16:31:21 -0400 (Thu, 11 Jun 2009) $ ------------------------------------------------------------------------ Channelflow-1.4.1, Thu Jun 11 16:30:59 EDT 2009 Bugfix release. Fixed bug that prevented compilation in absence of HDF5 libs. More thorough replacement of FlowField::binarySave calls with FlowField::save Figured out proper use of autoconf's config/config.guess and config/config.sub ------------------------------------------------------------------------ Channelflow-1.4.0, Sun Jun 7 21:06:46 EDT 2009 Added HKDF5 IO for FlowFields. Thanks to Milos Ilak for this code. FlowFields now do binary IO to HDF5 files by default. Home-grown binary .ff IO is still there if you want it or don't have HDF5. fieldconvert utility converts between .ff and .h5 based on file extension DNS can now do periodic projection onto invariant symmetric subspaces. Most utilities can use this functionality, have option to read generators of isotropy group from file Added FlowField::project operators, more efficient than (u += P(u)) *= 0.5; Changed notation of overall sign in FieldSymmetry. Was su(), is now s(). Fixed bug in programs-devel/Makefile for making profiling executables Changed pow(int, int) to intpow(int, int), was causing casting errors on pow(Real, int) Removed Real pow(Real, int), pow(Real, Real); these are in std lib now. Removed FlowField::translate,relfect,rotate,shiftReflect,shiftRotate. Use FieldSymm. Changed formatting of some RealProfileNG functionsa to chflow style. Changed "dealiased" top "padded" in several FlowField function and variable names continuesoln continues in Lx,Lz, and Re changegrid allows changing bounds in y in [a,b] flowfield interp/extrapolation doesn't operate on cell size if diffs are < eps. continuesoln.cpp zeros BCs and divergence of quadratic extrap. guess Lowered verbosity level of f^t(u) and G(u,t,sigma) diagnostics continuesoln.cpp: option for s1s2-symmetrization of solutions, more diags. ------------------------------------------------------------------------ Channeflow-1.3.5, Tue Mar 24 12:07:00 EDT 2009 Very minor changes, released as new tarball so Georgia Tech study group can use my latest research codes Initial implementation of continuesoln.cpp. It ain't AUTO but it does the job. Moved bulk of GMRESHookstep algorithm from top-level program programs-octave/findorbit.cpp to to library function GMREShookstep(...) so that it can be called from multiple top-level programs (findsoln.cpp, continuesoln.cpp). Added GMRESHookstepFlags class to encapsulate the thirtyish search flags and provide them with default values. Made search logging switchable between standard out and per-search logfiles. Added linear and quadratic interpolation by Neville algorithm for Reals in utilfuncs.cpp and FlowFields in flowfield.cpp Changed dealiasing default of DNS to DealiasXZ. Added explanatory comments to FieldSymmetry ASCII format. ------------------------------------------------------------------------ Channelflow-1.3.4, Thu Feb 26 10:29:29 EST 2009 Added larger symmetry group to eigentable.cpp (determines symmetries of eigenfunctions) Changed poincare.cpp to search over stored integration data rather than integrating. Fixed bug in couette.cpp in code that tests whether storage times have integer values. Changed continuefields.cpp so it doesn't do interpolation in cellsize if changes are <1e-13 Added flags for channel flow in seriesprop.cpp Added poincare.cpp to configure scripts Whitespace chages in mathdefs.h,cpp. Added linear and quadratic interpolation via Neville algorithm to utilfuncs.h Used in poincare.cpp and continuefields.cpp Added quadratic interpolation on FlowFields to diffops.h,cpp. r271 | gibson | 2009-02-18 10:12:23 -0500 (Wed, 18 Feb 2009) | 8 lines Added continuefields.cpp, quadratic continuation of fields. Added poincare.cpp, computation of poincare sections. Some changes to configure.ac in effort to find and load HDF5 libs. Cosmetic changes to projectseries.cpp, symmetryop.cpp Some changes happened in config/* that I don't understand. Autoconf...sigh... Revisions of findorbit.cpp comments to help Randon Mitchell r270 | gibson | 2009-02-13 19:27:51 -0500 (Fri, 13 Feb 2009) | 5 lines Streamlined notation in findorbit.cpp: x = set of free variables. Some configure.ac changes; smarter way to test and add FFTW3 libraries Added field2hdf5; will soon add HDF5 IO to FlowField class. Added timestamp to ArgList::save function r269 | gibson | 2009-01-19 16:02:39 -0500 (Mon, 19 Jan 2009) | 4 lines Ressurected eigentable.cpp from obsolete. Some testing changes to Makefile.am Tweaks to matlab scripts ------------------------------------------------------------------------ Channelflow-1.3.3, Tue Dec 2 10:29:29 EST 2008 r268 | gibson | 2008-12-02 10:32:22 -0500 (Tue, 02 Dec 2008) | 5 lines Corrected missing matlab/ and doc/ directories in tarball. Added .pdfs for pdflatex production of User Guide Updated a few program/ include statements, utilities.h -> utilfuncs.h r267 | gibson | 2008-11-14 23:20:28 -0500 (Fri, 14 Nov 2008) | 2 lines Testing new svn installation on zero r266 empty r265 | gibson | 2008-10-11 19:21:48 -0400 (Sat, 11 Oct 2008) | 3 lines Committing recent tweaks in order to start branch for testing reordering of FlowField data. r264 | gibson | 2008-10-06 10:18:17 -0400 (Mon, 06 Oct 2008) | 10 lines Initiated programs-devel directory for programs under development. findhec.cpp is working heteroclinic-connection algorithm for searches from (N-d pertubations within out-eqb unstable tangent space, integration time) to (orthogonal projection onto N-d unstable tangent space, orthogonal distance to N-d unstable tangent space). Not yet suitable for public use. Currently adding to that code caching of previously computed f^t(u) Added most of matlab/*.m to Makefile.am EXTRA_DIST to get it into the tarball forcesymmetry.cpp is projects a set of eigenfunctions onto closest s1,s2 symmetric/antisymmetric subspaces. Not suitable for public use. r263 | gibson | 2008-10-03 17:23:49 -0400 (Fri, 03 Oct 2008) | 2 lines ------------------------------------------------------------------------ Channelflow-1.3.2, Fri Oct 03 13:33:42 EDT 2008 r262 | gibson | 2008-10-03 13:57:39 -0400 (Fri, 03 Oct 2008) | 4 lines Wrote extensive doc/TUTORIAL, increased hand-holding in examples/README More channelflow.spec modifications to help compilation on SUSE build farm. r261 | gibson | 2008-10-01 12:56:47 -0400 (Wed, 01 Oct 2008) | 4 lines Channelflow-1.3.2, Wed Oct 1 12:53:27 EDT 2008 Build improvements only. Reorganized and simplified subdirectories. r260 | gibson | 2008-10-01 12:49:00 -0400 (Wed, 01 Oct 2008) Brought examples/Makefile up to date with new build structure, will need to implement chflow-config script to make it robust to installation choices. Added channelflow.spec file to SVN (config file for RPM building) r259 | gibson | 2008-10-01 11:50:52 -0400 (Wed, 01 Oct 2008) | 3 lines Reorganizing subdirectories to consolidate obsolete things in obsolete/ and to move PCF-utils/matlab to matlab/. r258 | gibson | 2008-10-01 11:40:43 -0400 (Wed, 01 Oct 2008) | 2 lines need to commit this file in order to reorganize subdirectories ------------------------------------------------------------------------ Channelflow-1.3.1, Fri Sep 26 13:02:14 EDT 2008 r257 | gibson | 2008-09-26 13:11:37 -0400 (Fri, 26 Sep 2008) | 10 lines Finally got autotools to detect Octave, configure properly, and conditionally build Octave-dependent programs. arnoldi and findorbit executables are now built automatically when possible and are included in RPM with Octave libs statically linked Added explanatory output strings to examples/*.cpp and a warning in examples/README that examples are not production codes. utilities.{h,cpp} removed from programs/ subdir and placed in channelflow/ library within utifuncs.{h,cpp}, so it can be used from programs-octave ------------------------------------------------------------------------- Channelflow-1.3.0, Thu Sep 25 23:14:39 EDT 2008 r256 | gibson | 2008-09-25 23:00:00 Rearrangement of channelflow directory structure and build system to enable "./configure; make; make install" and simplify building of RPM packages. ------------------------------------------------------------------------- Channelflow-1.2.3, Mon Sep 15 15:07:39 EDT 2008 r252 | gibson | 2008-09-15 15:26:00 r252 | gibson | 2008-09-15 14:52:42 -0400 (Mon, 15 Sep 2008) | 2 lines Added #include to mathdefs.h, to keep up with evolving gcc. r251 | gibson | 2008-09-04 11:48:51 -0400 (Thu, 04 Sep 2008) | 2 lines A few auxiliary scripts for plotting M x N copies of periodic cells r250 | gibson | 2008-09-04 11:31:38 -0400 (Thu, 04 Sep 2008) | 6 lines Plotbox and friends now do multiple copies of periodized boxes. Extracted hookstep algorithm from findorbit.cpp and implemented as function to find zeros of Vector -> Vector functions Moved chainlink to gui-chainlink to facilitate bash autocompletion Many whitespace differences due to new xemacs auto trailing whitespace deletion r249 | gibson | 2008-07-25 14:09:07 -0400 (Fri, 25 Jul 2008) | 9 lines A few changes to enable compilation under gcc-4.3: Include for a few low-level string functions like strdup, memcpy Add parentheses to several complex combinations of boolean ops &&, ||, and ^. Changed compilation of PCF-utils executables to use static chflow libs. Not sure why this didn't work properly w openSUSE-11.0 and gcc-4.3. Amazingly, PCF-utils compiled with Octave 3.0 with no modifications. Nice job, team Octave. r248 | gibson | 2008-07-25 12:49:03 -0400 (Fri, 25 Jul 2008) | 1 line utility for converting divakar's ascii files to channelflow flowfields r247 | gibson | 2008-07-25 11:18:21 -0400 (Fri, 25 Jul 2008) | 1 line some tweaks of matlab scripts, commit mostly for laptop/desktop synch r246 | jhalcrow | 2008-05-26 07:41:08 -0400 (Mon, 26 May 2008) | 2 lines Use 1d search algorithm r245 | jhalcrow | 2008-05-23 16:22:09 -0400 (Fri, 23 May 2008) | 2 lines Minor r244 | jhalcrow | 2008-05-23 16:20:17 -0400 (Fri, 23 May 2008) | 3 lines Start of hec finding code, less overkill than the old petsc one -- hopefully will be faster r243 | jhalcrow | 2008-04-29 18:43:38 -0400 (Tue, 29 Apr 2008) | 7 lines Ability to access / modify FlowField grid point values (rdata/cdata) in python Include ChebyCoeff, mathdefs, vector in python interface Fix some problems with shared library in builds Add convenience function to extract the `roll' part of a Flowfield to diffops Where `roll', means the streamwise averaged (v,w) components r242 | jhalcrow | 2008-04-28 14:48:06 -0400 (Mon, 28 Apr 2008) | 3 lines Fix problem caused by creation of shared version of channelflow library, `unable to find libchflow.so...' r241 | jhalcrow | 2008-04-23 17:14:56 -0400 (Wed, 23 Apr 2008) | 2 lines Add fieldsymmetry support to python interface ------------------------------------------------------------------------- Channelflow-1.2.2, Mon Apr 21 11:03:00 EDT 2008 r240 | gibson | 2008-04-21 12:28:58 -0400 (Mon, 21 Apr 2008) | 2 lines updated version number r239 | gibson | 2008-04-21 11:25:53 -0400 (Mon, 21 Apr 2008) | 6 lines Checking in several recent changes for distribution to people in Bangalore. Reordered several loops for improved efficiency in curl, cross, ydiff. Also added inverse of diagonal in bandedtriag to avoid repeated division and expanded a few loops with diff behavior on 0,1 offest and stride Gets about 10% speedup in couette.cpp. r238 | gibson | 2008-04-04 09:02:13 -0400 (Fri, 04 Apr 2008) | 7 lines findorbit.cpp: Greatly improved trust-region update heuristics Put in -orb and -eqb flags that determine kind of solution sought (old way was to achieve this by specifiyign lower-level details, let T vary, etc.) Replaced a number of calls to abort() with exit(1), in anticipation of enabling exceptions. A collection of small improvements in other PCF-utils accumulated over last few weeks. r237 | jhalcrow | 2008-04-02 15:12:20 -0400 (Wed, 02 Apr 2008) | 6 lines Update dependances on channelflow/libchflow.a to channelflow/.libs/libchflow.a Change was introduced by libtoolization Also .x builds link to shared lib rather than static If you think the performance hit is too great I can switch it back r236 | jhalcrow | 2008-03-21 14:49:48 -0400 (Fri, 21 Mar 2008) | 2 lines Mea Culpa: Adding files that are now required because of libtoolization r235 | jhalcrow | 2008-03-20 17:17:48 -0400 (Thu, 20 Mar 2008) | 4 lines Python support for DNS, reimplemented couette.x in python for fun r234 | jhalcrow | 2008-03-20 11:27:00 -0400 (Thu, 20 Mar 2008) | 2 lines No longer necessary r233 | jhalcrow | 2008-03-20 11:26:43 -0400 (Thu, 20 Mar 2008) | 3 lines Libtoolize channelflow so that shared library will be built, for use by python Add example script r232 | jhalcrow | 2008-03-19 18:17:52 -0400 (Wed, 19 Mar 2008) | 8 lines I finally broke down and wrote a rudimentary python wrapper. It turns out to be fairly easy to do actually. Current version is very rudimentary. Only wrapping diffops and flowfield. The changes to the headers are commenting out declaration of functions which arent implemented since this causes python to choke. r231 | gibson | 2008-03-11 03:01:43 -0400 (Tue, 11 Mar 2008) | 2 lines Fixed corner-case bug heuristics: Accurate is subset of Good. r230 | jhalcrow | 2008-02-28 16:37:26 -0500 (Thu, 28 Feb 2008) | 3 lines Set octave libdir rpath since Ubuntu doesnt include it in the default path for some weird reason r229 | jhalcrow | 2008-02-27 16:41:08 -0500 (Wed, 27 Feb 2008) | 2 lines Utilities for plotting torus of translation r228 | gibson | 2008-02-26 04:42:56 -0500 (Tue, 26 Feb 2008) | 3 lines Fixed a bug in heuristics that allowed trust region to increase for Good steps, even if Newton step was inside trust region. r227 | gibson | 2008-02-23 01:54:13 -0500 (Sat, 23 Feb 2008) | 2 lines One more thing... r226 | gibson | 2008-02-23 01:53:38 -0500 (Sat, 23 Feb 2008) | 2 lines A number of small enhancements of PCF-utils for projections and basis constr. r225 | jhalcrow | 2008-02-06 09:47:23 -0500 (Wed, 06 Feb 2008) | 4 lines Code to switch bifurcation branches bug fix in symmetrize.cpp, was returning shift relative to guess shift rather than input state various tweaks to petsc codes r224 | gibson | 2008-02-03 04:59:13 -0500 (Sun, 03 Feb 2008) | 8 lines Removed some old commented-out code from dns.cpp Updated comments in diffops.h Reduced the increase and decrease rates for trust-region radius heuristics, => less jumpiness in trust region radius, more hookstep trials per Newton step Modified frame-saving approach in makemovie.m to eliminate weird smears. Automatically determine plot label from flowfield filename in fieldplots.cpp Lotsa small convenience enhancements like last one r223 | jhalcrow | 2008-01-30 14:16:19 -0500 (Wed, 30 Jan 2008) | 3 lines Include limits.h instead of obsolete values.h was causing portability issues r222 | jhalcrow | 2007-12-03 18:06:01 -0500 (Mon, 03 Dec 2007) | 3 lines Remove semicolon of death, causing an infinite loop if dt > dtmax in dt.adjust() r221 | jhalcrow | 2007-11-05 16:27:50 -0500 (Mon, 05 Nov 2007) | 2 lines Correct waviness calculations ------------------------------------------------------------------------- Channelflow-1.2.1, Thu Nov 1 00:07:18 EDT 2007 r220 | gibson | 2007-11-01 01:03:32 -0400 (Thu, 01 Nov 2007) | 5 lines Added "pcf-utils-no-octave" target to top-level Makefile, for people for whom Octave is a stumbling block. Added discussion of above target to INSTALL file. r219 | gibson | 2007-11-01 00:19:58 -0400 (Thu, 01 Nov 2007) | 2 lines Previous commit was accidently from PCF-utils dir. r218 | gibson | 2007-11-01 00:19:03 -0400 (Thu, 01 Nov 2007) | 8 lines Effort to simplify installation from tarballs. Wrote PCF-utils/Makefile.no-octave Consolidated important matlab scripts to PCF-utils/matlab Removed obsolete matlab scripts In PCF-utils/*.cpp, put #ifdef HAVE_OCTAVE #endif around #include when that header is used solely for reconciling Octave and stdc++ Complex type. Reconciled lists of PCF-utils/*.cpp in Makefile.am and PCF-utils/Makefile r217 | jhalcrow | 2007-10-30 17:15:08 -0400 (Tue, 30 Oct 2007) | 3 lines Code for converting Viswanath data to ff Tools for making bifurcation diagrams r216 | gibson | 2007-10-26 14:18:02 -0400 (Fri, 26 Oct 2007) | 4 lines Bugfix for centered differencing option in arnoldi.cpp. Added I,D,E output for movieframes.cpp IO tweaks in verifyeigs.cpp r215 | gibson | 2007-10-22 13:44:08 -0400 (Mon, 22 Oct 2007) | 5 lines Accumulated tweaks over last few weeks. Main effort is to revise TimeStep to adjust dt keeping either or both of dT and T constant, and to regularize usage in PCF-utils. Brought on by need to vary T in findorbit.cpp, arnoldi.cpp, and verifyeigs.cpp. r214 | gibson | 2007-10-10 16:46:26 -0400 (Wed, 10 Oct 2007) | 1 line replaced findorbit.cpp and arnoldi.cpp with most recent versions r213 | gibson | 2007-10-10 16:45:04 -0400 (Wed, 10 Oct 2007) | 3 lines Improved attributions to Divakar's paper in findorbit.cpp and arnoldi.cpp comments. r212 | jhalcrow | 2007-10-09 23:51:10 -0400 (Tue, 09 Oct 2007) | 3 lines Fix typo in long args --Nx was used for Nx Ny and Nz r211 | gibson | 2007-10-09 13:23:21 -0400 (Tue, 09 Oct 2007) | 1 line channelflow-1.2.0 r210 | gibson | 2007-10-09 13:10:20 -0400 (Tue, 09 Oct 2007) | 4 lines Updated ChangeLog for 1.20 release Added a few PCF-utils to Makefile.am Tested tarball. ------------------------------------------------------------------------- Channelflow-1.2.0, Tue Oct 9 13:20:23 EDT 2007 r209 | gibson | 2007-10-06 23:31:20 -0400 (Sat, 06 Oct 2007) | 2 lines Added utility for checking a field for equality against a given set of fields r208 | gibson | 2007-10-05 18:10:31 -0400 (Fri, 05 Oct 2007) | 9 lines Added relative PO and EQB capability to findorbit.cpp. Changed fx,fz -> ax,az in FieldSymmetry. Notation clash with f^t(u) was too great. Changed fx,fz -> ax,az in PCF-utils/*.cpp Changed canonical phase shift fraction in FieldSymmetry from [0,1) to [-0.5, 0.5). More sensible for perturbations. Removed orthographic perspective from 3D velocity field functions. It triggers bugs in #3D-transformed countourf, which is used for plotting in u color. r207 | gibson | 2007-10-05 11:53:04 -0400 (Fri, 05 Oct 2007) | 1 line workaround for matlab plot bug, added perspective and credits r206 | jhalcrow | 2007-10-03 15:05:28 -0400 (Wed, 03 Oct 2007) | 4 lines Code to convert data from wally's web page to flowfields testing indicates some error comparing rms(u) to the stats, not sure why output has relatively small l2norm(du/dt) r205 | jhalcrow | 2007-09-28 17:18:57 -0400 (Fri, 28 Sep 2007) | 2 lines Revert last change (was addition of debug print, didn't mean to commit) r204 | jhalcrow | 2007-09-28 17:14:56 -0400 (Fri, 28 Sep 2007) | 2 lines Petsc code to isolate a heteroclinic orbit r203 | gibson | 2007-09-24 21:34:30 -0400 (Mon, 24 Sep 2007) | 1 line Fixed up eigentable.cpp to handle flows as well as maps r202 | gibson | 2007-09-23 23:03:33 -0400 (Sun, 23 Sep 2007) | 5 lines Added translation-symmetry checks to fieldprops.cpp Added symmetry epsilon option to eigentable Fixed null-op braino in utilities.cpp pwd() function Condensed outpout and improved error-checking in findorbit (for non-conv GMRES) r201 | gibson | 2007-09-14 09:08:23 -0400 (Fri, 14 Sep 2007) | 1 line Enabled calculations with symmetric orbits in Arnoldi e.g. u* = tau_x f^T(u*) r200 | gibson | 2007-09-13 12:45:23 -0400 (Thu, 13 Sep 2007) | 1 line Corrected column labels in convergence.asc r199 | gibson | 2007-09-13 12:30:18 -0400 (Thu, 13 Sep 2007) | 1 line Bugfix in changegrid.cpp r198 | gibson | 2007-09-13 12:25:37 -0400 (Thu, 13 Sep 2007) | 3 lines Added echo of command-line args to findorbit.cpp output, helps w PACE queue Tweaked 3D box view. r197 | gibson | 2007-09-11 10:24:48 -0400 (Tue, 11 Sep 2007) | 3 lines Regularization of lx,lz/alpha,gamma and Reynolds params in PCF-utils Tweaks on 3D box plot for movie-making. r196 | gibson | 2007-09-09 10:31:56 -0400 (Sun, 09 Sep 2007) | 4 lines Changed FlowField::rescale to leave field's L2Norm unchanged Added Lx,Lz alteration to changegrid.cpp (will rename to changegeom.cpp) Itty bitty bugfix in findorbit.cpp. r195 | gibson | 2007-09-08 22:43:39 -0400 (Sat, 08 Sep 2007) | 2 lines Added options for changing alpha, gamma or lx,lz to changegrid.cpp. r194 | gibson | 2007-09-07 23:33:30 -0400 (Fri, 07 Sep 2007) | 1 line Driver function for single-frame 3D box plot r193 | gibson | 2007-09-07 23:27:50 -0400 (Fri, 07 Sep 2007) | 2 lines Plot function for single frame of 3D box movie. r192 | gibson | 2007-09-07 23:13:57 -0400 (Fri, 07 Sep 2007) | 6 lines Incorp RealProfileNG and symmetry restrictions in findorbit.cpp and arnoldi.cpp Fixed bug in FlowField::rescale Changed values of NormType enum to Uniform and Chebyshev Option regularization for makestokesmode.cpp Matlab-help comments for makeavi2.m r191 | jhalcrow | 2007-09-07 11:45:22 -0400 (Fri, 07 Sep 2007) | 2 lines Fix rescaling by T when flow is selected r190 | gibson | 2007-09-06 22:18:53 -0400 (Thu, 06 Sep 2007) | 3 lines Changed doublebox.cpp to more general mutlibox.cpp: takes Lx,Lz to M*Lx, N*Lz Minor tweaks to matlab scripts (setting opengl renderer is important). r189 | gibson | 2007-09-06 10:36:59 -0400 (Thu, 06 Sep 2007) | 3 lines Fixed dumb error introduced while fixing another. (correctly changed a call of G(u,T,...) to f(u,T,...) but didn't adjust function signatures). r188 | gibson | 2007-09-04 23:48:39 -0400 (Tue, 04 Sep 2007) | 6 lines Fixed typo in FlowField(string filename) erorr message. Added several handy PCF-utils. Some inconsequential tidying in findorbit.cpp and a few lines prep for finer resolution in trust-region adjustment algorithm. Poorly-named makeavi2.m for 3D plane Couette movies. r187 | jhalcrow | 2007-08-30 12:57:41 -0400 (Thu, 30 Aug 2007) | 2 lines Make generalized search for invariants r186 | gibson | 2007-08-30 12:11:27 -0400 (Thu, 30 Aug 2007) | 2 lines Added diveregence fix when reducing Ny. r185 | gibson | 2007-08-29 13:06:59 -0400 (Wed, 29 Aug 2007) | 2 lines Added ioTest.cpp r184 | gibson | 2007-08-29 13:02:50 -0400 (Wed, 29 Aug 2007) | 10 lines Modified and consolidated ifstream (file IO) opening in response to IO problems on PACE cluster. (For some reason, PACE C++ IO libs behave differently than others seen so far: ifstream "is" needs is.clear() between is.open("foo") and is.open("foo.asc"), or is.good() will fail even if the second open works. Yikes! ) Formatting changes in findorbit.cpp Added abs(lambda) and arg(Lambda) output to arnoldi.cpp Added chebyText.cpp and ioTest.cpp to test set. r183 | jhalcrow | 2007-08-28 16:23:56 -0400 (Tue, 28 Aug 2007) | 10 lines Refactor petsc-newton, now has 1 function to call to find eqba, reqba, po, and rpos No hard results for anything but eqba so far though New utility perturbfield -- a perturbation of randomfield that adds a random perturbation to a given field Wrote to get around problems with creating a random field in Divakar's HKW box, which appears to use gamma=5/3 rather than 1.6667 r182 | gibson | 2007-08-28 13:51:10 -0400 (Tue, 28 Aug 2007) | 6 lines Added L2Norm functions for ComplexColumnVector in PCF-utils/utilities.{h,cpp} Bugfix in projectseries.cpp in setting Ny. Bugfix in findorbit.cpp: comparison btwn current and backup step was broken Modified arnoldi.cpp to work better with maps and not get confused by negative real eigenvalues. r181 | gibson | 2007-08-26 16:12:49 -0400 (Sun, 26 Aug 2007) | 2 lines Removed FlowField::chebyfft and ichebyfft. makeSpectral, makePhysical suffice r180 | jhalcrow | 2007-08-24 18:21:21 -0400 (Fri, 24 Aug 2007) | 2 lines Indentation fixes r179 | jhalcrow | 2007-08-24 17:48:23 -0400 (Fri, 24 Aug 2007) | 3 lines Tweak Makefile for PACE Add alpha RPO search (technically only a PO search right now) r178 | gibson | 2007-08-24 17:09:51 -0400 (Fri, 24 Aug 2007) | 2 lines Better formatting of diagnostic IO. r177 | gibson | 2007-08-24 14:44:36 -0400 (Fri, 24 Aug 2007) | 5 lines Some efficiency improvements based on profiling data (low-hanging fruit). Removed a couple FlowField copies in MultiStep::advance Removed a FlowField::setToZero() in cross(FlowField, FlowField) Gives 20% speedup on examples/couette.cpp (85 s -> 69 s on Athlon X2 4200+) r176 | jhalcrow | 2007-08-24 13:14:14 -0400 (Fri, 24 Aug 2007) | 2 lines Make all script customized for pace16 / 17 r175 | gibson | 2007-08-23 12:48:47 -0400 (Thu, 23 Aug 2007) | 8 lines Fixed schism btwn Makefile.am EXTRA_DIST and PCF-utils/Makefile EXECS Fixed bug in PCF-utils/Makefile resulting from absence of Octave Fixed bug in PCF-utils/findorbit.cpp hookstep trust-region adjustment. (backup_* data was saved, but have_backup flag was never turned on) Fixed IO filename schism btwn examples/couette.cpp and examples/couette2.cpp Added PACE to TIMING Thanks to Lina Kim for bug reports. r174 | jhalcrow | 2007-08-22 09:17:29 -0400 (Wed, 22 Aug 2007) | 3 lines Defenestrate petsc-utils references, merged with petsc-newton and forgot to remove refs r173 | gibson | 2007-08-22 08:52:41 -0400 (Wed, 22 Aug 2007) | 2 lines Updated Changelog r172 | gibson | 2007-08-22 08:43:49 -0400 (Wed, 22 Aug 2007) | 2 lines Took out dt.adjust verbosity and remembered dt between calls to f^t(u). r171 | gibson | 2007-08-21 19:50:19 -0400 (Tue, 21 Aug 2007) | 13 lines Added bool meanflow option to FlowField perturbation functions. Limited FlowField perturbations to dealiased modes for dealiased fields. Fixed bug in FieldSymmetry * FieldSymmetry operator (produced wrong z phase). Tried to regularized symmetry options of some PCF-utils. Incomplete. Replaced ad-hoc symmetry measurements with |P^+_i(u)|^2/|u|^2 in PCF-utils. Added random-seed option to PCF-utils/randomfield.cpp. Added fieldproject.cpp to decompose field into symm/antisymm components. Wrote makeavi.m matlab script for producing AVI animations. Improvement over makemovie.m script (which uses 3rdparty mpgwrite MEX file to produce MPEGS) since matlab's AVI code is reliable and more tunable. Can produce MPEGS from AVI using 'mencoder' under Linux, and these are more tunable and higher quality than the Mmpgwrite MPEGS. ------------------------------------------------------------------------- Channelflow-1.1.3, Wed Aug 22 08:47:48 EDT 2007 r170 | jhalcrow | 2007-08-21 11:27:05 -0400 (Tue, 21 Aug 2007) | 2 lines Working towards rpo, reqba newton codes r169 | jhalcrow | 2007-08-21 11:26:51 -0400 (Tue, 21 Aug 2007) | 2 lines Tweaks for petsc stuff, fix octave config stuff to use OCT*DIR instead of *DIR/OCTVERSION r168 | gibson | 2007-08-11 15:47:26 -0400 (Sat, 11 Aug 2007) | 2 lines Added and renamed some PCF-utils r167 | gibson | 2007-08-11 15:11:01 -0400 (Sat, 11 Aug 2007) | 10 lines Checking in changes made over last month. Major changes limited to findOrbit.cpp (search for POs w newton-GMRES-hookstep) revamped trust-region update algorithm (had misunderstood what Dennis & Schnabel meant by "quadratic model of residual", thus implementation was incorrect). Heuristic update algorithm is complex, to be sure. This findOrbit.cpp can find one of Divakar's POs from a perturbed initial guess Factored a multiplication out of for-loop in chebyshev L2Norm2 function. Switched TimeStep::adjust(CFL) to write to std out instead of std err. r166 | gibson | 2007-07-24 13:36:13 -0400 (Tue, 24 Jul 2007) | 13 lines Fixed a few memory leaks found with valgrind. One was causing long-running searches with many DNS objects and integrations to balloon (100MB -> 2 GB after a few hundred Newton-GMRES integrations). Details: Put #ifdefs around fftw_malloc calls in vector.cpp. Assigned many pointers to 0 after deleting them. Fixed delete/delete[] bug in bandedtridiag.cpp and lowercase func in dns.cpp Added fftw_cleanup() to end of findOrbit.cpp to help valgrind. Also: Fixed off-by-one error in Teqn in testhookstep.cpp Fixed typo in vector2field dimension-check assertion Fixed reconciliation of Ubase and flags.ubase in DNS::reset_dt(dt) r165 | gibson | 2007-07-23 15:59:31 -0400 (Mon, 23 Jul 2007) | 10 lines Incremental channelflow changes in service of hookstep periodic-orbit solver. All small, but most significant are... Modified TimeStep adjustment algorithm to move CFL midway btwn CFLmin, CLFmax. Added enumerated baseflow member to DNSFlags. No more need to construct Ubase. Modified some test programs to match baseflow changes. Changed GMRES to handle zero-eig breakdown more gracefully. Inital working version of findOrbit.cpp hookstep algorithm for periodic orbits. r164 | jhalcrow | 2007-07-20 14:00:58 -0400 (Fri, 20 Jul 2007) | 3 lines New version of realprofile, called realprofileng, which really uses real-valued functions. (Wow thats really real) r161 | gibson | 2007-06-24 00:12:06 -0400 (Sun, 24 Jun 2007) | 4 lines Working hookstep search. Success in finding NB from same starting point as newton.cpp. r160 | gibson | 2007-06-22 01:23:49 -0400 (Fri, 22 Jun 2007) | 3 lines Initial commit of Newton-GMRES-hookstep algorithm for computing equilibria. Will add reqb, po, rpo capability tout de suite. r159 | jhalcrow | 2007-06-12 14:50:40 -0400 (Tue, 12 Jun 2007) | 2 lines Some of my STLification was lost while doing a merge r158 | jhalcrow | 2007-06-12 14:17:40 -0400 (Tue, 12 Jun 2007) | 1 line You are Healed by the Power of STL! r157 | jhalcrow | 2007-06-07 17:39:20 -0400 (Thu, 07 Jun 2007) | 2 lines Take a basis as an argument for doing eqba searches r156 | gibson | 2007-06-07 14:09:35 -0400 (Thu, 07 Jun 2007) | 11 lines Added basis-free field2vector and vector2field functions in PCF-utils/utilities Added ChebyCoeff:slope_a(), slope_b() and same for ComplexChebyCoeff Moved random[UV]Profile function decls to diffops.h. Funcs are in diffops.cpp Removed a bunch of commented-out basis-set construction code in basisfunc.cpp Iterated Dirichlet-BC enforcement in Chebyshev::randomize for accuracy Changed ChebyCoeff evaluation funcds for N=0 to return 0 instead of NAN. Added makeheatmode.cpp to PCF-utils. Modified a few PCF-util programs to take --alpha,--gamma or --lx,--lz Modified PCF-utils Makefile to reduce unneeded rebuilds of *.x r155 | jhalcrow | 2007-06-07 12:09:27 -0400 (Thu, 07 Jun 2007) | 3 lines Allow symmetry operations on basis elements w / a sanity check Various chainlink lib improvements r154 | jhalcrow | 2007-06-06 08:09:28 -0400 (Wed, 06 Jun 2007) | 3 lines Function to programmatically extract a slice of a flowfield, useful for doing stuff like chainlink r153 | jhalcrow | 2007-06-06 08:07:38 -0400 (Wed, 06 Jun 2007) | 2 lines Trying to refactor petsc code to make it more reusable Added basis-free field2vector and vector2field functions in PCF-utils/utilities Added ChebyCoeff:slope_a(), slope_b() and same for ComplexChebyCoeff Moved random[UV]Profile function decls to diffops.h. Funcs are in diffops.cpp Removed a bunch of commented-out basis-set construction code in basisfunc.cpp Iterated Dirichlet-BC enforcement in Chebyshev::randomize for accuracy Changed ChebyCoeff evaluation funcds for N=0 to return 0 instead of NAN. Added makeheatmode.cpp to PCF-utils. Modified a few PCF-util programs to take --alpha,--gamma or --lx,--lz Modified PCF-utils Makefile to reduce unneeded rebuilds of *.x ------------------------------------------------------------------------- Channelflow-1.1.2, Fri Jun 1 13:03:58 EDT 2007 Fixed a couple bugs in the tarfile distribution (Makefile.am EXTRA_DIST values) Moved Orr-Somm data to data/ Added PCF-utils to tarball distributions. Added factor of 1/2 to energy calculations in PCF-utils Bugfix to produce complete list of arguments when a required arg is missing. Some fixes to PCF-utils make system. Still doesn't install in $(prefix)/bin. Added sign-change to group represented by FieldSymmetries. Fixed long-standing bug in TauSolver that caused large divergence for b-a != 2. Fixed bug in randomVprofile with same effect. Added optional fontsize args to matlab scripts xlbl, ylbl, ttl, and bigfont. Made TauSolver tests more stringent: randomize kx,kz, a,b, lowered max err, check divergence. Changed hard-coded CHANNELDIR in examples/Makefile to ../ Some optional changes in PCF-utils. Added initial guess options for phases in PCF-utils/symmetrize.cpp. Unsuccessful attempts to get autoconf to find Octave. Remnants left in .ac file Crude "make all" target in PCF-utils/Makefile. This should be easy! Consolidated GMRES iteration algorithm in class, altered newton.cpp to match. Consolidated Arnoldi functionality to a class, altred arnoldi.cpp to match. Added findsymmetries.cpp to PCF-utils. Wrote some time ago. Fixed bug in ArgList that prevented negative real args from being read. D'op! Removed deprecated array args code. Added PCF-utils/matlab dir with special PCF scripts I've been using. More mucking about in DNS classes, reorg of navierstokesNL function signatures. Linearization about field now works. Costs roughly 2.5*Rotational, 2*Convection Added string-to-enum functions for DNSFlag enums. Still a bit messy but works, so checking in. In some future off-hours, will convert the enum/switch-based nonlinearity calculations with a class, for future maintainability. Fairly significant mucking about in DNS classes Implemented linearization about general FlowField ubase. Reorganized function signatures of navierstokesNL functions: removed Ubase. Simplified the internals of a number of navierstokesNL functions. Changed function signatures of DNSAlgorithm derived class ctors re Ubase, ubase Moved navierstokesNL itself to dns.{h,cpp} Moved up2q and uq2p functions to methods of DNS. Makes much more sense. Added DNSFlags::baseflow enum member for simple baseflow specification Fixed a bug in copying and assignment of DNS objects (affected press. phase) Modified examples, test programs to check new linearization and baseflow enum Added FieldSymmetry class, diff(FlowField f, int i, int n) for df/dx[i]^n. Added simple functions to evaluate dissipation and energy input of FlowFields Added showpadding flag to FlowField::saveSpectrum. Limited kx,kz looping to nonpadding modes in L2Norm, L2Dist, L2IP for FlowFields when appropriate. Doubles speed. J. Gibson. Cygwin specific fixes, J. Halcrow. Put channelflow in namespace, fixed examples to work with namespaces. J.Halcrow ------------------------------------------------------------------------- Channelflow-1.1.0, Thu Jan 18 11:38:52 EST 2007 Changed randomReal to take bounds of interval as arguments. Defaults to [0,1]. Added PeriodicFunc class for 1d periodic functions. FFTs work, but derivs, etc. are untested. Basic human-viewable periodicTest.cpp. Not yet part of auto test suite. Added typedef unsgned int unit to mathdefs.h. Changed FFTW flags variables throughout to uint. Cleaned up FlowField::resize and FlowField::initialize_fftw interaction. Removed a bunch of long-ago commented out code in chabyshev.cpp. Small mods of INSTALL instructions. Removed ugly fixes for ancient MS Visual C++ for-scope bug. Added examples-krylov directory, with examples of Newton-search for plane Couette equilibria and Arnoldi iteration for computing their stability. Also shows how to use Octave libraries with Channelflow code. Carefully counted out linearly independent polynomial-Fourier basis functions. Added BasisFlags class for specifying BCs, divergence, and orthogonality of real and complex basis sets (realBasis(...) and complexBasis(...)).] Added checkBasis function to verify specified properties of basis. Revised basis construction to use modal-BC Legendre functions instead of straight Legendre polynomials. Modified test programs to construct DNS prior to setting initial condition u, to demonstrate that DNS IC is set with first call to advance() function. Added CFLAGS/DCFLAGS/PCFLAGS to link rules in examples/Makefile. Added a few L2IP functions as inlines for L2InnerProduct. Added a flowfeld-returning dotgrad function. Added FlowField::zeroAliasedModes() PoisonSolvers now configure null return FlowFields properly. Added a FinalError output line to dns tests for easy grepping of results. Tightened maxerr for some dns tests. Fixed a few typo bugs in tests/Makefile.am that resulted in a few tests missed. A few stubs added to dns and diffops in prep for linearization about genl field Removed PPE code from dns.h,cpp. PPE is Pressure Poisson Equation DNS alg. It was an experimental algorithm. My implementation, at least, never worked. Modified DNS advance functions to set UbulkAct to value calculated from soln u. Changed initialization of DNSAlgorithm::tmp_. Added a few matlab scripts. Added real-valued dPdx and Ubulk flags to DNSFlags to make setting of constraint values more transparent. Revised examples and tests to set dPdx and Ubulk through DNSfFags Commented out check for old versions in FlowField binary-file ctor. Set configure.ac to check for fftw3 as opposed to fftw. ------------------------------------------------------------------------- Channelflow-1.0.0, Thu Oct 12 12:14:43 EDT 2006 Version 1.0.0! No major revisions between this and 0.9.24, but the main requirements for 1.0 are in place and have been adequately tested. (fftw3, autoconf, and automated test suite) Minor revisions: Removed some unnecessary calls to FlowField::setToZero(). Fixed --enable-profile configuration option; made similar to --enable-debug Reorganized INSTALL somewhat. Added prerequisites and profiling instructions. Removed fftw_loadwisdom() from dnsOrrsommTest.cpp. Changed AM_CONFIG_HEADER to AC_CONFIG_HEADER in configure.ac (the AC_ version is supposed to be obsolete, but the AM_ version doesn't produce config.h.in.) Removed unnecessary X:: specifiers class X method declarations in dns.h and realopertor.h Fixed an L2Norm bug for kx,kz=0,0 RealProfiles: must count cross-terms. Added resets to init_algorithm_ in DNS::reset_X(...) methods Added package prerequisites and debugging and profiling section to INSTALL Added autoheader to the list of autotools bootstrapping commands in INSTALL. Added ./ path specifiers to executables in Makefile.am Added -fomit-frame-pointer to default CFLAGS Added profiling capabilities to configure-Make system ------------------------------------------------------------------------- Channelflow-0.9.24, Fri Aug 11 14:43:35 EDT 2006 Main changes: Addition of RealProfile class, Transfer of FlowField functions to diffops.h, Regularization of funcs for complete bases of RealProfiles and BasisFuncs Made sure all examples have good parameters. Details: Revised RealProfile to only have +/- states. kx=kz=0 pure real states are now done as +'s: psi+psi*. This reduces the number of cases in binary ops. Added reconfig members to RealProfile BasisFunc[Complex]ChebyCoeff FlowField Implemented and tested unary RealProfile diffops. Initial implementation of RealProfile canonicalize and multiplySetSigns. Appplied mind to RealProfile norms and dists. Believe they are correct. Implemented and tested first binary RealProfile func: dot Variable name simplification in flowfield.cpp "profile" -> "f". FlowField::operator += (const RealProfile& f) adds conjugate for kz=0. Bugfix BasisFunc::setBounds(Lx,Lz,a,b), a_,b_ were not set. Regularized implementations of void-returning RealProfile ops. Regularized names of diffops to short names, e.g. lapl, div, grad etc. Added realprofile.h,cpp. Implements a real-valued Fourier-polynomial basis. Removed FlowField::addProfile functions, += ops are equivalent. Moved most non-member FlowField function froms flowfield.h,cpp to diffops. Removed lambda (POD eigenval) from BasisFunc Added complexBasis and realBasis funcs to realprofile.h,cpp basisfunc.h,cpp Added field2coeff and coeff2field projection funcs Added a number of state assertions to FlowField operators. Added preprocessor statements to define DEBUG from NDEBUG Change a number of c = 2*pi*I statments to c = Complex(0.0, 2*pi). Replaced a number of BasisFunc logic that assumed Nd=3. Ooops! Removed BasisFunc ctor that assumes Nd=3. Added legendreU,V and orthonormalize functions from POD code. Beware of conjugation subtleties in Field += BasisFunc, += RealProfile ops. (+= RealProfile adds its conjugate for kx!=0, kz=0, BasisFunc doesn't) Changed copyright noticed to 2001-2006. Added +void orthonormalize(array& e); Added a number of array complexBasis(...) functions. Changed array::save to use scientific notation. Addded -fomit-frame-pointer to optimized compiler flags. Rewrote "make test" to echo compilation but not execution commands. Fine-tooth comb over examples/*.cpp and tests/dnsOrrsommTest.cpp. Revised INSTALL.channelfow to reflect new "make test". Rewrote examples/README. ------------------------------------------------------------------------- Channelflow-0.9.23, Thu Feb 16 12:12:38 EST 2006 Autoconf changes: Changed name of library to libchflow.a Commented out shared libs for time being ./configure now error and exits on lack of fftw3 Other changes in attempts to produce debugging libs automatically; current procedure is still to reconfigure with CFLAGS="-g -O2" and manually move the produced libchflow.a to /usr/lib or wherever. more to come... ------------------------------------------------------------------------- Channelflow-0.9.22, Thu Feb 16 12:12:38 EST 2006 Changed headers to be included via #include "channelflow/mathdefs.h" Changed #ifndef MATHDEFS_H to #ifndef CHANNELFLOW_MATHDEFS_H These changes allowed file renaming: cfvector and cfarray to vector and array. Removed "using namespace std" from channelflow headers. Revised binary IO again, to require 4 byte int and 8 byte Real and use htonl. Added assert(Ny_ = U.n()) to a number of FlowField += BasisFunc, ChebyCoeff ops A fair amount of mucking with Makefile.am's, trying to make debug libs Regularization of test programs: output formating, params for short run time Added more extension compilation instructions in INSTALLATION. Consolidated example programs directly in examples/ subdir, w simple Makefile ------------------------------------------------------------------------- Channelflow-0.9.21 Conversion to autoconf automake system. Conversion to subversion source code control, svn repository on laptop for now. Implemented automated test suite via "make check". Some .cpp files include config.h from configure Removed "using namespace std" from headers, replaced w std:: qualifiers. Reverted to zeroing out kxmax,kzmax modes in DNS::advance. Review later. Changed PoissonSolver and PressureSolver::verify to return Real residual. Changed verbose diagnostic output to cout to simplify "make checks" redirect. Switched default value of DNSFlags::initstepping to SMRK2 due to CNRK2 bug. FIXED SIGN ERROR ON Rxk_.re[ny] += c*Ubaseyy_[ny] ; in RungeKuttaDNS::advance ------------------------------------------------------------------------- Channelflow-0.9.20 Bugfix in FlowField Chebyshev transforms: missing factor of 1/2 on last mode Added kronecker(int, int) to mathdefs Removed type-cast assignments in binary IO from mathdefs.cpp, replaced with memcpy. Behavior of the type-casts was undefined in the C++ standard, worked for gcc-3, but got statements got optimized out with gcc-4 -O2. Bugfix in PressureSolver::verify: wrong array length in loop exit condition. periodicpoints() and FlowField slice now return N+1 pts (i.e. repeat endpts). Rewrote byteswapping code to use the more portable htons and htonl over bswap. Changed behavior of non-dealiased DNS calculations: tried to explicity enforce correct complex symmetries in the kx,kz in {0, kxmax} x {0, kzmax} modes NEEDS FURTHER NUMERICAL VERIFICATION OF CORRECTNESS Simplified FlowField chebyshev transforms for case Ny<2. Replaced sizeof(char) statements with 1 in mathdefs.cpp. True by defn. Added explanatory comment line to turbstats output. ------------------------------------------------------------------------- Channelflow-0.9.19 Tue Nov 15 12:55:12 EST 2005 Fixed bug in FFTW planning: a certain sequence of FFTW_ESTIMATE, load_wisdom, and FFTW_MEASURE plan construction in FlowFields created bad plans (detected by large divergence of div-free fields after back&forth transforming. Didn't investigate in depth, simply switched all FlowField plans constructions to FFTW_MEASURE. Need to investigate and alert fftw guys if it's an fftw bug. Removed for (int i=0; i::binaryDump. Fixed an undefined operation Real(n)/Real(++n) in TimeStep::adjust(CFL, bool); Apparently gcc-3.3.5 on x86 noticed neither. Main work: Tue Sep 27 22:25:04 EDT 2005 Changed default DNSFLags.nonlinearity to SkewSymmetric DNSFlags.dealiasing to NoDealiasing DNSFlags.timestepping to SBDF4 This reflects wisdom inherited from elders. Big change: Changed NSIntegrator to DNS, and split up DNS into a small class hierarchy to manage the differences in DNS algorithms. DNSAlgorithm is the base class for different algorithms, such as MultiStepDNS, RungeKuttaDNS, and CNABstyleDNS. Those classes implement update algorithms, usually with parameters that specify the specific form of RK or multistep algorithm (e.g. the order). Objects of the derived classes can be constructed and used directly (i.e. by their own class names), or can use the DNS handle class. The DNS class works as a simplified user interface to the derived classes, by constructing one of the derived types internally and then calling its virtual functions. (standard C++ technique). DNS should be a drop-in replacement for NSIntegrator, except (1) the reset functions have more consistent names (reset_dt, resetdPdx, etc) (2) there are new TimeStepMethods SBDF1-4, CNFE==SBDF1, and CNRK2 (3) for algorithms that need a few initial timesteps, the first few steps are taken with a Runge-Kutta method. No user intervention required. (4) the initializing timestep algorithm is set via DNSFlags::timestepping. NOTE: The LaTeX documentation has not yet been updated for the new DNS class. Added simple templated array class, file arraycfarray.h, used in DNS. Added channelflow/validations/ directory, for validating Channelflow as a DNS against known problems like poisseuille, orrsomm, etc. Different purpose than examples dir, which should illustrate how to program. Set ascii IO format to 17-digit scientific for Chebyshev,BasisFunc,FlowField Changed Real Tausolver::kxLx_ member to two_pi_kxLx and added kx_ (ditto z) Added PoissonSolver copy ctor Changed CFL from L2Norm(ui/dxi) to L1Norm(ui/dxi); Added bool pretty arg (default true) to FlowField::saveSpectrum(), orders by k Added Complex FlowField::Dx(int kx), ditto Dz. Allowed return of profiles from real-valued (Physical in xz) FlowFields. Added int zero_last_mode(kx,kxmax,parity) to computations of FlowField diffs. Change Complex z = x*I; to Complex(0.0, x); in a number of places. Added ChebyTransfrom copy ctor and operator=. Added L1Norm, L1Dist, LinfNorm, LinfDist for [Complex]ChebyCoeff and FlowField Added fieldstate option to BasisFunc, ChebyCoeff, and ComplexChebyCoeff::save Replaced true_norm(Complex z) w stdlib abs(z), norm2 w abs2, conjugate w conj Changed order and typesetting of mathefs.h,cpp Updated contact information. ------------------------------------------------------------------------- Channelflow-0.9.14, Wed Jun 8 12:21:45 EDT 2005 Changed RHS of PressureSolver from div nonl u (wrong) to -div nonl u. DNSFlags constructor default arg for tau correction was sometimes misset. FlowField:ygridpoints() didn't work for [a,b] != [-1,1] Switched calls from misleading std lib norm(complex) to true_norm(Complex). Removed LOG2 and log2 from mathdefs.h Removed all variable names with leading underscores. Changed some typesetting in mathedefs.h Added IO mthods for DNSFlags. Added default state arg to Chebyshev and ComplexChabyshev ctors. Removed obsolete global const int MATLABVERSION. ------------------------------------------------------------------------- Channelflow-0.9.13, Wed May 25 12:05:29 EDT 2005 Main changes: Regularized use of modenumber mx and wavenumber kx in FlowField. Added many FlowField differential operators in new file diffops.{h,cpp}. Moved Navier-Stokes nonlinearity calcs from FlowField methods to diffop funcs, revised NSIntegrator to use new functions in diffops.{h,cpp}. Added PoissonSolver and PressureSolver classes. Extensive additions to channelflow.tex documentation, mainly to clarify regularization of mx,mz vs kx,kz, and match new calcs of NL terms. Smaller changes: Changed FlowField::profile functions to index on mode numbers (mx,mz). Regularized divNorms and bcNorms: same syntax as L2Norm. Added swap functions for Vector, ChebyCoeff, ComplexChebyCoeff. Added diff(Chebyshev, n), diff(ComplexChebyshev, n) functions. United various FlowField slice and crossSection methods into one slice func. Changed recursive pow(int, int) into log N while-loop. ------------------------------------------------------------------------- Channelflow-0.9.12, Wed Mar 16 13:09:37 EST 2005 Changed vector.{h,cpp} to cfvector.{h,cpp} to avoid nameclash w gcc-3.3. Modified FlowField binary IO to only save nonaliased modes when appropriate. Changed method names in TurbStats to reduce confusion of U Umean, utot, etc. ------------------------------------------------------------------------- Channelflow-0.9.11, Wed Apr 21 15:19:42 EDT 2004 Removed orrsommfunc.{cpp,h}. These won't compile without Octave. Fixed a bug in Chebyshev::makeState(fieldstate s) that called ichebyfft instead of chebyfft in some cases. Added kxMaxDealiased (and kz) functions to NSIntegrator. ------------------------------------------------------------------------- Channelflow-0.9.10, Sat 01/31/04 at 21:34 Bugfix in NSIntegrator. Fixed a serious bug in NSIntegrator that had turned off tau correction in the time-stepping algorithm. I introduced the bug while converting from integer flags to the DNSFlags class in 0.9.8. ------------------------------------------------------------------------- Channelflow-0.9.9, Mon Dec 1 12:13:21 EST 2003 Fixed bug in FlowField::nonlineritySkewSymmetric(). Added FlowField::nonlinerityConvection() Added FlowField::nonlinerityDivergence() Added Alternating convection/divergence option in DNSFLags and NSIntegrator. Moved CFL calculation from nonlinearity methods to a function call outside largest loop in NSIntegrator::advance. No need to make inner-loop CFL calc, plus it was inconvenient within some nonlinearity methods. Revised manual to reflect added nonlinearity method.