Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 5 additions & 8 deletions src/MultiRegion/multi_region_field.jl
Original file line number Diff line number Diff line change
@@ -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
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

Expand Down Expand Up @@ -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

Expand Down
13 changes: 8 additions & 5 deletions src/MultiRegion/multi_region_grid.jl
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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))

Expand Down