Skip to content

Commit ba6b3d8

Browse files
revert ProductTopology.basis simplifications
1 parent 97243a0 commit ba6b3d8

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

nutils/topology.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -876,6 +876,9 @@ def interfaces(self):
876876
def refined(self):
877877
return self
878878

879+
def basis(self, *args, **kwargs):
880+
return function.PlainBasis(numpy.zeros((0,)*(self.ndims+1)), numpy.zeros((0,)*(self.ndims+1)), 0, self.transforms, self.ndims, function.SelectChain(self.roots))
881+
879882
class Point(Topology):
880883
'point'
881884

@@ -2401,19 +2404,15 @@ def interfaces(self):
24012404
return DisjointUnionTopology(interfaces)
24022405

24032406
def _productbasis(self, lbasis, rbasis):
2404-
if not lbasis:
2405-
return rbasis
2406-
if not rbasis:
2407-
return lbasis
24082407
return function.ProductBasis(lbasis, rbasis, function.SelectChain(self.roots))
24092408

24102409
def basis(self, name, *args, **kwargs):
24112410
if name in ('spline', 'h-spline', 'th-spline'):
24122411
return self.basis_spline(*args, _variant=name, **kwargs)
24132412
elif name == 'std':
24142413
return self.basis_std(*args, **kwargs)
2415-
lbasis = self._left.basis(name, *args, **kwargs) if self._left.ndims else None
2416-
rbasis = self._right.basis(name, *args, **kwargs) if self._right.ndims else None
2414+
lbasis = self._left.basis(name, *args, **kwargs)
2415+
rbasis = self._right.basis(name, *args, **kwargs)
24172416
return self._productbasis(lbasis, rbasis)
24182417

24192418
def _split_list(self, value, scalar_type):
@@ -2446,14 +2445,14 @@ def basis_spline(self, degree, removedofs=None, knotvalues=None, knotmultiplicit
24462445
lperiodic = [i for i in periodic if i < self._left.ndims]
24472446
rperiodic = [i-self._left.ndims for i in periodic if i >= self._left.ndims]
24482447

2449-
lbasis = self._left.basis(_variant, degree=ldegree, removedofs=lremovedofs, knotvalues=lknotvalues, knotmultiplicities=lknotmultiplicities, continuity=lcontinuity, periodic=lperiodic) if self._left.ndims else None
2450-
rbasis = self._right.basis(_variant, degree=rdegree, removedofs=rremovedofs, knotvalues=rknotvalues, knotmultiplicities=rknotmultiplicities, continuity=rcontinuity, periodic=rperiodic) if self._right.ndims else None
2448+
lbasis = self._left.basis(_variant, degree=ldegree, removedofs=lremovedofs, knotvalues=lknotvalues, knotmultiplicities=lknotmultiplicities, continuity=lcontinuity, periodic=lperiodic)
2449+
rbasis = self._right.basis(_variant, degree=rdegree, removedofs=rremovedofs, knotvalues=rknotvalues, knotmultiplicities=rknotmultiplicities, continuity=rcontinuity, periodic=rperiodic)
24512450
return self._productbasis(lbasis, rbasis)
24522451

24532452
def basis_std(self, degree):
24542453
ldegree, rdegree = self._split_scalar(degree, int)
2455-
lbasis = self._left.basis('std', degree=ldegree) if self._left.ndims else None
2456-
rbasis = self._right.basis('std', degree=rdegree) if self._right.ndims else None
2454+
lbasis = self._left.basis('std', degree=ldegree)
2455+
rbasis = self._right.basis('std', degree=rdegree)
24572456
return self._productbasis(lbasis, rbasis)
24582457

24592458
@property

0 commit comments

Comments
 (0)