Skip to content

Commit 7017aff

Browse files
Improve names
1 parent cbfb2d0 commit 7017aff

File tree

9 files changed

+29
-18
lines changed

9 files changed

+29
-18
lines changed

docs/src/APIs/domains_api.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@ Domains.SphereDomain
1717

1818
```@docs
1919
Domains.boundary_names
20+
Domains.unique_boundary_names
2021
```

src/Domains/Domains.jl

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,17 @@ float_type(domain::AbstractDomain) = float_type(coordinate_type(domain))
2222
"""
2323
boundary_names(obj::Union{AbstractDomain, AbstractMesh, AbstractTopology})
2424
25-
A tuple or vector of unique boundary names of a spatial domain.
25+
The boundary names passed to the IntervalDomain (a tuple, or `nothing`).
2626
"""
2727
function boundary_names end
2828

29+
"""
30+
unique_boundary_names(obj::Union{AbstractDomain, AbstractMesh, AbstractTopology})
31+
32+
A tuple or vector of unique boundary names of a spatial domain.
33+
"""
34+
function unique_boundary_names end
35+
2936
struct IntervalDomain{CT, B} <: AbstractDomain where {
3037
CT <: Geometry.Abstract1DPoint{FT},
3138
B <: BCTagType,
@@ -35,9 +42,9 @@ struct IntervalDomain{CT, B} <: AbstractDomain where {
3542
end
3643

3744
isperiodic(::IntervalDomain{CT, B}) where {CT, B} = B == nothing
38-
boundary_names(domain::IntervalDomain{CT, B}) where {CT, B} =
45+
unique_boundary_names(domain::IntervalDomain{CT, B}) where {CT, B} =
3946
isperiodic(domain) ? () : unique(B)
40-
boundary_names_type(::IntervalDomain{CT, B}) where {CT, B} = B
47+
boundary_names(::IntervalDomain{CT, B}) where {CT, B} = B
4148

4249
"""
4350
IntervalDomain(coord⁻, coord⁺; periodic=true)
@@ -101,7 +108,7 @@ function print_interval(io::IO, domain::IntervalDomain{CT}) where {CT}
101108
if isperiodic(domain)
102109
print(io, "(periodic)")
103110
else
104-
print(io, boundary_names_type(domain))
111+
print(io, boundary_names(domain))
105112
end
106113
end
107114
function Base.show(io::IO, domain::IntervalDomain)
@@ -117,10 +124,10 @@ end
117124
Base.:*(interval1::IntervalDomain, interval2::IntervalDomain) =
118125
RectangleDomain(interval1, interval2)
119126

120-
boundary_names(domain::RectangleDomain) = unique(
127+
unique_boundary_names(domain::RectangleDomain) = unique(
121128
Symbol[
122-
boundary_names(domain.interval1)...,
123-
boundary_names(domain.interval2)...,
129+
unique_boundary_names(domain.interval1)...,
130+
unique_boundary_names(domain.interval2)...,
124131
],
125132
)::Vector{Symbol}
126133

@@ -177,6 +184,7 @@ Base.show(io::IO, domain::SphereDomain) =
177184
print(io, nameof(typeof(domain)), ": radius = ", domain.radius)
178185

179186
boundary_names(::SphereDomain) = ()
187+
unique_boundary_names(::SphereDomain) = ()
180188
coordinate_type(::SphereDomain{FT}) where {FT} = Geometry.Cartesian123Point{FT}
181189

182190
end # module

src/InputOutput/writers.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,10 +166,10 @@ function write_new!(
166166
)
167167
write_attribute(group, "coord_min", Geometry.component(domain.coord_min, 1))
168168
write_attribute(group, "coord_max", Geometry.component(domain.coord_max, 1))
169-
!isnothing(Domains.boundary_names_type(domain)) && write_attribute(
169+
!isnothing(Domains.boundary_names(domain)) && write_attribute(
170170
group,
171171
"boundary_names",
172-
[String(bname) for bname in Domains.boundary_names_type(domain)],
172+
[String(bname) for bname in Domains.boundary_names(domain)],
173173
)
174174
return name
175175
end

src/Meshes/Meshes.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import ..Domains:
1414
RectangleDomain,
1515
SphereDomain,
1616
boundary_names,
17+
unique_boundary_names,
1718
coordinate_type
1819
import ..Geometry
1920
import SparseArrays, CubedSphere, LinearAlgebra, StaticArrays

src/Meshes/common.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
boundary_names(mesh::AbstractMesh) = boundary_names(domain(mesh))
2+
unique_boundary_names(mesh::AbstractMesh) = unique_boundary_names(domain(mesh))
23
coordinate_type(mesh::AbstractMesh) = coordinate_type(domain(mesh))
34

45
"""

src/Meshes/interval.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,9 @@ end
8888
function boundary_face_name(mesh::IntervalMesh, elem::Integer, face)
8989
if !Domains.isperiodic(mesh.domain)
9090
if elem == 1 && face == 1
91-
return Domains.boundary_names(mesh.domain)[1]
91+
return Domains.unique_boundary_names(mesh.domain)[1]
9292
elseif elem == nelements(mesh) && face == 2
93-
return Domains.boundary_names(mesh.domain)[2]
93+
return Domains.unique_boundary_names(mesh.domain)[2]
9494
end
9595
end
9696
return nothing
@@ -471,7 +471,7 @@ function truncate_mesh(
471471
new_domain = IntervalDomain(
472472
z_bottom,
473473
Geometry.ZPoint{FT}(z_top),
474-
boundary_names = Domains.boundary_names_type(trunc_domain),
474+
boundary_names = Domains.boundary_names(trunc_domain),
475475
)
476476
return IntervalMesh(new_domain, new_stretch; nelems = new_nelems)
477477
end

src/Topologies/Topologies.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import ClimaComms, Adapt
55
import ..ClimaCore
66
import ..Utilities: Cache, cart_ind, linear_ind
77
import ..Geometry
8-
import ..Domains: Domains, coordinate_type
8+
import ..Domains: Domains, coordinate_type, unique_boundary_names
99
import ..Meshes: Meshes, domain, coordinates
1010
import ..DataLayouts
1111
import ..DataLayouts: slab_index

src/Topologies/interval.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ function _IntervalTopology(
4545
if Domains.isperiodic(domain)
4646
boundaries = NamedTuple()
4747
else
48-
bn = Domains.boundary_names_type(domain)
48+
bn = Domains.boundary_names(domain)
4949
boundaries = if bn[1] == bn[2]
5050
NamedTuple{(bn[1],)}(1)
5151
else

src/Topologies/topology2d.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ function _Topology2D(
462462
# 5) faces
463463
boundaries = NamedTuple(
464464
boundary_name => Tuple{Int, Int}[] for
465-
boundary_name in Meshes.boundary_names(mesh)
465+
boundary_name in Meshes.unique_boundary_names(mesh)
466466
)
467467
interior_faces = Tuple{Int, Int, Int, Int, Bool}[]
468468
ghost_faces = Tuple{Int, Int, Int, Int, Bool}[]
@@ -772,12 +772,12 @@ end
772772

773773

774774
neighbors(topology::Topology2D) = topology.neighbor_pids
775-
boundary_names(topology::Topology2D) = keys(topology.boundaries)
776-
boundary_tags(topology::Topology2D) = NamedTuple{boundary_names(topology)}(
775+
unique_boundary_names(topology::Topology2D) = keys(topology.boundaries)
776+
boundary_tags(topology::Topology2D) = NamedTuple{unique_boundary_names(topology)}(
777777
ntuple(i -> i, length(topology.boundaries)),
778778
)
779779
boundary_tag(topology::Topology2D, boundary_name::Symbol) =
780-
findfirst(==(boundary_name), boundary_names(topology))
780+
findfirst(==(boundary_name), unique_boundary_names(topology))
781781

782782
boundary_faces(topology::Topology2D, boundary) = topology.boundaries[boundary]
783783

0 commit comments

Comments
 (0)