@@ -360,79 +360,109 @@ def __repr__(self):
360
360
361
361
def __add__ (self , other ):
362
362
"""return an :class:`Addition` object"""
363
- return pybamm .Addition (self , other )
363
+ return pybamm .simplify_if_constant (
364
+ pybamm .Addition (self , other ), keep_domains = True
365
+ )
364
366
365
367
def __radd__ (self , other ):
366
368
"""return an :class:`Addition` object"""
367
- return pybamm .Addition (other , self )
369
+ return pybamm .simplify_if_constant (
370
+ pybamm .Addition (other , self ), keep_domains = True
371
+ )
368
372
369
373
def __sub__ (self , other ):
370
374
"""return a :class:`Subtraction` object"""
371
- return pybamm .Subtraction (self , other )
375
+ return pybamm .simplify_if_constant (
376
+ pybamm .Subtraction (self , other ), keep_domains = True
377
+ )
372
378
373
379
def __rsub__ (self , other ):
374
380
"""return a :class:`Subtraction` object"""
375
- return pybamm .Subtraction (other , self )
381
+ return pybamm .simplify_if_constant (
382
+ pybamm .Subtraction (other , self ), keep_domains = True
383
+ )
376
384
377
385
def __mul__ (self , other ):
378
386
"""return a :class:`Multiplication` object"""
379
- return pybamm .Multiplication (self , other )
387
+ return pybamm .simplify_if_constant (
388
+ pybamm .Multiplication (self , other ), keep_domains = True
389
+ )
380
390
381
391
def __rmul__ (self , other ):
382
392
"""return a :class:`Multiplication` object"""
383
- return pybamm .Multiplication (other , self )
393
+ return pybamm .simplify_if_constant (
394
+ pybamm .Multiplication (other , self ), keep_domains = True
395
+ )
384
396
385
397
def __matmul__ (self , other ):
386
398
"""return a :class:`MatrixMultiplication` object"""
387
- return pybamm .MatrixMultiplication (self , other )
399
+ return pybamm .simplify_if_constant (
400
+ pybamm .MatrixMultiplication (self , other ), keep_domains = True
401
+ )
388
402
389
403
def __rmatmul__ (self , other ):
390
404
"""return a :class:`MatrixMultiplication` object"""
391
- return pybamm .MatrixMultiplication (other , self )
405
+ return pybamm .simplify_if_constant (
406
+ pybamm .MatrixMultiplication (other , self ), keep_domains = True
407
+ )
392
408
393
409
def __truediv__ (self , other ):
394
410
"""return a :class:`Division` object"""
395
- return pybamm .Division (self , other )
411
+ return pybamm .simplify_if_constant (
412
+ pybamm .Division (self , other ), keep_domains = True
413
+ )
396
414
397
415
def __rtruediv__ (self , other ):
398
416
"""return a :class:`Division` object"""
399
- return pybamm .Division (other , self )
417
+ return pybamm .simplify_if_constant (
418
+ pybamm .Division (other , self ), keep_domains = True
419
+ )
400
420
401
421
def __pow__ (self , other ):
402
422
"""return a :class:`Power` object"""
403
- return pybamm .Power (self , other )
423
+ return pybamm .simplify_if_constant ( pybamm . Power (self , other ), keep_domains = True )
404
424
405
425
def __rpow__ (self , other ):
406
426
"""return a :class:`Power` object"""
407
- return pybamm .Power (other , self )
427
+ return pybamm .simplify_if_constant ( pybamm . Power (other , self ), keep_domains = True )
408
428
409
429
def __lt__ (self , other ):
410
430
"""return a :class:`Heaviside` object"""
411
- return pybamm .Heaviside (self , other , equal = False )
431
+ return pybamm .simplify_if_constant (
432
+ pybamm .Heaviside (self , other , equal = False ), keep_domains = True
433
+ )
412
434
413
435
def __le__ (self , other ):
414
436
"""return a :class:`Heaviside` object"""
415
- return pybamm .Heaviside (self , other , equal = True )
437
+ return pybamm .simplify_if_constant (
438
+ pybamm .Heaviside (self , other , equal = True ), keep_domains = True
439
+ )
416
440
417
441
def __gt__ (self , other ):
418
442
"""return a :class:`Heaviside` object"""
419
- return pybamm .Heaviside (other , self , equal = False )
443
+ return pybamm .simplify_if_constant (
444
+ pybamm .Heaviside (other , self , equal = False ), keep_domains = True
445
+ )
420
446
421
447
def __ge__ (self , other ):
422
448
"""return a :class:`Heaviside` object"""
423
- return pybamm .Heaviside (other , self , equal = True )
449
+ return pybamm .simplify_if_constant (
450
+ pybamm .Heaviside (other , self , equal = True ), keep_domains = True
451
+ )
424
452
425
453
def __neg__ (self ):
426
454
"""return a :class:`Negate` object"""
427
- return pybamm .Negate (self )
455
+ return pybamm .simplify_if_constant ( pybamm . Negate (self ), keep_domains = True )
428
456
429
457
def __abs__ (self ):
430
458
"""return an :class:`AbsoluteValue` object"""
431
- return pybamm .AbsoluteValue (self )
459
+ return pybamm .simplify_if_constant (
460
+ pybamm .AbsoluteValue (self ), keep_domains = True
461
+ )
432
462
433
463
def __getitem__ (self , key ):
434
464
"""return a :class:`Index` object"""
435
- return pybamm .Index (self , key )
465
+ return pybamm .simplify_if_constant ( pybamm . Index (self , key ), keep_domains = True )
436
466
437
467
def diff (self , variable ):
438
468
"""
0 commit comments