From af60bc0901508530c258004984ad05aad9587bf3 Mon Sep 17 00:00:00 2001 From: Knut Andreas Date: Mon, 25 May 2026 12:34:45 +0200 Subject: [PATCH] Initial working commit --- src/DomainBuffers.jl | 6 +++++- src/Simulation.jl | 12 ++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/DomainBuffers.jl b/src/DomainBuffers.jl index 208e5f7b..84e4abe4 100644 --- a/src/DomainBuffers.jl +++ b/src/DomainBuffers.jl @@ -123,7 +123,11 @@ Return new buffer(s) that are coupled with the buffers provided as keyword argum match. """ function couple_buffers(dbs::DomainBuffers; kwargs...) - return Dict(key => couple_buffers(db; (k => v[key] for (k, v) in kwargs)...) for (key, db) in dbs) + return Dict( + key => (all(haskey(v, key) for (_, v) in kwargs) ? + couple_buffers(db; (k => v[key] for (k, v) in kwargs)...) : + db) for (key, db) in dbs) + #return Dict(key => couple_buffers(db; (k => v[key] for (k, v) in kwargs)...) for (key, db) in dbs) end """ diff --git a/src/Simulation.jl b/src/Simulation.jl index 8983c754..9cba8eb7 100644 --- a/src/Simulation.jl +++ b/src/Simulation.jl @@ -63,5 +63,13 @@ end CoupledSimulations(; kwargs...) = CoupledSimulations(NamedTuple{keys(kwargs)}(values(kwargs))) function get_domain_simulation(cs::CoupledSimulations, name::String) - return CoupledSimulations(map(s -> get_domain_simulation(s, name), cs.sims)) -end + # Need to return a named tuple with only the simulations that have a domain called `name` + sims = Pair{Symbol, Simulation}[] + for (key, sim) in zip(keys(cs.sims), values(cs.sims)) + if haskey(sim.db, name) + push!(sims, key => get_domain_simulation(sim, name)) + end + end + return CoupledSimulations(NamedTuple(sims)) +# return CoupledSimulations(map(s -> get_domain_simulation(s, name), cs.sims)) +end \ No newline at end of file