Conversation
Memory benchmark result| Test Name | %Δ | Master (MB) | PR (MB) | Δ (MB) | Time PR (s) | Time Master (s) |
| -------------------------------------- | ------------ | ------------------ | ------------------ | ------------ | ------------------ | ------------------ |
test_objective_jac_w7x | 5.13 % | 3.836e+03 | 4.033e+03 | 196.80 | 36.55 | 31.33 |
test_proximal_jac_w7x_with_eq_update | -0.57 % | 6.799e+03 | 6.760e+03 | -38.56 | 161.42 | 159.80 |
test_proximal_freeb_jac | -0.18 % | 1.317e+04 | 1.315e+04 | -24.30 | 78.62 | 78.32 |
test_proximal_freeb_jac_blocked | -0.61 % | 7.640e+03 | 7.593e+03 | -46.61 | 67.77 | 69.78 |
test_proximal_freeb_jac_batched | -0.06 % | 7.599e+03 | 7.595e+03 | -4.29 | 68.28 | 69.39 |
test_proximal_jac_ripple | -1.73 % | 7.619e+03 | 7.487e+03 | -131.84 | 69.21 | 70.22 |
test_proximal_jac_ripple_spline | -1.05 % | 3.481e+03 | 3.444e+03 | -36.45 | 70.70 | 73.12 |
test_eq_solve | -2.02 % | 2.062e+03 | 2.021e+03 | -41.73 | 124.94 | 125.97 |For the memory plots, go to the summary of |
f0uriest
left a comment
There was a problem hiding this comment.
Is there still a plan to have classes for different diagnostics? I didn't realize those would each be objectives. I thought it would be something like
class AbstractDiagonstic(ABC, Optimizeable?):
def compute_measurement(self, eq, field):
...
def _compute_from_B(self, B):
...
class RogowskiCoil(AbstractDiagnostic):
...
class MeasurementError(_Objective):
def __init__(self, eq, field, diagnostic, target, weight):
...
def compute(self, params):
B = self.field.compute_magnetic_field(...)
return self.diagnostic._compute_from_B(B)I like the idea of separate classes for different diagnostics, independent from the Objective API for doing analysis etc. The diagnostic only knows about how to compute a synthetic measurement, but nothing about the expected value from experiment. The objective then couples the diagonstic class with the target/bounds/uncertainty from experiment to compute a residual/z score.
Another thing to consider is uncertainties. We can handle simple uncorrelated uncertainty with weight=1/uncertainty but often there are off diagonal terms in the covariance matrix that are important. This might require the Measurement objective to have special logic in compute_scaled_error etc.
At some point we may also want to consider optimizing the placement of diagnostics, this is something that a lot of experimentalists think about and could be a good use of DESC. So then AbstractDiagnostic would also inherit from Optimizeable
desc/objectives/_reconstruction.py
Outdated
|
|
||
| """ | ||
| super().build(use_jit=use_jit, verbose=verbose) | ||
| assert hasattr(self, "_all_eval_x_rpz"), ( |
There was a problem hiding this comment.
_all_eval_x_rpz might be better as an abstract property/attribute itself?
Also, the variable name implies it but should document somewhere that x here is in R,phi,Z. And that the compute function should expect B in R,phi,Z basis as well
There was a problem hiding this comment.
I can do that, but it seems that that way does not explicitly require that the attributes themselves be set, only that the properties exist?
Like one still could instantiate a subclass with the property _all_eval_x_rpz but never fill it?
| _compute_A_or_B_from_CurrentPotentialField, | ||
| ) | ||
|
|
||
| self._compute_A_or_B_from_CurrentPotentialField = ( |
There was a problem hiding this comment.
can't this just be a class method?
There was a problem hiding this comment.
I can't import it without getting a circular import so I have to import it locally. I could do that as a class method I guess
These are all good points, I mainly shied away from the optmizable diagnostics part because it is gonna add a lot more hassle on my part and I just wanted to get something working for my project... |
|
Yeah, I'm definitely not saying we have to worry about optimizing sensor placement or dealing with full covariance matrices now, but I just want to make sure we give it a bit of thought so that we don't design ourselves into a corner that will require major API changes to add those features later. I think broadly we could copy the API from For correlated uncertainty, if its only correlated within a single objective that could be handled by just allowing |
|
API Issues I am wrestling with currently:
|
|
One possible idea would be to add something like a |
Co-authored-by: Yigit Gunsur Elmacioglu <102380275+YigitElma@users.noreply.github.com>
Updates the requirements on [plotly](https://github.com/plotly/plotly.py) to permit the latest version. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/plotly/plotly.py/releases">plotly's releases</a>.</em></p> <blockquote> <h2>v6.5.1</h2> <h3>Fixed</h3> <ul> <li>Fix issue where Plotly Express ignored trace-specific color sequences defined in templates via <code>template.data.<trace_type></code> [<a href="https://redirect.github.com/plotly/plotly.py/pull/5437">#5437</a>], with thanks to <a href="https://github.com/antonymilne"><code>@antonymilne</code></a> for the contribution!</li> </ul> <h3>Updated</h3> <ul> <li>Speed up <code>validate_gantt</code> function [<a href="https://redirect.github.com/plotly/plotly.py/pull/5386">#5386</a>], with thanks to <a href="https://github.com/misrasaurabh1"><code>@misrasaurabh1</code></a> for the contribution!</li> <li>Update plotly.js from version 3.3.0 to version 3.3.1. See the plotly.js <a href="https://github.com/plotly/plotly.js/releases/tag/v3.3.1">release notes</a> for more information. [<a href="https://redirect.github.com/plotly/plotly.py/pull/5456">#5456</a>]. Notable changes include: <ul> <li>Add support for arrays for the pie properties <code>showlegend</code> and <code>legend</code>, so that these can be configured per slice. [<a href="https://redirect.github.com/plotly/plotly.js/pull/7580">#7580</a>]</li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md">plotly's changelog</a>.</em></p> <blockquote> <h2>[6.5.1] - 2025-11-17</h2> <h3>Fixed</h3> <ul> <li>Fix issue where Plotly Express ignored trace-specific color sequences defined in templates via <code>template.data.<trace_type></code> [<a href="https://redirect.github.com/plotly/plotly.py/pull/5437">#5437</a>], with thanks to <a href="https://github.com/antonymilne"><code>@antonymilne</code></a> for the contribution!</li> </ul> <h3>Updated</h3> <ul> <li>Speed up <code>validate_gantt</code> function [<a href="https://redirect.github.com/plotly/plotly.py/pull/5386">#5386</a>], with thanks to <a href="https://github.com/misrasaurabh1"><code>@misrasaurabh1</code></a> for the contribution!</li> <li>Update plotly.js from version 3.3.0 to version 3.3.1. See the plotly.js <a href="https://github.com/plotly/plotly.js/releases/tag/v3.3.1">release notes</a> for more information. [<a href="https://redirect.github.com/plotly/plotly.py/pull/5456">#5456</a>]. Notable changes include: <ul> <li>Add support for arrays for the pie properties <code>showlegend</code> and <code>legend</code>, so that these can be configured per slice. [<a href="https://redirect.github.com/plotly/plotly.js/pull/7580">#7580</a>]</li> </ul> </li> </ul> <h2>[6.5.0] - 2025-11-17</h2> <h3>Updated</h3> <ul> <li>Update plotly.js from version 3.2.0 to version 3.3.0. See the plotly.js <a href="https://github.com/plotly/plotly.js/releases/tag/v3.3.0">release notes</a> for more information. [<a href="https://redirect.github.com/plotly/plotly.py/pull/5421">#5421</a>]. Notable changes include: <ul> <li>Add <code>hovertemplate</code> for <code>candlestick</code> and <code>ohlc</code> traces [<a href="https://redirect.github.com/plotly/plotly.js/pull/7619">#7619</a>]</li> </ul> </li> </ul> <h3>Fixed</h3> <ul> <li>Fix bug where numpy datetime contained in Python list was converted to integer [<a href="https://redirect.github.com/plotly/plotly.py/pull/5415">#5415</a>]</li> </ul> <h2>[6.4.0] - 2025-11-02</h2> <h3>Updated</h3> <ul> <li>Update plotly.js from version 3.1.1 to version 3.2.0. See the plotly.js <a href="https://github.com/plotly/plotly.js/releases">release notes</a> for more information. [<a href="https://redirect.github.com/plotly/plotly.py/pull/5388">#5357</a>]. Notable changes include: <ul> <li>Add <code>hovertemplatefallback</code> and <code>texttemplatefallback</code> attributes [<a href="https://redirect.github.com/plotly/plotly.js/pull/7577">#7577</a>]</li> <li>Add "SI extended" formatting rule for tick exponents on axis labels, allowing values to be displayed with extended SI prefixes (e.g., femto, pico, atto) [<a href="https://redirect.github.com/plotly/plotly.js/pull/7249">#7249</a>]</li> </ul> </li> </ul> <h3>Deprecated</h3> <ul> <li>Deprecate <code>create_hexbin_mapbox</code> in favor of <code>create_hexbin_map</code>, update related function calls [<a href="https://redirect.github.com/plotly/plotly.py/pull/5358">5358</a>], with thanks to <a href="https://github.com/ajlien"><code>@ajlien</code></a> for the contribution!</li> </ul> <h2>[6.3.1] - 2025-10-02</h2> <h3>Updated</h3> <ul> <li>Update Plotly.js from version 3.1.0 to version 3.1.1. See the Plotly.js <a href="https://github.com/plotly/plotly.js/releases">release notes</a> for more information. [<a href="https://redirect.github.com/plotly/plotly.py/pull/5357">#5357</a>]. Notable changes include: <ul> <li>Fix issue preventing Scattergl plots with text elements from rendering [<a href="https://redirect.github.com/plotly/plotly.js/pull/7563">plotly.js#7563</a>]</li> </ul> </li> <li>Use native legends when converting from matplotlib [<a href="https://redirect.github.com/plotly/plotly.py/pull/5312">#5312</a>], with thanks to <a href="https://github.com/robertoffmoura"><code>@robertoffmoura</code></a> to the contribution!</li> <li>Allow <code>shared_yaxes</code> to work with secondary axes [<a href="https://redirect.github.com/plotly/plotly.py/pull/5180">#5180</a>], with thanks to <a href="https://github.com/gmjw"><code>@gmjw</code></a> for the contribution!</li> </ul> <h3>Fixed</h3> <ul> <li>Fix issue where width/height in plot layout were not respected during Kaleido image export [<a href="https://redirect.github.com/plotly/plotly.py/pull/5325">#5325</a>]</li> <li>Fix typo in default argument to <code>_ternary_contour.py</code> [<a href="https://redirect.github.com/plotly/plotly.py/pull/5315">#5315</a>], with thanks to <a href="https://github.com/Lexachoc"><code>@Lexachoc</code></a> for the contribution!</li> <li>Fix incorrect <code>fig.show()</code> behavior when <code>ipython</code> is installed [<a href="https://redirect.github.com/plotly/plotly.py/pull/5258">#5258</a>]</li> </ul> <h2>[6.3.0] - 2025-08-12</h2> <h3>Updated</h3> <ul> <li>Updated Plotly.js from version 3.0.1 to version 3.1.0. See the Plotly.js <a href="https://github.com/plotly/plotly.js/releases">release notes</a> for more information. [<a href="https://redirect.github.com/plotly/plotly.py/pull/5318">#5318</a>]</li> </ul> <h3>Added</h3> <ul> <li>Exposed <code>plotly.io.get_chrome()</code> as a function which can be called from within a Python script. [<a href="https://redirect.github.com/plotly/plotly.py/pull/5282">#5282</a>]</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/plotly/plotly.py/commit/d2aa0449456de3a94e5bcbcbc1b89db266c7723a"><code>d2aa044</code></a> Version changes for v6.5.1</li> <li><a href="https://github.com/plotly/plotly.py/commit/f4236c224d4d17c626d63bdce5e84d38be848a60"><code>f4236c2</code></a> Merge pull request <a href="https://redirect.github.com/plotly/plotly.py/issues/5456">#5456</a> from plotly/cam/update-plotly.js-v3.3.1</li> <li><a href="https://github.com/plotly/plotly.py/commit/ca6e55e651cce8689d4310b1763bd404952e1ab1"><code>ca6e55e</code></a> Update Jupyter support files</li> <li><a href="https://github.com/plotly/plotly.py/commit/6f13fb057846dd19b413672966dc0eb897d19049"><code>6f13fb0</code></a> Add missing lock file</li> <li><a href="https://github.com/plotly/plotly.py/commit/6f94d9c0faa72a7a705a0fe65c7f3b8cd581f841"><code>6f94d9c</code></a> Update plotly.js to v3.3.1 and associated files</li> <li><a href="https://github.com/plotly/plotly.py/commit/f265d9bbfc30e34a8741eda6b8336336e1e9005e"><code>f265d9b</code></a> Merge pull request <a href="https://redirect.github.com/plotly/plotly.py/issues/5448">#5448</a> from palmerusaf/update-contrib-docs</li> <li><a href="https://github.com/plotly/plotly.py/commit/27b5bba440b357452a1436fbb8df36ffa03f6ac5"><code>27b5bba</code></a> Update editable installs ref in CONTRIBUTING doc</li> <li><a href="https://github.com/plotly/plotly.py/commit/fa4db1deccee6f363e016dca5c5fa506fb3ba96e"><code>fa4db1d</code></a> Merge pull request <a href="https://redirect.github.com/plotly/plotly.py/issues/5442">#5442</a> from plotly/fix-docs-build-bug-2</li> <li><a href="https://github.com/plotly/plotly.py/commit/a5f469a91aadd6f40f1cca1662fe661932f6abc9"><code>a5f469a</code></a> update call to color_discrete_sequence with new call signature</li> <li><a href="https://github.com/plotly/plotly.py/commit/adfdfcda31473709c10797cba7238ee73c3976aa"><code>adfdfcd</code></a> Merge pull request <a href="https://redirect.github.com/plotly/plotly.py/issues/5437">#5437</a> from antonymilne/main</li> <li>Additional commits viewable in <a href="https://github.com/plotly/plotly.py/compare/v5.16.0...v6.5.1">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
….0 (#2057) Updates the requirements on [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) to permit the latest version. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst">sphinx-rtd-theme's changelog</a>.</em></p> <blockquote> <h1>3.1.0</h1> <ul> <li>Added support for docutils 0.22</li> <li>Added support for Sphinx 9.x</li> </ul> <p>.. _release-3.1.0rc2:</p> <h1>3.1.0rc2</h1> <ul> <li>Added support for docutils 0.22</li> </ul> <p>.. _release-3.1.0rc1:</p> <h1>3.1.0rc1</h1> <ul> <li>Added support for Sphinx 9.x</li> </ul> <p>.. _release-3.0.2:</p> <h1>3.0.2</h1> <ul> <li>Show current translation when the flyout is attached</li> <li>Fix JavaScript issue that didn't allow users to disable selectors</li> </ul> <p>.. _release-3.0.1:</p> <h1>3.0.1</h1> <ul> <li>Use black color for text in selectors.</li> </ul> <p>.. _release-3.0.0:</p> <h1>3.0.0</h1> <p>Final version.</p> <p>.. _release-3.0.0rc4:</p> <h1>3.0.0rc4</h1> <h2>Fixes</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/readthedocs/sphinx_rtd_theme/commit/795de79c8b311592f5863a25307d85924bf52164"><code>795de79</code></a> Release 3.1.0 (<a href="https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1676">#1676</a>)</li> <li><a href="https://github.com/readthedocs/sphinx_rtd_theme/commit/66d0fdd910e142d058c20b474338051b0751f03c"><code>66d0fdd</code></a> Add Python 3.14 to the test suite (<a href="https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1668">#1668</a>)</li> <li><a href="https://github.com/readthedocs/sphinx_rtd_theme/commit/fbe5e6004195a1e75654eface1884485c57eb68e"><code>fbe5e60</code></a> 3.1.0rc2 with support for docutils 0.22 (<a href="https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1674">#1674</a>)</li> <li><a href="https://github.com/readthedocs/sphinx_rtd_theme/commit/a76174c0bb0af755718f3cbdffbf97d19d0ac0ec"><code>a76174c</code></a> Add support for docutils 0.22 (<a href="https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1671">#1671</a>)</li> <li><a href="https://github.com/readthedocs/sphinx_rtd_theme/commit/20733c3bcc60df8eda23512a0f3ccb2861486110"><code>20733c3</code></a> Add support for Sphinx 9.0.0 (<a href="https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1666">#1666</a>)</li> <li><a href="https://github.com/readthedocs/sphinx_rtd_theme/commit/71aacd35048c8bc2ab646ed4e3e9af1075034387"><code>71aacd3</code></a> Update Code of Conduct URL (<a href="https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1664">#1664</a>)</li> <li><a href="https://github.com/readthedocs/sphinx_rtd_theme/commit/5a263753d52c1628c88392fbf52c729f5a8e79b5"><code>5a26375</code></a> Run tests and build docs with Sphinx 8.2 (<a href="https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1640">#1640</a>)</li> <li><a href="https://github.com/readthedocs/sphinx_rtd_theme/commit/8d4d394dad2d55cf9a4db880effac6aa5c7b12e6"><code>8d4d394</code></a> Sidebar should not be floating on mobile (<a href="https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1622">#1622</a>)</li> <li><a href="https://github.com/readthedocs/sphinx_rtd_theme/commit/5f03347239fd22a241a5b609ddb2f964c8b429aa"><code>5f03347</code></a> Release 3.0.2</li> <li><a href="https://github.com/readthedocs/sphinx_rtd_theme/commit/17c0685be9f7c032c454a6dd4110bfc3892b7e06"><code>17c0685</code></a> Attached flyout: show the current translation (<a href="https://redirect.github.com/readthedocs/sphinx_rtd_theme/issues/1629">#1629</a>)</li> <li>Additional commits viewable in <a href="https://github.com/readthedocs/sphinx_rtd_theme/compare/1.0.0...3.1.0">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Yigit Gunsur Elmacioglu <102380275+YigitElma@users.noreply.github.com>
user function needs to return a 1d array of size dim_f, not a scalar Co-authored-by: Daniel Dudt <33005725+ddudt@users.noreply.github.com> Co-authored-by: Yigit Gunsur Elmacioglu <102380275+YigitElma@users.noreply.github.com>
Resolves #2055 --------- Co-authored-by: daniel-dudt <daniel.dudt@princetonstellarators.energy> Co-authored-by: Yigit Gunsur Elmacioglu <102380275+YigitElma@users.noreply.github.com>
the `head -n -2` was incorrect (`-2` should just be `2`), the script was silently failing locally for me (on macOS zsh) and causing it to not actually detect any unmarked tests even if they were present.
Updates the requirements on [plotly](https://github.com/plotly/plotly.py) to permit the latest version. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/plotly/plotly.py/releases">plotly's releases</a>.</em></p> <blockquote> <h2>v6.5.2</h2> <h3>Fixed</h3> <ul> <li>Fix issue where pie trace <code>legend</code>, <code>showlegend</code> attributes don't accept array values [<a href="https://redirect.github.com/plotly/plotly.py/pull/5464">#5464</a> and <a href="https://redirect.github.com/plotly/plotly.py/pull/5465">#5465</a>], with thanks to <a href="https://github.com/my-tien"><code>@my-tien</code></a> for the contribution!</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md">plotly's changelog</a>.</em></p> <blockquote> <h2>[6.5.2] - 2026-01-14</h2> <h3>Fixed</h3> <ul> <li>Fix issue where pie trace <code>legend</code>, <code>showlegend</code> attributes don't accept array values [<a href="https://redirect.github.com/plotly/plotly.py/pull/5464">#5464</a> and <a href="https://redirect.github.com/plotly/plotly.py/pull/5465">#5465</a>], with thanks to <a href="https://github.com/my-tien"><code>@my-tien</code></a> for the contribution!</li> </ul> <h2>[6.5.1] - 2026-01-07</h2> <h3>Fixed</h3> <ul> <li>Fix issue where Plotly Express ignored trace-specific color sequences defined in templates via <code>template.data.<trace_type></code> [<a href="https://redirect.github.com/plotly/plotly.py/pull/5437">#5437</a>], with thanks to <a href="https://github.com/antonymilne"><code>@antonymilne</code></a> for the contribution!</li> </ul> <h3>Updated</h3> <ul> <li>Speed up <code>validate_gantt</code> function [<a href="https://redirect.github.com/plotly/plotly.py/pull/5386">#5386</a>], with thanks to <a href="https://github.com/misrasaurabh1"><code>@misrasaurabh1</code></a> for the contribution!</li> <li>Update plotly.js from version 3.3.0 to version 3.3.1. See the plotly.js <a href="https://github.com/plotly/plotly.js/releases/tag/v3.3.1">release notes</a> for more information. [<a href="https://redirect.github.com/plotly/plotly.py/pull/5456">#5456</a>]. Notable changes include: <ul> <li>Add support for arrays for the pie properties <code>showlegend</code> and <code>legend</code>, so that these can be configured per slice. [<a href="https://redirect.github.com/plotly/plotly.js/pull/7580">#7580</a>]</li> </ul> </li> </ul> <h2>[6.5.0] - 2025-11-17</h2> <h3>Updated</h3> <ul> <li>Update plotly.js from version 3.2.0 to version 3.3.0. See the plotly.js <a href="https://github.com/plotly/plotly.js/releases/tag/v3.3.0">release notes</a> for more information. [<a href="https://redirect.github.com/plotly/plotly.py/pull/5421">#5421</a>]. Notable changes include: <ul> <li>Add <code>hovertemplate</code> for <code>candlestick</code> and <code>ohlc</code> traces [<a href="https://redirect.github.com/plotly/plotly.js/pull/7619">#7619</a>]</li> </ul> </li> </ul> <h3>Fixed</h3> <ul> <li>Fix bug where numpy datetime contained in Python list was converted to integer [<a href="https://redirect.github.com/plotly/plotly.py/pull/5415">#5415</a>]</li> </ul> <h2>[6.4.0] - 2025-11-02</h2> <h3>Updated</h3> <ul> <li>Update plotly.js from version 3.1.1 to version 3.2.0. See the plotly.js <a href="https://github.com/plotly/plotly.js/releases">release notes</a> for more information. [<a href="https://redirect.github.com/plotly/plotly.py/pull/5388">#5357</a>]. Notable changes include: <ul> <li>Add <code>hovertemplatefallback</code> and <code>texttemplatefallback</code> attributes [<a href="https://redirect.github.com/plotly/plotly.js/pull/7577">#7577</a>]</li> <li>Add "SI extended" formatting rule for tick exponents on axis labels, allowing values to be displayed with extended SI prefixes (e.g., femto, pico, atto) [<a href="https://redirect.github.com/plotly/plotly.js/pull/7249">#7249</a>]</li> </ul> </li> </ul> <h3>Deprecated</h3> <ul> <li>Deprecate <code>create_hexbin_mapbox</code> in favor of <code>create_hexbin_map</code>, update related function calls [<a href="https://redirect.github.com/plotly/plotly.py/pull/5358">5358</a>], with thanks to <a href="https://github.com/ajlien"><code>@ajlien</code></a> for the contribution!</li> </ul> <h2>[6.3.1] - 2025-10-02</h2> <h3>Updated</h3> <ul> <li>Update Plotly.js from version 3.1.0 to version 3.1.1. See the Plotly.js <a href="https://github.com/plotly/plotly.js/releases">release notes</a> for more information. [<a href="https://redirect.github.com/plotly/plotly.py/pull/5357">#5357</a>]. Notable changes include: <ul> <li>Fix issue preventing Scattergl plots with text elements from rendering [<a href="https://redirect.github.com/plotly/plotly.js/pull/7563">plotly.js#7563</a>]</li> </ul> </li> <li>Use native legends when converting from matplotlib [<a href="https://redirect.github.com/plotly/plotly.py/pull/5312">#5312</a>], with thanks to <a href="https://github.com/robertoffmoura"><code>@robertoffmoura</code></a> to the contribution!</li> <li>Allow <code>shared_yaxes</code> to work with secondary axes [<a href="https://redirect.github.com/plotly/plotly.py/pull/5180">#5180</a>], with thanks to <a href="https://github.com/gmjw"><code>@gmjw</code></a> for the contribution!</li> </ul> <h3>Fixed</h3> <ul> <li>Fix issue where width/height in plot layout were not respected during Kaleido image export [<a href="https://redirect.github.com/plotly/plotly.py/pull/5325">#5325</a>]</li> <li>Fix typo in default argument to <code>_ternary_contour.py</code> [<a href="https://redirect.github.com/plotly/plotly.py/pull/5315">#5315</a>], with thanks to <a href="https://github.com/Lexachoc"><code>@Lexachoc</code></a> for the contribution!</li> <li>Fix incorrect <code>fig.show()</code> behavior when <code>ipython</code> is installed [<a href="https://redirect.github.com/plotly/plotly.py/pull/5258">#5258</a>]</li> </ul> <h2>[6.3.0] - 2025-08-12</h2> <h3>Updated</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/plotly/plotly.py/commit/36d8bf845054430b8867e02961b14fc908d789c4"><code>36d8bf8</code></a> Version changes for v6.5.2</li> <li><a href="https://github.com/plotly/plotly.py/commit/1f45fa57d9e748c051864a1d25fe1e4f3d451e3e"><code>1f45fa5</code></a> Merge pull request <a href="https://redirect.github.com/plotly/plotly.py/issues/5467">#5467</a> from plotly/cam/update-graph-objs</li> <li><a href="https://github.com/plotly/plotly.py/commit/7f57ccb94e42040e55357e85bb5d3b0b4a675469"><code>7f57ccb</code></a> fix: Update graph_objs per recent bug fixes</li> <li><a href="https://github.com/plotly/plotly.py/commit/3293f4db2a3cd10c9b2e03398e0890967a509c3b"><code>3293f4d</code></a> Merge pull request <a href="https://redirect.github.com/plotly/plotly.py/issues/5466">#5466</a> from plotly/merge-doc-prod-to-main</li> <li><a href="https://github.com/plotly/plotly.py/commit/61c9f6fdabd6dae72ec33310cc07127796e68c6d"><code>61c9f6f</code></a> Merge branch 'main' into merge-doc-prod-to-main</li> <li><a href="https://github.com/plotly/plotly.py/commit/dad25200d54c8713790c43d00b1aa88fecb451b6"><code>dad2520</code></a> Merge pull request <a href="https://redirect.github.com/plotly/plotly.py/issues/5465">#5465</a> from my-tien/legend-arrayok</li> <li><a href="https://github.com/plotly/plotly.py/commit/b5874286fded3309c2794ad7675f33b792bec8df"><code>b587428</code></a> Merge branch 'main' into legend-arrayok</li> <li><a href="https://github.com/plotly/plotly.py/commit/5a0440c178d2f59d7f993fae00a59d4c681157db"><code>5a0440c</code></a> Merge pull request <a href="https://redirect.github.com/plotly/plotly.py/issues/5464">#5464</a> from plotly/cam/5463/handle-arrays-booleanvalidator</li> <li><a href="https://github.com/plotly/plotly.py/commit/fff298cf973fbe82eb1cd0adf71084002d3fc2b2"><code>fff298c</code></a> Simplify test</li> <li><a href="https://github.com/plotly/plotly.py/commit/cef18a9d95d22614e5e660ba6722645defaf7fe1"><code>cef18a9</code></a> Separate test for coercion of geo1 to geo and legend1 to legend</li> <li>Additional commits viewable in <a href="https://github.com/plotly/plotly.py/compare/v5.16.0...v6.5.2">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Also removes the line that says " no tests collected". Found to be necessary for me both locally on my mac and up on the cluster Also note that the script silently will fail if there is an import error that occurs when pytest is called, this can happen if there are any warnings emitted e.g. if the jax-finnuft warning is emitted then the script fails silently without actually collecting tests or checking if any are unmarked. So if you know you are getting a warning upon opening DESC, the check unmarked script is not working for you, just fyi
Doing something like this might involve making many redundant classes just to have for example a RogowskiCoil for each curve type: RogowskiCoilFourierXYZ, RogowskiCoilSplineXYZ etc. I can not think of a way to have separate diagnostics which are also optimizable and avoid this |
|
For correlated measurements, we should be able to use most of our existing machinery if we just make a new objective called something like MeasurementError which takes in all of the diagnostics, and the passed-in weights can be either a single numpy array (corresponding to a diagonal covariance matrix, where the weights passed in are the inverse of the square root of the diagonal variances), or it can be a (positive def, symmetric) matrix W which is assumed to be the inverse of the (also positive def, symmetric) covariance matrix Since these are pos def symmetric, we can do Cholesky to factor Then we can modify its compute_scaled (or maybe its _scale or whatever) to return where |
…es group (#2075) Updates the requirements on [psutil](https://github.com/giampaolo/psutil) to permit the latest version. Updates `psutil` to 7.2.2 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/giampaolo/psutil/blob/master/HISTORY.rst">psutil's changelog</a>.</em></p> <blockquote> <h1>7.2.2</h1> <p>2026-01-28</p> <p><strong>Enhancements</strong></p> <ul> <li>2705_: [Linux]: <code>Process.wait()</code>_ now uses <code>pidfd_open()</code> + <code>poll()</code> for waiting, resulting in no busy loop and faster response times. Requires Linux >= 5.3 and Python >= 3.9. Falls back to traditional polling if unavailable.</li> <li>2705_: [macOS], [BSD]: <code>Process.wait()</code>_ now uses <code>kqueue()</code> for waiting, resulting in no busy loop and faster response times.</li> </ul> <p><strong>Bug fixes</strong></p> <ul> <li>2701_, [macOS]: fix compilation error on macOS < 10.7. (patch by Sergey Fedorov)</li> <li>2707_, [macOS]: fix potential memory leaks in error paths of <code>Process.memory_full_info()</code> and <code>Process.threads()</code>.</li> <li>2708_, [macOS]: Process.cmdline()<code>_ and </code>Process.environ()<code>_ may fail with ``OSError: [Errno 0] Undefined error`` (from ``sysctl(KERN_PROCARGS2)``). They now raise </code>AccessDenied`_ instead.</li> </ul> <h1>7.2.1</h1> <p>2025-12-29</p> <p><strong>Bug fixes</strong></p> <ul> <li>2699_, [FreeBSD], [NetBSD]: <code>heap_info()</code>_ does not detect small allocations (<= 1K). In order to fix that, we now flush internal jemalloc cache before fetching the metrics.</li> </ul> <h1>7.2.0</h1> <p>2025-12-23</p> <p><strong>Enhancements</strong></p> <ul> <li>1275_: new <code>heap_info()</code>_ and <code>heap_trim()</code>_ functions, providing direct access to the platform's native C heap allocator (glibc, mimalloc, libmalloc). Useful to create tools to detect memory leaks.</li> <li>2403_, [Linux]: publish wheels for Linux musl.</li> <li>2680_: unit tests are no longer installed / part of the distribution. They now live under <code>tests/</code> instead of <code>psutil/tests</code>.</li> </ul> <p><strong>Bug fixes</strong></p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/giampaolo/psutil/commit/9eea97dd6f1d16ea33f5144c8925f1ce7a0688e1"><code>9eea97d</code></a> Pre-release</li> <li><a href="https://github.com/giampaolo/psutil/commit/938ac647418f09e4e610b2c755741316713c5592"><code>938ac64</code></a> Rm sphinxcontrib.googleanalytics; override layout.html</li> <li><a href="https://github.com/giampaolo/psutil/commit/9dcbb7e60e650f0ab0cb52154b0a12c70f6a1e4c"><code>9dcbb7e</code></a> Add sphinxcontrib-googleanalytics to requirements.txt</li> <li><a href="https://github.com/giampaolo/psutil/commit/76eaf9ae0f2868569c14b46f4165310885a40a15"><code>76eaf9a</code></a> Try to add google analytics to doc</li> <li><a href="https://github.com/giampaolo/psutil/commit/de1cafa56f54e97ca557993155e76dd98877e136"><code>de1cafa</code></a> Update doc mentioning Process.wait() internal details</li> <li><a href="https://github.com/giampaolo/psutil/commit/bb30943b0336a16f28437ec549c15a8ad2830cca"><code>bb30943</code></a> Refact can_use_pidfd_open() and can_use_kqueue()</li> <li><a href="https://github.com/giampaolo/psutil/commit/a571717d6520d436273c8cb34ca871db4bfa508a"><code>a571717</code></a> <a href="https://redirect.github.com/giampaolo/psutil/issues/2708">#2708</a>, macos / cmdline / environ; raise AD instead of OSError(0) (<a href="https://redirect.github.com/giampaolo/psutil/issues/2709">#2709</a>)</li> <li><a href="https://github.com/giampaolo/psutil/commit/8b98c3effc20dcc4ed08c8f3d33e11ec0f5445b1"><code>8b98c3e</code></a> Pre-release</li> <li><a href="https://github.com/giampaolo/psutil/commit/700b7e6a4171ae7c775679217205f1d97568ae00"><code>700b7e6</code></a> [macOS] fix potential leaks in error paths (<a href="https://redirect.github.com/giampaolo/psutil/issues/2707">#2707</a>)</li> <li><a href="https://github.com/giampaolo/psutil/commit/7cc7923a1479fb1d32bb25d3e78b465e2695fbf7"><code>7cc7923</code></a> Windows / cmdline(): be more defensive in free()ing in case of error</li> <li>Additional commits viewable in <a href="https://github.com/giampaolo/psutil/compare/release-0.1.0...release-7.2.2">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Keep tk window from opening when `desc.plotting` is imported. Resolves #2077
Adds new input formats for objectives inheriting from ```_CoilObjective```. In particular, - ```bounds```, ```target```, and ```weight``` can accept pytrees with values for individual coils, provided the input is a prefix of the input ```CoilSet```. Weights can be zero, in which case the corresponding coil is masked. - The attribute ```_broadcast_input``` is required for coil objectives, stating if they return a single value per-coil or per-grid node. --------- Co-authored-by: Dario Panici <37969854+dpanici@users.noreply.github.com> Co-authored-by: Yigit Gunsur Elmacioglu <102380275+YigitElma@users.noreply.github.com> Co-authored-by: YigitElma <yigitelmacioglu@gmail.com>
…11.0 (#2083) Updates the requirements on [pytest-split](https://github.com/jerry-git/pytest-split) to permit the latest version. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/jerry-git/pytest-split/releases">pytest-split's releases</a>.</em></p> <blockquote> <h2>Release 0.11.0</h2> <h2>[0.11.0] - 2026-02-03</h2> <h3>Added</h3> <ul> <li>Support for pytest 9.x</li> <li>Support for Python 3.14</li> </ul> <h3>Changed</h3> <ul> <li>Migrated <code>poetry.dev-dependencies</code> to <code>poetry.group.dev.dependencies</code></li> </ul> <h3>Removed</h3> <ul> <li>Support for Python 3.8 and 3.9 (end-of-life)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/jerry-git/pytest-split/blob/master/CHANGELOG.md">pytest-split's changelog</a>.</em></p> <blockquote> <h2>[0.11.0] - 2026-02-03</h2> <h3>Added</h3> <ul> <li>Support for pytest 9.x</li> <li>Support for Python 3.14</li> </ul> <h3>Changed</h3> <ul> <li>Migrated <code>poetry.dev-dependencies</code> to <code>poetry.group.dev.dependencies</code></li> </ul> <h3>Removed</h3> <ul> <li>Support for Python 3.8 and 3.9 (end-of-life)</li> </ul> <h2>[0.10.0] - 2024-10-16</h2> <h3>Added</h3> <ul> <li>Support for Python 3.13.</li> </ul> <h2>[0.9.0] - 2024-06-19</h2> <h3>Changed</h3> <ul> <li>Cruft update to get up to date with the parent cookiecutter template</li> </ul> <h3>Removed</h3> <ul> <li>Support for Python 3.7</li> </ul> <h2>[0.8.2] - 2024-01-29</h2> <h3>Added</h3> <ul> <li>Support for pytest 8.x</li> <li>Python 3.12 to CI test matrix</li> </ul> <h2>[0.8.1] - 2023-04-12</h2> <h3>Changed</h3> <ul> <li>Introduce Ruff</li> <li>Fixed usage of <a href="https://docs.pytest.org/en/latest/deprecations.html#configuring-hook-specs-impls-using-markers">deprecated pytest API</a></li> </ul> <h3>Added</h3> <ul> <li>Python 3.11 to CI test matrix</li> </ul> <h2>[0.8.0] - 2022-04-22</h2> <h3>Fixed</h3> <ul> <li>The <code>least_duration</code> algorithm should now split deterministically regardless of starting test order. This should fix the main problem when running with test-randomization packages such as <code>pytest-randomly</code> or <code>pytest-random-order</code> See <a href="https://redirect.github.com/jerry-git/pytest-split/issues/52">#52</a></li> </ul> <h2>[0.7.0] - 2022-03-13</h2> <h3>Added</h3> <ul> <li>Support for pytest 7.x, see <a href="https://redirect.github.com/jerry-git/pytest-split/pull/47">jerry-git/pytest-split#47</a></li> </ul> <h2>[0.6.0] - 2022-01-10</h2> <h3>Added</h3> <ul> <li>PR template</li> <li>Test against 3.10</li> <li>Compatibility with IPython Notebooks</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/jerry-git/pytest-split/commit/fb5d0c1aeaaa371e59dcb21de98a08cd6648b816"><code>fb5d0c1</code></a> Release 0.11.0</li> <li><a href="https://github.com/jerry-git/pytest-split/commit/95a01846a6af373d75611d34aea65eabf7b9ce97"><code>95a0184</code></a> Merge pull request <a href="https://redirect.github.com/jerry-git/pytest-split/issues/117">#117</a> from jerry-git/remove-python-38-39-eol</li> <li><a href="https://github.com/jerry-git/pytest-split/commit/533a763d592d52f54c5b3788066ba8f2de7e1f61"><code>533a763</code></a> Remove support for Python 3.8 and 3.9 (end-of-life)</li> <li><a href="https://github.com/jerry-git/pytest-split/commit/fd17549742c15b0bba2e1af2daa82c52535a2e60"><code>fd17549</code></a> Merge pull request <a href="https://redirect.github.com/jerry-git/pytest-split/issues/116">#116</a> from jerry-git/add-python-3.14-support</li> <li><a href="https://github.com/jerry-git/pytest-split/commit/43aaeb7147b0b4ca1bfe29d094d84949db451f96"><code>43aaeb7</code></a> Add support for Python 3.14</li> <li><a href="https://github.com/jerry-git/pytest-split/commit/6d1c496875b8856d95c71d1648647721629a2063"><code>6d1c496</code></a> Add pytest 9 support and update Poetry configuration</li> <li><a href="https://github.com/jerry-git/pytest-split/commit/8f9ea5688b0f790b675fed39774ba7b425ca51ba"><code>8f9ea56</code></a> Merge pull request <a href="https://redirect.github.com/jerry-git/pytest-split/issues/112">#112</a> from olegrok/patch-1</li> <li><a href="https://github.com/jerry-git/pytest-split/commit/8c68e9811eaeea5dbb23a3051f4682a6aab20d12"><code>8c68e98</code></a> Allow to use pytest 9</li> <li><a href="https://github.com/jerry-git/pytest-split/commit/fb9af7e0122c18a96a7c01ca734c4ab01027f8d9"><code>fb9af7e</code></a> Merge pull request <a href="https://redirect.github.com/jerry-git/pytest-split/issues/107">#107</a> from dogukancagatay/fix-python-314-test-failure</li> <li><a href="https://github.com/jerry-git/pytest-split/commit/a8337b5a5458a7d4f376721a32c1c410103bedf9"><code>a8337b5</code></a> Fix test failure in Python 3.14a</li> <li>Additional commits viewable in <a href="https://github.com/jerry-git/pytest-split/compare/0.8.2...0.11.0">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Adds new class
AbstractDiagnosticwhich is a new base class for synthetic diagnostic objects.AbstractDiagnosticrealizations must_compute_datamethod already in this_computemethod which takes in the magnetic field (or vector potential) at the points they require (for e.g. integration over a rogowski coil), as well as a dict of aux data_compute_datamethod for compiting this aux data fromeq_params,field_paramsas well as its owndiag_params(here for example aRogowskiCoilcomputes its geometric information. A ThomsonScattering may here compute the intersection of the chord and the plasma, as another example)Current realizations:
RogowskiCoilXXXfor each coil type,PointBMeasurementsfor ptwise B measurements like magnetic probes.DiagnosticSetobjects are collections ofAbstractDiagnosticrealizationsMixedCoilSetfor now, its job is to collect the diagnostics in one object,MeasurementErrorit can be computed efficientlyTODO
_diagnosticsto be a static attr to avoid JAX issues withMeasurementErrorbut not sure why, maybe because we are using its method? but that should be fine I thought... so I dont think that is the issueMeasurementError, allow weights to be a matrix and assume it to be the inverse of the covariance, and Cholesky factor it and make _scale method for this class using that factorizationResolves #1783