@@ -219,6 +219,20 @@ class Kernel(ABC):
219219 def is_complex_valued (self ) -> bool :
220220 """A boolean flag indicating whether this kernel is complex valued."""
221221
222+ @override
223+ def __repr__ (self ) -> str :
224+ from dataclasses import fields
225+
226+ args : list [str ] = []
227+ for f in fields (self ):
228+ value = getattr (self , f .name )
229+ if isinstance (value , prim .ExpressionNode ):
230+ args .append (f"{ f .name } ={ value } " )
231+ else :
232+ args .append (f"{ f .name } ={ value !r} " )
233+
234+ return f"{ type (self ).__name__ } ({ ', ' .join (args )} )"
235+
222236 def get_base_kernel (self ) -> Kernel :
223237 """
224238 :returns: the kernel being wrapped by this one, or else *self*.
@@ -381,7 +395,7 @@ def get_source_args(self) -> Sequence[KernelArgument]:
381395# }}}
382396
383397
384- @dataclass (frozen = True )
398+ @dataclass (frozen = True , repr = False )
385399class ExpressionKernel (Kernel , ABC ):
386400 r"""
387401 .. autoattribute:: expression
@@ -561,7 +575,7 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator:
561575 return laplacian (laplacian (w ))
562576
563577
564- @dataclass (frozen = True )
578+ @dataclass (frozen = True , repr = False )
565579class HelmholtzKernel (ExpressionKernel ):
566580 """
567581 .. autoattribute:: helmholtz_k_name
@@ -642,7 +656,7 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator:
642656 return laplacian (w ) + k ** 2 * w
643657
644658
645- @dataclass (frozen = True )
659+ @dataclass (frozen = True , repr = False )
646660class YukawaKernel (ExpressionKernel ):
647661 """
648662 .. autoattribute:: yukawa_lambda_name
@@ -729,7 +743,7 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator:
729743 return laplacian (w ) - lam ** 2 * w
730744
731745
732- @dataclass (frozen = True )
746+ @dataclass (frozen = True , repr = False )
733747class ElasticityKernel (ExpressionKernel ):
734748 """
735749 .. autoattribute:: icomp
@@ -858,7 +872,7 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator:
858872 return laplacian (laplacian (w ))
859873
860874
861- @dataclass (frozen = True )
875+ @dataclass (frozen = True , repr = False )
862876class StokesletKernel (ElasticityKernel ):
863877 """
864878 .. autoattribute:: icomp
@@ -898,7 +912,7 @@ def __str__(self) -> str:
898912 f"({ self .viscosity_mu } , { self .poisson_ratio } )" )
899913
900914
901- @dataclass (frozen = True )
915+ @dataclass (frozen = True , repr = False )
902916class StressletKernel (ExpressionKernel ):
903917 """
904918 .. autoattribute:: icomp
@@ -981,7 +995,7 @@ def get_pde_as_diff_op(self) -> LinearPDESystemOperator:
981995 return laplacian (laplacian (w ))
982996
983997
984- @dataclass (frozen = True )
998+ @dataclass (frozen = True , repr = False )
985999class LineOfCompressionKernel (ExpressionKernel ):
9861000 """A kernel for the line of compression or dilatation of constant strength
9871001 along the axis "axis" from zero to negative infinity.
0 commit comments