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

Choice of chi-squared functional for BMN Harmonic optimization #84

Open
lazersos opened this issue Aug 28, 2020 · 0 comments
Open

Choice of chi-squared functional for BMN Harmonic optimization #84

lazersos opened this issue Aug 28, 2020 · 0 comments
Assignees
Labels
documentation Improvements or additions to documentation enhancement New feature or request help wanted Extra attention is needed question Further information is requested

Comments

@lazersos
Copy link
Collaborator

It has been identified that in chisq_helicity.f90 the definition may need to be updated. The two key points are

  • A undocumented radial weighting is applied to harmonics with respect to m (is not applied if sigma_helicity < 0)
  • The harmonics are weighted by the energy in the desired spectrum as opposed to the B(n=0,m=0)

From an email by @pomphrey

It is possible to define a measure of quasi-axisymmetry many ways. For example, in their numerical studies Plunk and Helander (https://pure.mpg.de/rest/items/item_2574915_8/component/file_2598135/content) define the measure (see Eq 48) as the ratio of the non qas part to the full field whereas Landreman, Sengupta and Plunk (https://pure.mpg.de/rest/items/item_3020784/component/file_3039370/content) prefer the definition Aaron was referring to (Eq 5.2).
It seems from what you are saying, that ROSE adopts this second definition for the Chisq-Helicity. Neither one is "correct" ... they are just different choices. However, they will produce different cost function landscapes for the optimizer in question to explore, and therefore different results.

I do think that it would be a good idea to have the ability in STELLOPT to switch to the second definition, with B(0,0) on the denominator, and for some tests to be run seeing which is preferred (as Aaron suggests).

The radial weighting

            IF (sigma(ik) < 0.0) THEN
               rad_sigma = 1
            ELSE IF (m < 3) THEN
               rad_sigma = sj
            ELSE IF (m == 3) THEN
               rad_sigma = sj**1.5
            ELSE
               rad_sigma = sj*sj
            END IF

is rather curious and I wonder if Mike Z remembers why it is there? I suspect that this piece of coding is a residual of some monkeying around with the source code at some point long ago to cure a troublesome Bmn spectrum for a particular application. Perhaps Long-Poe Ku inserted this coding but we will never be able to confirm that. I don't think it should be there for a general application and I suspect it should be removed!

@lazersos lazersos added documentation Improvements or additions to documentation enhancement New feature or request help wanted Extra attention is needed question Further information is requested labels Aug 28, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request help wanted Extra attention is needed question Further information is requested
Projects
None yet
Development

No branches or pull requests

6 participants