reaction calculation .etc

#4190 
@cpritam @tonkmr Please review them.
For hardness update and temporary variables, I commit the changes we talked about. @cpritam 
`std::abs` should be used instead of `fabs`