Mercurial > repos > public > sbplib_julia
comparison src/Grids/manifolds.jl @ 1579:14d79b13b54f feature/grids/manifolds
Add tests, fix bugs, add exports, for Simplex and friends
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Thu, 25 Apr 2024 22:14:46 +0200 |
parents | 56da785ab576 |
children | fdee60ab8c4e |
comparison
equal
deleted
inserted
replaced
1578:56da785ab576 | 1579:14d79b13b54f |
---|---|
41 unitcube(T=Float64) = unithyperbox(T,3) | 41 unitcube(T=Float64) = unithyperbox(T,3) |
42 unithyperbox(T, D) = HyperBox((@SVector zeros(T,D)), (@SVector ones(T,D))) | 42 unithyperbox(T, D) = HyperBox((@SVector zeros(T,D)), (@SVector ones(T,D))) |
43 unithyperbox(D) = unithyperbox(Float64,D) | 43 unithyperbox(D) = unithyperbox(Float64,D) |
44 | 44 |
45 | 45 |
46 struct Simplex{T,D} <: ParameterSpace{D} | 46 struct Simplex{T,D,NV} <: ParameterSpace{D} |
47 verticies::NTuple{D,SVector{D,T}} | 47 verticies::NTuple{NV,SVector{D,T}} |
48 end | 48 end |
49 | 49 |
50 Simplex(verticies::Vararg{AbstractArray}) = Simplex(Tuple(SVector(v...) for v ∈ verticies)) | 50 Simplex(verticies::Vararg{AbstractArray}) = Simplex(Tuple(SVector(v...) for v ∈ verticies)) |
51 | 51 |
52 verticies(s::Simplex) = s.verticies | |
53 | |
52 Triangle{T} = Simplex{T,2} | 54 Triangle{T} = Simplex{T,2} |
53 Tetrahedron{T} = Simplex{T,3} | 55 Tetrahedron{T} = Simplex{T,3} |
54 | 56 |
55 unittriangle(T) = unitsimplex(T,2) | 57 unittriangle(T=Float64) = unitsimplex(T,2) |
56 unittetrahedron(T) = unitsimplex(T,3) | 58 unittetrahedron(T=Float64) = unitsimplex(T,3) |
57 function unitsimplex(T,D) | 59 function unitsimplex(T,D) |
58 z = @SVector zeros(T,D) | 60 z = @SVector zeros(T,D) |
59 unitelement = one(eltype(z)) | 61 unitelement = one(eltype(z)) |
60 verticies = ntuple(i->setindex(z, unitelement, i), 4) | 62 verticies = ntuple(i->setindex(z, unitelement, i), D) |
61 return Simplex(verticies) | 63 return Simplex((z,verticies...)) |
62 end | 64 end |
63 | 65 unitsimplex(D) = unitsimplex(Float64, D) |
64 | 66 |
65 """ | 67 """ |
66 | 68 |
67 A parametrized description of a manifold or part of a manifold. | 69 A parametrized description of a manifold or part of a manifold. |
68 | 70 |