diff --git a/python/dune/codegen/pdelab/localoperator.py b/python/dune/codegen/pdelab/localoperator.py index c598232f2ac4a9f1069740551c699365de62a5a9..3b8b8f9cb2100762768d839a2dbbaba263784973 100644 --- a/python/dune/codegen/pdelab/localoperator.py +++ b/python/dune/codegen/pdelab/localoperator.py @@ -564,12 +564,10 @@ def extract_kernel_from_cache(tag, name, signature, wrap_in_cgen=True, add_timin kernel = heuristic_duplication(kernel) # Maybe apply vectorization strategies - if get_form_option("vectorization_quadloop"): - if get_form_option("sumfact"): - from dune.codegen.loopy.transformations.vectorize_quad import vectorize_quadrature_loop - kernel = vectorize_quadrature_loop(kernel) - else: - raise NotImplementedError("Only vectorizing sumfactorized code right now!") + if get_form_option("vectorization_quadloop") and get_form_option("sumfact"): + from dune.codegen.loopy.transformations.vectorize_quad import vectorize_quadrature_loop + kernel = vectorize_quadrature_loop(kernel) + if get_form_option("vectorization_blockstructured"): from dune.codegen.blockstructured.vectorization import vectorize_micro_elements kernel = vectorize_micro_elements(kernel) diff --git a/python/dune/codegen/sumfact/vectorization.py b/python/dune/codegen/sumfact/vectorization.py index 38996a90d0dfc018bbb538ddf70772092b8d7f57..674078fd54249736249047001556c4ce8bc1b289 100644 --- a/python/dune/codegen/sumfact/vectorization.py +++ b/python/dune/codegen/sumfact/vectorization.py @@ -273,7 +273,7 @@ def decide_vectorization_strategy(): all_sumfacts, active_sumfacts, inactive_sumfacts = filter_active_inactive_sumfacts() # If no vectorization is needed, abort now - if get_form_option("vectorization_strategy") == "none" or (get_global_context_value("form_type") == "jacobian" and not get_form_option("vectorization_jacobians")): + if get_form_option("vectorization_strategy") == "none" or (get_global_context_value("form_type") == "jacobian" and not get_form_option("vectorization_jacobians")) or not get_form_option("sumfact"): for sf in all_sumfacts: _cache_vectorization_info(sf, sf.copy(buffer=get_counted_variable("buffer"))) return