Skip to content
Snippets Groups Projects
Commit b93524e2 authored by Dominic Kempf's avatar Dominic Kempf
Browse files

Fixup generation of ordering tags

parent ab7c277b
No related branches found
No related tags found
No related merge requests found
......@@ -223,31 +223,31 @@ def name_test_gfs():
return name_gfs(element, is_dirichlet)
def name_gfs(element, is_dirichlet, treepath=()):
def name_gfs(element, is_dirichlet, treepath=(), root=True):
if isinstance(element, (VectorElement, TensorElement)):
subel = element.sub_elements()[0]
subgfs = name_gfs(subel, is_dirichlet[:subel.value_size()], treepath=treepath + (0,))
subgfs = name_gfs(subel, is_dirichlet[:subel.value_size()], treepath=treepath + (0,), root=False)
name = "{}_pow{}gfs_{}".format(subgfs,
element.num_sub_elements(),
"_".join(str(t) for t in treepath))
define_power_gfs(element, is_dirichlet, name, subgfs)
define_power_gfs(element, is_dirichlet, name, subgfs, root)
return name
elif isinstance(element, MixedElement):
k = 0
subgfs = []
for i, subel in enumerate(element.sub_elements()):
subgfs.append(name_gfs(subel, is_dirichlet[k:k + subel.value_size()], treepath=treepath + (i,)))
subgfs.append(name_gfs(subel, is_dirichlet[k:k + subel.value_size()], treepath=treepath + (i,), root=False))
k = k + subel.value_size()
name = "_".join(subgfs)
name = "{}_{}".format(name, "_".join(str(t) for t in treepath))
define_composite_gfs(element, is_dirichlet, name, tuple(subgfs))
define_composite_gfs(element, is_dirichlet, name, tuple(subgfs), root)
return name
else:
assert isinstance(element, (FiniteElement, TensorProductElement))
name = "{}{}_gfs_{}".format(FEM_name_mangling(element).lower(),
"_dirichlet" if is_dirichlet[0] else "",
"_".join(str(t) for t in treepath))
define_gfs(element, is_dirichlet, name)
define_gfs(element, is_dirichlet, name, root)
return name
......@@ -289,8 +289,8 @@ def type_gfs(element, is_dirichlet, root=True):
@preamble
def define_gfs(element, is_dirichlet, name):
gfstype = type_gfs(element, is_dirichlet)
def define_gfs(element, is_dirichlet, name, root):
gfstype = type_gfs(element, is_dirichlet, root=root)
gv = name_leafview()
fem = name_fem(element)
return ["{} {}({}, {});".format(gfstype, name, gv, fem),
......@@ -298,17 +298,17 @@ def define_gfs(element, is_dirichlet, name):
@preamble
def define_power_gfs(element, is_dirichlet, name, subgfs):
gv = name_leafview()
fem = name_fem(element.sub_elements()[0])
gfstype = type_gfs(element, is_dirichlet)
return ["{} {}({}, {});".format(gfstype, name, gv, fem),
def define_power_gfs(element, is_dirichlet, name, subgfs, root):
# gv = name_leafview()
# fem = name_fem(element.sub_elements()[0])
gfstype = type_gfs(element, is_dirichlet, root=root)
return ["{} {}({});".format(gfstype, name, subgfs),
"{}.name(\"{}\");".format(name, name)]
@preamble
def define_composite_gfs(element, is_dirichlet, name, subgfs):
gfstype = type_gfs(element, is_dirichlet)
def define_composite_gfs(element, is_dirichlet, name, subgfs, root):
gfstype = type_gfs(element, is_dirichlet, root=root)
return ["{} {}({});".format(gfstype, name, ", ".join(subgfs)),
"{}.update();".format(name)]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment