wrong values accumulated to dvdlambda in SHAKE with FE calcs - Redmine #2434
commit:513813b5 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 (closed)
- Changesets:
- Revision 33093601 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 17967ef5 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