comparison test/Grids/geometry_test.jl @ 2010:cf0fa2967361 feature/grids/geometry_functions

Add test for transfinite interpolation with a non-linear edge
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 01 May 2025 17:25:24 +0200
parents 486b3c6f919e
children d0b6c63c506e
comparison
equal deleted inserted replaced
2009:fe217ad46f9b 2010:cf0fa2967361
201 @test ti(1/2, 0) == (a+b)/2 201 @test ti(1/2, 0) == (a+b)/2
202 @test ti(1/2, 1) == (c+d)/2 202 @test ti(1/2, 1) == (c+d)/2
203 @test ti(0, 1/2) == (a+d)/2 203 @test ti(0, 1/2) == (a+d)/2
204 @test ti(1, 1/2) == (b+c)/2 204 @test ti(1, 1/2) == (b+c)/2
205 205
206 # TODO: Some test with curved edges? 206 a, b, c, d = [0,0],[1,1/2],[1,3/2],[0,1]
207 ti = TransfiniteInterpolationSurface(
208 t->@SVector[t, t^2/2],
209 LineSegment(b,c),
210 LineSegment(c,d),
211 LineSegment(d,a),
212 )
213
214 @test ti(0,0) == a
215 @test ti(1,0) == b
216 @test ti(1,1) == c
217 @test ti(0,1) == d
218
219 @test ti(1/2, 0) == [1/2, 1/8]
220 @test ti(1/2, 1) == (c+d)/2
221 @test ti(0, 1/2) == (a+d)/2
222 @test ti(1, 1/2) == (b+c)/2
207 end 223 end
208 224
209 @testset "check_transfiniteinterpolation" begin 225 @testset "check_transfiniteinterpolation" begin
210 cs = polygon_edges([0,0],[1,0],[1,1],[0,1]) 226 cs = polygon_edges([0,0],[1,0],[1,1],[0,1])
211 ti = TransfiniteInterpolationSurface(cs...) 227 ti = TransfiniteInterpolationSurface(cs...)
266 mid(x,y) = (x+y)/2 282 mid(x,y) = (x+y)/2
267 @test Grids.jacobian(ti, [1/2, 0]) ≈ [b-a mid(c,d)-mid(a,b)] 283 @test Grids.jacobian(ti, [1/2, 0]) ≈ [b-a mid(c,d)-mid(a,b)]
268 @test Grids.jacobian(ti, [1/2, 1]) ≈ [c-d mid(c,d)-mid(a,b)] 284 @test Grids.jacobian(ti, [1/2, 1]) ≈ [c-d mid(c,d)-mid(a,b)]
269 @test Grids.jacobian(ti, [0, 1/2]) ≈ [mid(b,c)-mid(a,d) d-a] 285 @test Grids.jacobian(ti, [0, 1/2]) ≈ [mid(b,c)-mid(a,d) d-a]
270 @test Grids.jacobian(ti, [1, 1/2]) ≈ [mid(b,c)-mid(a,d) c-b] 286 @test Grids.jacobian(ti, [1, 1/2]) ≈ [mid(b,c)-mid(a,d) c-b]
271 287 end
272 # TODO: Some test with curved edges? 288 end
273 end
274 end