Skip to content

Commit 4b83486

Browse files
Merge branch 'main' into ss/optimize-masking
2 parents 6decaf7 + 31e62c6 commit 4b83486

File tree

2 files changed

+32
-26
lines changed

2 files changed

+32
-26
lines changed

src/Grids/Grids.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ struct ZDirection <: AbstractDirection end
118118
struct NegativeZDirection <: AbstractDirection end
119119

120120
include("abstract_grid.jl")
121-
include("vertical_coordinate.jl")
121+
include("vertical_coordinates.jl")
122122
include("grid_utils.jl")
123123
include("nodes_and_spacings.jl")
124124
include("zeros_and_ones.jl")

src/Grids/vertical_coordinate.jl renamed to src/Grids/vertical_coordinates.jl

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,48 +3,54 @@
33
####
44

55
# This file implements everything related to vertical coordinates in Oceananigans.
6-
# Vertical coordinates are independent of the underlying grid type as we support grids that are
7-
# "unstructured" or "curvilinear" only in the horizontal direction.
8-
# For this reason the vertical coodinate is _special_, and it can be implemented once for all grid types.
6+
# Vertical coordinates are independent of the underlying grid type since only grids that are
7+
# "unstructured" or "curvilinear" in the horizontal directions are supported in Oceananigans.
8+
# Thus the vertical coordinate is _special_, and it can be implemented once for all grid types.
99

1010
abstract type AbstractVerticalCoordinate end
1111

12-
# Represents a static one-dimensional vertical coordinate.
13-
#
14-
# # Fields
15-
# - `cᶜ::C`: Cell-centered coordinate.
16-
# - `cᶠ::C`: Face-centered coordinate.
17-
# - `Δᶜ::D`: Cell-centered grid spacing.
18-
# - `Δᶠ::D`: Face-centered grid spacing.
19-
struct StaticVerticalCoordinate{C, D} <: AbstractVerticalCoordinate
12+
"""
13+
struct StaticVerticalCoordinate{C, D, E, F} <: AbstractVerticalCoordinate
14+
15+
Represent a static one-dimensional vertical coordinate.
16+
17+
Fields
18+
======
19+
20+
- `cᶜ::C`: Cell-centered coordinate.
21+
- `cᶠ::D`: Face-centered coordinate.
22+
- `Δᶜ::E`: Cell-centered grid spacing.
23+
- `Δᶠ::F`: Face-centered grid spacing.
24+
"""
25+
struct StaticVerticalCoordinate{C, D, E, F} <: AbstractVerticalCoordinate
2026
cᵃᵃᶠ :: C
21-
cᵃᵃᶜ :: C
22-
Δᵃᵃᶠ :: D
23-
Δᵃᵃᶜ :: D
27+
cᵃᵃᶜ :: D
28+
Δᵃᵃᶠ :: E
29+
Δᵃᵃᶜ :: F
2430
end
2531

2632
####
27-
#### Some usefull aliases
33+
#### Some useful aliases
2834
####
2935

30-
const RegularVerticalCoordinate = StaticVerticalCoordinate{<:Any, <:Number}
36+
const RegularVerticalCoordinate = StaticVerticalCoordinate{<:Any, <:Any, <:Number, <:Number}
3137
const RegularVerticalGrid = AbstractUnderlyingGrid{<:Any, <:Any, <:Any, <:Any, <:RegularVerticalCoordinate}
3238

3339
####
3440
#### Adapt and on_architecture
3541
####
3642

37-
Adapt.adapt_structure(to, coord::StaticVerticalCoordinate) =
38-
StaticVerticalCoordinate(Adapt.adapt(to, coord.cᵃᵃᶠ),
39-
Adapt.adapt(to, coord.cᵃᵃᶜ),
40-
Adapt.adapt(to, coord.Δᵃᵃᶠ),
41-
Adapt.adapt(to, coord.Δᵃᵃᶜ))
43+
Adapt.adapt_structure(to, coord::StaticVerticalCoordinate) =
44+
StaticVerticalCoordinate(Adapt.adapt(to, coord.cᵃᵃᶠ),
45+
Adapt.adapt(to, coord.cᵃᵃᶜ),
46+
Adapt.adapt(to, coord.Δᵃᵃᶠ),
47+
Adapt.adapt(to, coord.Δᵃᵃᶜ))
4248

4349
on_architecture(arch, coord::StaticVerticalCoordinate) =
44-
StaticVerticalCoordinate(on_architecture(arch, coord.cᵃᵃᶠ),
45-
on_architecture(arch, coord.cᵃᵃᶜ),
46-
on_architecture(arch, coord.Δᵃᵃᶠ),
47-
on_architecture(arch, coord.Δᵃᵃᶜ))
50+
StaticVerticalCoordinate(on_architecture(arch, coord.cᵃᵃᶠ),
51+
on_architecture(arch, coord.cᵃᵃᶜ),
52+
on_architecture(arch, coord.Δᵃᵃᶠ),
53+
on_architecture(arch, coord.Δᵃᵃᶜ))
4854

4955
#####
5056
##### Nodes and spacings (common to every grid)...

0 commit comments

Comments
 (0)