-
Notifications
You must be signed in to change notification settings - Fork 10
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
Advection updates #245
Merged
Merged
Advection updates #245
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Major bug (totally my fault) in which I failed to account for particles being reordered after sending and receiving. We now store the node and process for each particle which means we can take small substeps to the sample point and then snap back directly to the launch point. This includes JC's swarm wormhole teleportation code which is required for long trajectories. I'm turning off all smoothing for projection operators which was introduced to counter numerical problems which turned out to be related to this bug. Also, added the possibility to use a sample swarm based on a discontinuous underlying variable. This gives a good spread of points and means that corners / facets where particles may be lost are avoided by particle paths.
There are (value related) failures in the advection tests. Of course, advection tests are a bloody nightmare since advection schemes are problematic to validate. Need to understand this before merging PR
posixpath - not sure why this import is present epsilon in boxmesh return-coords-... - no need to complicate things
Arise from convection benchmark models.
…e/underworld3 into SemiLagrange-Fixes
…rals The surface integral code falls over if a label is not present on one of the processes. This is identified in issue #240. This workaround adds element-volumes (all of them) to each boundary label. These are not used in the surface integral code in 2D / 3D so they do not change the result. @knepley - we've discussed this issue in the past ... we should figure out the actual origin of the problem.
Add a parallel_view() function to see the number of labels on each processor. In response to #240 returns something like this: | Boundary Name | ID | Size | Proc ID | | ------------------------------------------------------ | | Bottom | 11 | 2 | 0 | | Top | 12 | 2 | 0 | | Right | 13 | 3 | 0 | | Left | 14 | 0 | 0 | | All_Boundaries | 1001 | 4 | 0 | | Bottom | 11 | 2 | 1 | | Top | 12 | 2 | 1 | | Right | 13 | 0 | 1 | | Left | 14 | 3 | 1 | | All_Boundaries | 1001 | 4 | 1 | | ------------------------------------------------------ |
Not a fix, just examining potential workaround choices
…code/underworld3 into labelling-work-around
Put most stuff back together. Improve the view() a little bit. Fix the problems with expressions (sympy merging expressions with same symbol - FFS!) Somthing odd with dm re-distribution that should not have been happening. Also fixing up the object id things that are not being respected by sympy.
Also adding rendering hints in the notebooks for quarto
Changing the base to development (PR generated automatically from GitHub desktop !). |
8 notebooks added which demonstrate various parts of the uw3 machinery plus the rendering code to put them on github pages as a quickstart guide. I still need to update the scripts to launch on binder.
Not zapping the kdtree properly when deforming the mesh. I guess this was a problem in free surface models so I am surprised it was not reported before - is there an open issue about particles added to a deforming mesh ? Minor detail: using invisible hspace in place of the \,\! strings. The width of the hspace is the unique ID / 100 in points. It still looks weird but the code is readable. I tried labels and other things but they break the rendering. There is probably a better way.
Fixes to advection and expressions to make examples and tests work.
OK - tests passing and this is now working again with the conda version of PETSc. I plan to merge so that this is not blocking. I have been mostly working on the docs and all the bug fixes have been to solve problems encountered along the way. Advection was the main one, but many minor(ish) things too. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Bring over some of the bug-fixes in meshing / labelling / mesh distribution.
Lots of work to understand the SLCN advection solver and get it under control.
Added the Quickstart notebooks for quarto