From 3eaf322648ad166a365c83b45c13b3c1d4f3f4cc Mon Sep 17 00:00:00 2001
From: Stephan Hilb <stephan@ecshi.net>
Date: Wed, 14 Jul 2021 12:06:01 +0200
Subject: [PATCH] fix prolongation ldofs

became broken because cells no longer assume ordered vertices
---
 src/mesh.jl | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/mesh.jl b/src/mesh.jl
index e0a5ab7..4a6f576 100644
--- a/src/mesh.jl
+++ b/src/mesh.jl
@@ -287,7 +287,7 @@ function refine!(hmesh::HMesh, marked_cells::Set; fs...)
     end
     # prolong data for refined cells
     for (old_cell, extended_cells) in refined_cells
-	for (f, extended_f) in zip(NamedTuple(fs), extended_fs)
+	for extended_f in extended_fs
 	    prolong!(extended_f, old_cell, extended_cells)
 	end
     end
@@ -343,9 +343,12 @@ function prolong!(new_f, old_cell, new_cells, ::P1)
 
     avg_data = (old_f.data[old_gdofs[:, 1]] .+ old_f.data[old_gdofs[:, 2]]) ./ 2
 
-    new_gdofs = new_f.space.dofmap[:, 3, new_cells[1]]
+    _, newldof = findmax(new_cell1_vs)
+    new_gdofs = new_f.space.dofmap[:, newldof, new_cells[1]]
     new_f.data[new_gdofs] .= avg_data
-    new_gdofs = new_f.space.dofmap[:, 3, new_cells[2]]
+
+    _, newldof = findmax(new_cell2_vs)
+    new_gdofs = new_f.space.dofmap[:, newldof, new_cells[2]]
     new_f.data[new_gdofs] .= avg_data
 end
 
-- 
GitLab