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

Update CCE tutorial #6029

Merged
merged 1 commit into from
Jun 1, 2024

Conversation

knelli2
Copy link
Contributor

@knelli2 knelli2 commented May 24, 2024

Proposed changes

Update the CCE tutorial to be a bit more comprehensive.

Upgrade instructions

Code review checklist

  • The code is documented and the documentation renders correctly. Run
    make doc to generate the documentation locally into BUILD_DIR/docs/html.
    Then open index.html.
  • The code follows the stylistic and code quality guidelines listed in the
    code review guide.
  • The PR lists upgrade instructions and is labeled bugfix or
    new feature if appropriate.

Further comments

@knelli2 knelli2 force-pushed the cce_tutorial_update branch 5 times, most recently from e97e4f8 to f062058 Compare May 29, 2024 05:07
@knelli2 knelli2 marked this pull request as ready for review May 29, 2024 05:07
@knelli2 knelli2 requested a review from nilsdeppe May 29, 2024 05:08
Copy link
Member

@nilsdeppe nilsdeppe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

overall LGTM! A few small suggestions!

### Initial data on the null hypersurface

Choosing initial data on the initial null hypersurface is a non-trivial task and
is an active are of research. We want initial data that will reduce the amount
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

active are -> active area


This is even more apparent if you plot the amplitude of the two waveforms. It's
pretty clear which waveform is the more "physical" one. Notice that there are
still some oscillations in the strain produced from sci towards the beginning
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sci -> scri?

\image html im_h22.png "Imaginary part of 2,2 component of the strain"

This is even more apparent if you plot the amplitude of the two waveforms. It's
pretty clear which waveform is the more "physical" one. Notice that there are
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
pretty clear which waveform is the more "physical" one. Notice that there are
pretty clear which waveform is the more "physical" one.
\image html amp_im_h22.png "Amplitude of imaginary part of 2,2 component of the strain"
Notice that there are still some oscillations in the strain produced from scri towards
the beginning of the waveform (up to ~1500M).

`Cce.Evolution.StepChoosers.Constant` option set to 0.1 for an accurate time
evolution. However, if you're just testing, this can be increased to 0.5 to
speed things up.
- We do not recommend extracting at 100M or less due to the junk radiation
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

which junk radiation? CCE or Cauchy/initial data?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah 100M can be fine for certain simulation. Do we want to say something about how it might be best to run CCE for various worldtubes and then check which one is best via, e.g., bianchi identity violations?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like that suggestion! We could maybe do both? Give a estimate like "Generally, using a worldtube radius of 200M is a reasonable choice, but you should check the Bianchi identity violations to test." Do we have a scri tutorial on how to do that?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not currently! But I’ll make a PR to add it to the tutorial

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool! Thanks!


Choosing initial data on the initial null hypersurface is a non-trivial task and
is an active are of research. We want initial data that will reduce the amount
of junk radiation as much as possible, while also having the initial data work
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
of junk radiation as much as possible, while also having the initial data work
of CCE junk radiation as much as possible, while also having the initial data work

This will work for many cases, but not all. But will produce the best initial
data when it does work.
- `InverseCubic`: Ansatz where \f$J = A/r + B/r^3\f$. This is very robust and
almost never fails, but contains a lot of junk.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
almost never fails, but contains a lot of junk.
almost never fails, but contains a lot of CCE junk radiation compare to `ConformalFactor`.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

*compare -> compared

This is even more apparent if you plot the amplitude of the two waveforms. It's
pretty clear which waveform is the more "physical" one. Notice that there are
still some oscillations in the strain produced from sci towards the beginning
of the waveform. This is caused by junk radiation from imperfect initial data on
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
of the waveform. This is caused by junk radiation from imperfect initial data on
of the waveform. This is caused by CCE junk radiation from imperfect initial data on

pretty clear which waveform is the more "physical" one. Notice that there are
still some oscillations in the strain produced from sci towards the beginning
of the waveform. This is caused by junk radiation from imperfect initial data on
the null hypersurface. In order to use this waveform in analysis, the junk must
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
the null hypersurface. In order to use this waveform in analysis, the junk must
the null hypersurface. In order to use this waveform in analysis, the CCE junk radiation must

improper BMS frame that the SpECTRE CCE waveform is in. A supertranslation must
be applied go transform the waveform into the correct BMS frame. See
\cite Mitman2024review for a review of BMS transformations and gravitational
memory.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
memory.
memory. The plot below shows the output of SpECTRE CCE as well as the output after using scri to do
the BMS frame transformation (see LINK KEEFE's TUTORIAL for help with how to perform the frame fixing).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to include the example code in the scri abd tutorial for plotting a waveform? Or just link to it?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm fine just linking to it but have no preference either way :)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I already mention that the plot is raw CCE vs scri in the first sentence of this paragraph. I'll add the link to Keefe's tutorial here

@@ -6,152 +6,59 @@ See LICENSE.txt for details.

\tableofcontents
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe it's just on my end, but if I view this .md file on Kyle's branch then a lot of the commands seem broken? Like the table of contents doesn't actually load...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For looking at docs, go to the checks and download the docs-html artifact. Then I just open the html in a local browser

`Cce.Evolution.StepChoosers.Constant` option set to 0.1 for an accurate time
evolution. However, if you're just testing, this can be increased to 0.5 to
speed things up.
- We do not recommend extracting at 100M or less due to the junk radiation
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah 100M can be fine for certain simulation. Do we want to say something about how it might be best to run CCE for various worldtubes and then check which one is best via, e.g., bianchi identity violations?

This will work for many cases, but not all. But will produce the best initial
data when it does work.
- `InverseCubic`: Ansatz where \f$J = A/r + B/r^3\f$. This is very robust and
almost never fails, but contains a lot of junk.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

*compare -> compared


The `Strain` represents the asymptotic transverse-traceless contribution
to the metric scaled by the Bondi radius (to give the asymptotically leading
part), the `News` represents the first derivative of the strain, and each
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

first derivative -> first time derivative

improper BMS frame that the SpECTRE CCE waveform is in. A supertranslation must
be applied go transform the waveform into the correct BMS frame. See
\cite Mitman2024review for a review of BMS transformations and gravitational
memory.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to include the example code in the scri abd tutorial for plotting a waveform? Or just link to it?


This is even more apparent if you plot the amplitude of the two waveforms. It's
pretty clear which waveform is the more "physical" one. Notice that there are
still some oscillations in the strain produced from sci towards the beginning
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

produced from -> output by

still some oscillations in the strain produced from sci towards the beginning
of the waveform. This is caused by junk radiation from imperfect initial data on
the null hypersurface. In order to use this waveform in analysis, the junk must
be cut off from the end.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

end -> beginning

You are also able to see gravitational memory effects with SpECTRE CCE! This
shows up in the real part of the 2,0 mode of the strain. Though you can see the
memory effects in the SpECTRE CCE waveform, in order to do any analysis, you
must also transform the waveform into the correct BMS frame.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

into the correct -> to a more physically motivated

@knelli2
Copy link
Contributor Author

knelli2 commented May 29, 2024

@keefemitman @nilsdeppe pushed a fixup

Copy link
Member

@nilsdeppe nilsdeppe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! A few minor suggestions. I'm happy for you to squash once Keefe's happy :)

The SpEC simulation is running now!

being much worse at these smaller worldtube radii.
- We generally do not recommend extracting at less than 100M due to the CCE junk
radiation being much worse at these smaller worldtube radii. That being said,
we also recommend running CCE for several worldtube radii and check which on
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and check -> and checking

remove on at the end

- We generally do not recommend extracting at less than 100M due to the CCE junk
radiation being much worse at these smaller worldtube radii. That being said,
we also recommend running CCE for several worldtube radii and check which on
is the best based on the bianchi identity violations. There isn't necessarily
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bianchi -> Bianchi?

@keefemitman
Copy link
Contributor

@keefemitman @nilsdeppe pushed a fixup

I'm happy!

@nilsdeppe nilsdeppe merged commit edead37 into sxs-collaboration:develop Jun 1, 2024
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants