@@ -93,7 +93,7 @@ class Term(object):
9393
9494 __slots__ = ["form" , "labels" ]
9595
96- def __init__ (self , form : ufl .BaseForm , label_dict : Mapping = None ):
96+ def __init__ (self , form : ufl .Form , label_dict : Mapping = None ):
9797 """
9898
9999 Parameters
@@ -216,9 +216,6 @@ def __mul__(
216216
217217 __rmul__ = __mul__
218218
219- def __neg__ (self ):
220- return - 1 * self
221-
222219 def __truediv__ (
223220 self ,
224221 other : Union [float , Constant , ufl .algebra .Product ]
@@ -277,7 +274,7 @@ def __init__(self, *terms: Sequence[Term]):
277274
278275 def __add__ (
279276 self ,
280- other : Union [ufl .BaseForm , Term , "LabelledForm" ]
277+ other : Union [ufl .Form , Term , "LabelledForm" ]
281278 ) -> "LabelledForm" :
282279 """Add a form, term or labelled form to this labelled form.
283280
@@ -292,12 +289,12 @@ def __add__(
292289 A labelled form containing the terms.
293290
294291 """
295- if type (other ) is Term :
292+ if isinstance (other , ufl .Form ):
293+ return LabelledForm (* self , Term (other ))
294+ elif type (other ) is Term :
296295 return LabelledForm (* self , other )
297296 elif type (other ) is LabelledForm :
298297 return LabelledForm (* self , * other )
299- elif isinstance (other , ufl .BaseForm ):
300- return LabelledForm (* self , Term (other ))
301298 elif other is None :
302299 return self
303300 else :
@@ -307,7 +304,7 @@ def __add__(
307304
308305 def __sub__ (
309306 self ,
310- other : Union [ufl .BaseForm , Term , "LabelledForm" ]
307+ other : Union [ufl .Form , Term , "LabelledForm" ]
311308 ) -> "LabelledForm" :
312309 """Subtract a form, term or labelled form from this labelled form.
313310
@@ -323,18 +320,15 @@ def __sub__(
323320
324321 """
325322 if type (other ) is Term :
326- return LabelledForm (* self , - other )
323+ return LabelledForm (* self , Constant ( - 1. ) * other )
327324 elif type (other ) is LabelledForm :
328- return LabelledForm (* self , * [- t for t in other ])
325+ return LabelledForm (* self , * [Constant ( - 1. ) * t for t in other ])
329326 elif other is None :
330327 return self
331328 else :
332329 # Make new Term for other and subtract it
333330 return LabelledForm (* self , Term (Constant (- 1. )* other ))
334331
335- def __rsub__ (self , other ):
336- return other + (- self )
337-
338332 def __mul__ (
339333 self ,
340334 other : Union [float , Constant , ufl .algebra .Product ]
@@ -377,9 +371,6 @@ def __truediv__(
377371
378372 __rmul__ = __mul__
379373
380- def __neg__ (self ):
381- return - 1 * self
382-
383374 def __iter__ (self ) -> Sequence :
384375 """Iterable of the terms in the labelled form."""
385376 return iter (self .terms )
@@ -436,7 +427,7 @@ def label_map(
436427 return new_labelled_form
437428
438429 @property
439- def form (self ) -> ufl .BaseForm :
430+ def form (self ) -> ufl .Form :
440431 """Provide the whole form from the labelled form.
441432
442433 Raises
@@ -446,7 +437,7 @@ def form(self) -> ufl.BaseForm:
446437
447438 Returns
448439 -------
449- ufl.BaseForm
440+ ufl.Form
450441 The whole form corresponding to all the terms.
451442
452443 """
@@ -488,7 +479,7 @@ def __init__(
488479
489480 def __call__ (
490481 self ,
491- target : Union [ufl .BaseForm , Term , LabelledForm ],
482+ target : Union [ufl .Form , Term , LabelledForm ],
492483 value : Any = None
493484 ) -> Union [Term , LabelledForm ]:
494485 """Apply the label to a form or term.
@@ -503,7 +494,7 @@ def __call__(
503494 Raises
504495 ------
505496 ValueError
506- If the `target` is not a ufl.BaseForm , Term or
497+ If the `target` is not a ufl.Form , Term or
507498 LabelledForm.
508499
509500 Returns
@@ -523,7 +514,7 @@ def __call__(
523514 self .value = self .default_value
524515 if isinstance (target , LabelledForm ):
525516 return LabelledForm (* (self (t , value ) for t in target .terms ))
526- elif isinstance (target , ufl .BaseForm ):
517+ elif isinstance (target , ufl .Form ):
527518 return LabelledForm (Term (target , {self .label : self .value }))
528519 elif isinstance (target , Term ):
529520 new_labels = target .labels .copy ()
0 commit comments