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

Automate BBH simulations #5021

Open
2 tasks
nilsvu opened this issue May 19, 2023 · 1 comment
Open
2 tasks

Automate BBH simulations #5021

nilsvu opened this issue May 19, 2023 · 1 comment

Comments

@nilsvu
Copy link
Member

nilsvu commented May 19, 2023

Continuing discussion from #2987.

Remaining tasks are:

  • Continue ringdown from the last inspiral segment. Probably first by running a new executable. We can either continue the segments or run in a separate ringdown directory.
  • Sort out directory structure for eccentricity reduction and initial data. This should remain quite flexible (scripts shouldn't make any assumptions about this directory structure).
@nilsvu
Copy link
Member Author

nilsvu commented Jun 2, 2023

Discussion with @nilsdeppe @markscheel @wthrowe:

  • We converged on a concept of "pipelines" for BBH, BNS, BHNS, supernovae, etc. A pipeline is essentially an automation driver that runs after a simulation has finished and calls into other spectre Python modules to do the actual work (like scheduling simulations, archiving, etc).
  • We might call a step in a pipeline an "epoch" (or just "step" or "stage"?).
  • The pipeline continues epochs, segments, levs, etc. It uses Python modules to share logic between different pipelines (eccentricity reduction, etc). The pipeline is responsible for choosing directory names etc.

The directory structure for a BNS pipelines might look like this:

# Ecc reduction
Epoch_001_Id/  # (with or without suffixes)
Epoch_002_Ev/  # Runs at Lev_01
Epoch_003_Id/
Epoch_003_Ev/  # Runs at Lev_05
# Start all levs from end of Epoch_003 (PBandJ)
# Start at t = t_pbandj > 0 (don't relabel to t=0)
Epoch_004_Ev/Lev_01...04
    Lev_01/Segment_0000
         Segment_0001
         # ...
         # Switch to single BH
         Segment_0045
    Lev_02/Segment_0000
         Segment_0001
         # ...
         # Switch to single NS
         Segment_0048
         # ...
         # Switch to single BH
         Segment_0089
    # Or organize with stages when switching executables:
    Lev_02/
        Stage0/
            Segment_0000
            Segment_0001
            # ...
        # Switch to single NS
        Stage1/
            Segment_0000
            # ...
        # Switch to single BH
        Stage2/
            Segment_0000
Epoch_005_AssembleForArchive/Lev*
# Maybe a higher-level tool is responsible for the rest of the archiving:
Epoch_006_Archive/
Epoch_007_PushToCatalog/
  • When a simulation ends with exit code 0 the submit script calls the pipeline specified in the input file metadata:
# Metadata in input files:
Next: spectre.Pipelines.Bns

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

No branches or pull requests

2 participants