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

Welzl's algorithm for "face centerpoint" #803

Closed
rajeeja opened this issue May 24, 2024 · 0 comments · Fixed by #811
Closed

Welzl's algorithm for "face centerpoint" #803

rajeeja opened this issue May 24, 2024 · 0 comments · Fixed by #811
Assignees
Labels
new feature New feature or request

Comments

@rajeeja
Copy link
Contributor

rajeeja commented May 24, 2024

Proposed new feature or change:

Implement the Welzl's algorithm and report face centerpoint if request after loading a mesh file.

@rajeeja rajeeja added the new feature New feature or request label May 24, 2024
@rajeeja rajeeja added this to the UGRID Conventions milestone May 24, 2024
@rajeeja rajeeja self-assigned this May 24, 2024
@github-project-automation github-project-automation bot moved this to 📚 Backlog in UXarray Development May 24, 2024
rajeeja added a commit that referenced this issue Jun 11, 2024
…centerpoint. Need to use great circle distance and add/fix tests and data types in the algo
@philipc2 philipc2 linked a pull request Jul 2, 2024 that will close this issue
philipc2 added a commit that referenced this issue Oct 7, 2024
* o #803 initial implementation of Welzl's algorithm to calculate grid centerpoint. Need to use great circle distance and add/fix tests and data types in the algo

* o Update grid class and add asserts for test

* o typo fix

* o overhaul to not use tuples and go with numpy array, document and fix test case asserts

* o Conform to formatting standards

* o fix bugs that reversed the coordinate ordering

* o Move some fns from coordinates.py to utils as they caused circular dependency (use with arcs and arcs use coordinates). o Remove new routine in favor of using the existing angle b/w vectors to calculate distance.

* add benchmark for faceLatLon construction

* fix face nodes typo

* fix face nodes typo

* o Remove new properties _ctrpt infavor of using regular face lat/lon x/y/z for welzl centerpoint also: introduce construct_face_center method in Grid

* o precommit

* o reduce some python-level loop overhead, use zip and some list comprehension in  _construct_face_centerpoints

* o Fix structure, numba causes issues with recursive functions, but this is much more efficient now. If need be we can later change to iterative instead of recursion for avoiding the error: Numba doesn't support the use of yield in closures.

* o Modify the recursion logic for Numba compatibility, works 3-10x faster

* o Try to get the codecov higher, add internal function tests

* o Try to include inside funcs

* o call cartesian average instead of average add more doc

* o Add return doc

* o Add return test for doc

* o fix text

* o Introduce circular dependency issue

* Update benchmarks/mpas_ocean.py

Co-authored-by: Philip Chmielowiec <67855069+philipc2@users.noreply.github.com>

* Update benchmarks/mpas_ocean.py

Co-authored-by: Philip Chmielowiec <67855069+philipc2@users.noreply.github.com>

* o Fix imports and benchmarks

* resolve circuluar import

* clean up quad hex benchmark

* update internal API

* update benchmark

---------

Co-authored-by: Aaron Zedwick <95507181+aaronzedwick@users.noreply.github.com>
Co-authored-by: Philip Chmielowiec <67855069+philipc2@users.noreply.github.com>
Co-authored-by: Philip Chmielowiec <philipchmielowiec@gmail.com>
Co-authored-by: Orhan Eroglu <32553057+erogluorhan@users.noreply.github.com>
@github-project-automation github-project-automation bot moved this from 📚 Backlog to ✅ Done in UXarray Development Oct 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new feature New feature or request
Projects
Status: ✅ Done
Development

Successfully merging a pull request may close this issue.

1 participant