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