diff --git a/.basedpyright/baseline.json b/.basedpyright/baseline.json index 9ea6e4a93..48ff1048d 100644 --- a/.basedpyright/baseline.json +++ b/.basedpyright/baseline.json @@ -908,35 +908,35 @@ } }, { - "code": "reportCallIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 41, - "lineCount": 3 + "startColumn": 30, + "endColumn": 35, + "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 41, - "lineCount": 3 + "startColumn": 30, + "endColumn": 35, + "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownVariableType", "range": { - "startColumn": 12, - "endColumn": 41, - "lineCount": 3 + "startColumn": 4, + "endColumn": 7, + "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportOperatorIssue", "range": { - "startColumn": 12, - "endColumn": 41, - "lineCount": 3 + "startColumn": 10, + "endColumn": 35, + "lineCount": 1 } }, { @@ -955,6 +955,38 @@ "lineCount": 1 } }, + { + "code": "reportAny", + "range": { + "startColumn": 41, + "endColumn": 70, + "lineCount": 1 + } + }, + { + "code": "reportCallIssue", + "range": { + "startColumn": 50, + "endColumn": 61, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 50, + "endColumn": 69, + "lineCount": 1 + } + }, + { + "code": "reportArgumentType", + "range": { + "startColumn": 57, + "endColumn": 60, + "lineCount": 1 + } + }, { "code": "reportAny", "range": { @@ -1045,38 +1077,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 27, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 4, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 21, - "endColumn": 17, - "lineCount": 6 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 39, - "lineCount": 1 - } - }, { "code": "reportUnknownVariableType", "range": { @@ -1197,22 +1197,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 4, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 25, - "endColumn": 70, - "lineCount": 3 - } - }, { "code": "reportArgumentType", "range": { @@ -1341,22 +1325,6 @@ "lineCount": 1 } }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 12, - "endColumn": 41, - "lineCount": 2 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 41, - "lineCount": 2 - } - }, { "code": "reportArgumentType", "range": { @@ -1397,27 +1365,11 @@ "lineCount": 1 } }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 16, - "endColumn": 59, - "lineCount": 2 - } - }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 59, - "lineCount": 2 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 47, + "startColumn": 28, + "endColumn": 40, "lineCount": 1 } }, @@ -1511,38 +1463,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 27, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 4, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 21, - "endColumn": 17, - "lineCount": 4 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 39, - "lineCount": 1 - } - }, { "code": "reportUnknownVariableType", "range": { @@ -1639,22 +1559,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 4, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 25, - "endColumn": 61, - "lineCount": 3 - } - }, { "code": "reportArgumentType", "range": { @@ -1719,30 +1623,6 @@ "lineCount": 1 } }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 16, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 16, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 47, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -1937,22 +1817,6 @@ "lineCount": 1 } }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 12, - "endColumn": 55, - "lineCount": 2 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 12, - "endColumn": 55, - "lineCount": 2 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -2131,20 +1995,12 @@ "lineCount": 1 } }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 12, - "endColumn": 39, - "lineCount": 2 - } - }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 12, - "endColumn": 39, - "lineCount": 2 + "startColumn": 28, + "endColumn": 33, + "lineCount": 1 } }, { @@ -2405,20 +2261,12 @@ "lineCount": 1 } }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 16, - "endColumn": 67, - "lineCount": 4 - } - }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 16, - "endColumn": 67, - "lineCount": 4 + "startColumn": 56, + "endColumn": 61, + "lineCount": 1 } }, { @@ -2727,38 +2575,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 27, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 4, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 51, - "endColumn": 72, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 28, - "endColumn": 39, - "lineCount": 1 - } - }, { "code": "reportUnknownVariableType", "range": { @@ -2848,26 +2664,26 @@ } }, { - "code": "reportCallIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 36, + "startColumn": 25, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 36, + "startColumn": 25, + "endColumn": 30, "lineCount": 1 } }, { - "code": "reportCallIssue", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 4, - "endColumn": 36, + "startColumn": 25, + "endColumn": 30, "lineCount": 1 } }, @@ -2951,22 +2767,6 @@ "lineCount": 1 } }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 24, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportAttributeAccessIssue", - "range": { - "startColumn": 24, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportCallIssue", "range": { @@ -4745,14 +4545,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 14, - "endColumn": 15, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -5185,14 +4977,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 10, - "endColumn": 11, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -39249,6 +39033,14 @@ "lineCount": 4 } }, + { + "code": "reportAbstractUsage", + "range": { + "startColumn": 19, + "endColumn": 18, + "lineCount": 4 + } + }, { "code": "reportCallIssue", "range": { @@ -39377,6 +39169,14 @@ "lineCount": 1 } }, + { + "code": "reportAbstractUsage", + "range": { + "startColumn": 19, + "endColumn": 18, + "lineCount": 4 + } + }, { "code": "reportCallIssue", "range": { @@ -44971,14 +44771,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 20, - "endColumn": 23, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -48549,22 +48341,6 @@ } ], "./pytential/symbolic/matrix.py": [ - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 42, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 46, - "endColumn": 54, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -51839,38 +51615,6 @@ "lineCount": 1 } }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 17, - "endColumn": 21, - "lineCount": 8 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 20, - "endColumn": 42, - "lineCount": 3 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 20, - "endColumn": 48, - "lineCount": 4 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 20, - "endColumn": 35, - "lineCount": 5 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -51879,22 +51623,6 @@ "lineCount": 1 } }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 24, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 47, - "lineCount": 1 - } - }, { "code": "reportUnknownVariableType", "range": { @@ -51903,54 +51631,6 @@ "lineCount": 1 } }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 17, - "endColumn": 21, - "lineCount": 7 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 20, - "endColumn": 53, - "lineCount": 3 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 20, - "endColumn": 47, - "lineCount": 4 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 22, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 26, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 46, - "lineCount": 1 - } - }, { "code": "reportReturnType", "range": { @@ -52071,46 +51751,6 @@ "lineCount": 1 } }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 17, - "endColumn": 21, - "lineCount": 7 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 20, - "endColumn": 47, - "lineCount": 3 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 20, - "endColumn": 42, - "lineCount": 4 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 24, - "endColumn": 46, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 46, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -52135,30 +51775,6 @@ "lineCount": 1 } }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 20, - "endColumn": 52, - "lineCount": 3 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 20, - "endColumn": 42, - "lineCount": 4 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 22, - "endColumn": 52, - "lineCount": 1 - } - }, { "code": "reportArgumentType", "range": { @@ -52273,14 +51889,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 19, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -52393,6 +52001,14 @@ "lineCount": 8 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 31, + "endColumn": 62, + "lineCount": 2 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -52409,6 +52025,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 33, + "endColumn": 62, + "lineCount": 2 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -52433,6 +52057,14 @@ "lineCount": 6 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 29, + "endColumn": 58, + "lineCount": 2 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -52787,14 +52419,6 @@ } ], "./pytential/symbolic/pde/maxwell/__init__.py": [ - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 10, - "endColumn": 13, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { @@ -52844,7 +52468,7 @@ } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 17, "endColumn": 64, @@ -52987,14 +52611,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 24, - "endColumn": 27, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { @@ -53483,14 +53099,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 19, - "endColumn": 22, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -53523,6 +53131,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownVariableType", + "range": { + "startColumn": 8, + "endColumn": 11, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -53563,14 +53179,6 @@ "lineCount": 1 } }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 17, - "endColumn": 47, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -53580,7 +53188,7 @@ } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 43, "endColumn": 46, @@ -53699,14 +53307,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 20, - "endColumn": 23, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -53771,14 +53371,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 19, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -53980,7 +53572,7 @@ } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 28, "endColumn": 81, @@ -54011,14 +53603,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 17, - "endColumn": 20, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -54043,14 +53627,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 44, - "endColumn": 60, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -54083,14 +53659,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 17, - "endColumn": 20, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -54115,14 +53683,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 45, - "endColumn": 61, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -54155,14 +53715,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 17, - "endColumn": 20, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -54187,14 +53739,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 44, - "endColumn": 60, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -54227,14 +53771,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 17, - "endColumn": 20, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -54259,14 +53795,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 45, - "endColumn": 61, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -54523,14 +54051,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 19, - "endColumn": 22, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -54547,14 +54067,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 19, - "endColumn": 22, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -54620,7 +54132,7 @@ } }, { - "code": "reportArgumentType", + "code": "reportUnknownArgumentType", "range": { "startColumn": 28, "endColumn": 80, @@ -54651,14 +54163,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 55, - "endColumn": 65, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -54683,14 +54187,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 56, - "endColumn": 66, - "lineCount": 1 - } - }, { "code": "reportUnknownMemberType", "range": { @@ -54829,14 +54325,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 22, - "endColumn": 25, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -54941,14 +54429,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 20, - "endColumn": 23, - "lineCount": 1 - } - }, { "code": "reportUnannotatedClassAttribute", "range": { @@ -54973,14 +54453,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 19, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -55053,14 +54525,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 19, - "endColumn": 22, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -55077,6 +54541,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 9, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -55117,6 +54589,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownVariableType", + "range": { + "startColumn": 15, + "endColumn": 50, + "lineCount": 4 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -55141,6 +54621,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 8, + "endColumn": 9, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -55181,6 +54669,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownVariableType", + "range": { + "startColumn": 15, + "endColumn": 50, + "lineCount": 4 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -55437,14 +54933,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 20, - "endColumn": 23, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -55677,6 +55165,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 47, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -55709,6 +55205,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 36, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -55765,6 +55269,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 47, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -55797,6 +55309,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 25, + "endColumn": 36, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -55909,6 +55429,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 47, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -55941,6 +55469,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 50, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -55997,6 +55533,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 36, + "endColumn": 47, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -56029,6 +55573,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 39, + "endColumn": 50, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -56285,14 +55837,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 25, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -56429,6 +55973,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownParameterType", + "range": { + "startColumn": 16, + "endColumn": 18, + "lineCount": 1 + } + }, { "code": "reportUnknownParameterType", "range": { @@ -56461,6 +56013,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownVariableType", + "range": { + "startColumn": 23, + "endColumn": 72, + "lineCount": 2 + } + }, { "code": "reportUnknownMemberType", "range": { @@ -56469,6 +56029,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, + "endColumn": 71, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -56533,6 +56101,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 23, + "endColumn": 43, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -56573,14 +56149,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 22, - "endColumn": 25, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -56629,14 +56197,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 22, - "endColumn": 25, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -56686,15 +56246,7 @@ } }, { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 22, - "endColumn": 25, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", + "code": "reportUnknownArgumentType", "range": { "startColumn": 26, "endColumn": 55, @@ -56734,10 +56286,18 @@ } }, { - "code": "reportPrivateLocalImportUsage", + "code": "reportUnknownVariableType", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 12, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 26, + "endColumn": 60, "lineCount": 1 } }, @@ -56781,14 +56341,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 22, - "endColumn": 25, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -56805,6 +56357,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 47, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -56829,6 +56389,14 @@ "lineCount": 1 } }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 24, + "endColumn": 47, + "lineCount": 1 + } + }, { "code": "reportUnknownArgumentType", "range": { @@ -56846,18 +56414,18 @@ } }, { - "code": "reportPrivateLocalImportUsage", + "code": "reportUnknownMemberType", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 20, + "endColumn": 42, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 20, - "endColumn": 42, + "startColumn": 24, + "endColumn": 47, "lineCount": 1 } }, @@ -56888,24 +56456,24 @@ { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 31, + "startColumn": 24, + "endColumn": 47, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 33, - "endColumn": 46, + "startColumn": 26, + "endColumn": 31, "lineCount": 1 } }, { - "code": "reportPrivateLocalImportUsage", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 25, - "endColumn": 28, + "startColumn": 33, + "endColumn": 46, "lineCount": 1 } }, @@ -56957,14 +56525,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 25, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -57013,14 +56573,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 25, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -57053,14 +56605,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 25, - "endColumn": 28, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -57102,17 +56646,57 @@ } }, { - "code": "reportPrivateLocalImportUsage", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 22, - "endColumn": 25, + "startColumn": 26, + "endColumn": 21, + "lineCount": 4 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 40, + "endColumn": 45, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, + "startColumn": 47, + "endColumn": 51, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 42, + "endColumn": 47, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 49, + "endColumn": 53, + "lineCount": 1 + } + }, + { + "code": "reportUnknownVariableType", + "range": { + "startColumn": 12, + "endColumn": 15, + "lineCount": 1 + } + }, + { + "code": "reportUnknownArgumentType", + "range": { + "startColumn": 27, "endColumn": 21, "lineCount": 4 } @@ -57149,2029 +56733,91 @@ "lineCount": 1 } }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 12, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 27, - "endColumn": 21, - "lineCount": 4 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 42, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 49, - "endColumn": 53, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 16, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 25, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 25, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 39, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 39, - "endColumn": 44, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 52, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 52, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 65, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 65, - "endColumn": 70, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 23, - "endColumn": 25, - "lineCount": 9 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 33, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 57, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 64, - "endColumn": 69, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 71, - "endColumn": 74, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 53, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 67, - "endColumn": 80, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 30, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 53, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 60, - "endColumn": 65, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 67, - "endColumn": 80, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 12, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 25, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 29, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 12, - "endColumn": 15, - "lineCount": 1 - } - }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 25, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportCallIssue", - "range": { - "startColumn": 29, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 29, - "endColumn": 43, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 12, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 12, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 12, - "endColumn": 14, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 12, - "endColumn": 14, - "lineCount": 1 - } - } - ], - "./pytential/symbolic/pde/scalar.py": [ - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 25, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 25, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 23, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 42, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 30, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 30, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 59, - "endColumn": 66, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 26, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 26, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 15, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 15, - "endColumn": 41, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 32, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 32, - "endColumn": 48, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 57, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 57, - "endColumn": 63, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportRedeclaration", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 33, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 33, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 58, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 58, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 27, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 16, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 31, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 31, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 23, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 15, - "endColumn": 17, - "lineCount": 8 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 15, - "endColumn": 17, - "lineCount": 8 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 27, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 66, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 14, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 14, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 38, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 14, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 14, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 38, - "endColumn": 45, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 46, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 15, - "endColumn": 17, - "lineCount": 7 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 52, - "endColumn": 21, - "lineCount": 5 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 20, - "endColumn": 37, - "lineCount": 2 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 35, - "endColumn": 47, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 36, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 29, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportIncompatibleMethodOverride", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 29, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 29, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportRedeclaration", - "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 33, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 33, - "endColumn": 49, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 58, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 58, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 27, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 37, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 68, - "endColumn": 80, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 16, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 31, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 31, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 23, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 15, - "endColumn": 17, - "lineCount": 8 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 15, - "endColumn": 17, - "lineCount": 8 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 55, - "endColumn": 61, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 65, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 65, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 65, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 65, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 65, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 65, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 65, - "endColumn": 71, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportImplicitOverride", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 28, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 28, - "endColumn": 34, - "lineCount": 1 - } - }, - { - "code": "reportUnknownMemberType", - "range": { - "startColumn": 17, - "endColumn": 37, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 8, - "endColumn": 20, - "lineCount": 1 - } - }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 27, - "endColumn": 30, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 31, - "endColumn": 39, - "lineCount": 1 - } - }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 37, - "endColumn": 40, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 43, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 19, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 19, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 24, - "endColumn": 31, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 12, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 39, - "endColumn": 51, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 16, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 24, - "endColumn": 58, - "lineCount": 6 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 57, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 16, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 50, - "endColumn": 56, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 66, - "endColumn": 78, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 15, - "endColumn": 17, - "lineCount": 8 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 27, - "endColumn": 21, - "lineCount": 5 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 20, - "endColumn": 40, - "lineCount": 2 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 40, - "endColumn": 52, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 56, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 56, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 56, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 56, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 56, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 56, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 56, - "endColumn": 62, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnannotatedClassAttribute", - "range": { - "startColumn": 13, - "endColumn": 21, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 19, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 26, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 26, - "endColumn": 27, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 15, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 19, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 8, - "endColumn": 22, + "startColumn": 16, + "endColumn": 24, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 29, - "endColumn": 34, + "startColumn": 25, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 29, - "endColumn": 34, + "startColumn": 25, + "endColumn": 28, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 12, - "endColumn": 26, + "startColumn": 30, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 12, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportRedeclaration", - "range": { - "startColumn": 12, - "endColumn": 26, + "startColumn": 30, + "endColumn": 37, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 33, - "endColumn": 49, + "startColumn": 39, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 33, - "endColumn": 49, + "startColumn": 39, + "endColumn": 44, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 58, - "endColumn": 64, + "startColumn": 52, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 58, - "endColumn": 64, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 16, - "endColumn": 30, + "startColumn": 52, + "endColumn": 57, "lineCount": 1 } }, { "code": "reportUnknownParameterType", "range": { - "startColumn": 31, - "endColumn": 32, + "startColumn": 65, + "endColumn": 70, "lineCount": 1 } }, { "code": "reportMissingParameterType", "range": { - "startColumn": 31, - "endColumn": 32, + "startColumn": 65, + "endColumn": 70, "lineCount": 1 } }, @@ -59179,47 +56825,23 @@ "code": "reportUnknownVariableType", "range": { "startColumn": 23, - "endColumn": 24, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 15, - "endColumn": 18, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 15, - "endColumn": 18, - "lineCount": 1 + "endColumn": 25, + "lineCount": 9 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 15, - "endColumn": 18, + "startColumn": 33, + "endColumn": 38, "lineCount": 1 } }, { - "code": "reportMissingParameterType", + "code": "reportUnknownArgumentType", "range": { - "startColumn": 15, - "endColumn": 18, + "startColumn": 40, + "endColumn": 45, "lineCount": 1 } }, @@ -59231,363 +56853,171 @@ "lineCount": 1 } }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 8, - "endColumn": 10, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 13, - "endColumn": 17, - "lineCount": 14 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 51, - "endColumn": 59, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 41, - "endColumn": 67, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 32, + "startColumn": 57, + "endColumn": 62, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 32, + "startColumn": 64, + "endColumn": 69, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 32, + "startColumn": 71, + "endColumn": 74, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 32, + "startColumn": 30, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 51, + "startColumn": 53, "endColumn": 59, "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 41, - "endColumn": 29, - "lineCount": 3 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 8, - "endColumn": 10, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 13, - "endColumn": 17, - "lineCount": 12 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 47, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 41, - "endColumn": 67, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportUnknownArgumentType", - "range": { - "startColumn": 26, - "endColumn": 32, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 32, + "startColumn": 60, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 47, - "endColumn": 55, - "lineCount": 1 - } - }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 41, - "endColumn": 69, + "startColumn": 67, + "endColumn": 80, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 32, + "startColumn": 30, + "endColumn": 52, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownMemberType", "range": { - "startColumn": 26, - "endColumn": 32, + "startColumn": 53, + "endColumn": 59, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 32, + "startColumn": 60, + "endColumn": 65, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 26, - "endColumn": 32, - "lineCount": 1 - } - }, - { - "code": "reportOperatorIssue", - "range": { - "startColumn": 15, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 15, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 8, - "endColumn": 16, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 23, - "endColumn": 28, - "lineCount": 1 - } - }, - { - "code": "reportUnknownParameterType", - "range": { - "startColumn": 32, - "endColumn": 38, - "lineCount": 1 - } - }, - { - "code": "reportMissingParameterType", - "range": { - "startColumn": 32, - "endColumn": 38, + "startColumn": 67, + "endColumn": 80, "lineCount": 1 } }, { "code": "reportUnknownVariableType", "range": { - "startColumn": 8, - "endColumn": 11, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownMemberType", + "code": "reportCallIssue", "range": { - "startColumn": 14, - "endColumn": 33, + "startColumn": 29, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 34, - "endColumn": 39, + "startColumn": 29, + "endColumn": 43, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownVariableType", "range": { - "startColumn": 67, - "endColumn": 73, + "startColumn": 12, + "endColumn": 15, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportCallIssue", "range": { - "startColumn": 67, - "endColumn": 73, + "startColumn": 29, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownArgumentType", "range": { - "startColumn": 50, - "endColumn": 53, + "startColumn": 29, + "endColumn": 43, "lineCount": 1 } }, { "code": "reportUnknownVariableType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 12, + "endColumn": 14, "lineCount": 1 } }, { "code": "reportUnknownVariableType", "range": { - "startColumn": 8, - "endColumn": 15, + "startColumn": 12, + "endColumn": 14, "lineCount": 1 } }, { "code": "reportUnknownVariableType", "range": { - "startColumn": 15, - "endColumn": 43, + "startColumn": 12, + "endColumn": 14, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportUnknownVariableType", "range": { - "startColumn": 24, - "endColumn": 42, + "startColumn": 12, + "endColumn": 14, "lineCount": 1 } } @@ -59617,22 +57047,6 @@ "lineCount": 1 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 27, - "endColumn": 35, - "lineCount": 1 - } - }, - { - "code": "reportReturnType", - "range": { - "startColumn": 19, - "endColumn": 50, - "lineCount": 1 - } - }, { "code": "reportInconsistentConstructor", "range": { @@ -59748,41 +57162,9 @@ { "code": "reportReturnType", "range": { - "startColumn": 19, - "endColumn": 26, - "lineCount": 1 - } - }, - { - "code": "reportReturnType", - "range": { - "startColumn": 19, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportReturnType", - "range": { - "startColumn": 15, - "endColumn": 22, - "lineCount": 1 - } - }, - { - "code": "reportReturnType", - "range": { - "startColumn": 19, - "endColumn": 50, - "lineCount": 1 - } - }, - { - "code": "reportReturnType", - "range": { - "startColumn": 19, - "endColumn": 50, - "lineCount": 1 + "startColumn": 11, + "endColumn": 46, + "lineCount": 3 } }, { @@ -60149,23 +57531,15 @@ "code": "reportUnknownVariableType", "range": { "startColumn": 11, - "endColumn": 26, - "lineCount": 6 - } - }, - { - "code": "reportUnknownLambdaType", - "range": { - "startColumn": 19, - "endColumn": 24, + "endColumn": 66, "lineCount": 1 } }, { - "code": "reportUnknownArgumentType", + "code": "reportReturnType", "range": { - "startColumn": 60, - "endColumn": 65, + "startColumn": 15, + "endColumn": 31, "lineCount": 1 } }, @@ -60305,6 +57679,14 @@ "lineCount": 3 } }, + { + "code": "reportReturnType", + "range": { + "startColumn": 11, + "endColumn": 33, + "lineCount": 9 + } + }, { "code": "reportArgumentType", "range": { @@ -60321,14 +57703,6 @@ "lineCount": 3 } }, - { - "code": "reportArgumentType", - "range": { - "startColumn": 16, - "endColumn": 22, - "lineCount": 1 - } - }, { "code": "reportInvalidCast", "range": { @@ -61723,14 +59097,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 19, - "endColumn": 34, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -62259,14 +59625,6 @@ "lineCount": 1 } }, - { - "code": "reportPrivateLocalImportUsage", - "range": { - "startColumn": 29, - "endColumn": 32, - "lineCount": 1 - } - }, { "code": "reportUnknownArgumentType", "range": { @@ -64871,14 +62229,6 @@ "lineCount": 1 } }, - { - "code": "reportUnknownVariableType", - "range": { - "startColumn": 14, - "endColumn": 15, - "lineCount": 1 - } - }, { "code": "reportAny", "range": { diff --git a/doc/conf.py b/doc/conf.py index 7b6d3117d..8c8db1081 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -90,8 +90,11 @@ "KernelArgumentLike": "obj:pytential.symbolic.primitives.KernelArgumentLike", "KernelArgumentMapping": "obj:pytential.symbolic.primitives.KernelArgumentMapping", "Operand": "obj:pytential.symbolic.primitives.Operand", + "PotentialMapper": "obj:pytential.symbolic.pde.scalar.PotentialMapper", "QBXForcedLimit": "obj:pytential.symbolic.primitives.QBXForcedLimit", + "Side": "obj:pytential.symbolic.primitives.Side", "TargetOrDiscretization": "obj:pytential.target.TargetOrDiscretization", + "VectorExpression": "obj:pytential.symbolic.pde.scalar.VectorExpression", "pytential.symbolic.dof_desc.DOFDescriptorLike": "data:pytential.symbolic.dof_desc.DOFDescriptorLike", "sym.DOFDescriptor": "class:pytential.symbolic.dof_desc.DOFDescriptor", diff --git a/pytential/symbolic/pde/scalar.py b/pytential/symbolic/pde/scalar.py index 9f5f50cfe..92ba6c3ac 100644 --- a/pytential/symbolic/pde/scalar.py +++ b/pytential/symbolic/pde/scalar.py @@ -24,36 +24,65 @@ """ __doc__ = """ +.. autoclass:: PotentialMapper +.. autoclass:: VectorExpression + .. autoclass:: L2WeightedPDEOperator + .. autoclass:: DirichletOperator + :show-inheritance: .. autoclass:: NeumannOperator + :show-inheritance: .. autoclass:: BiharmonicClampedPlateOperator + :show-inheritance: """ -from typing import Any +from abc import ABC, abstractmethod +from typing import TYPE_CHECKING, Any, TypeAlias import numpy as np +from typing_extensions import override +from pymbolic.typing import ArithmeticExpression from sumpy.kernel import DirectionalSourceDerivative, Kernel from pytential import sym +if TYPE_CHECKING: + from collections.abc import Callable + + from pytools.obj_array import ObjectArray1D + + from pytential.symbolic.dof_desc import DOFDescriptorLike + from pytential.symbolic.primitives import Operand, QBXForcedLimit, Side + + +PotentialMapper: TypeAlias = "Callable[[ArithmeticExpression], ArithmeticExpression]" +VectorExpression: TypeAlias = "ObjectArray1D[ArithmeticExpression]" + + # {{{ L^2 weighting -class L2WeightedPDEOperator: - r""":math:`L^2`-weighting for scalar IEs. +class L2WeightedPDEOperator(ABC): + r""":math:`L^2`-weighting for scalar Integral Equations. + + :math:`L^2`-weighting is performed to help with the solution of integral + equations that yield locally singular densities. This is done by matching + the :math:`\ell^2` norm used by the iterative method (e.g. GMRES) with the + (approximate) :math:`L^2` norm. Clearly, singular densities might not have + a finite :math:`\ell^2` norm, hampering convergence of the iterative + method. See [Bremer2012]_ for a detailed description of the construction. - :math:`L^2`-weighting is performed to help with the solution of IEs that - yield locally singular densities. It does this by matching the - :math:`\ell^2`-norm used by the iterative method (e.g. GMRES) with the - (approximate) :math:`L^2`-norm. Clearly, singular densities might not have - finite :math:`\ell^2`-norm, hampering convergence of the iterative method. - See `Bremer, J. On the Nyström discretization of integral equations on planar - curves with corners. ACHA, 2011. `__. + .. [Bremer2012] J. Bremer, + *On the Nyström Discretization of Integral Equations on Planar Curves + With Corners*, + Applied and Computational Harmonic Analysis, Vol. 32, pp. 45--64, 2012, + `doi:10.1016/j.acha.2011.03.002 `__. - .. attribute:: kernel - .. attribute:: use_l2_weighting + .. autoattribute:: kernel + .. autoattribute:: use_l2_weighting + .. autoproperty:: dim .. automethod:: get_weight .. automethod:: get_sqrt_weight @@ -67,33 +96,43 @@ class L2WeightedPDEOperator: .. automethod:: __init__ """ - def __init__(self, kernel: Kernel, use_l2_weighting: bool): + kernel: Kernel + """The kernel used in the integral operator.""" + use_l2_weighting: bool + """If *True*, :math:`L^2`-weighting is performed. This can be turned off for + testing purposes, but should be enabled for other applications. + """ + + def __init__(self, kernel: Kernel, *, use_l2_weighting: bool = True) -> None: self.kernel = kernel self.use_l2_weighting = use_l2_weighting if not use_l2_weighting: from warnings import warn - warn("should use L2 weighting in {}".format(type(self).__name__), - stacklevel=3) + warn(f"Using L2 weighting in {type(self).__name__} is highly recommended.", + stacklevel=3) @property - def dim(self): + def dim(self) -> int: return self.kernel.dim - def get_weight(self, dofdesc=None): + def get_weight(self, + dofdesc: DOFDescriptorLike = None) -> ArithmeticExpression: """ :returns: a symbolic expression for the weights (quadrature weights and area elements) on *dofdesc* if :attr:`use_l2_weighting` is *True* and ``1`` otherwise. """ if self.use_l2_weighting: + dofdesc = sym.as_dofdesc(dofdesc) return sym.cse( sym.area_element(self.dim, dofdesc=dofdesc) * sym.QWeight(dofdesc=dofdesc)) else: return 1 - def get_sqrt_weight(self, dofdesc=None): + def get_sqrt_weight(self, + dofdesc: DOFDescriptorLike = None) -> ArithmeticExpression: """ :returns: the square root of :meth:`get_weight`. """ @@ -102,13 +141,13 @@ def get_sqrt_weight(self, dofdesc=None): else: return 1 - def prepare_rhs(self, b): + def prepare_rhs(self, b: ArithmeticExpression) -> ArithmeticExpression: """Modify the right-hand side (e.g. boundary conditions) to match the operator constructed in :meth:`operator`. """ return self.get_sqrt_weight() * b - def get_density_var(self, name: str): + def get_density_var(self, name: str) -> sym.var: """ :param name: a string name for the density. :returns: a symbolic variable or array (problem dependent) @@ -116,17 +155,40 @@ def get_density_var(self, name: str): """ return sym.var(name) - def representation(self, u, qbx_forced_limit=None, **kwargs): + @abstractmethod + def representation(self, + u: ArithmeticExpression, + *, + map_potentials: PotentialMapper | None = None, + qbx_forced_limit: QBXForcedLimit = None, + source: DOFDescriptorLike = None, + target: DOFDescriptorLike = None, + **kwargs: Operand) -> ArithmeticExpression: """ + :param u: symbolic variable for the density. + :param map_potentials: a callable that can be used to apply + additional transformations on all the layer potentials in the + representation, e.g. to take a target derivative. + :param kwargs: additional keyword arguments passed on to the layer + potential constructor. + :returns: a representation for the unknowns based on an integral equation with density *u*. If *qbx_forced_limit* denotes an on-surface evaluation, the corresponding jump relations are not added to the representation. """ - raise NotImplementedError - def operator(self, u, **kwargs): + @abstractmethod + def operator(self, + u: ArithmeticExpression, + *, + dofdesc: DOFDescriptorLike = None, + **kwargs: Operand) -> ArithmeticExpression: """ + :param u: symbolic variable for the density. + :param kwargs: additional keyword arguments passed on to the layer + potential constructor. + :returns: a boundary integral operator with corresponding jump relations that can be used to solve for the density *u*. """ @@ -138,7 +200,7 @@ def operator(self, u, **kwargs): # {{{ dirichlet class DirichletOperator(L2WeightedPDEOperator): - """IE operator and field representation for solving Dirichlet boundary + """Integral operator and field representation for solving Dirichlet boundary value problems with scalar kernels (e.g. :class:`~sumpy.kernel.LaplaceKernel`, :class:`~sumpy.kernel.HelmholtzKernel`, :class:`~sumpy.kernel.YukawaKernel`) @@ -148,7 +210,14 @@ class DirichletOperator(L2WeightedPDEOperator): access potentials that come from charge distributions having *no* net charge. (This is true at least in 2D) - Inherits from :class:`L2WeightedPDEOperator`. + .. [ColtonKress2012] D. Colton, R. Kress, + *Inverse Acoustic and Electromagnetic Scattering Theory*, + Springer Science & Business Media, 2012. + `doi:10.1007/978-3-030-30351-8 `__. + + .. autoattribute:: loc_sign + .. autoattribute:: kernel_arguments + .. autoattribute:: alpha .. automethod:: is_unique_only_up_to_constant .. automethod:: representation @@ -156,18 +225,23 @@ class DirichletOperator(L2WeightedPDEOperator): .. automethod:: __init__ """ - def __init__(self, kernel: Kernel, loc_sign: int, *, + loc_sign: Side + """Side of the operator evaluation.""" + kernel_arguments: dict[str, Operand] + """Additional arguments that will be passed to the layer potential on evaluation.""" + alpha: int | float | complex + """A complex coefficient with positive imaginary part for the combined-field + integral representation (CFIE) for the Helmholtz equation (e.g. see + [ColtonKress2012]_). For other kernels, it does does not offer any benefits. + """ + + def __init__( + self, + kernel: Kernel, + loc_sign: Side, *, alpha: int | float | complex | None = None, use_l2_weighting: bool = False, - kernel_arguments: dict[str, Any] | None = None): - """ - :param loc_sign: :math:`+1` for exterior or :math:`-1` for interior - problems. - :param alpha: a complex coefficient with positive imaginary part for - the combined-field integral representation (CFIE) for the - Helmholtz equation (based on Brakhage and Werner). - For other kernels, it does does not offer any benefits. - """ + kernel_arguments: dict[str, Operand] | None = None) -> None: assert loc_sign in [-1, 1] assert isinstance(kernel, Kernel) @@ -190,53 +264,61 @@ def __init__(self, kernel: Kernel, loc_sign: int, *, else: alpha = 0 - super().__init__(kernel, use_l2_weighting) + super().__init__(kernel, use_l2_weighting=use_l2_weighting) self.kernel_arguments = kernel_arguments self.loc_sign = loc_sign self.alpha = alpha - def is_unique_only_up_to_constant(self): + def is_unique_only_up_to_constant(self) -> bool: # No ones matrix needed in Helmholtz case, cf. Hackbusch Lemma 8.5.3. from sumpy.kernel import LaplaceKernel return isinstance(self.kernel, LaplaceKernel) and self.loc_sign > 0 - def representation(self, u, - map_potentials=None, qbx_forced_limit=None, **kwargs): - """ - :param u: symbolic variable for the density. - :param map_potentials: a callable that can be used to apply - additional transformations on all the layer potentials in the - representation, e.g. to take a target derivative. - :param kwargs: additional keyword arguments passed on to the layer - potential constructor. - """ - sqrt_w = self.get_sqrt_weight() + @override + def representation(self, + u: ArithmeticExpression, + *, + map_potentials: PotentialMapper | None = None, + qbx_forced_limit: QBXForcedLimit = None, + source: DOFDescriptorLike = None, + target: DOFDescriptorLike = None, + **kwargs: Operand) -> ArithmeticExpression: + sqrt_w = self.get_sqrt_weight(source) inv_sqrt_w_u = sym.cse(u/sqrt_w) if map_potentials is None: - def map_potentials(x): + def default_map_potentials(x: ArithmeticExpression) -> ArithmeticExpression: return x - kwargs["kernel_arguments"] = self.kernel_arguments - kwargs["qbx_forced_limit"] = qbx_forced_limit - - return ( - self.alpha * map_potentials( - sym.S(self.kernel, inv_sqrt_w_u, **kwargs) - ) - - map_potentials( - sym.D(self.kernel, inv_sqrt_w_u, **kwargs) - ) - ) - - def operator(self, u, **kwargs): - """ - :param u: symbolic variable for the density. - :param kwargs: additional keyword arguments passed on to the layer - potential constructor. - """ - sqrt_w = self.get_sqrt_weight() + map_potentials = default_map_potentials + + kernel_arguments = self.kernel_arguments + if kwargs: + kernel_arguments = {**kernel_arguments, **kwargs} + + S = sym.S(self.kernel, inv_sqrt_w_u, + qbx_forced_limit=qbx_forced_limit, + kernel_arguments=kernel_arguments, + source=source, target=target) + D = sym.D(self.kernel, inv_sqrt_w_u, + qbx_forced_limit=qbx_forced_limit, + kernel_arguments=kernel_arguments, + source=source, target=target) + + return self.alpha * map_potentials(S) - map_potentials(D) + + @override + def operator(self, + u: ArithmeticExpression, *, + dofdesc: DOFDescriptorLike = None, + **kwargs: Operand) -> ArithmeticExpression: + kernel_arguments = self.kernel_arguments + if kwargs: + kernel_arguments = {**kernel_arguments, **kwargs} + + dofdesc = sym.as_dofdesc(dofdesc) + sqrt_w = self.get_sqrt_weight(dofdesc) inv_sqrt_w_u = sym.cse(u/sqrt_w) if self.is_unique_only_up_to_constant(): @@ -249,19 +331,22 @@ def operator(self, u, **kwargs): # Theorem 8.2.18b ones_contribution = ( - sym.Ones() * sym.mean(self.dim, self.dim - 1, inv_sqrt_w_u)) + sym.Ones(dofdesc) + * sym.mean(self.dim, self.dim - 1, inv_sqrt_w_u, dofdesc=dofdesc)) else: ones_contribution = 0 - def S(density): + def S(density: ArithmeticExpression) -> ArithmeticExpression: return sym.S(self.kernel, density, + qbx_forced_limit=+1, kernel_arguments=self.kernel_arguments, - qbx_forced_limit=+1, **kwargs) + source=dofdesc, target=dofdesc) - def D(density): + def D(density: ArithmeticExpression) -> ArithmeticExpression: return sym.D(self.kernel, density, + qbx_forced_limit="avg", kernel_arguments=self.kernel_arguments, - qbx_forced_limit="avg", **kwargs) + source=dofdesc, target=dofdesc) return ( -0.5 * self.loc_sign * u + sqrt_w * ( @@ -277,7 +362,7 @@ def D(density): # {{{ neumann class NeumannOperator(L2WeightedPDEOperator): - """IE operator and field representation for solving Neumann boundary + """Integral operator and field representation for solving Neumann boundary value problems with scalar kernels (e.g. :class:`~sumpy.kernel.LaplaceKernel`, :class:`~sumpy.kernel.HelmholtzKernel`, :class:`~sumpy.kernel.YukawaKernel`) @@ -287,7 +372,10 @@ class NeumannOperator(L2WeightedPDEOperator): access potentials that come from charge distributions having *no* net charge. (This is true at least in 2D) - Inherits from :class:`L2WeightedPDEOperator`. + .. autoattribute:: loc_sign + .. autoattribute:: kernel_arguments + .. autoattribute:: alpha + .. autoattribute:: use_improved_operator .. automethod:: is_unique_only_up_to_constant .. automethod:: representation @@ -295,22 +383,27 @@ class NeumannOperator(L2WeightedPDEOperator): .. automethod:: __init__ """ - def __init__(self, kernel: Kernel, loc_sign: int, *, + loc_sign: Side + """Side of the operator evaluation.""" + kernel_arguments: dict[str, Operand] + """Additional arguments that will be passed to the layer potential on evaluation.""" + alpha: int | float | complex + """A complex coefficient with positive imaginary part for the combined-field + integral representation (CFIE) for the Helmholtz equation (e.g. see + [ColtonKress2012]_). For other kernels, it does does not offer any benefits. + """ + use_improved_operator: bool + """If *True* use the least singular operator available. Only used when + :attr:`alpha` is not :math:`0`. + """ + + def __init__(self, + kernel: Kernel, + loc_sign: Side, *, alpha: int | float | complex | None = None, use_improved_operator: bool = True, use_l2_weighting: bool = False, kernel_arguments: dict[str, Any] | None = None): - """ - :param loc_sign: :math:`+1` for exterior or :math:`-1` for interior - problems. - :param alpha: a complex coefficient with positive imaginary part for - the combined-field integral representation (CFIE) for the - Helmholtz equation (based on Brakhage and Werner). - For other kernels, it does does not offer any benefits. - :param use_improved_operator: if *True* use the least singular - operator available. Only used when *alpha* is not :math:`0`. - """ - assert loc_sign in [-1, 1] assert isinstance(kernel, Kernel) @@ -325,61 +418,79 @@ def __init__(self, kernel: Kernel, loc_sign: int, *, else: alpha = 0 - super().__init__(kernel, use_l2_weighting) + super().__init__(kernel, use_l2_weighting=use_l2_weighting) - from sumpy.kernel import LaplaceKernel self.kernel_arguments = kernel_arguments self.loc_sign = loc_sign - self.laplace_kernel = LaplaceKernel(kernel.dim) - - self.alpha = alpha self.use_improved_operator = use_improved_operator + self.alpha = alpha - def is_unique_only_up_to_constant(self): + def is_unique_only_up_to_constant(self) -> bool: from sumpy.kernel import LaplaceKernel return isinstance(self.kernel, LaplaceKernel) and self.loc_sign < 0 - def representation(self, u, - map_potentials=None, qbx_forced_limit=None, **kwargs): - """ - :param u: symbolic variable for the density. - :param map_potentials: a callable that can be used to apply - additional transformations on all the layer potentials in the - representation, e.g. to take a target derivative. - """ - sqrt_w = self.get_sqrt_weight() - inv_sqrt_w_u = sym.cse(u/sqrt_w) - laplace_s_inv_sqrt_w_u = sym.cse(sym.S(self.laplace_kernel, inv_sqrt_w_u)) - + @override + def representation(self, + u: ArithmeticExpression, + *, + map_potentials: PotentialMapper | None = None, + qbx_forced_limit: QBXForcedLimit = None, + source: DOFDescriptorLike = None, + target: DOFDescriptorLike = None, + **kwargs: Operand) -> ArithmeticExpression: if map_potentials is None: - def map_potentials(x): + def default_map_potentials(x: ArithmeticExpression) -> ArithmeticExpression: return x - kwargs["qbx_forced_limit"] = qbx_forced_limit - kwargs["kernel_arguments"] = self.kernel_arguments + map_potentials = default_map_potentials - return ( - map_potentials( - sym.S(self.kernel, inv_sqrt_w_u, **kwargs) - ) - - self.alpha * map_potentials( - sym.D(self.kernel, laplace_s_inv_sqrt_w_u, **kwargs) - ) - ) + kernel_arguments = self.kernel_arguments + if kwargs: + kernel_arguments = {**kernel_arguments, **kwargs} - def operator(self, u, **kwargs): - """ - :param u: symbolic variable for the density. - :param kwargs: additional keyword arguments passed on to the layer - potential constructor. - """ - sqrt_w = self.get_sqrt_weight() + from sumpy.kernel import LaplaceKernel + laplace = LaplaceKernel(self.dim) + + sqrt_w = self.get_sqrt_weight(source) inv_sqrt_w_u = sym.cse(u/sqrt_w) laplace_s_inv_sqrt_w_u = sym.cse( - sym.S(self.laplace_kernel, inv_sqrt_w_u, qbx_forced_limit=+1) + sym.S(laplace, inv_sqrt_w_u, + qbx_forced_limit=+1, + source=source, target=target) ) - kwargs["kernel_arguments"] = self.kernel_arguments + S = sym.S(self.kernel, inv_sqrt_w_u, + qbx_forced_limit=qbx_forced_limit, + kernel_arguments=kernel_arguments, + source=source, target=target) + D = sym.D(self.kernel, laplace_s_inv_sqrt_w_u, + qbx_forced_limit=qbx_forced_limit, + kernel_arguments=kernel_arguments, + source=source, target=target) + + return map_potentials(S) - self.alpha * map_potentials(D) + + @override + def operator(self, + u: ArithmeticExpression, + *, + dofdesc: DOFDescriptorLike = None, + **kwargs: Operand) -> ArithmeticExpression: + kernel_arguments = self.kernel_arguments + if kwargs: + kernel_arguments = {**kernel_arguments, **kwargs} + + from sumpy.kernel import HelmholtzKernel, LaplaceKernel + laplace = LaplaceKernel(self.dim) + + dofdesc = sym.as_dofdesc(dofdesc) + sqrt_w = self.get_sqrt_weight(dofdesc) + inv_sqrt_w_u = sym.cse(u/sqrt_w) + laplace_s_inv_sqrt_w_u = sym.cse( + sym.S(laplace, inv_sqrt_w_u, + qbx_forced_limit=+1, + source=dofdesc, target=dofdesc) + ) # NOTE: the improved operator here is based on right-precondioning # by a single layer and then using some Calderon identities to simplify @@ -388,32 +499,37 @@ def operator(self, u, **kwargs): # where D' is hypersingular if self.use_improved_operator: - def Sp(density): - return sym.Sp(self.laplace_kernel, - density, - qbx_forced_limit="avg") + def Sp(density: ArithmeticExpression) -> ArithmeticExpression: + return sym.Sp(laplace, density, + qbx_forced_limit="avg", + source=dofdesc, target=dofdesc) # NOTE: using the Calderon identity # D' S = -u/4 + S'^2 Dp0S0u = -0.25 * u + Sp(Sp(inv_sqrt_w_u)) - from sumpy.kernel import HelmholtzKernel, LaplaceKernel if isinstance(self.kernel, HelmholtzKernel): - DpS0u = ( - sym.Dp( - self.kernel, laplace_s_inv_sqrt_w_u, - qbx_forced_limit=+1, **kwargs) - - sym.Dp( - self.laplace_kernel, laplace_s_inv_sqrt_w_u, - qbx_forced_limit=+1, **kwargs) - + Dp0S0u) + Dp0 = sym.Dp( + self.kernel, laplace_s_inv_sqrt_w_u, + qbx_forced_limit=+1, + kernel_arguments=kernel_arguments, + source=dofdesc, target=dofdesc) + Dp1 = sym.Dp( + laplace, laplace_s_inv_sqrt_w_u, + qbx_forced_limit=+1, + kernel_arguments=kernel_arguments, + source=dofdesc, target=dofdesc) + + DpS0u = Dp0 - Dp1 + Dp0S0u elif isinstance(self.kernel, LaplaceKernel): DpS0u = Dp0S0u else: raise ValueError(f"no improved operator for '{self.kernel}' known") else: DpS0u = sym.Dp(self.kernel, laplace_s_inv_sqrt_w_u, - qbx_forced_limit=+1, **kwargs) + kernel_arguments=kernel_arguments, + qbx_forced_limit=+1, + source=dofdesc, target=dofdesc) if self.is_unique_only_up_to_constant(): # The interior Neumann operator in this representation @@ -422,37 +538,42 @@ def Sp(density): # returns a mean that is not well-specified. ones_contribution = ( - sym.Ones() * sym.mean(self.dim, self.dim - 1, inv_sqrt_w_u)) + sym.Ones(dofdesc) + * sym.mean(self.dim, self.dim - 1, inv_sqrt_w_u, dofdesc=dofdesc)) else: ones_contribution = 0 - kwargs["qbx_forced_limit"] = "avg" + Sp0 = sym.Sp(self.kernel, inv_sqrt_w_u, + qbx_forced_limit="avg", + kernel_arguments=kernel_arguments, + source=dofdesc, target=dofdesc) + return ( - -0.5 * self.loc_sign * u - + sqrt_w * ( - sym.Sp(self.kernel, inv_sqrt_w_u, **kwargs) - - self.alpha * DpS0u - + ones_contribution - ) - ) + -0.5 * self.loc_sign * u + + sqrt_w * (Sp0 - self.alpha * DpS0u + ones_contribution) + ) class BiharmonicClampedPlateOperator: - r"""IE operator and field representation for solving clamped plate Biharmonic - equation where, + r"""Integral operator and field representation for solving clamped plate biharmonic + equation. .. math:: - \begin{cases} - \Delta^2 u = 0, & \quad \text{ on } D, \\ - u = g_1, & \quad \text{ on } \partial D, \\ - \mathbf{n} \cdot \nabla u = g_2, & \quad \text{ on } \partial D. - \end{cases} + + \begin{cases} + \Delta^2 u = 0, & \quad \text{ on } D, \\ + u = g_1, & \quad \text{ on } \partial D, \\ + \mathbf{n} \cdot \nabla u = g_2, & \quad \text{ on } \partial D. + \end{cases} This operator assumes that the boundary data :math:`(g_1, g_2)` are represented as column vectors and vertically stacked. For details on the formulation see Problem C in [Farkas1990]_. - .. note :: This operator supports only interior problem. + .. note:: + + This operator supports only interior problems (with :attr:`loc_sign` + set to :math:`-1`). .. [Farkas1990] Farkas, Peter, *Mathematical foundations for fast algorithms for the biharmonic equation*, @@ -460,42 +581,53 @@ class BiharmonicClampedPlateOperator: Yale University, 1990, `PDF `__. + .. autoattribute:: kernel + .. autoattribute:: loc_sign + .. automethod:: representation .. automethod:: operator .. automethod:: __init__ """ - def __init__(self, kernel: Kernel, loc_sign: int): - """ - :param loc_sign: :math:`+1` for exterior or :math:`-1` for interior - problems. - """ + kernel: Kernel + """The kernel used in the integral operator.""" + loc_sign: Side + """Side of the operator evaluation.""" + def __init__(self, kernel: Kernel, loc_sign: Side) -> None: if loc_sign != -1: - raise ValueError("only interior problems (loc_sign == -1) are supported") + raise ValueError( + "only interior problems (loc_sign == -1) are supported") if kernel.dim != 2: - raise ValueError("unsupported dimension: {kernel.ambient_dim}") + raise ValueError( + f"unsupported dimension: {kernel.dim} (only 2d problems " + "are supported)") self.kernel = kernel self.loc_sign = loc_sign @property - def dim(self): + def dim(self) -> int: return self.kernel.dim - def prepare_rhs(self, b): + def prepare_rhs(self, b: VectorExpression) -> VectorExpression: return b - def get_density_var(self, name: str): + def get_density_var(self, name: str) -> VectorExpression: """ - :returns: a symbolic array corresponding to the density - with the given *name*. + :returns: a symbolic array corresponding to the density with the given *name*. """ return sym.make_sym_vector(name, 2) - def representation(self, sigma, - map_potentials=None, qbx_forced_limit=None, **kwargs): + def representation(self, + sigma: VectorExpression, + *, + map_potentials: PotentialMapper | None = None, + qbx_forced_limit: QBXForcedLimit = None, + source: DOFDescriptorLike = None, + target: DOFDescriptorLike = None, + **kwargs: Operand) -> ArithmeticExpression: """ :param sigma: symbolic variable for the density. :param map_potentials: a callable that can be used to apply @@ -504,52 +636,58 @@ def representation(self, sigma, :param kwargs: additional keyword arguments passed on to the layer potential constructor. """ + assert sigma.shape == (self.dim,) if map_potentials is None: - def map_potentials(x): + def default_map_potentials(x: ArithmeticExpression) -> ArithmeticExpression: return x - def dv(knl): + map_potentials = default_map_potentials + + def dn(knl: Kernel) -> Kernel: return DirectionalSourceDerivative(knl, "normal_dir") - def dt(knl): + def dt(knl: Kernel) -> Kernel: return DirectionalSourceDerivative(knl, "tangent_dir") - normal_dir = sym.normal(self.dim).as_vector() - tangent_dir = np.array([-normal_dir[1], normal_dir[0]]) - kwargs["qbx_forced_limit"] = qbx_forced_limit + from pytools.obj_array import from_numpy + normal_dir = from_numpy(sym.normal(self.dim).as_vector(), + ArithmeticExpression) + tangent_dir = from_numpy(np.array([-normal_dir[1], normal_dir[0]]), + ArithmeticExpression) + + Snnn = sym.S(dn(dn(dn(self.kernel))), sigma[0], + qbx_forced_limit=qbx_forced_limit, + kernel_arguments={**kwargs, "normal_dir": normal_dir}, + source=source, target=target) + Sntt = sym.S(dn(dt(dt(self.kernel))), sigma[0], + qbx_forced_limit=qbx_forced_limit, + kernel_arguments={ + **kwargs, + "normal_dir": normal_dir, + "tangent_dir": tangent_dir, + }, + source=source, target=target) + + Snn = sym.S(dn(dn(self.kernel)), sigma[1], + qbx_forced_limit=qbx_forced_limit, + kernel_arguments={**kwargs, "normal_dir": normal_dir}, + source=source, target=target) + Stt = sym.S(dt(dt(self.kernel)), sigma[1], + qbx_forced_limit=qbx_forced_limit, + kernel_arguments={**kwargs, "tangent_dir": tangent_dir}, + source=source, target=target) - k1 = ( - map_potentials( - sym.S(dv(dv(dv(self.kernel))), sigma[0], - kernel_arguments={"normal_dir": normal_dir}, - **kwargs) - ) - + 3 * map_potentials( - sym.S(dv(dt(dt(self.kernel))), sigma[0], - kernel_arguments={ - "normal_dir": normal_dir, "tangent_dir": tangent_dir - }, - **kwargs) - ) - ) - - k2 = ( - -map_potentials( - sym.S(dv(dv(self.kernel)), sigma[1], - kernel_arguments={"normal_dir": normal_dir}, - **kwargs) - ) - + map_potentials( - sym.S(dt(dt(self.kernel)), sigma[1], - kernel_arguments={"tangent_dir": tangent_dir}, - **kwargs) - ) - ) - - return k1 + k2 - - def operator(self, sigma, **kwargs): + return ( + map_potentials(Snnn) + 3 * map_potentials(Sntt) + - map_potentials(Snn) + map_potentials(Stt) + ) + + def operator(self, + sigma: VectorExpression, + *, + dofdesc: DOFDescriptorLike = None, + **kwargs: Operand) -> VectorExpression: """ :param u: symbolic variable for the density. :param kwargs: additional keyword arguments passed on to the layer @@ -558,13 +696,20 @@ def operator(self, sigma, **kwargs): :returns: the second kind integral operator for the clamped plate problem from [Farkas1990]_. """ - rep = self.representation(sigma, qbx_forced_limit="avg", **kwargs) - drep_dn = sym.normal_derivative(self.dim, rep) - - int_eq1 = sigma[0] / 2 + rep - int_eq2 = -sym.mean_curvature(self.dim) * sigma[0] + sigma[1] / 2 + drep_dn - - return np.array([int_eq1, int_eq2]) + R = self.representation( + sigma, + map_potentials=None, + qbx_forced_limit="avg", + source=dofdesc, target=dofdesc, + **kwargs) + dR_dn = sym.normal_derivative(self.dim, R, dofdesc=dofdesc) + kappa = sym.mean_curvature(self.dim, dofdesc=dofdesc) + + int_eq1 = sigma[0] / 2 + R + int_eq2 = sigma[1] / 2 - kappa * sigma[0] + dR_dn + + from pytools.obj_array import from_numpy + return from_numpy(np.array([int_eq1, int_eq2]), ArithmeticExpression) # }}} diff --git a/pytential/symbolic/primitives.py b/pytential/symbolic/primitives.py index 3a06eaa93..5ee501506 100644 --- a/pytential/symbolic/primitives.py +++ b/pytential/symbolic/primitives.py @@ -91,7 +91,6 @@ import modepy as mp from pymbolic.mapper.stringifier import StringifyMapper from pymbolic.primitives import CommonSubexpression, Quotient - from pytools import P __doc__ = """ @@ -149,6 +148,7 @@ .. autoclass:: ArithmeticExpressionT +.. autoclass:: Side .. autoclass:: QBXForcedLimit .. class:: P @@ -377,6 +377,19 @@ """ __all__ = ( + # re-export from pymbolic + "Variable", + "cse", + "make_sym_vector", + "var", + # re-export from sumpy + "SpatialConstant", + # re-export from pytential.symbolic.dof_desc + "DEFAULT_SOURCE", "DEFAULT_TARGET", + "QBX_SOURCE_STAGE1", "QBX_SOURCE_STAGE2", "QBX_SOURCE_QUAD_STAGE2", + "GRANULARITY_NODE", "GRANULARITY_CENTER", "GRANULARITY_ELEMENT", + "DOFDescriptor", "DOFDescriptorLike", "as_dofdesc", + "Operand", "OperandTc", "Side", "QBXForcedLimit", "ArithmeticExpressionT", @@ -387,7 +400,7 @@ "ExpressionNode", "ErrorExpression", - "var", "SpatialConstant", "make_sym_mv", "make_sym_surface_mv", + "make_sym_mv", "make_sym_surface_mv", "real", "imag", "conj", "abs", "sqrt", @@ -412,7 +425,6 @@ "dd_axis", "d_dx", "d_dy", "d_dz", "grad_mv", "grad", "laplace", - "IntG", "int_g_dsource", "int_g_vec", "S", "Sp", "Spp", "D", "Dp", @@ -424,12 +436,7 @@ "cross", "n_dot", "n_cross", "curl", "pretty", - - "DEFAULT_SOURCE", "DEFAULT_TARGET", - "QBX_SOURCE_STAGE1", "QBX_SOURCE_STAGE2", "QBX_SOURCE_QUAD_STAGE2", - "GRANULARITY_NODE", "GRANULARITY_CENTER", "GRANULARITY_ELEMENT", - "DOFDescriptor", "DOFDescriptorLike", "as_dofdesc", - ) +) # {{{ helpers @@ -670,7 +677,8 @@ def __init__(self, def nodes(ambient_dim: int, - dofdesc: DOFDescriptorLike = None) -> MultiVector[ArithmeticExpression]: + dofdesc: DOFDescriptorLike = None, + ) -> MultiVector[ArithmeticExpression]: """ :returns: a :class:`pymbolic.geometric_algebra.MultiVector` of node coordinates. """ @@ -702,9 +710,9 @@ class NumReferenceDerivative(DiscretizationProperty): def __new__(cls, ref_axes: int | tuple[tuple[int, int], ...] | None = None, - operand: Operand | None = None, + operand: OperandTc | None = None, dofdesc: DOFDescriptor | None = None, - ) -> NumReferenceDerivative: + ) -> NumReferenceDerivative | OperandTc: if isinstance(operand, ObjectArray | MultiVector): warn(f"Passing {type(operand)} directly to {cls.__name__!r} " "is deprecated and will result in an error from 2025. Use " @@ -755,7 +763,7 @@ def __init__(self, def num_reference_derivative( expr: ArithmeticExpression, ref_axes: tuple[tuple[int, int], ...] | int, - dofdesc: DOFDescriptorLike | None) -> NumReferenceDerivative: + dofdesc: DOFDescriptorLike) -> ArithmeticExpression: """Take a derivative of *expr* with respect to the the element reference coordinates. @@ -1420,7 +1428,7 @@ class Interpolation(ExpressionNode): def __new__(cls, from_dd: DOFDescriptorLike, to_dd: DOFDescriptorLike, - operand: Operand) -> Interpolation: + operand: OperandTc) -> Interpolation | OperandTc: from_dd = as_dofdesc(from_dd) to_dd = as_dofdesc(to_dd) @@ -1472,7 +1480,7 @@ def interp(from_dd: DOFDescriptorLike, @for_each_expression def interpolate(operand: ArithmeticExpression, from_dd: DOFDescriptorLike, - to_dd: DOFDescriptorLike) -> Interpolation: + to_dd: DOFDescriptorLike) -> ArithmeticExpression: from_dd = as_dofdesc(from_dd) to_dd = as_dofdesc(to_dd) @@ -1492,7 +1500,8 @@ class SingleScalarOperandExpression(ExpressionNode): """An expression or an array on which to apply the operation.""" def __new__(cls, - operand: Operand | None = None) -> SingleScalarOperandExpression: + operand: OperandTc | None = None, + ) -> SingleScalarOperandExpression | OperandTc: if isinstance(operand, ObjectArray | MultiVector): name = cls.mapper_method[4:] warn(f"Passing {type(operand)} directly to {cls.__name__!r} " @@ -1517,7 +1526,7 @@ class NodeSum(SingleScalarOperandExpression): @for_each_expression -def node_sum(expr: ArithmeticExpression) -> NodeSum: +def node_sum(expr: ArithmeticExpression) -> ArithmeticExpression: return NodeSum(expr) @@ -1530,7 +1539,7 @@ class NodeMax(SingleScalarOperandExpression): @for_each_expression -def node_max(expr: ArithmeticExpression) -> NodeMax: +def node_max(expr: ArithmeticExpression) -> ArithmeticExpression: return NodeMax(expr) @@ -1543,7 +1552,7 @@ class NodeMin(SingleScalarOperandExpression): @for_each_expression -def node_min(expr: ArithmeticExpression) -> NodeMin: +def node_min(expr: ArithmeticExpression) -> ArithmeticExpression: return NodeMin(expr) @@ -1576,9 +1585,9 @@ class SingleScalarOperandExpressionWithWhere(ExpressionNode): """The descriptor for the geometry where the *operand* is defined.""" def __new__(cls, - operand: Operand | None = None, + operand: OperandTc | None = None, dofdesc: DOFDescriptorLike | None = None, - ) -> SingleScalarOperandExpressionWithWhere: + ) -> SingleScalarOperandExpressionWithWhere | OperandTc: if isinstance(operand, ObjectArray | MultiVector): name = cls.mapper_method[4:] warn(f"Passing {type(operand)} directly to {cls.__name__!r} " @@ -1614,7 +1623,7 @@ class ElementwiseSum(SingleScalarOperandExpressionWithWhere): @for_each_expression def elementwise_sum(expr: ArithmeticExpression, - dofdesc: DOFDescriptorLike = None) -> ElementwiseSum: + dofdesc: DOFDescriptorLike = None) -> ArithmeticExpression: return ElementwiseSum(expr, as_dofdesc(dofdesc)) @@ -1629,7 +1638,7 @@ class ElementwiseMin(SingleScalarOperandExpressionWithWhere): @for_each_expression def elementwise_min(expr: ArithmeticExpression, - dofdesc: DOFDescriptorLike = None) -> ElementwiseMin: + dofdesc: DOFDescriptorLike = None) -> ArithmeticExpression: return ElementwiseMin(expr, as_dofdesc(dofdesc)) @@ -1644,7 +1653,7 @@ class ElementwiseMax(SingleScalarOperandExpressionWithWhere): @for_each_expression def elementwise_max(expr: ArithmeticExpression, - dofdesc: DOFDescriptorLike = None) -> ElementwiseMax: + dofdesc: DOFDescriptorLike = None) -> ArithmeticExpression: return ElementwiseMax(expr, as_dofdesc(dofdesc)) @@ -1683,8 +1692,8 @@ def area(ambient_dim: int, def mean(ambient_dim: int, dim: int, - operand: Operand, - dofdesc: DOFDescriptorLike = None) -> Operand: + operand: OperandTc, + dofdesc: DOFDescriptorLike = None) -> OperandTc: return ( integral(ambient_dim, dim, operand, dofdesc) / area(ambient_dim, dim, dofdesc)) @@ -2129,20 +2138,18 @@ def int_g_dsource( [NablaComponent(axis, None) for axis in range(ambient_dim)] )) - def add_dir_vec_to_kernel_args( - coeff: ArithmeticExpression - ) -> KernelArgumentMapping: - result = kernel_arguments.copy() - result[_DIR_VEC_NAME] = _get_dir_vec(coeff, ambient_dim) - return result + def add_dir_vector_to_kernel_arguments(coeff: ArithmeticExpression) -> Operand: + new_kernel_arguments = kernel_arguments.copy() + new_kernel_arguments[_DIR_VEC_NAME] = _get_dir_vec(coeff, ambient_dim) + + return int_g_vec(kernel, density, + qbx_forced_limit=qbx_forced_limit, + source=source, target=target, + kernel_arguments=new_kernel_arguments, + **kwargs) density = cse(density) - return (dsource*nabla).map( - lambda coeff: int_g_vec( - kernel, - density, qbx_forced_limit, source, target, - kernel_arguments=add_dir_vec_to_kernel_args(coeff), - **kwargs)) + return (dsource*nabla).map(add_dir_vector_to_kernel_arguments) # }}} @@ -2156,47 +2163,14 @@ class _unspecified: # noqa: N801 pass -@overload -def int_g_vec( - kernel: Kernel, - density: ArithmeticExpression, - qbx_forced_limit: QBXForcedLimit, - source: DOFDescriptorLike = None, - target: DOFDescriptorLike = None, - kernel_arguments: KernelArgumentLike | None = None, - **kwargs: Operand) -> IntG: ... - - -@overload -def int_g_vec( - kernel: Kernel, - density: ObjectArrayND[ArithmeticExpression], - qbx_forced_limit: QBXForcedLimit, - source: DOFDescriptorLike = None, - target: DOFDescriptorLike = None, - kernel_arguments: KernelArgumentLike | None = None, - **kwargs: Operand) -> ObjectArrayND[IntG]: ... - - -@overload -def int_g_vec( - kernel: Kernel, - density: MultiVector[ArithmeticExpression], - qbx_forced_limit: QBXForcedLimit, - source: DOFDescriptorLike = None, - target: DOFDescriptorLike = None, - kernel_arguments: KernelArgumentLike | None = None, - **kwargs: Operand) -> MultiVector[ArithmeticExpression]: ... - - def int_g_vec( kernel: Kernel, - density: Operand, + density: OperandTc, qbx_forced_limit: QBXForcedLimit, source: DOFDescriptorLike = None, target: DOFDescriptorLike = None, kernel_arguments: KernelArgumentLike | None = None, - **kwargs: Operand) -> Operand: + **kwargs: Operand) -> OperandTc: """ Creates a vector of :class:`IntG` objects from one kernel with source and target derivatives and maps a vector of densities into a vector of @@ -2244,20 +2218,21 @@ def make_op(operand_i: ArithmeticExpression) -> IntG: def S( kernel: Kernel, - density: Operand, + density: OperandTc, qbx_forced_limit: QBXForcedLimit = _unspecified, source: DOFDescriptorLike = None, target: DOFDescriptorLike = None, kernel_arguments: KernelArgumentLike | None = None, **kwargs: Operand, - ) -> Operand: + ) -> OperandTc: if qbx_forced_limit is _unspecified: warn("Not specifying 'qbx_forced_limit' on call to 'S' is deprecated. " "Choosing default to '+1'.", stacklevel=2) qbx_forced_limit = +1 - return int_g_vec(kernel, density, qbx_forced_limit, source, target, + return int_g_vec( + kernel, density, qbx_forced_limit, source, target, kernel_arguments, **kwargs) @@ -2279,10 +2254,10 @@ def tangential_derivative( def normal_derivative( ambient_dim: int, - operand: Operand, + operand: OperandTc, dim: int | None = None, dofdesc: DOFDescriptorLike = None, - ) -> MultiVector[ArithmeticExpression]: + ) -> OperandTc: d = Derivative() return d.resolve( (normal(ambient_dim, dim, dofdesc).scalar_product(d.dnabla(ambient_dim))) @@ -2291,10 +2266,10 @@ def normal_derivative( def normal_second_derivative( ambient_dim: int, - operand: Operand, + operand: OperandTc, dim: int | None = None, dofdesc: DOFDescriptorLike = None, - ) -> MultiVector[ArithmeticExpression]: + ) -> OperandTc: d = Derivative() n = normal(ambient_dim, dim, dofdesc) nabla = d.dnabla(ambient_dim) @@ -2306,7 +2281,7 @@ def normal_second_derivative( def Sp( kernel: Kernel, - density: Operand, + density: OperandTc, qbx_forced_limit: QBXForcedLimit = _unspecified, source: DOFDescriptorLike | None = None, target: DOFDescriptorLike | None = None, @@ -2314,7 +2289,7 @@ def Sp( ambient_dim: int | None = None, dim: int | None = None, **kwargs: Operand, - ) -> Operand: + ) -> OperandTc: if qbx_forced_limit is _unspecified: warn("Not specifying 'qbx_forced_limit' on call to 'Sp' is deprecated. " "Choosing default 'avg'.", stacklevel=2) @@ -2327,18 +2302,16 @@ def Sp( raise ValueError( "'ambient_dim' must be specified (either through the kernel, or directly") - return normal_derivative( - ambient_dim, - S(kernel, density, - qbx_forced_limit=qbx_forced_limit, - source=source, target=target, - kernel_arguments=kernel_arguments, **kwargs), - dim=dim, dofdesc=target) + Sk = S(kernel, density, + qbx_forced_limit=qbx_forced_limit, + source=source, target=target, + kernel_arguments=kernel_arguments, **kwargs) + return normal_derivative(ambient_dim, Sk, dim=dim, dofdesc=target) def Spp( kernel: Kernel, - density: Operand, + density: OperandTc, qbx_forced_limit: QBXForcedLimit = _unspecified, source: DOFDescriptorLike | None = None, target: DOFDescriptorLike | None = None, @@ -2346,7 +2319,7 @@ def Spp( ambient_dim: int | None = None, dim: int | None = None, **kwargs: Operand, - ) -> Operand: + ) -> OperandTc: if qbx_forced_limit is _unspecified: warn("Not specifying 'qbx_forced_limit' on call to 'Spp' is deprecated. " "Choosing default '+1'.", stacklevel=2) @@ -2359,18 +2332,16 @@ def Spp( raise ValueError( "'ambient_dim' must be specified (either through the kernel, or directly") - return normal_second_derivative( - ambient_dim, - S(kernel, density, - qbx_forced_limit=qbx_forced_limit, - source=source, target=target, - kernel_arguments=kernel_arguments, **kwargs), - dim=dim, dofdesc=target) + Sk = S(kernel, density, + qbx_forced_limit=qbx_forced_limit, + source=source, target=target, + kernel_arguments=kernel_arguments, **kwargs) + return normal_second_derivative(ambient_dim, Sk, dim=dim, dofdesc=target) def D( kernel: Kernel, - density: Operand, + density: OperandTc, qbx_forced_limit: QBXForcedLimit = _unspecified, source: DOFDescriptorLike | None = None, target: DOFDescriptorLike | None = None, @@ -2378,7 +2349,7 @@ def D( ambient_dim: int | None = None, dim: int | None = None, **kwargs: Operand, - ) -> Operand: + ) -> OperandTc: if qbx_forced_limit is _unspecified: warn("Not specifying 'qbx_forced_limit' on call to 'D' is deprecated. " "Choosing default 'avg'.", stacklevel=2) @@ -2404,7 +2375,7 @@ def D( def Dp( kernel: Kernel, - density: Operand, + density: OperandTc, qbx_forced_limit: QBXForcedLimit = _unspecified, source: DOFDescriptorLike | None = None, target: DOFDescriptorLike | None = None, @@ -2412,7 +2383,7 @@ def Dp( ambient_dim: int | None = None, dim: int | None = None, **kwargs: Operand, - ) -> Operand: + ) -> OperandTc: if qbx_forced_limit is _unspecified: warn("Not specifying 'qbx_forced_limit' on call to 'Dp' is deprecated. " "Choosing default '+1'.", stacklevel=2) @@ -2425,15 +2396,15 @@ def Dp( raise ValueError( "'ambient_dim' must be specified (either through the kernel, or directly") - return normal_derivative( - ambient_dim, - D(kernel, density, - qbx_forced_limit=qbx_forced_limit, - source=source, target=target, - kernel_arguments=kernel_arguments, - ambient_dim=ambient_dim, - **kwargs), - dim=dim, dofdesc=target) + Dk = D(kernel, density, + qbx_forced_limit=qbx_forced_limit, + source=source, target=target, + kernel_arguments=kernel_arguments, + ambient_dim=ambient_dim, + dim=dim, + **kwargs) + + return normal_derivative(ambient_dim, Dk, dim=dim, dofdesc=target) # }}}