Hello, I’m currently trying to learn modulus. My experience with neural networks is admittedly rusty and I have no prior experience with CFDs.
The Problem:
If I include the following code for an IntegralBoundaryConstraint
, which represents the inlet and outlet of a system containing water flow I notice that my loss value becomes constant, which would obviously make it impossible for it to converge. Anyone have tips on how I should troubleshoot this? This code is modifed from the Aneurysm case.
Note that gpm
is currently set to a value of 2
and the coordinate system is in mm
(coords are normalized to fit within a unit cube).
# Integral Continuity 1
integral_continuity = IntegralBoundaryConstraint(
nodes=nodes,
geometry=inlet_mesh,
outvar={"normal_dot_vel": gpm},
batch_size=1,
integral_batch_size=cfg.batch_size.integral_continuity,
lambda_weighting={"normal_dot_vel": 0.1},
)
domain.add_constraint(integral_continuity, "integral_continuity")
# Integral Continuity 2
integral_continuity = IntegralBoundaryConstraint(
nodes=nodes,
geometry=outlet_mesh,
outvar={"normal_dot_vel": -gpm},
batch_size=1,
integral_batch_size=cfg.batch_size.integral_continuity,
lambda_weighting={"normal_dot_vel": 0.1},
)
domain.add_constraint(integral_continuity, "integral_continuity")
Here’s a sample of the training log output
[18:52:55] - [step: 93100] loss: 8.000e-01, time/iteration: 5.398e+01 ms
[18:52:59] - [step: 93200] loss: 8.000e-01, time/iteration: 3.567e+01 ms
[18:53:02] - [step: 93300] loss: 8.000e-01, time/iteration: 3.570e+01 ms
[18:53:06] - [step: 93400] loss: 8.000e-01, time/iteration: 3.567e+01 ms
[18:53:09] - [step: 93500] loss: 8.000e-01, time/iteration: 3.565e+01 ms
[18:53:13] - [step: 93600] loss: 8.000e-01, time/iteration: 3.566e+01 ms
[18:53:17] - [step: 93700] loss: 8.000e-01, time/iteration: 3.560e+01 ms
[18:53:20] - [step: 93800] loss: 8.000e-01, time/iteration: 3.558e+01 ms
[18:53:24] - [step: 93900] loss: 8.000e-01, time/iteration: 3.546e+01 ms
[18:53:27] - [step: 94000] saved checkpoint to outputs/foobar