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