Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What feature report was addressed?
We are evaluating the use of PreallocationTools for Trixi, but need to ensure that adding it does not break Enzyme support.
Checklist
contributor guidelines, in particular the SciML Style Guide and
COLPRAC.
Additional context
Enzyme requires the shadow heap values to have the same type and shape as the primals. Therefore
dual_du
can actually be smaller than with ForwardDiff.Supporting Enzyme batch mode is only possible on
v1.11
or by allocating memory / doing unsafe operations.My biggest worry would be user who attempt to use
Enzyme
over ForwardDiff. Then in the case ofConst(stod)
Enzyme and ForwardDiff would compete for the same memory.The case of
Duplicated(stod, Enzyme.make_zero(stod))
does the right thing in this instance.