Skip to content

FieldVector broadcast inference failure #1465

Closed
@charleskawczynski

Description

@charleskawczynski

Reproducer:

import ClimaCore
import ClimaCore.Spaces as Spaces
import ClimaCore.Fields as Fields
using StaticArrays
include(
    joinpath(pkgdir(ClimaCore), "test", "TestUtilities", "TestUtilities.jl"),
)
import .TestUtilities as TU

function foo!(args)
    (; residual, temp, dt,a_imp, Ui) = args
    i=1
    @. residual = temp + dt * a_imp[i, i] * residual - Ui
    return nothing
end

FT = Float32
cspace = TU.CenterExtrudedFiniteDifferenceSpace(FT);
Yc = fill((;a=FT(0)),cspace);
args = (;
    residual=Fields.FieldVector(;c=Yc),
    temp=Fields.FieldVector(;c=Yc),
    a_imp=SMatrix{1,1}(rand(1,1)),
    Ui=Fields.FieldVector(;c=Yc),
    dt = 1.0,
);
foo!(args)

using JET
JET.@test_opt foo!(args)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions