Skip to content

Add flux solver with manually unrolled iterations#128

Open
glwagner wants to merge 5 commits intomainfrom
glw/manual-iterate
Open

Add flux solver with manually unrolled iterations#128
glwagner wants to merge 5 commits intomainfrom
glw/manual-iterate

Conversation

@glwagner
Copy link
Copy Markdown
Member

No description provided.

@codecov
Copy link
Copy Markdown

codecov Bot commented Mar 13, 2026

Codecov Report

❌ Patch coverage is 0% with 15 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
...s/InterfaceComputations/compute_interface_state.jl 0.00% 15 Missing ⚠️

📢 Thoughts on this report? Let us know!

Copy link
Copy Markdown
Member

@navidcy navidcy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does this helps for?

@glwagner
Copy link
Copy Markdown
Member Author

What does this helps for?

Compiling a time step of EarthSystemModel with Reactant

@navidcy
Copy link
Copy Markdown
Member

navidcy commented Mar 17, 2026

Gotcha

@giordano
Copy link
Copy Markdown
Member

┌ Warning: Original download failed for ECCO4Monthly temperature, trying NumericalEarthArtifacts fallback...
│   exception =
│    RequestError: Operation too slow. Less than 1 bytes/sec transferred the last 20 seconds while requesting https://ecco.jpl.nasa.gov/drive/files/Version4/Release4/interp_monthly/THETA/1993/THETA_1993_01.nc
│    Stacktrace:
│      [1] (::Downloads.var"#26#27"{IOStream, Base.DevNull, Nothing, Vector{Pair{String, String}}, Float64, Downloads.var"#p_func##0#p_func##1"{typeof(NumericalEarth.DataWrangling.download_progress)}, Bool, Nothing, Bool, Nothing, String, Bool, Bool})(easy::Downloads.Curl.Easy)
│        @ Downloads /usr/local/julia/share/julia/stdlib/v1.12/Downloads/src/Downloads.jl:479
│      [2] with_handle(f::Downloads.var"#26#27"{IOStream, Base.DevNull, Nothing, Vector{Pair{String, String}}, Float64, Downloads.var"#p_func##0#p_func##1"{typeof(NumericalEarth.DataWrangling.download_progress)}, Bool, Nothing, Bool, Nothing, String, Bool, Bool}, handle::Downloads.Curl.Easy)
│        @ Downloads.Curl /usr/local/julia/share/julia/stdlib/v1.12/Downloads/src/Curl/Curl.jl:105
│      [3] #24
│        @ /usr/local/julia/share/julia/stdlib/v1.12/Downloads/src/Downloads.jl:390 [inlined]
│      [4] arg_write(f::Downloads.var"#24#25"{Base.DevNull, Nothing, Vector{Pair{String, String}}, Float64, Downloads.var"#p_func##0#p_func##1"{typeof(NumericalEarth.DataWrangling.download_progress)}, Bool, Nothing, Bool, Nothing, String, Bool, Bool}, arg::IOStream)
│        @ ArgTools /usr/local/julia/share/julia/stdlib/v1.12/ArgTools/src/ArgTools.jl:134
│      [5] #22
│        @ /usr/local/julia/share/julia/stdlib/v1.12/Downloads/src/Downloads.jl:389 [inlined]
│      [6] arg_read
│        @ /usr/local/julia/share/julia/stdlib/v1.12/ArgTools/src/ArgTools.jl:76 [inlined]
│      [7] request(url::String; input::Nothing, output::IOStream, method::Nothing, headers::Vector{Pair{String, String}}, timeout::Float64, progress::typeof(NumericalEarth.DataWrangling.download_progress), verbose::Bool, debug::Nothing, throw::Bool, downloader::Downloader, interrupt::Nothing)
│        @ Downloads /usr/local/julia/share/julia/stdlib/v1.12/Downloads/src/Downloads.jl:388
│      [8] request
│        @ /usr/local/julia/share/julia/stdlib/v1.12/Downloads/src/Downloads.jl:355 [inlined]
│      [9] (::Downloads.var"#7#8"{Nothing, Vector{Pair{String, String}}, Float64, typeof(NumericalEarth.DataWrangling.download_progress), Bool, Nothing, Downloader, String})(output::IOStream)
│        @ Downloads /usr/local/julia/share/julia/stdlib/v1.12/Downloads/src/Downloads.jl:273
│     [10] open(f::Downloads.var"#7#8"{Nothing, Vector{Pair{String, String}}, Float64, typeof(NumericalEarth.DataWrangling.download_progress), Bool, Nothing, Downloader, String}, args::String; kwargs::@Kwargs{write::Bool, lock::Bool})
│        @ Base ./io.jl:410
│     [11] open_nolock
│        @ /usr/local/julia/share/julia/stdlib/v1.12/ArgTools/src/ArgTools.jl:35 [inlined]
│     [12] arg_write(f::Function, arg::String)
│        @ ArgTools /usr/local/julia/share/julia/stdlib/v1.12/ArgTools/src/ArgTools.jl:103
│     [13] #download#5
│        @ /usr/local/julia/share/julia/stdlib/v1.12/Downloads/src/Downloads.jl:272 [inlined]
│     [14] download
│        @ /usr/local/julia/share/julia/stdlib/v1.12/Downloads/src/Downloads.jl:252 [inlined]
│     [15] (::NumericalEarth.DataWrangling.ECCO.var"#download_dataset##6#download_dataset##7"{Downloader, String, String})(metadatum::Metadata{ECCO4Monthly, DateTimeProlepticGregorian{CFTime.Period{Int64, Val{1}(), Val{-3}()}, Val{(1900, 1, 1)}()}, Nothing, Symbol, String})
│        @ NumericalEarth.DataWrangling.ECCO /__w/NumericalEarth.jl/NumericalEarth.jl/src/DataWrangling/ECCO/ECCO.jl:330
│     [16] (::Base.var"#938#939"{NumericalEarth.DataWrangling.ECCO.var"#download_dataset##6#download_dataset##7"{Downloader, String, String}})(r::Base.RefValue{Any}, args::Tuple{Metadata{ECCO4Monthly, DateTimeProlepticGregorian{CFTime.Period{Int64, Val{1}(), Val{-3}()}, Val{(1900, 1, 1)}()}, Nothing, Symbol, String}})
│        @ Base ./asyncmap.jl:96
│     [17] (::Base.var"#start_worker_task!##0#start_worker_task!##1"{Base.var"#938#939"{NumericalEarth.DataWrangling.ECCO.var"#download_dataset##6#download_dataset##7"{Downloader, String, String}}, Channel{Any}, Nothing})()
│        @ Base ./asyncmap.jl:230
│    Stacktrace:
│      [1] (::Base.var"#maptwice##0#maptwice##1")(x::Task)
│        @ Base ./asyncmap.jl:173
│      [2] foreach(f::Base.var"#maptwice##0#maptwice##1", itr::Vector{Any})
│        @ Base ./abstractarray.jl:3188
│      [3] maptwice(wrapped_f::Function, chnl::Channel{Any}, worker_tasks::Vector{Any}, c::Metadata{ECCO4Monthly, StepRange{DateTimeProlepticGregorian{CFTime.Period{Int64, Val{1}(), Val{-3}()}, Val{(1900, 1, 1)}()}, Month}, Nothing, Symbol, DatewiseFilename{Vector{String}}})
│        @ Base ./asyncmap.jl:173
│      [4] wrap_n_exec_twice
│        @ ./asyncmap.jl:149 [inlined]
│      [5] async_usemap(f::NumericalEarth.DataWrangling.ECCO.var"#download_dataset##6#download_dataset##7"{Downloader, String, String}, c::Metadata{ECCO4Monthly, StepRange{DateTimeProlepticGregorian{CFTime.Period{Int64, Val{1}(), Val{-3}()}, Val{(1900, 1, 1)}()}, Month}, Nothing, Symbol, DatewiseFilename{Vector{String}}}; ntasks::Int64, batch_size::Nothing)
│        @ Base ./asyncmap.jl:99
│      [6] (::NumericalEarth.DataWrangling.ECCO.var"#download_dataset##4#download_dataset##5"{Metadata{ECCO4Monthly, StepRange{DateTimeProlepticGregorian{CFTime.Period{Int64, Val{1}(), Val{-3}()}, Val{(1900, 1, 1)}()}, Month}, Nothing, Symbol, DatewiseFilename{Vector{String}}}, String, String})(tmp::String)
│        @ NumericalEarth.DataWrangling.ECCO /__w/NumericalEarth.jl/NumericalEarth.jl/src/DataWrangling/ECCO/ECCO.jl:308
│      [7] mktempdir(fn::NumericalEarth.DataWrangling.ECCO.var"#download_dataset##4#download_dataset##5"{Metadata{ECCO4Monthly, StepRange{DateTimeProlepticGregorian{CFTime.Period{Int64, Val{1}(), Val{-3}()}, Val{(1900, 1, 1)}()}, Month}, Nothing, Symbol, DatewiseFilename{Vector{String}}}, String, String}, parent::String; prefix::String)
│        @ Base.Filesystem ./file.jl:936
│      [8] mktempdir
│        @ ./file.jl:932 [inlined]
│      [9] macro expansion
│        @ /usr/local/share/julia/packages/Oceananigans/br1rI/src/DistributedComputations/distributed_macros.jl:32 [inlined]
│     [10] download_dataset(metadata::Metadata{ECCO4Monthly, StepRange{DateTimeProlepticGregorian{CFTime.Period{Int64, Val{1}(), Val{-3}()}, Val{(1900, 1, 1)}()}, Month}, Nothing, Symbol, DatewiseFilename{Vector{String}}})
│        @ NumericalEarth.DataWrangling.ECCO /__w/NumericalEarth.jl/NumericalEarth.jl/src/DataWrangling/ECCO/ECCO.jl:305
│     [11] #__init__##2
│        @ /__w/NumericalEarth.jl/NumericalEarth.jl/test/runtests.jl:98 [inlined]
│     [12] download_dataset_with_fallback(download_fn::var"#__init__##2#__init__##3"{Metadata{ECCO4Monthly, StepRange{DateTimeProlepticGregorian{CFTime.Period{Int64, Val{1}(), Val{-3}()}, Val{(1900, 1, 1)}()}, Month}, Nothing, Symbol, DatewiseFilename{Vector{String}}}}, filepaths::Vector{String}; dataset_name::String)
│        @ Main /__w/NumericalEarth.jl/NumericalEarth.jl/test/download_utils.jl:37
│     [13] __init__()
│        @ Main /__w/NumericalEarth.jl/NumericalEarth.jl/test/runtests.jl:97
│     [14] top-level scope
│        @ /__w/NumericalEarth.jl/NumericalEarth.jl/test/runtests.jl:112
│     [15] include(mapexpr::Function, mod::Module, _path::String)
│        @ Base ./Base.jl:307
│     [16] top-level scope
│        @ none:6
│     [17] eval(m::Module, e::Any)
│        @ Core ./boot.jl:489
│     [18] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:283
│     [19] _start()
│        @ Base ./client.jl:550
└ @ Main /__w/NumericalEarth.jl/NumericalEarth.jl/test/download_utils.jl:39
Warning: Original source failed: RequestError: Operation too slow. Less than 1 bytes/sec transferred the last 20 seconds while requesting https://ecco.jpl.nasa.gov/drive/files/Version4/Release4/interp_monthly/THETA/1993/THETA_1993_01.nc

I'm getting errors when trying to download this file also locally, so it's not a CI problem 😕

@glwagner
Copy link
Copy Markdown
Member Author

grr

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants