From 0e70536c16b8c046ca809ddb03185a46e252986a Mon Sep 17 00:00:00 2001
From: Stephan Hilb <stephan@ecshi.net>
Date: Mon, 22 Nov 2021 11:39:21 +0100
Subject: [PATCH] fix cosmetic stuff

---
 src/function.jl | 9 ++++++---
 src/image.jl    | 1 +
 src/operator.jl | 2 +-
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/function.jl b/src/function.jl
index 2e001fa..1d00318 100644
--- a/src/function.jl
+++ b/src/function.jl
@@ -13,7 +13,6 @@ ndofs(::P1) = 3
 ndofs(::DP0) = 1
 ndofs(::DP1) = 3
 
-# FIXME: should be static vectors
 # evaluate all (1-dim) local basis functions against x
 evaluate_basis(::P1, x) = SA[1 - x[1] - x[2], x[1], x[2]]
 evaluate_basis(::DP0, x) = SA[1]
@@ -29,6 +28,8 @@ struct FeSpace{M, Fe, S}
     ndofs::Int # = maximum(dofmap)
 end
 
+# TODO: size should probably be a type argument to make the constructor type
+# safe
 function FeSpace(mesh, el::P1, size_=(1,))
     # special case for P1: dofs correspond to vertices
     rdims = prod(size_)
@@ -321,6 +322,7 @@ end
 bind!(f::FacetDivergence, cell) = f.cell[] = cell
 
 
+# TODO: get rid of this hack as soon as we use size=() for scalar functions
 function sample(f::FeFunction)
     out = _sample(f)
     return f.space.size == (1,) ?
@@ -444,14 +446,15 @@ function save_csv(path, f::FeFunction)
 	throw(ArgumentError("non-scalar functions unsupported"))
     mesh = f.space.mesh
     df = DataFrame()
-    X = SA[0 1 0; 0 0 1]
+    X = SA[0 1 0; 0 0 1] # corners in local coordinates
     for cell in cells(mesh)
 	bind!(f, cell)
 	A = SArray{Tuple{ndims_space(mesh), nvertices_cell(mesh)}}(
 	    view(mesh.vertices, :, view(mesh.cells, :, cell)))
 
 	for k in axes(A, 2)
-	    push!(df, (x = A[1, k], y = A[2, k], c = evaluate(f, X[:, k])[1]))
+	    push!(df, (x = A[1, k], y = A[2, k],
+                f_xy = evaluate(f, X[:, k])[1]))
 	end
     end
     CSV.write(path, df)
diff --git a/src/image.jl b/src/image.jl
index 081d5e5..0ea64e5 100644
--- a/src/image.jl
+++ b/src/image.jl
@@ -2,6 +2,7 @@ export interpolate_bilinear, halve, warp_backwards
 
 eval_neumann(img, x) = img[clamp.(Tuple(x), axes(img))...]
 
+# uses native array indexing, i.e. 1:n
 function interpolate_bilinear(img, x)
     x0 = floor.(Int, x)
     x1 = x0 .+ 1
diff --git a/src/operator.jl b/src/operator.jl
index b86afcd..1a21b05 100644
--- a/src/operator.jl
+++ b/src/operator.jl
@@ -261,7 +261,7 @@ function project_img2!(u::FeFunction, img)
             # size: nrdims
             value = evaluate(f, xhat)
             # size: nldofs
-            phix = evaluate_basis(space.element, SVector{d}(view(qx, :, k)))
+            phix = evaluate_basis(space.element, xhat)
 
             # size: nrdims × nldofs
             gdofs = u.space.dofmap[:, :, cell]
-- 
GitLab