Converting from Version 5 to Version 6

<< Click to Display Table of Contents >>

Navigation:  Technical Notes >

Converting from Version 5 to Version 6

Previous pageReturn to chapter overviewNext page

FlexPDE version 6 is almost totally backward-compatible with version 5.

In order to support the new features of version 6, however, we have had to make a few syntactic changes:

Parentheses

Parens "( )" are no longer interchangeable with square brackets "[ ]".  In particular,

Square brackets can no longer be used in expression grouping.  They are reserved for array and matrix indexing.

Parentheses can no longer be used for array indexing.  Only square brackets will serve in this capacity.

Exponentiation

Double-asterisk "**" can no longer be used as an exponentiation operator.  Double-asterisk is now the matrix multiply operator.  Use the caret "^" for exponentiation.

Solution Controls

Error estimation algorithms are somewhat different, and may result in somewhat shorter timesteps and longer running for time-dependent problems.  These changes were made in the interest of more truthful reports of error.

The selector NRMATRIX has been changed to an ON/OFF selector REMATRIX which selects recomputation of the Jacobian matrix on every Newton iteration.  The default is OFF.  Even without this selector, FlexPDE will recompute the Jacobian matrix whenever the variable changes are greater than an internal threshold.

Nonlinear time-dependent problems default to one Newton step per timestep, with timestep controls to cut the timestep if convergence is not readily achieved.  This is usually a more efficient scheme than other alternatives.  The Selector NEWTON=number is available for specifying a more strenuous convergence policy.  The Selector PREFER_STABILITY can be used to allow up to 5 Newton iterations per timestep, with full re-computation of the Jacobian matrix on each iteration.  This is the most expensive option, but should provide the most stable operation.

Reserved Names

The names REAL and IMAG can no longer be used as user-defined values.  They are now built-in component selectors for Complex data types.  See the list of Reserved Words for other changes.