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

Compute a worldtube constraint for Klein-Gordon Cce #5931

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from

Conversation

Sizheng-Ma
Copy link
Contributor

Proposed changes

Both Cauchy and characteristic systems evolve the scalar field independently. The results have to be consistent at the worldtube. This yields a worldtube constraint (Cce::Tags::KleinGordonWorldtubeConstraint) that needs to be monitored during evolution, which reads:

$C=\psi^{\rm Cauchy}-\psi^{\rm Characteristic}$,

where $\psi^{\rm Cauchy}$ is from Cauchy's worldtube data (Cce::Tags::BoundaryValue<Cce::Tags::KleinGordonPsi>) and $\psi^{\rm Characteristic}$ is the evolved variable (Cce::Tags::KleinGordonPsi).

This PR adds an action to compute Cce::Tags::KleinGordonWorldtubeConstraint and dump it to the disk. The first commit adds its tag. The second one initializes the tag in the databox. The third commit adds the action. And the last one dumps the tag to the disk.

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

* volume data `Tags::KleinGordonPsi` (at the worldtube)
* indicates the accuracy of the simulation.
*/
struct ComputeKGWorldtubeConstraint {
Copy link
Member

Choose a reason for hiding this comment

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

This doesn't appear to have anything to do with gauge transformations, so it should probably go in a different file.

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've moved the mutator to a new file.

* volume data `Tags::KleinGordonPsi` (at the worldtube)
* indicates the accuracy of the simulation.
*/
struct ComputeKGWorldtubeConstraint {
Copy link
Member

Choose a reason for hiding this comment

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

This needs a test that actually checks that the result. The current test just checks that db::mutate_apply<ComputeKGWorldtubeConstraint> and ::Actions::MutateApply<ComputeKGWorldtubeConstraint> give the same answer, which doesn't give much evidence that it is the correct answer.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Testing the physical aspect of the calculation is a quite nontrivial task. In fact, it will be one of the main focuses of the upcoming method paper for this CCE system --- in the paper, a variety of systems are used to show that the constraint converges exponentially with resolution (I've obtained many solid results to verify this is indeed the case). Another PR #5932 initiates the steps to build worldtube data for those systems. The goal therein is to add a new executable (in parallel with AnalyticTestCharacteristicExtract) that can justify all the physical aspects of the new CCE system, including the worldtube constraint in this PR.

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 not concerned about the physics, here. I want some evidence that the variable slicing is doing what you expect. At the moment, all the test does is checks that the function will run without crashing.

Copy link
Contributor

Choose a reason for hiding this comment

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

@Sizheng-Ma I believe what @wthrowe is looking for is just a test where you give the apply function a random cauchy KG Psi, volume Psi, and an interpolator, and you check that you get out an expected value (since it's just a subtraction).

Copy link
Member

Choose a reason for hiding this comment

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

Yes, that would be fine.

@knelli2 knelli2 self-requested a review August 21, 2024 16:57
* volume data `Tags::KleinGordonPsi` (at the worldtube)
* indicates the accuracy of the simulation.
*/
struct ComputeKGWorldtubeConstraint {
Copy link
Contributor

Choose a reason for hiding this comment

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

@Sizheng-Ma I believe what @wthrowe is looking for is just a test where you give the apply function a random cauchy KG Psi, volume Psi, and an interpolator, and you check that you get out an expected value (since it's just a subtraction).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants