Skip to content
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

Adding tensor product wedges #59

Closed
wants to merge 7 commits into from
Closed

Conversation

jlchan
Copy link
Owner

@jlchan jlchan commented Nov 22, 2022

@Davknapp this is the draft I have for a tensor product wedge. The setup only involves changing the reference element constructor; everything else should remain the same. Here's an example of how I call it

using StartUpDG
N = 4
tensor_product_approximation_type = 
    TensorProductWedge(RefElemData(Tri(), N), RefElemData(Line(), N+4))
rd = RefElemData(Wedge(), tensor_product_approximation_type, N)

Trixi.jl specializes RefElemData for FDSBP types using DerivativeOperators from @ranocha's SummationByPartsOperators.jl package (see https://github.com/trixi-framework/Trixi.jl/blob/6e5512e8f4b8b2c3bf6811c6a3b0e548de4a91f6/src/solvers/dgmulti/sbp.jl#L66-L120). The intent is to use these with the TensorProductWedge type to construct discretization matrices.

There are two major changes needed for this PR:

  • the face interpolation matrix needs to be set up - I think using Kronecker.jl (already used in StartUpDG.jl) would be the easiest way to construct these matrices. However, there are some performance issues associated with multiplication by these lazy Kronecker products due to allocations (Allocations using mul! MichielStock/Kronecker.jl#109).
  • RefElemData currently assumes all differentiation matrices are the same type; however, it might make sense to allow the tensor product wedge to have differentiation matrices of different type (e.g., a sparse differentiation matrix in the vertical direction). This would be a breaking change v0.15 updates #58.

@codecov
Copy link

codecov bot commented Nov 22, 2022

Codecov Report

Merging #59 (0adca35) into main (963eb3f) will decrease coverage by 2.10%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main      #59      +/-   ##
==========================================
- Coverage   96.78%   94.69%   -2.10%     
==========================================
  Files          22       23       +1     
  Lines        2492     2547      +55     
==========================================
  Hits         2412     2412              
- Misses         80      135      +55     
Impacted Files Coverage Δ
src/RefElemData_TensorProductWedge.jl 0.00% <0.00%> (ø)
src/StartUpDG.jl 100.00% <ø> (ø)

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@Davknapp Davknapp mentioned this pull request Mar 27, 2023
@jlchan
Copy link
Owner Author

jlchan commented May 1, 2023

Closing in favor of #93

@jlchan jlchan closed this May 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant