Skip to content

Commit 5cff887

Browse files
committed
refactor: add builder.stash_integrals()
1 parent 1f5ebbd commit 5cff887

2 files changed

Lines changed: 8 additions & 6 deletions

File tree

tsfc/driver.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import collections
21
import operator
32
import string
43
import time
@@ -157,15 +156,11 @@ def compile_integral(integral_data, form_data, prefix, parameters, interface, co
157156
params = parameters.copy()
158157
params.update(integral.metadata()) # integral metadata overrides
159158

160-
mode = pick_mode(params["mode"])
161-
mode_irs.setdefault(mode, collections.OrderedDict())
162-
163159
integrand = ufl.replace(integral.integrand(), form_data.function_replace_map)
164160
integrand_exprs = builder.compile_ufl(integrand, params, ctx)
165161
integral_exprs = builder.construct_integrals(integrand_exprs, params)
162+
builder.stash_integrals(integral_exprs, params, ctx)
166163
quad_rule = params["quadrature_rule"]
167-
for var, rep in zip(return_variables, integral_exprs):
168-
mode_irs[mode].setdefault(var, []).append(rep)
169164

170165
# Finalise mode representations into a set of assignments
171166
assignments = []

tsfc/kernel_interface/common.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,13 @@ def construct_integrals(self, expressions, params):
149149
self.argument_multiindices,
150150
params)
151151

152+
def stash_integrals(self, reps, params, ctx):
153+
mode = pick_mode(params["mode"])
154+
mode_irs = ctx['mode_irs']
155+
mode_irs.setdefault(mode, collections.OrderedDict())
156+
for var, rep in zip(self.return_variables, reps):
157+
mode_irs[mode].setdefault(var, []).append(rep)
158+
152159
@cached_property
153160
def fem_config(self):
154161
info = self.integral_data_info

0 commit comments

Comments
 (0)