Major changes for optimization - #61
Open
TmsRC wants to merge 25 commits into
Open
Conversation
…o a faster COO approach
… and order attributes
TmsRC
marked this pull request as ready for review
August 20, 2026 14:12
This file contains hidden or 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
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.
Summary
gradshafranov.Greens()and re-implement with parallelized functionsfreegs4e.equilibrium.Equilibrium(), a dummy attribute is added to preserve compatibility with freegsnkePerformance
Some illustrative results when testing on example 02:
NKGSsolvercall toGreens()on 64 threadsMore detailed results in pull request for changes in freegnske (PR #109)
Special Considerations
The removal of solver from
freegs4e.equilibriumshould be the only potentially breaking change introduced. It should be completely backwards compatible with freegsnke, given that this solver was not being used, but will send deprecation warnings on some references that are made to the (dummy) solver attribute of the equilibrium. It will only cause an error if a user tries to call the solver inEquilibriumobjects directly (which could but should not be the case).This PR is needed for PR #109 in freegsnke, but not viceversa: this PR should be completely interoperable with the current version of freegsnke main branch.
Validation
test_one_xpoint()andtest_fixed_boundary_psi()are failing both on this version and maintest_setSolverVcycle()andtest_equilibrium_geqdsk_write_read()fail now due to removal of unnecessary solver fromEquilibrium. It is recommended that the test for vcycle be removed.test_readwrite()fails due to removal of solver, but is also failing in main due to an independent reasonthis pull request modifies all failed tests above by marking them as xfails