Trixi.jl icon indicating copy to clipboard operation
Trixi.jl copied to clipboard

Implement coupling between meshes in one simulation

Open efaulhaber opened this issue 3 years ago • 5 comments

We implemented a new SemidiscretizationCoupled which bundles multiple semidiscretizations and runs them in parallel with synchronized time steps. These semidiscretizations can be coupled using the new BoundaryConditionCoupled. When this boundary condition is used, values at a specified boundary of another mesh can be used as boundary condition.

We adapted the visualization code to plot coupled semidiscretizations as well: grafik This is the advection basic example, but we split the mesh in two parts to use two semidiscretizations and a coupled boundary in between.

New examples are the coupled basic example above and the Euler source terms example on a ring (in 2D) and a cubed sphere (in 3D). These two are shown below using the visualization in https://github.com/trixi-framework/Trixi2Vtk.jl/pull/31. grafik grafik

Restart support has not been implemented in this PR.

efaulhaber avatar Apr 18 '21 13:04 efaulhaber

Codecov Report

Merging #553 (f8b8a6c) into main (dc30dba) will increase coverage by 3.70%. The diff coverage is 91.90%.

:exclamation: Current head f8b8a6c differs from pull request most recent head a126baf. Consider uploading reports for the commit a126baf to get more accurate results Impacted file tree graph

@@            Coverage Diff             @@
##             main     #553      +/-   ##
==========================================
+ Coverage   89.15%   92.86%   +3.70%     
==========================================
  Files         226      224       -2     
  Lines       18816    18785      -31     
==========================================
+ Hits        16775    17443     +668     
+ Misses       2041     1342     -699     
Flag Coverage Δ
unittests 92.86% <91.90%> (+3.70%) :arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
src/Trixi.jl 66.67% <ø> (ø)
src/callbacks_step/analysis_dgmulti.jl 98.63% <ø> (+49.30%) :arrow_up:
src/meshes/tree_mesh.jl 83.78% <0.00%> (-1.15%) :arrow_down:
...discretization/semidiscretization_euler_gravity.jl 88.44% <50.00%> (-2.93%) :arrow_down:
src/solvers/dgsem_p4est/dg_2d.jl 98.55% <50.00%> (-0.47%) :arrow_down:
src/solvers/dgsem_p4est/dg_3d.jl 98.64% <50.00%> (-0.33%) :arrow_down:
src/semidiscretization/semidiscretization.jl 90.54% <66.67%> (-1.01%) :arrow_down:
src/meshes/mesh_io.jl 95.05% <76.00%> (+0.78%) :arrow_up:
src/solvers/dgsem_structured/dg.jl 86.67% <88.46%> (+2.46%) :arrow_up:
src/callbacks_step/stepsize.jl 96.00% <90.00%> (-1.67%) :arrow_down:
... and 67 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update dc30dba...a126baf. Read the comment docs.

codecov[bot] avatar Apr 18 '21 14:04 codecov[bot]

We don't understand why the documentation job is failing.

efaulhaber avatar May 10 '21 13:05 efaulhaber

We don't understand why the documentation job is failing.

See for the immediate cause https://github.com/trixi-framework/Trixi.jl/pull/553/checks?check_run_id=2544365213#step:5:11

sloede avatar May 11 '21 08:05 sloede

For some reason, the L2 errors rho_v1 and rho_v2 are flipped on macOS for one test case.

efaulhaber avatar Aug 02 '21 12:08 efaulhaber

Why the hell are rho_v1 and rho_v2 errors interchanged in CI compared to my system for the elixir_euler_cubed_sphere_coupled!?

efaulhaber avatar Oct 04 '21 18:10 efaulhaber