Skip to content

Commit 741e200

Browse files
update old euler_beam
1 parent c64ce6a commit 741e200

File tree

1 file changed

+15
-40
lines changed

1 file changed

+15
-40
lines changed

examples/euler_beam/euler_beam.py

Lines changed: 15 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
import numpy as np
1615
from paddle import fluid
1716

1817
import ppsci
@@ -22,9 +21,10 @@
2221
from ppsci.utils import logger
2322

2423
if __name__ == "__main__":
25-
fluid.core._set_prim_all_enabled(True)
26-
2724
args = config.parse_args()
25+
# enable computation for fourth-order differentiation of matmul
26+
fluid.core.set_prim_eager_enabled(True)
27+
fluid.core._set_prim_all_enabled(True)
2828
# set random seed for reproducibility
2929
ppsci.utils.misc.set_random_seed(42)
3030
# set training hyper-parameters
@@ -59,49 +59,24 @@
5959
random="Hammersley",
6060
name="EQ",
6161
)
62-
bc1 = ppsci.constraint.BoundaryConstraint(
63-
{"u0": lambda d: d["u"]},
64-
{"u0": 0},
65-
geom["interval"],
66-
{**dataloader_cfg, "batch_size": 1},
67-
ppsci.loss.MSELoss("sum"),
68-
criteria=lambda x: np.isclose(x, 0.0),
69-
name="BC1",
70-
)
71-
bc2 = ppsci.constraint.BoundaryConstraint(
72-
{"u__x": lambda d: jacobian(d["u"], d["x"])},
73-
{"u__x": 0},
74-
geom["interval"],
75-
{**dataloader_cfg, "batch_size": 1},
76-
ppsci.loss.MSELoss("sum"),
77-
criteria=lambda x: np.isclose(x, 0.0),
78-
name="BC2",
79-
)
80-
bc3 = ppsci.constraint.BoundaryConstraint(
81-
{"u__x__x": lambda d: hessian(d["u"], d["x"])},
82-
{"u__x__x": 0},
83-
geom["interval"],
84-
{**dataloader_cfg, "batch_size": 1},
85-
ppsci.loss.MSELoss("sum"),
86-
criteria=lambda x: np.isclose(x, 1.0),
87-
name="BC3",
88-
)
89-
bc4 = ppsci.constraint.BoundaryConstraint(
90-
{"u__x__x__x": lambda d: jacobian(hessian(d["u"], d["x"]), d["x"])},
91-
{"u__x__x__x": 0},
62+
bc = ppsci.constraint.BoundaryConstraint(
63+
{
64+
"u0": lambda d: d["u"][0:1],
65+
"u__x": lambda d: jacobian(d["u"], d["x"])[1:2],
66+
"u__x__x": lambda d: hessian(d["u"], d["x"])[2:3],
67+
"u__x__x__x": lambda d: jacobian(hessian(d["u"], d["x"]), d["x"])[3:4],
68+
},
69+
{"u0": 0, "u__x": 0, "u__x__x": 0, "u__x__x__x": 0},
9270
geom["interval"],
93-
{**dataloader_cfg, "batch_size": 1},
71+
{**dataloader_cfg, "batch_size": 4},
9472
ppsci.loss.MSELoss("sum"),
95-
criteria=lambda x: np.isclose(x, 1.0),
96-
name="BC4",
73+
evenly=True,
74+
name="BC",
9775
)
9876
# wrap constraints together
9977
constraint = {
10078
pde_constraint.name: pde_constraint,
101-
bc1.name: bc1,
102-
bc2.name: bc2,
103-
bc3.name: bc3,
104-
bc4.name: bc4,
79+
bc.name: bc,
10580
}
10681

10782
# set optimizer

0 commit comments

Comments
 (0)