Closed ranocha closed 2 years ago
@Cczernik You have been assigned to the multicomponent stuff. What's your opinion on declaring this part as stable (instead of experimental)?
@Cczernik You have been assigned to the multicomponent stuff. What's your opinion on declaring this part as stable (instead of experimental)?
The multicomponent stuff works properly and should not face any serious problems in the near future. So I would be in favor of declaring it as stable.
I'd like to update to StartUpDG v0.11 https://github.com/jlchan/StartUpDG.jl/releases/tag/v0.11.0, which contains some breaking API changes. Since those are in the DGMulti
elixirs, would this also be something to save for Trixi v0.4 too?
Does the user interface of functions defined in Trixi.jl change? If not (and since your solvers are pretty new), I would say we can update now, see #764
Sounds good. I'll do that in a separate PR today.
@trixi-framework/developers If I didn't miss anything, #895 will close the last breaking change we want to get into v0.4. Please correct me if I'm wrong or forgot anything.
Nice! I should be able to finish that review early tomorrow morning.
My plan for releasing v0.4 is as follows.
Here is a first draft of our announcement. Please make suggestions how to improve this.
We are pleased to announce the release of v0.4 of Trixi.jl, our Julia package providing adaptive high-order numerical simulations of hyperbolic PDEs. Compared to the initial release of v0.3, we have introduced a ton of new features. In particular, we added new mesh types enabling simulations on unstructured, curvilinear, non-conforming and adaptive meshes in multiple space dimensions. These new mesh types support all of our solver features, including shock capturing techniques for high-order methods. Additionally, we have introduced new physical models including multicomponent compressible Euler and magnetohydrodynamics equations. Moreover, Trixi.jl composes well with forward mode automatic differentiation and similar approaches. We presented most of these features already in our presentation of Trixi.jl at JuliaCon. Furthermore, we have some interactive visualizations with Makie.jl - kudos to @sdanisch
, @jules
, and all other developers of Makie!
As a teaser, here is the simulation of the shallow water equations with a bottom topography on a circular domain with slip-wall boundaries using a discontinuous Galerkin method on a high-order curved unstructured quadrilateral mesh.
The next video shows an MHD rotor, a rapidly spinning dense cylinder embedded in a magnetized, homogeneous medium at rest. This simulation uses a discontinuous Galerkin method on a high-order, curvilinear mesh with adaptive refinement and shock capturing.
Many of these new features come with additional contributions to the Julia ecosystem. For example, we created P4est.jl as thin wrapper around the C library p4est
for adaptive meshes and HOHQMesh.jl as Julia wrapper of a high-order mesh generation library. You can find more information about these and further activities related to Trixi.jl on our summary website.
On top of these new features, we worked on the internals of Trixi.jl. In particular, we improved the performance quite a bit and were able to beat another open source code implementing the same numerical algorithms in Fortran by up to 2x. The details are available in our preprint.
Since this is a breaking release, some user-facing changes are of course necessary. However, they should not affect most codes and are summarized in our NEWS.md.
Kudos to all contributors for exciting developments - and thanks to all users encouraging us!
Here is our current list of main features (changes vs. v0.3.0 highlighted):
Could we also bold the simplex
meshes part of 1D, 2D, and 3D simulations on line/quad/hex/simplex meshes
since it's new relative to v0.3?
This sounds already great, thanks for creating this! I especially like the highlighting :+1:
Three comments from my side:
1) Let's include a fancy picture or video in the post, which should visually demonstrate at least one of the new features. Maybe some result from the unstructured mesh (alien APE or the Julia logo video)? 2) Should we include a small "looking forward" paragraph in the end? We could mention one or two features that are being worked on, but I am lacking some easy-to-grasp examples besides MPI with AMR. 3) I was wondering if it makes sense to mention that two of the most wanted features from users are diffusion equations and first-class support for variable coefficient problems, stating that these are on our long-term wish/todo list but that we are looking for users with a "hard" motivation who would be interested in contributing to these. This only makes sense of course if there are resources from our side to actively engage these two topics (unfortunately not from my side, I cannot promise anything for this year).
- Let's include a fancy picture or video in the post, which should visually demonstrate at least one of the new features. Maybe some result from the unstructured mesh (alien APE or the Julia logo video)?
Good suggestion. How do I embed a Youtube video on Discourse - just by posting the link on a single line? (That's what I added in the draft above)
2. Should we include a small "looking forward" paragraph in the end? We could mention one or two features that are being worked on, but I am lacking some easy-to-grasp examples besides MPI with AMR.
I wouldn't want to promise anything but if you're sure about MPI, that's fine - could you please draft such a paragraph?
3. I was wondering if it makes sense to mention that two of the most wanted features from users are diffusion equations and first-class support for variable coefficient problems, stating that these are on our long-term wish/todo list but that we are looking for users with a "hard" motivation who would be interested in contributing to these. This only makes sense of course if there are resources from our side to actively engage these two topics (unfortunately not from my side, I cannot promise anything for this year).
Same here. I suggest to write something like this when the question comes up again.
- Let's include a fancy picture or video in the post, which should visually demonstrate at least one of the new features. Maybe some result from the unstructured mesh (alien APE or the Julia logo video)?
Good suggestion. How do I embed a Youtube video on Discourse - just by posting the link on a single line? (That's what I added in the draft above)
Yes, according to my Google search, this is how it it should work.
- Should we include a small "looking forward" paragraph in the end? We could mention one or two features that are being worked on, but I am lacking some easy-to-grasp examples besides MPI with AMR.
I wouldn't want to promise anything but if you're sure about MPI, that's fine - could you please draft such a paragraph?
I can draft something if there are other suggestions. Only a single item does not make sense, as it suggests a rather low development activity, which I think wouldn't do us justice.
Looks really good! I have just one minor bikeshedding suggestion
"we got a ton of new features", "we got new physical models", ...
I'd suggest replacing "we got" with "we've introduced" throughout the release.
Thanks, @jlchan - I changed the draft above
Here is a possible plan what to do to create v0.4 of Trixi.jl. These steps can be done without introducing breaking changes. Thus, they can be merged directly into
main
without further problems.FluxRotated
as stable (#798)adapt_to_mesh_level
as stable (#798)VolumeIntegralPureLGLFiniteVolume
as stable?~The following changes are breaking. Thus, I would prefer to create separate PRs for each of them that get merged into some staging area (good old
dev
? Ormain
and create a new branchrelease-0.3
to include possible bug fixes that need to be released immediately? I prefer the second option).TODO: nonconservative terms
) (#807)# FIXME: Deprecations introduced in v0.3
) (#896)Look for other issues that might require breaking changes:
Additionally, we might want to check
Then, we should be ready to
Left for Trixi v0.5 or later:
553
358
54