From 13611fc45b64249f2fd83f9ad400790397b1e43b Mon Sep 17 00:00:00 2001 From: Tristan Montoya Date: Tue, 14 Jan 2025 23:10:10 -0500 Subject: [PATCH] Quick fix to multithreading issue by refining specialization of contravariant vectors (#62) * quick fix for specialization of get_contravariant_vector * remove unused static2val * run formatter --- .../containers_2d_manifold_in_3d_cartesian.jl | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/solvers/dgsem_p4est/containers_2d_manifold_in_3d_cartesian.jl b/src/solvers/dgsem_p4est/containers_2d_manifold_in_3d_cartesian.jl index 5f67509..3ecd872 100644 --- a/src/solvers/dgsem_p4est/containers_2d_manifold_in_3d_cartesian.jl +++ b/src/solvers/dgsem_p4est/containers_2d_manifold_in_3d_cartesian.jl @@ -43,14 +43,22 @@ end return uEltype end -# Extract contravariant vector Ja^i (i = index) as SVector -# This function dispatches on the type of contravariant_vectors -static2val(::Trixi.StaticInt{N}) where {N} = Val{N}() -@inline function Trixi.get_contravariant_vector(index, contravariant_vectors::PtrArray, - indices...) +# Extract contravariant vector Ja^i (i = index) as SVector. This function dispatches on the +# type of contravariant_vectors, specializing for NDIMS = 2 and NDIMS_AMBIENT = 3 by using +# the fact that the second type parameter of PtrArray is NDIMS + 3, and the fourth type +# parameter of PtrArray is Tuple{StaticInt{NDIMS_AMBIENT}, Vararg{IntT, NDIMS + 2}}. +@inline function Trixi.get_contravariant_vector(index, + contravariant_vectors::PtrArray{RealT, + 5, + <:Any, + Tuple{Trixi.StaticInt{3}, + IntT, + IntT, + IntT, + IntT}}, + indices...) where {RealT, IntT} return SVector(ntuple(@inline(dim->contravariant_vectors[dim, index, indices...]), - static2val(static_size(contravariant_vectors, - Trixi.StaticInt(1))))) + 3)) end # Create element container and initialize element data.