Matthew Knepley <[email protected]> writes: >> Note that TSComputeIFunction is very much like SNESComputeFunction, >> which includes >> >> if (snes->vec_rhs) { >> ierr = VecAXPY(y,-1.0,snes->vec_rhs);CHKERRQ(ierr); >> } >> >> Why haven't you complained about that? >> > > Good point. I did not notice. This came up because the initialization > of input vectors is inconsistent between TSComputeIFunction() and > TSComputeIFunctionLocal(). The former does not zero the output vec, > but the later does.
The latter function doesn't exist so maybe you mean TSComputeIFunction_DMDA with ADD_VALUES? That's because the DMDA needs it when using ADD_VALUES, just like SNESComputeFunction_DMDA. When using INSERT_VALUES, the user is responsible for setting every entry. Is any of this different from SNES?
