From de8db68c0fac873a5ee6dbb03e1a1efaca769a84 Mon Sep 17 00:00:00 2001 From: "Navid C. Constantinou" Date: Thu, 16 Oct 2025 08:27:33 +1100 Subject: [PATCH 1/3] add missing import when extending FieldBoundaryConditions for MultiRegionGrids --- src/MultiRegion/multi_region_field.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MultiRegion/multi_region_field.jl b/src/MultiRegion/multi_region_field.jl index b425df8220..a08e25ead7 100644 --- a/src/MultiRegion/multi_region_field.jl +++ b/src/MultiRegion/multi_region_field.jl @@ -7,7 +7,7 @@ using Oceananigans.OutputWriters: output_indices using Base: @propagate_inbounds import Oceananigans.DistributedComputations: reconstruct_global_field, CommunicationBuffers -import Oceananigans.BoundaryConditions: regularize_field_boundary_conditions +import Oceananigans.BoundaryConditions: regularize_field_boundary_conditions, FieldBoundaryConditions import Oceananigans.Grids: xnodes, ynodes import Oceananigans.Fields: set!, compute!, compute_at!, interior, validate_field_data, validate_boundary_conditions import Oceananigans.Fields: validate_indices, communication_buffers From c68969a56fac8785048066c07c0a7e2e8a7b9b62 Mon Sep 17 00:00:00 2001 From: "Navid C. Constantinou" Date: Thu, 16 Oct 2025 08:34:44 +1100 Subject: [PATCH 2/3] imports alphabetically --- src/MultiRegion/multi_region_field.jl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/MultiRegion/multi_region_field.jl b/src/MultiRegion/multi_region_field.jl index a08e25ead7..0aac7296a2 100644 --- a/src/MultiRegion/multi_region_field.jl +++ b/src/MultiRegion/multi_region_field.jl @@ -1,17 +1,17 @@ +using Oceananigans.AbstractOperations: AbstractOperation, compute_computed_field! using Oceananigans.BoundaryConditions: default_auxiliary_bc using Oceananigans.Fields: FunctionField, data_summary, AbstractField, instantiated_location -using Oceananigans.AbstractOperations: AbstractOperation, compute_computed_field! using Oceananigans.Operators: assumed_field_location using Oceananigans.OutputWriters: output_indices using Base: @propagate_inbounds -import Oceananigans.DistributedComputations: reconstruct_global_field, CommunicationBuffers import Oceananigans.BoundaryConditions: regularize_field_boundary_conditions, FieldBoundaryConditions -import Oceananigans.Grids: xnodes, ynodes -import Oceananigans.Fields: set!, compute!, compute_at!, interior, validate_field_data, validate_boundary_conditions -import Oceananigans.Fields: validate_indices, communication_buffers import Oceananigans.Diagnostics: hasnan +import Oceananigans.DistributedComputations: reconstruct_global_field, CommunicationBuffers +import Oceananigans.Fields: set!, compute!, compute_at!, interior, communication_buffers, + validate_field_data, validate_boundary_conditions, validate_indices +import Oceananigans.Grids: xnodes, ynodes import Base: fill!, axes From a2c13bc7b100b717485674f6fcf9881956406aa7 Mon Sep 17 00:00:00 2001 From: "Navid C. Constantinou" Date: Thu, 16 Oct 2025 14:02:13 +1100 Subject: [PATCH 3/3] move FieldBoundaryConditions(mrg::MultiRegionGrids...) --- src/MultiRegion/multi_region_field.jl | 5 +---- src/MultiRegion/multi_region_grid.jl | 13 ++++++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/MultiRegion/multi_region_field.jl b/src/MultiRegion/multi_region_field.jl index 0aac7296a2..09040ec9f5 100644 --- a/src/MultiRegion/multi_region_field.jl +++ b/src/MultiRegion/multi_region_field.jl @@ -6,7 +6,7 @@ using Oceananigans.OutputWriters: output_indices using Base: @propagate_inbounds -import Oceananigans.BoundaryConditions: regularize_field_boundary_conditions, FieldBoundaryConditions +import Oceananigans.BoundaryConditions: regularize_field_boundary_conditions import Oceananigans.Diagnostics: hasnan import Oceananigans.DistributedComputations: reconstruct_global_field, CommunicationBuffers import Oceananigans.Fields: set!, compute!, compute_at!, interior, communication_buffers, @@ -193,9 +193,6 @@ function inject_regional_bcs(grid, connectivity, loc, indices; return FieldBoundaryConditions(indices, west, east, south, north, bottom, top, immersed) end -FieldBoundaryConditions(mrg::MultiRegionGrids, loc, indices; kwargs...) = - construct_regionally(inject_regional_bcs, mrg, mrg.connectivity, Reference(loc), indices; kwargs...) - function Base.show(io::IO, field::MultiRegionField) bcs = getregion(field, 1).boundary_conditions diff --git a/src/MultiRegion/multi_region_grid.jl b/src/MultiRegion/multi_region_grid.jl index 6473cdb485..265af142c4 100644 --- a/src/MultiRegion/multi_region_grid.jl +++ b/src/MultiRegion/multi_region_grid.jl @@ -1,12 +1,12 @@ using Oceananigans.Grids: metrics_precomputed, on_architecture, pop_flat_elements, grid_name using Oceananigans.ImmersedBoundaries: GridFittedBottom, PartialCellBottom, GridFittedBoundary -import Oceananigans.Grids: architecture, size, new_data, halo_size -import Oceananigans.Grids: with_halo, on_architecture -import Oceananigans.Grids: destantiate -import Oceananigans.Grids: minimum_xspacing, minimum_yspacing, minimum_zspacing -import Oceananigans.Models.HydrostaticFreeSurfaceModels: default_free_surface +import Oceananigans.BoundaryConditions: FieldBoundaryConditions import Oceananigans.DistributedComputations: reconstruct_global_grid +import Oceananigans.Grids: architecture, size, new_data, halo_size, + with_halo, on_architecture, destantiate, + minimum_xspacing, minimum_yspacing, minimum_zspacing +import Oceananigans.Models.HydrostaticFreeSurfaceModels: default_free_surface struct MultiRegionGrid{FT, TX, TY, TZ, CZ, P, C, G, Arch} <: AbstractUnderlyingGrid{FT, TX, TY, TZ, CZ, Arch} architecture :: Arch @@ -60,6 +60,9 @@ minimum_zspacing(grid::MultiRegionGrid, ℓx, ℓy, ℓz) = default_free_surface(grid::MultiRegionGrid; gravitational_acceleration=Oceananigans.defaults.gravitational_acceleration) = SplitExplicitFreeSurface(; substeps=50, gravitational_acceleration) +FieldBoundaryConditions(mrg::MultiRegionGrids, loc, indices; kwargs...) = + construct_regionally(inject_regional_bcs, mrg, mrg.connectivity, Reference(loc), indices; kwargs...) + """ MultiRegionGrid(global_grid; partition = XPartition(2))