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

Feature curved tetrahedron #742

Merged
merged 51 commits into from
Mar 21, 2024

Conversation

jfussbro
Copy link
Contributor

@jfussbro jfussbro commented Sep 12, 2023

Describe your changes here:

Enables usability of curved tetrahedral elements. Also fixes a bug in the readmshfile.

All these boxes must be checked by the reviewers before merging the pull request:

As a reviewer please read through all the code lines and make sure that the code is fully understood, bug free, well-documented and well-structured.

General

  • The reviewer executed the new code features at least once and checked the results manually

  • The code follows the t8code coding guidelines

  • New source/header files are properly added to the Makefiles

  • The code is well documented

  • All function declarations, structs/classes and their members have a proper doxygen documentation

  • All new algorithms and data structures are sufficiently optimal in terms of memory and runtime (If this should be merged, but there is still potential for optimization, create a new issue)

Tests

  • The code is covered in an existing or new test case using Google Test

Github action

  • The code compiles without warning in debugging and release mode, with and without MPI (this should be executed automatically in a github action)

  • All tests pass (in various configurations, this should be executed automatically in a github action)

    If the Pull request introduces code that is not covered by the github action (for example coupling with a new library):

    • Should this use case be added to the github action?
    • If not, does the specific use case compile and all tests pass (check manually)

Scripts and Wiki

  • If a new directory with source-files is added, it must be covered by the script/find_all_source_files.scp to check the indentation of these files.
  • If this PR introduces a new feature, it must be covered in an example/tutorial and a Wiki article.

Licence

  • The author added a BSD statement to doc/ (or already has one)

@sandro-elsweijer sandro-elsweijer self-assigned this Sep 13, 2023
@sandro-elsweijer sandro-elsweijer added New feature Adds a new feature to the code examples Edits in our examples labels Sep 13, 2023
Copy link
Collaborator

@sandro-elsweijer sandro-elsweijer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here are some first comments :)

src/t8_geometry/t8_geometry_helpers.c Outdated Show resolved Hide resolved
src/t8_geometry/t8_geometry_helpers.c Outdated Show resolved Hide resolved
src/t8_geometry/t8_geometry_helpers.c Outdated Show resolved Hide resolved
src/t8_geometry/t8_geometry_helpers.c Outdated Show resolved Hide resolved
src/t8_geometry/t8_geometry_helpers.c Outdated Show resolved Hide resolved
src/t8_geometry/t8_geometry_helpers.c Outdated Show resolved Hide resolved
src/t8_geometry/t8_geometry_helpers.c Outdated Show resolved Hide resolved
src/t8_geometry/t8_geometry_helpers.c Outdated Show resolved Hide resolved
src/t8_geometry/t8_geometry_helpers.c Outdated Show resolved Hide resolved
@jmark jmark assigned sandro-elsweijer and unassigned jfussbro Sep 25, 2023
@jmark
Copy link
Collaborator

jmark commented Sep 27, 2023

LGTM! @sandro-elsweijer If you agree we can merge.

@sandro-elsweijer
Copy link
Collaborator

I think it would be best to wait for this, till the evaluations are completed. The usage of the advection solver is good for testing the code and some bugs could become observable :)

@jmark
Copy link
Collaborator

jmark commented Nov 29, 2023

@jfussbro @sandro-elsweijer

I encountered a strange phenomenon when I computed interpolation nodes with curved triangles. I present you a (minimal) working example via a curved mesh around a cylinder. The respective files to reproduce the results are attached to this comment.

But first let me show what the problem is:
grafik
This is a scatter plots of interpolation nodes computed via the Julia interface T8code.jl which in turn is linked against the t8code library with the curved tri/tets merged in. I shifted one curved triangle into empty space on purpose to better show the details. The colors of each point represent the Jacobians at this point in space computed with the polynomial spanned by the interpolation nodes. Clearly the curved elements have some troubles. Even intersecting into neighboring elements. The refinement level is set to 0 in this case.

I did the same with a C++ version (attached to this comment) and got the same strange behavior:
grafik

To reproduce this please consider these files:
t8_features_curved_triangles_generate_cmesh_cylinder_2d.geo.txt
scatter_plot.cxx.txt
scatter_plot.gpi.txt

Note above C++ file is linked against t8code with curved tri/tets feature which in turn was merged with the current main. There was a change in the reference basis vectors for tris/tets which is not merged in this PR yet. The same erraneous behavior is observed with the old reference basis, too.

@jfussbro jfussbro mentioned this pull request Feb 13, 2024
14 tasks
@sandro-elsweijer sandro-elsweijer added the next release For the next release label Feb 19, 2024
src/t8_geometry/t8_geometry_helpers.c Show resolved Hide resolved
src/t8_eclass.c Outdated Show resolved Hide resolved
src/t8_geometry/t8_geometry_helpers.c Outdated Show resolved Hide resolved
src/t8_geometry/t8_geometry_helpers.c Outdated Show resolved Hide resolved
src/t8_geometry/t8_geometry_helpers.c Outdated Show resolved Hide resolved
@sandro-elsweijer sandro-elsweijer merged commit f4fc567 into DLR-AMR:main Mar 21, 2024
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
examples Edits in our examples New feature Adds a new feature to the code next release For the next release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants