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 93109ddf 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 5749eb1c 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