similar
: always return a PencilArray
#83
Merged
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.
This PR changes the behaviour of
similar(u::PencilArray, [T], [dims])
when thedims
argument is passed.First note that we cannot construct a
PencilArray
which is "similar" tou
but having different dimensions, since in that case we would need to generate a newPencil
configuration which is not supported.For this reason, and to make sure that the return type doesn't depend on the value of
dims
, callingsimilar
used to return a non-distributed array (most often a regularArray
) wheneverdims
was passed.Now, we instead make sure that
similar
always returns aPencilArray
. This is in particular needed if one wants to combine PencilArray, StructArrays and DiffEq.jl. So, whendims
is passed, we now throw an error ifdims
is different from the size ofu
.