lp:escriptfinley
 Get this branch:
 bzr branch lp:escriptfinley
Branch merges
Branch information
Import details
This branch is an import of the Subversion branch from https://svn.geocomp.uq.edu.au/svn/esys13/trunk.
Last successful import was 3 hours ago.
Recent revisions
 5395. By aellery on 20190116

Fixed bug 457 (escript would not run on Quoll with more than 6 threads)
 5393. By aellery on 20190111

The order of the interpolation used by the linesearch is now 1 by default. If using cubic interpolation, a user can control the final test by setting the parameters tol_df and tol_sm.
:param interpolationOrder: the order of the interpolation used (1, 2 or 3)
:param tol_df: if using the cubic interpolation, the new value of alpha must
: differ from the previous value by at least this much
:param tol_sm: if using the cubic interpolation, the new value of alpha must
: not be less than tol_sm*(alpha_ {i1})  5391. By aellery on 20190109

A user can now manually set the order of the interpolation used in the line search in the LBFGS and BFGS minimizers. Example usage:
solver=
MinimizerLBFGS( )
solver.setOptions( interpolationOr der=1) Accepted values for interpolationOrder are 1, 2 and 3.
 5389. By aellery on 20190109

Fixed the bug that was causing the buildbot intelmpi
py3paso long to fail  5388. By aellery on 20190107

I have rewritten the interpolation algorithm in the zoom function in minimizers.py. This new algorithm uses quadratic interpolation on the first step and cubic interpolation on subsequent steps. Unlike the prior version it does not require any additional function evaluations.
In case anybody is curious, the if statements in quadinterpolate and cubicinterpolate account for the following scenarios in which the algorithm could fail:
72: The user has passed alpha_lo and alpha_hi on the incorrect order
76: The user is approximating the derivative of the function phi using finite differences
80: The minimum of the interpolated quadratic is outside of the domain
85: The user has passed alpha_lo and alpha_hi in the incorrect order
87: Duplicate point (alpha_lo = 0 so that phi(alpha_lo) = phi(0))
95: The answer is going to be complex, which will cause PASO to break (this shouldn't happen unless the user does something silly. I have only included this for completeness)
99: It is possible that multiple roots lie in the domain. This finds the larger of the two that is less than alpha_hi.
100: The minimum of the interpolated cubic is outside of the domain
102: This is a safeguard to ensure that the new value of alpha is not too close to the last value and isn't too much smaller than the last value.  5387. By aellery on 20190104

Fixed the broken test run_gravity.py.
This code seems to be working, but with the new version of minimizers.py the gravity inversion is a little slower to converge than it was before. Slightly increasing the maximum number of solver iterations solved the problem.
 5386. By aellery on 20190104

Fixed a minor typo in inversions.py that was causing gravmag_netcdf.py to break.
Branch metadata
 Branch format:
 Branch format 7
 Repository format:
 Bazaar repository format 2a (needs bzr 1.16 or later)