From 59c921540006bfbb5a06e2443b358470b5932c82 Mon Sep 17 00:00:00 2001 From: Stephan Hilb <stephan@ecshi.net> Date: Fri, 23 Jul 2021 18:31:08 +0200 Subject: [PATCH] fix performance for image projection --- src/operator.jl | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/operator.jl b/src/operator.jl index e0ae11c..bc27855 100644 --- a/src/operator.jl +++ b/src/operator.jl @@ -177,8 +177,9 @@ function project_img(space::FeSpace, img) for jdim in 1:nrdims, ldofj in 1:nldofs gdofj = space.dofmap[jdim, ldofj, cell] - phij = SArray{Tuple{space.size...}}(qphi[:, jdim, ldofj, k]) - dphij = SArray{Tuple{space.size..., d}}(dqphi[:, :, jdim, ldofj, k] * delmapinv) + phij = SArray{Tuple{space.size...}}(view(qphi, :, jdim, ldofj, k)) + dphij = SArray{Tuple{space.size..., d}}( + SArray{Tuple{nrdims, d}}(view(dqphi, :, :, jdim, ldofj, k)) * delmapinv) lv = qw[k] * l(x, phij, dphij; opvalues...) * intel b[gdofj] += lv @@ -187,8 +188,9 @@ function project_img(space::FeSpace, img) for idim in 1:nrdims, ldofi in 1:nldofs gdofi = space.dofmap[idim, ldofi, cell] - phii = SArray{Tuple{space.size...}}(qphi[:, idim, ldofi, k]) - dphii = SArray{Tuple{space.size..., d}}(dqphi[:, :, idim, ldofi, k] * delmapinv) + phii = SArray{Tuple{space.size...}}(view(qphi, :, idim, ldofi, k)) + dphii = SArray{Tuple{space.size..., d}}( + SArray{Tuple{nrdims, d}}(view(dqphi, :, :, idim, ldofi, k)) * delmapinv) av = qw[k] * a(x, phii, dphii, phij, dphij; opvalues...) * intel push!(I, gdofi) -- GitLab