-
Notifications
You must be signed in to change notification settings - Fork 114
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
WIP: Add FV method for T8codeMesh #1844
base: main
Are you sure you want to change the base?
Conversation
Review checklistThis checklist is meant to assist creators of PRs (to let them know what reviewers will typically look for) and reviewers (to guide them in a structured review process). Items do not need to be checked explicitly for a PR to be eligible for merging. Purpose and scope
Code quality
Documentation
Testing
Performance
Verification
Created with ❤️ by the Trixi.jl community. |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1844 +/- ##
==========================================
- Coverage 96.39% 96.23% -0.15%
==========================================
Files 483 490 +7
Lines 38333 39570 +1237
==========================================
+ Hits 36948 38079 +1131
- Misses 1385 1491 +106
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
src/meshes/t8code_mesh.jl
Outdated
# Simple meshes | ||
# Temporary routines to create simple `cmesh`s by hand | ||
|
||
# Directly ported from: `src/t8_cmesh/t8_cmesh_examples.c: t8_cmesh_new_periodic_hybrid`. | ||
function cmesh_new_periodic_hybrid(comm)::t8_cmesh_t | ||
n_dims = 2 | ||
vertices = [ # Just all vertices of all trees. partly duplicated | ||
-1.0, -1.0, 0, # tree 0, triangle | ||
0, -1.0, 0, | ||
0, 0, 0, | ||
-1.0, -1.0, 0, # tree 1, triangle |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The following 300 lines are just by-hand building routines for simple cmesh
s. This is only temporary and will be deleted in the future.
function integrate_via_indices(func::Func, u, | ||
mesh::T8codeMesh, equations, | ||
solver::FV, cache, args...; | ||
normalize = true) where {Func} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO: Relocate this routine, calc_error_norms
and analyze
to analysis.jl
since they are dimension independent.
* Add first version of 3d support * Complete 3d support * Add 3d elixirs and tests * Adapt name in elixir * Reduce initial refinement level of one test * Simplify NDIMS=3 * Add 3d mpi tests * Remove initial_condition from rhs; fmt * Fix parameter in `x_trans_periodic_3d` * Remove comment * Some last changes * fmt
I again have the problem in the tests, that finalize(mesh) cleans up the mesh but afterward it is still needed to check the allocations. But somehow only for the first test with |
Short summary of the current status:
|
Regarding
I moved the allocation tests to the elixir for now in 155887b. |
In d7770ef, there was also an error in the mpi run on linux. It was the often seen error, which looks like this |
Update after 9c69e10 was merged: |
Thanks to @jmark, these are hopefully fixed after merging DLR-AMR/T8code.jl#78 and updating to the latest T8code.jl version. |
Unfortunately not 😞 Assuming I'm not missing anything |
But this error from before disappeared, right? I guess, there were two probably independent issues before. |
These explicit disabling of the GC should not be necessary anymore after #2172 or are they, @jmark? |
Oh yes, this can be true. |
This PR adds the implementation of a first-order and second order finite volume scheme.
The mesh is organized with t8code. Therefore, it supports MPI parallelization.
Visualization is implemented using a t8code routine directly and therefore without .h5 files and Trixi2Vtk.
Short summary about the current status:
coordinates2mapping
(closure) is cleaned up by Julia's GC, while still used in t8code. -> SegFaults. Current solution: Deactivating the GC during the simulation in elixir.TODOs:
Open things/problems:
convergence_test
works parallel. Seems to work in 1c7413d