From 84357d0e2c875989ba5ca7bb012d4b0122aafae3 Mon Sep 17 00:00:00 2001 From: "Gregory L. Wagner" Date: Thu, 4 Apr 2024 07:56:22 -0600 Subject: [PATCH] Automatically try to reshape arrays when encountering DimensionMismatch (#3535) * Automatically try to reshape arrays when encountering DimensionMismatch * Unnecessary sizes --- src/Fields/set!.jl | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/Fields/set!.jl b/src/Fields/set!.jl index f2e89a7817..ebd07c8ae5 100644 --- a/src/Fields/set!.jl +++ b/src/Fields/set!.jl @@ -71,7 +71,23 @@ end function set!(u::Field, f::Union{Array, CuArray, OffsetArray}) f = on_architecture(architecture(u), f) - u .= f + + try + u .= f + catch err + if err isa DimensionMismatch + Nx, Ny, Nz = size(u) + u .= reshape(f, Nx, Ny, Nz) + + msg = string("Reshaped ", summary(f), + " to set! its data to ", '\n', + summary(u)) + @warn msg + else + throw(err) + end + end + return u end