From c7e79e50a79033c14317e8d4961bb882dd5806e9 Mon Sep 17 00:00:00 2001 From: Thomas Gibson Date: Mon, 10 May 2021 18:03:17 -0500 Subject: [PATCH] Fix wave example blow ups and check norms --- examples/wave/var-propagation-speed.py | 5 +++-- examples/wave/wave-min-mpi.py | 6 ++++-- examples/wave/wave-min.py | 5 +++-- examples/wave/wave-op-mpi.py | 8 ++++++-- examples/wave/wave-op-var-velocity.py | 5 ++++- examples/wave/wave-op.py | 6 ++++-- 6 files changed, 24 insertions(+), 11 deletions(-) diff --git a/examples/wave/var-propagation-speed.py b/examples/wave/var-propagation-speed.py index 1120a623..5fb31617 100644 --- a/examples/wave/var-propagation-speed.py +++ b/examples/wave/var-propagation-speed.py @@ -110,9 +110,9 @@ def main(write_output=True, order=4): step += 1 - print(step, event.t, norm(u=event.state_component[0]), - time()-t_last_step) if step % 10 == 0: + print(f"step: {step} t: {time()-t_last_step} " + f"L2: {norm(u=event.state_component[0])}") vis.write_vtk_file("fld-var-propogation-speed-%04d.vtu" % step, [ ("u", event.state_component[0]), @@ -120,6 +120,7 @@ def main(write_output=True, order=4): ("c", c_eval), ]) t_last_step = time() + assert norm(u=event.state_component[0]) < 1 if __name__ == "__main__": diff --git a/examples/wave/wave-min-mpi.py b/examples/wave/wave-min-mpi.py index 877809a6..29f59dff 100644 --- a/examples/wave/wave-min-mpi.py +++ b/examples/wave/wave-min-mpi.py @@ -128,9 +128,10 @@ def main(write_output=True, order=4): step += 1 - print(step, event.t, norm(u=event.state_component[0]), - time()-t_last_step) if step % 10 == 0: + if comm.rank == 0: + print(f"step: {step} t: {time()-t_last_step} " + f"L2: {norm(u=event.state_component[0])}") vis.write_parallel_vtk_file( comm, f"fld-wave-min-mpi-{{rank:03d}}-{step:04d}.vtu", @@ -139,6 +140,7 @@ def main(write_output=True, order=4): ("v", event.state_component[1:]), ]) t_last_step = time() + assert norm(u=event.state_component[0]) < 1 if __name__ == "__main__": diff --git a/examples/wave/wave-min.py b/examples/wave/wave-min.py index 7e307e47..bd306b0f 100644 --- a/examples/wave/wave-min.py +++ b/examples/wave/wave-min.py @@ -110,15 +110,16 @@ def main(write_output=True, order=4): step += 1 - print(step, event.t, norm(u=event.state_component[0]), - time()-t_last_step) if step % 10 == 0: + print(f"step: {step} t: {time()-t_last_step} " + f"L2: {norm(u=event.state_component[0])}") vis.write_vtk_file("fld-wave-min-%04d.vtu" % step, [ ("u", event.state_component[0]), ("v", event.state_component[1:]), ]) t_last_step = time() + assert norm(u=event.state_component[0]) < 1 if __name__ == "__main__": diff --git a/examples/wave/wave-op-mpi.py b/examples/wave/wave-op-mpi.py index b3d887ed..b6806b9d 100644 --- a/examples/wave/wave-op-mpi.py +++ b/examples/wave/wave-op-mpi.py @@ -157,7 +157,7 @@ def main(): if dim == 2: # no deep meaning here, just a fudge factor - dt = 0.75/(nel_1d*order**2) + dt = 0.7/(nel_1d*order**2) elif dim == 3: # no deep meaning here, just a fudge factor dt = 0.45/(nel_1d*order**2) @@ -181,7 +181,9 @@ def main(): fields = rk4_step(fields, t, dt, rhs) if istep % 10 == 0: - print(istep, t, op.norm(dcoll, fields[0], p=2)) + if comm.rank == 0: + print(f"step: {istep} t: {t} L2: {op.norm(dcoll, fields[0], 2)} " + f"sol max: {op.nodal_max(dcoll, 'vol', fields[0])}") vis.write_parallel_vtk_file( comm, f"fld-wave-eager-mpi-{{rank:03d}}-{istep:04d}.vtu", @@ -193,6 +195,8 @@ def main(): t += dt istep += 1 + assert op.norm(dcoll, fields[0], 2) < 1 + if __name__ == "__main__": main() diff --git a/examples/wave/wave-op-var-velocity.py b/examples/wave/wave-op-var-velocity.py index 5ac1233d..77b9daf6 100644 --- a/examples/wave/wave-op-var-velocity.py +++ b/examples/wave/wave-op-var-velocity.py @@ -189,7 +189,8 @@ def main(): fields = rk4_step(fields, t, dt, rhs) if istep % 10 == 0: - print(istep, t, op.norm(dcoll, fields[0], p=2)) + print(f"step: {istep} t: {t} L2: {op.norm(dcoll, fields[0], 2)} " + f"sol max: {op.nodal_max(dcoll, 'vol', fields[0])}") vis.write_vtk_file("fld-wave-eager-var-velocity-%04d.vtu" % istep, [ ("c", c), @@ -200,6 +201,8 @@ def main(): t += dt istep += 1 + assert op.norm(dcoll, fields[0], 2) < 1 + if __name__ == "__main__": main() diff --git a/examples/wave/wave-op.py b/examples/wave/wave-op.py index d482f72f..f8ef5785 100644 --- a/examples/wave/wave-op.py +++ b/examples/wave/wave-op.py @@ -129,7 +129,7 @@ def main(): if dim == 2: # no deep meaning here, just a fudge factor - dt = 0.75/(nel_1d*order**2) + dt = 0.7/(nel_1d*order**2) elif dim == 3: # no deep meaning here, just a fudge factor dt = 0.45/(nel_1d*order**2) @@ -158,7 +158,7 @@ def main(): if istep % 10 == 0: print(f"step: {istep} t: {t} L2: {op.norm(dcoll, fields[0], 2)} " - f"sol max: {op.nodal_max(dcoll, 'vol', fields[0])}") + f"sol max: {op.nodal_max(dcoll, 'vol', fields[0])}") vis.write_vtk_file("fld-wave-eager-%04d.vtu" % istep, [ ("u", fields[0]), @@ -168,6 +168,8 @@ def main(): t += dt istep += 1 + assert op.norm(dcoll, fields[0], 2) < 1 + if __name__ == "__main__": main() -- GitLab