Skip to content

Commit

Permalink
Add an input file for KG CCE
Browse files Browse the repository at this point in the history
  • Loading branch information
Sizheng-Ma committed Nov 27, 2024
1 parent bff1227 commit dce71fe
Showing 1 changed file with 150 additions and 0 deletions.
150 changes: 150 additions & 0 deletions tests/InputFiles/Cce/KleinGordonCharacteristicExtract.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
# Distributed under the MIT License.
# See LICENSE.txt for details.

# This block is used by testing and the SpECTRE command line interface.
Executable: KleinGordonCharacteristicExtract
Testing:
Check: parse
Priority: High

---
# Start of the input file that controls the CCE evolution.

Evolution:
# The initial step sizes isn't super important because we use error-based
# adaptive time stepping to adjust the step size.
InitialTimeStep: 0.25
MinimumTimeStep: 1e-7
# The initial Slab size controls how often the EventsAndTriggers are run. They
# are run once per Slab.
InitialSlabSize: 10.0

ResourceInfo:
# Can ignore this section since CCE performs best on a single core.
AvoidGlobalProc0: false
Singletons: Auto

Observers:
VolumeFileName: "CharacteristicExtractUnusedVolume"
# The reduction file is where the CCE output will be written.
# Specifically, it will be in a `/SpectreRXXXX.cce` where the number is the
# ExtractionRadius specified below.
ReductionFileName: "CharacteristicExtractReduction"

EventsAndTriggersAtSlabs:
# Write the CCE time step every Slab. A Slab is a fixed length of simulation
# time and is not influenced by the dynamically adjusted step size.
- Trigger:
Slabs:
EvenlySpaced:
Offset: 0
Interval: 1
Events:
- ObserveTimeStep:
# The output is written into the "ReductionFileName" HDF5 file under
# "/SubfileName.dat"
SubfileName: CceTimeStep
PrintTimeToTerminal: true

EventsAndTriggersAtSteps:

Cce:
Evolution:
TimeStepper:
AdamsBashforth:
Order: 3 # Going to higher order doesn't seem necessary for CCE
StepChoosers:
- Constant: 0.1 # Don't take steps bigger than 0.1M
- LimitIncrease:
Factor: 2
- ErrorControl(SwshVars):
AbsoluteTolerance: 1e-8
RelativeTolerance: 1e-6
# These factors control how much the time step is changed at once.
MaxFactor: 2
MinFactor: 0.25
# How close to the "perfect" time step we take. Since the "perfect"
# value assumes a linear system, we need some safety factor since our
# system is nonlinear, and also so that we reduce how often we retake
# time steps.
SafetyFactor: 0.9
- ErrorControl(CoordVars):
AbsoluteTolerance: 1e-8
RelativeTolerance: 1e-7
# These factors control how much the time step is changed at once.
MaxFactor: 2
MinFactor: 0.25
# How close to the "perfect" time step we take. Since the "perfect"
# value assumes a linear system, we need some safety factor since our
# system is nonlinear, and also so that we reduce how often we retake
# time steps.
SafetyFactor: 0.9

# The number of angular modes used by the CCE evolution. This must be larger
# than ObservationLMax. We always use all of the m modes for the LMax since
# using fewer m modes causes aliasing-driven instabilities.
LMax: 20
# Probably don't need more than 15 radial grid points, but could increase
# up to ~20
NumberOfRadialPoints: 15
# The maximum ell we use for writing waveform output. While CCE can dump
# more, you should be cautious with higher modes since mode mixing, truncation
# error, and systematic numerical effects can have significant contamination
# in these modes.
ObservationLMax: 8

InitializeJ:
# To see what other J-initialization procedures are available, comment
# out this group of options and do, e.g. "Blah:" The code will print
# an error message with the available options and a help string.
# More details can be found at spectre-code.org.
ConformalFactor:
AngularCoordTolerance: 1e-13
MaxIterations: 1000 # Do extra iterations in case we improve.
RequireConvergence: False # Often don't converge to 1e-13, but that's fine
OptimizeL0Mode: True
UseBetaIntegralEstimate: False
ConformalFactorIterationHeuristic: SpinWeight1CoordPerturbation
UseInputModes: False
InputModes: []

StartTime: Auto # Start at the first time in file
EndTime: Auto # End at the last time in file
# If the CCE file name is of the form NameOfFileRXXXX.h5 then
# ExtractionRadius can be Auto. If the filename does not contain the radius,
# then you can specify it explicitly. For example:
# BoundaryDataFilename: CceInputData.h5
# ExtractionRadius: 257
BoundaryDataFilename: CceR0257.h5
KleinGordonBoundaryDataFilename: CceR0257.h5
ExtractionRadius: Auto
# Assume data is metric & derivs. This is wrong for SpECTRE & SpEC
# output, but likely correct for other codes.
H5IsBondiData: False
# How we interpolate the worldtube data in time for CCE.
H5Interpolator:
BarycentricRationalSpanInterpolator:
MinOrder: 10
MaxOrder: 10
# Unless you are using data from an old version of the Spectral Einstein Code,
# leave FixSpecNormalization as False.
FixSpecNormalization: False

# Loads this many time steps in from the HDF5 files at once. Fewer file system
# accesses improve performance, but requires more RAM.
H5LookaheadTimes: 10000

Filtering:
# Using half-power 64 means we effectively have a Heavidside filter, zeroing
# out the highest mode only.
RadialFilterHalfPower: 64
RadialFilterAlpha: 35.0
# The number of angular modes not touched by the angular filter. This should
# be about 2 smaller than LMax used for the CCE evolution.
FilterLMax: 18

ScriInterpOrder: 5
# How often per CCE time step to output. Given the tight default tolerances of
# 1e-6 with an Adams-Bashforth stepper, once per time step is fine for most
# systems.
ScriOutputDensity: 1

0 comments on commit dce71fe

Please sign in to comment.