Robert, do you know off hand of any changes to Region or Material that may have broken this? Otherwise, I can try to reproduce it in a simpler use case, for debugging.. anyway here is a description of whats happening:
probeFlux = Term.new('dw_surface_integrate(elecProps.sigma, s)', self.integral, self.probeSurf, elecProps=self.matP, s=self.s)
self.probeSurf = self.domain.create_region('ProbeSurf', 'r.Probe *f r.Tissue', kind='facet', parent='Tissue')
/usr/local/lib/python2.7/dist-packages/sfepy/discrete/problem.pyc in solve(self, state0, nls_status, ls_conf, nls_conf, force_values, var_data)
1012 self.equations.set_data(var_data, ignore_unknown=True)
1013
-> 1014 self.update_materials()
1015 state0.apply_ebc(force_values=force_values)
1016
/usr/local/lib/python2.7/dist-packages/sfepy/discrete/problem.pyc in update_materials(self, ts, mode, verbose)
528 self.update_time_stepper(ts)
529 self.equations.time_update_materials(self.ts, mode=mode,
--> 530 problem=self, verbose=verbose)
531
532
/usr/local/lib/python2.7/dist-packages/sfepy/discrete/equations.pyc in time_update_materials(self, ts, mode, problem, verbose)
318 """
319 self.materials.time_update(ts, self, mode=mode, problem=problem,
--> 320 verbose=verbose)
321
322 def setup_initial_conditions(self, ics, functions=None):
/usr/local/lib/python2.7/dist-packages/sfepy/discrete/materials.pyc in time_update(self, ts, equations, mode, problem, verbose)
55 for mat in self:
---> 57 mat.time_update(ts, equations, mode=mode, problem=problem)
58 if verbose: output('...done in %.2f s' % (time.clock() - tt))
59
/usr/local/lib/python2.7/dist-packages/sfepy/discrete/materials.pyc in time_update(self, ts, equations, mode, problem)
304
305 for key, term in self.iter_terms(equations):
--> 306 self.update_data(key, ts, equations, term, problem=problem)
307
308 self.update_special_data(ts, equations, problem=problem)
/usr/local/lib/python2.7/dist-packages/sfepy/discrete/materials.pyc in update_data(self, key, ts, equations, term, problem)
220 data = self.function(ts, coors, mode='qp',
221 equations=equations, term=term, problem=problem,
--> 222 **self.extra_args)
223
224 self.set_data(key, qps, data)
/usr/local/lib/python2.7/dist-packages/sfepy/discrete/functions.pyc in __call__(self, *args, **kwargs)
32 _kwargs = dict(kwargs)
33 _kwargs.update(self.extra_args)
---> 34 return self.function(*args, **_kwargs)
35
36 def set_function(self, function, is_constant=False):
/usr/local/lib/python2.7/dist-packages/sfepy/discrete/functions.pyc in get_constants(ts, coors, mode, term, problem, **kwargs)
112 region = problem.domain.regions[rkey]
113 rval = nm.array(rval, dtype=nm.float64, ndmin=3)
--> 114 ii = term.region.get_cell_indices(region.cells)
115 matdata[ii] = rval
116
/usr/local/lib/python2.7/dist-packages/sfepy/discrete/common/region.pyc in get_cell_indices(self, cells, true_cells_only)
600 to facets are returned if the region itself contains no cells.
601 """
--> 602 fcells = self.get_cells(true_cells_only=true_cells_only)
603
604 ii = nm.searchsorted(fcells, cells)
/usr/local/lib/python2.7/dist-packages/sfepy/discrete/common/region.pyc in get_cells(self, true_cells_only)
579 msg = 'region %s has not true cells! (has kind: %s)' \
--> 581 raise ValueError(msg)
582
583 else:
ValueError: region ProbeSurf has not true cells! (has kind: facet)