Skip to content
Snippets Groups Projects
Commit 51cc7b1c authored by Marcel Koch's avatar Marcel Koch
Browse files

Moves setting/removing of degree to the right place

parent f1ffbe1f
No related branches found
No related tags found
No related merge requests found
...@@ -1785,6 +1785,26 @@ def return_statement(): ...@@ -1785,6 +1785,26 @@ def return_statement():
return "return {};".format(fail) return "return {};".format(fail)
def _blockstructured_degree_helper(element, op):
element._degree = op(element._degree, get_option("number_of_blocks"))
from ufl import MixedElement, VectorElement, TensorElement
if isinstance(element, VectorElement) or isinstance(element, TensorElement):
_blockstructured_degree_helper(element.sub_elements()[0], op)
elif isinstance(element, MixedElement):
for e in element.sub_elements():
_blockstructured_degree_helper(e, op)
def set_blockstructured_degree():
from operator import mul
_blockstructured_degree_helper(_driver_data["form"].coefficients()[0].ufl_element(), mul)
def unset_blockstructured_degree():
from operator import floordiv
_blockstructured_degree_helper(_driver_data["form"].coefficients()[0].ufl_element(), floordiv)
def generate_driver(formdatas, data): def generate_driver(formdatas, data):
# The driver module uses a global dictionary for storing necessary data # The driver module uses a global dictionary for storing necessary data
set_driver_data(formdatas, data) set_driver_data(formdatas, data)
......
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