diff --git a/python/dune/perftool/sumfact/basis.py b/python/dune/perftool/sumfact/basis.py index 92a8fb3eb2150ee8050a933f7ab259cfaca137e2..9af533e47eda5e2dc4d412d0a6b2b4241d5e7fa8 100644 --- a/python/dune/perftool/sumfact/basis.py +++ b/python/dune/perftool/sumfact/basis.py @@ -93,7 +93,8 @@ def pymbolic_trialfunction_gradient(element, restriction, component, visitor): if insn_dep is None: insn_dep = frozenset({Writes(inp)}) - if get_option('fastdg'): + # TODO: fastdg and vectorization + if get_option('fastdg') and index is not None: # Name of direct input, shape and globalarg is set in sum_factorization_kernel direct_input = name_coefficientcontainer(restriction) else: @@ -161,9 +162,11 @@ def pymbolic_trialfunction(element, restriction, component, visitor): name=inp, ) - if get_option('fastdg'): + # TODO: fastdg and vectorization + if get_option('fastdg') and index is not None: # Name of direct input, shape and globalarg is set in sum_factorization_kernel direct_input = name_coefficientcontainer(restriction) + setup_theta(inp, element, restriction, component, index) else: direct_input = None # Setup the input! diff --git a/python/dune/perftool/sumfact/sumfact.py b/python/dune/perftool/sumfact/sumfact.py index 41134538abcf8bf53a25b43acc34ff3d5b3b9314..80524945e454c2228a52113b69ae44fc153fafa7 100644 --- a/python/dune/perftool/sumfact/sumfact.py +++ b/python/dune/perftool/sumfact/sumfact.py @@ -362,7 +362,8 @@ def sum_factorization_kernel(a_matrices, # this reinterprets the output of the previous iteration. inp_shape = (a_matrix.cols, product(mat.rows for mat in a_matrices[:l]) * product(mat.cols for mat in a_matrices[l + 1:])) - if l==0 and direct_input is not None: + # TODO: fastdg and vectorization + if l==0 and direct_input is not None and not a_matrix.vectorized: globalarg(direct_input, dtype=np.float64, shape=inp_shape) inp = direct_input else: