From 5c2ed580dd90eb0a3a9eb704ef2b894f348d9e8d Mon Sep 17 00:00:00 2001 From: Marcel Koch <marcel.koch@uni-muenster.de> Date: Wed, 23 Jan 2019 13:35:38 +0100 Subject: [PATCH] adds 3d case for neumann bc --- .../codegen/blockstructured/accumulation.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/python/dune/codegen/blockstructured/accumulation.py b/python/dune/codegen/blockstructured/accumulation.py index 89fee47c..a48096dc 100644 --- a/python/dune/codegen/blockstructured/accumulation.py +++ b/python/dune/codegen/blockstructured/accumulation.py @@ -64,15 +64,19 @@ def blockstructured_boundary_predicated(measure, subdomain_id): def face_id_equals(id): return prim.Comparison(prim.Variable(face_id), "==", id) + def iname_equals(iname, i): + return prim.Comparison(prim.Variable(iname), "==", i) + k = get_form_option("number_of_blocks") - if(world_dimension() == 2): - predicates.append(prim.If(face_id_equals(0), prim.Comparison(prim.Variable(subelem_inames[0]), "==", 0), True)) - predicates.append(prim.If(face_id_equals(1), prim.Comparison(prim.Variable(subelem_inames[0]), "==", k - 1), True)) - predicates.append(prim.If(face_id_equals(2), prim.Comparison(prim.Variable(subelem_inames[1]), "==", 0), True)) - predicates.append(prim.If(face_id_equals(3), prim.Comparison(prim.Variable(subelem_inames[1]), "==", k - 1), True)) - else: - raise NotImplementedError() + if world_dimension() >= 2: + predicates.append(prim.If(face_id_equals(0), iname_equals(subelem_inames[0], 0), True)) + predicates.append(prim.If(face_id_equals(1), iname_equals(subelem_inames[0], k - 1), True)) + predicates.append(prim.If(face_id_equals(2), iname_equals(subelem_inames[1], 0), True)) + predicates.append(prim.If(face_id_equals(3), iname_equals(subelem_inames[1], k - 1), True)) + if world_dimension() == 3: + predicates.append(prim.If(face_id_equals(4), iname_equals(subelem_inames[2], 0), True)) + predicates.append(prim.If(face_id_equals(5), iname_equals(subelem_inames[2], k - 1), True)) return frozenset(predicates) -- GitLab