Skip to content
Snippets Groups Projects
Commit fa93ccf1 authored by René Heß's avatar René Heß
Browse files

[skip ci] Key-wordify sumfact interface classes

parent d920c3e1
No related branches found
No related tags found
No related merge requests found
......@@ -93,7 +93,7 @@ def accum_iname(element, bound, i):
class AccumulationOutput(SumfactKernelInterfaceBase, ImmutableRecord):
def __init__(self,
matrix_sequence,
matrix_sequence=None,
accumvar=None,
restriction=None,
test_element=None,
......@@ -116,6 +116,7 @@ class AccumulationOutput(SumfactKernelInterfaceBase, ImmutableRecord):
cost_permutation = sumfact_cost_permutation_strategy(matrix_sequence, self.stage)
# TODO: Isnt accumvar superfluous in the presence of all the other infos?
# Note: Do not put matrix_sequence into the Record. That screws up the vectorization strategy!
ImmutableRecord.__init__(self,
accumvar=accumvar,
restriction=restriction,
......@@ -505,7 +506,7 @@ def generate_accumulation_instruction(expr, visitor):
if priority is None:
priority = 3
output = AccumulationOutput(matrix_sequence,
output = AccumulationOutput(matrix_sequence=matrix_sequence,
accumvar=accumvar,
restriction=(test_info.restriction, trial_info.restriction),
test_element=test_info.element,
......
......@@ -59,7 +59,7 @@ import pymbolic.primitives as prim
class LFSSumfactKernelInput(SumfactKernelInterfaceBase, ImmutableRecord):
def __init__(self,
matrix_sequence,
matrix_sequence=None,
coeff_func=None,
element=None,
element_index=0,
......@@ -78,6 +78,7 @@ class LFSSumfactKernelInput(SumfactKernelInterfaceBase, ImmutableRecord):
matrix_sequence = permute_forward(matrix_sequence, quadrature_permutation)
cost_permutation = sumfact_cost_permutation_strategy(matrix_sequence, self.stage)
# Note: Do not put matrix_sequence into the Record. That screws up the vectorization strategy!
ImmutableRecord.__init__(self,
coeff_func=coeff_func,
element=element,
......@@ -265,7 +266,7 @@ def pymbolic_coefficient_gradient(element, restriction, index, coeff_func, visit
basis_size=basis_size,
)
inp = LFSSumfactKernelInput(matrix_sequence,
inp = LFSSumfactKernelInput(matrix_sequence=matrix_sequence,
coeff_func=coeff_func,
element=element,
element_index=index,
......@@ -309,7 +310,7 @@ def pymbolic_coefficient(element, restriction, index, coeff_func, visitor):
facemod=get_facemod(restriction),
basis_size=basis_size)
inp = LFSSumfactKernelInput(matrix_sequence,
inp = LFSSumfactKernelInput(matrix_sequence=matrix_sequence,
coeff_func=coeff_func,
element=element,
element_index=index,
......
......@@ -62,7 +62,10 @@ def global_corner_iname(restriction):
class GeoCornersInput(SumfactKernelInterfaceBase, ImmutableRecord):
def __init__(self, matrix_sequence, direction, restriction):
def __init__(self,
matrix_sequence=None,
direction=None,
restriction=None):
"""Base class for sum-factorized evaluation of geometry mappings
At the moment we only do this for cells and not faces. For
......@@ -86,6 +89,7 @@ class GeoCornersInput(SumfactKernelInterfaceBase, ImmutableRecord):
matrix_sequence = permute_forward(matrix_sequence, quadrature_permutation)
cost_permutation = sumfact_cost_permutation_strategy(matrix_sequence, self.stage)
# Note: Do not put matrix_sequence into the Record. That screws up the vectorization strategy!
ImmutableRecord.__init__(self,
direction=direction,
restriction=restriction,
......@@ -213,7 +217,9 @@ def pymbolic_spatial_coordinate_multilinear(do_predicates, visitor):
matrix_sequence = construct_basis_matrix_sequence(facedir=get_facedir(restriction),
facemod=get_facemod(restriction),
basis_size=(2,) * world_dimension())
inp = GeoCornersInput(matrix_sequence, visitor.indices[0], restriction)
inp = GeoCornersInput(matrix_sequence=matrix_sequence,
direction=visitor.indices[0],
restriction=restriction)
sf = SumfactKernel(matrix_sequence=matrix_sequence,
interface=inp,
)
......@@ -590,8 +596,9 @@ def _name_jacobian(i, j, restriction, visitor):
basis_size=(2,) * world_dimension())
# Sum factorization input for the i'th component of the geometry mapping
inp = GeoCornersInput(matrix_sequence, i, restriction)
inp = GeoCornersInput(matrix_sequence=matrix_sequence,
direction=i,
restriction=restriction)
sf = SumfactKernel(matrix_sequence=matrix_sequence,
interface=inp,
)
......
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