Bug in shell code minimization - Redmine #2705
The shell and flexible constraint minimization used the same pointer for
the trial and minimum configuration. Thus minimization is unaffected
when no step is rejected until the minimum is reached. But when a step
is rejected, many more iterations might be needed because the
coordinates are not reset to those before the trial ste
*(from redmine: issue id 2705, created on 2018-10-22 by berkhess, closed on 2018-11-28)*
* Changesets:
* Revision 93109ddfa51819c07677cfc1789ecc4eb220cf4e by Mark Abraham on 2018-10-25T09:02:29Z:
```
Introduce ArrayRefWithPadding
Modules need to access views of memory with and without padding. This
class can be constructed from a PaddedVector, and provides the
capacity to hide the underlying padded container (and allocator),
while being able to obtain ArrayRef with and without padding.
Also updated wording of docs for ArrayRef, and attribution
Fixed issue with shell code using the same pointer for trial and
minimum configuration.
Fixes #2642
Fixes #2705
Change-Id: I45197215342ae011298abc310b877c34f8fab88b
```
* Revision 5749eb1c9934c3597f140b793c7b374610a56335 by Mark Abraham on 2018-11-19T09:56:20Z:
```
Fix inefficient shell minimization
In 5268b73d6cd, a bug was introduced when a shallow copy was used
instead of the former deep copy. However, in the original code some
pointers were used as "short-cuts", which is not neccessary. Those
pointers have been removed, and now the shell-code position vectors
are fully initialized at allocation time.
In order to get reproducible normal modes the delta x used for
computing derivatives was reduced.
Fixes #2705
Change-Id: Iad8a0b0793304e2c10d9abf3a180cfe9bdc85c4c
```
issue