comparison test/Grids/mapped_grid_test.jl @ 1739:e1ae5d8e30c3 feature/grids/curvilinear

Add tests for jacobian_determinant, metric_tensor, and metric_tensor_inverse
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 11 Sep 2024 08:59:03 +0200
parents 7573c9244e47
children 9f2bc8ea6a07
comparison
equal deleted inserted replaced
1738:7573c9244e47 1739:e1ae5d8e30c3
239 239
240 @test mapped_grid(lg, x̄, J) == mg 240 @test mapped_grid(lg, x̄, J) == mg
241 end 241 end
242 242
243 @testset "jacobian_determinant" begin 243 @testset "jacobian_determinant" begin
244 @test_broken false 244 x̄((ξ, η)) = @SVector[ξ*η, ξ + η^2]
245 J((ξ, η)) = @SMatrix[
246 η ξ;
247 1 2η;
248 ]
249
250 g = mapped_grid(x̄, J, 10, 11)
251 J = map(logicalgrid(g)) do (ξ,η)
252 2η^2 - ξ
253 end
254 @test jacobian_determinant(g) ≈ J
245 end 255 end
246 256
247 @testset "metric_tensor" begin 257 @testset "metric_tensor" begin
248 @test_broken false 258 x̄((ξ, η)) = @SVector[ξ*η, ξ + η^2]
259 J((ξ, η)) = @SMatrix[
260 η ξ;
261 1 2η;
262 ]
263
264 g = mapped_grid(x̄, J, 10, 11)
265 G = map(logicalgrid(g)) do (ξ,η)
266 @SMatrix[
267 1+η^2 ξ*η+2η;
268 ξ*η+2η ξ^2 + 4η^2;
269 ]
270 end
271 @test metric_tensor(g) ≈ G
249 end 272 end
250 273
251 @testset "metric_tensor_inverse" begin 274 @testset "metric_tensor_inverse" begin
252 @test_broken false 275 x̄((ξ, η)) = @SVector[ξ + ξ^2/2, η + η^2 + ξ^2/2]
276 J((ξ, η)) = @SMatrix[
277 1+ξ 0;
278 ξ 1+η;
279 ]
280
281 g = mapped_grid(x̄, J, 10, 11)
282 G⁻¹ = map(logicalgrid(g)) do (ξ,η)
283 @SMatrix[
284 (1+η)^2 -ξ*(1+η);
285 -ξ*(1+η) (1+ξ)^2+ξ^2;
286 ]/(((1+ξ)^2+ξ^2)*(1+η)^2 - ξ^2*(1+η)^2)
287
288 end
289
290 @test metric_tensor_inverse(g) ≈ G⁻¹
253 end 291 end
254 292
255 @testset "min_spacing" begin 293 @testset "min_spacing" begin
256 let g = mapped_grid(identity, x->@SMatrix[1], 11) 294 let g = mapped_grid(identity, x->@SMatrix[1], 11)
257 @test min_spacing(g) ≈ 0.1 295 @test min_spacing(g) ≈ 0.1