Mercurial > repos > public > sbplib_julia
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 |