comparison src/Grids/manifolds.jl @ 1869:20bd8887db0d feature/grids/manifolds

Fix Aqua and JET fails
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 24 Jan 2025 23:40:28 +0100
parents de4b4f2aee4f
children 04c251bccbd4
comparison
equal deleted inserted replaced
1868:81559cb7b11c 1869:20bd8887db0d
58 unithyperbox(D) = unithyperbox(Float64,D) 58 unithyperbox(D) = unithyperbox(Float64,D)
59 59
60 60
61 struct Simplex{T,D,NV} <: ParameterSpace{D} 61 struct Simplex{T,D,NV} <: ParameterSpace{D}
62 verticies::NTuple{NV,SVector{D,T}} 62 verticies::NTuple{NV,SVector{D,T}}
63
64 Simplex(verticies::Tuple{SVector{D,T}, Vararg{SVector{D,T},N}}) where {T,D,N} = new{T,D,N+1}(verticies)
65 Simplex(::Tuple{}) = throw(ArgumentError("Must provide at least one vertex."))
63 end 66 end
64 67
65 function Simplex(verticies::Vararg{AbstractArray}) 68 function Simplex(verticies::Vararg{AbstractArray})
66 ET = mapreduce(eltype,promote_type,verticies) 69 ET = mapreduce(eltype,promote_type,verticies)
67 T = SVector{length(verticies[1]),ET} 70 T = SVector{length(verticies[1]),ET}
189 end 192 end
190 193
191 194
192 function polygon_edges(ps...) 195 function polygon_edges(ps...)
193 n = length(ps) 196 n = length(ps)
194 return [LineSegment(ps[i], ps[mod1(i+1,n)]) for i ∈ eachindex(Ps)] 197 return [LineSegment(ps[i], ps[mod1(i+1,n)]) for i ∈ eachindex(ps)]
195 end 198 end
196 199
197 struct Circle{T,PT} <: Curve 200 struct Circle{T,PT} <: Curve
198 c::PT 201 c::PT
199 r::T 202 r::T
200 end 203 end
201 204
202 (c::Circle)(θ) = c.c + r*@SVector[cos(Θ), sin(Θ)] 205 function (C::Circle)(θ)
206 (;c, r) = C
207 c + r*@SVector[cos(θ), sin(θ)]
208 end
203 209
204 struct TransfiniteInterpolationSurface{T1,T2,T3,T4} <: Surface 210 struct TransfiniteInterpolationSurface{T1,T2,T3,T4} <: Surface
205 c₁::T1 211 c₁::T1
206 c₂::T2 212 c₂::T2
207 c₃::T3 213 c₃::T3