Skip to content

Open boundaries - NHS fix and thread supported loop #773

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

LasNikas
Copy link
Collaborator

@LasNikas LasNikas commented Apr 16, 2025

Based on #107

Comparison of the pipe_flow_2d.jl example with `particle_spacing = 0.01.

On main

────────────────────────────────────────────────────────────────────────────────────────────────────
Trixi simulation finished.  Final time: 1.0  Time steps: 1361 (accepted), 1378 (total)
────────────────────────────────────────────────────────────────────────────────────────────────────

──────────────────────────────────────────────────────────────────────────────────────────────
             TrixiParticles.jl                       Time                    Allocations      
                                            ───────────────────────   ────────────────────────
             Tot / % measured:                   7.56s /  80.0%           1.74GiB /  97.9%    

Section                             ncalls     time    %tot     avg     alloc    %tot      avg
──────────────────────────────────────────────────────────────────────────────────────────────
kick!                                8.25k    4.89s   80.9%   592μs    367MiB   21.1%  45.6KiB
  system interaction                 8.25k    3.74s   61.8%   453μs   52.3MiB    3.0%  6.49KiB
    fluid1-fluid1                    8.25k    2.40s   39.7%   291μs   3.90MiB    0.2%     496B
    fluid1-boundary4                 8.25k    493ms    8.2%  59.7μs   3.90MiB    0.2%     496B
    fluid1-open_boundary2            8.25k    395ms    6.5%  47.8μs   6.42MiB    0.4%     816B
    fluid1-open_boundary3            8.25k    391ms    6.5%  47.3μs   6.42MiB    0.4%     816B
    ~system interaction~             8.25k   53.5ms    0.9%  6.48μs   31.7MiB    1.8%  3.93KiB
    open_boundary2-fluid1            8.25k   95.0μs    0.0%  11.5ns     0.00B    0.0%    0.00B
    boundary4-open_boundary3         8.25k   87.1μs    0.0%  10.5ns     0.00B    0.0%    0.00B
    open_boundary3-open_boundary3    8.25k   85.5μs    0.0%  10.4ns     0.00B    0.0%    0.00B
    open_boundary2-open_boundary2    8.25k   85.4μs    0.0%  10.3ns     0.00B    0.0%    0.00B
    open_boundary3-boundary4         8.25k   85.3μs    0.0%  10.3ns     0.00B    0.0%    0.00B
    boundary4-boundary4              8.25k   84.2μs    0.0%  10.2ns     0.00B    0.0%    0.00B
    open_boundary2-boundary4         8.25k   83.7μs    0.0%  10.1ns     0.00B    0.0%    0.00B
    boundary4-fluid1                 8.25k   83.1μs    0.0%  10.1ns     0.00B    0.0%    0.00B
    open_boundary3-fluid1            8.25k   82.8μs    0.0%  10.0ns     0.00B    0.0%    0.00B
    open_boundary3-open_boundary2    8.25k   82.8μs    0.0%  10.0ns     0.00B    0.0%    0.00B
    open_boundary2-open_boundary3    8.25k   82.5μs    0.0%  10.0ns     0.00B    0.0%    0.00B
    boundary4-open_boundary2         8.25k   82.0μs    0.0%  9.94ns     0.00B    0.0%    0.00B
  update systems and nhs             8.25k    1.11s   18.4%   135μs    304MiB   17.5%  37.8KiB
    update nhs                       8.25k    564ms    9.3%  68.4μs    273MiB   15.7%  33.9KiB
    evaluate characteristics         16.5k    321ms    5.3%  19.5μs   23.9MiB    1.4%  1.48KiB
    compute boundary pressure        8.25k    191ms    3.2%  23.2μs   5.42MiB    0.3%     688B
    inverse state equation           8.25k   17.4ms    0.3%  2.10μs   2.01MiB    0.1%     256B
    ~update systems and nhs~         8.25k   16.3ms    0.3%  1.97μs   1.55KiB    0.0%    0.19B
  source terms                       8.25k   27.4ms    0.5%  3.32μs   10.5MiB    0.6%  1.30KiB
  reset ∂v/∂t                        8.25k   13.6ms    0.2%  1.65μs    258KiB    0.0%    32.0B
  ~kick!~                            8.25k   1.85ms    0.0%   224ns   1.55KiB    0.0%    0.19B
save solution                           50    908ms   15.0%  18.2ms   1.28GiB   75.4%  26.2MiB
  write to vtk                         200    852ms   14.1%  4.26ms   1.26GiB   74.4%  6.47MiB
  ~save solution~                       50   50.5ms    0.8%  1.01ms   16.4MiB    0.9%   335KiB
  update systems                        50   6.31ms    0.1%   126μs   1.79MiB    0.1%  36.7KiB
    update nhs                          50   3.04ms    0.1%  60.9μs   1.60MiB    0.1%  32.8KiB
    evaluate characteristics           100   1.92ms    0.0%  19.2μs    148KiB    0.0%  1.48KiB
    compute boundary pressure           50   1.04ms    0.0%  20.8μs   33.6KiB    0.0%     688B
    ~update systems~                    50    156μs    0.0%  3.12μs   1.55KiB    0.0%    31.7B
    inverse state equation              50    151μs    0.0%  3.01μs   12.5KiB    0.0%     256B
update open boundary                 1.36k   79.4ms    1.3%  58.3μs   1.60MiB    0.1%  1.20KiB
  check domain                       2.72k   68.5ms    1.1%  25.2μs     0.00B    0.0%    0.00B
  ~update open boundary~             1.36k   8.22ms    0.1%  6.04μs    104KiB    0.0%    78.3B
  update boundary quantities         2.72k   2.71ms    0.0%   996ns   1.50MiB    0.1%     576B
evaluate characteristics             2.72k   51.7ms    0.9%  19.0μs   3.95MiB    0.2%  1.48KiB
update nhs                           1.36k   49.9ms    0.8%  36.6μs   43.6MiB    2.5%  32.8KiB
drift!                               8.25k   34.5ms    0.6%  4.18μs   9.70MiB    0.6%  1.20KiB
  velocity                           8.25k   24.8ms    0.4%  3.01μs   9.44MiB    0.5%  1.17KiB
  reset ∂u/∂t                        8.25k   8.86ms    0.1%  1.07μs    258KiB    0.0%    32.0B
  ~drift!~                           8.25k    829μs    0.0%   100ns      976B    0.0%    0.12B
compute boundary pressure            1.36k   29.6ms    0.5%  21.8μs    914KiB    0.1%     688B
inverse state equation               1.36k   2.98ms    0.0%  2.19μs    340KiB    0.0%     256B
update TVF                           1.36k   15.8μs    0.0%  11.6ns     0.00B    0.0%    0.00B
update particle packing              1.36k   15.2μs    0.0%  11.2ns     0.00B    0.0%    0.00B
──────────────────────────────────────────────────────────────────────────────────────────────

This PR:

────────────────────────────────────────────────────────────────────────────────────────────────────
Trixi simulation finished.  Final time: 1.0  Time steps: 1338 (accepted), 1358 (total)
────────────────────────────────────────────────────────────────────────────────────────────────────

──────────────────────────────────────────────────────────────────────────────────────────────
             TrixiParticles.jl                       Time                    Allocations      
                                            ───────────────────────   ────────────────────────
             Tot / % measured:                   7.27s /  74.2%           1.62GiB /  97.7%    

Section                             ncalls     time    %tot     avg     alloc    %tot      avg
──────────────────────────────────────────────────────────────────────────────────────────────
kick!                                8.13k    4.07s   75.4%   500μs    110MiB    6.8%  13.9KiB
  system interaction                 8.13k    2.45s   45.4%   301μs   53.5MiB    3.3%  6.74KiB
    fluid1-fluid1                    8.13k    1.88s   34.9%   231μs   4.22MiB    0.3%     544B
    fluid1-boundary4                 8.13k    286ms    5.3%  35.2μs   4.22MiB    0.3%     544B
    fluid1-open_boundary2            8.13k    114ms    2.1%  14.0μs   6.95MiB    0.4%     896B
    fluid1-open_boundary3            8.13k    109ms    2.0%  13.5μs   6.95MiB    0.4%     896B
    ~system interaction~             8.13k   55.9ms    1.0%  6.88μs   31.2MiB    1.9%  3.93KiB
    open_boundary3-fluid1            8.13k   90.7μs    0.0%  11.2ns     0.00B    0.0%    0.00B
    open_boundary2-open_boundary3    8.13k   86.9μs    0.0%  10.7ns     0.00B    0.0%    0.00B
    open_boundary2-boundary4         8.13k   86.3μs    0.0%  10.6ns     0.00B    0.0%    0.00B
    boundary4-boundary4              8.13k   85.7μs    0.0%  10.5ns     0.00B    0.0%    0.00B
    open_boundary3-open_boundary3    8.13k   85.1μs    0.0%  10.5ns     0.00B    0.0%    0.00B
    open_boundary2-fluid1            8.13k   84.9μs    0.0%  10.4ns     0.00B    0.0%    0.00B
    open_boundary3-open_boundary2    8.13k   83.5μs    0.0%  10.3ns     0.00B    0.0%    0.00B
    boundary4-open_boundary2         8.13k   82.8μs    0.0%  10.2ns     0.00B    0.0%    0.00B
    boundary4-fluid1                 8.13k   82.6μs    0.0%  10.2ns     0.00B    0.0%    0.00B
    boundary4-open_boundary3         8.13k   82.2μs    0.0%  10.1ns     0.00B    0.0%    0.00B
    open_boundary2-open_boundary2    8.13k   81.8μs    0.0%  10.1ns     0.00B    0.0%    0.00B
    open_boundary3-boundary4         8.13k   81.7μs    0.0%  10.0ns     0.00B    0.0%    0.00B
  update systems and nhs             8.13k    1.57s   29.2%   194μs   46.1MiB    2.8%  5.81KiB
    update nhs                       8.13k    1.10s   20.4%   135μs   11.9MiB    0.7%  1.50KiB
    evaluate characteristics         16.3k    300ms    5.6%  18.4μs   26.5MiB    1.6%  1.67KiB
    compute boundary pressure        8.13k    138ms    2.6%  17.0μs   5.71MiB    0.4%     736B
    inverse state equation           8.13k   18.3ms    0.3%  2.26μs   1.98MiB    0.1%     256B
    ~update systems and nhs~         8.13k   16.8ms    0.3%  2.07μs   1.55KiB    0.0%    0.19B
  source terms                       8.13k   28.5ms    0.5%  3.51μs   10.3MiB    0.6%  1.30KiB
  reset ∂v/∂t                        8.13k   13.6ms    0.3%  1.68μs    254KiB    0.0%    32.0B
  ~kick!~                            8.13k   1.76ms    0.0%   217ns   1.55KiB    0.0%    0.19B
save solution                           50    910ms   16.9%  18.2ms   1.28GiB   80.5%  26.2MiB
  write to vtk                         200    853ms   15.8%  4.26ms   1.26GiB   79.6%  6.47MiB
  ~save solution~                       50   47.6ms    0.9%   952μs   14.6MiB    0.9%   299KiB
  update systems                        50   9.59ms    0.2%   192μs    292KiB    0.0%  5.84KiB
    update nhs                          50   6.94ms    0.1%   139μs   75.0KiB    0.0%  1.50KiB
    evaluate characteristics           100   1.71ms    0.0%  17.1μs    167KiB    0.0%  1.67KiB
    compute boundary pressure           50    700μs    0.0%  14.0μs   35.9KiB    0.0%     736B
    ~update systems~                    50    130μs    0.0%  2.61μs   1.55KiB    0.0%    31.7B
    inverse state equation              50    117μs    0.0%  2.34μs   12.5KiB    0.0%     256B
update nhs                           1.34k    185ms    3.4%   138μs   1.96MiB    0.1%  1.50KiB
update open boundary                 1.34k    126ms    2.3%  94.0μs    188MiB   11.6%   144KiB
  check domain                       2.68k    122ms    2.3%  45.6μs    187MiB   11.5%  71.5KiB
  update boundary quantities         2.68k   2.67ms    0.0%   996ns   1.59MiB    0.1%     624B
  ~update open boundary~             1.34k   1.02ms    0.0%   761ns      976B    0.0%    0.73B
evaluate characteristics             2.68k   46.5ms    0.9%  17.4μs   4.37MiB    0.3%  1.67KiB
drift!                               8.13k   34.8ms    0.6%  4.28μs   10.4MiB    0.6%  1.31KiB
  velocity                           8.13k   25.6ms    0.5%  3.15μs   10.2MiB    0.6%  1.28KiB
  reset ∂u/∂t                        8.13k   8.43ms    0.2%  1.04μs    254KiB    0.0%    32.0B
  ~drift!~                           8.13k    751μs    0.0%  92.4ns      976B    0.0%    0.12B
compute boundary pressure            1.34k   20.7ms    0.4%  15.5μs    962KiB    0.1%     736B
inverse state equation               1.34k   3.05ms    0.1%  2.28μs    334KiB    0.0%     256B
update particle packing              1.34k   24.1μs    0.0%  18.0ns     0.00B    0.0%    0.00B
update TVF                           1.34k   15.2μs    0.0%  11.3ns     0.00B    0.0%    0.00B
──────────────────────────────────────────────────────────────────────────────────────────────

@LasNikas LasNikas added bug Something isn't working enhancement New feature or request labels Apr 16, 2025
@LasNikas LasNikas requested review from svchb and efaulhaber April 16, 2025 15:35
@LasNikas LasNikas self-assigned this Apr 16, 2025
@LasNikas LasNikas force-pushed the open-boundaries-nhs-fix-patch-2 branch 2 times, most recently from 1ef2062 to fd2ce5a Compare May 8, 2025 17:07
@LasNikas LasNikas force-pushed the open-boundaries-nhs-fix-patch-2 branch from fd2ce5a to fba3ee0 Compare May 8, 2025 17:09
@LasNikas LasNikas force-pushed the open-boundaries-nhs-fix-patch-2 branch from fd81086 to 1de092a Compare May 12, 2025 20:35
@efaulhaber efaulhaber marked this pull request as draft May 13, 2025 13:32
Copy link

codecov bot commented May 13, 2025

Codecov Report

Attention: Patch coverage is 78.37838% with 40 lines in your changes missing coverage. Please review.

Project coverage is 70.60%. Comparing base (04a7294) to head (5fc3c7a).
Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
src/schemes/boundary/open_boundary/system.jl 71.66% 17 Missing ⚠️
...oundary/open_boundary/method_of_characteristics.jl 57.14% 6 Missing ⚠️
src/schemes/boundary/open_boundary/mirroring.jl 85.71% 6 Missing ⚠️
src/general/semidiscretization.jl 80.95% 4 Missing ⚠️
src/general/buffer.jl 86.36% 3 Missing ⚠️
...c/schemes/boundary/open_boundary/boundary_zones.jl 91.66% 1 Missing ⚠️
src/setups/sphere_shape.jl 91.66% 1 Missing ⚠️
test/general/buffer.jl 0.00% 1 Missing ⚠️
test/systems/open_boundary_system.jl 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #773      +/-   ##
==========================================
- Coverage   70.69%   70.60%   -0.09%     
==========================================
  Files         106      106              
  Lines        6752     6769      +17     
==========================================
+ Hits         4773     4779       +6     
- Misses       1979     1990      +11     
Flag Coverage Δ
unit 70.60% <78.37%> (-0.09%) ⬇️

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

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@svchb svchb closed this May 23, 2025
@svchb svchb reopened this May 23, 2025
@LasNikas LasNikas marked this pull request as ready for review June 3, 2025 13:05
@LasNikas LasNikas force-pushed the open-boundaries-nhs-fix-patch-2 branch from 145944f to e2bcba8 Compare June 3, 2025 13:08
@LasNikas LasNikas requested a review from svchb June 3, 2025 17:28
@LasNikas LasNikas requested a review from efaulhaber June 4, 2025 19:48
efaulhaber
efaulhaber previously approved these changes Jun 5, 2025
@LasNikas LasNikas requested a review from efaulhaber June 5, 2025 13:21
@LasNikas
Copy link
Collaborator Author

LasNikas commented Jun 5, 2025

/run-gpu-tests

@LasNikas LasNikas requested a review from efaulhaber June 5, 2025 14:09
@LasNikas LasNikas enabled auto-merge (squash) June 5, 2025 14:21
@LasNikas
Copy link
Collaborator Author

LasNikas commented Jun 6, 2025

/run-gpu-tests

@LasNikas LasNikas merged commit 114a57b into trixi-framework:main Jun 6, 2025
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants