Sets an option for controling a vector’s behavior.
x - the vector
op - the option
flag - turn the option on or off
VEC_IGNORE_OFF_PROC_ENTRIES, which causes
VecSetValues()to ignore- entries destined to be stored on a separate processor. This can be used to eliminate the global reduction in the
VecAssemblyBegin()if you know that you have only used
VecSetValues()to set local elements
VEC_SUBSET_OFF_PROC_ENTRIES, which causes
VecAssemblyBegin()to assume that the off- process entries will always be a subset (possibly equal) of the off-process entries set on the first assembly which had a true
VEC_SUBSET_OFF_PROC_ENTRIESand the vector has not changed this flag afterwards. If this assembly is not such first assembly, then this assembly can reuse the communication pattern setup in that first assembly, thus avoiding a global reduction. Subsequent assemblies setting off-process values should use the same InsertMode as the first assembly.
InsertMode restriction could be removed by packing the stash messages out of place.