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

Proxies for neoclassical transport of energetic ions #1229

Draft
wants to merge 319 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
319 commits
Select commit Hold shift + click to select a range
599f895
making progress on neoclassical stuff
unalmis May 29, 2024
bc6b982
Fix math, results look kinda good now
unalmis May 30, 2024
beade78
Merge branch 'bounce' into ripple
unalmis May 31, 2024
808806c
Fix units after change of variables
unalmis May 31, 2024
b87ca1a
Fix comment discussing Nemov and Velasco Gamma_c
unalmis May 31, 2024
169af3a
Add neo comparison utitilies
unalmis May 31, 2024
f2687b6
Merge branch 'bounce' into ripple
unalmis Jun 2, 2024
50a0810
Merge branch 'bounce' into ripple
unalmis Jun 2, 2024
a9feffd
Detach Gamma_c
unalmis Jun 2, 2024
a4f947f
Add Gamma_c to neoclassical compute quantities
unalmis Jun 2, 2024
ae700f0
Merge branch 'bounce' into ripple
unalmis Jun 3, 2024
b45c0dc
Update things after merge
unalmis Jun 3, 2024
45493ae
Merge branch 'bounce' into ripple
unalmis Jun 3, 2024
069036f
Merge branch 'ripple' into Gamma_c
unalmis Jun 3, 2024
2cea638
Update thing after merge
unalmis Jun 3, 2024
bc17c5d
Merge branch 'bounce' into ripple
unalmis Jun 4, 2024
03694a0
Merge branch 'ripple' into Gamma_c
unalmis Jun 4, 2024
c17a9df
Add Gamma_c plot
unalmis Jun 4, 2024
a2903cb
Normalize effective ripple by B_0 = max_tz |B| instead of B_0 = 1.
unalmis Jun 8, 2024
9d58c4e
Merge branch 'bounce' into ripple
unalmis Jun 10, 2024
c5b1fbf
Merge branch 'bounce' into ripple
unalmis Jun 11, 2024
57d6f7f
Add test and notes
unalmis Jun 11, 2024
2737194
Add baseline image test for W7-X effective ripple
unalmis Jun 11, 2024
104b3b4
Reduce memory usage in tests_neoclassical
unalmis Jun 11, 2024
4454500
Interpolate |∇ψ| κ_g together since it is smoother than κ_g alone.
unalmis Jun 12, 2024
c616ee5
Merge branch 'ripple' into Gamma_c
unalmis Jun 12, 2024
e0dffc6
Merge branch 'ripple' into Gamma_c
unalmis Jun 12, 2024
db8b7be
Merge branch 'bounce' into ripple
unalmis Jun 12, 2024
66b24a5
Add effective ripple objective function
unalmis Jun 13, 2024
bf981dd
Add effective ripple magnetic axis limit
unalmis Jun 13, 2024
3c2aabd
Fix effective ripple label
unalmis Jun 13, 2024
4947bee
Add Gamma_c objective function
unalmis Jun 13, 2024
4db2468
Fix doc build, and reduce first order dependency amount for effective…
unalmis Jun 13, 2024
08af99d
Merge branch 'ripple' into Gamma_c
unalmis Jun 13, 2024
9979ab5
Fix docstring
unalmis Jun 13, 2024
7b5b7c0
Fix wrong alpha_t calculation and add grad(|B|)*b test
unalmis Jun 15, 2024
2dbfeb0
Add quantities in attempt to debug length derivative along field line…
unalmis Jun 17, 2024
2d01ef4
Add finite difference test or parallel gradient
unalmis Jun 17, 2024
cce1018
Merge branch 'bounce' into ripple
unalmis Jun 18, 2024
12b39c9
Fix bug with sign of derivative in effective ripple...
unalmis Jun 18, 2024
0810075
Merge branch 'ripple' into Gamma_c
unalmis Jun 18, 2024
5956349
Update Gamma_c test after merge
unalmis Jun 18, 2024
2e730bd
Partially undo previous commit --
unalmis Jun 18, 2024
d1c7d4a
Merge branch 'bounce' into ripple
unalmis Jun 18, 2024
39f9ade
Merge branch 'ripple' into Gamma_c
unalmis Jun 18, 2024
9c68b41
No more nan in effective ripple gradient
unalmis Jun 22, 2024
f0ac159
Merge branch 'bounce' into ripple
unalmis Jun 22, 2024
19b58ba
Merge branch 'ripple' into Gamma_c
unalmis Jun 22, 2024
6a3965c
Merge branch 'bounce' into ripple
unalmis Jun 22, 2024
802e4ba
Merge branch 'ripple' into Gamma_c
unalmis Jun 22, 2024
fc1be1c
Add equilibrium.rtz_grid method to avoid circular import and update d…
unalmis Jun 24, 2024
b6f0614
Merge branch 'ripple' into Gamma_c
unalmis Jun 24, 2024
a6c29df
Fix calls to rtz_grid after merge
unalmis Jun 24, 2024
0319dca
Mark test_parallel_grad xfail
unalmis Jun 24, 2024
9dc81b3
Merge branch 'bounce' into ripple
unalmis Jun 25, 2024
36d5e82
Merge branch 'ripple' into Gamma_c
unalmis Jun 25, 2024
38d82a7
average before integration to reduce computation
unalmis Jun 25, 2024
18960f8
Merge branch 'ripple' into Gamma_c
unalmis Jun 25, 2024
f3361cb
average before integration to reduce computation
unalmis Jun 25, 2024
381543f
Merge branch bounce into ripple
unalmis Jun 28, 2024
54dab1a
Merge branch 'bounce' into ripple
unalmis Jul 1, 2024
4b3983e
Do review suggestions, remove Quadrature grid from ripple objective
unalmis Jul 2, 2024
3f75c09
Merge branch 'bounce' into ripple
unalmis Jul 2, 2024
ee437ea
Merge branch 'bounce' into ripple
unalmis Jul 2, 2024
10e9937
Merge branch 'ripple' into Gamma_c
unalmis Jul 2, 2024
96ac3e9
Merge branch 'bounce' into ripple
unalmis Jul 5, 2024
6827fcd
Fix comment
unalmis Jul 5, 2024
e8f240d
Merge branch 'ripple' into Gamma_c
unalmis Jul 5, 2024
0c995d1
Merge with Clebsch branch
unalmis Jul 8, 2024
1207de9
adding little gamma_c
Jul 8, 2024
5831e10
Merge branch 'bounce' into gh/Gamma_c
Jul 8, 2024
2ce2069
Merge branch 'Gamma_c' into gh/Gamma_c
Jul 9, 2024
67ea285
merging Gamma_c
Jul 9, 2024
9bd50b5
Your commit message
Jul 11, 2024
8a8d9de
Merge branch 'bounce' into ripple and clean up bloated test so that I…
unalmis Jul 11, 2024
97e081f
Leftover merge conflicts
unalmis Jul 11, 2024
9f1371b
Merge branch 'clebsh_basis' into ripple
unalmis Jul 11, 2024
ad7f2b6
Merge branch 'ripple' into Gamma_c
unalmis Jul 11, 2024
e6adeb2
remove unused jitable arg causing error
dpanici Jul 16, 2024
1462d28
remove unneeded jitable call
dpanici Jul 17, 2024
ce1c280
Merge branch 'bounce' into ripple
unalmis Jul 20, 2024
a28dade
Remove no longer needed jitable argument in get_profiles
unalmis Jul 20, 2024
0bf73b4
Merge branch 'ripple' into Gamma_c
unalmis Jul 20, 2024
ea6e0dc
Merge branch 'bounce' into ripple
unalmis Jul 24, 2024
5409b40
Merge branch 'bounce' into ripple
unalmis Jul 25, 2024
10ac679
Update master compute data
unalmis Jul 25, 2024
f54abb4
Update master compute data again
unalmis Jul 25, 2024
7a50240
Merge branch 'ripple' into Gamma_c
unalmis Jul 25, 2024
5d61f58
Only get profiles in build of objective
unalmis Jul 25, 2024
0348288
Merge branch 'ripple' into Gamma_c
unalmis Jul 25, 2024
1c8d4eb
Only get profiles in objective build method
unalmis Jul 25, 2024
3e49a8b
Merge branch 'bounce' into ripple
unalmis Jul 25, 2024
84d1134
Merge branch 'bounce' into ripple
unalmis Jul 25, 2024
68efde6
Add num_wells parameter to increase performance
unalmis Jul 25, 2024
29903ed
Merge branch 'ripple' into Gamma_c
unalmis Jul 25, 2024
2ab29a9
Add num_wells parameter to increase performance
unalmis Jul 25, 2024
a8bbbc9
Merge branch 'bounce' into ripple
unalmis Jul 25, 2024
6b7bcfb
Merge branch 'ripple' into Gamma_c
unalmis Jul 25, 2024
7f7366a
adding GammaC Tutorial
Jul 25, 2024
5fb62bf
Add num_wells to objective
unalmis Jul 25, 2024
a0d68fe
Merge branch 'ripple' into Gamma_c
unalmis Jul 25, 2024
67586ff
Add num_wells to Gamma_c objective
unalmis Jul 25, 2024
c1c6c16
Merge branch 'bounce' into ripple
unalmis Jul 26, 2024
a603df2
Add num_wells as static variables to compute fun
unalmis Jul 26, 2024
204dea8
Merge branch 'ripple' into Gamma_c
unalmis Jul 26, 2024
6ec5bd2
Add num_wells as static parameter to compute fun
unalmis Jul 26, 2024
70a3e43
Use kwargs in simpson integral to match API change in quadax from las…
unalmis Jul 26, 2024
29d1e8d
Merge branch 'ripple' into Gamma_c
unalmis Jul 26, 2024
2c54f9d
Specify kwargs for trapezoid integration after quadax API changes fro…
unalmis Jul 26, 2024
864d687
fixing typo in QS error test
Jul 26, 2024
c489a9b
fixing typo in QS error test
Jul 26, 2024
2b6ccb9
fixing comment
Jul 26, 2024
58612f5
kernel restart
Jul 26, 2024
812cfd0
documentation
Jul 30, 2024
af2279a
documentation
Jul 30, 2024
921f4d5
Add Nemov's Gamma_c
unalmis Aug 5, 2024
5ca2630
Remove hanging plt.show() from last commit
unalmis Aug 5, 2024
cd3b6b6
Fix comment
unalmis Aug 5, 2024
4577d4f
Fix another comment
unalmis Aug 5, 2024
661e6cd
Merge branch 'bounce' into ripple
unalmis Aug 7, 2024
d528b33
Merge branch 'ripple' into Gamma_c
unalmis Aug 7, 2024
4dd272e
merging Gammac in gh/Gamma_c
rahulgaur104 Aug 14, 2024
0c9070c
fixing merge conflicts
rahulgaur104 Aug 17, 2024
a3e1ba4
Take mean later since doesn't matter for speed and easier to do multi…
unalmis Aug 18, 2024
67d0662
Merge branch 'ripple' into Gamma_c
unalmis Aug 18, 2024
4595546
Fix reshape error raised by JAX by reverting average before pitch int…
unalmis Aug 18, 2024
ffe6710
Merge branch 'Gamma_c' into gh/Gamma_c
rahulgaur104 Aug 18, 2024
fb13f31
Merge branch 'bounce' into ripple
unalmis Aug 18, 2024
cbeda22
Merge branch 'ku/root_3d' into ripple
unalmis Aug 18, 2024
f0ad787
Merge branch 'ripple' into Gamma_c
unalmis Aug 18, 2024
e0dfd61
Merge branch 'ku/angles' into Gamma_c
unalmis Aug 18, 2024
75bc784
Use general angles rather than stream function aliases
unalmis Aug 18, 2024
4090d5b
Merge branch 'Gamma_c' into gh/Gamma_c
rahulgaur104 Aug 19, 2024
5b0393e
Merge branch 'bounce' into ripple
unalmis Aug 20, 2024
72fb5e6
Merge branch 'ripple' into Gamma_c
unalmis Aug 20, 2024
3d6dc38
Merge branch 'Gamma_c' into gh/Gamma_c
rahulgaur104 Aug 26, 2024
e6ca23c
appending swp format files to .gitignore
rahulgaur104 Aug 26, 2024
35dfec4
adding Gamma_a and Gamma_d; Gamma_a is incorrect, Gamma_d should have…
rahulgaur104 Aug 27, 2024
36428d3
Merge branch 'bounce' into ripple
unalmis Sep 1, 2024
d952252
Merge branch 'bounce' into ripple
unalmis Sep 1, 2024
4e9ebb9
Update effective ripple computation for all changes in upstream branches
unalmis Sep 2, 2024
9ff79da
Merge branch 'utils' into ripple
unalmis Sep 2, 2024
04a0d52
Remove test that is now redue to test with effective ripple
unalmis Sep 2, 2024
b383358
Merge branch 'bounce' into ripple
unalmis Sep 3, 2024
654a5ff
Same as commit f596dc6 and d382df3
unalmis Sep 3, 2024
9e80037
Fixing Pycharm's automated refactor
unalmis Sep 3, 2024
a93a6da
Merge branch 'master' into ripple
unalmis Sep 3, 2024
75c9333
Merge branch 'ripple' into Gamma_c
unalmis Sep 3, 2024
0f319e0
Merge branch 'utils' into ripple
unalmis Sep 3, 2024
8d5f3d3
Remove adaptive quadrature for now
unalmis Sep 3, 2024
3b1ffc0
Merge branch 'utils' into ripple
unalmis Sep 3, 2024
3b5441f
Allow kwargs to bounce.plot
unalmis Sep 4, 2024
d2bfe12
Merge branch 'ripple' into Gamma_c
unalmis Sep 4, 2024
2363303
Atone for B0 name change made in pull request #1168
unalmis Sep 4, 2024
fd914e8
Merge branch 'utils' into ripple
unalmis Sep 4, 2024
4cea229
Merge branch 'ripple' into Gamma_c
unalmis Sep 4, 2024
f2c26d9
Merge branch 'utils' into ripple
unalmis Sep 4, 2024
ba758d6
Merge branch 'ripple' into Gamma_c
unalmis Sep 4, 2024
9d981ff
Update effective ripple objective to work with recent changes to master
unalmis Sep 4, 2024
4216094
Merge branch 'ripple' into Gamma_c
unalmis Sep 4, 2024
d94ecd6
Update Gamma_c objective for recent changes on master
unalmis Sep 4, 2024
5cd7ebd
Add Gamma_c_Nemov baseline image for test
unalmis Sep 4, 2024
456d1a8
atone for pycharm's bad automated refactor commit number 3
unalmis Sep 4, 2024
fc8b393
Merge branch 'master' into ripple
f0uriest Sep 6, 2024
a6ace2c
alpha - pitch plotting for gamma_d
Sep 9, 2024
7b6e472
updated for plotting
Sep 9, 2024
598009f
Merge commit 'fc8b393' into ripple
unalmis Sep 15, 2024
d266505
Merge branch 'master' into ripple
unalmis Sep 15, 2024
9a968e6
Compute quadrature nodes once outside objective.compute
unalmis Sep 15, 2024
b4151d9
Fix nan leak in reverse mode ad for bounce integral
unalmis Sep 15, 2024
8b656f2
Fix comment that one poloidal transit is sufficient if axissymetric
unalmis Sep 15, 2024
df2938e
Merge branch 'ripple' into Gamma_c
unalmis Sep 15, 2024
3a93117
Use _constants instead of constants
unalmis Sep 15, 2024
717426f
Merge branch 'ripple' into Gamma_c
unalmis Sep 15, 2024
c2e455d
Allow using other Gamma_c in objective
unalmis Sep 15, 2024
52adba9
Improve quadrature over velocity coordiante for effective ripple
unalmis Sep 16, 2024
8d9b605
Cleaner solution to b4151d9
unalmis Sep 16, 2024
3d44b04
Merge branch 'ripple' into Gamma_c
unalmis Sep 16, 2024
9ed4a47
black format
unalmis Sep 16, 2024
5bc4b35
Simplify computation of quad points
unalmis Sep 16, 2024
070626b
Merge branch 'ripple' into Gamma_c
unalmis Sep 16, 2024
6146dc4
Remove now unnecessary code
unalmis Sep 16, 2024
246427b
Merge branch 'ripple' into Gamma_c
unalmis Sep 16, 2024
0366137
Better quadrature for weakly singular bounce integrals
unalmis Sep 17, 2024
621cb71
Merge branch 'ripple' into Gamma_c
unalmis Sep 17, 2024
6a46efb
fix comment about change of variable
unalmis Sep 17, 2024
a5a257b
Merge branch 'ripple' into Gamma_c
unalmis Sep 17, 2024
bd68679
Use interior nodes only for more fair test
unalmis Sep 17, 2024
4d3169b
Merge branch 'ripple' into Gamma_c
unalmis Sep 17, 2024
06d5061
Add documentation on which quadrature to use
unalmis Sep 17, 2024
53fd368
Merge branch 'master' into ripple
unalmis Sep 18, 2024
55f8aa5
Merge branch 'master' into Gamma_c
unalmis Sep 18, 2024
454bf3b
Merge branch 'master' into ripple
unalmis Sep 18, 2024
9498ad4
Merge branch 'ripple' into Gamma_c
unalmis Sep 18, 2024
41f3727
Increase test_compute_everything tolerance
unalmis Sep 18, 2024
6e3b0e7
Merge branch 'master' into ripple
unalmis Sep 19, 2024
e2b58c7
Removing period argument
unalmis Sep 19, 2024
7894b41
Merge branch 'ripple' into Gamma_c
unalmis Sep 19, 2024
9acc900
Use infinite period for alpha
unalmis Sep 19, 2024
e31b602
Use better quadrature for part of integral in Nemov Gamma_c
unalmis Sep 21, 2024
a574827
Add quad2 kwargs for weak singular integrals
unalmis Sep 21, 2024
df0590b
Merge branch 'ku/fourier_bounce_part1' into ripple
unalmis Sep 22, 2024
4756c38
Merge branch 'ku/fourier_bounce_part1' into ripple
unalmis Sep 22, 2024
2073547
Avoid redundant computation of bounce points
unalmis Sep 22, 2024
cff5494
Merge branch 'ripple' into Gamma_c
unalmis Sep 22, 2024
503f0d6
Avoid redundant computation of bounce points
unalmis Sep 22, 2024
e5d150c
Merge branch 'ku/fourier_bounce_part1' into ripple
unalmis Sep 22, 2024
1edd349
Complete @f0uriest 's request to compare against Neo
unalmis Sep 22, 2024
850001a
Add neo out file to desc repository
unalmis Sep 22, 2024
0ae5c9a
Do remaining review suggestion
unalmis Sep 22, 2024
362f198
Merge branch 'ripple' into Gamma_c
unalmis Sep 22, 2024
8cb2a28
Fix linear interpolation for bad neo values
unalmis Sep 22, 2024
48d92fb
Merge branch 'ripple' into Gamma_c
unalmis Sep 22, 2024
21235b4
Fix neo script
unalmis Sep 22, 2024
3714827
Merge branch 'ripple' into Gamma_c
unalmis Sep 22, 2024
098db02
Merge branch 'ku/fourier_bounce_part1' into ripple
unalmis Sep 22, 2024
1739b3e
Merge branch 'ripple' into Gamma_c
unalmis Sep 22, 2024
9dac89e
Document that Velasco's expression converges to zero
unalmis Sep 24, 2024
eb3370b
Merge branch 'ku/fourier_bounce_part1' into ripple
unalmis Sep 24, 2024
56a88a8
Update _write_neo
unalmis Sep 24, 2024
5a8e861
Merge branch 'ripple' into Gamma_c
unalmis Sep 24, 2024
7268ad8
Update after merging
unalmis Sep 24, 2024
8e3832e
adding Gamma_d to the latest Gamma_c
rahulgaur104 Sep 24, 2024
d11b3b4
modifying Gamma_d so alpha and pitch values are easily accessible
rahulgaur104 Sep 24, 2024
9e88270
Merge branch 'master' into ripple
unalmis Sep 24, 2024
8840c9c
Review suggestions
unalmis Sep 24, 2024
2dffde2
Add epsilon 3/2 and effective ripple as distinct
unalmis Sep 25, 2024
b58a1bd
Merge branch 'ripple' into Gamma_c
unalmis Sep 25, 2024
73a6b48
Increase entropy of test compute everything to pass test
unalmis Sep 26, 2024
5b668ee
Merge branch 'ripple' into Gamma_c
unalmis Sep 26, 2024
6c1cd12
Fix DESC docs variable name
unalmis Sep 26, 2024
5b4456d
Merge branch 'master' into ripple
unalmis Sep 26, 2024
eef81f6
Merge branch 'ripple' into Gamma_c
unalmis Sep 26, 2024
7d88eac
Simplify latex label
unalmis Sep 26, 2024
c819e32
Merge branch 'master' into ripple
unalmis Sep 26, 2024
157e57b
Add chunk size option
unalmis Sep 26, 2024
507a30c
Merge branch 'ripple' into Gamma_c
unalmis Sep 26, 2024
021b28a
Add chunk_size option
unalmis Sep 26, 2024
883b34d
Merge branch 'master' into ripple
unalmis Sep 27, 2024
1a62674
Merge branch 'ripple' into Gamma_c
unalmis Sep 27, 2024
1b3b6f2
Fix name in test
unalmis Sep 27, 2024
3f465d6
Merge branch 'ripple' into Gamma_c
unalmis Sep 27, 2024
908574b
merging Gamma_c manually
rahulgaur104 Sep 28, 2024
cf646f9
merging latest Gamma stuff manually, Gamma_a has been removed Gamma_d…
rahulgaur104 Sep 28, 2024
dba2e51
Merge branch 'master' into gh/Gamma_c
rahulgaur104 Sep 28, 2024
ff281fd
fixing tests
rahulgaur104 Sep 28, 2024
392c9e9
Merge branch 'gh/Gamma_c' of https://github.com/PlasmaControl/DESC in…
rahulgaur104 Sep 28, 2024
2ace1f6
fixing more tests 2
rahulgaur104 Sep 28, 2024
310157a
fixing more tests 3
rahulgaur104 Sep 28, 2024
5060895
Apply formatting from black-jupyter
Oct 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions desc/compute/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
_field,
_geometry,
_metric,
_neoclassical,
_omnigenity,
_profiles,
_stability,
Expand Down
107 changes: 85 additions & 22 deletions desc/compute/_basis_vectors.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ def _b(params, transforms, profiles, data, **kwargs):


@register_compute_fun(
name="e^rho", # ∇ρ is the same in (ρ,θ,ζ) and (ρ,α,ζ) coordinates.
name="e^rho", # ∇ρ is the same in any coordinate system.
label="\\mathbf{e}^{\\rho}",
units="m^{-1}",
units_long="inverse meters",
Expand Down Expand Up @@ -927,7 +927,7 @@ def _e_sup_theta_zz(params, transforms, profiles, data, **kwargs):


@register_compute_fun(
name="e^zeta", # ∇ζ is the same in (ρ,θ,ζ) and (ρ,α,ζ) coordinates.
name="e^zeta", # ∇ζ is the same in any coordinate system.
label="\\mathbf{e}^{\\zeta}",
units="m^{-1}",
units_long="inverse meters",
Expand Down Expand Up @@ -2449,10 +2449,10 @@ def _e_sub_theta_over_sqrt_g(params, transforms, profiles, data, **kwargs):
)
def _e_sub_vartheta_rp(params, transforms, profiles, data, **kwargs):
# constant ρ and ϕ
e_vartheta = (
data["e_theta"].T * data["phi_z"] - data["e_zeta"].T * data["phi_t"]
) / (data["theta_PEST_t"] * data["phi_z"] - data["theta_PEST_z"] * data["phi_t"])
data["e_theta_PEST"] = e_vartheta.T
data["e_theta_PEST"] = (
(data["e_theta"].T * data["phi_z"] - data["e_zeta"].T * data["phi_t"])
/ (data["theta_PEST_t"] * data["phi_z"] - data["theta_PEST_z"] * data["phi_t"])
).T
return data


Expand All @@ -2473,11 +2473,13 @@ def _e_sub_vartheta_rp(params, transforms, profiles, data, **kwargs):
)
def _e_sub_phi_rv(params, transforms, profiles, data, **kwargs):
# constant ρ and ϑ
e_phi = (
data["e_zeta"].T * data["theta_PEST_t"]
- data["e_theta"].T * data["theta_PEST_z"]
) / (data["theta_PEST_t"] * data["phi_z"] - data["theta_PEST_z"] * data["phi_t"])
data["e_phi|r,v"] = e_phi.T
data["e_phi|r,v"] = (
(
data["e_zeta"].T * data["theta_PEST_t"]
- data["e_theta"].T * data["theta_PEST_z"]
)
/ (data["theta_PEST_t"] * data["phi_z"] - data["theta_PEST_z"] * data["phi_t"])
).T
return data


Expand All @@ -2499,10 +2501,10 @@ def _e_sub_phi_rv(params, transforms, profiles, data, **kwargs):
def _e_sub_rho_vp(params, transforms, profiles, data, **kwargs):
# constant ϑ and ϕ
data["e_rho|v,p"] = (
data["e_rho"].T
- data["e_vartheta"].T * data["theta_PEST_r"]
- data["e_phi|r,v"].T * data["phi_r"]
).T
data["e_rho"]
- data["e_vartheta"] * data["theta_PEST_r"][:, jnp.newaxis]
- data["e_phi|r,v"] * data["phi_r"][:, jnp.newaxis]
)
return data


Expand Down Expand Up @@ -3206,7 +3208,28 @@ def _e_sub_zeta_zz(params, transforms, profiles, data, **kwargs):
data["Z_zzz"],
]
).T
return data


@register_compute_fun(
name="grad(phi)",
label="\\nabla \\phi",
units="m^{-1}",
units_long="Inverse meters",
description="Gradient of cylindrical toroidal angle ϕ.",
dim=3,
params=[],
transforms={},
profiles=[],
coordinates="rtz",
data=["R", "0"],
parameterization=[
"desc.equilibrium.equilibrium.Equilibrium",
"desc.geometry.surface.FourierRZToroidalSurface",
],
)
def _grad_phi(params, transforms, profiles, data, **kwargs):
data["grad(phi)"] = jnp.column_stack([data["0"], 1 / data["R"], data["0"]])
return data


Expand Down Expand Up @@ -3412,7 +3435,7 @@ def _e_sub_theta_rp(params, transforms, profiles, data, **kwargs):
label="\\mathbf{e}_{\\rho} |_{\\alpha, \\zeta}",
units="m",
units_long="meters",
description="Tangent vector along radial field line label",
description="Covariant radial basis vector in (ρ, α, ζ) Clebsch coordinates.",
dim=3,
params=[],
transforms={},
Expand All @@ -3433,7 +3456,7 @@ def _e_rho_az(params, transforms, profiles, data, **kwargs):
label="\\mathbf{e}_{\\alpha}",
units="m",
units_long="meters",
description="Tangent vector along poloidal field line label",
description="Covariant poloidal basis vector in (ρ, α, ζ) Clebsch coordinates.",
dim=3,
params=[],
transforms={},
Expand All @@ -3452,8 +3475,8 @@ def _e_alpha(params, transforms, profiles, data, **kwargs):
label="\\partial_{\\theta} \\mathbf{e}_{\\alpha}",
units="m",
units_long="meters",
description="Tangent vector along poloidal field line label, derivative wrt"
" DESC poloidal angle",
description="Covariant poloidal basis vector in (ρ, α, ζ) Clebsch coordinates,"
" derivative wrt DESC poloidal angle",
dim=3,
params=[],
transforms={},
Expand All @@ -3474,8 +3497,8 @@ def _e_alpha_t(params, transforms, profiles, data, **kwargs):
label="\\partial_{\\zeta} \\mathbf{e}_{\\alpha}",
units="m",
units_long="meters",
description="Tangent vector along poloidal field line label, "
"derivative wrt DESC toroidal angle",
description="Covariant poloidal basis vector in (ρ, α, ζ) Clebsch coordinates, "
"derivative wrt DESC toroidal angle at fixed ρ,θ.",
dim=3,
params=[],
transforms={},
Expand Down Expand Up @@ -3559,7 +3582,7 @@ def _e_zeta_ra_a(params, transforms, profiles, data, **kwargs):
units="m",
units_long="meters",
description="Tangent vector along (collinear to) field line, "
"derivative wrt DESC toroidal angle",
"derivative wrt DESC toroidal angle at fixed ρ,θ.",
dim=3,
params=[],
transforms={},
Expand Down Expand Up @@ -3635,3 +3658,43 @@ def _d_ell_d_zeta_z(params, transforms, profiles, data, **kwargs):
dot(data["(e_zeta|r,a)_z|r,a"], data["e_zeta|r,a"]) / data["|e_zeta|r,a|"]
)
return data


@register_compute_fun(
name="e_alpha|r,p",
label="\\mathbf{e}_{\\alpha} |_{\\rho, \\phi}",
units="m",
units_long="meters",
description="Covariant poloidal basis vector in (ρ, α, ϕ) Clebsch coordinates.",
dim=3,
params=[],
transforms={},
profiles=[],
coordinates="rtz",
data=["e_theta", "alpha_t", "e_zeta", "alpha_z", "phi_t", "phi_z"],
)
def _e_alpha_rp(params, transforms, profiles, data, **kwargs):
data["e_alpha|r,p"] = (
(data["e_theta"].T * data["phi_z"] - data["e_zeta"].T * data["phi_t"])
/ (data["alpha_t"] * data["phi_z"] - data["alpha_z"] * data["phi_t"])
).T
return data


@register_compute_fun(
name="|e_alpha|r,p|",
label="|\\mathbf{e}_{\\alpha} |_{\\rho, \\phi}|",
units="m",
units_long="meters",
description="Norm of covariant poloidal basis vector in (ρ, α, ϕ) Clebsch "
"coordinates.",
dim=1,
params=[],
transforms={},
profiles=[],
coordinates="rtz",
data=["e_alpha|r,p"],
)
def _e_alpha_rp_norm(params, transforms, profiles, data, **kwargs):
data["|e_alpha|r,p|"] = jnp.linalg.norm(data["e_alpha|r,p"], axis=-1)
return data
19 changes: 19 additions & 0 deletions desc/compute/_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -3119,6 +3119,25 @@ def _theta_PEST_rt(params, transforms, profiles, data, **kwargs):
return data


@register_compute_fun(
name="theta_PEST_rz",
label="\\partial_{\\rho \\zeta} \\vartheta",
units="rad",
units_long="radians",
description="PEST straight field line poloidal angular coordinate, derivative wrt "
"radial and DESC toroidal coordinate",
dim=1,
params=[],
transforms={},
profiles=[],
coordinates="rtz",
data=["lambda_rz"],
)
def _theta_PEST_rz(params, transforms, profiles, data, **kwargs):
data["theta_PEST_rz"] = data["lambda_rz"]
return data


@register_compute_fun(
name="theta_PEST_rrt",
label="\\partial_{\\rho \\rho \\theta} \\vartheta",
Expand Down
4 changes: 2 additions & 2 deletions desc/compute/_equil.py
Original file line number Diff line number Diff line change
Expand Up @@ -658,12 +658,12 @@ def _F_anisotropic(params, transforms, profiles, data, **kwargs):
transforms={"grid": []},
profiles=[],
coordinates="",
data=["|B|", "sqrt(g)"],
data=["|B|^2", "sqrt(g)"],
resolution_requirement="rtz",
)
def _W_B(params, transforms, profiles, data, **kwargs):
data["W_B"] = jnp.sum(
data["|B|"] ** 2 * data["sqrt(g)"] * transforms["grid"].weights
data["|B|^2"] * data["sqrt(g)"] * transforms["grid"].weights
) / (2 * mu_0)
return data

Expand Down
Loading