Revision Log
FlexPDE is an evolving product. It is also a complex product. The addition of
new features and the repair of errors occasion the release of new versions at frequent intervals.
In this section we present a brief history of the changes made in FlexPDE. The most recent version
is listed first, followed by increasingly older versions. FlexPDE version numbers
encode the exact release.
Version 6.51
07/24/19
 Corrects error in update check when registered to a V7 dongle.
 Corrects an error in nongui update check so doesn't wait for input.
 Implements CABS, complex absolute value function.
 Diagnose table references outside of range.
 Define ATAN2V6 so same script can be run on versions 6 and 7.
 Corrects other miscellaneous errors.

Version 6.50
02/01/17
 Corrects miscellaneous errors in matrix handling.
 Adds CodeMeter dongle functionality to support reading a FlexPDE 7 dongle. (Windows and Linux 64bit only.)

Version 6.40
09/20/16
 Corrects occasional "Constant required" errors for regionally dependent parameters.
 Improves speed of calculation for nested parameter dependencies.
 Corrects occasional error in TRANSFER of meshes with JUMP boundaries.
 Corrects multiplicative distribution of expressions containing LAMBDA.
 Implements TRANSPOSE for tensors.
 Adds commandline switches for licensing operations.

Version 6.39
04/18/16
 Improves TRANSFERMESH lookups, especially at interfaces with discontinuous data.
 Corrects an error in LIMITED FEATURES on SURFACES.
 Corrects implementation of tensor = vector * vector.
 Corrects LINE_INTEGRAL in 1D problems to properly use the VOLUME_INTEGRAL.
 Corrects the EXPORT of ELEVATIONS with more than 65,000 data points.
 Adds the MERGEDIST used to the generated script when importing 2D DXF files.
 Correctly initializes data for INITIAL VALUES that reference a SAVE.

Version 6.38
10/07/15
 Improves gridding of regions that form "hourglass" pinchouts.
 Improves diagnosis of plots without a time selector.
 Corrects implementation of imbedded NATURAL bc on JUMP boundaries.
 Other miscellaneous fixes.

Version 6.37
02/12/15
 Adds a diagnostic for a bad layer count when reading DXF files.
 Corrects the behavior of WINDOW (t1,t2) to display fixed range of (t1,t2).
 Implements the power of a COMPLEX number.
 Expanded maximum THREAD count for a script to 24.
 Corrects the derivative of a UPULSE function.
 Corrects an error in the classification of products of COMPLEX numbers.
 Corrects an error in the TRANSFER of regionally constant data.
 Corrects an error in GLOBAL VARIABLES when only coupled to VARIABLES through NATURAL boundary conditions.

Version 6.36
07/29/14
 Corrects an occasional error in TABLE smoothing.
 Corrects an error that caused an EXPORT of a HISTORY to append data rather than rewrite the file.
 Corrects an error that prevented the use of "thin" in graphics exports.
 Implements complex functions CABS and CSQRT.
 Implements the time derivative of a time integral (TINTEGRAL).
 Implements GLOBALMAX_X, etc. in AT specifications for HISTORY plots.
 Implements color selection for the script display by manually editing
the flexpde6.ini file (e.g. for color blind users).

Version 6.35
02/17/14
 Corrects an error in elevation plots with a negative start point.
 Corrects an error in displaying eigenvalue list reports (introduced in 6.34).
 Corrects an occasional error in matrix symmetry checks.
 Corrects an occasional error in rerun on some systems.
 Corrects a potential error in the use of CRITICAL TIME.

Version 6.34
01/21/14
 Adds extended string syntax in #INCLUDE names to allow $ expansions and catenation.
 Corrects and occasional divide by 0 in eigenvalue problems.
 Retains proxy server information when deselected.
 Corrects occasional errors in power operations.
 Diagnose contact boundary conditions applied to exterior boundaries.
 Corrects occasional error in applying boundary conditions in corner cells in 3D.
 Corrects error in closing View tabs, making remaining tabs inaccessible.
 Corrects error in handling INACTIVE variables at contact boundaries.
 Improved test for matrix asymmetry.
 Corrects error in assigning initial values to VECTOR VARIABLES.
 Corrects a floating point error in plots using an extremely small RANGE.

Version 6.33
07/25/13
 Corrects an update error in play back of PG6 files (introduced in v.6.30).
 Allows sum and difference of integrals in constraint equations.
 Adds doubleclick and draganddrop handlers for Mac versions.
 Corrects an error in the movie export function (introduced in v.6.30).
 Corrects occasional error in boundaries with rotated ellipses.
 Adds diagnostic for illegal derivatives of the VAL function.
 Adds the DELETE selector to allow the automatic deletion of specified output files.
 Corrects an error in handling of GLOBAL equations in moving mesh problems.
 Corrects an error when a script ends inside a multiline comment.
 Corrects various minor errors.

Version 6.32
10/12/12
 Corrects a periodic gridding error (introduced in v.6.30).
 Corrects an error in the handling of the T command line option (introduced in v.6.30).
 Corrects an error in the handling of missing script files given
on the command line when using the S option (introduced in v.6.30).
 Corrects and error in the handling of the executable file path
on Mac OS X when running from the command line (introduced in v.6.30).

Version 6.31
09/28/12
 Corrects a busy wait causing processor use during idle state (introduced in v.6.30).
 Corrects a random freeze when attempting to report a parse error (introduced in v.6.30).

Version 6.30
09/17/12
 New FlexPDE6n executable that does not use any graphical interface.
 Implements PERIODIC boundaries in 1D.
 Implements ON GRID plots in 3D.
 Removes overzealous error diagnostic that prevented using TRANSFERMESH in moving mesh problems.
 Allows scripts to request smaller initial time step than that imported by TRANSFERMESHTIME.
 Corrects an error in exporting more that ten data items in one EXPORT.
 Corrects an occasional error in 3D mesh generation.
 Corrects an occasional error in Save As.
 Improves handling of contact boundaries with partial extent.
 Improves handling of surface normals in some conditions.
 Improves handling of coordinate dependences in moving mesh problems.
 Improves handling of movable point references in EVAL statements.
 Improves diagnostic of partially merged extrusion surfaces in 3D.
 Minor changes to mesh generation logic.

Version 6.20
11/23/11
 Removes regridding ban on 3D problems with contact boundaries.
 Adds a diagnostic for fractional power of a negative number.
 Improves handling of multiple boundary conditions at CONTACT joints(2D) and edges(3D).
 Improves handling of Tangential operator in 3D.
 Improves expression simplification procedures involving UNORMAL operator.
 Corrects an error when using GLOBAL VARIABLES with THEN equations.
 Corrects an occasional error that caused a crash on rerun after an illegal symbol report.
 Deleted INTSTRING operator. Use $ instead.
 Adds a diagnostic to enforce monotonic increasing TABLE coordinates.
 Adds a selector (FEATURE_INDUCTION) to supress cellsize induction loop in domain generation.

Version 6.19
06/23/11
 Corrects a convergence difficulty affecting some nonsymmetric
steadystate problems (introduced in version 6.16).
 Implements tensor operations DOT(tensor,tensor) and DOT(tensor,vector)
and tensor component selectors XXCOMP()...ZZCOMP().
 Implements vector*vector producing a tensor.
 Implements tensor**tensor, equivalent to DOT(tensor,tensor).
 Corrects an error in computing VALUE boundary conditions on an
interface between Active and INACTIVE regions.

Version 6.18
06/09/11
 Corrects grammatical errors processing boundary conditions in 1D problems with array variables.
 Corrects error in plot levels when requesting less than 10 levels.
 Corrects nodepositioning error in refining cells on curved boundaries.
 Corrects CDF export to write separate files for eigenvalue runs.
 Corrects treatment of inactive variables in 3D.
 Corrects an error (introduced in v.6.16) that sometimes caused
an infinite loop in periodic problems.
 Corrects error in periodic problems with selfperiodic cells.
 Corrects plotting errors in staged eigenvalue problems.

Version 6.17
04/25/11
 Corrects application of sidewall boundary conditions to edges when surfaces are merged.
 Corrects errors in importing Transfer files (introduced in 6.16).
 Corrects errors in SUM operators that have variable dependence and are referenced in equations.

Version 6.16
04/15/11
 Implements new logic for locating arbitrary positions in the unstructured mesh.
 Removed redundant network license check accesses in some problems.
 Corrects some symbolic processing errors relating to divergence of tensors.
 Corrects a memory protection fault in moving mesh problems when all motions are exactly zero.
 Corrects an error in moving mesh problems in 2D cylindrical geometry.

Version 6.15
12/13/10
 Corrects errors in boundary condition assignment in 2DDXF import.
 Implements rotated ellipse in 2DDXF import.
 Corrects occasional crash when requesting graphic printout.
 Corrects XCOMP(UNORMAL) and YCOMP(UNORMAL) in 2D.
 Forces PREFER_STABILITY selector in moving mesh problems.

Version 6.14
09/09/10
 Corrects an error in the gridding of small ellipses.
 Increase common sub expression table size to reduce chances of overflow.
 Corrects an error in 1D CDF output.
 Automatically convert coordinate dependences to surrogate variable
dependences in moving mesh problems.
 Corrects an occasional startup failure in moving mesh problems.
 Corrects an occasional infinite loop in 1D ELEVATION plots of moving meshes.
 Allows named POINTs to appear in parentheses (analogous to explicit points).
 Minor modification to mesh refinement logic.

Version 6.13
05/31/10
 Diagnoses "New File" and "Save File"
failure (typically file permission errors).
 Corrects treatment of dyadic vector product.
 Removes diagnostic report of empty equation in INACTIVE regions.
 Plot "ON REGION <number>" searches user's region numbers and
defaults to sequential position if match is not found.
 Preserves node links for PERIODIC and CONTACT boundaries in TRANSFER MESH.
 Diagnose illegal power arguments in expressions (rather than deliver a runtime error).
 Expands tabs when printing scripts.
 Warn if TABULATE coordinates are decreasing.
 Convert MATRIX times scalar to scalar times MATRIX instead of rejecting expression.
 Corrects residual errors in treating Curl(scalar) in 2D.
 Corrects errors in TABLE output on ZOOM areas.
 Corrects tabulation of neighboring REGIONs for LIMITED FEATUREs on SURFACEs in 3D.
 Remove unsupported EMF format option from export dialog on Linux and Mac.
 Added PENWIDTH control to PLOT and SELECT sections.
 Corrects errors in "ON GRID" plots in time dependent problems.
 Implements TIMEMAX, TIMEMIN, TIMEMAX_T and TIMEMIN_T to find min and max values over time.
 Diagnoses common subexpression table overflow (encountered
only in extremely large, highly redundant arithmetic expressions).

Version 6.12
02/07/10
 Restore interpretation of 2D Curl(scalar) to be consistent
with earlier versions (lost in 6.10).
 Eliminate a busy wait in Pause dialog.
 Corrects occasional failure of initial value smoothing pass (SMOOTHINIT).
 Modify parser "Illegal Symbol" report to list all legal symbols.
 Corrects "Bad Matrix Reference" error when using coupled
value boundary conditions on inactive variables.
 Corrects implementation of CONST ARRAYs reference in domain definitions.
 Random number generator is initialized only on file opening, not on each parse.
 Corrects indexing errors when using both CONTACT and INACTIVE controls.

Version 6.11
12/15/09
 Corrects a memory leak associated primarily with vector plots.
 Corrects an assertion error when lose dongle (or network) and retry.
 Rotating a 3D mesh plot erroneously rotated all elevation plot locators.
 Implements 1/complex and CLOG(complex).
 Corrects errors in finding proper evaluation cells across thin domain gaps.
 Corrects an error in computing the blockinverse preconditioner in
systems with symmetric coupling matrices.

Version 6.10
11/10/09
 Corrects an error in evaluation of integrals involving parameterized definitions.
 Corrects an error in the export of time dependent Techplot files.
 Corrects the expansion of expressions containing the product of
complex parameters and complex variables.
 Add facility to bypass automatic update checks.
 Additional plot error diagnostics.
 Diagnoses and rejects TABLEs with duplicated coordinate points.
 Improved error diagnostics in expression evaluation.
 Corrects an error in the processing of cascaded
definitions (i.e. A=B=<expression>).
 Corrects an occasional error in ELEVATION plots on boundary curves in 3D.
 Corrects an error in handling of ARRAYs and MATRIXs loaded by
element definitions, e.g. A=ARRAY[n], A[1]=1.

Version 6.09
09/10/09
 Restores consistency with version 5 in the sign of ELEVATION
plots of NORMAL on interior boundaries.
 Assures that boundary conditions on boundary paths will take
precedence over boundary conditions on surfaces in 3D.
 Diagnoses bad region references in building 3D domains.
 Corrects errors in applying boundary conditions to INACTIVE variables.
 Support for display of version 3 plot files.
 Diagnoses mesh generation catastrophes due to near miss coordinates.
 Corrects the implementation of "STAGED (a BY b TO c)"
 Allow white space separators in STAGED lists (comma is now optional).
 Corrects errors in the implementation of CONTACT boundaries in 1D problems.
 Corrects an error (introduced in v6.04) that disabled the staging of ERRLIM.

Version 6.08
07/01/09
 Added capability to communicate through a proxy server for update
checks and internet key licensing. See the "Help  Web Proxy Settings" menu.
 Corrects and error in "Pause" control under Linux.
 Corrects diagnosis of 0/0 in evaluator.
 Corrects an indexing error in natural boundary conditions with sequenced equations.
 Update status panel at fixed time intervals (reduces panel flashing on fast problems.)
 Corrects application of boundary conditions to paths on specified surfaces in 3D.

Version 6.07
05/25/09
 Corrects errors in memory usage report when scripts are rerun.
 Reports license features of network dongles, even when connected as local dongle.
 CONST ARRAY and CONST MATRIX store numbers rather than formulas.
Allows generation of RANDOM arrays and matrices.
 Corrects an error in EXPORT of ELEVATION (array) with no VS qualifier.
 Implements "SELECT RANDOM_SEED=integer" to control random number generator.
 Sorts CRITICAL time list.
 Improved diagnostic for arithmetic errors in TIME_INTEGRALs.
 Defers printer connection to point of need,
to avoid slow startup in systems with faulty printer specifications.
 Implements "SELECT DEBUG(GRID)" to aid in diagnosing mesh generation difficulties.
 Corrects an error that bypassed mesh density induction in closely spaced extrusion surfaces.
 Corrects an error in gridding 3D boundaries with sharp hidden breaks in surface slope.

Version 6.06
04/16/09
 Added capability for XCOMP, YCOMP and ZCOMP to work with POINTs.
 EXPORT of MATRIX plot now uses matrix dimensions for table size.
 Corrects use of global MESH_SPACING and MESH_DENSITY controls.
 Corrects various errors in COMPLEX expression evaluation.
 Corrects errors in "View File" progress bar and hot keys.
 Corrects error in BATCH rerun.
 Corrects error in "Save As" of nonpde files.
 Corrects occasional crash on program close.

Version 6.05
03/26/09
 Test for "disk full" errors while writing a PG6 output file.
 Added capability to stop the reading of a PG6 "view" file.
 Correct font sizes on some Linux platforms.
 Added capability for a CRITICAL time list.
 Added MODE_SUMMARY plot selector for compatibility with version 5 in eigenvalue problems.
 Corrects occasional errors in identifying duplicate plot domain specifications.
 Corrects occasional errors in locating positions in curved cells in 3D.
 Corrects occasional "Can't match prior cells" error.
 Corrects implementation of NATURAL boundary conditions in 1D Cylindrical and 1D Spherical models (area weighting factor had been omitted).

Version 6.04
02/20/09
 Corrects an error in treatment of default error limit when ERRLIM is referenced but not defined.
 Corrects an occasional error in treatment of explicitly defined vectors in 2D problems.
 Corrects treatment of "New File" creation  new file is now displayed correctly.
 SUMMARY report for eigenvalue problems now sorts global and modal values.
 VIEW of graphic files now allows selection of plot time from a dropdown list.
 Corrects occasional crash in reporting errors on Linux platforms.

Version 6.03
02/05/09
 Corrects an occasional error in SAVE operations with multiple threads.
 Adds capability for plotting CONTOURS and SURFACES on a deformed mesh.
 Adds labels for the second plot function in dualcontour plots.
 Abandons attempts to apply timestep controls to steadystate
equations in timedependent problems.
(Use SELECT SS_TIMECHECK to restore behavior of earlier versions.)

Version 6.02
01/23/09
 Corrects an error in the T command line switch for selecting default thread count.
 Modifies the logic of controlling matrix recomputation in nonlinear timedependent problems, replaces the NRMATRIX switch with REMATRIX and restores version 5 switches PREFER_SPEED and PREFER_STABILITY.
 Corrects a threading error in SAVE and EVAL functions that caused data corruption with multiple threads.
 Corrects studentmode operation of the demonstration version.
 Corrects a memory protection fault when a plot mesh was empty.
 Corrects the import of version 5 transfer files.
 Corrects an error in the Jacobian matrix for variable dependence on integrals on imbedded features.
 Corrects occasional errors reading configuration and license files.
 Corrects an error that reset log file timestamps to zero after 24 hours of run time.

Version 6.01
01/09/09

Corrects and error in automatic update checking.

Corrects an intermittent error in rewriting license file.

Corrects an intermittent error in startup of time dependent problems with initial timestep much too large.

Version 6.00
01/02/09
FlexPDE Version 6 is a
major rewrite of the FlexPDE application.
Among the new features of FlexPDE version 6 in the initial release are:
