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 non-gui 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 64-bit 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 command-line 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 double-click and drag-and-drop 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 multi-line 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 over-zealous 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 cell-size induction loop in domain generation.

 Version 6.19   06/23/11

  • Corrects a convergence difficulty affecting some nonsymmetric steady-state 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 node-positioning 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 self-periodic 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 2D-DXF import.
  • Implements rotated ellipse in 2D-DXF 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 sub-expression 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 block-inverse 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 re-run.
  • 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 non-pde 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 drop-down 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 dual-contour plots.
  • Abandons attempts to apply timestep controls to steady-state equations in time-dependent 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 re-computation in nonlinear time-dependent 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 student-mode 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:

  • Multithreading - Support for dual and quad core processors. Run multiple problems simultaneously or use up to 4 threads for parallel execution within a single problem.
  • Complex, Vector and Array Variables and Equations - Direct support of these data types simplifies equation construction.
  • Regionally Inactive Variables - Variables can be declared inactive in some regions and active in others.
  • Multiple Equation Sets - Splitting of equations into sets that are solved sequentially and alternately.
  • Additional Status Graphs - Updated graphical interface to include plots of cell/node number, error, convergence and timestep.
  • Internal Tabulation Facility - Build on-the-fly tables of computationaly intensive parameters for more economical execution.
  • Arrays and Matrices - Extended support allows array and matrix operations for use in equations, graphics and domain construction.
  • Planes, Cylinders, Spheres - Simplified Construction of Planes, Cylinders and Spheres in 3D.
  • Stop and Restart Facility - Simplified facility for restarting a script after stopping.
  • Web-based Licensing - Move license from machine to machine with web actions. No dongle to loose!