-
Notifications
You must be signed in to change notification settings - Fork 26
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
omnigenity #535
Merged
Merged
omnigenity #535
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
- Adds most of code for new Omnigenity compute and objective functions. - Needs more changes to work with optimization API. - Misc other edits.
- Renamed omni_mn to omni_lmn. - Changed basis of omni params from DoubleFourierSeries to FourierZernikeBasis. - Added StraightBmaxContour linear constraint instead of applying boundary condition in compute function.
- Add a power series to the basis for the well shape parameters, so there can be a different well on each surface. - Renamed some of the variables and classes.
Correction for NFP>1. Tested on QI example and looks decent.
This reverts commit c11cf93.
These changes were all made, including updating the plotting script to generate the figures from the paper with the latest version of the code. |
f0uriest
previously approved these changes
Mar 7, 2024
dpanici
requested changes
Mar 7, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My last comments ( probably)
- can you add the paper reference in the omniigenous field class?
- make an issue to fix the reverse mode jacobian for the omnigenity obj
- clarify grid node coordinates -> is
field_grid
actually coordinates in (rho, eta, alpha) i.e. if I pass in a grid with theta points going from 0 to 2pi is that wrong, am I actually supposed to pass in a grid with points fro -pi/2 to pi/2 for the theta nodes? The docstring still seemed confusing to me as you use "mapping" but mapping to me implies doing a transformation
Also make sure to change the base branch for #631 after merging this but before deleting this branch |
f0uriest
previously approved these changes
Mar 15, 2024
dpanici
previously approved these changes
Mar 16, 2024
f0uriest
approved these changes
Mar 18, 2024
dpanici
approved these changes
Mar 18, 2024
rahulgaur104
approved these changes
Mar 18, 2024
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.
Adds omnigenity compute quantities and objective function.
This fits with the existing API, where all compute arguments have to be attributes of the Equilibrium class. Those new attributes are:
well_l
= the Chebyshev/monotonic spline points parameterizingomni_lmn
= the Cheyshev-Fourier coefficients (I don't love these variable names and am open to other suggestions.
There are several other miscellaneous things that got lumped in with this PR (sorry). Otherwise it should be a straightforward implementation of a new physics objective. See the optimization scripts in
publications/dudt2023/
for examples of how to use the new code.Resolves #794
Resolves #776