SphericalHarmonicRecon

Yosef Zlochower <yosef@astro.rit.edu>

June 18 2009

Abstract

This thorn is used to reconstruct the metric data saved by SphericalHarmonicDecomp. It also provides aliased functions that are used by NullSHRExtract to construct the boundary data for CCE.

1 Introduction

2 Using and Filtering Cauchy data from SphericalHarmonicDecomp

The thorn SphericalHarmonicDecomp uses a least-squares fit of the metric data in some spherical shell to a set of spectral functions (Chebyshev in R and Ylm in angle). These data are dumped into files with names metric_obs_0_Decomp.h5, metric_obs_1_Decomp.h5, etc., where the 0,1,etc. refer to the spherical shell (several are allowed).

This thorn takes the data in one of these files and passes it to NullSHRExtract, which uses them to construct the null boundary data. Several utilities are provided in order to view and modify these data files. These include a program to filter the data via an FFT and calculate a smooth time derivative, which may be important in order to obtain accurate waveforms.

These utilities require the HDF5 and FFTW3 libraries and are compiled using the gamke CONFIGNAME-utils mechanism.

To filter the Cauchy data:

In general a simulation will be run over multiple jobs, each one producing an individual metric_decomp.h5 file. You will need to combine these files using hdf5_merge.

For example  
  hdf5\_merge Run1/metric_obs\_0\_Decomp.h5 \  
             Run2/metric\_obs\_0\_Decomp.h5 \  
             metric\_obs\_0\_Decomp.h5

Once the files are merged, you will need to find the last timestep using the ”findlast” command

./findlast  metric\_obs\_0\_Decomp.h5  
   8086: 4.010913e+02

Here 8086 is the last timestep, which corresponds to a time of 401.0913.

Next it is a good idea to examine the data in one of the higher modes you will use. In this case we will examine the n=1, l=4,m=4 mode of gxx (the 0 below corresponds to gxx, see the source)

./ascii\_output 8086 1 4 4 0 metric\_obs\_0\_Decomp.h5  > test\_out

We will use this data to ensure that only high-frequency junk is filtered. In this case it was found that the true signal frequency is smaller than 0.5 (omega). To be safe, we’ll set the maximum allowed frequency to 2.

./fftwfilter 8086 2 1 metric\_obs\_0\_Decomp.h5

Here the ”2” corresponds to the maximum frequency, while the ”1” corresponds to the damping length. Note that the maximum frequency is in units of 2*pi/(physical time), while the damping length is units of integer frequency. Choosing a large damping length can lead to suppression of the true signal.

The output file is metric_obs_0_Decomp_ft.h5, which contains the filtered metric data and the time derivatives of these data (which the original file did not contain). The filtered data can now be used in a Characteristic evolution.

In order to use the Cauchy extraction data in a subsequent Characteristic evolution, you need to know the timestep in the Cauchy data and the region in radius that the data cover. The program ”readmeta” will give you this region.

./readmeta metric\_obs\_0\_Decomp\_ft.h5  
Run Parameters  
... nn = 7  
... na = 49  
... Rin = 1.800000e+01  
... Rout = 2.200000e+01

Here we see that the data covers the interval 18¡r¡22. In this case, we would choose an extraction radius of 20 and set the following parameters in the parfile

 #Extraction radius---------------  
 SphericalHarmonicRecon::r\_extract=20.0  
 NullSHRExtract::cr = 20.0  
 NullGrid::null\_rwt = 20.0  
 
 SphericalHarmonicRecon::time\_derivative\_in\_file = "yes"  
 SphericalHarmonicRecon::metric\_data\_filename = "metric\_obs\_0\_Decomp\_ft.h5"

Choosing a timestep for the characteristic evolution that is an integer multiple of the Cauchy dump times will remove time interpolation errors and can lead to smoother signals. To find these dump time, use the ”printtime” command. The syntax is ”printtime iteration file”

./printtime 1 metric\_obs\_0\_Decomp\_ft.h5  
1: 4.960317e-02

In this case the dump times are separated by 0.04960317.

For complete example parfiles for both the initial Cauchy evolution, and subsequent null evolution, see SphericalHarmonicDecomp/par/ and SphericalHarmonicRecon/par/

2.1 Parameters

SphericalHarmonicRecon::order order used in time interpolation /  
         differentiation. Options are 2 or 4.  
 
SphericalHarmonicRecon::r_extract the radius of the worldtube. This  
        must be consistent with the setup of the null grid  
 
SphericalHarmonicRecon::metric_data_filename filename for the cauchy  
            metric data  
 
SphericalHarmonicRecon::time_derivative_in_file flag that indicates if  
        the  time derivative of the metric is in the cauchy file. The  
        time derivative may be generated via the fftwfilter program mentioned  
        above.  
 
# the following parameters should only be used if the  
# hdf5 was corrupted and extraction parameters  
# are not recoverable. Of course, we should actually  
# fix the extraction code so that this does not happen  
BOOLEAN override_extraction_parameters "never set this"  
{  
} no  
 
CCTK_INT override_spin "spin: never set this"  
{  
 *:* :: "anything, but you probably want 0"  
} 0  
 
CCTK_INT override_nn "number of Chabyshev coefficients: never use this"  
{  
  1:* :: "positive: must actualy match the extraction run"  
} 1  
 
CCTK_INT override_na "number of angular coefficients: never use this"  
{  
  1:* :: "positive: must actualy match the extraction run"  
} 1  
 
CCTK_REAL override_Rin "inner radius of extraction zone: ..."  
{  
  (0:* :: "positive"  
} 1  
 
CCTK_REAL override_Rout "outer radius of extraction zone: ..."  
{  
  (0:* :: "positive"  
} 1

3 Physical System

4 Numerical Implementation

5 Using This Thorn

5.1 Obtaining This Thorn

5.2 Basic Usage

5.3 Special Behaviour

5.4 Interaction With Other Thorns

5.5 Examples

5.6 Support and Feedback

6 History

6.1 Thorn Source Code

6.2 Thorn Documentation

6.3 Acknowledgements