Skip to content

Commit 92addc3

Browse files
support built-in equations in system
1 parent 1572e97 commit 92addc3

2 files changed

Lines changed: 25 additions & 4 deletions

File tree

pina/equation/system_equation.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,10 @@ def __init__(self, list_equation, reduction=None):
3232
check_consistency([list_equation], list)
3333

3434
# equations definition
35-
self.equations = []
36-
for _, equation in enumerate(list_equation):
37-
self.equations.append(Equation(equation))
35+
self.equations = [
36+
equation if isinstance(equation, Equation) else Equation(equation)
37+
for equation in list_equation
38+
]
3839

3940
# possible reduction
4041
if reduction == "mean":

tests/test_equations/test_system_equation.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from pina.equation import SystemEquation
1+
from pina.equation import SystemEquation, FixedValue, FixedGradient
22
from pina.operator import grad, laplacian
33
from pina import LabelTensor
44
import torch
@@ -25,10 +25,20 @@ def foo():
2525

2626

2727
def test_constructor():
28+
2829
SystemEquation([eq1, eq2])
2930
SystemEquation([eq1, eq2], reduction="sum")
31+
SystemEquation(
32+
[
33+
FixedValue(value=0.0, components=["u1"]),
34+
FixedGradient(value=0.0, components=["u2"]),
35+
],
36+
reduction="mean",
37+
)
38+
3039
with pytest.raises(NotImplementedError):
3140
SystemEquation([eq1, eq2], reduction="foo")
41+
3242
with pytest.raises(ValueError):
3343
SystemEquation(foo)
3444

@@ -55,3 +65,13 @@ def test_residual():
5565
eq_1 = SystemEquation([eq1, eq2])
5666
res = eq_1.residual(pts, u)
5767
assert res.shape == torch.Size([10, 3])
68+
69+
system_eq = SystemEquation(
70+
[
71+
FixedValue(value=0.0, components=["u1"]),
72+
FixedGradient(value=0.0, components=["u2"]),
73+
],
74+
reduction="mean",
75+
)
76+
res = system_eq.residual(pts, u)
77+
assert res.shape == torch.Size([10])

0 commit comments

Comments
 (0)