wrong values accumulated to dvdlambda in SHAKE with FE calcs - Redmine #2434
commit:513813b514 refactored bshakef() to remove the use of lam as a temporary iteration variable. This was wrong, but worked fine for non-FE calcs. FE calcs will have accumulated arbitrary values to dvdlambda. This could have been prevented in many ways, including declaring the original parameter as real *const lagr and having SHAKE tests that cover a wider scope than cshake(). *(from redmine: issue id 2434, created on 2018-03-02 by mark.j.abraham, closed on 2018-03-06)* * Relations: * relates #2423 * Changesets: * Revision 33093601ff229ed8c8a40e73866a7ff351e8963b by Mark Abraham on 2018-03-06T13:07:48Z: ``` Fixed dvdlambda for SHAKE + FE Garbage values have been accumulated to dvdlambda whenever SHAKE was used. Refactoring in 513813b514 removed the lam variable. Previously, it was used as a temporary iteration variable over SHAKE blocks, but that refactoring to use the main variable changed the logic of the following loop. Fixes #2434 Change-Id: Ia9642f50358ab31ec98f8317f7a1dcda8622a9f1 ``` * Revision 17967ef521ab9df97b59e6e71997f8cc69916e79 by Berk Hess on 2019-05-23T13:50:45Z: ``` Fix SHAKE dH/dlambda contributions The constraint contributions to dH/dlambda would be incorrect with more than one SHAKE block. Refs #2434 abd #2879 Change-Id: I0cb30a9f61893ce57d76bac34e7352fe307efe4e ```
issue